:root{font-family:Noto Sans SC,PingFang SC,Inter,system-ui,sans-serif;line-height:1.5;color:#eef2f7;background:#0f1420}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(1200px 600px at 50% -10%,#22314d 0%,transparent 60%),#0f1420}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:1px 6px;margin:0 2px;border-radius:5px;border:1px solid #41506b;border-bottom-width:2px;background:#1b2434;color:#cfe0f5;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.app-shell{max-width:1000px;margin:0 auto;padding:28px 16px 40px;display:grid;gap:14px}.app-head h1{margin:0 0 4px;font-size:clamp(22px,3.4vw,30px);letter-spacing:.06em}.app-head p{margin:0;color:#93a4bd;font-size:13px}.app-foot{color:#74849c;font-size:12px;text-align:center}.game{display:grid;gap:10px}.game-hud{display:flex;flex-wrap:wrap;gap:8px}.hud-chip{display:flex;align-items:baseline;gap:8px;padding:6px 12px;border-radius:8px;border:1px solid #2a3752;background:#161f2e;font-variant-numeric:tabular-nums}.hud-label{font-size:11px;letter-spacing:.14em;color:#7d8ea6}.hud-chip strong{font-size:16px;color:#f3d27a}.hud-total{font-size:12px;color:#7d8ea6;font-weight:400}.hud-level-name{font-size:12px;color:#b9cae2;letter-spacing:.06em}.hearts{display:inline-flex;gap:2px}.heart{color:#ff5d5d;font-size:15px}.heart-empty{color:#39465c}.stage{position:relative;border-radius:10px;overflow:hidden;border:1px solid #2a3752;box-shadow:0 24px 48px #00000073;background:#5c94fc}.stage-canvas{display:block;width:100%;height:auto;image-rendering:pixelated}.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:16px;background:#090e18b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.overlay-card{width:min(440px,100%);padding:22px 22px 24px;border-radius:12px;border:1px solid #33415c;background:#131b29;box-shadow:0 18px 40px #00000080;text-align:center}.overlay-card h2{margin:0 0 8px;font-size:20px;letter-spacing:.05em}.overlay-card p{margin:0 0 14px;color:#a8b8cd;font-size:13px}.keys{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:7px;font-size:13px;color:#c2d1e4}.primary{appearance:none;border:0;border-radius:9px;padding:11px 26px;font-size:15px;font-weight:700;letter-spacing:.08em;color:#10202f;background:linear-gradient(180deg,#ffd772,#f0ac3c);cursor:pointer;transition:transform .08s ease,filter .15s ease}.primary:hover{filter:brightness(1.06)}.primary:active{transform:translateY(1px)}.primary:focus-visible,.touch-btn:focus-visible,.ghost:focus-visible{outline:3px solid #7fb3ff;outline-offset:2px}.ghost{appearance:none;border:1px solid #3a4a66;border-radius:9px;padding:10px 18px;font-size:13px;font-weight:600;color:#c8d7ea;background:#1a2434;cursor:pointer;transition:background .15s ease}.ghost:hover{background:#223049}.overlay-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.overlay-note{color:#74849c;font-size:12px}.failures{color:#ff9f7d}.toast{position:absolute;left:50%;top:14px;transform:translate(-50%);padding:7px 16px;border-radius:999px;background:#0c1420db;border:1px solid #3a4a66;color:#d7e3f4;font-size:13px;letter-spacing:.04em;pointer-events:none;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.touch-controls{display:none;gap:10px;justify-content:center;padding-top:4px}.touch-btn{width:60px;height:52px;border-radius:10px;border:1px solid #34425c;background:#18212f;color:#d7e3f4;font-size:20px;font-weight:700;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}.touch-btn:active{background:#22304a}.touch-jump{width:84px;background:#24344d}@media(hover:none),(pointer:coarse),(max-width:720px){.touch-controls{display:flex}}
