@property --t{syntax:"<number>";inherits:true;initial-value:1}:root{--night:#0f0b24;--night-2:#18123a;--glass:#1c1544e6;--glass-hi:#2a2163;--line:#ffffff1f;--line-hi:#ffffff38;--felt-hi:#138a93;--felt:#0b5d66;--felt-lo:#05313a;--gold:#ffcb5c;--gold-hi:#ffe8a8;--gold-lo:#b9811f;--on-gold:#2b1a00;--jade:#2ad7a4;--jade-lo:#0d8a66;--ruby:#ff4f6d;--ruby-lo:#b11d3c;--violet:#9b7bff;--violet-lo:#5b3fd1;--ink:#f7f4ff;--muted:#b5aedc;--dim:#7f78aa;--paper:#fffdf7;--card-red:#d4213d;--card-ink:#1b1733;--sans:system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "HarmonyOS Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;--card-font:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--spring:cubic-bezier(.34, 1.56, .64, 1);--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);font-family:var(--sans);color:var(--ink);background:var(--night);font-synthesis:none;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(1px 1px at 12% 18%, #fff9 50%, transparent 51%), radial-gradient(1px 1px at 72% 9%, #fff7 50%, transparent 51%), radial-gradient(1.5px 1.5px at 88% 34%, #ffe8a8aa 50%, transparent 51%), radial-gradient(1px 1px at 34% 62%, #fff5 50%, transparent 51%), radial-gradient(1px 1px at 56% 84%, #fff6 50%, transparent 51%), radial-gradient(120% 80% at 50% 0%, #2b1f63 0%, var(--night-2) 45%, var(--night) 100%) fixed, var(--night);min-width:300px;margin:0}button,input{font:inherit;color:inherit}button,summary,input{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}h2{font-size:20px;font-weight:750;line-height:1.35}h3{font-size:15px;font-weight:700}small,.quiet{color:var(--muted);font-size:14px}strong,input,.cost{font-variant-numeric:tabular-nums}p,strong,span,label{overflow-wrap:anywhere}abbr{text-decoration:none}:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button{background:var(--glass-hi);min-height:44px;color:var(--ink);cursor:pointer;transition:transform .12s var(--spring), filter .15s, background-color .15s, box-shadow .15s;touch-action:manipulation;border:0;border-radius:14px;padding:9px 18px;font-weight:700;line-height:1.25;box-shadow:inset 0 1px #ffffff26,0 3px #0c0826}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){transform:translateY(2px)scale(.97);box-shadow:inset 0 1px #ffffff26,0 1px #0c0826}button:disabled{cursor:not-allowed;opacity:.4}button.primary{background:linear-gradient(180deg, var(--gold-hi), var(--gold) 45%, #f0a92e);color:var(--on-gold);box-shadow:inset 0 1px 0 #fff8, 0 3px 0 var(--gold-lo), 0 10px 24px -10px #ffcb5ccc}button.secondary{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-hi);background:#ffffff10}button.secondary:active:not(:disabled){box-shadow:inset 0 0 0 1px var(--line-hi)}button.danger{color:#ff9aac;background:#ff4f6d1a;box-shadow:inset 0 0 0 1px #ff4f6d66}button.text-button{color:var(--muted);box-shadow:none;background:0 0;padding-inline:10px;font-size:14px;font-weight:600}button.text-button:hover:not(:disabled){color:var(--ink)}button.small{padding-inline:12px;font-size:14px}input{border:1px solid var(--line-hi);width:100%;min-width:0;min-height:48px;color:var(--ink);background:#0b0820b3;border-radius:14px;padding:10px 14px;transition:border-color .15s,box-shadow .15s;display:block}input::placeholder{color:var(--dim)}input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 4px #ffcb5c2e}input:disabled{opacity:.55}input[type=radio]{width:20px;min-height:20px;accent-color:var(--gold);flex:0 0 20px;margin:0}input[type=range]{min-height:36px;box-shadow:none;accent-color:var(--gold);cursor:pointer;background:0 0;border:0;padding:0}label{color:var(--muted);font-size:14px;display:block}label>input{margin-top:6px}fieldset{border:0;min-width:0;margin:0;padding:0}.button-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}summary{white-space:nowrap;cursor:pointer;min-height:44px;color:var(--muted);align-items:center;gap:8px;font-size:14px;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:after{content:"";border:1.5px solid;border-width:0 1.5px 1.5px 0;width:6px;height:6px;transition:transform .2s;transform:rotate(45deg)translateY(-2px)}details[open]>summary:after{transform:rotate(-135deg)translate(-1px,-1px)}summary:hover{color:var(--ink)}.app{min-height:100svh}.app-header{z-index:10;padding:max(var(--safe-top), 10px) max(var(--safe-right), 18px) 10px max(var(--safe-left), 18px);justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;top:0;left:0;right:0}.wordmark{min-width:0}.wordmark h1{letter-spacing:.2em;color:var(--gold-hi);white-space:nowrap;opacity:.9;font-size:15px;font-weight:700}.header-controls{align-items:center;gap:4px 12px;display:flex}.connection{color:var(--muted);white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.connection:before{content:"";background:var(--dim);border-radius:50%;flex:none;width:8px;height:8px}.connection-live:before{background:var(--jade);box-shadow:0 0 0 3px #2ad7a433}.connection-offline,.connection-takeover,.connection-expired{color:var(--gold-hi)}.connection-offline:before,.connection-takeover:before,.connection-expired:before{background:var(--ruby);animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}.rules-text{color:var(--muted);gap:10px;max-width:64ch;font-size:14px;display:grid}.rules-text strong{color:var(--ink)}.home-main{grid-template-columns:minmax(0,1.15fr) minmax(340px,460px);align-items:stretch;min-height:100svh;display:grid}.home-hero{background:url(/assets/lobby-CPLKrWxV.webp) 50% 100% / cover no-repeat, var(--night-2);flex-direction:column;justify-content:flex-start;align-items:center;display:flex;position:relative;overflow:hidden}.home-hero:after{content:"";pointer-events:none;background:linear-gradient(#0f0b2466 0%,#0000 30% 62%,#0f0b24 100%);position:absolute;inset:0}.hero-copy{z-index:1;padding:max(var(--safe-top), 64px) 24px 24px;text-align:center;justify-items:center;gap:10px;display:grid;position:relative}.lobby-chip{filter:drop-shadow(0 18px 30px #000a);cursor:grab;touch-action:pan-y;width:168px;height:168px;margin-bottom:-6px;display:block}.lobby-chip.static{background:url(/assets/emblem-DvTZeZs1.webp) center / 84% no-repeat, radial-gradient(circle, #241a50 58%, var(--gold) 59%, var(--gold-lo) 66%, transparent 67%);border-radius:50%}.brand{letter-spacing:.12em;background:linear-gradient(180deg, #fff6d6 0%, var(--gold-hi) 30%, var(--gold) 60%, #d18a1b 100%);color:#0000;filter:drop-shadow(0 3px #5a3a0a)drop-shadow(0 12px 24px #000c);-webkit-background-clip:text;background-clip:text;margin-right:-.12em;font-size:clamp(40px,9vw,64px);font-weight:900;line-height:1.1}.hero-games{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.hero-games span{color:var(--gold-hi);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f0b2499;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:600;box-shadow:inset 0 0 0 1px #ffcb5c55}.hero-line{color:#e8e3ff;text-shadow:0 2px 10px #000;font-size:15px}.home-entry{z-index:2;min-width:0;padding:32px max(var(--safe-right), 28px) 32px 28px;background:linear-gradient(#18123af2,#0f0b24);flex-direction:column;justify-content:center;gap:10px;display:flex;position:relative}.entry-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#2a2163cc,#1c1544cc);border-radius:24px;padding:24px;box-shadow:inset 0 1px #ffffff1f,0 0 0 1px #ffffff14,0 30px 60px -30px #000}.form-heading{gap:4px;display:grid}.form-heading h2{font-size:22px;font-weight:800}.join-form,.create-form,.admin-login form{gap:14px;display:grid}.join-form>button,.create-form>button{letter-spacing:.08em;min-height:54px;margin-top:4px;font-size:18px;font-weight:800}.disclosure{border-top:1px solid var(--line);margin-top:18px}.home-entry>.disclosure{border-top:0;margin-top:0;padding-inline:8px}.admin-login form{padding:4px 0 8px}.rules .rules-text{padding:4px 0 12px}.create-form fieldset{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mode-choice{cursor:pointer;text-align:center;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .2s, background-color .2s, transform .2s var(--spring);background:#ffffff0a;border-radius:16px;justify-items:center;gap:6px;padding:12px 6px 10px;display:grid;position:relative}.mode-choice input[type=radio]{z-index:1;opacity:0;cursor:pointer;width:100%;height:100%;min-height:0;margin:0;position:absolute;inset:0}.mode-choice:has(input:focus-visible){outline:2px solid var(--gold-hi);outline-offset:2px}.mode-choice:has(input:checked){box-shadow:inset 0 0 0 2px var(--gold), 0 8px 20px -10px #ffcb5c99;background:#ffcb5c1a;transform:translateY(-2px)}.mode-suit{background:var(--paper);width:40px;height:54px;color:var(--card-ink);font-size:24px;font-family:var(--card-font);transition:transform .3s var(--spring);border-radius:6px;place-items:center;display:grid;transform:rotate(-6deg);box-shadow:0 6px 12px -6px #000}.mode-choice:has(input:checked) .mode-suit{transform:rotate(0)scale(1.08)}.mode-suit.red{color:var(--card-red)}.mode-suit.joker{font-family:var(--sans);font-size:18px;font-weight:900}.mode-choice strong,.mode-choice small{display:block}.mode-choice strong{font-size:15px}.mode-choice small{font-size:11px;line-height:1.35}.form-error{color:#ffc2cc;background:#ff4f6d22;border-radius:10px;padding:8px 12px;font-size:14px}.match-settings{gap:10px;display:grid}.stepper{align-items:center;gap:8px;margin:0;display:flex}.stepper-label{min-width:3em;color:var(--muted);font-size:14px}.stepper button{width:44px;padding:0;font-size:22px}.stepper output,.stepper.fixed-count strong{text-align:center;font-variant-numeric:tabular-nums;min-width:4.5em}.stepper output strong,.stepper.fixed-count strong{color:var(--gold);font-size:22px;font-weight:800}.round-presets{gap:6px;display:flex}.chip-button{min-width:56px;padding:4px 12px;font-size:14px}.chip-button.selected{color:var(--gold-hi);box-shadow:inset 0 0 0 2px var(--gold);background:#ffcb5c26}.join-form .sheet-note{margin:0}@media (width<=759px){.home-main{display:block}.home-hero{background-position:50% 78%;min-height:min(62svh,560px)}.home-entry{padding:0 max(var(--safe-right), 14px) max(var(--safe-bottom), 28px) max(var(--safe-left), 14px);background:0 0;margin-top:-96px}.entry-card{padding:20px 18px}.lobby-chip{width:128px;height:128px}}@media (orientation:landscape) and (height<=500px){.home-main{grid-template-columns:minmax(0,1fr) minmax(320px,1fr)}.home-hero{min-height:100svh;position:sticky;top:0}.hero-copy{padding-top:max(var(--safe-top), 36px);gap:6px}.lobby-chip{width:96px;height:96px}.brand{font-size:36px}.home-entry{padding:16px max(var(--safe-right), 16px) 16px 16px}}.safe-probe{z-index:-1;visibility:hidden;pointer-events:none;height:100dvh;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);position:fixed;top:0;left:0;right:0}html.in-room,html.in-room body{overscroll-behavior:none;height:100%;overflow:hidden}html.in-room body{position:fixed;inset:0}.overlays{z-index:70;left:50%;top:calc(max(var(--safe-top), 4px) + 54px);pointer-events:none;justify-items:center;gap:6px;width:min(520px,100vw - 24px);display:grid;position:fixed;transform:translate(-50%)}.home-app .overlays{top:calc(max(var(--safe-top), 10px) + 44px)}.overlays>*{pointer-events:auto}.notice{background:var(--glass);max-width:100%;box-shadow:inset 0 0 0 1px var(--line-hi), 0 12px 32px -12px #000c;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;padding:8px 18px;font-size:14px;font-weight:600;animation:4.2s forwards toast}@keyframes toast{0%{opacity:0;transform:translateY(-10px)scale(.94)}6%,84%{opacity:1;transform:none}to{opacity:0;visibility:hidden}}.connection-bar,.error-toast{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:4px 6px 4px 16px;font-size:14px;display:flex;box-shadow:0 16px 32px -12px #000}.connection-bar{color:var(--gold-hi);background:#3a2a08ee;box-shadow:inset 0 0 0 1px #ffcb5c66}.error-toast{color:#ffd0d8;background:#4a1426ee;box-shadow:inset 0 0 0 1px #ff4f6d66}.connection-bar button,.error-toast button{flex:none}.error-toast button{color:#ffd0d8}.room-shell{--avatar:44px;position:fixed}.room-shell.roomy{--avatar:64px}.room-shell .top-bar,.room-shell .stage,.room-shell .hand-area,.room-shell .rail-area,.room-shell .self-dock,.room-shell .table,.room-shell .pod,.room-shell .board,.room-shell .ddz-band,.room-shell .ddz-zone{position:absolute}.stage{isolation:isolate}.chip-canvas{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}.bet-spot,.board{z-index:2}.chip-anchor{pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.table{z-index:0;border-radius:50%}.table-rail,.table-felt,.table-emblem{pointer-events:none;border-radius:50%;position:absolute}.table-rail{background:radial-gradient(farthest-side,#2c1f52 86%,#1a1236 100%);inset:0;box-shadow:0 0 0 2px #ffcb5c,0 0 0 4px #6b4b14,0 0 32px 2px #ffcb5c55,0 24px 60px -10px #000,inset 0 2px #fff2}.table-felt{background:radial-gradient(60% 55% at 50% 42%, #ffffff1c, transparent 70%), radial-gradient(closest-side, var(--felt-hi) 0%, var(--felt) 55%, var(--felt-lo) 100%);inset:11px;box-shadow:inset 0 0 0 1.5px #ffcb5c88,inset 0 0 0 8px #00000026,inset 0 10px 40px -6px #000b}.table-felt:after{content:"";border:1px dashed #ffe8a836;border-radius:50%;position:absolute;inset:14px}.table-emblem{aspect-ratio:1;mix-blend-mode:screen;opacity:.2;background:url(/assets/emblem-DvTZeZs1.webp) 50%/contain no-repeat;width:min(52%,72vh);max-width:70%;max-height:58%;top:50%;left:50%;translate:-50% -50%}.roomy .table-felt{inset:16px}.mode-blackjack .table-emblem{opacity:.14;top:62%}.mode-doudizhu .table-emblem{opacity:.16}.top-bar{z-index:5;justify-content:space-between;align-items:center;gap:8px;display:flex}.bar-title{flex:auto;justify-content:center;align-items:center;gap:8px;min-width:0;display:flex}.bar-title>strong{letter-spacing:.08em;white-space:nowrap;font-size:17px;font-weight:800}.bar-end{justify-content:flex-end;width:64px;display:flex}.corner{z-index:5;align-items:center;gap:6px;display:flex;position:absolute;top:2px}.corner-start{left:2px}.corner-end{right:2px}.menu-button{background:var(--glass);width:44px;height:44px;color:var(--gold-hi);box-shadow:inset 0 0 0 1px var(--line-hi);border-radius:14px;flex:none;place-items:center;padding:0;display:grid;position:relative}.menu-glyph{gap:4px;width:18px;display:grid}.menu-glyph>span{background:currentColor;border-radius:2px;height:2px}.connection-dot{background:var(--jade);width:8px;height:8px;box-shadow:0 0 0 2px var(--night);border-radius:50%;position:absolute;top:6px;right:6px}.connection-dot.down{background:var(--ruby);animation:1.4s ease-in-out infinite pulse}.progress-pill,.invite-button{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;height:44px;min-height:44px;padding:0 12px;font-size:13px;font-weight:800}.progress-pill{color:var(--gold-hi);background:#0f0b24b3;align-items:center;gap:2px;display:inline-flex;box-shadow:inset 0 0 0 1px #ffcb5c55}.progress-word{color:var(--muted);font-size:12px;font-weight:500}.corner .progress-pill,.corner .invite-button{height:44px;min-height:44px}.invite-button{background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:var(--on-gold);box-shadow:inset 0 1px 0 #fff8, 0 3px 0 var(--gold-lo)}.top-bar .invite-button{height:44px}.pods,.seat-slot{display:contents}.pod{z-index:4;flex-direction:column;align-items:center;display:flex}.pod-button,.dock-button{width:100%;min-height:44px;box-shadow:none;color:var(--ink);background:0 0;border-radius:16px;flex-direction:column;align-items:center;gap:0;padding:0;font-weight:600;display:flex;position:relative}.pod-button:active:not(:disabled),.dock-button:active:not(:disabled){box-shadow:none;transform:scale(.96)}.pod-face{display:block;position:relative}.pod-plate{z-index:2;min-width:64%;max-width:100%;box-shadow:inset 0 0 0 1px var(--line-hi), 0 6px 14px -6px #000;background:linear-gradient(#2a2163f2,#140f34f2);border-radius:10px;flex-direction:column;align-items:center;margin-top:-8px;padding:2px 8px 3px;line-height:1.15;transition:box-shadow .3s;display:flex;position:relative}.pod-name{color:#ddd8f5;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;max-width:100%;font-size:11px;font-weight:600;overflow:hidden}.pod-chips{color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px;font-weight:800}.roomy .pod-name{font-size:13px}.roomy .pod-chips{font-size:15px}.pod.active .pod-plate,.self-dock.active .pod-plate{box-shadow:inset 0 0 0 1.5px var(--gold), 0 0 18px -2px #ffcb5caa}.pod.active .portrait{animation:1.4s ease-in-out infinite seat-glow}@keyframes seat-glow{50%{box-shadow:0 0 0 2px var(--gold), 0 0 22px 4px #ffcb5c88}}.pod.folded .pod-face,.pod.away .pod-face{filter:grayscale(.85)brightness(.55)}.pod.folded .pod-plate,.pod.away .pod-plate{opacity:.7}.pod.winner .portrait,.self-dock.winner .portrait{box-shadow:0 0 0 3px var(--gold), 0 0 26px 6px #ffcb5ccc;animation:1.2s ease-in-out 3 winner}@keyframes winner{50%{box-shadow:0 0 0 3px var(--gold-hi), 0 0 40px 12px #ffcb5c}}.portrait{--hue:200;--portrait:var(--avatar);width:var(--portrait);height:var(--portrait);background:radial-gradient(circle at 50% 38%, hsl(var(--hue) 34% 36%), hsl(var(--hue) 40% 14%));color:hsl(var(--hue) 55% 86%);font-weight:800;font-size:calc(var(--portrait) * .4);border-radius:50%;flex:none;place-items:center;display:grid;position:relative;box-shadow:0 0 0 2px #ffcb5ccc,0 0 0 4px #140f34,0 8px 16px -6px #000}.portrait-sm{--portrait:28px}.portrait-md{--portrait:44px}.portrait img{object-fit:cover;-webkit-user-select:none;user-select:none;border-radius:50%;width:100%;height:100%;position:absolute;inset:0}.portrait.timing:before{content:"";z-index:1;background:conic-gradient(var(--jade) calc(var(--t) * 360deg), #ffffff1a 0);border-radius:50%;transition:--t 1s linear;position:absolute;inset:-5px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 calc(100% - 4px))}.portrait.urgent:before{background:conic-gradient(var(--ruby) calc(var(--t) * 360deg), #ffffff1a 0)}.dealer-button{z-index:3;background:var(--paper);width:20px;height:20px;color:var(--card-ink);box-shadow:0 0 0 2px var(--gold), 0 2px 4px #0008;border-radius:50%;place-items:center;font-size:11px;font-weight:900;display:grid;position:absolute;bottom:2px;right:-6px}.chips-3d .dealer-button{display:none}.pod-cards{z-index:-1;right:calc(var(--avatar) * -.36);top:calc(var(--avatar) * -.06);--cw:calc(var(--avatar) * .42);display:flex;position:absolute}.pod-cards .playing-card{box-shadow:0 0 0 1px #fff,0 2px 4px #0008}.pod-cards .playing-card:first-child{rotate:-10deg}.pod-cards .playing-card+.playing-card{margin-left:calc(var(--cw) * -.55);rotate:8deg}.pod-cards.revealed{z-index:3;--cw:max(24px, calc(var(--avatar) * .56));top:34%;left:50%;right:auto;translate:-50%}.pod-cards.revealed .playing-card+.playing-card{margin-left:calc(var(--cw) * -.2)}.pod-cards.folded{opacity:.35}.bubble{z-index:6;white-space:nowrap;text-overflow:ellipsis;max-width:140%;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-hi), 0 4px 10px -4px #000;animation:pop .38s var(--spring) both;pointer-events:none;background:#140f34;border-radius:999px;padding:0 8px;font-size:11.5px;font-weight:800;line-height:20px;position:absolute;top:-12px;left:50%;overflow:hidden;translate:-50%}@keyframes pop{0%{opacity:0;transform:scale(.3)}}.roomy .bubble{font-size:13px;line-height:24px;top:-16px}.bubble-act.act-fold{background:var(--ruby-lo);color:#fff}.bubble-act.act-check,.bubble-act.act-call,.bubble-act.act-stand{background:var(--jade-lo);color:#eafff8}.bubble-act.act-raise,.bubble-act.act-bet,.bubble-act.act-double,.bubble-act.act-split{background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:var(--on-gold)}.bubble-act.act-all-in{background:linear-gradient(180deg, #b9a2ff, var(--violet-lo));color:#fff}.bubble-act.act-small-blind,.bubble-act.act-big-blind{color:var(--muted)}.bubble-ready{background:var(--jade-lo);color:#eafff8}.bubble-away,.bubble-out,.bubble-plain,.bubble-even{color:var(--muted)}.bubble-net{animation:rise 1.1s var(--spring) both;padding:0 10px;font-size:15px;line-height:24px;top:30%}.bubble-up{background:linear-gradient(180deg, #5cf0c4, var(--jade-lo));color:#002a1f}.bubble-down{background:var(--ruby-lo);color:#fff}@keyframes rise{0%{opacity:0;transform:translateY(18px)scale(.4)}60%{opacity:1;transform:translateY(-4px)scale(1.12)}}.pod-tags{z-index:5;white-space:nowrap;pointer-events:none;gap:3px;display:flex;position:absolute;top:calc(100% - 3px);left:50%;translate:-50%}.self-dock .pod-tags{position:static;translate:none}.tag{color:var(--ink);font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1px var(--line);background:#140f34;border-radius:6px;padding:0 6px;font-size:10.5px;font-weight:800;line-height:17px;display:inline-block}.roomy .tag{font-size:12px;line-height:20px}.tag-hand,.tag-result{background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:var(--on-gold);box-shadow:none}.tag-total{background:var(--paper);color:var(--card-ink)}.tag-bust,.tag-alert{background:var(--ruby);color:#fff;animation:1s ease-in-out infinite pulse}.tag-bust{animation:none}.tag-landlord{background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:var(--on-gold)}.tag-farmer{background:var(--jade-lo);color:#eafff8}.bet-spot{z-index:2;pointer-events:none;width:0;height:0;position:absolute}.pod>.button-anchor{top:auto;bottom:-14px;left:2px}.pod.side-right>.button-anchor{left:auto;right:2px}.pod.side-top>.button-anchor,.pod.side-bottom>.button-anchor{bottom:2px;left:-12px}.self-dock .button-anchor{inset:auto -6px 0 auto}.bet-amount{color:var(--gold-hi);font-variant-numeric:tabular-nums;white-space:nowrap;animation:pop .35s var(--spring) both;background:#0f0b24cc;border-radius:999px;padding:0 7px;font-size:11.5px;font-weight:800;line-height:18px;position:absolute;top:13px;left:0;translate:-50%}.room-shell:not(.chips-3d) .bet-amount{top:-9px}.room-shell:not(.chips-3d) .bet-amount:before{content:"";vertical-align:-1px;background:repeating-conic-gradient(var(--gold) 0 45deg, #fff 45deg 90deg);width:10px;height:10px;box-shadow:0 0 0 1px var(--gold-lo);border-radius:50%;margin-right:4px;display:inline-block}.roomy .bet-amount{font-size:13px;line-height:22px;top:16px}.board{z-index:2;text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;min-width:0;display:flex}.status-row{color:#d9f1ee;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 6px;max-width:100%;font-size:13px;display:flex}.status-line{flex:1 0 100%;justify-content:center;align-items:center;gap:6px;min-width:0;height:44px;display:flex}.status-text{text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 4px #000a;min-width:0;font-weight:600;overflow:hidden}.phase{white-space:nowrap;color:#bfeee8;background:#05313a99;border-radius:999px;padding:0 10px;font-weight:700;line-height:24px}.pot{white-space:nowrap;background:#0f0b24cc;border-radius:999px;flex:none;align-items:center;gap:5px;height:30px;padding:0 12px;display:inline-flex;position:relative;box-shadow:inset 0 0 0 1px #ffcb5c55}.pot-tray{width:0;height:0;position:absolute;bottom:calc(100% + 12px);left:50%}.orient-landscape .pot-tray{bottom:50%;left:-30px}.orient-portrait .pot{margin-top:26px}.dealer-tray{flex:none;width:1px;height:1px;position:relative;bottom:auto;left:auto}.pot-word{color:var(--muted);font-size:12px;font-weight:600}.pot strong{color:var(--gold);animation:pop .4s var(--spring);font-size:16px;font-weight:900;display:inline-block}.felt-button{height:44px;min-height:44px;color:var(--gold-hi);white-space:nowrap;background:#0f0b24cc;border-radius:12px;flex:none;padding:0 12px;font-size:13px;box-shadow:inset 0 0 0 1px #ffcb5c66}.dealer-line{align-items:center;gap:8px;display:flex}.dealer-title{letter-spacing:.2em;color:var(--gold-hi);writing-mode:vertical-rl;background:#0f0b24aa;border-radius:6px;padding:2px 6px;font-size:12px;font-weight:800}.total-badge{background:var(--paper);min-width:28px;color:var(--card-ink);text-align:center;font-variant-numeric:tabular-nums;animation:pop .35s var(--spring);border-radius:999px;padding:0 7px;font-size:13px;font-weight:900;line-height:22px;display:inline-block}.total-badge.bust{background:var(--ruby);color:#fff}.deck{--dw:18px;width:var(--dw);height:calc(var(--dw) * 1.4);flex:none;margin-right:2px;position:relative}.deck-card{border-radius:calc(var(--dw) * .12);background:url(/assets/cardback-Bby1eKjF.webp) 50%/cover,#241a50;position:absolute;inset:0;box-shadow:0 0 0 1px #fff,0 2px 4px #0006}.deck-card:nth-child(2){top:-1px;left:-1px}.deck-card:nth-child(3){top:-2px;left:-2px}.deck-card:nth-child(4){top:-3px;left:-3px}.deck-card:nth-child(5){top:-4px;left:-4px}.deal-layer{pointer-events:none;z-index:60;position:fixed;inset:0;overflow:hidden}.deal-layer>.deal-ghost{will-change:transform;margin:0;position:absolute}.cards{--cw:44px;gap:4px;min-width:0;display:flex}.roomy .cards{gap:8px}.card-group,.card-slots{gap:inherit;display:flex}.cards.fanned .card-group{gap:0}.cards.fanned .card-group>*+*{margin-left:var(--overlap)}.playing-card,.card-slot{width:var(--cw);height:calc(var(--cw) * 1.4);border-radius:calc(var(--cw) * .11);flex:none;display:block;position:relative}.playing-card{color:var(--card-ink);box-shadow:0 0 0 1px #0002, 0 calc(var(--cw) * .06) calc(var(--cw) * .14) #000a;font-family:var(--card-font);transition:translate .3s var(--spring), filter .3s, box-shadow .3s, transform .18s var(--spring);background:linear-gradient(165deg,#fff,#f3eee0);line-height:1;overflow:hidden}.card-index{font-size:max(12px, calc(var(--cw) * .36));letter-spacing:-.04em;flex-direction:column;align-items:center;gap:1px;font-weight:700;display:flex;position:absolute;top:5%;left:8%}.card-pip{font-size:.8em}.card-suit{font-size:calc(var(--cw) * .54);position:absolute;bottom:5%;right:8%}.red-suit{color:var(--card-red)}.card-back{box-shadow:0 0 0 1.5px #fff, 0 calc(var(--cw) * .06) calc(var(--cw) * .14) #000a;background:url(/assets/cardback-Bby1eKjF.webp) 50%/cover,#241a50}.card-slot{background:#00000018;border:1.5px dashed #ffffff2e}.playing-card.card-plays{box-shadow:0 0 0 2px var(--gold), 0 0 18px 3px #ffcb5ccc;translate:0 -6px}.playing-card.card-idle{filter:brightness(.5)saturate(.5)}.card-token{background:var(--paper);color:var(--card-ink);font:700 11px/16px var(--card-font);border-radius:3px;padding:0 3px;display:inline-block}.card-token.red-suit{color:var(--card-red)}.playing-card.joker .joker-word{writing-mode:vertical-rl;font-family:var(--sans);font-weight:900;font-size:max(12px, calc(var(--cw) * .3));line-height:1;position:absolute;top:5%;left:6%}.playing-card.joker-big{color:var(--card-red)}.playing-card.joker-big:after,.playing-card.joker-small:after{content:"★";font-size:calc(var(--cw) * .42);opacity:.85;position:absolute;bottom:6%;right:10%}.self-dock{z-index:4;justify-content:center;align-items:center;display:flex}.self-column .dock-button{flex-direction:column;justify-content:center;height:100%}.self-column .pod-tags{position:absolute;top:calc(100% - 3px);left:50%;translate:-50%}.self-row .dock-button{flex-direction:row;justify-content:flex-start;gap:10px;height:100%;padding:0 4px 0 8px}.self-row .pod-plate{flex:auto;align-items:flex-start;min-width:0;margin:0}.self-row .pod-tags{left:calc(var(--avatar) + 18px);position:absolute;top:calc(100% - 6px);translate:none}.self-row .bubble{left:calc(var(--avatar) / 2 + 8px)}.self-dock .pod-chips{font-size:14px}.roomy .self-dock .pod-chips{font-size:18px}.hand-area{z-index:4;justify-content:center;align-items:center;min-width:0;display:flex}.orient-portrait .hand-area{justify-content:flex-start}.own-hand{align-items:center;gap:12px;min-width:0;max-width:100%;display:flex}.holdem-hand .card-group>:first-child{rotate:-4deg}.holdem-hand .card-group>:nth-child(2){translate:0 2px;rotate:4deg}.holdem-hand.folded .playing-card{filter:brightness(.45)saturate(.4)}.hand-facts{color:var(--muted);flex-direction:column;align-items:flex-start;gap:3px;min-width:0;font-size:13px;display:flex}.hand-facts strong{color:var(--ink)}.hand-facts .hand-name{background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:var(--on-gold);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:100%;padding:1px 10px;font-size:14px;font-weight:800;overflow:hidden}.bj-hand{border-radius:14px;align-items:center;padding:4px;display:flex;position:relative}.bj-hand.current-hand{background:#ffcb5c14;box-shadow:inset 0 0 0 1.5px #ffcb5c88}.hand-caption{z-index:2;white-space:nowrap;pointer-events:none;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;line-height:16px;display:flex;position:absolute;top:-10px;right:-8px}.hand-caption>span:not(.total-badge){background:#0f0b24e6;border-radius:6px;padding:0 6px}.hand-caption .quiet{font-size:inherit;line-height:inherit;color:var(--muted)}.hand-caption .total-badge{min-width:34px;box-shadow:0 0 0 2px var(--gold), 0 4px 10px #0008;font-size:15px;line-height:24px}.other-hand{white-space:nowrap;text-align:left;flex:none;grid-template-columns:auto auto;place-content:center start;gap:0 6px;width:76px;min-height:44px;padding:2px 10px;font-size:12px;display:grid}.other-hand strong{color:var(--gold);font-size:15px}.other-hand small{color:var(--muted);grid-column:1/-1;font-size:11px}.hand-empty{align-self:center;font-size:14px}.rail-area{z-index:6;min-width:0}.rail{background:linear-gradient(#241b54f0,#150f38f0);border-radius:18px;align-items:center;gap:6px;min-width:0;height:100%;padding:0 0 0 12px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff1f,inset 0 0 0 1px #ffffff14,0 12px 28px -12px #000}.rail.my-turn{box-shadow:inset 0 1px 0 #ffffff26, 0 0 0 2px var(--gold), 0 12px 28px -12px #000;animation:1.6s ease-in-out infinite turn-glow}@keyframes turn-glow{50%{box-shadow:inset 0 1px 0 #ffffff26, 0 0 0 2px var(--gold-hi), 0 0 26px 2px #ffcb5c88}}.rail-status{color:#e4e0fa;white-space:nowrap;text-overflow:ellipsis;flex:auto;align-items:center;gap:8px;min-width:0;font-size:14px;display:flex;overflow:hidden}.rail-status strong{color:var(--gold);text-overflow:ellipsis;font-weight:800;overflow:hidden}.your-turn{animation:1.6s ease-in-out infinite shimmer}@keyframes shimmer{50%{color:var(--gold-hi);text-shadow:0 0 12px #ffcb5c}}.rail-countdown{text-align:center;min-width:42px;color:var(--ink);font-variant-numeric:tabular-nums;background:#0f0b24;border-radius:999px;flex:none;padding:0 8px;font-weight:900;line-height:26px}.rail-countdown small{color:inherit;font-size:11px;font-weight:600}.rail-countdown.urgent{color:#fff;background:var(--ruby-lo);animation:.8s ease-in-out infinite pulse}.rail-buttons,.rail-raise,.rail-confirm{flex:none;align-items:stretch;gap:6px;height:100%;display:flex}.rail-raise,.rail-confirm{flex:auto;justify-content:flex-end;min-width:0}.rail-confirm{align-items:center}.rail-confirm .rail-status{flex:auto}.rail-confirm>button{height:100%}.rail button{white-space:nowrap;letter-spacing:.02em;border-radius:16px;height:100%;min-height:44px;padding:0 16px;font-size:16px;font-weight:800}.rail button.rail-action{min-width:64px}.rail button.rail-primary,.rail button.action-raise{background:linear-gradient(180deg, var(--gold-hi), var(--gold) 50%, #f0a92e);color:var(--on-gold);box-shadow:inset 0 1px 0 #fff9, 0 3px 0 var(--gold-lo)}.rail button.action-fold,.rail button.action-pass{background:linear-gradient(180deg, #ff7a91, var(--ruby) 50%, var(--ruby-lo));color:#fff;box-shadow:inset 0 1px #fff6,0 3px #6e0d22}.rail button.action-check,.rail button.action-call,.rail button.action-stand{background:linear-gradient(180deg, #6ff5cf, var(--jade) 50%, var(--jade-lo));color:#00281d;box-shadow:inset 0 1px #fff8,0 3px #05523c}.rail button.action-all-in{background:linear-gradient(180deg, #c6b3ff, var(--violet) 50%, var(--violet-lo));color:#fff;box-shadow:inset 0 1px #fff6,0 3px #2f1d85}.rail button.action-hit.rail-primary{background:linear-gradient(180deg, var(--gold-hi), var(--gold) 50%, #f0a92e)}.rail button.is-ready{color:#8ff5d6;box-shadow:inset 0 0 0 1.5px var(--jade);background:#0d8a6633}.rail .cost{font-variant-numeric:tabular-nums;opacity:.92}.rail-stepper{min-width:0;box-shadow:inset 0 0 0 1px var(--line-hi);background:#0f0b24;border-radius:16px;flex:0 auto;align-items:stretch;display:flex}.rail button.rail-step{width:44px;box-shadow:none;background:0 0;padding:0;font-size:22px}.rail button.rail-amount{font-variant-numeric:tabular-nums;min-width:64px;color:var(--gold);box-shadow:none;background:0 0;padding:0 4px;font-size:17px}.rail button.rail-back{padding:0 12px;font-size:14px}.rail-pop{z-index:8;max-width:100%;box-shadow:inset 0 0 0 1px var(--line-hi), 0 18px 40px -12px #000;animation:slide-up .28s var(--spring) both;background:#1c1544f5;border-radius:18px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;padding:8px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)scale(.96)}}.raise-pop{flex-direction:column;align-items:stretch;width:min(100%,420px)}.pop-presets{gap:6px;display:flex}.pop-presets>button{flex:1 1 0}.rail-pop button.rail-preset{height:44px;min-height:44px;padding:0 12px;font-size:14px}.rail-pop button.rail-preset.selected{color:var(--gold-hi);box-shadow:inset 0 0 0 2px var(--gold);background:#ffcb5c26}.raise-slider{width:100%}.rail-bets{gap:6px}.rail button.bet-chip-button{color:#fff;background:repeating-conic-gradient(#ffffffd9 0 12deg, transparent 12deg 60deg), radial-gradient(circle, var(--violet-lo) 56%, #3a2799 57%);text-shadow:0 1px 2px #000;border-radius:50%;width:44px;height:44px;padding:0;font-size:13px;font-weight:900;box-shadow:inset 0 0 0 4px #0003,0 3px #1d1260}.rail button.bet-chip-button.selected{background:repeating-conic-gradient(#ffffffd9 0 12deg, transparent 12deg 60deg), radial-gradient(circle, var(--gold) 56%, var(--gold-lo) 57%);color:var(--on-gold);text-shadow:none;box-shadow:0 0 0 2px var(--gold-hi), 0 8px 16px -4px #ffcb5c99;transform:translateY(-4px)}.orient-portrait .rail-status{flex:0 auto}.orient-portrait .rail .rail-buttons{flex:auto;justify-content:flex-end}.orient-portrait .rail .rail-buttons>button{flex:1 1 0;padding-inline:8px}.orient-portrait .rail-status:has(+.rail-buttons>:nth-child(3)) strong{display:none}.unseated .rail-status{flex:auto}.win-burst{z-index:7;pointer-events:none;place-items:center;animation:2.6s ease-in forwards burst-out;display:grid}.burst-rays,.burst-ring{border-radius:50%;position:absolute;top:50%;left:50%;translate:-50% -50%}.burst-rays{background:repeating-conic-gradient(#ffcb5c55 0 8deg, transparent 8deg 22deg);width:240px;height:240px;animation:2.6s linear rays;-webkit-mask:radial-gradient(closest-side,#000 20%,#0000 100%);mask:radial-gradient(closest-side,#000 20%,#0000 100%)}.burst-ring{width:40px;height:40px;box-shadow:0 0 0 3px var(--gold-hi), 0 0 30px 6px #ffcb5c;animation:.9s ease-out forwards ring}.burst-amount{letter-spacing:.02em;color:var(--gold-hi);text-shadow:0 3px #7a4b06,0 0 24px #ffcb5c,0 8px 18px #000;animation:amount .7s var(--spring) both;font-variant-numeric:tabular-nums;font-size:40px;font-weight:900;position:relative}.burst-spark{background:var(--gold-hi);width:8px;height:8px;box-shadow:0 0 8px var(--gold);rotate:calc(var(--i) * 25.7deg);animation:1.1s cubic-bezier(.2,.7,.3,1) both spark;animation-delay:calc(var(--i) * 12ms);border-radius:2px;position:absolute;top:50%;left:50%}.burst-spark:nth-child(3n){background:var(--jade);box-shadow:0 0 8px var(--jade)}.burst-spark:nth-child(4n){background:#fff}@keyframes rays{0%{rotate:0deg;scale:.4}to{rotate:90deg;scale:1.2}}@keyframes ring{to{opacity:0;width:300px;height:300px}}@keyframes amount{0%{opacity:0;transform:scale(.2)}}@keyframes spark{0%{opacity:1;transform:translateY(0)scale(1.4)}to{opacity:0;transform:translateY(-120px)scale(.2)}}@keyframes burst-out{0%,70%{opacity:1}to{opacity:0;visibility:hidden}}.ddz-band{z-index:2;color:#d9f1ee;white-space:nowrap;flex-wrap:wrap;place-content:center;align-items:center;gap:4px 10px;font-size:13px;display:flex}.ddz-bottom{align-items:center;display:flex}.ddz-bottom-backs{gap:3px;display:flex}.mini-back{background:url(/assets/cardback-Bby1eKjF.webp) 50%/cover,#241a50;border-radius:3px;width:22px;height:31px;box-shadow:0 0 0 1px #fff}.ddz-stake{background:#0f0b2499;border-radius:999px;align-items:baseline;gap:6px;padding:2px 10px;display:flex}.ddz-stake strong{color:var(--gold);font-size:15px;font-weight:900}.ddz-stake:empty{display:none}.stake-amount{color:#e3ece9}.ddz-turn{text-overflow:ellipsis;align-items:center;gap:6px;min-width:0;font-weight:700;display:flex;overflow:hidden}.ddz-turn-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ddz-turn .redeal{color:var(--gold-hi)}.ddz-turn .up{color:#8ff5d6}.ddz-turn .down{color:#ffb0bd}.ddz-seconds{font-variant-numeric:tabular-nums;background:#0f0b24;border-radius:999px;flex:none;padding:0 8px;font-weight:900;line-height:24px}.ddz-seconds small{font-size:11px;font-weight:600}.ddz-seconds.urgent{background:var(--ruby-lo);color:#fff}.ddz-band .deck{--dw:16px}.ddz-zone{z-index:2;border-radius:12px;justify-content:center;align-items:center;gap:6px;display:flex}.ddz-zone.active{background:#ffcb5c0d;box-shadow:inset 0 0 0 1.5px #ffcb5c66}.ddz-zone .zone-pattern{writing-mode:vertical-rl;background:linear-gradient(180deg, var(--gold-hi), var(--gold));color:var(--on-gold);animation:pop .35s var(--spring) both;border-radius:6px;flex:none;padding:4px 1px;font-size:11px;font-weight:800;line-height:16px}.ddz-zone .zone-pattern.stale{color:var(--muted);background:#0f0b24cc}.ddz-zone:not(.current) .ddz-row{opacity:.6}.ddz-zone .ddz-row{animation:slam .32s var(--spring) both}@keyframes slam{0%{opacity:0;transform:translateY(-14px)scale(1.12)}}.zone-word{animation:pop .35s var(--spring) both;background:#0f0b24cc;border-radius:999px;padding:3px 14px;font-size:15px;font-weight:800}.zone-word.pass{color:var(--muted)}.zone-word.bid{color:var(--gold)}.ddz-row{flex-direction:column;align-items:center;display:flex}.ddz-line{display:flex}.ddz-line>*+*{margin-left:var(--overlap)}.ddz-row.two-rows .ddz-line+.ddz-line{margin-top:calc(var(--cw) * 1.4 * -.24)}.ddz-zone .card-index{gap:0;top:3%}.ddz-zone .card-pip{font-size:max(10px,.8em)}.mode-doudizhu .rail{padding-left:10px}.ddz-hand{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:8px;flex:none;position:relative}.ddz-hand:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}.ddz-slot{cursor:pointer;position:absolute}.ddz-slot>.playing-card{pointer-events:none;position:absolute;bottom:0;left:0}.ddz-slot.selected>.playing-card{transform:translateY(calc(var(--lift) * -1));box-shadow:0 0 0 2px var(--gold), 0 0 14px -2px #ffcb5c, 0 6px 12px -4px #000a}.ddz-hand:focus-visible .ddz-slot.focused>.playing-card{outline:2px solid var(--jade);outline-offset:-2px}.hand-doudizhu{justify-content:center;align-items:flex-end;padding-bottom:4px}dialog.sheet{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-hi), 0 40px 80px -20px #000;overscroll-behavior:contain;background:linear-gradient(#241b54,#18123a);border:0;max-width:none;max-height:none;margin:0;padding:0}dialog.sheet::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#07051499}dialog.sheet-side{inset:max(var(--safe-top), 8px) max(var(--safe-right), 8px) max(var(--safe-bottom), 8px) auto;width:min(400px,100vw - 16px);height:auto;animation:sheet-in .32s var(--spring);border-radius:24px;position:fixed}dialog.sheet-center{width:min(420px,100vw - 24px);height:fit-content;max-height:calc(100dvh - max(var(--safe-top), 8px) - max(var(--safe-bottom), 8px) - 16px);animation:sheet-pop .3s var(--spring);border-radius:24px;margin:auto;position:fixed;inset:0}@keyframes sheet-in{0%{opacity:0;transform:translate(40px)}}@keyframes sheet-pop{0%{opacity:0;transform:scale(.9)}}@media (orientation:portrait) and (width<=699px){dialog.sheet-side{width:100%;max-height:86dvh;animation:sheet-up .34s var(--spring);padding-bottom:var(--safe-bottom);border-radius:24px 24px 0 0;inset:auto 0 0}dialog.sheet-side .sheet-header:before{content:"";background:#ffffff40;border-radius:2px;width:40px;height:4px;margin-left:-20px;position:absolute;top:6px;left:50%}}@keyframes sheet-up{0%{opacity:.4;transform:translateY(60%)}}.sheet-frame{height:100%;max-height:inherit;flex-direction:column;min-height:0;display:flex}dialog.sheet-side .sheet-frame{max-height:calc(100dvh - 16px)}dialog.sheet-center .sheet-frame{max-height:calc(100dvh - max(var(--safe-top), 8px) - max(var(--safe-bottom), 8px) - 16px)}.sheet-header{flex:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 8px 8px 20px;display:flex;position:relative}.sheet-header h2{min-width:0;font-size:20px;font-weight:800}.sheet-close{width:44px;color:var(--muted);box-shadow:none;background:#ffffff10;border-radius:50%;flex:none;padding:0;font-size:24px;font-weight:400}.sheet-body{flex:auto;align-content:start;gap:16px;min-height:0;padding:6px 20px 20px;font-size:14px;line-height:1.55;display:grid;overflow-y:auto}.sheet-error{color:#ffd0d8;background:#ff4f6d22;border-radius:12px;align-items:center;gap:8px;padding:8px 10px;display:flex;box-shadow:inset 0 0 0 1px #ff4f6d55}.sheet-error p{flex:auto;min-width:0}.sheet-error .text-button{color:#ffd0d8;flex:none}.sheet-footer{flex:none;justify-content:flex-end;gap:8px;padding:10px 16px 16px;display:flex}.sheet-lede{color:#e4e0fa}.sheet-note{color:var(--gold-hi);background:#ffcb5c14;border-radius:12px;padding:10px 12px;font-size:14px;box-shadow:inset 0 0 0 1px #ffcb5c40}.sheet-section{box-shadow:inset 0 0 0 1px var(--line);background:#0f0b2466;border-radius:18px;gap:8px;padding:14px;display:grid}.sheet-section h3{color:var(--muted);font-size:13px;font-weight:700}.sheet-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wordmark-title{gap:0;display:grid}.wordmark-title small{color:var(--muted);font-size:13px;font-weight:500}.player-title{align-items:center;gap:12px;min-width:0;display:flex}.player-title>span:last-child{text-overflow:ellipsis;overflow:hidden}.plain-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.facts{gap:6px;margin:0;display:grid}.facts>div{grid-template-columns:5.5em minmax(0,1fr);align-items:center;gap:8px;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.standing-net.up,.facts .up{color:#8ff5d6}.facts .brass{color:var(--gold);font-weight:900}.facts .down,.standing-net.down{color:#ffb0bd}.standings{gap:6px;margin:0;padding:0;list-style:none;display:grid}.standings li,.detail-list li{background:#ffffff0a;border-radius:12px;grid-template-columns:2em 28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 10px;display:grid}.standings li:first-child:not(.departed){background:linear-gradient(90deg,#ffcb5c2e,#ffffff0a);box-shadow:inset 0 0 0 1px #ffcb5c55}.standings li.departed{opacity:.7}.standing-rank{color:var(--gold);text-align:center;font-variant-numeric:tabular-nums;font-weight:900}.standing-name{min-width:0;display:grid}.standing-name strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.standing-name small{font-size:12px}.standing-net{font-variant-numeric:tabular-nums;font-weight:900}.portrait-gap{width:28px;height:28px}.detail-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.detail-list li{grid-template-columns:minmax(0,1fr) auto auto auto}.detail-list .tokens{gap:2px;display:flex}.bj-hands{gap:8px;margin:0;padding:0;list-style:none;display:grid}.bj-hands li{border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:6px;display:flex}.bj-hands li.current{background:#ffcb5c14;box-shadow:inset 0 0 0 1px #ffcb5c66}.bj-hands li>span{display:grid}.invite-code{letter-spacing:.04em;font-family:ui-monospace,SF Mono,Menlo,monospace}.copy-status{color:var(--jade);font-size:13px}.copy-status:empty{display:none}.install-guide{gap:10px;display:grid}.install-guide ol{gap:4px;margin:0;padding-left:1.4em;display:grid}.small-print{font-size:13px}.number-form{gap:16px;display:grid}.number-form input{text-align:center;font-size:22px;font-weight:800}.number-form .button-row{justify-content:flex-end}.admin-login-form{gap:12px;display:grid}.trophy{width:100%;height:170px;margin:-8px 0 -4px;display:block}.trophy.static{background:radial-gradient(closest-side,#ffcb5c55,#0000)}.fatal-error{text-align:center;place-content:center;gap:12px;min-height:100svh;padding:24px;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.win-burst{display:none}}.phone .rail button{padding-inline:6px;font-size:16px;line-height:1.1}.phone .rail button .cost{opacity:.85;font-size:12.5px;font-weight:800;display:block}.phone .rail.my-turn .rail-status{flex:none}.phone .rail.my-turn .rail-status strong{display:none}.phone .rail{gap:5px;padding-left:8px}.phone .rail .rail-buttons{flex:auto;justify-content:flex-end}.phone .rail .rail-buttons>button{flex:1 1 0;min-width:0}.orient-landscape .status-row{flex-wrap:nowrap}.orient-landscape .status-line{flex:0 auto}.pot-button{background:#0f0b24cc;border-radius:999px;height:44px;min-height:44px;padding:0 12px;font-weight:600;box-shadow:inset 0 0 0 1px #ffcb5c55}.pot-side{color:var(--gold-hi);background:#ffcb5c26;border-radius:6px;margin-left:4px;padding:0 6px;font-size:11px;font-weight:800;line-height:18px}.outcome{border-radius:6px;padding:0 6px;font-weight:800}.outcome-win,.outcome-blackjack{color:#eafff8;background:var(--jade-lo)!important}.outcome-lose{color:#fff;background:var(--ruby-lo)!important}.mode-doudizhu .rail button.rail-action{flex:1 1 0;min-width:0}.mode-doudizhu .rail-buttons{flex:auto}.orient-landscape .board{flex-direction:row;justify-content:center;align-items:center;gap:10px}.orient-landscape .status-row{flex-flow:column;flex:none;align-items:flex-start;gap:4px;width:200px}.orient-landscape.roomy .status-row{width:220px}.orient-landscape .status-line{flex:none;justify-content:flex-start;max-width:100%;height:auto;min-height:44px}.orient-landscape .status-line .status-text{white-space:normal;-webkit-line-clamp:2;text-align:left;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box}.orient-landscape .pot{margin-left:40px}.orient-landscape .holdem-board .deck{position:absolute;top:calc(50% - 13px);left:-26px}.dealer-line .deck{--dw:22px;margin-left:6px}.roomy .pot,.roomy .pot-button{height:44px;min-height:44px;padding:0 16px}.roomy .pot strong{font-size:22px}.roomy .pot-word{font-size:14px}.roomy .status-row{font-size:15px}.roomy .felt-button{height:44px;font-size:15px}.hand-facts>*{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}@media (width<=349px){.orient-portrait .pot{margin-top:16px}.orient-portrait .pot-tray{bottom:calc(100% + 6px)}}.holdem-board .deck{position:absolute;bottom:58px;left:calc(50% - 112px)}.pot:not(.pot-button){height:36px}.bet-toggle{align-items:center;gap:6px;display:inline-flex}.rail button.bet-toggle{color:var(--gold-hi);background:#0f0b24;box-shadow:inset 0 0 0 1.5px #ffcb5c88}.rail button.bet-toggle.open{box-shadow:inset 0 0 0 2px var(--gold), 0 0 16px -4px #ffcb5c}.bet-toggle-chip{background:repeating-conic-gradient(#ffffffd9 0 12deg, transparent 12deg 60deg), radial-gradient(circle, var(--gold) 56%, var(--gold-lo) 57%);border-radius:50%;flex:none;width:18px;height:18px}.phone .rail button.bet-toggle .cost{font-size:inherit;display:inline}.orient-portrait .ddz-turn{flex:1 1 0;justify-content:center}.ddz-stake{white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.dealer-line{max-width:100%}.mode-doudizhu.orient-portrait .rail.my-turn .rail-status{background:#0f0b24e6;border-radius:999px;padding:2px 10px;font-size:13px;display:flex;position:absolute;bottom:calc(100% + 6px);left:6px;box-shadow:inset 0 0 0 1px #ffcb5c55}.mode-doudizhu.orient-portrait .rail.my-turn .rail-status strong{display:inline}.mode-doudizhu.orient-portrait .rail.my-turn .rail-countdown{display:none}.orient-portrait .raise-pop{width:calc(100% - 84px)}.orient-portrait .ddz-band .deck{position:absolute;top:4px;right:4px}.orient-portrait .ddz-band{row-gap:6px}.band-row{display:contents}.orient-portrait .ddz-band{flex-flow:column;gap:6px}.orient-portrait .band-row{justify-content:center;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.orient-portrait .ddz-stake{gap:4px;padding:2px 8px}.unseated .rail .rail-buttons{flex:none}.unseated .rail .rail-buttons>button{flex:none;min-width:120px;padding-inline:20px}.orient-landscape .ddz-band{flex-wrap:nowrap}.orient-landscape .ddz-turn{flex:0 auto}.orient-landscape .ddz-bottom,.orient-landscape .ddz-band .felt-button,.rail button.rail-step{flex:none}.rail-stepper{flex:auto}.rail button.rail-amount{flex:auto;min-width:44px}.phone .rail button.rail-back{flex:none;padding:0 8px}.phone .rail-raise>.rail-primary{flex:none}.ddz-slot.upper>.playing-card{top:var(--lift);bottom:auto}.orient-portrait .status-line{flex:none;width:min(100%,180px)}.orient-portrait .pot{max-width:180px}.phone.mode-doudizhu .rail.my-turn .rail-status strong{display:inline}.orient-landscape .pot-tray{left:-22px}.blackjack-hand{gap:6px}.bj-hand{padding:4px 2px}.ddz-zone .joker-word{letter-spacing:-.12em;line-height:.9;top:3%}
