/* page-turn transition between landing and sector pages */
.pt-stage{position:fixed;inset:0;z-index:500;pointer-events:none;perspective:2000px;}
.pt-sheet{position:absolute;inset:0;transform-origin:top center;transform:rotateX(-96deg);opacity:0;
  background:linear-gradient(180deg,#0e1b2e 0%,#070b12 66%);box-shadow:0 60px 140px rgba(0,0,0,.6);
  border-bottom:1px solid rgba(118,211,255,.28);will-change:transform,opacity;}
.pt-sheet .pt-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;
  filter:drop-shadow(0 2px 14px rgba(118,211,255,.25));}

/* leaving a sector page: the sheet flips DOWN from the top edge to cover */
.pt-stage.cover-anim{pointer-events:auto;}
.pt-stage.cover-anim .pt-sheet{transform:rotateX(0);opacity:1;
  transition:transform .34s cubic-bezier(.62,0,.24,1),opacity .16s ease;}
.pt-stage.cover-anim .pt-logo{opacity:.92;transition:opacity .22s ease .06s;}

/* arriving on the landing: the sheet starts covering, then lifts back UP and away */
.pt-stage.cover .pt-sheet{transform:rotateX(0);opacity:1;}
.pt-stage.cover .pt-logo{opacity:.92;}
.pt-stage.cover.reveal .pt-sheet{transform:rotateX(-96deg);opacity:0;
  transition:transform .6s cubic-bezier(.65,0,.25,1),opacity .4s ease .18s;}
.pt-stage.cover.reveal .pt-logo{opacity:0;transition:opacity .25s ease;}

/* painted from the first frame while a turn arrives (inline head script), until
   transition.js puts its own sheet on top and lifts it */
html.pt-arrive::after{content:"";position:fixed;inset:0;z-index:499;pointer-events:none;
  background:linear-gradient(180deg,#0e1b2e 0%,#070b12 66%);}
html.pt-arrive{overflow:hidden;}
/* the logo eases in on a sheet that was already there */
.pt-stage.cover.logo-in .pt-logo{opacity:0;}
.pt-stage.cover.logo-in.logo-on .pt-logo{opacity:.92;transition:opacity .28s ease;}

@media(prefers-reduced-motion:reduce){.pt-stage{display:none;}html.pt-arrive::after{display:none;}}
