/* GK identity: a brief progressive enhancement, never a loading gate. */
.top .mark{display:inline-flex;align-items:center;gap:10px;justify-self:start;min-height:44px;letter-spacing:-.055em}
.gk-brand-mark{display:block;width:56px;height:auto;aspect-ratio:210/136;object-fit:contain;flex:none}
.gk-brand-name{font:700 15px/1.05 var(--sans);letter-spacing:-.025em;text-transform:none}
.gk-brand-name small{display:block;margin-top:4px;font:400 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.gk-intro[hidden],.gk-logo-replay[hidden]{display:none!important}
.gk-intro{--gk-ready:1;position:fixed;inset:0;z-index:80;isolation:isolate;overflow:hidden;color:var(--ink);animation:gk-safety 0s linear 4s forwards}
.gk-intro__veil{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 46%,rgba(5,147,198,.075),transparent 56%),var(--paper);transition:opacity .45s ease}
.gk-intro__veil::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent calc(50% - .5px),rgba(7,36,51,.07) 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(46% - .5px),rgba(7,36,51,.07) 46%,transparent calc(46% + .5px))}
.gk-intro__meta{position:absolute;left:max(var(--pad),env(safe-area-inset-left));top:max(24px,env(safe-area-inset-top));font:400 11px/1.5 var(--mono);letter-spacing:.09em;text-transform:uppercase;transition:opacity .2s}
.gk-intro__meta span{display:block;color:var(--muted);margin-top:5px;font-size:10px}
.gk-intro__stage{position:absolute;left:50%;top:46%;width:clamp(250px,36vw,480px);max-width:min(80vw,80.29svh);aspect-ratio:210/136;transform:translate(-50%,-50%);will-change:transform}
.gk-intro__canvas,.gk-intro__fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .2s}
.gk-intro__canvas{opacity:0}
.gk-intro__fallback{filter:drop-shadow(0 22px 18px rgba(7,36,51,.1));animation:gk-assemble .35s ease-out both}
.gk-intro[data-renderer="webgl"] .gk-intro__canvas{opacity:1;transition:none}
.gk-intro[data-renderer="webgl"] .gk-intro__fallback{opacity:0;transition:none;animation:none}
.gk-intro__caption{position:absolute;top:calc(46% + clamp(135px,18vw,230px));left:var(--pad);right:var(--pad);text-align:center;transition:opacity .2s;pointer-events:none}
.gk-intro__caption strong{display:block;font:750 clamp(22px,3vw,34px)/1.1 var(--sans);letter-spacing:-.045em}
.gk-intro__caption span{display:block;font:400 10px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.gk-intro__signal{position:absolute;bottom:max(32px,env(safe-area-inset-bottom));left:var(--pad);display:flex;align-items:center;gap:10px;font:400 10px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.gk-intro__signal::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
.gk-intro__skip{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));right:max(var(--pad),env(safe-area-inset-right));min-height:44px;padding:10px 4px 10px 18px;border:0;background:transparent;color:var(--ink);font:400 12px/1.5 var(--mono);cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.gk-intro__skip:hover{text-decoration:underline;text-underline-offset:5px}
.gk-intro__skip:focus-visible,.gk-logo-replay:focus-visible,.top .mark:focus-visible{outline:2px solid var(--sky-ink);outline-offset:5px;border-radius:2px}
.gk-intro[data-state="docking"]{pointer-events:none}
.gk-intro[data-state="docking"] .gk-intro__veil,.gk-intro[data-state="docking"] .gk-intro__caption,.gk-intro[data-state="docking"] .gk-intro__meta,.gk-intro[data-state="docking"] .gk-intro__signal,.gk-intro[data-state="docking"] .gk-intro__skip{opacity:0}
.gk-intro[data-state="docking"] .gk-intro__canvas{opacity:0;transition:opacity .16s linear}
.gk-intro[data-state="docking"] .gk-intro__fallback{opacity:1;filter:none;animation:none;transition:opacity .16s linear}
.gk-logo-replay{display:inline-flex;align-items:center;gap:10px;margin:26px var(--pad) 0;min-height:44px;background:transparent;border:0;color:rgba(252,255,255,.7);font:400 11px/1.5 var(--mono);letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
.gk-logo-replay img{width:34px;height:25px;object-fit:contain;padding:3px;background:var(--paper);border-radius:3px}
.gk-logo-replay:hover{color:var(--paper)}
@keyframes gk-assemble{from{opacity:0}to{opacity:1}}
/* Independent CSS watchdog: the page cannot be trapped if JS stops. */
@keyframes gk-safety{to{visibility:hidden;pointer-events:none;opacity:0}}
@media(max-width:860px){.gk-brand-name{display:none}.gk-brand-mark{width:48px}.gk-intro__caption{top:calc(46% + 145px)}}
@media(max-width:480px){.top nav{font-size:11px;gap:10px;letter-spacing:0}.gk-intro__stage{width:250px}.gk-intro__meta{font-size:10px}.gk-intro__signal{font-size:9px}}
@media(max-height:500px){.gk-intro__stage{width:190px}.gk-intro__caption{top:74%}.gk-intro__caption strong{font-size:20px}.gk-intro__caption span{display:none}}
@media(prefers-reduced-motion:reduce){.gk-intro__fallback{animation:none;filter:none}.gk-intro *{transition:none!important}.gk-intro__canvas{display:none!important}}
@media print{.gk-intro,.gk-logo-replay{display:none!important}}
