/* FORTEX intro / page-transition overlay (plays on load, refresh and on / <-> /dashboard navigation).
   Emblem spins in the centre; the FORTEX lettering stays still and fades in underneath. */
#fx-intro{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;pointer-events:none;perspective:900px;
  background:radial-gradient(620px 440px at 50% 50%,rgba(150,165,190,.12),transparent 70%),#030405}
html.theme-blue #fx-intro{background:radial-gradient(620px 440px at 50% 50%,rgba(70,130,255,.22),transparent 70%),#060d1f}
html.theme-gold #fx-intro{background:radial-gradient(620px 440px at 50% 50%,rgba(232,185,49,.14),transparent 70%),#030405}
#fx-intro .fxi-box{display:flex;flex-direction:column;align-items:center;width:min(440px,82vw)}
#fx-intro .fxi-emb{display:block;width:100%;height:auto;transform-style:preserve-3d}
#fx-intro .fxi-word{display:block;width:100%;height:auto;margin-top:-2px}
html.theme-blue #fx-intro .fxi-emb{filter:drop-shadow(0 0 26px rgba(90,150,255,.45))}
html.theme-gold #fx-intro .fxi-emb{filter:drop-shadow(0 0 26px rgba(245,190,60,.40))}

/* intro: pop + 360 spin of the emblem, lettering fades in, then reveal (~1.5 s total) */
#fx-intro.fxi-in .fxi-emb{animation:fxi-pop .5s cubic-bezier(.2,1.4,.4,1) both,fxi-spin .9s cubic-bezier(.5,0,.25,1) .1s both}
#fx-intro.fxi-in .fxi-word{animation:fxi-rise .45s ease-out .45s both}
#fx-intro.fxi-in{animation:fxi-out .35s ease-in 1.15s both}
/* outgoing cover before navigating */
#fx-intro.fxi-cover{animation:fxi-fadein .2s ease-out both}
#fx-intro.fxi-cover .fxi-emb{animation:fxi-pop .32s cubic-bezier(.2,1.4,.4,1) both,fxi-spin .5s ease-in-out both}
#fx-intro.fxi-cover .fxi-word{animation:fxi-rise .25s ease-out .1s both}
@keyframes fxi-pop{0%{scale:.2;opacity:0}70%{scale:1.1;opacity:1}100%{scale:1;opacity:1}}
@keyframes fxi-spin{from{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}
@keyframes fxi-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes fxi-out{to{opacity:0;visibility:hidden}}
@keyframes fxi-fadein{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  #fx-intro.fxi-in .fxi-emb,#fx-intro.fxi-in .fxi-word,#fx-intro.fxi-cover .fxi-emb,#fx-intro.fxi-cover .fxi-word{animation:none}
  #fx-intro.fxi-in{animation:fxi-out .4s ease-in .35s both}
  #fx-intro.fxi-cover{animation:fxi-fadein .2s ease-out both}
}
