/* Kore boot (round 6). The real K, crisp and vivid, the Kore wordmark, and one progress line that covers the real
   texture upload and shader precompile. Every visit (short on repeat visits). Hands off into the page's first scene. */
.kb{position:fixed;inset:0;z-index:2147483000;background:#010403;display:grid;place-items:center;transition:opacity .7s cubic-bezier(.2,.7,.2,1),visibility .7s;font-family:Geist,system-ui,sans-serif}
.kb::before{content:'';position:absolute;inset:0;background:radial-gradient(34% 30% at 50% 46%,rgba(43,240,139,.13),transparent 70%)}
.kb.out{opacity:0;visibility:hidden;pointer-events:none}
html.kb-on,html.kb-on body{overflow:hidden!important}
.kb-in{position:relative;display:grid;justify-items:center;gap:22px;width:min(320px,76vw)}
.kb-k{width:clamp(64px,11vw,92px);height:auto;filter:drop-shadow(0 0 14px rgba(43,240,139,.55)) drop-shadow(0 0 2px rgba(150,255,200,.9));transform:scale(.92);opacity:0;animation:kb-k 1s cubic-bezier(.16,1,.3,1) .05s forwards}
@keyframes kb-k{to{transform:none;opacity:1}}
.kb-w{font-weight:600;font-size:clamp(26px,4.4vw,34px);letter-spacing:.02em;color:#effff6;opacity:0;animation:kb-k .9s cubic-bezier(.16,1,.3,1) .25s forwards}
.kb-w small{display:block;margin-top:6px;text-align:center;font:500 10.5px/1 'Geist Mono',ui-monospace,monospace;letter-spacing:.3em;text-transform:uppercase;color:#6f8a7d}
.kb-line{position:relative;width:100%;height:1px;background:rgba(255,255,255,.09);overflow:visible}
.kb-line i{position:absolute;left:0;top:0;height:1px;width:100%;transform-origin:left;transform:scaleX(var(--p,0));background:linear-gradient(90deg,rgba(43,240,139,.25),#2bf08b);box-shadow:0 0 10px rgba(43,240,139,.85)}
.kb-st{font:500 10.5px/1 'Geist Mono',ui-monospace,monospace;letter-spacing:.24em;text-transform:uppercase;color:#6f8a7d;min-height:12px}
.kb.go .kb-k{animation:kb-go .7s cubic-bezier(.5,0,.2,1) forwards}
@keyframes kb-go{from{transform:none;opacity:1}to{transform:scale(1.35);opacity:0;filter:drop-shadow(0 0 30px rgba(43,240,139,.9))}}
@media (prefers-reduced-motion:reduce){.kb-k,.kb-w{animation:none;opacity:1;transform:none}.kb.go .kb-k{animation:none}}
/* the first scene owns the opening: copy and the scroll hint wait for it */
html.kx-r6:not(.kx-copy-in) .story .beat{opacity:0!important;transform:translateY(14px)!important}
html.kx-r6:not(.kx-intro-done) .story .hint{opacity:0!important}
