:root{--bg-0:#05080f;--bg-1:#090f1c;--bg-2:#0d1627;--surface:#ffffff0b;--surface-hover:#ffffff12;--surface-strong:#ffffff12;--border-0:#fff1;--border-1:#ffffff1f;--border-2:#fff3;--gold:#c9a227;--gold-light:#f0c44a;--gold-dim:#c9a22724;--gold-glow:#c9a22752;--gold-text:#e8c34a;--text-0:#ede8d5;--text-1:#ede8d59e;--text-2:#ede8d55c;--felt-0:#0e2a1c;--felt-1:#163d2b;--felt-2:#1f5840;--success:#27ae60;--success-bg:#27ae601f;--error:#e05252;--error-bg:#e0525224;--warn:#d97706;--warn-bg:#d9770624;--r-sm:10px;--r-md:18px;--r-lg:28px;--r-xl:40px;--r-pill:999px;color:var(--text-0);background-color:var(--bg-0);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Outfit,PingFang SC,Hiragino Sans GB,Noto Sans SC,system-ui,sans-serif;font-weight:400;line-height:1.6}*{box-sizing:border-box}body{background-color:var(--bg-0);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.028'/%3E%3C/svg%3E");min-width:320px;margin:0}button{font:inherit}[tabindex="-1"]:focus{outline:none}.app-shell{min-height:100vh;padding:28px 24px}.app-panel{max-width:1120px;margin:0 auto}.hero{border-bottom:1px solid var(--border-0);justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;padding-bottom:28px;display:flex}.eyebrow{text-transform:none;letter-spacing:.01em;color:var(--text-1);max-width:28ch;margin:0 0 10px;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:400;line-height:1.5}h1,h2,p{margin-top:0}h1,h2{font-family:Cormorant Garamond,Noto Serif SC,Songti SC,Georgia,serif;font-weight:700;line-height:1.05}h1{letter-spacing:-.03em;color:var(--text-0);margin-bottom:0;font-size:clamp(2.8rem,7vw,5.5rem);font-style:italic}h2{letter-spacing:-.01em;color:var(--text-0);margin-bottom:16px;font-size:1.25rem}.hero-rule{border:1px solid var(--border-1);border-radius:var(--r-md);background:var(--surface);max-width:280px;color:var(--text-1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);flex-shrink:0;padding:16px 20px;font-size:.88rem;line-height:1.65}.stack,.grid{gap:18px;display:grid}.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border:1px solid var(--border-0);border-radius:var(--r-lg);background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:24px;box-shadow:inset 0 1px #ffffff0a,0 24px 48px #00000047}.intro{background:linear-gradient(135deg, #c9a2270f 0%, transparent 60%), var(--surface);border-color:var(--border-1)}.boss-card{border-radius:var(--r-xl);border:1px solid var(--border-1);color:var(--text-0);background:radial-gradient(at 0 0,#c9a22714 0%,#0000 50%),linear-gradient(135deg,#0a0f1a,#0d1424);grid-template-columns:260px 1fr;align-items:center;gap:28px;padding:24px;display:grid;box-shadow:inset 0 0 0 1px #c9a22714,0 32px 64px #00000080}.boss-portrait-wrap{border-radius:var(--r-lg);background:linear-gradient(135deg, var(--gold) 0%, #c9a2274d 50%, var(--gold) 100%);padding:3px;position:relative;box-shadow:0 0 40px #c9a2272e,0 20px 40px #00000080}.boss-portrait{aspect-ratio:4/5;object-fit:cover;object-position:center 24%;border-radius:calc(var(--r-lg) - 3px);filter:contrast(1.06)saturate(.88);width:100%;display:block}.boss-copy h2,.boss-copy p{color:inherit}.boss-kicker{letter-spacing:.34em;color:var(--gold-text);margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:.68rem;font-weight:700}.boss-subtitle{color:var(--text-1)}.boss-mode-hint{color:var(--gold-text);opacity:.9;margin-top:12px;font-size:.9rem}.button-row,.chip-row,.play-topbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.primary-button,.ghost-button,.chip,.bell-button{appearance:none;border-radius:var(--r-pill);cursor:pointer;border:0;transition:transform .14s,box-shadow .14s,background .14s,opacity .14s}.primary-button,.ghost-button,.chip{letter-spacing:.01em;white-space:nowrap;padding:11px 20px;font-size:.9rem;font-weight:500}.primary-button{background:linear-gradient(135deg, var(--gold) 0%, #b8901c 100%);color:#05080f;font-weight:600;box-shadow:inset 0 0 0 1px #ffc83c59,0 8px 24px #c9a2274d}.glow-button{animation:2.4s ease-in-out infinite button-glow;position:relative;overflow:visible}.glow-button:before{content:"";border-radius:inherit;background:linear-gradient(135deg, var(--gold-light), var(--gold), #f0c44a66, var(--gold), var(--gold-light));z-index:-1;opacity:.8;filter:blur(6px);background-size:300% 300%;animation:3s ease-in-out infinite glow-sweep;position:absolute;inset:-3px}@keyframes button-glow{0%,to{box-shadow:inset 0 0 0 1px #ffc83c59,0 0 16px #c9a2274d,0 0 40px #c9a22726,0 8px 24px #c9a2274d}50%{box-shadow:inset 0 0 0 1px #ffc83c80,0 0 24px #c9a22780,0 0 60px #c9a22740,0 8px 32px #c9a22766}}@keyframes glow-sweep{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.primary-button:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px #ffc83c73,0 12px 32px #c9a22766}.ghost-button{background:var(--surface);color:var(--text-0);border:1px solid var(--border-1)}.ghost-button:hover{background:var(--surface-hover);transform:translateY(-1px)}.chip{background:var(--surface);color:var(--text-1);border:1px solid var(--border-0);padding:9px 16px;font-size:.85rem}.chip:hover{background:var(--surface-hover);border-color:var(--border-1);color:var(--text-0)}.chip.active{background:var(--gold-dim);color:var(--gold-light);border-color:#c9a2276b;font-weight:600}.rule-list{color:var(--text-1);margin:0;padding-left:20px}.rule-list li+li{margin-top:10px}.control-group+.control-group{border-top:1px solid var(--border-0);margin-top:20px;padding-top:20px}.control-group span{text-transform:uppercase;letter-spacing:.1em;color:var(--text-2);margin-bottom:10px;font-size:.78rem;font-weight:500;display:block}.stats-list{gap:2px;margin:0;display:grid}.stats-list div{border-bottom:1px solid var(--border-0);justify-content:space-between;gap:16px;padding:12px 0;display:flex}.stats-list div:last-child{border-bottom:none}.stats-list dt{color:var(--text-1);font-size:.9rem}.stats-list dd{color:var(--gold-light);margin:0;font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:700}.pill{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--border-1);color:var(--gold-text);letter-spacing:.04em;padding:9px 16px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:600}.play-topbar.minimal{justify-content:space-between}.feedback{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border-0);color:var(--text-1);padding:14px 18px;font-size:.9rem}.feedback.success{color:var(--success);background:var(--success-bg);border-color:#27ae6040}.feedback.error{color:var(--error);background:var(--error-bg);border-color:#e0525240}.feedback.warn{color:var(--warn);background:var(--warn-bg);border-color:#d9770640}.penalty-banner{border-radius:var(--r-md);color:#f87171;text-align:center;letter-spacing:.04em;background:#be232338;border:1px solid #be232366;padding:14px 20px;font-family:JetBrains Mono,monospace;font-weight:700;box-shadow:0 0 32px #be23232e,0 8px 24px #0000004d}.table-scene{--card-width:176px;--card-height:232px;--pip-size:clamp(1.3rem, 2.4vw, 2.35rem);padding:4px 0}.table-scene.players-3{--card-width:170px;--card-height:224px;--pip-size:clamp(1.3rem, 2.4vw, 2.35rem)}.table-scene.players-5{--card-width:155px;--card-height:204px;--pip-size:clamp(1.1rem, 2vw, 2rem)}.table-scene.players-6{--card-width:140px;--card-height:185px;--pip-size:clamp(.95rem, 1.75vw, 1.75rem)}.table-felt{border-radius:var(--r-xl);background:radial-gradient(ellipse at center, var(--felt-1) 0%, var(--felt-0) 100%);border:1px solid #ffffff0f;grid-template:".top.""left bell right"".you."/1fr 1fr 1fr;place-items:center;gap:20px 12px;padding:32px 24px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a,inset 0 0 80px #0006,0 32px 80px #0009}.table-scene.players-3 .table-felt{grid-template-areas:".top."".bell right"".you."}.table-scene.players-5 .table-felt{grid-template-areas:"tl.tr""left bell right"".you."}.table-scene.players-6 .table-felt{grid-template-areas:"tl top tr""left bell right"".you."}.table-felt:before{content:"";border-radius:inherit;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.table-felt:after{content:"";border-radius:calc(var(--r-xl) - 12px);pointer-events:none;border:1px solid #fff8c814;position:absolute;inset:18px}.taunt-wall{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.taunt-echo{color:#f0c44a1f;letter-spacing:.02em;text-transform:uppercase;max-width:42%;font-family:Cormorant Garamond,serif;font-size:clamp(.9rem,1.6vw,1.4rem);font-style:italic;font-weight:700;line-height:1.2;animation:1.8s ease-out forwards taunt-float;position:absolute}.table-felt.boss-disrupting{animation:.22s ease-in-out 2 boss-shift}.boss-presence{z-index:3;border-radius:var(--r-pill);color:#ede8d5e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#05080fb8;border:1px solid #c9a22738;align-items:center;gap:10px;padding:8px 14px 8px 8px;font-size:.82rem;display:flex;position:absolute;top:28px;right:28px;box-shadow:0 12px 32px #00000059}.boss-presence-avatar{border-radius:var(--r-pill);object-fit:cover;object-position:center 24%;border:2px solid #c9a227a6;width:38px;height:38px}.boss-taunt{z-index:3;border-radius:var(--r-md);color:#fff1d6;background:radial-gradient(circle at 0 0,#c9a22733,#0000 40%),linear-gradient(135deg,#5a0a0af7,#0f0a19f5);border:1px solid #c9a22759;max-width:340px;padding:16px 20px;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-style:italic;font-weight:600;line-height:1.5;position:absolute;top:86px;right:28px;transform:rotate(-1.5deg);box-shadow:0 20px 40px #00000080,0 0 0 8px #c9a2270d}.table-seat{z-index:2;flex-direction:column;align-items:center;gap:10px;display:flex}.seat-header{align-items:center;gap:8px;display:flex}.seat-label{border-radius:var(--r-pill);color:#ede8d5c7;white-space:nowrap;letter-spacing:.02em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#05080f8c;border:1px solid #ffffff1a;padding:5px 12px;font-size:.78rem;font-weight:500;transition:background .2s,color .2s,border-color .2s}.table-seat.current-turn .seat-label{background:var(--gold-dim);color:var(--gold-light);border-color:#c9a22780;font-weight:700;box-shadow:0 0 0 3px #c9a2271a}.table-card-shell{width:min(var(--card-width), 24vw);height:min(var(--card-height), 33vw);background:#05080f52;border:1px solid #ffffff1a;border-radius:20px;padding:6px;transition:box-shadow .2s}.table-card-shell.active{border-color:#c9a22780;box-shadow:0 0 0 3px #c9a22726,0 0 24px #c9a22733}.table-card-shell.current{border-color:#c9a227a6;box-shadow:0 0 0 3px #c9a2272e,0 0 30px #c9a22740}.play-card-face,.card-back{border-radius:15px;width:100%;height:100%;position:relative}.play-card-face{background:linear-gradient(160deg,#fffef8 0%,#f8f4ea 100%);border:1px solid #b4a07833;box-shadow:0 4px 16px #00000047,inset 0 1px #ffffffe6}.card-back{background:radial-gradient(#163d2b99,#0e2a1ce6),repeating-linear-gradient(45deg,#fff8c80f,#fff8c80f 8px,#0000 8px 18px);border:1px solid #ffffff14}.play-card-pips{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;display:grid;position:absolute;inset:14% 12%}.pip{width:100%;font-size:var(--pip-size);filter:drop-shadow(0 1px 2px #0000001f);justify-content:center;align-items:center;line-height:1;display:inline-flex}.play-card-pips.count-4,.play-card-pips.count-5{inset:12% 10%}.play-card-pips.compact{inset:13% 10%}.play-card-pips.compact.count-4,.play-card-pips.compact.count-5{inset:11% 8%}.play-card-pips.count-5 .pip{font-size:calc(var(--pip-size) * .78)}.play-card-pips.count-4 .pip{font-size:calc(var(--pip-size) * .88)}.play-card-pips.compact.count-3 .pip{font-size:calc(var(--pip-size) * .92)}.play-card-pips.compact.count-4 .pip{font-size:calc(var(--pip-size) * .76)}.play-card-pips.compact.count-5 .pip{font-size:calc(var(--pip-size) * .68)}.slot-center{grid-area:2/2}.slot-mid-left{grid-area:2/1}.slot-mid-right{grid-area:2/3}.slot-top-center{grid-area:1/2}.slot-bottom-center{grid-area:3/2}.slot-top-left{grid-area:1/1}.slot-top-right{grid-area:1/3}.slot-bottom-left{grid-area:3/1}.slot-bottom-right{grid-area:3/3}.center-bell{z-index:2;border-radius:var(--r-pill);background:#05080f61;border:1px solid #ffffff14;grid-area:bell;place-items:center;width:min(200px,26vw);height:min(200px,26vw);transition:box-shadow .3s;display:grid}.center-bell.is-ready{animation:1.2s ease-in-out infinite bell-pulse;box-shadow:0 0 0 2px #c9a22766,0 0 60px #c9a2272e,0 0 120px #c9a22714}.bell-button{aspect-ratio:1;border-radius:var(--r-pill);touch-action:manipulation;color:#1a0f00;cursor:pointer;background:radial-gradient(circle at 35% 30%,#f0c44a 0%,#c9a227 42%,#8a6a0a 100%);border:0;width:min(170px,22vw);font-family:Cormorant Garamond,serif;font-size:clamp(1.8rem,6vw,3rem);font-weight:700;transition:transform .1s,box-shadow .1s;box-shadow:inset 0 0 0 1px #ffd25066,0 20px 48px #00000080,0 8px 24px #c9a22738}.bell-button:hover{transform:translateY(-2px)scale(1.02);box-shadow:inset 0 0 0 1px #ffd25080,0 24px 56px #0000008c,0 12px 32px #c9a2274d}.bell-button:active{transform:translateY(1px)scale(.97)}.deck-note{color:var(--text-2);margin-top:16px;font-size:.83rem;line-height:1.7}.totals-grid{gap:10px;display:grid}.totals-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.total-item{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border-0);justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;font-size:.9rem;display:flex}.total-match{background:var(--gold-dim);color:var(--gold-light);border-color:#c9a22759}.result-hero{text-align:center;background:radial-gradient(ellipse at top, #c9a22714 0%, transparent 60%), var(--surface);padding:36px 28px}.result-hero .eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--gold-text);max-width:none;margin-bottom:14px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:600}.result-hero h2{letter-spacing:-.03em;color:var(--gold-light);margin-bottom:12px;font-family:JetBrains Mono,monospace;font-size:clamp(3rem,8vw,5.5rem);font-weight:700;line-height:1}.result-hero p{color:var(--text-1);font-size:.95rem}.score-reel{border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border-0);margin-top:4px;padding:24px;position:relative;box-shadow:0 24px 48px #0000004d}.score-reel-head h2{font-size:1.15rem}.score-reel-head p{color:var(--text-1);margin-bottom:20px;font-size:.88rem}.score-reel-list{gap:8px;display:grid}.score-row{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border-0);opacity:0;justify-content:space-between;align-items:center;gap:16px;padding:13px 16px;font-size:.9rem;animation:.38s forwards score-rise;display:flex;transform:translateY(12px)}.score-row strong{letter-spacing:-.02em;font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:700}.score-row.positive{border-color:#27ae602e}.score-row.positive strong{color:#4ade80}.score-row.negative{border-color:#e052522e}.score-row.negative strong{color:#f87171}.score-row.total{background:radial-gradient(ellipse at left, var(--gold-dim) 0%, transparent 60%), #c9a22712;color:var(--text-0);border-color:#c9a2274d;margin-top:4px;font-weight:600}.score-row.total strong{color:var(--gold-light);font-size:1.2rem}.card-3d-container{perspective:700px;width:100%;height:100%}.card-3d-inner{width:100%;height:100%;transform-style:preserve-3d;will-change:transform;transition:transform .45s cubic-bezier(.4,0,.2,1);position:relative}.card-3d-inner.face-up{transform:rotateY(180deg)}.card-3d-front,.card-3d-back{backface-visibility:hidden;border-radius:15px;position:absolute;inset:0}.card-3d-front{transform:rotateY(180deg)}.card-3d-back .card-back,.card-3d-front .play-card-face{width:100%;height:100%}.center-bell{position:relative}.bell-ripple-ring{border:2px solid var(--gold);opacity:0;pointer-events:none;border-radius:50%;animation:.6s ease-out forwards bell-ripple;position:absolute;inset:0}.bell-ripple-ring:nth-child(2){animation-delay:.1s}.bell-ripple-ring:nth-child(3){animation-delay:.2s}@keyframes bell-ripple{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}.bell-particle{pointer-events:none;z-index:10;border-radius:50%;width:7px;height:7px;animation:.65s ease-out forwards particle-fly;position:absolute;top:50%;left:50%}.bell-particle.gold{background:var(--gold-light);box-shadow:0 0 6px var(--gold-glow)}.bell-particle.white{background:#fff;box-shadow:0 0 4px #fff9}@keyframes particle-fly{0%{opacity:1;transform:translate(-50%,-50%)translate(0)scale(1)}to{opacity:0;transform:translate(-50%, -50%) translate(calc(cos(var(--angle)) * var(--dist)), calc(sin(var(--angle)) * var(--dist))) scale(.2)}}.screen-enter{animation:.42s ease-out both screen-slide-in}@keyframes screen-slide-in{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.screen-exit{animation:.28s ease-in both screen-slide-out}@keyframes screen-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-16px)}}.home-enter>:first-child{animation:.5s ease-out both fade-rise}.home-enter>:nth-child(2){animation:.5s ease-out .1s both fade-rise}.home-enter>:nth-child(3){animation:.5s ease-out .2s both fade-rise}.home-enter>:nth-child(4){animation:.5s ease-out .3s both fade-rise}@keyframes fade-rise{0%{opacity:0;transform:translateY(36px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.card-collected{animation:.4s ease-in forwards card-shrink}@keyframes card-shrink{0%{opacity:1;transform:scale(1)}60%{opacity:.6;transform:scale(1.08)}to{opacity:0;transform:scale(.5)}}.bell-button.pressed{animation:.2s ease-out bell-press}@keyframes bell-press{0%{transform:scale(1)}40%{transform:scale(.88)}70%{transform:scale(1.04)}to{transform:scale(1)}}.card-3d-inner.just-flipped .card-3d-front:after{content:"";pointer-events:none;background:linear-gradient(135deg,#fff6 0%,#0000 60%);border-radius:15px;animation:.5s ease-out forwards flip-shine;position:absolute;inset:0}@keyframes flip-shine{0%{opacity:1}to{opacity:0}}.card-3d-inner.face-up.card-swap{animation:.42s cubic-bezier(.4,0,.2,1) flip-full}@keyframes flip-full{0%{transform:rotateY(180deg)}to{transform:rotateY(540deg)}}.multiplayer-card{background:linear-gradient(135deg, #27ae600f 0%, transparent 60%), var(--surface);border-color:var(--border-1)}.multi-desc{color:var(--text-1);margin-bottom:16px;font-size:.9rem}.multi-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.or-divider{color:var(--text-2);font-size:.85rem;font-weight:500}.join-row{align-items:center;gap:8px;display:flex}.code-input{border-radius:var(--r-pill);border:1px solid var(--border-1);background:var(--surface);width:130px;color:var(--gold-light);letter-spacing:.2em;text-align:center;text-transform:uppercase;outline:none;padding:11px 16px;font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:700}.code-input::placeholder{color:var(--text-2);letter-spacing:0;font-family:Outfit,PingFang SC,Hiragino Sans GB,Noto Sans SC,system-ui,sans-serif;font-size:.9rem;font-weight:400}.code-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-dim)}.history-card{flex-direction:column;gap:16px;display:flex}.history-head h2{margin:0 0 4px}.history-desc{color:var(--text-1);margin:0;font-size:.88rem}.history-empty{color:var(--text-2);text-align:center;margin:0;padding:18px 0;font-size:.9rem}.history-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.history-row{border:1px solid var(--border-1);background:#ffffff05;border-radius:14px;grid-template-columns:minmax(110px,.6fr) 1fr;align-items:center;gap:16px;padding:12px 14px;display:grid}.history-meta{flex-direction:column;gap:4px;display:flex}.history-mode{letter-spacing:.04em;border-radius:999px;align-self:flex-start;align-items:center;padding:2px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.history-mode.mode-solo{color:var(--gold-light);background:#d4af3724}.history-mode.mode-multi{color:#6fcf97;background:#27ae6029}.history-time{color:var(--text-2);font-size:.78rem}.history-stats{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.history-stat{flex-direction:column;gap:2px;display:flex}.history-stat-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.history-stat-value{color:var(--text-0);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:600}@media (width<=520px){.history-row{grid-template-columns:1fr;gap:10px}.history-stats{gap:8px}.history-stat-value{font-size:.95rem}}.daily-goal-bar{align-items:center;gap:8px;margin-top:6px;display:flex}.daily-goal-label{color:var(--text-1);font-size:.8rem}.daily-goal-progress{font-variant-numeric:tabular-nums;color:var(--text-1);font-size:.82rem;font-weight:600}.daily-goal-progress.reached{color:#6fcf97}.history-tabs{border-bottom:1px solid var(--border-1);gap:2px;padding-bottom:0;display:flex}.tab-btn{color:var(--text-1);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:6px 14px;font-size:.85rem;font-weight:500;transition:color .15s}.tab-btn:hover{color:var(--text-0)}.tab-btn.active{color:var(--text-0);border-bottom-color:var(--gold-light);font-weight:700}.trend-section{flex-direction:column;gap:16px;display:flex}.trend-group{flex-direction:column;gap:6px;display:flex}.trend-label{color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}.trend-svg{width:100%;height:56px;display:block}.achievement-grid{grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;list-style:none;display:grid}.achievement-tile{border:1px solid var(--border-1);background:#ffffff05;border-radius:12px;align-items:flex-start;gap:10px;padding:12px;display:flex}.achievement-tile.unlocked{background:#d4af370f;border-color:#d4af3738}.achievement-icon{filter:grayscale()opacity(.3);flex-shrink:0;font-size:1.4rem;line-height:1}.achievement-tile.unlocked .achievement-icon{filter:none}.achievement-info{flex-direction:column;gap:3px;min-width:0;display:flex}.achievement-name{color:var(--text-1);font-size:.82rem;font-weight:600}.achievement-tile.unlocked .achievement-name{color:var(--text-0)}.achievement-desc{color:var(--text-2);font-size:.72rem;line-height:1.35}.achievement-tile.unlocked .achievement-desc{color:var(--gold-light)}.achievement-toast{color:var(--text-0);z-index:200;white-space:nowrap;background:#1e190ff5;border:1px solid #d4af3773;border-radius:12px;padding:10px 20px;font-size:.88rem;font-weight:600;animation:.22s ease-out toast-rise;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}@keyframes toast-rise{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (prefers-reduced-motion:reduce){.achievement-toast{animation:none}}@media (width<=520px){.achievement-grid{grid-template-columns:1fr}.tab-btn{padding:6px 10px;font-size:.8rem}}.lobby-card{max-width:520px;margin:0 auto}.room-code-display{border-radius:var(--r-lg);background:var(--surface-strong);border:1px solid var(--border-1);flex-direction:column;align-items:center;gap:6px;margin:20px 0;padding:24px;display:flex}.room-code-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-2);font-size:.75rem;font-weight:500}.room-code-value{letter-spacing:.3em;color:var(--gold-light);text-shadow:0 0 32px var(--gold-glow);font-family:JetBrains Mono,monospace;font-size:2.8rem;font-weight:700}.lobby-players{gap:8px;margin:20px 0;display:grid}.lobby-player-row{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border-0);justify-content:space-between;align-items:center;padding:14px 18px;transition:border-color .2s,background .2s;display:flex}.lobby-player-row.ready{background:var(--success-bg);border-color:#27ae604d}.lobby-player-row.empty{opacity:.4;border-style:dashed}.lobby-player-name{color:var(--text-0);align-items:center;gap:10px;font-weight:500;display:flex}.host-badge{border-radius:var(--r-pill);background:var(--gold-dim);color:var(--gold-light);letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.lobby-status{color:var(--text-2);font-size:.82rem}.lobby-status.ready{color:var(--success);font-weight:600}.lobby-buttons{justify-content:center}.lobby-buttons .primary-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.multi-scoreboard{gap:8px;display:grid}.scoreboard-row{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border-0);opacity:0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:14px 18px;animation:.38s forwards score-rise;display:grid;transform:translateY(12px)}.scoreboard-row.is-me{background:var(--gold-dim);border-color:#c9a2274d}.scoreboard-rank{color:var(--gold-light);font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:700}.scoreboard-name{color:var(--text-0);font-weight:500}.scoreboard-score{color:var(--gold-light);font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:700}.scoreboard-detail{color:var(--text-2);font-size:.8rem}.countdown-overlay{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05080fbf;place-items:center;display:grid;position:fixed;inset:0}.countdown-number{color:var(--gold-light);text-shadow:0 0 40px var(--gold-glow), 0 0 80px #c9a22733;font-family:JetBrains Mono,monospace;font-size:clamp(6rem,20vw,14rem);font-weight:700;animation:.9s ease-out both countdown-pop}@keyframes countdown-pop{0%{opacity:0;transform:scale(2)}20%{opacity:1;transform:scale(.9)}40%{transform:scale(1.05)}60%{transform:scale(1)}to{opacity:0;transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.card-3d-inner{transition:none}.bell-particle,.bell-ripple-ring,.screen-enter,.home-enter>*,.card-collected,.card-3d-inner.face-up.card-swap,.card-3d-inner.just-flipped .card-3d-front:after,.glow-button,.glow-button:before,.countdown-number{opacity:1;animation:none;transform:none}.table-felt.boss-disrupting,.boss-taunt{animation:none}.score-row{opacity:1;animation:none;transform:none}.center-bell.is-ready{animation:none}}@keyframes boss-shift{0%{filter:saturate();transform:translate(0)}25%{filter:saturate(1.1)brightness(.95);transform:translate(-5px)}50%{filter:saturate(.9)brightness(1.05);transform:translate(5px)}to{filter:saturate();transform:translate(0)}}@keyframes taunt-float{0%{opacity:0;transform:translate(-50%,-44%)scale(.9)}12%{opacity:1}to{opacity:0;transform:translate(-50%,-60%)scale(1.06)}}@keyframes score-rise{to{opacity:1;transform:translateY(0)}}@keyframes bell-pulse{0%{box-shadow:0 0 0 2px #c9a22766,0 0 60px #c9a2272e,0 0 #c9a22766}50%{box-shadow:0 0 0 2px #c9a22799,0 0 80px #c9a22747,0 0 24px #c9a22733}to{box-shadow:0 0 0 2px #c9a22766,0 0 60px #c9a2272e,0 0 #0000}}@media (width<=980px){.hero,.two-up{grid-template-columns:1fr;display:grid}.boss-card{grid-template-columns:1fr}.boss-portrait-wrap{max-width:300px}.table-scene{--card-width:148px;--card-height:198px;--pip-size:clamp(1rem, 2vw, 1.8rem)}.table-scene.players-3{--card-width:156px;--card-height:208px;--pip-size:clamp(1.1rem, 2.2vw, 1.95rem)}.center-bell{width:180px;height:180px}.boss-taunt{max-width:260px}.bell-button{width:130px}}@media (width<=720px){.app-shell{padding:16px}.play-topbar.minimal{justify-content:flex-start}.table-scene{--table-min-height:700px;--card-width:124px;--card-height:170px;--pip-size:1.2rem}.table-scene.players-3{--table-min-height:620px}.table-scene.players-5,.table-scene.players-6{--table-min-height:760px;--card-width:112px;--card-height:154px;--pip-size:1rem}.center-bell{width:132px;height:132px}.bell-button{width:min(120px,28vw);font-size:1.8rem}.totals-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.hero-rule{max-width:none}.table-scene{--table-min-height:620px;--card-width:96px;--card-height:132px;--pip-size:.95rem}.table-scene.players-5,.table-scene.players-6{--table-min-height:680px;--card-width:88px;--card-height:120px;--pip-size:.8rem}.table-felt{padding:18px 14px}.boss-taunt{max-width:200px;padding:12px 14px;font-size:.88rem;top:56px;right:10px}.taunt-echo{max-width:54%;font-size:.8rem}.boss-presence{gap:7px;padding:6px 10px 6px 6px;font-size:.74rem;top:12px;right:12px}.boss-presence-avatar{width:32px;height:32px}.seat-label{padding:4px 9px;font-size:.7rem}.play-card-pips.count-4,.play-card-pips.count-5{inset:10% 8%}.play-card-pips.count-4 .pip{font-size:1.2rem}.play-card-pips.count-5 .pip{font-size:1rem}.play-topbar>*{justify-content:center;width:100%}.primary-button,.ghost-button,.chip{min-height:44px}}
