:root{--font:"Trebuchet MS", "Segoe UI", system-ui, sans-serif;--display-font:"Silkscreen", monospace;--ui-scale:1;--radius:10px;--danger:#e0655f;--suitGlow:none;--bg:var(--sky2);--panel-2:var(--panel2);--accent-2:var(--accent2);--card-bg:var(--cardFace);--border:var(--rim);--table-edge:var(--rim)}:root,:root[data-theme=retro-forest]{--sky1:#1b3d26;--sky2:#0c1d12;--panel:#102015f7;--panel2:#1c3625e6;--ink:#eaf3ec;--muted:#9fb8a6;--accent:#f2c14e;--accent2:#6fcf97;--accentGlow:#f2c14e59;--accent2Glow:#6fcf9759;--felt1:#2f6d43;--felt2:#1f5231;--felt3:#163e25;--rim:#3a2a17;--tableRadius:44px;--tableGlow:0 0 0 transparent;--chipBg:#0a1a0fcc;--cardFace:#f7f1dc;--cardBorder:#2b1d0e;--cardRadius:5px;--cardShadow:2px 2px 0 #0006;--cardBack:radial-gradient(circle at 50% 50%, #f2c14e26 0 24%, transparent 26%), repeating-linear-gradient(45deg, #2c6e46 0 6px, #235a39 6px 12px);--btnInk:#12281b;--vignette:#0006;--suitRed:#c8452c;--suitBlack:#22301f;--suitGlow:none}:root[data-theme=underwater]{--sky1:#0a5468;--sky2:#032028;--panel:#05222cf7;--panel2:#0c3c4ce6;--ink:#dff6fb;--muted:#7fb6c4;--accent:#ffd166;--accent2:#4ecdc4;--accentGlow:#ffd16659;--accent2Glow:#4ecdc459;--felt1:#0f6b7d;--felt2:#0a4b60;--felt3:#062f40;--rim:#0c3945;--tableRadius:70px;--tableGlow:0 0 30px #4ecdc433;--chipBg:#031920cc;--cardFace:#f2fcff;--cardBorder:#0a3140;--cardRadius:12px;--cardShadow:0 3px 6px #0006;--cardBack:radial-gradient(circle at 50% 100%, #dff6fb29 0 45%, transparent 50%) 0 0 / 14px 10px repeat, linear-gradient(180deg, #0f6b7d, #0a4b60);--btnInk:#04222e;--vignette:#000a1080;--suitRed:#ef6461;--suitBlack:#0a4b60;--suitGlow:none}:root[data-theme=cyberpunk]{--sky1:#0a0a14;--sky2:#1c1040;--panel:#0c0c1af7;--panel2:#1a1a35e6;--ink:#e8f6ff;--muted:#7a86c9;--accent:#ff3ea5;--accent2:#22e0ff;--accentGlow:#ff3ea566;--accent2Glow:#22e0ff66;--felt1:#2a1a4a;--felt2:#171733;--felt3:#0d0d1f;--rim:#0d0d22;--tableRadius:12px;--tableGlow:0 0 26px #22e0ff4d;--chipBg:#0a0a19d9;--cardFace:#10101f;--cardBorder:#2f2f5c;--cardRadius:3px;--cardShadow:0 0 8px #22e0ff33;--cardBack:repeating-linear-gradient(90deg, #22e0ff38 0 1px, transparent 1px 8px), repeating-linear-gradient(0deg, #ff3ea538 0 1px, transparent 1px 8px), linear-gradient(135deg, #1e1e42, #0d0d1f);--btnInk:#05121a;--vignette:#00000880;--suitRed:#ff3ea5;--suitBlack:#22e0ff;--suitGlow:0 0 6px}:root[data-theme=outer-space]{--sky1:#0b1030;--sky2:#05060f;--panel:#0d1028f7;--panel2:#1a2140e6;--ink:#e6ecff;--muted:#8490c9;--accent:#9d7bff;--accent2:#57d7ff;--accentGlow:#9d7bff66;--accent2Glow:#57d7ff59;--felt1:#24306b;--felt2:#141a3f;--felt3:#090c22;--rim:#1c1a45;--tableRadius:20px;--tableGlow:0 0 26px #9d7bff40;--chipBg:#060818d9;--cardFace:#f6f7ff;--cardBorder:#1a1f45;--cardRadius:8px;--cardShadow:0 2px 6px #00000080;--cardBack:radial-gradient(circle at 22% 28%, #ffffffe6 1px, transparent 2px), radial-gradient(circle at 72% 18%, #ffffffb3 1px, transparent 2px), radial-gradient(circle at 42% 72%, #fffc 1px, transparent 2px), radial-gradient(circle at 84% 62%, #fff9 1px, transparent 2px), linear-gradient(160deg, #1c2452, #0a0d24);--btnInk:#0a0d24;--vignette:#0000068c;--suitRed:#e0557f;--suitBlack:#2c3170;--suitGlow:none}:root[data-theme=winter]{--sky1:#a8cbe8;--sky2:#dceefc;--panel:#f0f7fdf7;--panel2:#d6e8f6f2;--ink:#26374a;--muted:#5b7590;--accent:#2e6da4;--accent2:#78b7e8;--accentGlow:#2e6da44d;--accent2Glow:#78b7e866;--felt1:#cfe4f5;--felt2:#a9cbe6;--felt3:#8fb4d6;--rim:#5b7c9c;--tableRadius:50px;--tableGlow:0 0 24px #ffffff80;--chipBg:#fffc;--cardFace:#fff;--cardBorder:#b9d0e4;--cardRadius:8px;--cardShadow:0 2px 5px #3c5a7859;--cardBack:repeating-linear-gradient(45deg, #fff6 0 1px, transparent 1px 9px), repeating-linear-gradient(-45deg, #fff6 0 1px, transparent 1px 9px), linear-gradient(180deg, #7fb2e5, #5590c9);--btnInk:#0d2438;--vignette:#7896b440;--suitRed:#c34a4a;--suitBlack:#2b3f55;--suitGlow:none}:root[data-theme=poker-room]{--sky1:#331318;--sky2:#140607;--panel:#1a0a0cf7;--panel2:#2e1418e6;--ink:#f3e8d8;--muted:#a8907c;--accent:#d9a441;--accent2:#4f9e6b;--accentGlow:#d9a44166;--accent2Glow:#4f9e6b59;--felt1:#2e7d4f;--felt2:#1f5c3a;--felt3:#153f28;--rim:#4a2c14;--tableRadius:70px;--tableGlow:0 0 0 transparent;--chipBg:#140708d9;--cardFace:#fdfcf7;--cardBorder:#333;--cardRadius:6px;--cardShadow:0 2px 5px #00000080;--cardBack:repeating-linear-gradient(45deg, #d9a44138 0 1px, transparent 1px 7px), repeating-linear-gradient(-45deg, #d9a44138 0 1px, transparent 1px 7px), linear-gradient(180deg, #7a1420, #5c0f18);--btnInk:#14251a;--vignette:#0009;--suitRed:#c62828;--suitBlack:#111;--suitGlow:none}:root[data-theme=jungle]{--sky1:#1c4a24;--sky2:#0b2010;--panel:#0c2010f7;--panel2:#18381ee6;--ink:#eef7e8;--muted:#95b98a;--accent:#e8a33d;--accent2:#58c46b;--accentGlow:#e8a33d66;--accent2Glow:#58c46b59;--felt1:#2f7d3d;--felt2:#1f5c2c;--felt3:#143f1e;--rim:#4a3418;--tableRadius:50px;--tableGlow:0 0 0 transparent;--chipBg:#08180bd1;--cardFace:#f4ecd8;--cardBorder:#2f2410;--cardRadius:10px;--cardShadow:2px 2px 0 #0006;--cardBack:radial-gradient(ellipse at 50% 50%, #e8a33d24 0 30%, transparent 33%), repeating-linear-gradient(60deg, #2f7d3d 0 7px, #256632 7px 14px);--btnInk:#0f2a14;--vignette:#000a0080;--suitRed:#cf5333;--suitBlack:#234420;--suitGlow:none}:root[data-theme=futuristic-city]{--sky1:#16324f;--sky2:#081422;--panel:#0a1624f7;--panel2:#162c42e6;--ink:#e8f4ff;--muted:#7d9cbc;--accent:#57d7ff;--accent2:#7c8cff;--accentGlow:#57d7ff66;--accent2Glow:#7c8cff59;--felt1:#1b3a5c;--felt2:#122840;--felt3:#0a1830;--rim:#2b4a6a;--tableRadius:18px;--tableGlow:0 0 24px #57d7ff40;--chipBg:#08121ed9;--cardFace:#eef6ff;--cardBorder:#1b3a5c;--cardRadius:6px;--cardShadow:0 2px 6px #00000073;--cardBack:repeating-linear-gradient(0deg, #57d7ff2e 0 1px, transparent 1px 7px), linear-gradient(180deg, #1b3a5c, #0e2138);--btnInk:#081422;--vignette:#00060e80;--suitRed:#ff6b81;--suitBlack:#16324f;--suitGlow:none}:root[data-theme=candy-land]{--sky1:#ffd9ec;--sky2:#ffb0d4;--panel:#fff1f8f7;--panel2:#ffdeeef2;--ink:#4a2038;--muted:#a06080;--accent:#ff5fa2;--accent2:#56d9c9;--accentGlow:#ff5fa259;--accent2Glow:#56d9c966;--felt1:#8ee6d8;--felt2:#5ecfbd;--felt3:#3cb2a0;--rim:#b73d72;--tableRadius:70px;--tableGlow:0 0 22px #ffffff80;--chipBg:#ffffffd9;--cardFace:#fff8fc;--cardBorder:#b73d72;--cardRadius:12px;--cardShadow:0 3px 0 #b73d7259;--cardBack:repeating-linear-gradient(45deg, #ff8fc7 0 8px, #fff2f8 8px 16px);--btnInk:#0f3833;--vignette:#dc78aa38;--logoInk:#b73d72;--suitRed:#f04e7d;--suitBlack:#7a4ac0;--suitGlow:none}:root[data-theme=steampunk]{--sky1:#4a3520;--sky2:#241708;--panel:#241708f7;--panel2:#3e2a12e6;--ink:#f0e2c8;--muted:#b09a76;--accent:#c9a227;--accent2:#d97742;--accentGlow:#c9a22766;--accent2Glow:#d9774259;--felt1:#6b4a26;--felt2:#523618;--felt3:#3a2510;--rim:#8a6a2f;--tableRadius:26px;--tableGlow:0 0 0 transparent;--chipBg:#1c1206d9;--cardFace:#f2e6cc;--cardBorder:#5c4420;--cardRadius:4px;--cardShadow:2px 2px 0 #00000073;--cardBack:repeating-linear-gradient(45deg, #c9a2274d 0 1px, transparent 1px 8px), repeating-linear-gradient(-45deg, #c9a2274d 0 1px, transparent 1px 8px), linear-gradient(180deg, #6e5326, #4a3418);--btnInk:#241708;--vignette:#0a05008c;--suitRed:#a83a2a;--suitBlack:#3a2c14;--suitGlow:none}:root[data-theme=tropical]{--sky1:#ffb26b;--sky2:#0e8f8a;--panel:#093a37f7;--panel2:#105852e6;--ink:#fff8ef;--muted:#a8d4c8;--accent:#ffb84d;--accent2:#35d0ba;--accentGlow:#ffb84d66;--accent2Glow:#35d0ba59;--felt1:#12a08f;--felt2:#0d7f74;--felt3:#095c54;--rim:#7a4a22;--tableRadius:60px;--tableGlow:0 0 0 transparent;--chipBg:#08302dcc;--cardFace:#fffdf2;--cardBorder:#7a4a22;--cardRadius:10px;--cardShadow:0 3px 6px #00000059;--cardBack:linear-gradient(180deg, #ffb26b 0 32%, #f0563c 32% 46%, #12a08f 46%);--btnInk:#083430;--vignette:#001e1c66;--suitRed:#f0563c;--suitBlack:#0d5c50;--suitGlow:none}:root[data-theme=retro-arcade]{--sky1:#16102a;--sky2:#0a0714;--panel:#100c1ef7;--panel2:#20183ae6;--ink:#f2ecff;--muted:#8a7fb8;--accent:#ffd23f;--accent2:#3ef58c;--accentGlow:#ffd23f66;--accent2Glow:#3ef58c66;--felt1:#241b45;--felt2:#171033;--felt3:#0d0a20;--rim:#3a2f6b;--tableRadius:10px;--tableGlow:0 0 22px #ff4f7840;--chipBg:#0c0818d9;--cardFace:#0f0c1e;--cardBorder:#3a2f6b;--cardRadius:4px;--cardShadow:0 0 8px #3ef58c26;--cardBack:repeating-linear-gradient(0deg, #00000038 0 2px, transparent 2px 4px), repeating-conic-gradient(#2a2052 0 90deg, #1c1538 90deg 180deg) 0 0 / 12px 12px;--btnInk:#0a1408;--vignette:#00000680;--suitRed:#ff4f78;--suitBlack:#3ef58c;--suitGlow:0 0 6px}:root[data-theme=heaven]{--sky1:#eaf2fc;--sky2:#c8dcf2;--panel:#f8fbfff7;--panel2:#e4eefaf2;--ink:#33415e;--muted:#8a9bb8;--accent:#d9a441;--accent2:#7fb2e5;--accentGlow:#d9a44159;--accent2Glow:#7fb2e566;--felt1:#fff;--felt2:#dbe8fa;--felt3:#b9d0ec;--rim:#c7d8ee;--tableRadius:80px;--tableGlow:0 0 30px #fffc;--chipBg:#ffffffd9;--cardFace:#fff;--cardBorder:#a9bdd8;--cardRadius:14px;--cardShadow:0 3px 8px #7896be4d;--cardBack:radial-gradient(circle at 30% 25%, #ffffffe6 0 18%, transparent 22%), radial-gradient(circle at 70% 65%, #fffc 0 22%, transparent 26%), linear-gradient(135deg, #e8f1fc, #c4d8f0);--btnInk:#2a3650;--vignette:#a0b9d740;--logoInk:#a8802e;--suitRed:#d06a6a;--suitBlack:#33415e;--suitGlow:none}:root[data-theme=hell]{--sky1:#3a0d08;--sky2:#160403;--panel:#1a0705f7;--panel2:#34100be6;--ink:#ffe5d6;--muted:#c08a76;--accent:#ff8c42;--accent2:#ffd166;--accentGlow:#ff8c4273;--accent2Glow:#ffd16666;--felt1:#7a1e12;--felt2:#4d130b;--felt3:#2a0906;--rim:#57201a;--tableRadius:14px;--tableGlow:0 0 26px #ff501e4d;--chipBg:#120403d9;--cardFace:#fff3ea;--cardBorder:#3a0d08;--cardRadius:4px;--cardShadow:0 2px 6px #0000008c;--cardBack:radial-gradient(ellipse at 50% 100%, #ff8c4273 0 30%, transparent 62%), repeating-linear-gradient(45deg, #7a1e12 0 6px, #57130b 6px 12px);--btnInk:#2a0906;--vignette:#0009;--suitRed:#d92b1f;--suitBlack:#40201a;--suitGlow:none}*{box-sizing:border-box}body{font-family:var(--font);background:var(--sky2);color:var(--ink);margin:0}button{cursor:pointer;border:2px solid var(--border);background:var(--panel-2);color:var(--ink);border-radius:var(--radius);padding:6px 12px;font-family:inherit;transition:transform 80ms,background .12s}button:hover:not(:disabled){background:var(--accent);color:var(--btnInk)}button:disabled{opacity:.4;cursor:not-allowed}select,input[type=number]{background:var(--panel);color:var(--ink);border:2px solid var(--border);border-radius:8px;padding:4px 8px;font-family:inherit}@keyframes floatUp{0%{opacity:0;transform:translateY(0)}12%{opacity:.85}88%{opacity:.6}to{opacity:0;transform:translateY(-105vh)}}@keyframes fallDown{0%{opacity:.9;transform:translateY(-4vh)}to{opacity:.7;transform:translateY(106vh)}}@keyframes twinkle{0%,to{opacity:.15}50%{opacity:1}}@keyframes firefly{0%,to{opacity:.2;transform:translate(0)}50%{opacity:.95;transform:translate(16px,-12px)}}@keyframes driftX{0%,to{transform:translate(0)}50%{transform:translate(50px)}}@keyframes sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flicker{0%,93%,to{opacity:1}94%{opacity:.5}96%{opacity:.85}98%{opacity:.6}}.app{flex-direction:column;min-height:100vh;display:flex}.game-screen{background:linear-gradient(180deg, var(--sky1) 0%, var(--sky2) 100%);height:100dvh;min-height:0;color:var(--ink);flex-direction:column;display:flex;position:relative;overflow:hidden}.sprite,.particle{pointer-events:none;position:absolute}.vignette{pointer-events:none;background:radial-gradient(ellipse at 50% 45%, transparent 55%, var(--vignette) 100%);position:absolute;inset:0}.chrome{padding:max(12px, env(safe-area-inset-top)) 14px 12px;z-index:6;align-items:flex-start;gap:10px;display:flex;position:absolute;top:0;left:0;right:0}.logo{font-family:var(--display-font);color:var(--logoInk,var(--accent));text-shadow:2px 2px #00000073;white-space:nowrap;padding-top:4px;font-size:14px}.chips{flex-wrap:wrap;flex:1;justify-content:center;gap:6px;display:flex}.chip{font-family:var(--display-font);color:var(--ink);background:var(--chipBg);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);white-space:nowrap;border:2px solid #80808059;border-radius:4px;padding:4px 9px;font-size:10px}.chip.leader{border-color:var(--accent)}.gear{background:var(--chipBg);border:2px solid var(--accent);cursor:pointer;width:44px;height:44px;color:var(--accent);box-shadow:0 0 12px var(--accentGlow);-webkit-user-select:none;user-select:none;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;font-size:20px;transition:transform .25s;display:flex}.gear:hover:not(:disabled){background:var(--chipBg);color:var(--accent);transform:scale(1.08)}.gear[data-open=true]{transform:rotate(90deg)}.play-area{z-index:2;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:clamp(6px,1.6vh,14px);min-height:0;padding:64px 8px 10px;display:flex;position:relative}.play-area .idle-note{font-family:var(--display-font);color:var(--muted);margin:auto;font-size:11px}.table{aspect-ratio:1.25;flex:none;max-width:96vw;height:min(46vh,340px);position:relative}.table[data-players="3"]{aspect-ratio:1.45}.table[data-players="5"],.table[data-players="6"]{aspect-ratio:auto;width:min(84vw,640px);height:min(40vh,300px)}.table[data-players="7"],.table[data-players="8"]{aspect-ratio:auto;width:min(92vw,720px);height:min(38vh,290px)}.table-edge{background:var(--rim);filter:drop-shadow(0 10px 22px #00000080);position:absolute;inset:0}.table-felt{background:radial-gradient(ellipse at 50% 42%, var(--felt1) 0%, var(--felt2) 60%, var(--felt3) 100%);position:absolute;inset:9px}.seat{text-align:center;z-index:3;position:absolute;transform:translate(-50%,-50%)}.seat-chip{font-family:var(--display-font);color:var(--ink);background:var(--chipBg);white-space:nowrap;border:2px solid #80808059;border-radius:4px;padding:3px 10px;font-size:10px;display:inline-block}.seat.acting .seat-chip{border-color:var(--accent);box-shadow:0 0 12px var(--accentGlow)}.card-backs{justify-content:center;margin-top:4px;display:flex}.card-backs .card-back{width:19px;height:27px;margin-left:-10px}.card-backs .card-back:first-child{margin-left:0}.seat-status{font-family:var(--display-font);color:var(--muted);white-space:nowrap;min-height:12px;margin-top:3px;font-size:9px}.seat .medal{font-family:var(--display-font);color:var(--accent);margin-top:4px;font-size:10px}.center{align-items:center;gap:clamp(10px,2vw,20px);display:flex;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.table[data-players="3"] .center{top:58%}.trick{text-align:center}.trick .label{font-family:var(--display-font);letter-spacing:1px;color:var(--muted);text-shadow:0 1px #00000080;margin-bottom:5px;font-size:9px}.play-row{justify-content:center;gap:5px;display:flex}.play-row .card{width:calc(clamp(38px, 8vw, 52px) * var(--ui-scale));height:calc(clamp(53px, 11.2vw, 73px) * var(--ui-scale))}.draw-pile{text-align:center}.draw-pile .count{font-family:var(--display-font);color:var(--muted);margin-top:4px;font-size:8px}.card{width:calc(46px * var(--ui-scale));height:calc(64px * var(--ui-scale));border-radius:var(--cardRadius);background:var(--cardFace);border:2px solid var(--cardBorder);box-shadow:var(--cardShadow);flex:none;display:inline-block;position:relative;overflow:hidden}.card.sm{width:calc(34px * var(--ui-scale));height:calc(48px * var(--ui-scale))}.card img{width:100%;height:100%;display:block}.card .fallback{width:100%;height:100%;font-size:calc(11px * var(--ui-scale));color:#111;text-align:center;justify-content:center;align-items:center;display:flex}.css-face{color:var(--suitBlack);text-shadow:var(--suitGlow);position:absolute;inset:0}.css-face.suit-red{color:var(--suitRed)}.css-face .idx{flex-direction:column;align-items:center;line-height:1;display:flex;position:absolute}.css-face .idx-tl{top:4px;left:6px}.css-face .idx-br{bottom:4px;right:6px;transform:rotate(180deg)}.css-face .rank{font-family:var(--font);font-weight:700;font-size:calc(18px * var(--ui-scale))}.css-face .suit{font-size:calc(13px * var(--ui-scale))}.css-face .pip{font-size:calc(26px * var(--ui-scale));line-height:1;position:absolute;top:56%;left:50%;transform:translate(-50%,-50%)}.play-row .css-face .idx-tl{top:3px;left:5px}.play-row .css-face .idx-br{bottom:3px;right:5px}.play-row .css-face .rank{font-size:calc(16px * var(--ui-scale))}.play-row .css-face .suit{font-size:calc(12px * var(--ui-scale))}.play-row .css-face .pip{font-size:calc(24px * var(--ui-scale));top:54%}.card.sm .css-face .rank{font-size:calc(12px * var(--ui-scale))}.card.sm .css-face .suit{font-size:calc(9px * var(--ui-scale))}.card.sm .css-face .pip{font-size:calc(16px * var(--ui-scale))}.card.sm .css-face .idx-tl{top:2px;left:3px}.card.sm .css-face .idx-br{bottom:2px;right:3px}.card-back{border:2px solid var(--cardBorder);background:var(--cardBack);border-radius:3px;flex:none;position:relative}.draw-stack{width:calc(36px * var(--ui-scale));height:calc(50px * var(--ui-scale));border-radius:var(--cardRadius);display:inline-block;box-shadow:3px 3px #00000059}.back-frame{border:1px solid;border-radius:3px;position:absolute;inset:3px}.back-badge{width:calc(22px * var(--ui-scale));height:calc(22px * var(--ui-scale));border:1px solid;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.back-badge span{font-size:calc(12px * var(--ui-scale));line-height:1}.must{font-family:var(--display-font);letter-spacing:1px;color:var(--accent);text-align:center;text-shadow:0 1px #00000080;font-size:9px}.actions{z-index:4;flex:none;justify-content:center;gap:10px;display:flex}.actions button{font-family:var(--display-font);font-size:calc(12px * var(--ui-scale));border:2px solid var(--rim);border-radius:6px;padding:9px 24px;transition:transform .12s,border-color .12s,color .12s;box-shadow:0 3px #0000004d}.actions button:hover:not(:disabled){transform:translateY(-1px)}.actions button:active:not(:disabled){transform:translateY(1px)}.actions button:disabled{opacity:.45}.actions .play{color:var(--btnInk);background:linear-gradient(180deg, var(--accent2), color-mix(in srgb, var(--accent2) 60%, #000));box-shadow:0 3px 0 #00000059, 0 0 14px var(--accent2Glow)}.actions .play:hover:not(:disabled),.actions .play:disabled{color:var(--btnInk);background:linear-gradient(180deg, var(--accent2), color-mix(in srgb, var(--accent2) 60%, #000))}.actions .pass{color:var(--ink);background:var(--panel2)}.actions .pass:hover:not(:disabled){border-color:var(--accent);background:var(--panel2);color:var(--ink)}.actions .hint{color:var(--muted);background:var(--panel2);padding:9px 18px}.actions .hint:hover:not(:disabled){color:var(--accent);border-color:var(--accent);background:var(--panel2)}.hand-count{font-family:var(--display-font);font-size:calc(9px * var(--ui-scale));letter-spacing:1px;color:var(--muted);background:var(--chipBg);border:1px solid var(--rim);white-space:nowrap;border-radius:999px;align-self:center;padding:5px 10px}.hand{z-index:3;flex-wrap:nowrap;justify-content:center;max-width:98vw;padding:14px 4px 4px;display:flex}.hand .card{width:calc(clamp(44px, 10.5vw, 60px) * var(--ui-scale));height:calc(clamp(62px, 14.7vw, 84px) * var(--ui-scale));cursor:pointer;transition:transform 50ms;position:relative}.hand .card:hover{z-index:30;transform:translateY(-8px)}.hand .card.selected{outline:3px solid var(--accent);outline-offset:-1px;z-index:2;transform:translateY(-16px)}.scrim{z-index:8;background:#00000073;position:fixed;inset:0}.drawer{background:var(--panel);border-left:2px solid var(--accent);z-index:9;flex-direction:column;gap:12px;width:min(300px,86vw);padding:16px;transition:transform .28s;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(105%);box-shadow:-10px 0 34px #0000008c}.drawer[data-open=true]{transform:translate(0)}.drawer-head{justify-content:space-between;align-items:center;display:flex}.drawer-title{font-family:var(--display-font);color:var(--accent);font-size:13px}.close-x{color:var(--muted);cursor:pointer;box-shadow:none;background:0 0;border:none;padding:2px 6px;font-size:16px}.close-x:hover:not(:disabled){color:var(--accent);background:0 0}.drawer-label{font-family:var(--display-font);color:var(--muted);letter-spacing:1px;margin-top:4px;font-size:9px}.drawer-note{font-family:var(--display-font);color:var(--muted);font-size:8px}.drawer-spacer{flex:1;min-height:8px}.world-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.world-tile{cursor:pointer;text-align:left;box-shadow:none;background:0 0;border:2px solid #80808040;border-radius:5px;align-items:center;gap:8px;padding:6px 8px;display:flex}.world-tile:hover:not(:disabled){border-color:var(--accent);color:inherit;background:0 0}.world-tile.active{background:var(--panel2);border-color:var(--accent)}.world-tile.active:hover:not(:disabled){background:var(--panel2)}.world-swatch{border:1px solid #00000059;border-radius:4px;flex:none;width:20px;height:20px}.world-name{font-family:var(--display-font);color:var(--ink);font-size:8px;line-height:1.25}.segs{gap:4px;display:flex}.segs .seg{text-align:center;font-family:var(--display-font);cursor:pointer;color:var(--muted);background:var(--panel2);border:1px solid var(--rim);box-shadow:none;border-radius:4px;flex:1;padding:7px 0;font-size:10px}.segs .seg:hover:not(:disabled){border-color:var(--accent);background:var(--panel2);color:var(--muted)}.segs .seg.active,.segs .seg.active:hover:not(:disabled){background:var(--accent);color:var(--btnInk)}.segs.speed{gap:6px}.segs.speed .seg{font-size:9px}.segs.speed .seg.active,.segs.speed .seg.active:hover:not(:disabled){background:var(--accent2);color:var(--btnInk)}.size-row{align-items:center;gap:10px;display:flex}.size-btn{font-family:var(--display-font);background:var(--panel2);border:1px solid var(--rim);width:34px;height:30px;color:var(--ink);box-shadow:none;-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:13px;display:flex}.size-btn:hover:not(:disabled){border-color:var(--accent);background:var(--panel2);color:var(--ink)}.size-val{font-family:var(--display-font);color:var(--ink);text-align:center;min-width:44px;font-size:11px}.drawer-cta{font-family:var(--display-font);text-align:center;background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #000));color:var(--btnInk);cursor:pointer;box-shadow:0 0 12px var(--accentGlow);border:none;border-radius:5px;padding:10px;font-size:11px}.drawer-cta:hover:not(:disabled){background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #000));color:var(--btnInk);transform:translateY(-1px)}.drawer-nav{gap:8px;display:flex}.drawer-nav button{font-family:var(--display-font);text-align:center;background:var(--panel2);border:1px solid var(--rim);color:var(--ink);box-shadow:none;border-radius:5px;flex:1;padding:9px 0;font-size:9px}.drawer-nav button:hover:not(:disabled){border-color:var(--accent);background:var(--panel2);color:var(--ink)}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:2px solid var(--accent);min-width:300px;max-width:92vw;box-shadow:0 0 40px var(--accentGlow), 0 20px 50px #0009;border-radius:10px;padding:24px}.modal h2{color:var(--accent);margin-top:0}.modal .row{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;display:flex}.modal-sm{width:min(400px,90vw);min-width:0}.modal-title{font-family:var(--display-font);color:var(--accent);text-align:center;margin-bottom:16px;font-size:15px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-head .modal-title{text-align:left;margin:0;font-size:14px}.rules-modal{flex-direction:column;width:min(540px,92vw);max-height:80vh;display:flex}.rules-body{text-align:left;padding-right:6px;overflow-y:auto}.rules-body h3{font-family:var(--display-font);color:var(--accent);letter-spacing:1px;margin:16px 0 4px;font-size:10px}.rules-body h3:first-child{margin-top:0}.rules-body p{color:var(--ink);margin:6px 0;font-size:13.5px;line-height:1.55}.placements{text-align:left;flex-direction:column;gap:8px;display:flex}.placement{background:0 0;border:1px solid #80808040;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;display:flex}.placement.winner{background:var(--panel2);border-color:var(--accent)}.placement .ticon{text-align:center;flex:none;width:24px;font-size:17px;line-height:1}.placement .place{font-family:var(--display-font);color:var(--accent);min-width:34px;font-size:12px}.placement .pname{font-family:var(--display-font);color:var(--ink);flex:1;font-size:11px}.placement .pscore{font-family:var(--display-font);color:var(--muted);font-size:11px}.gg-panel{z-index:5;align-self:center;width:min(400px,92vw);max-height:44vh;margin-bottom:max(6px,1vh);overflow-y:auto}.stars{font-family:var(--display-font);color:var(--accent);letter-spacing:3px;text-align:center;font-size:13px}.gg-title{font-family:var(--display-font);color:var(--ink);text-align:center;text-shadow:0 0 16px var(--accentGlow);margin:10px 0 4px;font-size:24px}.gg-sub{font-family:var(--display-font);color:var(--muted);text-align:center;margin-bottom:16px;font-size:10px}.modal-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.btn-accent2{font-family:var(--display-font);cursor:pointer;background:linear-gradient(180deg, var(--accent2), color-mix(in srgb, var(--accent2) 60%, #000));color:var(--btnInk);border:none;border-radius:6px;padding:10px 22px;font-size:11px}.btn-accent2:hover:not(:disabled){background:linear-gradient(180deg, var(--accent2), color-mix(in srgb, var(--accent2) 60%, #000));color:var(--btnInk);transform:translateY(-1px)}.btn-accent{font-family:var(--display-font);cursor:pointer;background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #000));color:var(--btnInk);box-shadow:0 0 12px var(--accentGlow);border:none;border-radius:6px;padding:10px 22px;font-size:11px}.btn-accent:hover:not(:disabled){background:linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #000));color:var(--btnInk);transform:translateY(-1px)}.btn-plain{font-family:var(--display-font);cursor:pointer;background:var(--panel2);border:1px solid var(--rim);color:var(--ink);box-shadow:none;border-radius:6px;padding:10px 22px;font-size:11px}.btn-plain:hover:not(:disabled){border-color:var(--accent);background:var(--panel2);color:var(--ink)}.btn-wide{width:100%;padding:11px;font-size:12px}.lobby-modal{width:min(440px,92vw);min-width:0}.rooms{flex-direction:column;gap:8px;display:flex}.room-row{background:var(--panel2);border:1px solid var(--rim);border-radius:6px;align-items:center;gap:10px;padding:10px 12px;display:flex}.room-name{font-family:var(--display-font);color:var(--ink);flex:1;font-size:11px}.room-count{font-family:var(--display-font);color:var(--muted);white-space:nowrap;font-size:9px}.room-row .btn-accent2{border-radius:4px;padding:5px 12px;font-size:9px}.create-room{width:100%;margin-top:14px;padding:11px;font-size:11px}.ticker{font-family:ui-monospace,monospace;font-size:calc(11px * var(--ui-scale));color:var(--muted);background:var(--panel);border-top:2px solid var(--border);max-height:60px;padding:4px 12px;overflow:auto}.toast{background:var(--danger);color:#fff;z-index:30;border-radius:8px;padding:8px 14px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.auth-modal form label{margin:8px 0;display:block}.auth-modal input{box-sizing:border-box;width:100%;color:inherit;border:1px solid var(--border);background:#00000040;border-radius:6px;margin-top:2px;padding:6px;display:block}.auth-error{color:#ff7b7b}.auth-swap button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.account{align-items:center;gap:6px;display:flex}.account-name{color:var(--accent);font-weight:700}.history-panel{min-width:min(640px,92vw);max-height:80vh;overflow-y:auto}.history-table{border-collapse:collapse;width:100%}.history-table th,.history-table td{text-align:left;border-bottom:1px solid var(--border);font-size:calc(13px * var(--ui-scale));padding:4px 8px}.history-table .badge{color:var(--muted);border:1px solid var(--muted);border-radius:6px;margin-left:6px;padding:0 4px;font-size:11px}.lobby-screen{min-width:min(680px,92vw);max-height:80vh;overflow-y:auto}.game-room .room-seats{padding:0;list-style:none}.game-room .room-seats li{border-bottom:1px solid var(--border);padding:4px 0}.invite-url{word-break:break-all;background:#00000040;border-radius:6px;max-width:60ch;padding:4px 6px;font-size:12px}.turn-countdown{z-index:5;font-size:calc(16px * var(--ui-scale));color:var(--accent);font-weight:700;position:absolute;top:64px;right:14px}.turn-countdown.urgent{color:var(--danger);animation:1s infinite pulse}@keyframes pulse{50%{opacity:.4}}.app.anim .trick .play-row .card{animation:.18s ease-out fly-in}.app.anim .hand .card{animation:.18s ease-out rise-in}.app.anim .seat .card-back{animation:.16s ease-out backwards deal-in}.app.anim .seat .card-back:nth-child(2){animation-delay:20ms}.app.anim .seat .card-back:nth-child(3){animation-delay:40ms}.app.anim .seat .card-back:nth-child(4){animation-delay:60ms}.app.anim .seat .card-back:nth-child(5){animation-delay:80ms}.app.anim .seat .card-back:nth-child(6){animation-delay:.1s}.app.anim .seat .card-back:nth-child(7){animation-delay:.12s}.app.anim .seat .card-back:nth-child(8){animation-delay:.14s}.app.anim .medal{animation:.18s cubic-bezier(.34,1.56,.64,1) medal-pop}.app.anim .trick{transition:opacity .15s}.app.anim .draw-stack{transition:transform .12s}@keyframes fly-in{0%{opacity:0;transform:translateY(40px)scale(.85)}to{opacity:1;transform:none}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes deal-in{0%{opacity:0;transform:translateY(-10px)rotate(-6deg)}to{opacity:1;transform:none}}@keyframes medal-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.app.anim *,.game-screen .sprite,.game-screen .particle{transition:none!important;animation:none!important}}.bj-board{flex-direction:column;align-items:center;gap:14px;width:100%;padding:16px;display:flex}.bj-score{color:var(--muted);font-size:calc(14px * var(--ui-scale))}.bj-dealer,.bj-hand{text-align:center}.bj-dealer .who,.bj-hand .who{color:var(--accent);font-weight:700;font-size:calc(14px * var(--ui-scale));margin-bottom:6px}.bj-cards{justify-content:center;gap:6px;display:flex}.bj-hands{gap:28px;display:flex}.bj-hand.active{outline:2px dashed var(--accent);border-radius:10px;padding:6px}.bj-outcome{color:var(--accent-2)}.back-placeholder{background:var(--panel-2);color:var(--muted);font-size:calc(28px * var(--ui-scale));justify-content:center;align-items:center;display:flex}.bj-board .actions{gap:10px;display:flex}.card.hinted{outline-offset:-2px;border-radius:6px;outline:3px solid gold}.practice-badge{color:var(--muted);border:1px dashed var(--muted);border-radius:6px;margin-left:8px;padding:0 6px;font-size:12px;display:inline-block}.replay-viewer{min-width:min(720px,94vw);max-height:86vh;overflow-y:auto}.replay-board{flex-direction:column;gap:6px;margin:8px 0;display:flex}.replay-seat{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.replay-seat .who{min-width:90px;font-weight:700}.replay-card{border:1px solid var(--border);background:#00000040;border-radius:4px;padding:1px 4px;font-family:ui-monospace,monospace;font-size:12px}.replay-card.back{color:var(--muted)}.replay-line{color:var(--muted);min-height:18px;font-size:13px}.debug-panel{z-index:40;border:2px dashed var(--accent);background:#3a2233;border-radius:8px;max-width:40vw;padding:8px;font-size:12px;position:fixed;bottom:8px;left:8px;overflow:auto}@media (width<=430px){.chrome{flex-wrap:wrap}.chips{flex-basis:100%;order:3;justify-content:flex-start}.gear{margin-left:auto}.play-area{padding-top:96px}.seat-chip{padding:2px 6px;font-size:9px}}
