*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}html,body,#root{overscroll-behavior:none;height:100%}body{font-family:var(--font-ui);touch-action:none;background:#08080c;overflow:hidden}:root{--font-ui:-apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-term:"SF Mono", "Cascadia Mono", "Roboto Mono", Consolas, monospace}.app{--corruption:0;--c-pct:calc(var(--corruption) * 100%);--inv-pct:calc((1 - var(--corruption)) * 100%);--bg:color-mix(in srgb, #eef0f4 var(--inv-pct), #07090d);--card:color-mix(in srgb, #fff var(--inv-pct), #0d1019);--ink:color-mix(in srgb, #1f2733 var(--inv-pct), #c9f7e2);--ink-dim:color-mix(in srgb, #6b7686 var(--inv-pct), #4f8a72);--accent:color-mix(in srgb, #2563eb var(--inv-pct), #56f2c3);--accent-ink:color-mix(in srgb, #fff var(--inv-pct), #04130c);--danger:color-mix(in srgb, #d92d20 var(--inv-pct), #ff2d55);--line:color-mix(in srgb, #d7dce4 var(--inv-pct), #1d3a30);--radius:calc(14px - var(--corruption) * 11px);background:var(--bg);color:var(--ink);transition:background .8s;position:fixed;inset:0}.app-inner{padding:calc(env(safe-area-inset-top,0px) + 10px) 14px calc(env(safe-area-inset-bottom,0px) + 12px);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.crt-scanlines{pointer-events:none;opacity:calc(var(--corruption) * .34);mix-blend-mode:multiply;z-index:90;background:repeating-linear-gradient(0deg,#0000008c 0 1px,#0000 1px 3px);position:fixed;inset:0}.crt-vignette{pointer-events:none;opacity:calc(var(--corruption) * .9);z-index:91;background:radial-gradient(#0000 55%,#0000008c 100%);position:fixed;inset:0}.corrupt-2 .test-instruction,.corrupt-2 .hud-title,.corrupt-3 .test-instruction,.corrupt-3 .hud-title{font-family:var(--font-term);letter-spacing:.04em}.corrupt-3 .test-card{animation:2.4s steps(2,end) infinite card-jitter}@keyframes card-jitter{0%,92%{transform:translate(0)}93%{transform:translate(-1.5px,1px)}95%{transform:translate(2px,-1px)}97%{transform:translate(-1px,-1.5px)}}.btn-primary{letter-spacing:.06em;color:var(--accent-ink);background:var(--accent);border-radius:var(--radius);cursor:pointer;box-shadow:0 2px 0 color-mix(in srgb, var(--accent) 70%, #000);border:none;padding:14px 26px;font-family:inherit;font-size:16px;font-weight:700;transition:transform 60ms}.btn-primary:active{box-shadow:none;transform:translateY(2px)scale(.99)}.btn-ghost{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:12px;font-family:inherit;font-size:13px;text-decoration:underline}.btn-share{font-family:var(--font-term);letter-spacing:.1em;color:var(--ink);border:2px solid var(--line);border-radius:var(--radius);cursor:pointer;background:0 0;padding:12px 22px;font-size:14px;font-weight:700;transition:transform 60ms,border-color .2s}.btn-share:active{border-color:var(--accent);transform:translateY(2px)scale(.99)}.btn-share:disabled{opacity:.55;cursor:default}.go-share-note{font-family:var(--font-term);letter-spacing:.08em;color:var(--ink-dim);font-size:11px}.hint-text{color:var(--ink-dim);text-align:center;font-size:11px;font-family:var(--font-term)}.fx-shake{animation:.34s fx-shake}@keyframes fx-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.brand-intro{z-index:100;font-family:var(--font-term);background:#050507;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.brand-intro>div{opacity:0;transition:opacity .5s}.brand-intro>.bi-show{opacity:1}.bi-studio{color:#8fa1b8;letter-spacing:.5em;text-indent:.5em;font-size:15px}.bi-presents{color:#4d5a6b;font-size:12px;font-style:italic}.bi-series{color:#ff2d55;letter-spacing:.3em;font-size:13px}.bi-title{color:#56f2c3;letter-spacing:.08em;font-size:clamp(42px,14vw,72px);font-weight:800;position:relative}.bi-title.bi-show{animation:2.2s step-end infinite title-glitch}.bi-title:before,.bi-title:after{content:attr(data-text);opacity:.75;position:absolute;inset:0}.bi-title.bi-show:before{color:#ff2d55;clip-path:inset(20% 0 45%);animation:1.7s steps(2,end) infinite chroma-a;transform:translate(-2.5px)}.bi-title.bi-show:after{color:#2d8cff;clip-path:inset(60% 0 12%);animation:1.3s steps(2,end) infinite chroma-b;transform:translate(2.5px)}@keyframes title-glitch{0%,88%{transform:none}90%{transform:skew(-6deg)}92%{transform:skew(4deg)translate(2px)}94%{transform:none}}@keyframes chroma-a{0%,to{clip-path:inset(20% 0 45%)}50%{clip-path:inset(55% 0 10%)}}@keyframes chroma-b{0%,to{clip-path:inset(60% 0 12%)}50%{clip-path:inset(8% 0 70%)}}.bi-skip{bottom:calc(env(safe-area-inset-bottom,0px) + 24px);color:#3a4350;font-size:11px;position:absolute;opacity:1!important}.title{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.title-browser{color:var(--ink-dim);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 18px;font-size:12px}.title-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:12px;width:min(420px,100%);padding:30px 24px;display:flex;box-shadow:0 8px 30px #0a0e161f}.title-logo{font-family:var(--font-term);letter-spacing:.1em;color:var(--ink);font-size:clamp(34px,11vw,52px);font-weight:800}.title-kicker{letter-spacing:.34em;text-indent:.34em;color:var(--accent);font-size:11px;font-weight:700}.title-copy{color:var(--ink-dim);font-size:14px;line-height:1.55}.title-begin{width:100%;margin-top:8px}.title-meta{color:var(--ink-dim);font-size:11px}.title-best{color:var(--accent);font-size:12px;font-family:var(--font-term)}.title-footer{letter-spacing:.18em;color:var(--ink-dim);flex-direction:column;align-items:center;gap:4px;font-size:10px;display:flex}.title-proctor-tag{font-family:var(--font-term);letter-spacing:0;opacity:.55}.hud{font-family:var(--font-term);justify-content:space-between;align-items:center;padding:6px 4px 12px;display:flex}.hud-lives{gap:4px;font-size:16px;display:flex}.hud-life{color:var(--line);transition:color .3s}.hud-life-on{color:var(--danger)}.hud-title{letter-spacing:.28em;text-indent:.28em;color:var(--ink-dim);font-size:11px}.hud-score{align-items:baseline;gap:7px;display:flex}.hud-mult{color:var(--accent);font-size:11px}.hud-points{color:var(--ink);text-align:right;min-width:52px;font-size:17px;font-weight:700}.run{flex-direction:column;flex:1;min-height:0;display:flex}.test-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 30px #0a0e1624}.test-head{background:color-mix(in srgb, var(--accent) calc(8% + var(--corruption) * 6%), var(--card));padding:16px 18px 0}.test-num{font-family:var(--font-term);letter-spacing:.3em;color:var(--ink-dim);font-size:10px}.test-instruction{color:var(--ink);margin:6px 0 14px;font-size:19px;font-weight:700;line-height:1.3}.timebar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.timebar-fill{background:linear-gradient(90deg, var(--accent), var(--danger));transform-origin:0;width:100%;height:100%}@keyframes timebar-drain{0%{width:100%}to{width:0%}}.test-body{touch-action:none;flex-direction:column;flex:1;justify-content:center;align-items:stretch;min-height:0;padding:16px;display:flex;position:relative}.incoming{font-family:var(--font-term);letter-spacing:.3em;color:var(--ink-dim);flex-direction:column;align-items:center;gap:12px;font-size:12px;animation:.5s steps(2,end) infinite incoming-blink;display:flex}.incoming-glyph{color:var(--accent);font-size:34px}@keyframes incoming-blink{50%{opacity:.45}}.verdict{background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:5;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;animation:.22s verdict-pop;display:flex;position:absolute;inset:0}@keyframes verdict-pop{0%{opacity:0;transform:scale(1.06)}}.verdict-mark{font-size:64px;font-weight:800;line-height:1}.verdict-pass .verdict-mark{color:var(--accent)}.verdict-fail .verdict-mark{color:var(--danger)}.verdict-title{font-family:var(--font-term);letter-spacing:.26em;font-size:16px;font-weight:700}.verdict-pass .verdict-title{color:var(--accent)}.verdict-fail .verdict-title{color:var(--danger)}.verdict-reason{color:var(--ink-dim);font-size:13px;font-style:italic}.verdict-quip{font-family:var(--font-term);color:var(--ink-dim);margin-top:10px;font-size:12px}.proctor{z-index:6;background:color-mix(in srgb, #07090d 94%, var(--accent));color:#c9f7e2;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:26px;display:flex;position:absolute;inset:0}.proctor-eye{color:#56f2c3;font-size:42px;animation:2.6s ease-in-out infinite eye-breathe}@keyframes eye-breathe{50%{opacity:.75;transform:scale(1.18)}}.proctor-name{font-family:var(--font-term);letter-spacing:.4em;color:#4f8a72;font-size:10px}.proctor-line{font-family:var(--font-term);white-space:pre-line;max-width:340px;font-size:15px;line-height:1.7}.proctor-caret{animation:.8s steps(2,end) infinite incoming-blink}.proctor-continue{color:#4f8a72;min-height:16px;font-size:11px}.gameover{text-align:center;font-family:var(--font-term);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}.go-stamp{letter-spacing:.12em;color:var(--danger);border:3px solid var(--danger);padding:10px 18px;font-size:clamp(26px,8.5vw,38px);font-weight:800;animation:.35s cubic-bezier(.2,2.4,.4,1) stamp-in;transform:rotate(-3deg)}@keyframes stamp-in{0%{opacity:0;transform:rotate(-3deg)scale(2.4)}}.go-class{color:var(--ink-dim);font-size:13px}.go-class strong{color:var(--ink)}.go-stats{gap:26px;margin:10px 0;display:flex}.go-stat{flex-direction:column;gap:2px;display:flex}.go-stat-num{color:var(--accent);font-size:26px;font-weight:800}.go-stat-label{color:var(--ink-dim);letter-spacing:.1em;font-size:10px}.go-newbest{color:var(--accent);letter-spacing:.3em;font-size:13px;animation:.7s steps(2,end) infinite incoming-blink}.go-proctor{color:var(--ink-dim);max-width:320px;font-size:12px;line-height:1.7}.phone-gate{color:#c9f7e2;text-align:center;font-family:var(--font-term);background:#07090d;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:30px;display:flex;position:fixed;inset:0}.pg-glyph{font-size:52px}.phone-gate h1{letter-spacing:.2em;font-size:20px}.phone-gate p{color:#6f9c86;font-size:14px;line-height:1.7}.pg-sub{opacity:.6;font-size:12px}.cb-arena{touch-action:none;flex:1;min-height:230px;position:relative}.cb-widget{background:color-mix(in srgb, var(--card) 88%, var(--bg));border:1px solid var(--line);border-radius:6px;align-items:center;gap:12px;padding:16px 18px;transition:left .18s cubic-bezier(.3,1.4,.5,1),top .18s cubic-bezier(.3,1.4,.5,1);display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0a0e1629}.cb-box{border:2px solid var(--ink-dim);width:26px;height:26px;color:var(--accent);background:var(--card);border-radius:3px;place-items:center;font-size:18px;font-weight:800;display:grid}.cb-checked .cb-box{border-color:var(--accent);animation:.25s verdict-pop}.cb-label{color:var(--ink);font-size:14px}.cb-brand{letter-spacing:.1em;color:var(--ink-dim);font-size:8px;font-family:var(--font-term);flex-direction:column;align-items:center;gap:2px;display:flex}.cb-brand em{opacity:.7;font-size:7px;font-style:normal}.sa-wrap{flex-direction:column;align-items:center;gap:14px;display:flex}.sa-grid{grid-template-columns:repeat(3,1fr);gap:6px;width:min(330px,100%);display:grid}.sa-tile{aspect-ratio:1;border:2px solid var(--line);background:color-mix(in srgb, var(--card) 80%, var(--bg));cursor:pointer;border-radius:4px;place-items:center;transition:transform 80ms,border-color .12s;display:grid;position:relative}.sa-on{border-color:var(--accent);transform:scale(.93)}.sa-glyph{filter:grayscale(calc(var(--corruption) * 100%)) contrast(calc(1 + var(--corruption) * .6));font-size:clamp(30px,9vw,44px)}.sa-check{background:var(--accent);width:18px;height:18px;color:var(--accent-ink);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid;position:absolute;top:4px;left:4px}.tr-wrap{flex-direction:column;gap:12px;display:flex}.tr-svg{background:color-mix(in srgb, var(--card) 80%, var(--bg));border:1px dashed var(--line);border-radius:var(--radius);touch-action:none;width:100%}.tr-path{fill:none;stroke:var(--ink-dim);stroke-width:3px;stroke-dasharray:7 7;stroke-linecap:round}.tr-ink{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.tr-meter{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.tr-meter-fill{background:var(--accent);height:100%;transition:width .1s linear}.sl-wrap{flex-direction:column;gap:16px;display:flex}.sl-warning{font-family:var(--font-term);color:var(--danger);text-align:center;font-size:11px;animation:.6s steps(2,end) infinite incoming-blink}.sl-strip{border-radius:var(--radius);background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--accent) 16%, var(--card)) 0 14px, color-mix(in srgb, var(--accent) 7%, var(--card)) 14px 28px);border:1px solid var(--line);height:64px;position:relative;overflow:hidden}.sl-slot{border:2px dashed var(--ink-dim);background:color-mix(in srgb, var(--bg) 75%, transparent);border-radius:6px;width:44px;height:44px;position:absolute;top:10px;transform:translate(-50%)}.sl-piece{background:var(--accent);border-radius:6px;width:44px;height:44px;transition:left 40ms linear;position:absolute;top:10px;transform:translate(-50%);box-shadow:0 2px 6px #0a0e164d}.sl-live{box-shadow:0 0 14px color-mix(in srgb, var(--accent) 60%, transparent)}.sl-track{background:var(--line);touch-action:none;border-radius:999px;height:48px;position:relative}.sl-handle{background:var(--card);border:2px solid var(--accent);width:56px;height:56px;color:var(--accent);border-radius:50%;place-items:center;font-size:20px;display:grid;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0a0e1640}.hs-wrap{flex-direction:column;align-items:center;gap:16px;display:flex}.hs-target{font-family:var(--font-term);letter-spacing:.2em;color:var(--ink-dim);font-size:12px}.hs-button{aspect-ratio:1;border:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--card));cursor:pointer;touch-action:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:min(210px,56vw);transition:transform .1s;display:flex}.hs-holding{background:color-mix(in srgb, var(--accent) 22%, var(--card));box-shadow:0 0 30px color-mix(in srgb, var(--accent) 35%, transparent);transform:scale(.96)}.hs-readout{font-family:var(--font-term);color:var(--ink);font-variant-numeric:tabular-nums;font-size:40px;font-weight:800}.hs-sub{color:var(--ink-dim);letter-spacing:.14em;font-size:11px}.hb-wrap{touch-action:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:18px;min-height:230px;display:flex}.hb-pulse{color:var(--danger);font-size:84px;transition:opacity .4s;animation:.5s ease-out hb-beat}.hb-silent{opacity:.07}@keyframes hb-beat{0%{transform:scale(1.45)}to{transform:scale(1)}}.hb-status{font-family:var(--font-term);color:var(--ink-dim);font-size:13px}.hb-counters{letter-spacing:.2em;color:var(--accent);gap:14px;font-size:16px;display:flex}.hb-miss{color:var(--danger)}.dt-arena{touch-action:none;flex:1;min-height:250px;position:relative;overflow:hidden}.dt-core{font-family:var(--font-term);letter-spacing:.24em;color:var(--ink-dim);opacity:.45;place-items:center;font-size:22px;font-weight:800;display:grid;position:absolute;inset:0}.dt-bait{pointer-events:none;white-space:nowrap;max-width:80vw;font-size:13px;font-weight:700;animation:.28s cubic-bezier(.2,1.8,.4,1) bait-pop,.9s ease-in-out .3s infinite bait-wiggle;position:absolute;transform:translate(-50%,-50%)}@keyframes bait-pop{0%{transform:translate(-50%,-50%)scale(0)}}@keyframes bait-wiggle{0%,to{transform:translate(-50%,-50%)rotate(-2deg)}50%{transform:translate(-50%,-52%)rotate(2deg)}}.dt-button{background:var(--danger);color:#fff;box-shadow:0 4px 0 color-mix(in srgb, var(--danger) 60%, #000);border-radius:8px;padding:12px 18px}.dt-alert{color:#3a2a00;background:#ffb020;border-radius:6px;padding:10px 14px;font-size:12px}.dt-banner{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:10px 16px;font-size:12px}.oo-grid{touch-action:none;gap:8px;width:min(330px,100%);margin:0 auto;display:grid}.oo-tile{aspect-ratio:1;border:1px solid var(--line);background:color-mix(in srgb, var(--card) 82%, var(--bg));color:var(--ink);cursor:grab;border-radius:4px;place-items:center;font-size:clamp(20px,6vw,32px);display:grid}.oo-tile span{display:block}.oo-flung span{opacity:0;transition:transform .3s ease-in,opacity .3s;transform:translate(var(--fling-x), var(--fling-y)) rotate(280deg) scale(.4)!important}.tc-wrap{flex-direction:column;align-items:center;gap:14px;display:flex}.tc-code{background:repeating-linear-gradient(-38deg, color-mix(in srgb, var(--ink) 7%, var(--card)) 0 8px, color-mix(in srgb, var(--ink) 13%, var(--card)) 8px 16px);border:1px solid var(--line);border-radius:4px;gap:10px;padding:14px 22px;display:flex;position:relative}.tc-glyph{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:34px;font-style:italic;font-weight:700;display:inline-block}.tc-done{opacity:.32}.tc-strike{background:var(--ink-dim);opacity:.6;height:2px;position:absolute;top:52%;left:6px;right:6px;transform:rotate(-3deg)}.tc-typed{font-family:var(--font-term);color:var(--accent);gap:8px;font-size:20px;display:flex}.tc-slot{text-align:center;border-bottom:2px solid var(--line);width:22px}.tc-pad{grid-template-columns:repeat(4,1fr);gap:7px;width:min(300px,100%);display:grid}.tc-key{font-family:var(--font-term);color:var(--ink);background:color-mix(in srgb, var(--card) 80%, var(--bg));border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:13px 0;font-size:19px;font-weight:700}.tc-key:active{background:var(--accent);color:var(--accent-ink)}.tt-arena{touch-action:none;flex:1;min-height:260px;position:relative}.tt-node{border:3px dashed var(--accent);width:96px;height:96px;font-family:var(--font-term);color:var(--ink-dim);border-radius:50%;place-items:center;font-size:22px;font-weight:800;animation:1.4s ease-in-out infinite node-pulse;display:grid;position:absolute;transform:translate(-50%,-50%)}.tt-held{background:color-mix(in srgb, var(--accent) 24%, transparent);color:var(--accent);border-style:solid;animation:none}@keyframes node-pulse{50%{transform:translate(-50%,-50%)scale(1.07)}}.tt-progress{background:var(--line);border-radius:4px;height:8px;position:absolute;bottom:28px;left:12%;right:12%;overflow:hidden}.tt-progress-fill{background:var(--accent);height:100%}.tt-hint{position:absolute;bottom:8px;left:0;right:0}
