*{box-sizing:border-box}html,body{margin:0;height:100%;background:#140d06;color:#f3e9dc;font-family:system-ui,sans-serif}#app{position:relative;height:100%;overflow:hidden}#stage{display:block;width:100%;height:100%}.screen{position:absolute;inset:0;display:grid;place-content:center;align-content:center;gap:.7rem;text-align:center;padding:1.2rem;z-index:10;overflow-y:auto;background:radial-gradient(ellipse at center,#140d0699,#0c0703d6)}.screen[hidden]{display:none}.eyebrow{margin:0;font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:#f0b24f}h1{margin:0;font-size:clamp(2.2rem,9vw,4.6rem);line-height:1;letter-spacing:-.02em}h2{margin:0;font-size:clamp(1.8rem,6vw,3rem);line-height:1.1}.screen>*{text-shadow:0 1px 4px #000}.lede{margin:0 auto;max-width:34rem;color:#e0d3c1}.lede.small{font-size:.85rem;color:#d3c4b0}.hint{margin:0;font-size:.8rem;color:#c3b29c}.primary{justify-self:center;padding:.75rem 1.7rem;border-radius:999px;font:inherit;border:1px solid #f0b24f;background:#f0b24f;color:#1a0f03;font-weight:700;cursor:pointer}.ghost{padding:.75rem 1.4rem;border-radius:999px;border:1px solid #9c8670;background:transparent;color:#f3e9dc;font:inherit;font-weight:600;cursor:pointer}.row{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:center}.stars{margin:0;font-size:2rem;letter-spacing:.25em;color:#ffb94e}.score-line{margin:0;font-weight:700}button:focus-visible{outline:2px solid #ffd45a;outline-offset:3px}#levels{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center}#levels button{display:grid;gap:.15rem;min-width:7.6rem;padding:.55rem .8rem;border-radius:.9rem;border:1px solid #6a4a28;background:#1a0f08cc;color:#f3e9dc;cursor:pointer;font:inherit}#levels button[aria-checked=true]{border-color:#f0b24f;background:#f0b24f2e;box-shadow:0 0 0 1px #f0b24f inset}.lv-name{font-weight:700}.lv-meta{font-size:.74rem;color:#dccbb4}#hud{position:absolute;inset:0;z-index:5;pointer-events:none;display:flex;flex-direction:column;gap:.4rem;padding:.7rem;background:linear-gradient(rgba(14,8,3,.7),transparent 38%)}#hud[hidden]{display:none}.hud-top{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.hud-top span{background:#0c0703d1;border:1px solid #6a4a28;border-radius:999px;padding:.22rem .65rem;font-size:.8rem;font-weight:600}.hud-top span.hot{color:#ffb070;border-color:#f08a3a}#mute-btn{pointer-events:auto;padding:.3rem .75rem;border-radius:999px;border:1px solid #6fd6c0;background:#0c0703cc;color:#7fe3cd;cursor:pointer;font-size:.78rem;margin-left:auto}.floor-row{display:flex;align-items:center;gap:.5rem}.meter-label{font-size:.78rem;color:#e0d3c1;white-space:nowrap;min-width:4.4rem}.meter{flex:1;height:10px;border-radius:5px;background:#3a2812;overflow:hidden;border:1px solid #5a3c1c}#hud-floor-fill{height:100%;width:0%;background:#f0b24f;transition:width .2s}#hud-floor-fill.danger{background:#ee5a2e}#hud-message{margin:0;text-align:center;font-size:.88rem;color:#fbeedb;min-height:1.2em;text-shadow:0 1px 3px #000}#pour-meter,#tune-meter{position:relative;height:20px;background:#2a1c10eb;border:1px solid #6a4a28;border-radius:10px;overflow:hidden}#tune-meter[hidden]{display:none}#pour-good{position:absolute;top:0;bottom:0;left:calc(var(--c, 50%) - 21%);width:42%;background:#6f7a2a}#pour-perfect{position:absolute;top:0;bottom:0;left:calc(var(--c, 50%) - 9%);width:18%;background:#7fb069}#pour-cursor{position:absolute;top:-2px;bottom:-2px;width:4px;margin-left:-2px;background:#fff5e6}#tune-zone{position:absolute;top:0;bottom:0;background:#7fb069}#tune-needle{position:absolute;top:-2px;bottom:-2px;width:4px;margin-left:-2px;background:#fff5e6}#tune-meter.gust-l,#tune-meter.gust-r{border-color:#ffd45a;animation:gust .35s ease-in-out infinite alternate}#tune-meter.gust-l:before,#tune-meter.gust-r:after{content:"◀◀";position:absolute;top:0;font-size:.7rem;line-height:18px;color:#ffd45a}#tune-meter.gust-l:before{right:6px}#tune-meter.gust-r:after{content:"▶▶";left:6px}@keyframes gust{to{box-shadow:0 0 10px #ffd45a}}#warn-banner{position:absolute;top:34%;left:50%;transform:translate(-50%);margin:0;max-width:92vw;padding:.4rem 1rem;border-radius:999px;background:#b03418f0;border:1px solid #ffd45a;color:#fff;font-weight:700;font-size:.85rem;text-align:center;white-space:nowrap;animation:warn .6s ease-in-out infinite alternate}#warn-banner[hidden]{display:none}@keyframes warn{to{transform:translate(-50%) scale(1.05)}}#touch-controls{margin-top:auto;pointer-events:auto;display:flex;gap:.5rem;justify-content:space-between;align-items:center;padding-bottom:env(safe-area-inset-bottom,.3rem)}#touch-controls[hidden]{display:none}#touch-controls button{padding:.9rem 1rem;border-radius:14px;border:1px solid #f0b24f;background:#140d06c7;color:#f3e9dc;font:inherit;font-weight:700;font-size:.95rem;touch-action:none;user-select:none;-webkit-user-select:none}#touch-controls button.primary{background:#f0b24f;color:#1a0f03;padding:1rem 1.6rem;font-size:1.05rem;flex:1}#btn-sweep{border-color:#7fb8ff}#btn-sweep:disabled{opacity:.45}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at center,transparent 58%,rgba(8,3,2,.5))}@media(prefers-reduced-motion:reduce){#warn-banner,#tune-meter.gust-l,#tune-meter.gust-r{animation:none}}@media(max-height:520px){.screen{place-content:start center}.lede.small{display:none}}
