:root{--sky:#0b1030;--ink:#e8ecff;--dim:#9aa6d6;--line:#4a6cff;--gold:#ffd23f;--laser:#7dff6b;--card:#111a45;--accent:var(--line);--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--sky);color:var(--ink);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}html[data-mode=game],html[data-mode=game] body{overscroll-behavior:none;height:100%;overflow:hidden}[hidden]{display:none!important}a{color:var(--accent)}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.btn{font:700 .85rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);border:2px solid var(--line);cursor:pointer;background:#0b1030bf;padding:.7em 1em}.btn:hover{background:var(--line)}.btn.primary{color:var(--sky);background:var(--gold);border-color:var(--gold)}.btn.primary:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:default}.actions{flex-wrap:wrap;gap:.75rem;display:flex}#game-root{-webkit-user-select:none;user-select:none;position:fixed;inset:0}#scene{width:100%;height:100%;image-rendering:pixelated;touch-action:none;cursor:crosshair;display:block;position:absolute;inset:0}#hud{pointer-events:none;font-family:var(--mono);padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));position:absolute;inset:0}#hud button{pointer-events:auto}#hud .stats{top:inherit;text-shadow:2px 2px 0 var(--sky);flex-direction:column;gap:2px;display:none;position:absolute;top:14px;left:16px}#hud.playing .stats{display:flex}#hud .label{min-width:5.5em;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;display:inline-block}#hud .value{color:var(--gold);font-size:1.1rem;font-weight:700}#hud .pips{color:var(--laser);letter-spacing:.15em}#hud .boss{border:2px solid var(--ink);background:#0b1030bf;width:min(360px,60%);height:14px;position:absolute;top:62px;left:50%;transform:translate(-50%)}#hud .boss .name{text-align:center;text-transform:uppercase;letter-spacing:.08em;color:var(--ink);text-shadow:2px 2px 0 var(--sky);font-size:.72rem;font-weight:700;position:absolute;bottom:calc(100% + 4px);left:0;right:0}#hud .boss span:not(.name){background:#e5484d;height:100%;display:block}#hud .top-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:calc(100% - 150px);display:flex;position:absolute;top:12px;right:12px}#hud .top-actions .btn{padding:.6em .8em;font-size:.72rem}#hud .gates{flex-wrap:wrap;justify-content:center;gap:8px;padding:0 12px;display:none;position:absolute;bottom:14px;left:0;right:0}#hud.playing .gates{display:flex}.chip{font:700 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);border:2px solid var(--accent);cursor:pointer;background:#0b1030bf;padding:.6em .8em}.chip:hover,.chip.visited{color:var(--sky);background:var(--accent)}.chip.visited:before{content:"✓ "}#hud .hint{text-align:center;color:var(--dim);text-shadow:2px 2px 0 var(--sky);margin:0;padding:0 16px;font-size:.75rem;display:none;position:absolute;bottom:58px;left:0;right:0}#hud.playing .hint{display:block}#hud .toast,#hud .center{text-align:center;border:2px solid var(--gold);width:max-content;max-width:calc(100% - 32px);color:var(--gold);background:#0b1030d9;margin:0;padding:.6em 1em;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}#hud .toast{opacity:0;transition:opacity .25s;top:22%}#hud .toast.show{opacity:1}#hud .center{pointer-events:auto;cursor:pointer;top:42%}.joystick{left:max(20px, env(safe-area-inset-left));border:2px solid var(--line);pointer-events:auto;touch-action:none;cursor:grab;background:#0b10308c;border-radius:50%;place-items:center;width:104px;height:104px;display:none;position:absolute;bottom:70px}#hud.playing .joystick{display:grid}.joystick .knob{background:var(--gold);pointer-events:none;border-radius:50%;width:44px;height:44px;box-shadow:3px 3px #00000073}#hud.hit{animation:.45s ease-out hit}@keyframes hit{0%{box-shadow:inset 0 0 0 100vmax #e5484d59}to{box-shadow:inset 0 0 0 100vmax #e5484d00}}#intro{text-align:center;pointer-events:none;text-shadow:3px 3px 0 var(--sky);flex-direction:column;justify-content:flex-start;align-items:center;padding:16vh 20px 0;display:flex;position:absolute;inset:0}#intro h1{font:800 clamp(2rem, 8vw, 4.5rem) / 1.05 var(--mono);letter-spacing:-.02em;color:var(--gold);text-wrap:balance;margin:0}#intro .headline{font:700 clamp(.95rem, 2.6vw, 1.3rem) var(--mono);margin:.6rem 0 0}#intro .tagline{max-width:34em;color:var(--dim);margin:.5rem 0 1.4rem}#intro .actions{pointer-events:auto;text-shadow:none;justify-content:center}#panel{-webkit-user-select:text;user-select:text;background:#05081cb3;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.card{background:var(--card);border:3px solid var(--accent);width:min(640px,100%);max-height:min(84vh,100%);overflow:auto;box-shadow:8px 8px #00000073}.card-head{background:var(--accent);color:var(--sky);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex;position:sticky;top:0}.card-head h2{font:800 1.15rem var(--mono);text-transform:uppercase;letter-spacing:.06em;margin:0}.card .close{font:700 1rem var(--mono);color:var(--sky);border:2px solid var(--sky);cursor:pointer;background:0 0;width:2.2em;height:2.2em}.card .section-body{padding:16px 18px 4px}.card-foot{padding:12px 18px 18px}.section-body p{margin:0 0 .9em}.section-body h3{font:700 .8rem var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:1.2em 0 .6em}.chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.chips li{font:.8rem var(--mono);border:1px solid var(--accent);padding:.3em .7em}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:3px solid var(--accent);flex-direction:column;padding:0 0 1em 1em;display:flex}.timeline li+li{padding-top:.2em}.timeline .org{color:var(--ink)}.meta{color:var(--dim);font-size:.88rem}.email{font:700 clamp(1.05rem, 4.5vw, 1.4rem) var(--mono);overflow-wrap:anywhere}.ranking .final{font-size:1.1rem}.ranking .final strong,.ranking .saved{color:var(--gold)}.ranking form{flex-wrap:wrap;gap:8px;margin-bottom:1em;display:flex}.ranking input{min-width:0;font:700 1rem var(--mono);color:var(--ink);background:var(--sky);border:2px solid var(--accent);flex:10em;padding:.5em .7em}.scores{font-family:var(--mono);font-variant-numeric:tabular-nums;margin:0;padding:0 0 0 2.2em}.scores li{border-bottom:1px dashed #9aa6d64d;padding:.25em 0}.scores li span{overflow-wrap:anywhere;min-width:55%;display:inline-block}.scores li strong{float:right;color:var(--gold)}.text-page{max-width:760px;margin:0 auto;padding:clamp(28px,7vw,72px) 20px 72px}.text-page header{margin-bottom:2.5rem}.text-page h1{font:800 clamp(2.1rem, 8vw, 3.6rem) / 1.05 var(--mono);letter-spacing:-.02em;color:var(--gold);margin:0}.text-page .headline{margin:.5rem 0 0;font-size:1.2rem;font-weight:600}.text-page header .meta{margin:.2rem 0 1.4rem}.text-page section{margin-top:2.5rem}.text-page h2{font:800 1rem var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);border-bottom:3px solid var(--accent);margin:0 0 1rem;padding-bottom:.4rem}@media (width<=560px){#hud .hint{bottom:96px}.joystick{bottom:136px}#hud .boss{top:104px}}@media (prefers-reduced-motion:reduce){#hud .toast{transition:none}#hud.hit{animation:none}}
