/* Native logo entrance. Scoped to preserve the rest of the website. */
#intro.logo-entrance{background:#071e35;isolation:isolate;opacity:1;transition:opacity .65s ease,visibility .65s;contain:layout paint}
#intro.logo-entrance::before{display:block;inset:0;z-index:0;background:radial-gradient(ellipse at 52% 48%,#18517c 0%,#0b2d4b 36%,#071e35 74%);animation:none;opacity:1}
.logo-entrance .entrance-halo{position:absolute;width:70vmin;height:70vmin;left:50%;top:48%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#177cc324,transparent 65%);pointer-events:none}
#entrance-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.entrance-identity{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:min(760px,80vw);margin:0;z-index:3;text-align:center}
#entrance-logo{display:block;width:100%;height:auto;aspect-ratio:6000/2748;object-fit:contain;opacity:0;will-change:opacity}
.entrance-caption{position:absolute;top:calc(100% + 32px);width:100%;font-size:10px;font-weight:500;letter-spacing:.25em;color:#b6cfe3;opacity:0;transform:translateY(7px);transition:opacity .7s,transform .7s;margin:0;white-space:nowrap}
.logo-entrance.resolved .entrance-caption{opacity:1;transform:none}
.entrance-corner{position:absolute;left:5%;top:32px;z-index:4;color:#b6d0e4;display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:.19em}
.entrance-corner::before{content:'';width:18px;height:1px;background:#58b7f6}
#intro.logo-entrance .intro-bottom{bottom:28px;left:5%;right:5%;background:none;border-top:1px solid #a4d2f32b;padding-top:16px;z-index:5;color:#a7c3d9}
.logo-entrance .entrance-progress{height:1px;position:absolute;left:0;right:0;top:-1px;transform:scaleX(0);transform-origin:left;background:#78c9ff;opacity:.7}
#intro.logo-entrance .intro-bottom button{border:1px solid #94bbd84d;border-radius:2px;padding:10px 17px;min-height:44px;color:#e8f4ff;background:#14395880;font-size:12px}
#intro.logo-entrance .intro-bottom button:hover{background:#245579}
#intro.logo-entrance .intro-bottom button span{font-size:16px;margin-left:17px}
#intro.logo-entrance.leaving{opacity:0;visibility:hidden}
#intro.logo-entrance.static #entrance-logo{opacity:1!important}
#intro.logo-entrance.static canvas{display:none}
@media(max-width:620px){.entrance-identity{width:88vw;top:45%}.entrance-caption{font-size:8px;letter-spacing:.12em;top:calc(100% + 25px)}.entrance-corner{top:24px;font-size:9px}#intro.logo-entrance .intro-bottom{bottom:max(22px,env(safe-area-inset-bottom));font-size:9px}#intro.logo-entrance .intro-bottom>span{display:block;max-width:160px;font-size:9px;letter-spacing:.08em}.logo-entrance .entrance-halo{width:100vmin;height:100vmin}}
@media(prefers-reduced-motion:reduce){#intro.logo-entrance{transition:none}.entrance-caption{transition:none}#entrance-logo{will-change:auto}}
/* Version 2: dimensional flight ribbons and illuminated logo contours. */
#intro.logo-entrance{background:#031325}
#intro.logo-entrance::before{background:radial-gradient(ellipse at 50% 46%,#123d61 0%,#08243d 38%,#031325 80%);opacity:var(--entrance-glow,.7)}
.logo-entrance .entrance-halo{width:110vmin;height:65vmin;background:radial-gradient(ellipse,#157ecb24,transparent 68%)}
.entrance-identity{width:min(820px,80vw)}
#entrance-logo{will-change:opacity,mask-image}
.entrance-caption{font-size:11px;letter-spacing:.22em;color:#c4d9e8}
@media(max-width:620px){.entrance-identity{width:88vw}.entrance-caption{font-size:8px;letter-spacing:.12em}}
@media(max-height:550px) and (min-width:621px){.entrance-identity{width:min(600px,65vw);top:43%}.entrance-caption{top:calc(100% + 12px)}}
@media(prefers-reduced-motion:reduce){#entrance-logo{will-change:auto;mask-image:none!important;-webkit-mask-image:none!important}}
/* A continuous handoff: the dark stage lifts away as the logo docks in the header. */
.entrance-dock{position:absolute;object-fit:contain;pointer-events:none;z-index:6;opacity:0;transform-origin:center}
#intro.logo-entrance.docking{background:transparent;transition:none;overflow:visible}
#intro.logo-entrance.docking::before{opacity:1;animation:entrance-curtain 1.55s cubic-bezier(.65,0,.25,1) forwards}
#intro.logo-entrance.docking .entrance-halo{opacity:0;transition:opacity .5s}
#intro.logo-entrance.docking #entrance-canvas{opacity:0;transition:opacity .35s}
#intro.logo-entrance.docking .entrance-caption,#intro.logo-entrance.docking .entrance-corner{opacity:0;transition:opacity .25s}
#intro.logo-entrance.docking .intro-bottom{opacity:0;transition:opacity .2s}
#intro.logo-entrance.leaving{transition:opacity .18s,visibility .18s}
#site.entrance-entering .header .brand img{opacity:0}
#site.entrance-pending:not(.entrance-entering) .hero{opacity:0;transform:translateY(30px)}
#site.entrance-entering .hero{animation:entrance-page 1.45s .15s cubic-bezier(.22,.8,.2,1) both!important}
#site.entrance-entering[inert] *,#site.entrance-entering[inert] *::before,#site.entrance-entering[inert] *::after{animation-play-state:running!important}
@keyframes entrance-curtain{0%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}45%{clip-path:polygon(0 0,100% 0,100% 58%,0 80%)}100%{clip-path:polygon(0 0,100% 0,100% 0,0 0)}}
@keyframes entrance-page{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#site.entrance-pending .hero{opacity:1!important;transform:none!important}#intro.logo-entrance.leaving{transition:none}}
#site.entrance-pending .motion-review{visibility:hidden}
