@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(./press-start-2p-latin-400-normal-_wFEWmAB.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-500-normal-Cerq10X2.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2) format("woff2")}:root{--void: #05090f;--floor: #0b141d;--panel: #0e1a26;--panel-soft: #132433;--line: #1e3a50;--edge: #2f6285;--cyan: #4fd6f5;--cyan-dim: #2b8fb0;--gold: #f5c21b;--gold-dim: #9c7c14;--red: #ff5a5a;--red-dim: #6d2020;--green: #52e39a;--green-dim: #16412f;--magenta: #e36bc8;--text: #dfebf4;--text-dim: #8fa9bd;--radius: 4px;--font-display: "Press Start 2P", "Courier New", monospace;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--cols: 17;--rows: 18}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--void);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}#root{min-height:100%}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.app{max-width:1000px;margin:0 auto;padding:14px 18px 20px;display:flex;flex-direction:column;gap:12px}.masthead{border-bottom:1px solid var(--line);padding-bottom:10px}.masthead h1{font-family:var(--font-display);font-weight:400;font-size:20px;line-height:1.2;margin:0 0 8px;color:var(--gold);text-shadow:0 0 12px rgba(245,194,27,.45),2px 2px 0 #7a5f0c;letter-spacing:.02em}.masthead p{margin:0;color:var(--text-dim);font-size:13px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 244px;gap:16px;align-items:start}.board-wrap{position:relative;width:min(100%,470px);margin:0 auto}.board{position:relative;width:100%;aspect-ratio:var(--cols) / var(--rows);background-color:var(--floor);background-size:100% 100%;background-position:center;background-repeat:no-repeat;border:1px solid var(--edge);border-radius:var(--radius);box-shadow:0 0 0 1px #4fd6f51f,0 0 24px #061420e6;overflow:hidden}.board:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.sprite{position:absolute;top:0;left:0;width:calc(100% / var(--cols));height:calc(100% / var(--rows));display:grid;place-items:center;pointer-events:none}.actor{transform:translate(calc(var(--px) * 100%),calc(var(--py) * 100%));transition:transform var(--step, .12s) linear;overflow:visible;z-index:3}.player{z-index:5}.enemy{z-index:4}.sprite-art{position:absolute;left:50%;bottom:-10%;width:185%;height:185%;background-repeat:no-repeat;z-index:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.75))}.enemy.harmless:before{content:"";position:absolute;left:50%;top:45%;width:210%;height:210%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#f5d67ad9,#f5d67a66 45%,#f5d67a00 72%);z-index:0;animation:shimmer 1.1s ease-in-out infinite}.enemy.harmless .sprite-art{filter:drop-shadow(0 0 4px #f5d67a) drop-shadow(0 0 9px rgba(245,214,122,.95))}@keyframes shimmer{0%,to{opacity:.7}50%{opacity:1}}.player.blinking .sprite-art{animation:blink .26s steps(1) infinite}@keyframes blink{0%,49.9%{opacity:1}50%,to{opacity:.3}}.folder{transform:translate(calc(var(--fx) * 100%),calc(var(--fy) * 100%));z-index:2}.folder-icon{width:78%;height:78%;display:block}.folder.available .folder-icon{animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{filter:drop-shadow(0 0 2px rgba(245,194,27,.6));transform:scale(1)}50%{filter:drop-shadow(0 0 8px rgba(245,194,27,1));transform:scale(1.1)}}.folder-label{position:absolute;left:50%;transform:translate(-50%);bottom:-13px;font-family:var(--font-display);font-size:6px;letter-spacing:0;white-space:nowrap;color:var(--gold);background:#05090fe0;border:1px solid var(--gold-dim);border-radius:2px;padding:2px 3px;line-height:1}.folder.at-bottom .folder-label{bottom:auto;top:-13px}.folder.completed .folder-label{color:var(--green);border-color:var(--green)}.board-note{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:11.5px;color:var(--text-dim)}.legend-item{display:inline-flex;align-items:center;gap:5px}.legend-swatch{width:14px;height:14px;border-radius:50%;border:1px solid var(--edge);background:var(--gold);flex:none}.legend-swatch.wall{border-radius:2px;background:var(--panel-soft);border-color:var(--edge);box-shadow:inset 0 0 0 1px #4fd6f540}.legend-swatch.folder,.legend-swatch.done{border:none;border-radius:0;display:grid;place-items:center;background:transparent}.legend-swatch.hero{position:relative;width:20px;height:20px;border:none;border-radius:0;background:transparent}.legend-swatch.hero .sprite-art{position:absolute;left:50%;bottom:0;width:118%;height:118%;filter:none}.legend-swatch.chaser{border-radius:3px;background:var(--red);border-color:var(--red)}.legend-swatch.glow{border:none;background:radial-gradient(circle,#f5d67a,#f5d67a40 70%,#f5d67a00)}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:inset 0 0 0 1px #4fd6f50f}.panel h2{font-family:var(--font-display);font-size:9px;font-weight:400;margin:0;padding-bottom:8px;border-bottom:1px solid var(--line);color:var(--cyan);letter-spacing:.06em;text-transform:uppercase}.stat-list{display:flex;flex-direction:column;gap:7px;margin:0}.stat{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.stat dt{font-size:12px;color:var(--text-dim)}.stat dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums;font-size:13.5px;color:var(--text)}.meter{height:5px;background:var(--panel-soft);border:1px solid var(--line);border-radius:3px;overflow:hidden}.meter span{display:block;height:100%;background:linear-gradient(90deg,var(--cyan-dim),var(--cyan));box-shadow:0 0 8px #4fd6f5cc;transition:width .24s ease-out}.lives{color:var(--red);letter-spacing:1.5px;margin-right:7px;font-size:14px;text-shadow:0 0 6px rgba(255,90,90,.6)}.life.spent{color:var(--line);text-shadow:none}.lives-count{font-size:11.5px;font-weight:500;color:var(--text-dim)}.shield-banner{margin:0;padding:5px 8px;text-align:center;font-family:var(--font-display);font-size:7px;line-height:1.6;color:var(--text-dim);background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius)}.shield-banner.calm{color:#0a1f16;background:var(--green);border-color:var(--green)}.shield-banner.on{color:#1a1204;background:var(--gold);border-color:var(--gold);box-shadow:0 0 14px #f5c21b8c}.panel-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px;border-top:1px solid var(--line)}.btn{border:1px solid var(--edge);background:var(--panel-soft);color:var(--cyan);border-radius:var(--radius);padding:6px 10px;font-size:12px;font-weight:500;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.btn:hover{background:#1a3247;box-shadow:0 0 10px #4fd6f54d}.btn.primary{background:var(--gold);border-color:var(--gold);color:#1a1204;font-weight:600}.btn.primary:hover{background:#ffd449;box-shadow:0 0 14px #f5c21b99}.btn.wide{width:100%;padding:9px 12px;font-size:14px}.dpad{display:grid;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(3,36px);gap:4px;justify-content:center}.dpad button{border:1px solid var(--edge);background:var(--panel-soft);border-radius:var(--radius);display:grid;place-items:center;padding:0;color:var(--cyan)}.dpad button:hover:not(:disabled){background:#1a3247;box-shadow:0 0 10px #4fd6f559}.dpad button:disabled{opacity:.35;cursor:default}.dpad .up{grid-area:1 / 2}.dpad .left{grid-area:2 / 1}.dpad .right{grid-area:2 / 3}.dpad .down{grid-area:3 / 2}.dpad-hint{text-align:center;font-size:11px;color:var(--text-dim);margin:0}.scrim{position:fixed;inset:0;background:#03070cd1;backdrop-filter:blur(2px);display:grid;place-items:center;padding:16px;z-index:50;overflow-y:auto}.modal{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:0 0 0 1px #4fd6f526,0 18px 48px #000000b3;width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:18px 20px}.modal-eyebrow{font-family:var(--font-display);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}.modal h2{font-size:18px;font-weight:600;line-height:1.4;margin:0 0 16px;color:var(--text)}.choices{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.choice{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;border:1px solid var(--line);background:var(--panel-soft);color:var(--text);border-radius:var(--radius);padding:11px 13px;font-size:14px;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.choice:hover:not(:disabled){border-color:var(--cyan);box-shadow:0 0 12px #4fd6f540}.choice:disabled{cursor:default}.choice .key{font-family:var(--font-display);font-size:9px;color:var(--cyan);flex:none;width:16px;padding-top:2px}.choice .mark{margin-left:auto;flex:none;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:4px}.choice.is-correct{border-color:var(--green);background:var(--green-dim)}.choice.is-correct .key,.choice.is-correct .mark{color:var(--green)}.choice.is-wrong{border-color:var(--red);background:var(--red-dim)}.choice.is-wrong .key,.choice.is-wrong .mark{color:var(--red)}.choice.dimmed:disabled{opacity:.55}.verdict{border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius);padding:12px 14px;margin-bottom:14px}.verdict.correct{border-color:var(--green);background:var(--green-dim)}.verdict.incorrect{border-color:var(--red);background:var(--red-dim)}.verdict h3{margin:0 0 5px;font-family:var(--font-display);font-size:9px;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:6px}.verdict.correct h3{color:var(--green)}.verdict.incorrect h3{color:var(--red)}.verdict p{margin:0;font-size:13.5px;color:var(--text)}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:8px}.kbd-list{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:13.5px}.kbd-list li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dotted var(--line);padding-bottom:5px}kbd{font-family:var(--font-display);font-size:8px;border:1px solid var(--edge);border-radius:3px;padding:3px 5px;background:var(--panel-soft);color:var(--cyan);white-space:nowrap}.status-message{border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--radius);padding:10px 12px;font-size:13px;background:var(--panel);color:var(--text)}.status-message.error{border-left-color:var(--red);color:var(--red)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.screen{position:fixed;inset:0;z-index:90;background:#04070c;display:grid;place-items:center;padding:8px}.screen-frame{position:relative;width:min(100%,calc((100vh - 16px) * 16 / 9));aspect-ratio:16 / 9;background-size:100% 100%;background-position:center;background-repeat:no-repeat;border-radius:var(--radius);overflow:hidden}.screen-panel{position:absolute;background:linear-gradient(180deg,#08151f,#050c14);border:1px solid var(--cyan-dim);border-radius:6px;box-shadow:0 0 14px #4fd6f559,inset 0 0 18px #4fd6f514;display:grid;align-content:center;padding:2.2% 3%;overflow:hidden}.screen-panel-title{margin:0 0 .9em;text-align:center;font-family:var(--font-display);font-size:clamp(7px,1.05vh,11px);letter-spacing:.08em;color:var(--cyan);text-transform:uppercase}.screen-rules{list-style:none;margin:0;padding:0;display:grid;gap:.55em;font-size:clamp(9px,1.35vh,14px);color:var(--text)}.screen-rules li{display:flex;gap:.7em;align-items:baseline;line-height:1.25}.screen-rules .key{font-family:var(--font-display);font-size:.62em;color:var(--cyan);flex:none;width:5.2em;text-transform:uppercase}.screen-stats{margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.5em 1.6em;font-size:clamp(10px,1.5vh,16px)}.screen-stats>div{display:flex;justify-content:space-between;align-items:baseline;gap:.8em;border-bottom:1px solid rgba(79,214,245,.18);padding-bottom:.3em}.screen-stats dt{color:var(--text-dim)}.screen-stats dd{margin:0;font-family:var(--font-display);font-size:.78em;color:var(--gold);font-variant-numeric:tabular-nums}.screen-action{position:absolute;border:0;padding:0;background:transparent;border-radius:8px;transition:box-shadow .14s ease,background .14s ease}.screen-action:hover{background:#ffffff24;box-shadow:0 0 22px #f5c21bbf}.screen-action:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}@media (max-width: 860px){.layout{grid-template-columns:minmax(0,1fr)}.panel{order:-1;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title title" "stats dpad" "shield dpad" "actions actions";column-gap:18px;row-gap:10px;align-items:start}.panel h2{grid-area:title}.panel .stat-list{grid-area:stats}.panel .dpad{grid-area:dpad;align-self:center}.panel .dpad-hint{display:none}.panel .shield-banner{grid-area:shield;align-self:start}.panel .panel-actions{grid-area:actions}.masthead h1{font-size:16px}.app{padding:12px 14px 18px}}@media (max-width: 520px){.panel{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "stats" "shield" "dpad" "actions"}.panel .dpad{justify-self:center}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
