:root{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#eaf4ff;background:#0a0e19;font-synthesis:none;--c:#2dcf92}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% 0,#283453 0,#090d19 68%) fixed;min-height:100vh;overflow-x:hidden}button,input{font:inherit}button{background:#212d47;color:#f3f7ff;border:1px solid #466084;border-radius:6px;padding:10px 15px;cursor:pointer;font-size:12px;font-weight:800;transition:transform .08s,background .15s,box-shadow .15s}button:hover:not(:disabled){background:#344a6d}button:active:not(:disabled){transform:translateY(2px)}button:disabled{opacity:.45;cursor:not-allowed}button.off{opacity:.45}.app{max-width:1210px;margin:auto;padding:18px 18px 45px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.brand{display:flex;align-items:center;gap:10px}.brand .pixel{font-size:40px;color:#48dba7;animation:spin 6s steps(8) infinite}.brand strong{display:block;font-size:24px;letter-spacing:2px;color:#fff}.brand small{font-size:10px;letter-spacing:2px;color:#a0bbcf}.hud{display:flex;gap:9px;flex-wrap:wrap}.hud span{border:1px solid #364862;background:#101a2c;padding:11px 13px;color:#d4f8ec;font-size:13px;font-weight:800;border-radius:4px}.hud .xp{color:#ffe066;min-width:110px;text-align:center}.hud .danger{color:#ff7a8a;border-color:#ff7a8a;animation:blink 1s infinite}.headerActions{display:flex;gap:7px}.panel{background:#111a2b;border:2px solid #466180;box-shadow:0 12px #070c17,0 0 40px #0205127a;border-radius:8px}.intro{max-width:860px;margin:40px auto;padding:46px;text-align:center;position:relative;overflow:hidden;animation:rise .6s ease-out both}.eyebrow{font-size:12px;color:#53deab;letter-spacing:3px}.intro h1{font-size:clamp(46px,8vw,85px);line-height:1;margin:20px 0 2px;text-shadow:5px 5px #0b533f;color:#6bf4b1;letter-spacing:3px;position:relative}.glitch{animation:float 3s ease-in-out infinite}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;opacity:.7;pointer-events:none}.glitch:before{color:#ff4f7b;animation:glitch 2.8s infinite steps(1);clip-path:inset(0 0 60% 0)}.glitch:after{color:#4fd6ff;animation:glitch 3.3s infinite reverse steps(1);clip-path:inset(55% 0 0 0)}.intro h2{font-size:20px;color:#e9f3ff;letter-spacing:3px}.intro p{line-height:1.75;max-width:640px;margin:20px auto;color:#b7cadc;font-family:system-ui}.features{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:22px 0}.features span{border:1px solid #314663;background:#182840;padding:9px;font-size:12px;border-radius:4px}.ladder{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:0 0 26px}.ladder div{border:1px solid var(--c);background:color-mix(in srgb,var(--c) 12%,#0d1526);padding:10px 4px;display:grid;gap:3px;border-radius:5px;animation:rise .5s ease-out both}.ladder b{color:var(--c);font-size:20px}.ladder span{font-size:10px;font-weight:800}.ladder small{font-size:9px;color:#9fb9c7}.ladder em{font-style:normal;color:#ffd23f;font-size:9px;letter-spacing:-1px}.intro label{display:block;color:#a6f1d0;font-size:12px;letter-spacing:2px;text-align:left;max-width:450px;margin:0 auto 18px}.intro input{display:block;width:100%;background:#060f1d;border:1px solid #526a89;border-radius:4px;color:#fff;padding:15px;margin-top:8px}.intro input:focus{outline:2px solid #2dcf92;outline-offset:2px}.primary{background:#27c992;color:#061e1c;border-color:#63eaba}.primary:hover:not(:disabled){background:#6bf2b9}.pulse{animation:pulse 1.6s ease-in-out infinite}.huge{font-size:17px;padding:17px 35px;min-width:270px}.intro>small{display:block;margin-top:25px;color:#8ca3b8;line-height:1.7}.end h1{color:#6bf4b1}.end.lose h1{color:#ff7889;text-shadow:5px 5px #4a1426}.rank{display:inline-block;margin:6px 0 4px;padding:9px 16px;border:1px dashed #ffd23f;color:#ffe9a8;font-size:13px;animation:pop .5s .3s both}.results{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.results div{background:#1e2d43;padding:16px;border-radius:5px;animation:rise .5s both}.results strong{font-size:24px;color:#65ebb3;display:block}.results small{font-size:9px;color:#9fb9c7}.worldsDone{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:10px}.worldsDone span{font-size:11px;border:1px solid #47556f;padding:6px 9px;color:#9fb0c6;border-radius:4px}.worldsDone span.ok{border-color:var(--c);color:var(--c)}.end button{margin:5px}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.confetti i{position:absolute;top:-20px;width:9px;height:14px;animation:confetti linear forwards}.end>*:not(.confetti){position:relative;z-index:1}.worldbar{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 18%,#17243b),#17243b 60%);border:1px solid #415475;border-left:5px solid var(--c);border-radius:7px;padding:16px 22px;margin-bottom:12px;animation:slideIn .5s ease-out both}.worldbar small{font-size:11px;color:var(--c);letter-spacing:1px}.worldbar h2{font-size:22px;margin:6px 0}.worldbar p{color:#bed0da;font-size:12px;margin:0}.boss{text-align:right;display:grid;gap:5px}.boss span{color:#fb8297;font-size:11px}.boss b{font-size:16px}.boss small{color:#ff8592}.boss small.ok{color:#2ee59d}.gamewrap{position:relative;background:#0a1a27;border:3px solid #53718b;box-shadow:0 12px #070c15;overflow:hidden}.gamewrap canvas{display:block;width:100%;height:auto;image-rendering:pixelated}.gamewrap.warping canvas{animation:warp .9s ease-in forwards}.warp{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,#fff 0,#fff0 60%);animation:warpFlash .9s ease-in forwards;pointer-events:none}.worldCard{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center;gap:6px;background:radial-gradient(circle,#000c,#000e);cursor:pointer;animation:fadeIn .3s both}.worldCard>*{animation:zoomIn .6s cubic-bezier(.2,1.4,.4,1) both}.worldCard small{color:var(--c);letter-spacing:4px;font-size:13px}.worldCard h2{font-size:clamp(24px,4.4vw,46px);margin:4px 0;color:#fff;text-shadow:4px 4px color-mix(in srgb,var(--c) 50%,#000);animation-delay:.1s}.worldCard .stars{color:#ffd23f;font-size:24px;letter-spacing:4px;animation-delay:.2s}.worldCard .stars span{color:#fff2}.worldCard p{margin:2px;font-size:13px;color:#cfe2eb;animation-delay:.3s}.worldCard b{color:var(--c)}.worldCard .topics{color:#8ea6bb;font-size:12px}.worldCard em{font-size:11px;color:#8ea6bb;animation:blink 1.4s infinite}.gamefoot{display:flex;gap:22px;flex-wrap:wrap;background:#0d1628;border-top:2px solid #3c526a;padding:11px;color:#97b0c2;font-size:11px}.below{margin:20px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;background:#152039;padding:12px 17px;font-size:12px;color:#cfe2eb;border-radius:5px}.below b{color:#5dedbc}.tag{display:inline-block;margin-left:6px;padding:2px 6px;border:1px solid #ffd23f;color:#ffe066;font-size:10px;border-radius:3px}.lockedMsg{color:#ffb4c0;font-weight:800}.progress{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:22px 0}.pgroup{display:grid;gap:4px;justify-items:center;padding:6px;border:1px solid transparent;border-radius:6px}.pgroup.current{border-color:var(--c);background:color-mix(in srgb,var(--c) 8%,transparent)}.pgroup small{font-size:9px;color:var(--c);letter-spacing:1px}.pgroup>div{display:flex;gap:4px}.progress span{width:32px;height:32px;display:grid;place-items:center;border:1px solid #47556f;background:#151e31;color:#7d91aa;font-weight:800;font-size:12px;border-radius:3px}.progress .active{border-color:var(--c);color:#fff;animation:pulseBox 1.4s infinite}.progress .done{background:#198a64;color:#fff;border-color:#6cdeae;animation:pop .4s both}.overlay{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;background:#030710df;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto;animation:fadeIn .2s both}.terminal{position:relative;width:min(940px,100%);max-height:95vh;overflow:auto;animation:termIn .35s cubic-bezier(.2,1.3,.4,1) both;border-color:var(--c)}.terminal[data-shake="1"]{animation:shake .45s both}.terminal.solved{box-shadow:0 12px #070c17,0 0 60px color-mix(in srgb,#2ee59d 40%,transparent)}.terminal:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 3px)}.terminalHeader{position:sticky;top:0;z-index:2;padding:14px 21px;background:#203451;color:#64f4ba;display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:800;letter-spacing:1px;flex-wrap:wrap}.blink{color:#ff8592;animation:blink 1.5s infinite}.okTxt{color:#2ee59d}.terminalBody{padding:24px;position:relative;z-index:1}.titleRow{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.terminalBody h2{font-size:27px;margin:0 0 12px}.reward{font-size:12px;color:#ffe066;border:1px solid #ffe06666;padding:4px 8px;border-radius:4px}.reward s{color:#9a8a50}.terminalBody p{font-family:system-ui;line-height:1.6;color:#cbdeed}.terminalBody p b{color:#f6b976}.codeLabel{font-size:11px;color:#5de6ae;letter-spacing:1px;margin:20px 0 8px}.terminal pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#050e16;border-left:4px solid var(--c);padding:18px;line-height:1.55;color:#aaecca;font-size:13px;animation:typeIn .6s steps(12) both}.terminalBody h3{font-size:15px;line-height:1.6}.options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.options button{display:flex;gap:12px;text-align:left;align-items:flex-start;line-height:1.5;font-size:12px;min-height:72px;font-weight:500;animation:rise .35s both}.options button:nth-child(2){animation-delay:.05s}.options button:nth-child(3){animation-delay:.1s}.options button:nth-child(4){animation-delay:.15s}.options button:nth-child(5){animation-delay:.2s}.options button span{font-weight:900;color:#68e7b4;min-width:14px}.options button.selected{border-color:#6ff9b5;background:#173c38;box-shadow:0 0 0 2px #6ff9b555}.options button.right{opacity:1;border-color:#2ee59d;background:#0f4a37}.options button:disabled:not(.right){opacity:.35}.terminalActions{display:flex;justify-content:space-between;gap:10px;margin-top:20px;flex-wrap:wrap}.terminalActions>div{display:flex;gap:8px;flex-wrap:wrap}.hint,.feedback,.nudge{padding:13px;line-height:1.65;margin:15px 0;font-size:13px;background:#30402e;border:1px solid #9d9f45;animation:pop .3s both;border-radius:4px}.nudge{background:#2a2540;border-color:#7d6bd6}.feedback.ok{background:#103d32;border-color:#26bb8b;color:#baf9df}.feedback.bad{background:#3d1c2d;border-color:#c84c70;color:#ffd3db}.pauseOverlay{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.pausePanel{width:min(560px,100%);padding:34px;text-align:center;animation:termIn .35s cubic-bezier(.2,1.3,.4,1) both}.pausePanel h2{font-size:34px;margin:12px 0;color:#fff}.pausePanel p{font-family:system-ui;color:#cbdeed;line-height:1.6}.pausePanel p b{color:#6bf4b1}.pauseTime{font-size:30px;font-weight:800;color:#ffe066;margin:8px 0 4px}.pauseTime small{display:block;font-size:10px;color:#9fb0c6;letter-spacing:2px}.pauseRow{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:18px 0 12px}.muted{color:#8ca3b8!important;font-size:12px}.pauseBtn{background:#3a2f12;border-color:#ffd23f;color:#ffe066}.toasts{position:fixed;bottom:18px;left:50%;transform:translate(-50%);display:grid;gap:8px;z-index:40;pointer-events:none;width:min(520px,calc(100% - 32px))}.toast{padding:12px 16px;background:#152039;border:2px solid #466180;font-size:13px;font-weight:800;text-align:center;box-shadow:0 6px #070c17;animation:toast 2.8s both;border-radius:5px}.toast.good{border-color:#2ee59d;color:#c4ffe7}.toast.bad{border-color:#ff7889;color:#ffd3db}.touch{display:none}@keyframes blink{50%{opacity:.3}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-6px)}}@keyframes glitch{0%,86%,to{transform:none;opacity:0}88%{transform:translate(-4px,2px);opacity:.8}92%{transform:translate(4px,-2px);opacity:.8}96%{transform:translate(-2px);opacity:.6}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.85);opacity:0}70%{transform:scale(1.04);opacity:1}to{transform:none}}@keyframes termIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:none}15%{transform:translate(-12px)}30%{transform:translate(10px)}45%{transform:translate(-8px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}}@keyframes pulse{0%,to{box-shadow:0 0 #2dcf9288}50%{box-shadow:0 0 0 8px #2dcf9200}}@keyframes pulseBox{50%{box-shadow:0 0 10px var(--c);transform:scale(1.08)}}@keyframes typeIn{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}@keyframes toast{0%{opacity:0;transform:translateY(-20px)}10%,85%{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)}}@keyframes confetti{to{transform:translateY(110vh) rotate(720deg)}}@keyframes warp{to{filter:brightness(3) blur(4px);transform:scale(1.15)}}@keyframes warpFlash{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(max-width:850px),(hover:none)and (pointer:coarse){.touch{display:flex;gap:8px;margin:15px 0;flex-wrap:wrap;position:sticky;bottom:8px;z-index:5}.touch button{flex:1;min-height:58px;font-size:18px;touch-action:none;user-select:none;-webkit-user-select:none}}@media(max-width:850px){.app{padding:12px 12px 40px}.top{flex-wrap:wrap}.options{grid-template-columns:1fr}.intro{padding:22px;margin:16px auto}.ladder{grid-template-columns:repeat(3,1fr)}.worldbar{align-items:flex-start}.boss{display:none}.hud{order:3;width:100%}.terminalBody{padding:15px}.results{grid-template-columns:repeat(2,1fr)}.gamefoot{display:none}.below{flex-wrap:wrap}}@media print{body{background:#fff;color:#000}.top,.gamewrap,.worldbar,.below,.progress,.touch,.headerActions,.confetti,.toasts,.end button{display:none}.panel{border:0;box-shadow:none;background:#fff}.intro{margin:0}.results div{background:#eee}.results strong,.end h1{color:#000;text-shadow:none}}
