:root{--bg-deep: #191036;--bg-body: linear-gradient(160deg, #241457 0%, #191036 45%, #3b0f4f 100%);--bg-panel: rgba(255, 255, 255, .08);--panel-border-color: transparent;--pink: #ff5d8f;--yellow: #ffd166;--cyan: #4cc9f0;--purple: #9b5de5;--text: #fdf6ff;--text-sub: #cbb8e8;--warn-text: #ffb3c1;--divider: rgba(255, 255, 255, .08);--chip-bg: rgba(255, 255, 255, .12);--accent-tint: rgba(255, 209, 102, .08);--accent-tint-strong: rgba(255, 209, 102, .2);--btn-primary-bg: linear-gradient(135deg, #ff5d8f, #ff2d6f);--btn-primary-text: #fff;--btn-primary-shadow: 0 4px 16px rgba(255, 45, 111, .4);--btn-secondary-bg: linear-gradient(135deg, #4cc9f0, #3a86ff);--btn-secondary-text: #fff;--btn-ghost-bg: rgba(255, 255, 255, .14);--danger: #d90429;--card-bg: linear-gradient(160deg, #33206b, #241457);--overlay-bg: rgba(10, 5, 30, .6);--overlay-chip-bg: rgba(10, 5, 30, .55);--sticky-panel-bg: rgba(30, 18, 62, .96);--hit-gradient: linear-gradient(135deg, #ffd166, #ff9e00);--rank-1: #4cc9f0;--rank-glow-1: rgba(76, 201, 240, .9);--rank-tint-1: rgba(76, 201, 240, .1);--rank-2: #3ddc97;--rank-glow-2: rgba(61, 220, 151, .9);--rank-tint-2: rgba(61, 220, 151, .12);--rank-3: #ff5d8f;--rank-glow-3: rgba(255, 93, 143, .95);--rank-tint-3: rgba(255, 93, 143, .16);--rank-4: #ffd166;--rank-glow-4: rgba(255, 209, 102, .95);--rank-tint-4: rgba(255, 209, 102, .2);--rank-5: #c77dff;--rank-glow-5: rgba(199, 125, 255, .95);--rank-tint-5: rgba(199, 125, 255, .22)}:root[data-theme=deco]{--bg-deep: #120e18;--bg-body: radial-gradient(120% 90% at 50% -10%, rgba(230, 200, 122, .13), transparent 55%), linear-gradient(170deg, #1b1421 0%, #120e18 50%, #1d1226 100%);--bg-panel: rgba(230, 200, 122, .06);--panel-border-color: rgba(230, 200, 122, .24);--pink: #ff5d7a;--yellow: #e6c87a;--cyan: #a8c6bb;--purple: #8a6420;--text: #f2e8d0;--text-sub: #b3a683;--warn-text: #e89aa6;--divider: rgba(230, 200, 122, .16);--chip-bg: rgba(230, 200, 122, .12);--accent-tint: rgba(230, 200, 122, .08);--accent-tint-strong: rgba(230, 200, 122, .2);--btn-primary-bg: linear-gradient(135deg, #f0d68a, #c69f42);--btn-primary-text: #3c2a05;--btn-primary-shadow: 0 4px 16px rgba(230, 200, 122, .35);--btn-secondary-bg: linear-gradient(135deg, #a3163a, #7c0c26);--btn-secondary-text: #ffe9ee;--btn-ghost-bg: rgba(230, 200, 122, .14);--danger: #a3163a;--card-bg: linear-gradient(160deg, #251b2f, #151019);--overlay-bg: rgba(10, 8, 14, .65);--overlay-chip-bg: rgba(16, 12, 20, .62);--sticky-panel-bg: rgba(25, 19, 30, .96);--hit-gradient: linear-gradient(135deg, #f0d68a, #c69f42);--rank-1: #a8c6bb;--rank-glow-1: rgba(168, 198, 187, .85);--rank-tint-1: rgba(168, 198, 187, .1);--rank-2: #c9c0ab;--rank-glow-2: rgba(201, 192, 171, .85);--rank-tint-2: rgba(201, 192, 171, .12);--rank-3: #ff5d7a;--rank-glow-3: rgba(255, 93, 122, .9);--rank-tint-3: rgba(255, 93, 122, .14);--rank-4: #e6c87a;--rank-glow-4: rgba(230, 200, 122, .9);--rank-tint-4: rgba(230, 200, 122, .18);--rank-5: #fff0c2;--rank-glow-5: rgba(255, 240, 194, .95);--rank-tint-5: rgba(255, 240, 194, .2)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:Hiragino Maru Gothic ProN,BIZ UDGothic,Yu Gothic,system-ui,sans-serif;background:var(--bg-body);color:var(--text)}button{font-family:inherit}.splash{display:grid;place-items:center;height:100%;font-size:1.6rem}.game-page{display:flex;flex-direction:column;height:100%}.game-main{flex:1;display:flex;gap:12px;padding:12px;min-height:0}.stage{position:relative;flex:1;border-radius:18px;overflow:hidden;box-shadow:0 8px 30px #00000073;min-height:300px}.side-panel{width:340px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}@media(max-width:880px){.game-main{flex-direction:column;overflow-y:auto;padding-bottom:0}.stage{min-height:46vh;flex:none}.side-panel{width:100%;overflow-y:visible;flex:1 0 auto}}.hud{display:flex;align-items:center;gap:14px;padding:10px 16px;background:#00000059;border-bottom:1px solid var(--panel-border-color)}.hud__right{display:flex;align-items:center;gap:12px;margin-left:auto}.hud__balance{font-weight:700;color:var(--yellow)}.icon-btn{background:none;border:none;color:var(--text);cursor:pointer;width:42px;height:42px;padding:0;border-radius:10px;display:grid;place-items:center;transition:background .15s ease,color .15s ease}.icon-btn:hover:not(:disabled){background:var(--chip-bg)}.icon-btn--active{background:var(--accent-tint-strong);color:var(--yellow)}.sound-settings{position:relative;display:flex}.sound-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:236px;padding:14px;display:flex;flex-direction:column;gap:14px;border-radius:14px;background:var(--sticky-panel-bg);border:1px solid var(--panel-border-color);box-shadow:0 12px 32px #00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:sound-pop-in .14s ease-out}@keyframes sound-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.sound-pop__head{display:flex;align-items:center;justify-content:space-between}.sound-pop__title{font-weight:700}.switch{display:inline-flex;align-items:center;gap:8px;padding:0;border:none;background:none;cursor:pointer;font-weight:700;font-size:.78rem;color:var(--text-sub)}.switch__knob{position:relative;width:42px;height:22px;border-radius:999px;background:var(--chip-bg);transition:background .18s ease;flex:none}.switch__knob:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0006;transition:transform .18s ease}.switch--on{color:var(--yellow)}.switch--on .switch__knob{background:var(--btn-primary-bg)}.switch--on .switch__knob:after{transform:translate(20px)}.sound-row{display:grid;grid-template-columns:20px 30px 1fr 26px;align-items:center;gap:8px}.sound-row--disabled{opacity:.4}.sound-row__icon{display:grid;place-items:center;color:var(--text-sub)}.sound-row__name{font-size:.8rem;font-weight:700;color:var(--text-sub)}.sound-row__val{font-size:.76rem;text-align:right;color:var(--text-sub);font-variant-numeric:tabular-nums}.sound-row input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--yellow) var(--fill, 100%),var(--chip-bg) var(--fill, 100%));cursor:pointer}.sound-row input[type=range]:disabled{cursor:not-allowed}.sound-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--yellow);box-shadow:0 1px 4px #00000073;cursor:pointer}.sound-row input[type=range]::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:50%;background:var(--yellow);box-shadow:0 1px 4px #00000073;cursor:pointer}.bingo-card{position:relative;border-radius:14px;padding:22px 18px 18px;background:radial-gradient(130% 100% at 50% 0%,#1a1148,#0b0724 62%);box-shadow:0 14px 30px #0000008c,inset 0 0 0 1px #4cc9f033}.bingo-card:before{content:"";position:absolute;inset:4px;border-radius:11px;padding:12px;background-image:radial-gradient(circle,#ffdd87 2.4px,rgba(255,209,102,.3) 3.2px,transparent 4px);background-size:16px 16px;background-position:8px 8px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;filter:drop-shadow(0 0 3px rgba(255,209,102,.9));pointer-events:none}.bingo-card--empty{text-align:center;color:var(--text-sub);padding:30px 12px}.bingo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;overflow:hidden;border-radius:6px;background:#4cc9f06b;border:1px solid rgba(76,201,240,.7);box-shadow:0 0 14px #4cc9f059,inset 0 0 14px #4cc9f01f}.bingo-grid--header{margin-bottom:3px;gap:0;border:none;background:none;box-shadow:none;overflow:visible}.bingo-header{text-align:center;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-weight:900;font-size:1.25rem;letter-spacing:.02em;color:#ff6d9a;text-shadow:0 0 6px rgba(255,93,143,.95),0 0 18px rgba(255,93,143,.55);padding-bottom:4px}.bingo-cell{position:relative;z-index:0;aspect-ratio:1;display:grid;place-items:center;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-weight:800;font-size:1.6rem;font-variant-numeric:lining-nums tabular-nums;background:#100b30;color:#fdf6ff}.bingo-cell--center{color:var(--yellow);text-shadow:0 0 8px rgba(255,209,102,.8)}.cross-hint{position:absolute;top:2px;right:3px;font-size:.6rem;line-height:1;color:var(--yellow);opacity:.85;text-shadow:0 0 4px rgba(255,209,102,.7);pointer-events:none}.dauber{position:absolute;inset:0;margin:auto;z-index:-1;height:80%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff9dbd,transparent 46%),radial-gradient(circle,#e0245e 58%,#a51244);box-shadow:0 0 10px #ff5d8fd9,0 0 24px #ff5d8f66;animation:dauber-pop .28s ease-out;pointer-events:none}.bingo-cell--marked{color:#fff;text-shadow:0 1px 3px rgba(90,0,30,.85)}.bingo-cell--center.bingo-cell--marked{color:#fff;text-shadow:0 1px 3px rgba(90,0,30,.85),0 0 8px rgba(255,209,102,.6)}@keyframes dauber-pop{0%{transform:scale(1.6);opacity:0}70%{transform:scale(.94);opacity:1}}.bingo-cell--done .dauber{background:radial-gradient(circle at 35% 30%,#fff0bd,transparent 46%),radial-gradient(circle,#f5b731 58%,#c4880f);box-shadow:0 0 12px #ffd166f2,0 0 26px #ffd16680}.bingo-cell--done{color:#4a2f00;text-shadow:none}.bingo-cell--reach{--reach-color: var(--rank-1);--reach-glow: var(--rank-glow-1);--reach-tint: var(--rank-tint-1);--reach-pulse: 1s;background:linear-gradient(var(--reach-tint),var(--reach-tint)),#100b30}.bingo-cell--reach[data-rank="2"]{--reach-color: var(--rank-2);--reach-glow: var(--rank-glow-2);--reach-tint: var(--rank-tint-2);--reach-pulse: .8s}.bingo-cell--reach[data-rank="3"]{--reach-color: var(--rank-3);--reach-glow: var(--rank-glow-3);--reach-tint: var(--rank-tint-3);--reach-pulse: .6s}.bingo-cell--reach[data-rank="4"]{--reach-color: var(--rank-4);--reach-glow: var(--rank-glow-4);--reach-tint: var(--rank-tint-4);--reach-pulse: .42s}.bingo-cell--reach[data-rank="5"]{--reach-color: var(--rank-5);--reach-glow: var(--rank-glow-5);--reach-tint: var(--rank-tint-5);--reach-pulse: .3s}.bingo-cell--reach:after{content:"";position:absolute;inset:4px;z-index:3;border:2px solid var(--reach-color);border-radius:8px;box-shadow:0 0 12px var(--reach-glow),inset 0 0 9px var(--reach-glow);animation:reach-glow var(--reach-pulse) ease-in-out infinite;pointer-events:none}@keyframes reach-glow{50%{opacity:.55}}.bingo-cell--cross{z-index:2;animation:cross-resonate .56s ease-out infinite;animation-delay:calc(var(--cross-order, 0) * 70ms)}.bingo-cell--cross.bingo-cell--center{font-size:2.1rem;color:var(--rank-4);text-shadow:0 0 10px var(--rank-glow-4),0 0 22px var(--rank-glow-4)}@keyframes cross-resonate{0%,to{box-shadow:inset 0 0 #ffd16600}35%{box-shadow:inset 0 0 20px var(--rank-glow-4),0 0 14px var(--rank-glow-4)}}@media(prefers-reduced-motion:reduce){.bingo-cell--reach:after,.bingo-cell--cross,.dauber{animation:none}}[data-theme=deco] .bingo-card{border-radius:5px;background:linear-gradient(180deg,#120e1800 0% 16%,#120e18 30%),repeating-conic-gradient(from -90deg at 50% 34px,rgba(230,200,122,.17) 0 5deg,transparent 5deg 12deg),#120e18;box-shadow:0 14px 30px #0000008c,inset 0 0 0 1px #e6c87af2,inset 0 0 0 4px #120e1803,inset 0 0 0 5px #e6c87a73}[data-theme=deco] .bingo-card:before{content:none}[data-theme=deco] .bingo-header{font-family:Futura,Avenir Next,Century Gothic,sans-serif;font-weight:600;font-size:1.15rem;letter-spacing:.4em;text-indent:.4em;color:#e9cd85;background:linear-gradient(180deg,#f9e6ab,#c69f42);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}[data-theme=deco] .bingo-grid{border-radius:0;background:#e6c87a52;border:1px solid rgba(230,200,122,.7);box-shadow:none}[data-theme=deco] .bingo-grid--header{background:none;border:none}[data-theme=deco] .bingo-cell{background:#171122;color:#f2e8d0;font-weight:600;letter-spacing:.02em}[data-theme=deco] .bingo-cell--center,[data-theme=deco] .cross-hint{color:#e9cd85;text-shadow:none}[data-theme=deco] .dauber{background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.55),transparent 36%),conic-gradient(from 30deg,#e0335b,#8f1030 12%,#ff6f8f 24%,#a3163a,#d92645 52%,#7c0c26 68%,#ff5d7a 82%,#b01840 94%,#e0335b);box-shadow:0 3px 6px #0009,inset 0 0 0 2px #e6c87a,inset 0 0 12px #00000059}[data-theme=deco] .bingo-cell--marked{color:#fff;font-weight:700;text-shadow:0 1px 3px rgba(70,0,20,.9)}[data-theme=deco] .bingo-cell--done .dauber{background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.6),transparent 36%),conic-gradient(from 30deg,#f0cd6e,#9a7118 12%,#ffe9a8 24%,#b3841c,#e7bf4e 52%,#8a6420 68%,#ffe08a 82%,#c19430 94%,#f0cd6e);box-shadow:0 3px 6px #0009,inset 0 0 0 2px #fff0c2,inset 0 0 12px #0000004d,0 0 12px #ffd16680}[data-theme=deco] .bingo-cell--done{color:#42300a;text-shadow:none}[data-theme=deco] .bingo-cell--reach{background:linear-gradient(var(--reach-tint),var(--reach-tint)),#171122}[data-theme=deco] .bingo-cell--reach:after{inset:3px;border-radius:0;box-shadow:0 0 11px var(--reach-glow),inset 0 0 8px var(--reach-glow)}[data-theme=deco] .bingo-cell--reach:before{content:"";position:absolute;inset:3px;z-index:3;background:linear-gradient(115deg,transparent 36%,rgba(255,246,214,.5) 50%,transparent 64%);background-size:250% 100%;background-position:100% 0;animation:reach-sheen 1.8s linear infinite;pointer-events:none}@keyframes reach-sheen{0%{background-position:130% 0}to{background-position:-30% 0}}@media(prefers-reduced-motion:reduce){[data-theme=deco] .bingo-cell--reach:before{animation:none}}.reach-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;cursor:pointer;background:radial-gradient(circle at 50% 46%,#08041600 15%,#080416bd 72%);animation:reach-dim-in .28s ease-out both,reach-dim-out .3s ease-in calc(var(--vfx-duration) - .3s) both}.reach-overlay--r3{--vfx-color: var(--rank-3);--vfx-glow: var(--rank-glow-3)}.reach-overlay--r4{--vfx-color: var(--rank-4);--vfx-glow: var(--rank-glow-4)}.reach-overlay--r5{--vfx-color: var(--rank-5);--vfx-glow: var(--rank-glow-5)}.reach-overlay--r4,.reach-overlay--r5{cursor:default;pointer-events:none}.reach-overlay--r5:after{content:"";position:absolute;inset:6px;border:3px solid var(--rank-5);border-radius:16px;box-shadow:0 0 26px var(--rank-glow-5),inset 0 0 40px var(--rank-glow-5);animation:reach-glow .5s ease-in-out infinite;pointer-events:none}.reach-banner{position:relative;z-index:1;animation:reach-banner-in .4s cubic-bezier(.2,1.5,.4,1) both,reach-banner-out .28s ease-in calc(var(--vfx-duration) - .28s) both}.reach-banner__label{font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-weight:900;font-size:clamp(2.2rem,8vw,4.4rem);letter-spacing:.08em;color:var(--vfx-color);text-shadow:0 0 14px var(--vfx-glow),0 0 42px var(--vfx-glow),0 3px 0 rgba(0,0,0,.35)}.reach-overlay--r4 .reach-banner__label,.reach-overlay--r5 .reach-banner__label{display:inline-block;animation:reach-banner-beat .42s ease-in-out infinite}.reach-overlay--r5 .reach-banner__label{background:linear-gradient(100deg,#ff5d8f,#ffd166,#3ddc97,#4cc9f0,#c77dff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 18px var(--rank-glow-5))}[data-theme=deco] .reach-overlay--r5 .reach-banner__label{background:none;-webkit-text-fill-color:var(--rank-5)}.reach-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}.reach-particle{position:absolute;left:var(--x);bottom:-16px;width:var(--size);height:var(--size);border-radius:50%;background:var(--vfx-color);box-shadow:0 0 10px var(--vfx-glow);animation:reach-particle-rise calc(var(--vfx-duration) * .82) linear var(--delay) both}.reach-overlay--r5 .reach-particle:nth-child(5n+1){background:#ff5d8f}.reach-overlay--r5 .reach-particle:nth-child(5n+2){background:#ffd166}.reach-overlay--r5 .reach-particle:nth-child(5n+3){background:#3ddc97}.reach-overlay--r5 .reach-particle:nth-child(5n+4){background:#4cc9f0}[data-theme=deco] .reach-overlay--r5 .reach-particle:nth-child(3n+1){background:#e6c87a}[data-theme=deco] .reach-overlay--r5 .reach-particle:nth-child(3n+2){background:#fff0c2}[data-theme=deco] .reach-overlay--r5 .reach-particle:nth-child(3n){background:#ff5d7a}.reach-skip{position:absolute;right:16px;bottom:16px;padding:7px 16px;border:1px solid var(--divider);border-radius:999px;background:var(--overlay-chip-bg);color:var(--text-sub);font-family:inherit;font-size:.78rem;font-weight:700;cursor:pointer}@keyframes reach-dim-in{0%{opacity:0}}@keyframes reach-dim-out{to{opacity:0}}@keyframes reach-banner-in{0%{transform:scale(.6);opacity:0}}@keyframes reach-banner-out{to{transform:scale(1.15);opacity:0}}@keyframes reach-banner-beat{50%{transform:scale(1.07)}}@keyframes reach-particle-rise{0%{transform:translate(0) scale(.6);opacity:0}12%{opacity:1}to{transform:translate(var(--drift),-78vh) scale(1);opacity:0}}.bingo-card{transition:transform .28s ease-out}.bingo-card[data-vfx-rank]{transform:scale(1.045)}@media(prefers-reduced-motion:reduce){.reach-particles{display:none}.reach-overlay,.reach-banner,.reach-banner__label,.reach-overlay--r5:after{animation:none}.bingo-card{transition:none}.bingo-card[data-vfx-rank]{transform:none}}.daipan-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#03010aed}.daipan-overlay--fall{animation:daipan-fall .6s ease-in both}.daipan-overlay--fall,.daipan-overlay--silence,.daipan-overlay--shake,.daipan-overlay--scramble,.daipan-overlay--reveal{pointer-events:none}.daipan-overlay--shake,.daipan-overlay--scramble,.daipan-overlay--reveal{background:#03010ad1}.daipan-overlay--ready{cursor:pointer}.daipan-prompt{display:grid;justify-items:center;gap:12px;animation:daipan-prompt-in .3s ease-out both}.daipan-prompt__title{font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-weight:900;font-size:clamp(1.6rem,6vw,3rem);letter-spacing:.1em;color:var(--rank-4);text-shadow:0 0 14px var(--rank-glow-4),0 0 40px var(--rank-glow-4)}.daipan-punch{padding:16px 40px;border:none;border-radius:999px;background:var(--btn-primary-bg);color:var(--btn-primary-text);font-family:inherit;font-size:clamp(1.2rem,4vw,1.8rem);font-weight:900;letter-spacing:.04em;cursor:pointer;box-shadow:var(--btn-primary-shadow);animation:daipan-punch-beat .7s ease-in-out infinite}.daipan-prompt__hint{font-size:.85rem;color:var(--text-sub)}@keyframes daipan-fall{0%{opacity:0}}@keyframes daipan-prompt-in{0%{opacity:0;transform:scale(.92)}}@keyframes daipan-punch-beat{50%{transform:scale(1.06)}}.bingo-card[data-daipan]{position:relative;z-index:31;transform:none}.bingo-card[data-daipan=ready]{cursor:pointer}.bingo-card[data-daipan=shake]{animation:daipan-shake .5s cubic-bezier(.36,.07,.19,.97)}@keyframes daipan-shake{0%,to{transform:translate(0) rotate(0)}10%{transform:translate(-9px,3px) rotate(-1.2deg)}25%{transform:translate(8px,-3px) rotate(1deg)}40%{transform:translate(-6px,2px) rotate(-.7deg)}55%{transform:translate(5px,-2px) rotate(.5deg)}70%{transform:translate(-3px,1px) rotate(-.3deg)}85%{transform:translate(2px) rotate(.15deg)}}.bingo-card[data-daipan=scramble] .bingo-cell{animation:daipan-scramble .18s steps(2,end) infinite}.bingo-card[data-daipan=scramble] .bingo-cell:nth-child(2n){animation-direction:reverse}@keyframes daipan-scramble{0%{filter:blur(.6px);opacity:.55;transform:translateY(-2px) scale(.94)}to{filter:blur(1.4px);opacity:.9;transform:translateY(2px) scale(1.03)}}.bingo-card[data-daipan=reveal]{animation:daipan-reveal .6s ease-out}@keyframes daipan-reveal{0%{box-shadow:0 0 #ffd16600,0 14px 30px #0000008c}25%{box-shadow:0 0 42px var(--rank-glow-4),inset 0 0 30px var(--rank-glow-4)}}.result-revived{font-size:1.3rem;font-weight:900;letter-spacing:.08em;color:var(--rank-4);text-shadow:0 0 14px var(--rank-glow-4)}@media(prefers-reduced-motion:reduce){.daipan-overlay--fall,.daipan-prompt,.daipan-punch,.bingo-card[data-daipan=shake],.bingo-card[data-daipan=scramble] .bingo-cell,.bingo-card[data-daipan=reveal]{animation:none}}.jackpot-panel{position:fixed;left:12px;bottom:12px;z-index:6;padding:8px 14px;border-radius:14px;background:var(--overlay-chip-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border:1px solid var(--accent-tint-strong);text-align:left;pointer-events:none}.jackpot-panel__title{font-size:.72rem;font-weight:700;color:var(--text-sub);letter-spacing:.04em}.jackpot-panel__amount{font-size:1.5rem;font-weight:900;color:var(--yellow);text-shadow:0 0 14px var(--rank-glow-4);font-variant-numeric:tabular-nums;animation:jackpot-bump .5s ease-out}.jackpot-panel__unit{font-size:.8rem;font-weight:700;margin-left:3px}.jackpot-panel__rule,.jackpot-panel__last{font-size:.66rem;color:var(--text-sub)}.jackpot-panel__last{color:var(--pink);margin-top:2px}@keyframes jackpot-bump{0%{transform:scale(1)}35%{transform:scale(1.14);filter:brightness(1.3)}to{transform:scale(1)}}.result-jackpot{font-size:1.2rem;font-weight:900;color:var(--yellow);text-shadow:0 0 14px var(--rank-glow-4)}.result-jackpot span{display:block;font-size:1.6rem}@media(prefers-reduced-motion:reduce){.jackpot-panel__amount{animation:none}}.bet-panel,.extra-dialog,.ranking-panel,.spin-note{background:var(--bg-panel);border:1px solid var(--panel-border-color);border-radius:16px;padding:14px}.bet-panel{display:flex;flex-direction:column;gap:10px}.bet-panel__label{font-weight:700}.bet-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.bet-step{padding:10px 0;border-radius:10px;border:2px solid transparent;background:var(--chip-bg);color:var(--text);font-weight:700;font-size:1rem;cursor:pointer}.bet-step--active{border-color:var(--yellow);background:var(--accent-tint-strong);color:var(--yellow)}.btn{padding:12px 16px;border:none;border-radius:12px;font-size:1rem;font-weight:800;cursor:pointer;color:#fff;transition:transform .1s ease,filter .15s ease}.btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.1)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);box-shadow:var(--btn-primary-shadow)}.btn--secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text)}.btn--ghost{background:var(--btn-ghost-bg)}.btn--danger{background:var(--danger)}.btn--small{padding:6px 10px;font-size:.85rem;background:var(--purple)}.bet-actions{display:flex;flex-direction:column;gap:10px}.hint{margin:0;font-size:.85rem;color:var(--text-sub)}.hint--warn{color:var(--warn-text)}.spin-note{text-align:center;color:var(--yellow);font-weight:700}.ad-reward{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:12px;border:1px dashed var(--yellow);background:var(--accent-tint)}.ad-reward__title{margin:0;font-weight:700;color:var(--yellow)}.ad-demo{position:fixed}.ad-demo__card{background:var(--card-bg);border-radius:20px;padding:24px 28px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 10px 50px #0009;width:min(420px,90vw)}.ad-demo__badge{font-size:.75rem;color:var(--text-sub)}.ad-demo__screen{display:grid;place-items:center;height:140px;border-radius:12px;background:#0a051e;font-weight:700}.payout-table{position:absolute;top:10px;left:10px;z-index:5;background:var(--overlay-chip-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:12px;padding:8px 10px;border:none;color:inherit;text-align:left;cursor:pointer}.payout-table--collapsed{font-size:.8rem;font-weight:700;color:var(--text-sub);padding:8px 12px}.payout-table__title{font-size:.72rem;font-weight:700;color:var(--text-sub);margin-bottom:4px;display:flex;justify-content:space-between;gap:10px}.payout-table__hint{font-weight:400;opacity:.75}.stage-status{position:absolute;left:50%;bottom:14px;transform:translate(-50%);z-index:5;max-width:calc(100% - 24px);padding:6px 18px;border-radius:999px;background:var(--overlay-chip-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:var(--yellow);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.payout-row{display:grid;grid-template-columns:2.6em 3.8em 6.4em;gap:6px;padding:2px 6px;border-radius:6px;font-size:.82rem;font-weight:700}.payout-row--hit{background:var(--hit-gradient);box-shadow:0 0 10px #ffd166b3}.payout-row--hit span{color:#4a2d00}.payout-row__lines{color:var(--text-sub)}.payout-row__mult{text-align:right}.payout-row__pt{text-align:right;color:var(--yellow)}@media(max-width:880px){.payout-row{font-size:.74rem}}.extra-dialog h3{margin:0 0 10px}.extra-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.extra-actions .btn{white-space:nowrap}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:var(--overlay-bg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10}.game-page>.overlay{position:fixed}.result-card,.register-card{background:var(--card-bg);border:1px solid var(--panel-border-color);border-radius:20px;padding:30px 40px;text-align:center;display:flex;flex-direction:column;gap:14px;box-shadow:0 10px 50px #0009}.result-card--win{border:3px solid var(--yellow)}.overlay--tap{cursor:pointer}.result-hint{font-size:.85rem;color:var(--text-sub)}.overlay--quiet{background:#0a051e59;-webkit-backdrop-filter:none;backdrop-filter:none;cursor:pointer}[data-theme=deco] .overlay--quiet{background:#0a080e59}.result-card--lose{padding:22px 34px;animation:fade-slide .25s ease-out}@keyframes fade-slide{0%{opacity:0;transform:translateY(10px)}}.result-title{font-size:2.6rem;font-weight:900;color:var(--yellow)}.result-lines{font-size:1.1rem}.result-payout{font-size:2rem;font-weight:900;color:var(--pink)}.result-payout--lose{color:var(--text-sub);font-size:1.8rem}.register-card h1{margin:0;font-size:1.6rem}.register-card input{padding:12px;border-radius:10px;border:2px solid var(--purple);font-size:1rem;text-align:center}.ranking-panel__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ranking-panel h3{margin:0}.ranking-panel__close{border:none;background:none;color:var(--text);font-size:1rem;cursor:pointer;opacity:.6;width:44px;height:44px;margin:-12px -14px;display:grid;place-items:center}.ranking-panel__close:hover{opacity:1}.ranking-list{margin:0;padding:0;list-style:none}.ranking-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--divider)}.ranking-row__rank{width:2em}.ranking-row__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-row__pts{font-weight:700;color:var(--yellow)}.ranking-tabs{display:flex;gap:4px;margin-bottom:8px}.ranking-tabs__tab{flex:1;min-height:36px;padding:7px 0;border:1px solid var(--divider);border-radius:999px;background:none;color:var(--text);font-size:.85rem;font-weight:700;cursor:pointer;opacity:.6}.ranking-tabs__tab--active{background:var(--purple);border-color:var(--purple);opacity:1}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--danger);padding:12px 22px;border-radius:999px;font-weight:700;cursor:pointer;z-index:50}.ranking-page{min-height:100%;padding:4vh 6vw;text-align:center}.ranking-page h1{font-size:3.2rem;margin:0 0 1.5vh;color:var(--yellow);text-shadow:0 4px 20px rgba(255,209,102,.4)}.ranking-page__metric{margin:0 0 2vh;font-size:1.4rem;opacity:.75}.ranking-page .ranking-tabs{max-width:560px;margin:0 auto 3vh;gap:10px}.ranking-page .ranking-tabs__tab{padding:12px 0;font-size:1.3rem}.ranking-page__empty{font-size:1.6rem}.ranking-page__list{margin:0 auto;padding:0;list-style:none;max-width:900px}.ranking-page__row{display:flex;align-items:center;gap:18px;font-size:1.9rem;padding:14px 24px;margin-bottom:10px;border-radius:16px;background:var(--bg-panel)}.ranking-page__row--0{font-size:2.6rem;background:var(--accent-tint-strong)}.ranking-page__row--1{font-size:2.2rem}.ranking-page__rank{width:2.2em;text-align:left}.ranking-page__name{flex:1;text-align:left;font-weight:800}.ranking-page__best{font-size:.55em;color:var(--text-sub)}.ranking-page__pts{font-weight:900;color:var(--yellow)}.ranking-page__footer{margin-top:5vh;color:var(--text-sub)}.admin-page{padding:24px;max-width:900px;margin:0 auto}.admin-auth{display:flex;gap:10px;margin-bottom:16px}.admin-auth input{padding:10px;border-radius:8px;border:1px solid var(--purple)}.admin-table{width:100%;border-collapse:collapse;background:var(--bg-panel);border-radius:12px;overflow:hidden}.admin-table th,.admin-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--divider)}.admin-amount{width:90px;padding:6px;border-radius:6px;border:1px solid var(--purple);margin-right:6px}.admin-jackpot{background:var(--bg-panel);border:1px solid var(--panel-border-color);border-radius:12px;padding:14px 16px;margin-bottom:16px}.admin-jackpot__head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.admin-jackpot h2{margin:0;font-size:1.05rem}.admin-jackpot__now{font-weight:900;color:var(--yellow);font-variant-numeric:tabular-nums}.admin-jackpot__row{display:flex;align-items:center;gap:8px;margin:10px 0 4px}.admin-amount--wide{width:140px;margin-right:0;text-align:right}.admin-jackpot .hint{margin:4px 0 0}@media(max-width:880px){.hud{gap:8px;padding:8px 12px}.hud__right{gap:8px;flex-shrink:0}.hud__nickname{max-width:5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}.hud__balance{white-space:nowrap;font-size:.95rem}.jackpot-panel{position:static;padding:0;border:none;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;min-width:0;overflow:hidden}.jackpot-panel__title,.jackpot-panel__amount{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jackpot-panel__title{font-size:.6rem;line-height:1.1}.jackpot-panel__amount{font-size:.95rem}.jackpot-panel__rule,.jackpot-panel__last{display:none}.side-panel>.bet-panel,.side-panel>.extra-dialog,.side-panel>.spin-note{order:9;margin-top:auto;position:sticky;bottom:0;z-index:6;background:var(--sticky-panel-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #00000073;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.bingo-card--empty{padding:16px 12px}.ranking-panel,.ranking-toggle{display:none}.game-page--lobby .ranking-panel,.game-page--lobby .ranking-toggle{display:block;width:100%;order:10;margin-bottom:env(safe-area-inset-bottom)}.side-panel>.bet-panel,.side-panel>.extra-dialog{gap:6px;padding:9px 12px;padding-bottom:calc(9px + env(safe-area-inset-bottom))}.bet-panel__label{font-size:.78rem;color:var(--text-sub)}.bet-steps{gap:6px}.bet-step{padding:5px 0;font-size:.85rem;border-width:1.5px;border-radius:8px}.bet-panel .btn,.extra-actions .btn{padding:8px 12px;font-size:.88rem;border-radius:10px}.bet-actions{flex-direction:row;gap:8px}.bet-actions .btn{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.start-amount{display:none}.stage-status{font-size:.9rem;padding:5px 14px}.spin-note{font-size:.95rem;padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}}@media(max-width:880px)and (orientation:portrait){.game-page--spinning .game-main,.game-page--extraSpinning .game-main{overflow:hidden}.game-page--spinning .stage,.game-page--extraSpinning .stage{flex:1;min-height:0}.game-page--spinning .side-panel,.game-page--extraSpinning .side-panel{flex:none}.game-page--spinning .bingo-card,.game-page--extraSpinning .bingo-card{position:fixed;top:calc(52px + env(safe-area-inset-top));right:8px;width:42vw;max-width:168px;z-index:20;padding:8px;border-radius:10px;box-shadow:0 6px 20px #0009}.game-page--spinning .bingo-card:before,.game-page--extraSpinning .bingo-card:before{content:none}.game-page--spinning .bingo-header,.game-page--extraSpinning .bingo-header{font-size:.72rem;padding-bottom:2px}.game-page--spinning .bingo-cell,.game-page--extraSpinning .bingo-cell{font-size:.85rem}.game-page--spinning .cross-hint,.game-page--extraSpinning .cross-hint{font-size:.45rem;top:1px;right:2px}.game-page--lobby .stage,.game-page--extraOffer .stage,.game-page--daipan .stage{display:none}.game-page--lobby .side-panel,.game-page--daipan .side-panel{justify-content:center;gap:12px}.game-page--lobby .bingo-card,.game-page--daipan .bingo-card{width:min(84vw,52vh);max-width:340px;margin:0 auto;flex:0 0 auto}.game-page--daipan .side-panel{padding-top:160px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.game-page--daipan .bingo-card{width:min(84vw,44vh)}.daipan-overlay{align-items:start;padding-top:calc(72px + env(safe-area-inset-top))}.game-page--extraOffer .bingo-card{margin-top:4px}.game-page--lobby .side-panel>.bet-panel{position:static;margin-top:0;flex:0 0 auto;box-shadow:none;border-radius:16px;background:var(--bg-panel);-webkit-backdrop-filter:none;backdrop-filter:none}}@media(max-width:880px)and (orientation:landscape)and (max-height:520px){.game-main{flex-direction:row;padding-bottom:12px}.stage{flex:1;min-height:0}.side-panel{width:320px;flex:none;overflow-y:auto}.side-panel>.bet-panel,.side-panel>.extra-dialog{border-radius:16px;padding-bottom:14px}.spin-note{display:none}.reach-overlay{padding-right:320px}.bingo-cell{aspect-ratio:auto;height:34px;font-size:1rem}.bingo-cell--free{font-size:1.15rem}.bingo-header{font-size:1rem}.game-page--lobby .stage,.game-page--extraOffer .stage,.game-page--daipan .stage{display:none}.game-page--lobby .game-main,.game-page--extraOffer .game-main,.game-page--daipan .game-main{overflow:hidden}.game-page--lobby .side-panel,.game-page--extraOffer .side-panel,.game-page--daipan .side-panel{width:100%;flex-direction:row;align-items:center;justify-content:center;gap:22px;overflow:visible}.game-page--lobby .bingo-card,.game-page--extraOffer .bingo-card,.game-page--daipan .bingo-card{flex:0 0 auto;width:46vh;max-width:300px;margin-top:0}.game-page--lobby .bingo-cell,.game-page--extraOffer .bingo-cell,.game-page--daipan .bingo-cell{aspect-ratio:1;height:auto;font-size:.95rem}.game-page--daipan .side-panel{justify-content:flex-start;padding-left:4vw}.daipan-overlay{justify-items:end;padding-right:5vw}.game-page--lobby .side-panel>.bet-panel,.game-page--extraOffer .side-panel>.extra-dialog{position:static;flex:0 0 auto;width:min(280px,42%);margin-top:0;box-shadow:none;border-radius:16px;background:var(--bg-panel);-webkit-backdrop-filter:none;backdrop-filter:none;padding-bottom:12px}}
