:root{--ink:#0e0e10;--paper:#f7f7f5;--accent:#ff7a18;--ok:#28a745;--warn:#ffcc00;--bad:#e03131;--ui:rgba(0,0,0,.65);--radius:14px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--ink);color:var(--paper);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif}.tap-root{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;gap:12px;padding:16px}.tap-header{display:flex;align-items:center;justify-content:space-between}.tap-brand{font-weight:700;letter-spacing:.3px}.tap-hud{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.badge{background:var(--ui);color:var(--paper);padding:6px 10px;border-radius:999px;font-weight:600}.badge .k{opacity:.75;margin-right:6px;font-weight:500}.tap-stage{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.35);background:#111}#gameCanvas{display:block;width:100%;height:100%}.tap-footer{opacity:.7;font-size:.9rem}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.75));color:var(--paper);padding:24px;text-align:center}.card{background:#151517;border:1px solid rgba(255,255,255,8%);border-radius:var(--radius);padding:18px 20px;max-width:520px;width:92%}.card h2{margin:0 0 8px;font-size:1.4rem}.card p{margin:0 0 14px;opacity:.85}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#000;padding:10px 14px;border-radius:10px;font-weight:700;border:none;cursor:pointer}.btn.secondary{background:#2b2b31;color:#fff}.controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.hidden{display:none!important}.tap-stage{aspect-ratio:16/9}@media(max-width:720px){.tap-stage{aspect-ratio:10/16}}.badge{transition:transform .08s ease}.tap-hud .badge:active{transform:scale(.98)}:root{--vh:1vh}.tap-root.immersive{padding:0;grid-template-rows:0 1fr 0}.tap-root.immersive .tap-header,.tap-root.immersive .tap-footer{display:none}.tap-root.immersive .tap-stage{position:fixed;inset:0;width:100svw;height:100svh;height:calc(var(--vh,1vh) * 100);aspect-ratio:auto}.tap-root,.tap-root .overlay .card{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}html.fullscreen-lock,body.fullscreen-lock{overflow:hidden;overscroll-behavior:contain}#gameCanvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}