/* NJCAT opening scene: a quiet electric-blue video field and a deliberate logo build. */
.opening-splash{background:#0b6b9c;color:#fff;pointer-events:auto}
.opening-splash-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:saturate(.92) contrast(1.02) brightness(.92);transform:scale(1.025);transition:opacity .42s ease}.opening-splash-video.is-city-still{opacity:.45}
/* A granular blue veil keeps the city motion atmospheric rather than prominent. */
.opening-splash::before{display:block;inset:0;width:auto;height:auto;border:0;border-radius:0;background:linear-gradient(145deg,rgba(4,59,111,.69),rgba(30,133,196,.46) 52%,rgba(5,79,132,.70));opacity:1;animation:none}
.opening-splash::after{display:block;inset:0;width:auto;height:auto;border:0;border-radius:0;background-image:radial-gradient(rgba(225,247,255,.18) .55px,transparent .7px),linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);background-size:5px 5px,42px 42px,42px 42px;opacity:.38;animation:none}
.opening-splash-glow,.opening-splash-content::before,.opening-splash-logo::before,.opening-splash-logo::after{display:none!important}
.opening-splash-content{width:min(92vw,760px);animation:none;isolation:isolate}
.opening-splash-logo{width:min(84vw,650px);aspect-ratio:1472/726;overflow:visible;background:transparent;border:0;box-shadow:none;filter:drop-shadow(0 17px 28px rgba(0,30,67,.34));isolation:isolate}
.opening-splash-logo img{position:absolute;inset:0;width:100%;height:100%;mix-blend-mode:normal;opacity:0;filter:none}
/* A clean three-stage identity reveal: mark, NEI wordmark, then the descriptor. */
.splash-feather,.splash-feather-assembly,.splash-letter,.splash-bottom-line,.splash-final-logo,.splash-wordmark-assembly,.splash-engineering-line{display:none!important}
.splash-mark-assembly{z-index:1;clip-path:none!important;filter:drop-shadow(0 12px 16px rgba(0,13,29,.38))!important;transform-origin:50% 47%!important;animation:mark-materialize 1.15s .2s cubic-bezier(.2,.78,.24,1) both!important}
.splash-nei{z-index:3;clip-path:none!important;object-fit:fill!important;image-rendering:auto;transform:translateZ(0);filter:contrast(1.6) saturate(1.4) brightness(1.04) drop-shadow(-1px 0 0 rgba(8,50,108,.96)) drop-shadow(1px 0 0 rgba(8,50,108,.96)) drop-shadow(0 1px 0 rgba(8,50,108,.96)) drop-shadow(0 3px 7px rgba(0,19,54,.58))!important;animation:nei-materialize .78s 1.14s cubic-bezier(.2,.8,.25,1) both!important}
.splash-engineering-copy{position:absolute;z-index:4;left:0;right:0;top:85%;display:flex;justify-content:center;align-items:center;gap:.38em;color:#fff;font-family:Georgia,serif;font-size:clamp(.76rem,2.05vw,1.38rem);font-weight:800;letter-spacing:.075em;line-height:1.15;text-align:center;text-transform:uppercase;text-shadow:0 2px 0 rgba(4,35,62,.88),0 0 14px rgba(115,215,255,.54);white-space:nowrap}.splash-engineering-copy::after{content:'';position:absolute;right:4%;bottom:-.56rem;left:4%;height:2px;background:linear-gradient(90deg,transparent,rgba(197,239,255,.9) 14%,#fff 50%,rgba(197,239,255,.9) 86%,transparent);box-shadow:0 0 10px rgba(115,215,255,.58);opacity:0;animation:engineering-rule-arrive .42s 2.36s both ease-out}.splash-engineering-copy span{display:inline-block;opacity:0}.engineering-copy-left{animation:engineering-left-arrive .62s 1.82s cubic-bezier(.2,.8,.25,1) both}.engineering-copy-right{animation:engineering-right-arrive .62s 1.82s cubic-bezier(.2,.8,.25,1) both}
.opening-splash-content p,.opening-splash-enter{display:none!important}
@keyframes mark-materialize{0%{opacity:0;transform:scale(.82);filter:blur(10px) drop-shadow(0 12px 16px rgba(0,13,29,0))}62%{opacity:1;transform:scale(1.025);filter:blur(.4px) drop-shadow(0 12px 16px rgba(0,13,29,.34))}100%{opacity:1;transform:scale(1);filter:blur(0) drop-shadow(0 12px 16px rgba(0,13,29,.38))}}
@keyframes nei-materialize{from{opacity:0;transform:scale(.72) translateZ(0);filter:blur(7px) contrast(1.6) saturate(1.4) brightness(1.04) drop-shadow(-1px 0 0 rgba(8,50,108,0)) drop-shadow(1px 0 0 rgba(8,50,108,0)) drop-shadow(0 1px 0 rgba(8,50,108,0)) drop-shadow(0 3px 7px rgba(0,19,54,0))}72%{opacity:1;transform:scale(1.04) translateZ(0);filter:blur(0) contrast(1.6) saturate(1.4) brightness(1.04) drop-shadow(-1px 0 0 rgba(8,50,108,.96)) drop-shadow(1px 0 0 rgba(8,50,108,.96)) drop-shadow(0 1px 0 rgba(8,50,108,.96)) drop-shadow(0 3px 7px rgba(0,19,54,.58))}to{opacity:1;transform:scale(1) translateZ(0);filter:blur(0) contrast(1.6) saturate(1.4) brightness(1.04) drop-shadow(-1px 0 0 rgba(8,50,108,.96)) drop-shadow(1px 0 0 rgba(8,50,108,.96)) drop-shadow(0 1px 0 rgba(8,50,108,.96)) drop-shadow(0 3px 7px rgba(0,19,54,.58))}}
@keyframes engineering-left-arrive{from{opacity:0;transform:translateX(-85px)}to{opacity:1;transform:translateX(0)}}
@keyframes engineering-right-arrive{from{opacity:0;transform:translateX(85px)}to{opacity:1;transform:translateX(0)}}
@keyframes engineering-rule-arrive{from{opacity:0;transform:scaleX(.3)}to{opacity:1;transform:scaleX(1)}}
@media(max-width:650px){.opening-splash-logo{width:min(91vw,520px)}.opening-splash::after{background-size:4px 4px,30px 30px,30px 30px}}
@media(max-width:650px){.splash-engineering-copy{top:85%;gap:.28em;font-size:clamp(.52rem,2.35vw,.78rem);letter-spacing:.055em}.splash-engineering-copy::after{bottom:-.4rem}}@media(prefers-reduced-motion:reduce){.opening-splash-video{display:none}.splash-mark-assembly,.splash-nei,.splash-engineering-copy span,.splash-engineering-copy::after{opacity:1!important;animation:none!important}}
