@font-face{font-family:"Press Start 2P";src:url(/assets/PressStart2P-Regular-2BZhbCiP.ttf)format("truetype");font-display:swap}:root{--bg:#1c1018;--panel:#3a2438;--panel-hi:#4d3049;--panel-lo:#28172a;--ink:#fbeedd;--ink-dim:#cdb8b0;--accent:#f4c542;--accent-ink:#2a1722;--good:#7fc46a;--bad:#e0604a;--outline:#120a10;--pixel:"Press Start 2P", ui-monospace, monospace;--text:ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--text);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;margin:0;font-size:16px;overflow:hidden}#app{display:flex;position:fixed;inset:0}h1,h2,.btn,.stat,.eyebrow,.goal,.badge,.banner,.level-num,.level-title,kbd{font-family:var(--pixel);letter-spacing:.02em;font-weight:400}.icon{image-rendering:pixelated;image-rendering:crisp-edges;background-size:100% 100%;flex:none;display:inline-block}.btn{min-width:44px;min-height:44px;color:var(--ink);background:var(--panel);border:3px solid var(--outline);cursor:pointer;touch-action:manipulation;border-radius:0;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:12px;line-height:1.3;display:inline-flex;box-shadow:inset -3px -3px #00000059,inset 3px 3px #ffffff1a}.btn:hover{background:var(--panel-hi)}.btn:active{transform:translateY(2px);box-shadow:inset 3px 3px #00000059}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{box-shadow:none;color:var(--ink-dim);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--ink);border-color:var(--panel-hi)}.btn.big{min-height:52px;padding:14px 24px;font-size:15px}.btn.toggle{justify-content:space-between}.toggle-state{text-align:right;min-width:3.5em;color:var(--accent)}.btn[aria-checked=false] .toggle-state{color:var(--ink-dim)}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button:disabled{cursor:default}.screen{padding:calc(16px + var(--safe-t)) calc(16px + var(--safe-r)) calc(16px + var(--safe-b)) calc(16px + var(--safe-l));text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:clamp(8px,2.2vh,18px);display:flex;overflow-y:auto}.logo{color:var(--accent);text-shadow:0 4px 0 #c8902c, 0 8px 0 var(--outline), 4px 8px 0 var(--outline);margin:0;font-size:clamp(26px,min(8vw,9vh),60px);line-height:1.15}.tagline{color:var(--ink-dim);margin:0;font-size:clamp(14px,2.4vh,17px)}.title-scene-wrap{aspect-ratio:200/44;border:3px solid var(--outline);background:var(--outline);flex:none;width:min(600px,92vw,118vh);max-height:26vh;position:relative}.title-scene{width:100%;height:100%;display:block;position:absolute;inset:0}.menu{flex-direction:column;align-items:stretch;gap:10px;min-width:min(280px,100%);display:flex}.title-footer{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.publisher{color:var(--ink-dim);opacity:.7;margin:0;font-size:12px}.select h2{color:var(--accent);margin:0;font-size:20px}.level-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;width:min(720px,100%);margin:0;padding:0;list-style:none;display:grid}.level-card{width:100%;min-height:132px;color:var(--ink);background:var(--panel);border:3px solid var(--outline);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px 12px;display:flex;box-shadow:inset -4px -4px #00000059,inset 4px 4px #ffffff1a}.level-card:hover:not(:disabled){background:var(--panel-hi);transform:translateY(-2px)}.level-card.locked{opacity:.55}.thumb{aspect-ratio:2;object-fit:contain;width:100%;max-width:200px;image-rendering:pixelated;border:2px solid var(--outline);background:var(--outline)}.level-card.locked .thumb{filter:grayscale()brightness(.6)}.level-num{color:var(--ink-dim);font-size:10px}.level-title{font-size:13px;line-height:1.4}.level-lock{font-family:var(--pixel);color:var(--ink-dim);align-items:center;gap:8px;font-size:10px;display:flex}.stars{justify-content:center;gap:6px;display:flex}.overlay{z-index:10;padding:calc(12px + var(--safe-t)) calc(12px + var(--safe-r)) calc(12px + var(--safe-b)) calc(12px + var(--safe-l));background:#0a050a8c;place-items:center;animation:.18s ease-out fade-in;display:grid;position:fixed;inset:0}.card{text-align:center;background:var(--panel);border:4px solid var(--outline);width:min(460px,100%);max-height:100%;padding:20px;animation:.22s ease-out pop-in;overflow-y:auto;box-shadow:inset -4px -4px #0000004d,inset 4px 4px #ffffff14,0 10px #00000059}.card h2{color:var(--accent);margin:6px 0 12px;font-size:clamp(15px,4vw,20px);line-height:1.4}.card h2.lost{color:var(--ink)}.card p{margin:10px 0;line-height:1.45}.card .menu{max-width:300px;margin:0 auto}.eyebrow{color:var(--ink-dim);text-transform:uppercase;margin:0;font-size:10px}.goal{color:var(--ink);font-size:12px}.hint{color:var(--ink-dim);font-size:16px}.hint.small{font-size:14px}.star-text{font-family:var(--pixel);color:var(--ink-dim);font-size:10px}.chips{flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.chip{font-family:var(--pixel);background:var(--panel-lo);border:2px solid var(--outline);align-items:center;gap:8px;padding:6px 10px;font-size:11px;display:inline-flex}.results{font-family:var(--pixel);grid-template-columns:auto auto;justify-content:center;gap:8px 18px;margin:14px 0;font-size:11px;display:grid}.results dt{color:var(--ink-dim);text-align:right}.results dd{text-align:left;margin:0}.actions{justify-content:center;gap:10px;margin-top:16px;display:flex}.actions.wrap{flex-wrap:wrap}.scroll{text-align:left}.help-skills{gap:10px;margin:12px 0;padding:0;list-style:none;display:grid}.help-skills li{align-items:flex-start;gap:10px;display:flex}.help-skills b{font-family:var(--pixel);margin-bottom:4px;font-size:11px;display:block}.help-skills span{color:var(--ink-dim);font-size:15px;line-height:1.4}.shortcuts{grid-template-columns:auto 1fr;align-items:center;gap:8px 14px;font-size:15px;display:grid}.shortcuts dd{color:var(--ink-dim);margin:0}kbd{text-align:center;background:var(--panel-lo);border:2px solid var(--outline);min-width:2.4em;padding:4px 6px;font-size:10px;display:inline-block}.game{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.hud{background:var(--panel-lo);border-color:var(--outline);border-style:solid;border-width:0;flex:none;align-items:center;gap:8px;display:flex}.hud-top{padding:calc(6px + var(--safe-t)) calc(8px + var(--safe-r)) 6px calc(8px + var(--safe-l));border-bottom-width:3px}.hud-bottom{padding:8px calc(8px + var(--safe-r)) calc(8px + var(--safe-b)) calc(8px + var(--safe-l));border-top-width:3px;justify-content:space-between}.stats{flex:1;justify-content:center;gap:clamp(10px,4vw,32px);display:flex}.stat{align-items:center;gap:6px;font-size:14px;display:flex}.stat .of{color:var(--ink-dim);font-size:11px}.stat.done b{color:var(--good)}.stat.low b{color:var(--bad);animation:1s steps(2,start) infinite blink}.hud-btn{width:48px;height:48px;padding:0}.hud-btn.speed{gap:6px;width:auto;min-width:64px;padding:0 10px}.speed-label{font-size:11px}.stage{background:#120a10;flex:1;min-height:0;position:relative;overflow:hidden}canvas.world{touch-action:none;width:100%;height:100%;image-rendering:pixelated;cursor:crosshair;display:block;position:absolute;inset:0}.skills{gap:8px;display:flex}.skill{width:68px;height:64px;color:var(--ink);background:var(--panel);border:3px solid var(--outline);cursor:pointer;touch-action:manipulation;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px;transition:transform 80ms;display:flex;position:relative;box-shadow:inset -3px -3px #00000059,inset 3px 3px #ffffff1a}.skill .name{font-family:var(--pixel);font-size:8px}.skill .count{font-family:var(--pixel);color:var(--accent);font-size:11px;position:absolute;top:3px;right:4px}.skill .key{font-family:var(--pixel);color:var(--ink-dim);font-size:8px;position:absolute;top:3px;left:5px}.skill.selected{background:var(--panel-hi);border-color:var(--accent);box-shadow:inset -3px -3px 0 #00000040, 0 4px 0 var(--accent);transform:translateY(-4px)}.skill.selected:after{content:"";border:5px solid #0000;border-top-color:var(--accent);width:0;height:0;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)}.skill.empty{opacity:.45}.skill.empty .count{color:var(--ink-dim)}.skill:disabled{opacity:.6}.controls{gap:8px;display:flex}.finish{z-index:2;width:-moz-fit-content;width:fit-content;margin:0 auto;animation:1.2s ease-in-out infinite pulse;position:absolute;bottom:16px;left:0;right:0}.finish[hidden],.banner[hidden],.badge[hidden],.hud-btn[hidden]{display:none}.banner{color:var(--ink);border:2px solid var(--outline);pointer-events:none;background:#120a10cc;padding:6px 10px;font-size:10px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.badge{color:var(--ink);border:2px solid var(--bad);pointer-events:none;background:#120a10cc;padding:6px 10px 6px 24px;font-size:10px;position:absolute;top:10px;left:10px}.badge:before{content:"";background:var(--bad);width:8px;height:8px;margin-top:-4px;animation:1s steps(2,start) infinite blink;position:absolute;top:50%;left:9px}.toast{max-width:calc(100% - 24px);color:var(--ink);border:2px solid var(--outline);opacity:0;pointer-events:none;background:#120a10d9;padding:8px 12px;font-size:15px;transition:opacity .15s,transform .15s;position:absolute;top:48px;left:50%;transform:translate(-50%,-8px)}.toast.show{opacity:1;transform:translate(-50%)}.miss{pointer-events:none;width:22px;height:22px;margin:-11px 0 0 -11px;animation:.45s ease-out forwards miss;position:absolute}.miss:before,.miss:after{content:"";background:var(--bad);width:4px;height:22px;position:absolute;top:0;left:9px;transform:rotate(45deg)}.miss:after{transform:rotate(-45deg)}.shake{animation:.3s shake}.skill.selected.shake{animation:.3s shake-raised}@keyframes shake{25%{translate:-4px}50%{translate:4px}75%{translate:-2px}}@keyframes shake-raised{25%{translate:-4px}50%{translate:4px}75%{translate:-2px}}@keyframes miss{0%{opacity:1;scale:.6}to{opacity:0;scale:1.2}}@keyframes blink{to{visibility:hidden}}@keyframes pulse{50%{filter:brightness(1.2);scale:1.05}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(12px)scale(.97)}}@media (hover:none){.skill .key{display:none}}@media (max-aspect-ratio:1){.hud-bottom{flex-direction:column;align-items:stretch;gap:10px}.skills{justify-content:center}.skill{flex:1;max-width:96px;height:72px}.controls{justify-content:center}.stats{gap:12px}.stat{font-size:12px}}@media (max-height:440px) and (min-aspect-ratio:1){.hud-top{padding-top:calc(3px + var(--safe-t));padding-bottom:3px}.hud-bottom{padding-top:5px;padding-bottom:calc(5px + var(--safe-b))}.hud-btn{width:44px;height:44px}.skill{width:60px;height:52px}.skill .name{display:none}.stat{font-size:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
