@font-face{font-family:"Press Start 2P";src:url(../fonts/pressstart.woff2)format("woff2");font-display:swap}@font-face{font-family:VT323;src:url(../fonts/vt323.woff2)format("woff2");font-display:swap}@font-face{font-family:Departure Mono;src:url(../fonts/DepartureMono-Regular.woff2)format("woff2");font-display:swap}:root{--bg:#0b0d12;--panel:#14171f;--panel-2:#1b1f2b;--line:#262b38;--line-2:#333b4d;--ink:#d6dcea;--ink-dim:#7b8399;--green:#5bffa0;--green-deep:#16351f;--red:#ff5c6c;--red-deep:#3a1620;--cyan:#57c7ff;--lilac:#a78bfa;--pixel:"Press Start 2P", monospace;--term:"VT323", monospace;--code:"Departure Mono", ui-monospace, monospace;--lvl0:#5bffa0;--lvl1:#57c7ff;--lvl2:#4d8bff;--lvl3:#a78bfa;--lvl4:#ff9e64;--lvl5:#ff5c6c}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--term);-webkit-font-smoothing:none;image-rendering:pixelated;margin:0;font-size:20px;line-height:1.35;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:9999;mix-blend-mode:multiply;background:repeating-linear-gradient(#0000 0 2px,#0000002e 3px);position:fixed;inset:0}.pix{font-family:var(--pixel);text-transform:uppercase;letter-spacing:.5px}.dim{color:var(--ink-dim)}h1,h2,h3{font-family:var(--pixel);margin:0;font-weight:400}::selection{background:var(--cyan);color:#06202f}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line-2);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--cyan)}.box{background:var(--panel);border:3px solid var(--line-2);box-shadow:6px 6px #00000080}button{font-family:var(--pixel);text-transform:uppercase;color:var(--ink);background:var(--panel-2);border:3px solid var(--line-2);cursor:pointer;image-rendering:pixelated;padding:12px 16px;font-size:11px;transition:transform 30ms,box-shadow 30ms,background .1s,color .1s;box-shadow:4px 4px #0000008c}button:hover{color:var(--cyan);border-color:var(--cyan)}button:active{transform:translate(4px,4px);box-shadow:0 0 #0000}button:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:4px 4px #0000008c}button.primary{color:#06210f;background:var(--green);border-color:var(--green)}button.primary:hover{color:#06210f;filter:brightness(1.1)}button.ghost{box-shadow:none;border-color:var(--line);background:0 0}button.ghost:hover{border-color:var(--cyan)}.chip{font-family:var(--pixel);text-transform:uppercase;border:2px solid var(--line-2);color:var(--ink-dim);white-space:nowrap;padding:4px 6px;font-size:8px}.chip.f{color:var(--cyan);border-color:var(--cyan)}.chip.p{color:var(--green);border-color:var(--green)}.chip.hot{color:var(--red);border-color:var(--red)}.chip.done{color:var(--green);border-color:var(--green);background:var(--green-deep)}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}.shell{flex-direction:column;min-height:100vh;display:flex}.boot{place-items:center;min-height:100vh;display:grid}.hdr{border-bottom:3px solid var(--line);z-index:50;background:var(--bg);justify-content:space-between;align-items:center;height:68px;padding:0 22px;display:flex;position:sticky;top:0}.wordmark{font-family:var(--pixel);letter-spacing:1px;box-shadow:none;background:0 0;border:none;padding:8px 10px;font-size:15px}.wordmark:hover{color:inherit}.hdr-right{align-items:center;gap:10px;display:flex}.hdr-right .chip{font-size:8px}.page{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:34px 26px 60px}.page-full{flex-direction:column;flex:1;min-height:0;padding:16px 20px 20px;display:flex}.hero{justify-content:space-between;align-items:center;gap:40px;margin:22px 0 40px;display:flex}.hero-text{flex:1;min-width:0}.title{font-size:34px;line-height:1.5}.tagline{font-family:var(--term);color:var(--ink-dim);margin:20px 0 0;font-size:22px}.tagline-sub{font-family:var(--term);color:var(--ink-dim);opacity:.75;margin:8px 0 0;font-size:18px}.hero-mascot{width:auto;height:clamp(180px,24vw,250px);image-rendering:pixelated;filter:drop-shadow(4px 6px #00000080);flex-shrink:0}.grid{gap:18px;display:grid}.levels{grid-template-columns:repeat(3,1fr)}.missions{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.lvl-card{text-align:left;flex-direction:column;align-items:flex-start;gap:8px;min-height:150px;padding:20px;display:flex}.lvl-card:hover{color:inherit;transform:translate(-2px,-2px);box-shadow:8px 8px #00000080}.lvl-n{font-family:var(--pixel);font-size:26px}.lvl-label{color:var(--ink);font-size:12px}.lvl-meta{font-family:var(--term);color:var(--ink-dim);margin-top:auto;font-size:20px}.bar{gap:3px;width:100%;display:flex}.bar-cell{flex:1;height:8px}.crumb{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:22px;display:flex}.crumb .pix{font-size:13px}button.tiny{padding:8px 10px;font-size:8px}.mission-card{text-align:left;flex-direction:column;gap:6px;min-height:122px;padding:14px;display:flex;overflow:hidden}.mission-card:hover{color:inherit;border-color:var(--cyan);transform:translate(-2px,-2px);box-shadow:8px 8px #00000080}.mc-top{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.mc-fun{font-family:var(--pixel);color:var(--ink);overflow-wrap:anywhere;font-size:11px;line-height:1.55}.mc-name{font-family:var(--term);overflow-wrap:anywhere;word-break:break-all;opacity:.7;margin-top:auto;font-size:16px;line-height:1.15}.mission .mtitle{font-size:15px}.mission .mname{font-family:var(--term);font-size:19px}.split{flex:1;grid-template-columns:minmax(320px,460px) 1fr;gap:16px;min-height:0;display:grid}.pane{flex-direction:column;min-height:0;display:flex;overflow:hidden}.pane-h{border-bottom:3px solid var(--line);background:var(--panel-2);justify-content:space-between;align-items:center;padding:12px 14px;font-size:10px;display:flex}.pane-actions{align-items:center;gap:8px;display:flex}.lang-toggle{gap:4px;display:flex}.lang-btn{font-family:var(--pixel);box-shadow:none;border:2px solid var(--line-2);color:var(--ink-dim);background:0 0;padding:5px 7px;font-size:8px}.lang-btn:hover:not(:disabled){color:var(--cyan);border-color:var(--cyan)}.lang-btn.on{color:#06210f;background:var(--green);border-color:var(--green)}.lang-btn:active{box-shadow:none;transform:none}.lang-btn:disabled{opacity:.3;cursor:not-allowed}.subject-text{font-family:var(--term);white-space:pre-wrap;color:var(--ink);flex:1;margin:0;padding:16px 18px;font-size:19px;line-height:1.4;overflow:auto}.editor-pane{min-height:0}.cm-wrap{border-bottom:3px solid var(--line);flex:1;min-height:180px;overflow:hidden}.cm-wrap .cm-editor{height:100%;font-size:15px;background:var(--panel)!important;font-family:var(--code)!important}.cm-wrap .cm-scroller{line-height:1.5;font-family:var(--code)!important}.cm-wrap .cm-gutters{background:var(--panel)!important;border-right:2px solid var(--line)!important}.cm-wrap .cm-activeLine,.cm-wrap .cm-activeLineGutter{background:#57c7ff0f!important}.console{font-family:var(--term);background:#0a0c11;max-height:34%;padding:14px 16px;font-size:19px;overflow:auto}.verdict{margin-bottom:10px;font-size:12px}.verdict.pass{color:var(--green)}.verdict.fail{color:var(--red)}.err{white-space:pre-wrap;font-family:var(--code);color:var(--red);margin:0;font-size:13px;line-height:1.4}.case-fail>div{margin:3px 0}.mono{font-family:var(--code);word-break:break-all;font-size:14px}.mono.ok{color:var(--green)}.mono.bad{color:var(--red)}.next{margin-top:6px}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes passpulse{0%{box-shadow:inset 0 0 #5bffa000}30%{box-shadow:inset 0 0 120px #5bffa047}to{box-shadow:inset 0 0 #5bffa000}}.flash-fail{animation:.28s shake}.flash-pass{animation:.7s passpulse}@media (width<=860px){.levels{grid-template-columns:repeat(2,1fr)}.title{font-size:26px}.page{padding:24px 16px 50px}.page-full{min-height:auto;padding:12px 12px 24px}.split{flex-direction:column;gap:12px;display:flex}.pane{overflow:visible}.subject{max-height:44vh}.subject-text{overflow:auto}.cm-wrap{min-height:340px}.console{max-height:none}}@media (width<=760px){.hero{flex-direction:column-reverse;align-items:flex-start;gap:14px;margin:10px 0 30px}.hero-mascot{filter:drop-shadow(3px 4px #00000080);height:120px}.tagline{margin-top:14px;font-size:20px}.tagline-sub{font-size:16px}}@media (width<=480px){.levels{grid-template-columns:1fr 1fr}.missions{grid-template-columns:1fr}.hdr{height:60px;padding:0 12px}.wordmark{font-size:12px}.hdr-right .chip{padding:4px 5px;font-size:7px}.title{font-size:22px}.crumb{gap:10px;margin-bottom:16px}}
