:root{--font-sans:var(--font-body), system-ui, -apple-system, "Segoe UI", sans-serif;--font-head:var(--font-display), var(--font-sans);--gold:#f2c14e;--brand:#085da9;--glass:#06101eb8;--line:#ffffff24}*{box-sizing:border-box}html,body{color:#f4f7fb;height:100%;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;user-select:none;background:#0b1a2b;margin:0;overflow:hidden}.app{touch-action:none;position:fixed;inset:0}#game{width:100%;height:100%;display:block;position:absolute;inset:0}button{font:inherit;color:inherit;cursor:pointer}.hud{pointer-events:none;padding:max(12px, env(safe-area-inset-top)) 14px 14px;position:absolute;inset:0}.hud-l,.hud-r{gap:8px;display:flex;position:absolute;top:12px}.hud-l{flex-direction:column;gap:2px;left:14px}.hud-r{align-items:center;right:12px}.meters{font-family:var(--font-head);letter-spacing:-.03em;text-shadow:0 2px 12px #00000073;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.3rem);font-weight:700;line-height:1}.meters span{opacity:.8;margin-left:3px;font-size:.5em}.best{opacity:.85;text-shadow:0 1px 6px #00000080;font-size:.78rem}.pill{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(8px);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;height:34px;padding:0 12px 0 8px;font-weight:600;display:inline-flex}.coin{background:radial-gradient(circle at 35% 35%, #ffe9a3, var(--gold) 55%, #b9851b);border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 2px #f2c14e4d}.chakana{color:var(--gold);text-align:center;width:16px;font-size:16px}.icon-btn{pointer-events:auto;border:1px solid var(--line);background:var(--glass);backdrop-filter:blur(8px);border-radius:999px;place-items:center;width:34px;height:34px;display:grid}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.icon-btn .i-off,.muted .icon-btn .i-on{display:none}.muted .icon-btn .i-off{display:block}.zone,.toast{text-align:center;opacity:0;transition:opacity .4s,transform .5s cubic-bezier(.16,1,.3,1);position:absolute;left:50%;transform:translateY(-8px)}.zone{background:var(--glass);border:1px solid var(--line);font-family:var(--font-head);white-space:nowrap;border-radius:999px;padding:8px 16px;font-size:.95rem;font-weight:600;top:64px}.toast{background:linear-gradient(#281a04d1,#140c02d1);border:1px solid #f2c14e8c;border-radius:18px;gap:2px;padding:14px 26px 16px;display:grid;top:22%;transform:translateY(-8px)scale(.92);box-shadow:0 12px 40px -10px #f2c14e80}.toast small{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);min-height:1em;font-size:.68rem}.toast strong{font-family:var(--font-head);color:var(--gold);letter-spacing:-.02em;font-size:clamp(1.6rem,1.2rem + 2vw,2.4rem);line-height:1.1}.toast span{opacity:.92;font-size:1rem}.zone.show,.toast.show{opacity:1;transform:none}.screen{opacity:0;visibility:hidden;background:radial-gradient(#040a1259,#040a12b3);place-items:center;padding:16px;transition:opacity .35s,visibility .35s;display:grid;position:absolute;inset:0}.screen.show{opacity:1;visibility:visible}.panel{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(16px);text-align:center;user-select:text;border-radius:22px;gap:14px;width:min(100%,520px);max-height:100%;padding:clamp(20px,3vw,32px);display:grid;overflow:auto;box-shadow:0 30px 80px -30px #000000b3}.panel.small{width:min(100%,340px)}.kicker{font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:#79b6eb;margin:0;font-size:.72rem}h1,h2,h3{font-family:var(--font-head);letter-spacing:-.03em;margin:0;line-height:1.05}h1{background:linear-gradient(100deg, #ffe39a, var(--gold) 45%, #e08a2c);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.2rem,1.6rem + 3vw,3.4rem)}h2{font-size:clamp(1.6rem,1.3rem + 1.4vw,2.2rem)}h3{opacity:.85;margin-top:4px;font-size:.95rem;font-weight:600}.sub{opacity:.85;margin:0;font-size:.95rem;line-height:1.55}.btn{border:1px solid var(--line);background:#ffffff0f;border-radius:999px;justify-self:center;min-width:200px;padding:12px 22px;font-weight:600;transition:transform .25s,background-color .2s}.btn:hover{transform:translateY(-2px)}.btn.primary{background:var(--brand);border-color:#0000;font-size:1.02rem;box-shadow:0 10px 30px -10px #085da9e6}.btn.primary:hover{background:#1675c8}.keys{text-align:left;grid-template-columns:repeat(2,1fr);gap:8px 14px;margin:4px 0 0;padding:0;font-size:.82rem;list-style:none;display:grid}.keys li{opacity:.88;align-items:center;gap:8px;display:flex}kbd{border:1px solid var(--line);min-width:24px;height:24px;font-family:var(--font-mono), monospace;background:#ffffff12;border-bottom-width:2px;border-radius:6px;place-items:center;margin-right:3px;padding:0 6px;font-size:.72rem;display:inline-grid}.touch,.tip{opacity:.7;margin:0;font-size:.8rem}.row{font-size:.88rem}.best-line b{color:var(--gold)}.dict{text-align:left;border:1px solid var(--line);background:#ffffff08;border-radius:14px;padding:10px 14px;font-size:.85rem}.dict summary{cursor:pointer;font-weight:600}.chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.dict .chips{justify-content:flex-start;margin-top:10px}.chip{background:#f2c14e14;border:1px solid #f2c14e59;border-radius:999px;padding:4px 10px;font-size:.8rem}.chip b{color:var(--gold)}.empty{opacity:.7;font-size:.85rem}.badge{background:var(--gold);color:#2a1a00;border-radius:999px;justify-self:center;margin:0;padding:4px 12px;font-size:.78rem;font-weight:700;display:none}.badge.show{display:block}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stats div{border:1px solid var(--line);background:#ffffff0a;border-radius:14px;gap:2px;padding:10px 6px;display:grid}.stats small{opacity:.75;font-size:.72rem}.stats b{font-family:var(--font-head);font-variant-numeric:tabular-nums;font-size:1.35rem}.cam-offer{gap:6px;display:grid}.cam-offer[hidden]{display:none}.cam-btn{justify-content:center;align-items:center;gap:8px;display:inline-flex}.cam-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;width:18px;height:18px}.cam-btn.on{color:var(--gold);border-color:#f2c14e99}.cam-help{opacity:.7;margin:0;font-size:.76rem;line-height:1.45}.cam{left:12px;bottom:max(12px, env(safe-area-inset-bottom));z-index:5;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);border-radius:16px;width:clamp(150px,18vw,210px);position:absolute;overflow:hidden;box-shadow:0 16px 40px -18px #000000b3}.cam[hidden]{display:none}.cam-view{aspect-ratio:4/3;background:#050b14;position:relative}.cam-view video,.cam-view canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.cam-arrows{justify-content:center;gap:6px;font-size:.8rem;font-weight:700;display:flex;position:absolute;inset:auto 0 6px}.cam-arrows span{color:#ffffff8c;background:#00000073;border-radius:7px;place-items:center;width:22px;height:22px;transition:background-color .15s,color .15s,transform .15s;display:grid}.cam-arrows span.hit{background:var(--gold);color:#2a1a00;transform:scale(1.15)}.cam-bar{align-items:center;gap:4px;padding:6px 6px 6px 10px;display:flex}.cam-status{opacity:.9;flex:1;min-width:0;font-size:.7rem;line-height:1.25}.cam-status.warn{color:#ffb27c}.cam-tool{border:1px solid var(--line);background:#ffffff0d;border-radius:8px;flex:none;place-items:center;width:26px;height:26px;display:grid}.cam-tool svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.cam-tool.on{color:var(--gold);border-color:#f2c14e99}.loading{background:#0b1a2b;place-content:center;justify-items:center;gap:12px;font-size:.9rem;transition:opacity .5s,visibility .5s;display:grid;position:absolute;inset:0}.loading.hide{opacity:0;visibility:hidden}.spinner{border:3px solid #fff3;border-top-color:var(--gold);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}@media (height<=560px){.keys,.tip{display:none}.panel{gap:10px}}@media (width<=420px){.keys{display:none}}
