:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;--gold:#ffc857;--ink:#0c0912;--panel:#191323;--line:#57466d;touch-action:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#08060c;color:#f8f1df}body{display:grid;place-items:center;background:radial-gradient(circle at 50% 10%,#2a1739,#08060c 64%)}button{border:2px solid #6a557f;border-radius:10px;padding:.8rem 1.1rem;background:#241b30;color:#fff;font:800 .92rem/1 inherit;text-transform:uppercase;letter-spacing:.07em;cursor:pointer;box-shadow:0 5px 0 #0a0710;transition:transform .08s,filter .15s}button:hover{filter:brightness(1.2)}button:active,.pressed{transform:translateY(3px);box-shadow:0 2px 0 #09060d}button:disabled{opacity:.4;cursor:not-allowed}.primary{border-color:#ffe08a;background:linear-gradient(#ffcf62,#e48c25);color:#2b1604;text-shadow:0 1px #fff3b7;font-size:1rem}#game-shell{position:relative;width:min(100vw,1600px);height:min(100dvh,1000px);display:flex;flex-direction:column;overflow:hidden;background:#0c0912;box-shadow:0 0 80px #000}#stage{position:relative;min-height:0;flex:1;overflow:hidden}canvas{display:block;width:100%;height:100%;background:#171020;image-rendering:pixelated}.hidden{display:none!important}#hud{height:58px;padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));display:flex;gap:clamp(10px,3vw,28px);align-items:center;background:linear-gradient(#1c1425,#100b17);border-bottom:2px solid #513e61;z-index:5}.health-wrap{display:flex;align-items:center;gap:8px;font-size:.7rem;font-weight:900}.health{width:clamp(90px,20vw,220px);height:15px;border:2px solid #efe3ce;background:#3a1420;box-shadow:inset 0 2px 4px #000}.health i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#a90e2d,#ff3d55);transition:width .2s}#score{color:var(--gold);margin-left:auto}#key-status{font-weight:900;color:#81758f;font-size:.82rem}#key-status.found{color:#ffe55c;text-shadow:0 0 12px #e5a900}.icon-button{padding:.55rem .75rem}.screen{position:absolute;inset:0;z-index:10;display:none;place-items:center;align-content:center;text-align:center;padding:clamp(16px,4vw,48px);overflow:auto;background:radial-gradient(circle at 50% 38%,rgba(71,44,83,.9),rgba(11,8,15,.98) 70%)}.screen.active{display:grid}.modal-screen{background:rgba(5,3,8,.77);backdrop-filter:blur(5px)}.panel{width:min(470px,92vw);display:grid;gap:12px;padding:clamp(22px,5vw,42px);border:3px solid #6d5880;border-radius:18px;background:linear-gradient(145deg,#251a30,#120d19);box-shadow:0 25px 80px #000}.panel.danger{border-color:#9e2940}.panel.victory{border-color:#d6a83a}.rune{font-size:4rem;color:#ffbf50;filter:drop-shadow(0 0 20px #df6e24);animation:float 2s ease-in-out infinite}@keyframes float{50%{transform:translateY(-8px)}}h1,h2{font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;letter-spacing:.04em;margin:.15em 0;text-transform:uppercase}h1{font-size:clamp(2.5rem,8vw,6.5rem);line-height:.82;text-shadow:0 6px #15101d,0 9px #7a4823}h1 span{color:var(--gold)}h2{font-size:clamp(2rem,6vw,4rem);color:var(--gold)}.eyebrow{margin:4px;color:#d5a9ed;font-weight:900;letter-spacing:.2em;font-size:.76rem}.lead{max-width:570px;color:#ddd0e4}.hint{font-size:.72rem;color:#8e8198;margin-top:18px}.button-stack{display:grid;gap:10px;width:min(300px,80vw);margin:14px auto}.character-grid{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:10px;width:min(900px,95vw);margin:18px auto}.character{padding:14px 8px;background:#181020}.character.selected{border-color:#ffd268;background:#382746;transform:translateY(-4px)}.avatar{display:grid;place-items:center;width:56px;height:70px;margin:auto auto 8px;border-radius:8px 8px 4px 4px;font-size:2.2rem;background:var(--color);border:3px solid var(--accent);text-shadow:0 2px 2px #000}.character b,.character small{display:block}.character small{margin-top:6px;color:#b7a9c2;font-size:.65rem}.results{display:grid;grid-template-columns:1fr 1fr;gap:8px}.results div{padding:10px;background:#100b17;border:1px solid #473752}.results strong{display:block;color:var(--gold);font-size:1.4rem}.upgrades{display:grid;grid-template-columns:1fr 1fr;gap:8px}.upgrades button{font-size:.7rem}#toast{position:absolute;top:72px;left:50%;z-index:7;transform:translate(-50%,-20px);opacity:0;pointer-events:none;background:#170e20e6;border:2px solid #d2a04a;border-radius:999px;padding:8px 16px;font-weight:900;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}#touch-controls{z-index:6;min-height:110px;padding:10px max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;justify-content:space-between;gap:12px;background:#0e0a14;border-top:2px solid #40334c}.move-controls,.action-controls{display:flex;gap:8px;align-items:center}#touch-controls button{width:64px;height:64px;padding:4px;font-size:1.6rem;border-radius:16px;user-select:none;-webkit-user-select:none}#touch-controls .jump{border-color:#d9aa45}#touch-controls small{display:block;font-size:.48rem;margin-top:3px}.action-controls button{width:72px}@media (hover:hover) and (pointer:fine){#touch-controls{min-height:78px}#touch-controls button{height:54px;width:72px}}@media(max-width:700px){.character-grid{grid-template-columns:repeat(3,1fr)}.character{padding:8px 4px}.avatar{width:42px;height:50px;font-size:1.6rem}.character small{display:none}#hud{height:50px}.health-wrap>span{display:none}#touch-controls{min-height:94px}#touch-controls button{width:54px;height:58px}.action-controls button{width:60px}h1{font-size:clamp(2.5rem,15vw,4.5rem)}}@media(max-height:520px) and (orientation:landscape){#hud{position:absolute;top:0;left:0;right:0;background:#100b17dd}.screen{padding:8px}.character-grid{margin:5px auto}.character{padding:5px}.avatar{height:40px;width:38px;font-size:1.3rem}#touch-controls{position:absolute;bottom:0;left:0;right:0;background:transparent;border:0;pointer-events:none}#touch-controls button{pointer-events:auto;background:#171020cc;opacity:.88}.hint,.lead{display:none}.panel{padding:14px}.rune{font-size:2rem}h1{font-size:3rem}h2{font-size:2rem}}