:root{--bg:#08080c;--panel:#121218;--fg:#f2f3f5;--dim:rgba(255,255,255,.55);--gold:#E8B44F;--red:#ff3e5e;--blue:#4da3ff;--grn:#7dffb2;--line:rgba(255,255,255,.12)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:Manrope,system-ui,sans-serif;overflow:hidden;overscroll-behavior:none}
[hidden]{display:none!important}
.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;text-align:center;overflow:auto}
#map{justify-content:flex-start;padding-top:max(24px,4vh);padding-bottom:40px}
h1{font-family:'Press Start 2P',monospace;font-size:clamp(28px,8vw,52px);letter-spacing:4px;color:var(--gold);margin:0 0 8px;text-shadow:0 0 24px rgba(232,180,79,.35)}
.sub{color:var(--dim);margin:0 0 18px;font-size:14px;letter-spacing:1px;text-transform:uppercase;min-height:1em}
#levels{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px;width:min(440px,100%)}
@media (min-width:760px){#levels{grid-template-columns:repeat(5,1fr);width:min(980px,100%)}}
.world{display:flex;flex-direction:column;align-items:center;gap:2px}
.world svg{width:100%;max-width:170px;aspect-ratio:1;display:block}
.world span{font-family:'Press Start 2P',monospace;font-size:8px;letter-spacing:1px;color:var(--dim)}
.world.full span{color:var(--wc)}
.chunk{cursor:default;transition:opacity .15s}
.chunk.open{cursor:pointer}
.chunk.open:hover{opacity:.75}
.chunk.next{animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
.world .wn{font-family:'Press Start 2P',monospace;font-size:16px;fill:#f2f3f5}
.world .ws{font-family:Manrope,sans-serif;font-size:11px;fill:rgba(255,255,255,.55)}
.foot{color:var(--dim);font-size:12px;margin:22px 0 0;letter-spacing:1px}
.big{font-family:'Press Start 2P',monospace;font-size:14px;letter-spacing:3px;padding:16px 26px;border-radius:14px;border:2px solid var(--gold);background:var(--gold);color:#000;cursor:pointer}
.big.ghost{background:none;color:var(--gold)}
.big:active{transform:scale(.98)}

.c-leg{font-family:'Press Start 2P',monospace;font-size:11px;letter-spacing:2px;color:var(--dim);margin:0 0 12px}
.c-name{font-family:'Press Start 2P',monospace;font-size:clamp(20px,6vw,30px);letter-spacing:3px;color:var(--gold);margin:0 0 14px}
#c-demo{width:300px;height:170px;max-width:100%;border:2px solid var(--line);border-radius:14px;background:#0e0e14;margin:0 0 14px}
.c-line{font-size:15px;line-height:1.4;max-width:420px;margin:0 0 22px;color:var(--dim)}

#play{padding:0;display:block}
#c{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
#hud{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;pointer-events:none;font-family:'Press Start 2P',monospace;font-size:11px;letter-spacing:1px;color:var(--dim)}
#hud #hud-mid{color:var(--fg)}
#back{pointer-events:auto;background:var(--panel);border:2px solid var(--line);color:var(--fg);border-radius:10px;width:40px;height:36px;font-size:18px;cursor:pointer;line-height:1}
#rewind{position:absolute;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);font-family:'Press Start 2P',monospace;font-size:13px;letter-spacing:2px;padding:14px 22px;border-radius:14px;border:2px solid var(--gold);background:rgba(232,180,79,.12);color:var(--gold);cursor:pointer}
#rewind:active{background:rgba(232,180,79,.3)}
#reset{position:absolute;right:14px;bottom:calc(18px + env(safe-area-inset-bottom));font-family:'Press Start 2P',monospace;font-size:9px;letter-spacing:2px;padding:12px 12px;border-radius:12px;border:2px solid rgba(255,255,255,.2);background:none;color:rgba(255,255,255,.6);cursor:pointer}
#reset:active{border-color:#fff;color:#fff}

.e-title{font-family:'Press Start 2P',monospace;font-size:13px;letter-spacing:2px;color:var(--dim);margin:0 0 14px}
.e-stars{font-size:44px;letter-spacing:6px;color:var(--gold);margin:0 0 10px;line-height:1}
.e-why{font-size:16px;line-height:1.4;max-width:440px;margin:0 0 26px}
.e-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

/* 3D (2026-10-07): the house renders in #c3; #c stays on top, transparent, for taps and words */
#c3{position:absolute;display:block;border-radius:18px;pointer-events:none;width:0;height:0}
body:not(.three) #c3{display:none}
#view{position:absolute;left:14px;bottom:calc(18px + env(safe-area-inset-bottom));font-family:'Press Start 2P',monospace;font-size:9px;letter-spacing:2px;padding:12px 12px;border-radius:12px;border:2px solid rgba(255,255,255,.2);background:none;color:rgba(255,255,255,.6);cursor:pointer}
body:not(.three) #view{display:none}
/* the locker (2026-10-07): pick your runner; all free */
.lk-open{font-family:'Press Start 2P',monospace;font-size:10px;letter-spacing:2px;padding:11px 16px;border-radius:12px;border:2px solid var(--gold);background:none;color:var(--gold);cursor:pointer;margin:0 0 18px}
#locker{justify-content:flex-start;padding-top:max(18px,3vh);gap:10px}
#lk{width:min(320px,80vw);height:min(320px,80vw);display:block;border-radius:20px;background:radial-gradient(circle at 50% 40%,#23262f,#0b0c10 70%)}
.lk-row{display:flex;align-items:center;gap:12px;width:min(440px,100%);justify-content:space-between}
.lk-row>span{font-family:'Press Start 2P',monospace;font-size:9px;letter-spacing:2px;color:var(--dim);min-width:52px;text-align:left}
.lk-row>div{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.lk-pill{font-family:'Press Start 2P',monospace;font-size:9px;letter-spacing:1px;padding:10px 10px;border-radius:10px;border:2px solid var(--line);background:var(--panel);color:var(--fg);cursor:pointer}
.lk-pill.on{border-color:var(--gold);color:var(--gold)}
.lk-dot{width:30px;height:30px;border-radius:50%;border:3px solid transparent;cursor:pointer;padding:0}
.lk-dot.on{border-color:#fff}
#lk-done{margin-top:6px}
