:root{--wood-dark: #1d120c;--wood-mid: #3a2114;--wood-warm: #58321c;--cream-bg: #f6ebd4;--cream-card: #fcf5e5;--ink-dark: #25170f;--ink-muted: #69503d;--brass: #d9a541;--brass-bright: #f2cf78;--crimson: #b8291e;--jade: #1b7a4f;--glass-blue: #1a5cb8}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at 50% 30%,#2c1a10,#120b07);color:var(--cream-bg);font-family:Noto Sans JP,system-ui,-apple-system,sans-serif;-webkit-user-select:none;user-select:none}.is-hidden{display:none!important}.app-shell{position:relative;width:100%;max-width:460px;height:100dvh;margin:0 auto;display:flex;flex-direction:column;background:var(--wood-dark);box-shadow:0 0 48px #000000c7;overflow:hidden}.hud-top{height:15%;min-height:94px;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between;padding:8px 12px 6px;background:linear-gradient(180deg,#321d12,#22130b);border-bottom:2px solid #6e4826;z-index:10}.hud-row-primary{display:flex;align-items:center;justify-content:space-between;gap:8px}.hud-round-meta{display:flex;align-items:center;gap:6px;min-width:0}.round-badge{background:var(--crimson);color:#fff8eb;font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px;letter-spacing:.04em;white-space:nowrap}.round-title{font-family:Kaisei Decol,serif;font-size:13px;color:var(--brass-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-actions{display:flex;align-items:center;gap:6px}.points-chip{background:#d9a54129;border:1px solid rgba(217,165,65,.45);color:var(--brass-bright);font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap}.points-chip strong{font-size:13px;color:#fff5d6}.icon-btn{width:28px;height:28px;border-radius:6px;border:1px solid rgba(242,207,120,.35);background:#fff5e014;color:var(--brass-bright);cursor:pointer;display:grid;place-items:center;padding:0}.icon-btn[data-muted=true]{color:#9e876a;opacity:.7}.icon-btn[data-muted=true] .sound-waves{display:none}.hud-row-score{display:flex;align-items:center;gap:8px}.score-numbers{display:flex;align-items:baseline;gap:3px;white-space:nowrap}.score-label{font-size:10px;color:#cbb695;margin-right:2px}.score-current{font-family:Kaisei Decol,serif;font-size:20px;line-height:1;color:#fff6de}.score-sep,.score-target{font-size:12px;color:#c7b190}.score-track{flex:1;height:10px;border-radius:999px;background:#140c07;border:1px solid #593b21;overflow:hidden}.score-bar-fill{width:0%;height:100%;background:linear-gradient(90deg,#d99326,#f5cb66);transition:width .22s ease}.score-bar-fill.is-cleared{background:linear-gradient(90deg,#1b8c59,#5ee09b)}.btn-fast-finish{border:1px solid #79e6aa;background:#1a6e47;color:#f3fff8;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;cursor:pointer;white-space:nowrap}.hud-row-queue{display:flex;align-items:center;gap:6px;min-height:22px}.queue-label{font-size:10px;color:#ccb694;white-space:nowrap}.queue-preview{display:flex;align-items:center;gap:5px;flex:1;overflow:hidden}.queue-ball{display:inline-flex;align-items:center;gap:3px;padding:2px 6px 2px 4px;border-radius:999px;background:#fff5e014;border:1px solid rgba(255,245,224,.15);font-size:10px;color:#f6ead4;white-space:nowrap}.queue-ball.is-next{background:#f2cf7833;border-color:var(--brass);font-weight:700}.queue-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ffffff 0%,var(--ball-color) 65%,#071222 100%)}.queue-ball em{font-style:normal}.queue-empty{font-size:11px;color:#9e876a}.fever-banner{background:linear-gradient(90deg,#b8291e,#e3861e);color:#fffbe8;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap;animation:feverPulse .7s ease-in-out infinite alternate}@keyframes feverPulse{0%{transform:scale(.98)}to{transform:scale(1.04)}}.board-stage{position:relative;flex:1;height:70%;min-height:0;background:#1b120d;overflow:hidden}.board-container{width:100%;height:100%;touch-action:none}.floating-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:6}.floating-label{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;font-family:Kaisei Decol,serif;font-weight:700;font-size:17px;text-shadow:0 2px 6px rgba(0,0,0,.9);pointer-events:none;white-space:nowrap}.floating-label small{font-family:Noto Sans JP,sans-serif;font-size:10px;letter-spacing:.03em}.zoom-controls{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:5px;z-index:8}.zoom-btn{width:36px;height:28px;padding:0;border-radius:6px;border:1px solid rgba(242,207,120,.38);background:#180f0ad1;color:var(--cream-bg);font-size:13px;font-weight:700;white-space:nowrap;display:grid;place-items:center;cursor:pointer}.zoom-reset{font-size:10px}.inspector-card{position:absolute;left:12px;right:12px;bottom:12px;background:#fcf5e5f5;color:var(--ink-dark);border:2px solid var(--brass);border-radius:10px;padding:9px 12px;font-size:12px;box-shadow:0 8px 24px #0000007a;z-index:12}.inspector-card strong{display:block;font-size:13px;color:var(--crimson);margin-bottom:3px}.inspector-card p{margin:0;line-height:1.45}.placement-bar{position:absolute;left:10px;right:10px;top:10px;background:#1e120bf0;border:1.5px solid var(--brass);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;z-index:15;box-shadow:0 8px 20px #0000008c}.placement-hint{font-size:12px;font-weight:700;color:var(--brass-bright);text-align:center}.placement-buttons{display:flex;justify-content:center;gap:8px}.hud-bottom{height:15%;min-height:98px;flex-shrink:0;display:grid;grid-template-columns:1.15fr .85fr;gap:10px;padding:8px 12px 10px;background:linear-gradient(180deg,#2b180e,#190d07);border-top:2px solid #6e4826;z-index:10}.tray-panel{display:flex;flex-direction:column;min-width:0}.tray-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#d6c09d;margin-bottom:4px}.remaining-badge{background:#1a5cb847;border:1px solid rgba(112,184,255,.45);color:#e4f2ff;padding:1px 7px;border-radius:999px;font-size:11px}.remaining-badge strong{font-size:13px;color:#fff}.tray-canvas-wrap{flex:1;min-height:44px;border-radius:8px;border:2px solid #6f4825;overflow:hidden;box-shadow:inset 0 3px 8px #000000b3}.tray-canvas-wrap canvas{display:block;width:100%;height:100%}.plunger-panel{display:flex;flex-direction:column;gap:4px}.plunger-meter{display:flex;align-items:center;gap:6px}.plunger-meter-track{flex:1;height:6px;border-radius:999px;background:#120a06;border:1px solid #593b21;overflow:hidden}.plunger-meter-fill{width:0%;height:100%;background:linear-gradient(90deg,#d9a541,#d93829)}.plunger-meter-label{font-size:10px;color:var(--brass-bright);min-width:50px;text-align:right;font-weight:700}.plunger-track{position:relative;flex:1;border-radius:10px;background:linear-gradient(180deg,#1b100a,#2d1b11);border:2px solid #754c28;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:6px;touch-action:none;cursor:grab;overflow:hidden}.plunger-track:active{cursor:grabbing}.plunger-track.is-disabled{opacity:.45;cursor:not-allowed}.plunger-spring{position:absolute;bottom:0;width:24px;height:42px;background:repeating-linear-gradient(180deg,#d9a541 0px,#d9a541 3px,transparent 3px,transparent 7px);transform-origin:bottom center;opacity:.85;pointer-events:none}.plunger-knob{position:relative;z-index:2;width:78%;height:36px;border-radius:999px;background:linear-gradient(180deg,#f3d280,#c88e28 60%,#9b6914);border:1.5px solid #fff2c2;box-shadow:0 4px 10px #0000008c;display:flex;align-items:center;justify-content:center;gap:6px;color:#291608;font-weight:700;font-size:12px;pointer-events:none}.knob-grip{width:14px;height:8px;border-top:2px solid rgba(41,22,8,.45);border-bottom:2px solid rgba(41,22,8,.45)}.modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f0905d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:40}.modal-card{width:100%;max-width:390px;background:var(--cream-card);color:var(--ink-dark);border:3px solid #7b4c24;border-radius:14px;padding:20px 18px;text-align:center;box-shadow:0 18px 42px #000000a6}.retro-stamp{display:inline-block;margin:0 0 6px;padding:2px 10px;border:2px solid var(--crimson);color:var(--crimson);font-family:Kaisei Decol,serif;font-size:12px;font-weight:700;border-radius:4px;letter-spacing:.1em}.stamp-jade{border-color:var(--jade);color:var(--jade)}.stamp-gold{border-color:#a66c12;color:#a66c12}.game-title{margin:4px 0 10px;font-family:Kaisei Decol,serif;font-size:28px;line-height:1.2;color:var(--ink-dark);letter-spacing:.03em}.game-title span{font-size:18px;color:var(--crimson)}.title-lead{margin:0 0 12px;font-size:13px;line-height:1.55;color:var(--ink-muted)}.title-features{margin:0 0 16px;padding:10px 12px;list-style:none;background:#f2e4c7;border-radius:8px;border:1px solid #d9c095;text-align:left;font-size:12px;line-height:1.55}.title-features li+li{margin-top:4px}.modal-heading{margin:4px 0 10px;font-family:Kaisei Decol,serif;font-size:24px}.modal-summary{background:#f2e4c7;border:1px solid #d9c095;border-radius:8px;padding:10px 12px;margin-bottom:16px;font-size:13px;line-height:1.6}.modal-summary p{margin:3px 0}.modal-actions-col{display:flex;flex-direction:column;gap:8px}.btn-primary{border:none;border-radius:9px;background:linear-gradient(180deg,#cf392b,#9e2015);color:#fff8eb;font-weight:700;cursor:pointer;box-shadow:0 3px #66120b}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-secondary{border:1.5px solid #8c6239;border-radius:8px;background:#efe0c1;color:var(--ink-dark);font-weight:700;padding:7px 12px;cursor:pointer}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-lg{width:100%;padding:12px 16px;font-size:15px}.btn-sm{padding:5px 10px;font-size:11px}.shop-overlay{padding:10px;align-items:stretch}.shop-sheet{width:100%;background:var(--cream-card);color:var(--ink-dark);border:3px solid #7b4c24;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.shop-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;border-bottom:1.5px solid #ddc69c;padding-bottom:8px}.shop-eyebrow{margin:0;font-size:10px;font-weight:700;color:var(--crimson)}.shop-title{margin:1px 0 2px;font-family:Kaisei Decol,serif;font-size:17px}.shop-sub{margin:0;font-size:11px;color:var(--ink-muted)}.shop-wallet{background:#2b180e;color:var(--brass-bright);padding:6px 10px;border-radius:8px;text-align:right;flex-shrink:0}.wallet-label{display:block;font-size:9px;color:#ccb38d}.wallet-value{font-family:Kaisei Decol,serif;font-size:18px;font-weight:700}.shop-section{display:flex;flex-direction:column;gap:6px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-head h3{margin:0;font-size:12px;color:var(--ink-dark)}.offers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.offer-card{background:#f3e6cb;border:1.5px solid #cfb382;border-radius:9px;padding:8px;display:flex;flex-direction:column;gap:4px}.offer-card.is-purchased{opacity:.52}.offer-top{display:flex;justify-content:space-between;align-items:center;font-size:10px}.offer-kind{font-weight:700;color:var(--jade)}.offer-relic .offer-kind{color:#9e5d10}.offer-cost{font-weight:700;color:var(--crimson)}.offer-name{margin:0;font-size:12px;line-height:1.25}.offer-desc{margin:0;font-size:10.5px;line-height:1.4;color:var(--ink-muted);flex:1}.btn-buy{margin-top:4px;border:none;border-radius:6px;background:var(--jade);color:#f6fff9;font-size:11px;font-weight:700;padding:6px;cursor:pointer}.btn-buy:disabled{background:#9f927d;cursor:not-allowed}.deck-strip{display:flex;flex-wrap:wrap;gap:4px}.deck-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:6px;border:1.5px solid #c9af82;background:#f5ead3;color:var(--ink-dark);font-size:10px;font-weight:700;cursor:pointer}.deck-chip.is-selected{border-color:var(--crimson);background:#ffe7df}.deck-order{font-size:9px;color:var(--ink-muted)}.deck-dot{width:8px;height:8px;border-radius:50%;background:#26c}.deck-chip.ball-light .deck-dot{background:#2bb3c4}.deck-chip.ball-heavy .deck-dot{background:#4e5866}.deck-chip.ball-split .deck-dot{background:#239e62}.deck-chip.ball-magnet .deck-dot{background:#bf2a3d}.shop-relics-row{background:#f0e1c2;border-radius:8px;padding:6px 8px}.relics-label{font-size:10px;font-weight:700;color:var(--ink-muted)}.relics-list{display:flex;flex-wrap:wrap;gap:4px}.relic-pill{background:#fff8e6;border:1px solid #d4b06a;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700}.empty-note{font-size:10.5px;color:var(--ink-muted)}.shop-footer{margin-top:auto;padding-top:4px}
