:root{--noir: #060d09;--pit: #0b1712;--felt: #0e3527;--felt-hi: #175139;--gold: #c9a24b;--gold-hi: #f3dc9a;--gold-deep: #8a6a24;--gold-line: rgba(201, 162, 75, .42);--gold-faint: rgba(201, 162, 75, .16);--ivory: #f6f0df;--champagne: #ead9ae;--mist: rgba(246, 240, 223, .8);--ruby: #b3313f;--ruby-deep: #7c1e2c;--jade: #3fa47c;--ink: #131007;--glass: rgba(9, 24, 18, .72);--glass-hi: rgba(23, 51, 39, .55);--serif-tc: "Noto Serif TC", "Songti TC", serif;--serif-num: "Cormorant Garamond", "Noto Serif TC", serif;--display: "Cinzel", "Noto Serif TC", serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:var(--ivory);font-family:var(--serif-tc);font-weight:400;letter-spacing:.02em;-webkit-font-smoothing:antialiased;background:var(--noir);position:relative}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 90% 55% at 50% -5%,rgba(23,81,57,.5) 0%,transparent 62%),radial-gradient(ellipse 130% 90% at 50% 115%,rgba(3,7,5,.85) 0%,transparent 60%)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E")}#root{position:relative;z-index:1}button{font-family:inherit;cursor:pointer;border:none;border-radius:3px}a{color:var(--gold-hi);text-decoration:none}a:hover{color:#fff}input,textarea,select{font-family:var(--serif-tc);width:100%;padding:12px 14px;border-radius:3px;border:1px solid var(--gold-line);background:#040c08bf;color:var(--ivory);font-size:16px;transition:border-color .25s,box-shadow .25s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold-faint),0 0 18px #c9a24b1f}input::placeholder{color:#f6f0df59}.num{font-family:var(--serif-num);font-weight:600;font-variant-numeric:lining-nums tabular-nums;text-align:right}.pos{color:var(--jade)}.neg{color:#e0788a}.boot{display:grid;place-items:center;height:100%;color:var(--gold);font-family:var(--display);letter-spacing:.35em;font-size:14px}.gilt{border:1px solid var(--gold-line);box-shadow:inset 0 0 0 1px #040a07e6,inset 0 0 0 2px var(--gold-faint),0 12px 40px #00000080;background:linear-gradient(168deg,var(--glass-hi),var(--glass) 55%);border-radius:6px;position:relative}.gilt.corners:before,.gilt.corners:after{content:"";position:absolute;width:26px;height:26px;pointer-events:none;border-color:var(--gold);border-style:solid}.gilt.corners:before{top:6px;left:6px;border-width:1px 0 0 1px}.gilt.corners:after{bottom:6px;right:6px;border-width:0 1px 1px 0}.goldtext{background:linear-gradient(178deg,var(--gold-hi) 20%,var(--gold) 55%,var(--gold-deep) 90%);-webkit-background-clip:text;background-clip:text;color:transparent}.ornament{display:flex;align-items:center;gap:12px;color:var(--gold);font-size:11px;opacity:.85;justify-content:center;letter-spacing:.3em}.ornament:before,.ornament:after{content:"";flex:1;height:1px;max-width:90px;background:linear-gradient(90deg,transparent,var(--gold-line))}.ornament:after{background:linear-gradient(90deg,var(--gold-line),transparent)}.btn-primary{position:relative;overflow:hidden;background:linear-gradient(172deg,var(--gold-hi) 0%,var(--gold) 48%,var(--gold-deep) 100%);color:var(--ink);font-family:var(--serif-tc);font-weight:700;letter-spacing:.35em;text-indent:.35em;font-size:16px;padding:14px;border:1px solid rgba(255,240,200,.5);box-shadow:0 6px 22px #c9a24b47,inset 0 1px #fffae6a6;transition:transform .2s,box-shadow .2s,filter .2s}.btn-primary:hover{filter:brightness(1.06);box-shadow:0 8px 30px #c9a24b66,inset 0 1px #fffae6a6}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.45;filter:grayscale(.4)}.btn-primary:after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;transform:skew(-24deg);background:linear-gradient(90deg,transparent,rgba(255,252,240,.5),transparent);transition:left .6s ease}.btn-primary:hover:after{left:130%}.btn-secondary{background:linear-gradient(170deg,#17332799,#091812cc);color:var(--champagne);padding:11px 14px;font-size:14px;letter-spacing:.12em;border:1px solid var(--gold-line);transition:border-color .25s,color .25s,box-shadow .25s}.btn-secondary:hover{border-color:var(--gold);color:var(--gold-hi);box-shadow:0 0 14px #c9a24b26}.btn-secondary:disabled{opacity:.45}.auth-page{min-height:100%;display:flex;flex-direction:column;justify-content:center;max-width:420px;margin:0 auto;padding:32px 26px;gap:15px;animation:riseIn .7s cubic-bezier(.2,.7,.2,1) both}.brand-mark{text-align:center;margin-bottom:6px}.brand-mark .suits{color:var(--gold);font-size:15px;letter-spacing:.9em;text-indent:.9em;opacity:.9}.brand-mark h1{font-family:var(--serif-tc);font-weight:900;font-size:40px;line-height:1.25;margin:6px 0 2px}.brand-mark .latin{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.55em;text-indent:.55em;color:var(--gold)}.auth-page .sub{text-align:center;color:var(--mist);font-size:13px;letter-spacing:.2em}.form-err{color:#e0788a;text-align:center;min-height:20px;font-size:13px}.auth-foot{text-align:center;font-size:14px;color:var(--mist)}@keyframes riseIn{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}.lobby{max-width:500px;margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:16px;animation:riseIn .55s cubic-bezier(.2,.7,.2,1) both}.topbar{display:flex;justify-content:space-between;align-items:center;gap:10px}.topbar .nick{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{flex:0 0 auto;padding:8px 12px;font-size:13px;white-space:nowrap}.topbar .nick{font-weight:700;letter-spacing:.08em;color:var(--champagne)}.balance-chip{font-family:var(--serif-num);font-weight:800;font-size:20px;background:linear-gradient(170deg,#173327b3,#060e0ae6);border:1px solid var(--gold-line);color:var(--gold-hi);padding:7px 18px;border-radius:999px;box-shadow:inset 0 1px #f3dc9a1f;font-variant-numeric:tabular-nums}.game-card{display:block;color:inherit;padding:30px 26px;text-align:center;background:radial-gradient(ellipse 130% 100% at 50% -20%,rgba(33,96,68,.5),transparent 60%),linear-gradient(168deg,#12402f,#0a2016 70%);transition:transform .25s,box-shadow .25s}.game-card:hover{transform:translateY(-3px);box-shadow:0 18px 50px #0009,0 0 30px #c9a24b1a}.game-card h2{font-size:30px;font-weight:900;letter-spacing:.15em;margin:8px 0 4px}.game-card .tag{font-family:var(--display);font-size:10px;letter-spacing:.5em;text-indent:.5em;color:var(--gold);text-transform:uppercase}.game-card p{color:var(--mist);margin-top:10px;font-size:13px;letter-spacing:.06em}.lobby-row{display:flex;gap:10px}.lobby-row>*{flex:1;text-align:center}.marquee-bar{border:1px solid var(--gold-line);border-left:3px solid var(--gold);background:linear-gradient(90deg,#c9a24b1f,#09181299);border-radius:3px;padding:8px 12px;font-size:18px;color:var(--gold-hi);overflow:hidden;white-space:nowrap;animation:marqueeGlow 2.4s ease-in-out infinite alternate}.marquee-bar .marquee-run{display:inline-block;white-space:nowrap;padding-left:100%;will-change:transform;animation-name:marqueeRun;animation-timing-function:linear;animation-iteration-count:1}@keyframes marqueeRun{0%{transform:translate(0)}to{transform:translate(-100%)}}.table-page.v2 .marquee-slot{flex:0 0 auto;height:22px}.table-page.v2 .marquee-bar{height:100%;font-size:14px;line-height:1.1;padding:2px 8px;display:flex;align-items:center;background:linear-gradient(90deg,#c9a24b38,#040c08eb)}@keyframes marqueeGlow{0%{box-shadow:0 0 6px #c9a24b14}to{box-shadow:0 0 20px #c9a24b47}}.table-page{max-width:540px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;padding:12px 12px 26px;gap:11px;background:radial-gradient(ellipse 120% 52% at 50% -8%,rgba(28,92,66,.75) 0%,transparent 60%),radial-gradient(ellipse 100% 70% at 50% 108%,rgba(2,5,4,.85) 0%,transparent 55%),var(--felt);border-left:1px solid var(--gold-faint);border-right:1px solid var(--gold-faint)}.board-row{display:flex;justify-content:center;gap:8px;margin:2px 0 0}.card{width:47px;height:66px;border-radius:5px;position:relative}.card .face,.card .back{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:5px}.card .face{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,#fffdf5 0%,var(--ivory) 60%,#e8dfc6 100%);color:var(--ink);box-shadow:inset 0 0 0 1px #8a6a2440,inset 0 -8px 14px #8a6a241a,0 4px 10px #00000073}.card .face.flip-in{animation:flipIn .5s cubic-bezier(.3,.8,.3,1)}.card .face .rank{font-family:var(--serif-num);font-weight:600;font-size:24px;line-height:1}.card .face .rank.ten{letter-spacing:-.08em;font-size:.86em}.card .face .suit{font-size:15px;line-height:1.3}.card .face.red{color:var(--ruby)}.card .back{background:url(/img/card_back.png) center / cover no-repeat,linear-gradient(160deg,#16382a,#0a1f16);border:1px solid var(--gold-line);box-shadow:inset 0 0 0 1px #060d0999,0 4px 10px #00000073}.card.small{width:39px;height:55px}.card.small .face .rank{font-size:19px}.card.small .face .suit{font-size:12px}@keyframes flipIn{0%{transform:rotateY(90deg)}to{transform:rotateY(0)}}.chip-rail{display:flex;justify-content:center;gap:10px;padding:2px 0 0}.page{max-width:540px;margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:14px;animation:riseIn .5s cubic-bezier(.2,.7,.2,1) both}.page h1{font-size:21px;font-weight:900;letter-spacing:.12em;color:var(--champagne)}.page h1 a{margin-right:6px}.tabs{display:flex;gap:7px;flex-wrap:wrap}.tabs button{flex:1;min-width:76px;padding:10px 6px;background:linear-gradient(170deg,#17332766,#060f0bb3);color:var(--champagne);font-size:13.5px;letter-spacing:.15em;border:1px solid var(--gold-faint);border-radius:3px;transition:border-color .2s,color .2s}.tabs button:hover{border-color:var(--gold-line)}.tabs button.on{background:linear-gradient(172deg,var(--gold-hi),var(--gold) 60%,var(--gold-deep));color:var(--ink);font-weight:700;border-color:#fff0c899;box-shadow:0 4px 16px #c9a24b4d}table.list{width:100%;border-collapse:collapse;font-size:13px}table.list th,table.list td{padding:8px 7px;text-align:left;border-bottom:1px solid rgba(201,162,75,.12)}table.list th{color:var(--gold);font-weight:600;font-size:11.5px;letter-spacing:.18em;border-bottom:1px solid var(--gold-line)}table.list tbody tr{transition:background .15s}table.list tbody tr:hover{background:#c9a24b0d}.admin-page{max-width:1020px}.admin-section{padding:16px;display:flex;flex-direction:column;gap:10px}.admin-section h2{font-size:15px;font-weight:700;letter-spacing:.15em;color:var(--gold-hi);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-section .note{font-size:11.5px;color:var(--mist);line-height:1.8}.admin-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-section textarea{min-height:46px;font-family:ui-monospace,monospace;font-size:12px}.warn{color:#e0788a;font-size:12.5px;letter-spacing:.05em}.warn-banner{background:linear-gradient(90deg,#b3313f38,#09181299);border:1px solid rgba(179,49,63,.55);border-left:3px solid var(--ruby);color:var(--ivory);padding:12px 16px;border-radius:3px;text-align:left;font-size:14px;letter-spacing:.06em}.tabs .badge{background:var(--ruby);color:#fff;border-radius:999px;font-size:10px;padding:1px 6px;margin-left:6px;letter-spacing:0}.tabs button.on .badge{background:var(--ink);color:var(--gold-hi)}.btn-secondary.on-day{background:linear-gradient(172deg,var(--gold-hi),var(--gold-deep));color:var(--ink);font-weight:700;border-color:#fff0c899}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:9px}.kpi{background:linear-gradient(170deg,#17332759,#060f0b99);border:1px solid var(--gold-faint);border-radius:5px;padding:12px;display:flex;flex-direction:column;gap:3px}.kpi span{font-size:11px;color:var(--mist);letter-spacing:.12em}.kpi b{font-family:var(--serif-num);font-size:21px;font-weight:600;font-variant-numeric:tabular-nums}.kpi small{font-size:10px;color:var(--mist);opacity:.85}.kpi.hero{border-color:var(--gold-line);box-shadow:inset 0 0 18px #c9a24b0f}.cond-matrix td{text-align:center;font-variant-numeric:tabular-nums;font-size:11px;font-family:var(--serif-num)}.cond-matrix .cell-bad{background:#b3313f6b;font-weight:800;color:#fff}.cond-matrix .cell-warn{background:#c9a24b47}.cond-matrix .cell-na{opacity:.3}.felt-pair{display:flex;gap:12px;flex-wrap:wrap}.felt-mini{flex:1;min-width:270px;max-width:430px;padding:13px;display:flex;flex-direction:column;gap:8px;background:radial-gradient(ellipse 120% 90% at 50% -20%,rgba(28,92,66,.6),transparent 62%),linear-gradient(168deg,#103826,#081b12);border:1px solid var(--gold-line);border-radius:6px;box-shadow:inset 0 0 0 1px #040a07e6,inset 0 0 0 2px var(--gold-faint)}.felt-mini h3{font-size:12.5px;letter-spacing:.25em;color:var(--gold)}.felt-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.mini-card{display:inline-block;border-radius:3px;padding:3px 6px;margin-right:2px;background:linear-gradient(160deg,#fffdf5,#e8dfc6);color:var(--ink);font-family:var(--serif-num);font-weight:700;font-size:13px;box-shadow:inset 0 0 0 1px #8a6a2440,0 2px 5px #0006}.mini-card.red{color:var(--ruby)}.mini-card.back{background:repeating-linear-gradient(45deg,#16382a 0,#16382a 4px,#0d271b 4px,#0d271b 8px);color:#c9a24b80;border:1px solid var(--gold-faint)}.hand-cat{display:block;font-size:10px;color:var(--gold-hi);letter-spacing:.1em;margin-top:2px}.live-result{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 9px;border-radius:4px;background:#c9a24b17;border:1px solid var(--gold-faint);font-size:12px}.live-result b{letter-spacing:.08em}.live-result b.ra{color:#b9d3f5}.live-result b.rb{color:#f0b9a8}.live-result b.rt{color:var(--gold-hi)}.live-result .final-cat{color:var(--gold-hi);font-size:11.5px}.live-result .hit-chips{display:flex;gap:4px;flex-wrap:wrap}.live-result .hit-chips em{font-style:normal;font-size:10px;padding:1px 7px;border-radius:999px;background:#c9a24b2e;border:1px solid var(--gold-line);color:var(--gold-hi)}.setting-row{display:grid;grid-template-columns:220px 1fr auto;gap:10px;align-items:start;padding:9px 0;border-bottom:1px solid rgba(201,162,75,.1)}.setting-row:last-child{border-bottom:none}.setting-row .lbl{display:flex;flex-direction:column;gap:2px;padding-top:8px}.setting-row .lbl b{font-size:13.5px;color:var(--champagne);letter-spacing:.08em}.setting-row .lbl small{font-size:10.5px;color:var(--mist);line-height:1.6}.setting-row input,.setting-row select{padding:9px 12px;font-size:14px}.setting-inline{display:flex;gap:8px;flex-wrap:wrap}.setting-inline label{display:flex;flex-direction:column;gap:3px;font-size:10.5px;color:var(--mist);flex:1;min-width:110px}.odds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.odds-grid label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--champagne)}.odds-grid input{padding:8px 10px;font-size:14px}@media(max-width:640px){.setting-row{grid-template-columns:1fr}.setting-row .lbl{padding-top:0}}.table-page.v2{gap:0;padding:8px 10px 10px;position:relative;height:100dvh;overflow:hidden;background:linear-gradient(180deg,#060e0a40,#060e0a8c),url(/img/table_bg.jpg) center top / cover no-repeat,var(--felt)}.table-fit{display:flex;flex-direction:column;gap:6px;transform-origin:top center;will-change:transform}.tbl-head{display:flex;align-items:center;gap:5px;flex-wrap:nowrap}.tbl-title{flex:0 1 auto;font-weight:900;font-size:18px;letter-spacing:.04em;color:var(--gold-hi);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;margin-right:auto}.tbl-btn{padding:6px 10px;font-size:17px;letter-spacing:0;flex:0 0 auto;line-height:1.1}.cd-plate{min-width:78px;text-align:center;font-family:var(--serif-num);font-weight:800;font-size:17px;padding:5px 7px;border-radius:4px;color:var(--gold-hi);background:#040c0899;border:1px solid var(--gold-faint);font-variant-numeric:tabular-nums}.cd-plate.urgent{color:#f08a9a;border-color:#b3313fb3}.duel-row{display:flex;gap:6px;align-items:stretch}.duel-side{flex:0 0 108px;display:flex;flex-direction:column;align-items:center}.duel-label{font-size:13px;letter-spacing:.15em;color:var(--champagne);line-height:1.35;white-space:nowrap}.duel-side .hole-cards{display:flex;margin-top:1px}.duel-side .hole-cards .card+.card{margin-left:-14px;transform:rotate(7deg)}.cat-ribbon{margin-top:-10px;z-index:2;min-height:26px;display:flex;align-items:center;font-style:normal;font-size:17px;font-weight:700;line-height:1;white-space:nowrap;color:#fff;border-radius:6px;padding:0 12px;box-shadow:0 2px 8px #00000073}.cat-ribbon.a{background:linear-gradient(170deg,#c04252,var(--ruby-deep))}.cat-ribbon.b{background:linear-gradient(170deg,#3d6f9c,#23415e)}.cat-ribbon:empty{background:none;box-shadow:none}.duel-mid{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 6px;border:1px solid var(--gold-line);border-radius:10px;background:linear-gradient(170deg,#3d290a8c,#091812d9);box-shadow:inset 0 0 14px #c9a24b1f}.jp-label{font-family:var(--display);font-size:11px;letter-spacing:.3em;text-indent:.3em;color:var(--gold)}.jp-amount{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1;font-family:var(--serif-num);font-weight:800;font-size:23px;color:var(--gold-hi);text-shadow:0 0 10px rgba(201,162,75,.4);font-variant-numeric:tabular-nums}.table-page.v2 .balance-chip{font-size:14px;font-weight:800;color:var(--gold-hi);padding:2px 12px}.mkt-grid{display:grid;gap:6px}.mkt-grid.c3{grid-template-columns:repeat(3,1fr)}.mkt-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:86px;padding:6px 3px 8px;border-radius:8px;color:var(--ivory);text-align:center;background:linear-gradient(170deg,#17332766,#060f0bad);border:1.5px solid var(--gold-faint);transition:border-color .2s,box-shadow .2s}.mkt-cell:active{transform:translateY(1px)}.mkt-cell.has-bet{border-color:var(--gold);box-shadow:0 0 10px #c9a24b33}.mkt-cell.won{border-color:var(--gold-hi);background:linear-gradient(170deg,#c9a24b3d,#17332780)}.mkt-name{font-size:17px;font-weight:700;letter-spacing:.02em;line-height:1.25}.mkt-cell .mkt-name,.mkt-cell .mkt-odds,.mkt-cell .dots,.mkt-cell .mkt-drought{position:relative;z-index:1}.mkt-odds{font-style:normal;line-height:1;font-family:var(--serif-num);font-weight:800;font-size:22px;color:var(--gold-hi);text-shadow:0 0 8px rgba(201,162,75,.5),0 1px 3px rgba(0,0,0,.85);font-variant-numeric:tabular-nums}.dots{min-height:9px;display:flex;justify-content:center;gap:3px;align-items:center}.dots .dot{width:9px;height:9px;border-radius:50%;background:#f6f0df59}.dots .dot.hit{background:#e05555;box-shadow:0 0 4px #e0555599}.mkt-drought{min-height:15px;display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.02em;color:#f6f0dfb8}.mkt-mine{position:absolute;left:50%;bottom:-8px;transform:translate(-50%);z-index:6;font-style:normal;line-height:1;white-space:nowrap;font-family:var(--serif-num);font-weight:800;font-size:14px;color:var(--gold-hi);background:#08100bf5;border:1.5px solid var(--gold);border-radius:999px;padding:3px 10px;box-shadow:0 2px 8px #0000008c;font-variant-numeric:tabular-nums}.mkt-mine i{font-style:normal;font-size:.8em;margin-right:.15em}.mkt-mine.long{font-size:12px}.pool-stacks{position:absolute;left:0;right:0;bottom:6px;height:52px;display:flex;justify-content:center;align-items:flex-end;gap:4px;pointer-events:none;opacity:.92}.pool-stacks .stack-imgs{position:relative;flex:0 0 auto;width:24px;height:46px}.pool-stacks .stack-imgs img{position:absolute;left:0;width:24px;height:24px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}.win-badge{position:absolute;top:50%;left:50%;z-index:5;width:84px;height:84px;object-fit:contain;transform:translate(-50%,-50%) scale(.2);opacity:0;filter:drop-shadow(0 4px 14px rgba(201,162,75,.8));animation:winPop .32s cubic-bezier(.3,1.4,.4,1) forwards,winShimmer .6s .32s 5 alternate;pointer-events:none}@keyframes winPop{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}70%{transform:translate(-50%,-50%) scale(1.18);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes winShimmer{0%{filter:brightness(1)}to{filter:brightness(1.45)}}.board-wrap{position:relative;padding:2px 0 0}.board-wrap .board-row{display:flex;justify-content:center;gap:5px}.board-overlay{position:absolute;left:0;right:0;top:calc(100% - 28px);display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;z-index:10}.phase-pill{font-size:21px;letter-spacing:.08em;color:var(--ivory);background:#000000b8;border-radius:999px;padding:5px 16px}.phase-pill.center{align-self:center}.result-box{font-size:20px;font-weight:700;letter-spacing:.05em;line-height:1.25;max-width:96%;text-align:center;padding:6px 14px;border-radius:10px;background:#050e09f0;animation:resultPop .35s cubic-bezier(.3,1.4,.4,1)}.result-box.win{color:#6be593;border:2px solid var(--gold-hi);box-shadow:0 0 20px #c9a24b66}.result-box.lose{color:#e0788a;border:2px solid rgba(191,77,71,.7)}@keyframes resultPop{0%{transform:scale(1.35)}to{transform:scale(1)}}.table-page.v2 .card{width:66px;height:92px}.table-page.v2 .card .face .rank{font-size:34px}.table-page.v2 .card .face .suit{font-size:21px}.table-page.v2 .card.small{width:46px;height:64px}.table-page.v2 .card.small .face .rank{font-size:24px}.table-page.v2 .card.small .face .suit{font-size:15px}.panels{display:flex;gap:6px;align-items:stretch}.panel{display:flex;flex-direction:column;gap:6px;padding:5px;border:1px solid var(--gold-line);border-radius:12px;background:#09181259}.panel-title{text-align:center;font-size:13px;letter-spacing:.25em;text-indent:.25em;color:#e6cd8cf2;padding-top:2px}.panel-hand{flex:0 0 150px}.panel-hand .mkt-cell{flex:1}.panel-cat{flex:1;min-width:0}.panel-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:6px}.panel-grid .mkt-cell[data-bt="10"]{grid-column:1 / -1}.vip-row{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;align-items:center;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:1px 2px 4px;scrollbar-width:none;min-height:64px}.vip-row::-webkit-scrollbar{display:none}.vip-label{flex:0 0 auto;writing-mode:vertical-rl;font-size:11px;letter-spacing:.25em;color:#e6cd8ccc}.vip-slot{flex:0 0 auto;width:64px;display:flex;flex-direction:column;align-items:center;scroll-snap-align:start}.vip-empty{flex:1;text-align:center;color:var(--mist);font-size:13px;padding:14px 0}.vip-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#221a09e6;border:1.5px solid var(--gold);color:var(--gold-hi);font-weight:700;font-size:17px;transition:box-shadow .15s,border-color .15s}.vip-slot.speaking .vip-avatar{border-color:var(--gold-hi);animation:speakPulse .8s ease-in-out infinite alternate}@keyframes speakPulse{0%{box-shadow:0 0 6px #f3dc9a80}to{box-shadow:0 0 22px #f3dc9a}}.vip-nick{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:15px}.vip-id{font-size:10px;opacity:.6;min-height:12px}.vip-total{font-size:14px;color:var(--gold-hi);font-family:var(--serif-num);min-height:16px;font-weight:800}.voice-dock{position:absolute;right:8px;bottom:10px;z-index:55;display:flex;gap:8px}.table-page.v2 .chip-rail{justify-content:center;padding:12px 0 4px 4px;padding-right:var(--dock-pad, 0px);overflow:visible}.voice-dock .voice-btn{width:38px;height:38px;padding:0;border-radius:50%;font-size:19px;line-height:1;display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#261e0cf5,#0a100cf5);border:2px solid var(--gold-faint);color:var(--mist);box-shadow:0 4px 12px #0000008c}.voice-dock .voice-btn.on{border-color:var(--gold-hi);color:var(--gold-hi);background:radial-gradient(circle at 50% 35%,#48320cfa,#181004fa);box-shadow:0 0 18px #c9a24b8c,0 4px 12px #0000008c}.voice-btn.on{border-color:var(--gold);color:var(--gold-hi);background:linear-gradient(170deg,#3d290ae6,#181004e6);box-shadow:0 0 12px #c9a24b4d}.unit-label{align-self:center;font-size:13px;color:var(--mist);letter-spacing:.15em;white-space:nowrap;flex:0 0 auto}.chip-btn{position:relative;width:56px;height:56px;background:none;border:none;padding:0;transition:transform .18s cubic-bezier(.3,.8,.3,1.4),filter .18s;filter:drop-shadow(0 3px 6px rgba(0,0,0,.55))}.chip-btn img{width:100%;height:100%;object-fit:contain}.chip-btn em{position:absolute;left:50%;bottom:-3px;transform:translate(-50%);font-style:normal;font-size:11px;font-weight:700;color:var(--ink);background:var(--gold-hi);border-radius:999px;padding:0 6px}.chip-btn.sel{transform:translateY(-6px) scale(1.12);filter:drop-shadow(0 8px 16px rgba(0,0,0,.6)) drop-shadow(0 0 14px rgba(243,220,154,.75))}.tbl-popup-dim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;background:#0000008c}.tbl-popup{width:min(480px,92vw);max-height:76vh;display:flex;flex-direction:column;gap:10px;background:linear-gradient(170deg,#12402f,#081b12 75%);border:1.5px solid var(--gold);border-radius:12px;padding:14px;box-shadow:0 24px 70px #000000b3}.pop-head{display:flex;justify-content:space-between;align-items:center}.pop-head b{color:var(--gold-hi);letter-spacing:.1em;font-size:16px}.pop-body{overflow-y:auto;display:flex;flex-direction:column;gap:7px}.sec-title{text-align:center;font-size:16px;letter-spacing:.3em;text-indent:.3em;color:#e6cd8cf2;margin-top:1px}.pop-empty{text-align:center;opacity:.6;padding:20px}.prize-card{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:center;background:#00000040;border:1px solid var(--gold-faint);border-radius:8px;padding:8px 12px}.prize-card.first{border-color:var(--gold)}.prize-card small{grid-column:2 / 4;font-size:11px;color:var(--gold-hi);opacity:.85}.prize-card .rank{font-size:20px}.prize-card.my-rank{display:block;text-align:center;color:var(--gold-hi);font-size:13.5px}.board-row-item{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid rgba(201,162,75,.1);font-size:13.5px}.hist-card{background:#00000040;border-radius:8px;padding:8px 12px;font-size:12.5px}.hist-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:3px}.hist-line{opacity:.7}.hist-line.pos{opacity:1;color:#7fd6a2}.demo-btn{text-align:left;font-variant-numeric:tabular-nums}.celebrate-root{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1900}.celebrate-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.gold-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffd94d;opacity:0;animation-name:goldFlash;animation-timing-function:ease-out}@keyframes goldFlash{0%{opacity:0}25%{opacity:.32}to{opacity:0}}.count-up{position:absolute;left:50%;top:26%;transform:translate(-50%);font-family:var(--serif-num);font-weight:700;font-size:clamp(38px,11vw,64px);color:var(--gold-hi);text-shadow:0 0 24px rgba(201,162,75,.8),0 2px 6px rgba(0,0,0,.7);font-variant-numeric:tabular-nums;transition:opacity .6s}.count-up.fade{opacity:0}.gold-beams{position:absolute;left:50%;top:40%;width:160vmax;height:160vmax;transform:translate(-50%,-50%);background:repeating-conic-gradient(rgba(243,220,154,.12) 0 9deg,transparent 9deg 24deg);animation:beamSpin 14s linear infinite;-webkit-mask:radial-gradient(circle,#000 0%,transparent 62%);mask:radial-gradient(circle,#000 0%,transparent 62%)}@keyframes beamSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}.jackpot-banner-fx{position:absolute;left:50%;top:28%;transform:translate(-50%) scale(.2);font-weight:900;font-size:clamp(34px,9.5vw,56px);letter-spacing:.08em;white-space:nowrap;color:var(--gold-hi);text-shadow:0 0 30px rgba(201,162,75,.9),0 3px 8px rgba(0,0,0,.8);animation:jbPop .5s cubic-bezier(.3,1.5,.4,1) forwards,winShimmer .6s .5s 5 alternate,jbFade .5s 5.1s forwards}@keyframes jbPop{0%{transform:translate(-50%) scale(.2)}70%{transform:translate(-50%) scale(1.2)}to{transform:translate(-50%) scale(1)}}@keyframes jbFade{to{opacity:0}}.celebrate-actor{position:absolute;width:clamp(120px,34vw,200px);height:auto;bottom:-20vh;transform:translate(-50%);filter:drop-shadow(0 8px 24px rgba(201,162,75,.45))}.celebrate-actor.bounce{animation:actorBounce 2.9s cubic-bezier(.3,1.3,.4,1) forwards}@keyframes actorBounce{0%{bottom:-40vh;opacity:1}16%{bottom:22vh}22%{bottom:20vh}86%{bottom:20vh;opacity:1}to{bottom:20vh;opacity:0}}.celebrate-actor.charge{left:-30vw;bottom:34vh;animation:actorCharge 1.8s linear forwards}@keyframes actorCharge{to{left:130vw}}.celebrate-actor.fly{left:-30vw;animation:actorFly 3.4s linear forwards}@keyframes actorFly{0%{left:-30vw;bottom:58vh}25%{bottom:66vh}50%{left:50vw;bottom:58vh}75%{bottom:50vh}to{left:130vw;bottom:58vh}}.celebrate-video{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;mix-blend-mode:screen;transition:opacity .4s}.celebrate-video video{width:100%;height:100%;object-fit:cover}.celebrate-video.skippable{pointer-events:auto;cursor:pointer}.celebrate-video.fade{opacity:0}.skip-hint{position:absolute;bottom:7vh;left:50%;transform:translate(-50%);font-size:15px;letter-spacing:.5em;text-indent:.5em;color:#ffffffbf;mix-blend-mode:normal}@keyframes shakeA{0%,to{transform:translate(0)}20%{transform:translate(2px,-2px)}40%{transform:translate(-2px,1px)}60%{transform:translate(1px,2px)}80%{transform:translate(-1px,-1px)}}.shake-1{animation:shakeA .5s linear}.shake-2{animation:shakeA .55s linear 2}.shake-3{animation:shakeA .6s linear 3}.shake-4{animation:shakeA .65s linear 4}.chip-fly{position:fixed;z-index:1500;pointer-events:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}.avatar-pick{width:96px;height:96px;margin:0 auto;border-radius:50%;cursor:pointer;border:1.5px dashed var(--gold-line);display:grid;place-items:center;color:var(--mist);font-size:13px;text-align:center;line-height:1.5;overflow:hidden;background:#040c0880}.avatar-pick img{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-pick.small{width:64px;height:64px;margin:0;border-style:solid}.vip-avatar{overflow:hidden}.vip-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:linear-gradient(172deg,var(--gold-hi),var(--gold-deep));color:var(--ink);font-weight:700;letter-spacing:.1em;padding:11px 22px;border-radius:999px;z-index:99;box-shadow:0 10px 30px #0009,0 0 20px #c9a24b66;animation:riseIn .25s}
