:root{--bg:#0f1412;--panel:#18201c;--line:#2a352f;--text:#e8eee9;--muted:#8fa198;--felt:#17573a;--felt-edge:#0e3a26;--accent:#f2c14e;--good:#3fb37f;--ok:#d9a63a;--bad:#e2574c;--btn:#26302b;--accent-ink:#1b1503;--accent-glow:#f2c14e4d;--card-face:#fbfbf8;--card-ink:#1c1c1c;--card-red:#c62828;--back-a:#3b4f8a;--back-b:#2d3e70;--rail:#3a2a1a;--cell:#2b3530;--cell-in:#3d6b4f;--sb:#8ec5ff;--bb:#ff9e8e;--overlay:#0006;--overlay-ink:var(--text);--chip-ink:var(--accent);--ghost:#cfe3ff;--ghost-glow:#a0c8ff40;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=ink]{--bg:#0c0e13;--panel:#151922;--line:#262d3a;--text:#ece5d5;--muted:#8e93a0;--felt:#1f3550;--felt-edge:#0e1a2a;--accent:#e8613c;--accent-ink:#1a0904;--accent-glow:#e8613c52;--good:#6fbf9a;--ok:#d8b45a;--bad:#e0577a;--btn:#1e2430;--card-face:#f3ecdc;--card-ink:#1d1a16;--card-red:#b8322a;--back-a:#3a2350;--back-b:#2a1a3c;--rail:#2b2118;--cell:#1e2431;--cell-in:#2f6b5c;--sb:#9cc3e6;--bb:#f0a08c;--ghost:#e9f1ff;--ghost-glow:#c8dcff47}:root[data-theme=neon]{--bg:#0a0613;--panel:#140d22;--line:#2a1f44;--text:#f3edff;--muted:#a194c4;--felt:#2c1260;--felt-edge:#130830;--accent:#ff3ea5;--accent-ink:#1a0010;--accent-glow:#ff3ea559;--good:#2ee6c5;--ok:#ffd23f;--bad:#ff5470;--btn:#1f1533;--card-face:#fbf8ff;--card-ink:#1a1326;--card-red:#d81b60;--back-a:#ff3ea5;--back-b:#b8237a;--rail:#3b1d63;--cell:#22183a;--cell-in:#6a2fc0;--sb:#6ee7ff;--bb:#ff8fc7;--ghost:#b9fff1;--ghost-glow:#2ee6c54d}:root[data-theme=kaya]{--bg:#efe6d2;--panel:#fbf6ea;--line:#d8c9ac;--text:#2a2219;--muted:#7a6c58;--felt:#d1a465;--felt-edge:#a8793d;--accent:#1f1a17;--accent-ink:#f7f1e3;--accent-glow:#1f1a1747;--good:#3f7d4e;--ok:#a8721a;--bad:#b8322a;--btn:#efe5d0;--card-face:#fffdf7;--card-ink:#1f1a17;--card-red:#b8322a;--back-a:#2b2b2b;--back-b:#1b1b1b;--rail:#5a3b1e;--cell:#e6d9bf;--cell-in:#5f8a55;--sb:#5d8fc4;--bb:#d0644e;--overlay:#fffaeed1;--overlay-ink:#2a2219;--chip-ink:#1f1a17;--ghost:#3a4a66;--ghost-glow:#3a4a662e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif;font-size:15px}button,select{font:inherit;color:inherit;background:var(--btn);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:8px 14px}button:disabled{opacity:.35;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}.app{max-width:1200px;margin:0 auto;padding:12px 16px 40px}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}header h1{margin:0;font-size:20px}.controls{color:var(--muted);align-items:center;gap:14px;display:flex}.controls label{align-items:center;gap:6px;display:flex}main{grid-template-columns:minmax(0,1fr) 340px;gap:16px;margin-top:12px;display:grid}@media (width<=900px){main{grid-template-columns:1fr}}.table{flex-direction:column;gap:12px;display:flex}.pot{color:var(--accent);font-weight:700}.board{gap:6px;display:flex}.result{background:var(--overlay);color:var(--overlay-ink);text-align:center;border-radius:8px;padding:6px 14px;font-weight:700}.seat.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.seat.folded{opacity:.45}.seat.winner{border-color:var(--good)}.seat-head{align-items:baseline;gap:6px;display:flex}.name{font-weight:700}.pos,.profile{color:var(--muted);font-size:12px}.stack{font-variant-numeric:tabular-nums}.bet{color:var(--accent);font-size:12px}.tag{color:var(--bad);font-size:11px;font-weight:700}.hole{gap:4px;display:flex}.hero{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero .waiting{color:var(--muted)}.card{background:var(--card-face);width:46px;height:64px;color:var(--card-ink);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;line-height:1;display:inline-flex;box-shadow:0 1px 3px #0006}.card b{font-size:18px}.card i{font-size:18px;font-style:normal}.card.red{color:var(--card-red)}.card.small{width:32px;height:44px}.card.small b,.card.small i{font-size:13px}.card.back{background:repeating-linear-gradient(45deg, var(--back-a), var(--back-a) 4px, var(--back-b) 4px, var(--back-b) 8px)}.board .card.back{box-shadow:none;background:#ffffff14;border:1px dashed #fff3}.actions{flex-direction:column;flex:1;gap:8px;min-width:260px;display:flex}.buttons,.presets{flex-wrap:wrap;gap:8px;display:flex}.buttons button{flex:1;padding:12px}.sizing input{width:100%}.presets button{padding:4px 10px;font-size:13px}.presets button.suggest{border-color:var(--accent);color:var(--accent)}.spot-notes{opacity:.85;margin:8px 0 0;padding-left:18px;font-size:13px}.coach{flex-direction:column;gap:12px;display:flex}.hint,.feedback,.review,.stats,.log{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px}.hint-title{color:var(--muted);margin-bottom:6px;font-size:12px}.hint dl{grid-template-columns:auto 1fr;gap:4px 10px;margin:0 0 8px;display:grid}.hint dt{color:var(--muted)}.hint dd{margin:0}.hint p,.feedback p{margin:6px 0 0;line-height:1.5}.fine{color:var(--muted);font-size:12px}.plus{color:var(--good)}.minus{color:var(--bad)}.feedback{border-left-width:4px}.feedback.good{border-left-color:var(--good)}.feedback.ok{border-left-color:var(--ok)}.feedback.mistake{border-left-color:var(--bad)}.verdict{font-size:12px;font-weight:700}.feedback.good .verdict{color:var(--good)}.feedback.ok .verdict{color:var(--ok)}.feedback.mistake .verdict{color:var(--bad)}.review ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.badge{background:var(--cell);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.review .good .badge{color:var(--good)}.review .ok .badge{color:var(--ok)}.review .mistake .badge{color:var(--bad)}.leak{color:var(--ok);margin:8px 0 0}.log summary{cursor:pointer;color:var(--muted)}.log ol{margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.6}.oval{aspect-ratio:16/10;margin:44px 96px 92px;position:relative}.felt{background:radial-gradient(ellipse at center, var(--felt) 55%, var(--felt-edge));border:10px solid var(--rail);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0;box-shadow:inset 0 0 40px #00000073}.seat{z-index:2;background:var(--panel);border:1px solid var(--line);white-space:nowrap;border-radius:10px;flex-direction:column;gap:3px;padding:5px 8px;display:flex;position:absolute;transform:translate(-50%,-50%)}.seat-body{align-items:center;gap:8px;display:flex}.seat .stack{flex-direction:column;align-items:flex-end;min-width:36px;display:flex}.seat.me .stack{font-size:17px;font-weight:700}.dealer{z-index:3;color:#111;cursor:help;background:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 4px #00000080}.chip-bet{z-index:1;background:var(--overlay);color:var(--chip-ink);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:4px;padding:2px 8px 2px 4px;font-size:13px;font-weight:700;display:flex;position:absolute;transform:translate(-50%,-50%)}.chip-bet:before{content:"";background:var(--accent);border:2px dashed #fff8;border-radius:50%;width:14px;height:14px}.chip-bet.blind span{color:#111;border-radius:4px;padding:0 5px;font-size:11px}.chip-bet.sb span{background:var(--sb)}.chip-bet.bb span{background:var(--bb)}.oval.crowded{margin-left:108px;margin-right:108px}.oval.crowded .seat{padding:3px 6px;font-size:12px}.oval.crowded .seat .profile{font-size:11px}.oval.crowded .card.small{width:24px;height:34px}@media (width<=640px){.oval.crowded{margin-left:44px;margin-right:44px}.oval.crowded .seat:not(.me) .card.back{display:none}.oval.crowded .seat.folded{opacity:.35}.oval.big-chips .seat:not(.me) .card.back{display:none}.oval.big-chips .seat .stack{font-size:12px}.oval.big-chips .seat.me .stack{font-size:15px}.oval{aspect-ratio:3/4;margin:40px 44px 92px}.seat{padding:3px 5px}.seat .profile{font-size:10px}.oval.crowded .seat .profile{display:none}.card{width:36px;height:50px}.card.small{width:26px;height:36px}}.stat-rows{flex-direction:column;gap:8px;margin:0;display:flex}.stat-row{grid-template-columns:52px 1fr;align-items:baseline;gap:8px;display:grid}.stat-row dt{color:var(--muted);font-size:13px}.stat-row dd{margin:0}.stat-row b{margin-right:6px;font-size:16px}.stat-row small{color:var(--muted);font-size:12px;line-height:1.4;display:block}.tone{background:var(--cell);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.tone.in{color:var(--good)}.tone.low,.tone.high{color:var(--ok)}.learn{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:4px;display:grid}.learn-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px}@media (width>=901px){.coach{align-self:start;position:sticky;top:12px}}.how-wrap{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.how-wrap summary{cursor:pointer;color:var(--accent);font-size:13px}.how{flex-direction:column;gap:8px;margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.5;display:flex}.how b{display:block}.how span{color:var(--muted)}.how strong{color:var(--text)}.hand-grid{grid-template-columns:repeat(13,1fr);gap:2px;display:grid}.hand-grid .cell{aspect-ratio:1;background:var(--cell);color:var(--muted);cursor:default;border-radius:3px;place-items:center;font-size:9px;display:grid}.hand-grid .cell.in{background:var(--cell-in);color:#fff}.hand-grid .cell.current{outline:2px solid var(--accent);outline-offset:-1px;color:#fff;font-weight:800;opacity:1!important}.grid-legend{color:var(--muted);flex-direction:column;gap:3px;margin:8px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.sw{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.sw.in{background:var(--cell-in)}.sw.current{outline:2px solid var(--accent)}.game-info{font-variant-numeric:tabular-nums}button.danger{border-color:var(--bad);color:var(--bad)}.confirm{border:1px solid var(--bad);background:#e2574c14;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;display:flex}.confirm span{flex:260px}.bust{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.home{gap:14px;max-width:640px;margin:20px auto 0;display:grid}.home-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;justify-items:start;gap:10px;padding:16px;display:grid}.home-card.continue{border-color:var(--accent)}.home-card p{margin:0}.home-big{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.setup{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.setup label{align-items:center;gap:6px;display:flex}.history{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.history li{border-top:1px solid var(--line);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 12px;padding:8px 0;display:flex}.summary{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;display:grid}.summary dt{color:var(--muted)}.summary dd{font-variant-numeric:tabular-nums;margin:0}.theme-picker{align-items:center;gap:6px;display:flex}.ghost{align-items:flex-start;gap:12px;display:flex}.ghost-face{width:44px;height:44px;filter:drop-shadow(0 0 10px var(--ghost-glow));border-radius:50% 50% 46% 46%;flex:none;place-items:center;animation:.36s ease-out both ghost-react;display:grid}.ghost-bubble{background:var(--panel);border:1px solid var(--ghost);box-shadow:0 0 14px var(--ghost-glow);border-radius:12px;flex:1;padding:8px 12px;position:relative}.ghost-bubble:before{content:"";background:var(--panel);border-left:1px solid var(--ghost);border-bottom:1px solid var(--ghost);width:12px;height:12px;position:absolute;top:16px;left:-7px;transform:rotate(45deg)}.ghost-name{color:var(--muted);font-size:12px}.ghost-bubble p{margin:2px 0 0;line-height:1.5}.ghost.quiet .ghost-face{opacity:.45;box-shadow:none}.ghost.quiet .ghost-bubble{border-color:var(--line);box-shadow:none;color:var(--muted)}@keyframes ghost-react{0%{opacity:.6;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.ghost-face{animation:none}}.notebook ul{gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.notebook li{align-items:center;gap:8px;display:flex}.notebook li.current .nb-label{color:var(--accent);font-weight:700}.nb-label{flex:1}.lv{border:1px solid;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.lv0{color:var(--ghost)}.lv1{color:var(--ok)}.lv2{color:var(--good)}.stats-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tabs{border:1px solid var(--line);border-radius:8px;gap:2px;padding:2px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;padding:3px 10px;font-size:12px}.tabs button.on{background:var(--btn);color:var(--text);font-weight:700}.pot small,.stack .bb,.buttons button small{opacity:.75;font-size:.78em;font-weight:500}.stack .bb{display:block}.pos[title]{cursor:help;text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.controls{flex-wrap:wrap}.controls button,.controls label,.game-info{white-space:nowrap}@media (width<=640px){header{align-items:flex-start}.controls{gap:8px 12px;width:100%}.controls .game-info{white-space:normal;width:100%}.controls button{padding:6px 10px}}button.term-link{all:unset;cursor:help;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}button.term-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dealer button.term-link{text-decoration:none}.glossary-backdrop{z-index:50;background:#00000073;justify-content:flex-end;display:flex;position:fixed;inset:0}.glossary{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;gap:10px;width:min(440px,100%);height:100%;padding:14px 16px;display:flex}.glossary-head{justify-content:space-between;align-items:center;font-size:18px;display:flex}.glossary-search{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.glossary-list{gap:16px;padding-bottom:24px;display:grid;overflow-y:auto}.glossary-list section{gap:10px;display:grid}.glossary-list article{border-left:3px solid var(--line);padding:2px 0 2px 10px;scroll-margin-top:8px}.glossary-list article.focus{border-left-color:var(--accent)}.glossary-list h3{margin:0 0 4px;font-size:15px}.glossary-list h3 small{color:var(--muted);font-size:12px;font-weight:400}.glossary-list p{margin:0;line-height:1.55}.glossary-list .example{color:var(--muted);margin-top:4px;font-size:13px}.hero .actions{width:100%}.dock-status{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;height:18px;font-size:13px;line-height:18px;overflow:hidden}.dock-status.mine{color:var(--accent);font-weight:700}.buttons button{min-height:48px}.sizing.off{visibility:hidden}.buttons.dock{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.buttons.dock button{white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;gap:0;min-height:64px;padding:6px 4px;display:flex}.buttons.dock button small{opacity:.8;text-overflow:ellipsis;max-width:100%;font-size:11px;font-weight:500;line-height:1.3;overflow:hidden}.actions .bust{margin-top:4px}.seat:has(.speech){z-index:5}.speech{white-space:normal;color:#1d1a14;pointer-events:none;background:#fbf7ec;border-radius:10px;width:max-content;max-width:190px;padding:5px 9px;font-size:12.5px;line-height:1.35;animation:.18s ease-out speech-pop;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000059}.speech:after{content:"";border:6px solid #0000;border-top-color:#fbf7ec;position:absolute;top:100%;left:50%;transform:translate(-50%)}.speech.below{top:calc(100% + 8px);bottom:auto}.speech.below:after{border-top-color:#0000;border-bottom-color:#fbf7ec;top:auto;bottom:100%}@keyframes speech-pop{0%{opacity:0;transform:translate(-50%)translateY(4px)scale(.95)}to{opacity:1;transform:translate(-50%)}}@media (width<=640px){.speech{max-width:130px;font-size:11px}}h1 .version{color:var(--muted);margin-left:4px;font-size:12px;font-weight:500}.speed-menu{position:relative}.speed-menu summary{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:6px 10px;list-style:none}.speed-panel{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:8px;min-width:220px;padding:10px 12px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0006}.speed-panel label{justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.ev-svg{width:100%;height:110px;margin:6px 0;display:block}.ev-zero{stroke:var(--line);stroke-width:1px}.ev-line{fill:none;stroke-width:2px;vector-effect:non-scaling-stroke}.ev-line.actual{stroke:var(--accent)}.ev-line.expected{stroke:var(--muted);stroke-dasharray:5 4}.ev-legend{gap:14px;margin:0;font-size:13px;display:flex}.ev-legend dt{color:var(--muted);align-items:center;gap:5px;display:flex}.ev-legend dd{margin:0;font-weight:700}.ev-legend .sw{border-top:2px solid var(--accent);width:14px;height:0;display:inline-block}.ev-legend .sw.expected{border-top:2px dashed var(--muted)}.hand-history ul{max-height:260px;margin:6px 0 0;padding:0;list-style:none;overflow:auto}.hh-row{text-align:left;align-items:baseline;gap:10px;width:100%;margin:2px 0;padding:5px 8px;font-size:13px;display:flex}.replay-backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.replay{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;width:min(640px,100%);max-height:92vh;padding:14px 16px;display:flex;overflow:auto}.replay-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.replay-head-buttons{gap:6px;display:flex}.replay-board{justify-content:center;align-items:center;gap:6px}.replay-pot{color:var(--accent);margin-left:10px;font-weight:700}.replay-players{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.replay-players li{border:1px solid #0000;border-radius:8px;grid-template-columns:1.4fr auto .8fr 1.2fr;align-items:center;gap:10px;padding:4px 8px;display:grid}.replay-players li.acting{border-color:var(--accent)}.replay-players li.folded{opacity:.4}.replay-players li.winner .rp-act{color:var(--accent);font-weight:700}.rp-name small{color:var(--muted);font-size:11px;display:block}.rp-stack{text-align:right;font-variant-numeric:tabular-nums}.replay-now{background:#0003;border-radius:8px;min-height:44px;padding:8px 10px}.replay-verdict{margin-top:6px;font-size:13px}.replay-verdict .badge{font-weight:700}.replay-verdict.good .badge{color:var(--good,#5fd38d)}.replay-verdict.mistake .badge{color:var(--bad,#ff7a6b)}.replay-controls{justify-content:center;align-items:center;gap:8px;display:flex}.oval{--fx:1}.fx-deal,.fx-flip{display:inline-block}.fx-deal{animation:fx-deal calc(.2s * var(--fx)) ease-out both;animation-delay:calc((var(--d,0) * 28ms + .24s) * var(--fx))}@keyframes fx-deal{0%{opacity:0;transform:translateY(-6px)rotate(-6deg)scale(.85)}}.fx-flip{animation:fx-flip calc(.3s * var(--fx)) ease-out both;animation-delay:calc(var(--i,0) * 80ms * var(--fx))}@keyframes fx-flip{0%{opacity:.2;transform:perspective(400px)rotateY(90deg)}}.fx-ring{pointer-events:none;border:2px solid #0000;border-radius:13px;position:absolute;inset:-4px}.fx-ring.fx-check{border-color:var(--muted);animation:fx-knock calc(.22s * var(--fx)) ease-out both}@keyframes fx-knock{0%{opacity:1;transform:scale(.96)}to{opacity:0;transform:scale(1.12)}}.fx-ring.fx-call{border-color:var(--accent);animation:fx-flash calc(.22s * var(--fx)) ease-out both}.fx-ring.fx-bet,.fx-ring.fx-raise{border-color:var(--accent);box-shadow:0 0 18px var(--accent-glow);animation:fx-bump calc(.24s * var(--fx)) ease-out both}.fx-ring.fx-raise{border-width:3px}@keyframes fx-flash{0%{opacity:1}to{opacity:0}}@keyframes fx-bump{0%{opacity:1;transform:scale(1)}50%{transform:scale(1.07)}to{opacity:0;transform:scale(1.1)}}.fx-ring.fx-fold~.seat-body .hole{animation:fx-toss calc(.22s * var(--fx)) ease-in both}@keyframes fx-toss{0%{opacity:1;transform:none}to{opacity:.35;transform:translateY(-8px)rotate(8deg)scale(.9)}}.fx-ring.fx-allin{border-color:var(--bad);box-shadow:0 0 22px var(--bad);animation:fx-pulse calc(.4s * var(--fx)) ease-in-out 2 both}@keyframes fx-pulse{0%,to{opacity:.2}50%{opacity:1}}.fx-allin-badge{background:var(--bad);color:#fff;letter-spacing:.04em;pointer-events:none;animation:fx-pop calc(.3s * var(--fx)) cubic-bezier(.3, 1.6, .6, 1) both;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800;position:absolute;top:-12px;right:-10px}@keyframes fx-pop{0%{opacity:0;transform:scale(.2)}}.fx-ring.fx-win{border-color:var(--accent);box-shadow:0 0 26px var(--accent-glow);animation:fx-pulse calc(.45s * var(--fx)) ease-in-out 2 both}.fx-chip{animation:fx-chip calc(.22s * var(--fx)) ease-out both}@keyframes fx-chip{0%{left:var(--sx);top:var(--sy);opacity:.4}}.fx-potfly{z-index:6;background:var(--accent);color:var(--accent-ink);pointer-events:none;animation:fx-potfly calc(.7s * var(--fx)) ease-in-out calc(.28s * var(--fx)) both;border-radius:999px;padding:3px 9px;font-size:13px;font-weight:800;position:absolute;transform:translate(-50%,-50%)}@keyframes fx-potfly{0%{opacity:0;top:46%;left:50%}15%{opacity:1}80%{left:var(--tx);top:var(--ty);opacity:1}to{left:var(--tx);top:var(--ty);opacity:0}}.oval.no-motion *,.oval.no-motion :before,.oval.no-motion :after{animation:none!important}.oval.no-motion .fx-ring,.oval.no-motion .fx-potfly,.oval.no-motion .fx-allin-badge{display:none}@media (prefers-reduced-motion:reduce){.oval *,.oval :before,.oval :after{animation:none!important}.oval .fx-ring,.oval .fx-potfly,.oval .fx-allin-badge{display:none}}.speech.gesture{color:#e9e2cf;background:#141414d9;border:1px dashed #e9e2cf80;font-style:italic}.speech.gesture:after{border-top-color:#141414d9}.speech.below.gesture:after{border-top-color:#0000;border-bottom-color:#141414d9}:root[data-felt=burgundy]{--felt:#6a1e2b;--felt-edge:#3a0e16}:root[data-felt=midnight]{--felt:#1d2a4a;--felt-edge:#0b1124}:root[data-felt=royal]{--felt:#1f4f9a;--felt-edge:#0f2a57}:root[data-back=dragon] .card.back{background:radial-gradient(circle at 30% 30%,#f2c14e 0 12%,#0000 13%),radial-gradient(circle at 70% 70%,#f2c14e 0 10%,#0000 11%),repeating-radial-gradient(circle,#8e1b1b 0 4px,#5c0f0f 4px 8px)}:root[data-back=gold] .card.back{background:linear-gradient(135deg,#f7e08a,#b8862b 45%,#f7e08a 55%,#8a6116)}:root[data-back=grid] .card.back{background-blend-mode:screen;background:linear-gradient(#0d2b2b,#0d2b2b),repeating-linear-gradient(0deg,#0000 0 5px,#39d0b0 5px 6px),repeating-linear-gradient(90deg,#0000 0 5px,#39d0b0 5px 6px)}.hero-title{background:var(--accent);color:var(--accent-ink);border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700}.unlock-banner{border:1px solid var(--accent);background:linear-gradient(90deg,#f2c14e38,#f2c14e0f);border-radius:10px;padding:10px 12px;animation:.35s cubic-bezier(.3,1.6,.6,1) both fx-pop}.bounty-list{flex-direction:column;gap:10px;margin:8px 0;padding:0;list-style:none;display:flex}.bounty-head{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.bounty-bar{background:#ffffff14;border-radius:999px;height:6px;margin:4px 0;overflow:hidden}.bounty-bar span{background:var(--accent);height:100%;display:block}.bounty-list li.done .bounty-bar span{background:var(--good)}.equip{flex-wrap:wrap;gap:12px;display:flex}.equip label{align-items:center;gap:6px;font-size:13px;display:flex}:root[data-back] .board .card.back{background-blend-mode:normal;background:#ffffff14}.pos-ko{opacity:.8;margin-left:3px;font-size:10px}.ghost-bubble .ask{margin-top:6px;padding:4px 10px;font-size:13px}.drill{grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:start;gap:16px;margin-top:12px;display:grid}.drill>.home-card{display:block}@media (width<=760px){.drill{grid-template-columns:minmax(0,1fr)}.drill-card{order:-1}}.drill-table{gap:6px;margin-bottom:6px;display:flex}.drill-seats ul{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.seat-pick{text-align:left;grid-template-columns:1fr auto;gap:2px 8px;width:100%;display:grid}.seat-pick.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.seat-pick .seat-name{grid-column:1/-1;font-weight:700}.seat-pick .bar{background:var(--line);border-radius:3px;grid-column:1/-1;height:6px;display:flex;overflow:hidden}.seat-pick .bar .known{background:var(--good)}.seat-pick .bar .learning{background:var(--ok)}.drill-hole{justify-content:center;gap:10px;width:fit-content;margin:18px auto 10px;display:flex;position:relative}.drill-hole .card{width:64px;height:90px}.drill-hole .card b,.drill-hole .card i{font-size:25px}.drill-answer{justify-content:center;width:100%;display:flex}.drill-answer button{white-space:nowrap;flex:1 1 0;max-width:220px}.drill kbd{opacity:.7;margin-left:6px;font-size:11px}.drill-groups ul{margin:4px 0;padding-left:18px}.drill-groups b{margin-right:6px}.avatar{flex:none;line-height:0;display:inline-block}.avatar .face{transform-origin:50% 85%;--t:var(--fx,1);display:block;overflow:visible}.seat .avatar{align-self:center;margin-right:2px}.seat.folded .avatar{filter:grayscale(.8);opacity:.6}.mood-happy .face{animation:av-hop calc(.28s * var(--t)) ease-out}.mood-upset .face{animation:av-slump calc(.24s * var(--t)) ease-out both}.mood-think .face{animation:av-tilt calc(.48s * var(--t)) ease-in-out both}.mood-smug .face{animation:av-chin calc(.26s * var(--t)) ease-out both}[data-avatar=jeongseok].mood-happy .face,[data-avatar=gyesangi].mood-happy .face{animation:av-nod calc(.24s * var(--t)) steps(3, end)}[data-avatar=kolpang].mood-happy .face{animation:av-lean calc(.3s * var(--t)) ease-out}[data-avatar=bulldozer].mood-happy .face{animation:av-shove calc(.26s * var(--t)) ease-out}[data-avatar=yeou].mood-happy .face{animation:av-tilt calc(.3s * var(--t)) ease-in-out}[data-avatar=dolbuche].mood-happy .face{animation:av-bow calc(.4s * var(--t)) ease-in-out}[data-avatar=newbie].mood-happy .face{animation:av-hop-big calc(.32s * var(--t)) ease-out}[data-avatar=heose].mood-happy .face{animation:av-chin calc(.3s * var(--t)) ease-out}[data-avatar=sabu].mood-happy .face{animation:av-float calc(.5s * var(--t)) ease-in-out}.g-raise .face,.g-bet .face{animation:av-lean calc(.22s * var(--t)) ease-out}.g-call .face{animation:av-nod calc(.18s * var(--t)) ease-out}.g-check .face{animation:av-tap calc(.18s * var(--t)) ease-out}.g-fold .face{animation:av-bow calc(.18s * var(--t)) ease-out both}.g-allin .face{animation:av-push calc(.36s * var(--t)) ease-out}.g-win .face{animation:av-hop calc(.28s * var(--t)) ease-out}.g-chatter .face{animation:av-wobble calc(.3s * var(--t)) ease-in-out}.g-sigh .face{animation:av-slump calc(.36s * var(--t)) ease-in-out both}.g-snap .face{animation:av-lean calc(.14s * var(--t)) ease-out}.g-tank .face{animation:av-tilt calc(.48s * var(--t)) ease-in-out both}.g-quiet .face{animation:av-lean calc(.28s * var(--t)) ease-in}.g-eyes .face{animation:av-perk calc(.22s * var(--t)) ease-out both}@keyframes av-hop{40%{transform:translateY(-3px)}}@keyframes av-hop-big{40%{transform:translateY(-5px)scale(1.04)}}@keyframes av-slump{to{transform:translateY(2px)}}@keyframes av-tilt{to{transform:rotate(-6deg)}}@keyframes av-chin{to{transform:translateY(-1px)rotate(4deg)}}@keyframes av-nod{50%{transform:translateY(2px)rotate(2deg)}}@keyframes av-lean{50%{transform:translateY(-2px)scale(1.06)}}@keyframes av-shove{50%{transform:translate(3px)scale(1.05)}}@keyframes av-bow{to{transform:rotate(3deg)translateY(1px)}}@keyframes av-tap{25%,75%{transform:translateY(1px)}}@keyframes av-push{40%{transform:scale(1.14)}}@keyframes av-wobble{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes av-perk{to{transform:translateY(-2px)scaleY(1.08)}}@keyframes av-float{50%{transform:translateY(-4px)}}.drill-hole .deal-in{animation:.18s ease-out both drill-in}.drill-hole .deal-in.second{animation-delay:30ms}@keyframes drill-in{0%{opacity:0;transform:translateY(6px)}}.drill-mark{width:22px;height:22px;color:var(--bg);border-radius:50%;place-items:center;font-size:13px;font-weight:800;animation:.18s cubic-bezier(.3,1.6,.6,1) both drill-mark;display:grid;position:absolute;top:-10px;right:-12px}.drill-mark.good{background:var(--good)}.drill-mark.miss{background:var(--bad)}@keyframes drill-mark{0%{opacity:0;transform:scale(.85)}}.drill-sabu{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;margin:4px 0 10px;display:grid}.drill-sabu p{align-items:center;min-height:3em;margin:0;line-height:1.5;display:flex}.drill-sabu .avatar .face{filter:drop-shadow(0 0 8px var(--ghost-glow))}.drill-answer button{min-height:48px}.combo{text-align:right;min-width:64px;color:var(--muted);font-size:13px;position:relative}.combo b{color:var(--accent);font-size:18px}.combo .dots{gap:3px;display:flex;position:absolute;bottom:-10px;right:0}.combo .dots i{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:80ms ease-out both drill-in}.combo .dots i:nth-child(2){animation-delay:80ms}.combo .dots i:nth-child(3){animation-delay:.16s}.combo .stars{color:var(--accent);font-style:normal;animation:.32s ease-out both combo-burst;position:absolute;top:-12px;right:-4px}@keyframes combo-burst{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.2)}to{opacity:0}}.combo.fx-combo10 b{animation:.48s cubic-bezier(.3,1.6,.6,1) both combo-ten;display:inline-block}@keyframes combo-ten{0%{transform:scale(.6)}60%{transform:scale(1.35)}}.drill details.feedback summary{cursor:pointer;color:var(--muted);font-size:13px}.drill details.feedback summary .verdict{margin-right:6px;display:inline}.seat-pick{position:relative}.stamp{border:2px solid var(--good);color:var(--good);border-radius:4px;padding:0 6px;font-size:11px;font-weight:800;position:absolute;top:6px;right:8px;transform:rotate(-8deg)}.stamp.fx-stamp{animation:.6s cubic-bezier(.3,1.6,.6,1) both stamp}@keyframes stamp{0%{opacity:0;transform:rotate(-8deg)scale(2)}50%{opacity:1}}.no-motion .avatar .face,.no-motion .ghost-face,.no-motion .drill-hole .deal-in,.no-motion .drill-mark,.no-motion .combo *,.no-motion .stamp,.no-motion .unlock-banner{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.avatar .face,.ghost-face,.drill-hole .deal-in,.drill-mark,.combo *,.stamp,.unlock-banner{transition:none!important;animation:none!important}}@media (width<=640px){.seat .avatar,.seat .avatar .face{width:22px!important;height:22px!important}.seat .profile,.seat .pos-ko{display:none}}kbd{border:1px solid var(--line);color:var(--muted);background:var(--bg);border-bottom-width:2px;border-radius:4px;padding:2px 4px;font:600 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.buttons.dock button{position:relative}.buttons.dock button kbd{position:absolute;top:4px;right:5px}.presets kbd{margin-left:3px}@media (hover:none){.buttons.dock button kbd,.presets kbd{display:none}}.keys-help{z-index:50;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.keys-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(360px,100%);padding:16px 18px}.keys-card dl{gap:6px;margin:8px 0;display:grid}.keys-card dl>div{grid-template-columns:96px 1fr;align-items:center;display:grid}.keys-card dt{gap:3px;display:flex}.keys-card dd{margin:0}.speed-panel>button{justify-self:start}@media (width>=901px) and (width<=1199px){main{grid-template-columns:minmax(0,1fr) 300px;gap:12px}}section.table{container-type:inline-size}@container (width>=520px) and (width<=720px){.oval{aspect-ratio:4/3}.board .card{width:40px;height:56px}}.nudge-hint{align-self:center;margin-left:4px}.chip-count{flex-wrap:wrap;align-items:flex-end;gap:8px 14px;margin-top:6px;display:flex}.chip-tray,.chip-pile{flex-wrap:wrap;align-items:flex-end;gap:6px;display:flex}.chip-pile{min-height:40px}.chip-pick{font-variant-numeric:tabular-nums;border:3px dashed #ffffffbf;border-radius:50%;width:38px;height:38px;padding:0;font-size:11px;font-weight:800;box-shadow:0 2px 4px #00000073}.chip-pick:active:not(:disabled){transform:translateY(1px)scale(.96)}.chip-clear{align-self:center;padding:4px 10px;font-size:12px}.chip-stack{box-shadow:none;background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:2px 4px;display:flex}.chip-stack .stack{flex-direction:column-reverse;display:flex}.chip-stack .stack i{border:1px solid #00000073;border-radius:50%/100%;width:28px;height:7px;margin-top:-2px;display:block;box-shadow:inset 0 0 0 2px #ffffff59}.chip-stack .count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:11px}.pile-note{font-variant-numeric:tabular-nums;align-self:center}.pile-note.short{color:var(--accent)}.chip-pick.c0,.chip-stack i.c0{color:#222;background:#e9e6dc}.chip-pick.c1,.chip-stack i.c1{color:#fff;background:#c8372d}.chip-pick.c2,.chip-stack i.c2{color:#fff;background:#2f8a4c}.chip-pick.c3,.chip-stack i.c3{color:#fff;background:#26262a}.chip-pick.c4,.chip-stack i.c4{color:#fff;background:#7a3fa8}@media (hover:none){.nudge-hint,.ask kbd{display:none}}@container (width<=820px){.oval.crowded .seat .profile,.oval.crowded .seat .pos-ko{display:none}.oval.crowded .seat .avatar,.oval.crowded .seat .avatar .face{width:22px!important;height:22px!important}}.avatar.pic .face{object-fit:cover;box-shadow:0 0 0 2px var(--ring), 0 1px 4px #0006;background:#18201c;border-radius:50%;display:block}.buttons.dock button .next-keys kbd{position:static}.read-guess{gap:6px;margin-top:8px;display:grid}.read-guess p{margin:0}.read-buttons{flex-wrap:wrap;gap:6px;display:flex}.read-buttons kbd{opacity:.7;margin-left:4px;font-size:.75em}.read-result{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.read-result .hole{gap:4px;display:inline-flex}.read-rows{margin:4px 0 0;padding:0;list-style:none}.read-rows li{justify-content:space-between;gap:8px;display:flex}.replay-suckout{color:var(--muted);margin:0;font-style:italic}.rerun{justify-items:start;gap:6px;display:grid}.rerun-cards{gap:4px;min-height:30px;display:flex}.rerun-bar{background:#ff5a5a59;border-radius:5px;width:100%;height:10px;display:flex;overflow:hidden}.rerun-bar .win{background:var(--accent);transition:width .1s linear}.rerun-bar .tie{background:var(--muted)}.rerun p{margin:0}.rule-ladder ol{gap:4px;margin:4px 0;padding-left:0;list-style:none;display:grid}.rule-ladder li.locked{opacity:.55}.rule-ladder p{margin:0}.ladder-progress{gap:4px;display:grid}.ladder-bar{background:var(--line);border-radius:4px;width:100%;height:8px;display:block;overflow:hidden}.ladder-bar span{background:var(--accent);height:100%;display:block}.rule-badge{border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:13px}.rule-badge.kept b{color:var(--good,#5fd38d)}.rule-badge.broken b{color:var(--bad,#ff6b6b)}.daily{grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding:0 16px 16px;display:grid}@media (width<=900px){.daily{grid-template-columns:minmax(0,1fr)}}.daily-side{align-content:start;gap:12px;display:grid}.daily-side p{margin:4px 0}.daily-log{margin:4px 0 0;padding-left:18px;font-size:13px}.daily-buttons{flex-wrap:wrap;gap:6px;display:flex}.daily-days{flex-wrap:wrap;gap:4px;margin:4px 0;padding:0;list-style:none;display:flex}.daily-days button{padding:3px 8px;font-size:12px}.daily-days button.on{border-color:var(--accent)}.boss-list{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.boss-list li{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;display:flex}.boss-list li.cleared{border-color:var(--accent)}.boss-list li>div{min-width:0}.boss-list button{flex:none}.boss-confirm{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.boss-brief{border:1px solid var(--accent);border-radius:8px;padding:8px 10px;font-size:13px}.vs3bet-rule-title{margin-top:14px}.vs3bet-record{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.vs3bet-record li{border-radius:6px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:2px 4px;display:grid}.vs3bet-record li.on{box-shadow:0 0 0 1px var(--accent)}.vs3bet-gauge{margin:10px 0 6px}.vs3bet-gauge .track{background:var(--line);border-radius:6px;height:12px;position:relative;overflow:hidden}.vs3bet-gauge .zone{position:absolute;top:0;bottom:0}.vs3bet-gauge .zone.fold{background:color-mix(in srgb, var(--bad) 45%, transparent)}.vs3bet-gauge .zone.call{background:color-mix(in srgb, var(--ok) 55%, transparent)}.vs3bet-gauge .zone.raise{background:color-mix(in srgb, var(--good) 55%, transparent)}.vs3bet-gauge .me{background:var(--text);border-radius:2px;width:4px;margin-left:-2px;position:absolute;top:-2px;bottom:-2px}.vs3bet-gauge .legend{flex-wrap:wrap;gap:2px 12px;margin-top:4px;display:flex}.vs3bet-grid summary{cursor:pointer}.hand-grid .cell.c-raise,.sw.c-raise{background:var(--good);color:#fff}.hand-grid .cell.c-call,.sw.c-call{background:var(--ok);color:#1b1503}.hand-grid .cell.c-fold,.sw.c-fold{background:color-mix(in srgb, var(--bad) 70%, var(--cell));color:#fff}.hand-grid .cell.out{opacity:.35}.drill-card section.table{width:100%}.rival-list{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.rival-list li{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.rival-list li.unmet{opacity:.55}.rival-list li>span{font-variant-numeric:tabular-nums;font-weight:700}.croupier{pointer-events:none;flex-direction:column;align-items:center;gap:4px;max-width:72%;min-height:52px;display:flex}.croupier-badge{letter-spacing:.08em;color:#fff;background:#111;border:1px solid #ffffff59;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800;box-shadow:0 2px 6px #00000073}.croupier-say{-webkit-line-clamp:2;text-align:center;color:#fff;background:#0000009e;border-radius:10px;-webkit-box-orient:vertical;padding:4px 10px;font-size:12.5px;line-height:1.35;animation:5s ease-out both croupier-say;display:-webkit-box;overflow:hidden}@keyframes croupier-say{0%{opacity:0;transform:translateY(-6px)scale(.94)}6%{opacity:1;transform:none}80%{opacity:1}to{opacity:.35}}.dealer-strip{display:none}@media (width<=600px){.croupier{display:none}.dealer-strip{min-height:22px;color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex-basis:100%;font-size:13px;display:block;overflow:hidden}.dealer-strip span{animation:.25s ease-out both live-in;display:inline-block}.dealer-strip b{color:#fff;background:#111;border-radius:999px;margin-right:4px;padding:1px 6px;font-size:11px}}.live-step{border:1px solid var(--accent);box-shadow:0 0 0 3px var(--accent-glow);flex-basis:100%;gap:8px;animation:.32s cubic-bezier(.2,1.3,.5,1) both live-in;display:grid}.live-step p{margin:0}.live-tag{background:var(--accent);color:var(--accent-ink);vertical-align:1px;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:800;display:inline-block}.live-lines{gap:3px;margin:0;padding-left:20px;display:grid}.live-lines li,.live-options button{animation:.28s ease-out both live-in;animation-delay:calc(var(--i,0) * 70ms + 80ms)}.live-options{gap:6px;display:grid}.live-options button{text-align:left;white-space:normal;line-height:1.35}.live-options kbd{opacity:.7;margin-right:6px;font-size:.75em}@keyframes live-in{0%{opacity:0;transform:translateY(10px)}}.live-badge{flex-basis:100%;animation:.25s ease-out both live-in}.live-badge b{animation:.4s cubic-bezier(.3,1.6,.6,1) both live-stamp;display:inline-block}@keyframes live-stamp{0%{opacity:0;transform:scale(1.25)rotate(-2deg)}}.live-tools{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;display:flex}.live-tools button,.live-tools summary{padding:5px 10px;font-size:13px}.live-tools .early{border-color:var(--bad)}.drink-menu{position:relative}.drink-menu summary{cursor:pointer;border:1px solid var(--line);background:var(--btn);border-radius:8px;list-style:none}.drink-menu summary::-webkit-details-marker{display:none}.drink-menu summary.off{opacity:.6}.drink-panel{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:10px;gap:4px;min-width:160px;padding:8px;animation:.2s ease-out both live-in;display:grid;position:absolute;bottom:calc(100% + 6px);left:0;box-shadow:0 8px 22px #0006}.live-tools.away{border:1px dashed var(--muted);background:var(--panel);border-radius:10px;padding:8px 12px}.away-scene{text-align:center;width:30px;font-size:22px;animation:2.4s ease-in-out infinite away-bob;position:relative}.away-scene .puff{background:#dcdcdc99;border-radius:50%;width:9px;height:9px;animation:2.4s ease-out infinite puff;position:absolute;top:-2px;left:60%}.away-scene .puff:nth-child(2){animation-delay:.8s}.away-scene .puff:nth-child(3){animation-delay:1.6s}@keyframes puff{0%{opacity:0;transform:translate(0)scale(.4)}20%{opacity:.8}to{opacity:0;transform:translate(10px,-26px)scale(1.8)}}@keyframes away-bob{50%{transform:translateY(-2px)rotate(-4deg)}}.hole{position:relative}.hole.peeked>span:nth-child(-n+2){animation:.5s ease-out both peek}.hole.peeked>span:nth-child(2){animation-delay:60ms}@keyframes peek{0%{transform:perspective(300px)rotateX(0)}40%{transform:perspective(300px)rotateX(38deg)translateY(-3px)}to{transform:none}}.protector{background:repeating-conic-gradient(var(--accent) 0 30deg, #fff 30deg 60deg);border:2px solid #00000059;border-radius:50%;width:20px;height:20px;animation:.42s cubic-bezier(.3,1.6,.6,1) .45s both protector-drop;position:absolute;bottom:-6px;right:-6px;box-shadow:0 2px 4px #00000080}@keyframes protector-drop{0%{opacity:0;transform:translateY(-18px)scale(1.4)}}.drink{opacity:calc(.35 + var(--level,1) * .65);font-size:20px;line-height:1;animation:.5s cubic-bezier(.3,1.5,.6,1) both drink-in;position:absolute;bottom:2px;right:-30px}.drink:after{content:"";background:#ffffffb3;border-radius:50%;width:4px;height:4px;animation:2.2s ease-in infinite bubble;position:absolute;top:-6px;left:45%}@keyframes drink-in{0%{opacity:0;transform:translate(16px)rotate(18deg)}}@keyframes bubble{0%{opacity:0;transform:translateY(6px)}30%{opacity:.9}to{opacity:0;transform:translateY(-12px)}}.seat.away{opacity:.6;border-style:dashed}.away-tag{color:var(--muted)}.fx-reveal{animation:fx-flip calc(.35s * var(--fx)) ease-out both;animation-delay:calc(var(--d,0) * 40ms * var(--fx));display:inline-block}.live-notebook section+section{margin-top:8px}.live-notebook h4{color:var(--muted);margin:4px 0;font-size:12px}.live-notebook ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.live-notebook li{border-radius:6px;padding:4px 6px;transition:background .3s}.live-notebook li.now{background:var(--accent-glow)}.live-notebook li>b,.live-notebook li>small{margin-right:6px}.live-notebook .chip{border:1px solid var(--line);border-radius:999px;padding:0 6px;font-size:11px}.live-notebook .chip.known{color:var(--good);border-color:var(--good)}.live-notebook .chip.learning{color:var(--ok);border-color:var(--ok)}.live-notebook .chip.info{color:var(--muted)}.no-motion .croupier-say,.no-motion .live-step,.no-motion .live-step *,.no-motion .live-badge,.no-motion .live-badge b,.no-motion .drink-panel,.no-motion .away-scene,.no-motion .away-scene .puff{animation:none!important}@media (prefers-reduced-motion:reduce){.croupier-say,.live-step,.live-step *,.live-badge,.live-badge b,.drink-panel,.away-scene,.away-scene .puff{animation:none!important}}.fx-dealfly{z-index:3;background:repeating-linear-gradient(45deg, var(--back-a) 0 4px, var(--back-b) 4px 8px);pointer-events:none;width:22px;height:31px;animation:fx-dealfly calc(.3s * var(--fx)) cubic-bezier(.2, .7, .3, 1) both;animation-delay:calc(var(--d,0) * 28ms * var(--fx));border:1px solid #ffffff80;border-radius:3px;position:absolute;box-shadow:0 2px 6px #00000073}@keyframes fx-dealfly{0%{opacity:0;top:30%;left:50%;transform:translate(-50%,-50%)rotate(0)scale(.7)}12%{opacity:1}85%{left:var(--tx);top:var(--ty);opacity:1;transform:translate(-50%, -50%) rotate(var(--rot,10deg)) scale(1)}to{left:var(--tx);top:var(--ty);opacity:0;transform:translate(-50%, -50%) rotate(var(--rot,10deg)) scale(1)}}.fx-sweep{z-index:2;color:var(--chip-ink);pointer-events:none;animation:fx-sweep calc(.32s * var(--fx)) ease-in both;background:#0000008c;border-radius:999px;padding:2px 7px;font-size:12px;font-weight:700;position:absolute;transform:translate(-50%,-50%)}@keyframes fx-sweep{0%{left:var(--sx);top:var(--sy);opacity:1}to{opacity:0;top:40%;left:50%;transform:translate(-50%,-50%)scale(.6)}}.pot-num{animation:num-bump calc(.35s * var(--fx)) cubic-bezier(.3, 1.6, .6, 1) both;display:inline-block}@keyframes num-bump{0%{color:#fff;transform:scale(1.35)}}.seat.active{animation:1.1s ease-in-out infinite seat-think}.seat.me.active{animation-duration:.8s}@keyframes seat-think{50%{box-shadow:0 0 0 5px var(--accent-glow), 0 0 22px var(--accent-glow)}}.confetti{z-index:7;pointer-events:none;width:0;height:0;position:absolute}.confetti i{background:var(--accent);width:7px;height:11px;animation:confetti calc(1.1s * var(--fx)) cubic-bezier(.1, .8, .3, 1) calc(.75s * var(--fx)) both;border-radius:2px;position:absolute}.confetti i:nth-child(3n+1){background:var(--good)}.confetti i:nth-child(3n+2){background:var(--sb)}@keyframes confetti{0%{opacity:0;transform:rotate(var(--a)) translateY(0) rotate(0deg)}10%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateY(-90px) rotate(540deg)}}.feedback{animation:.3s cubic-bezier(.2,1.2,.5,1) both slide-in}.feedback .verdict{animation:.4s cubic-bezier(.3,1.6,.6,1) .12s both live-stamp;display:inline-block}.feedback.mistake .verdict{animation:.4s cubic-bezier(.3,1.6,.6,1) .12s both live-stamp,.35s ease-in-out .5s shake}@keyframes slide-in{0%{opacity:0;transform:translateY(10px)}}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.rule-badge{animation:.3s ease-out both live-in}.review li{animation:.25s ease-out both live-in}.review li:nth-child(2){animation-delay:60ms}.review li:nth-child(3){animation-delay:.12s}.review li:nth-child(4){animation-delay:.18s}.review li:nth-child(n+5){animation-delay:.24s}.learn{animation:.3s ease-out both live-in}.actions.acting .dock-status{animation:.3s ease-out both status-in}@keyframes status-in{0%{opacity:.2;transform:translateY(5px)}}.actions.acting .dock button:not(:disabled){animation:.22s ease-out both btn-up}.actions.acting .dock button:nth-child(2){animation-delay:30ms}.actions.acting .dock button:nth-child(3){animation-delay:60ms}.actions.acting .dock button:nth-child(4){animation-delay:90ms}@keyframes btn-up{0%{opacity:.4;transform:translateY(6px)}}button{transition:transform 80ms ease-out,background-color .15s,border-color .15s}button:active:not(:disabled){transform:translateY(1px)scale(.97)}.home>*{animation:.35s ease-out both live-in}.home>:nth-child(2){animation-delay:40ms}.home>:nth-child(3){animation-delay:80ms}.home>:nth-child(4){animation-delay:.12s}.home>:nth-child(5){animation-delay:.16s}.home>:nth-child(6){animation-delay:.2s}.home>:nth-child(n+7){animation-delay:.24s}.app>main{animation:.35s ease-out both fade-in}@keyframes fade-in{0%{opacity:0}}.ev-svg{animation:.9s ease-out both draw-in}@keyframes draw-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.no-motion .home>*,.no-motion .feedback,.no-motion .feedback .verdict,.no-motion .rule-badge,.no-motion .review li,.no-motion .learn,.no-motion .actions .dock-status,.no-motion .actions .dock button,.no-motion>main,.no-motion .ev-svg,.no-motion .dealer-strip span{animation:none!important}@media (prefers-reduced-motion:reduce){.feedback,.feedback .verdict,.rule-badge,.review li,.learn,.actions .dock-status,.actions .dock button,.home>*,.app>main,.ev-svg,.dealer-strip span{animation:none!important}button{transition:none}button:active:not(:disabled){transform:none}}.pause-btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.pause-veil{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c;place-items:center;padding:16px;animation:.2s ease-out both fade-in;display:grid;position:fixed;inset:0}.pause-card{text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;justify-items:center;gap:10px;width:min(320px,100%);padding:22px 20px;animation:.35s cubic-bezier(.3,1.6,.6,1) both live-stamp;display:grid;box-shadow:0 12px 40px #00000080}.pause-card p{margin:0}.pause-card button{width:100%}.pause-icon{font-size:34px;animation:1.6s ease-in-out infinite pause-breathe}@keyframes pause-breathe{50%{opacity:.45}}.app.paused .oval *,.app.paused .oval :before,.app.paused .oval :after,.app.paused .away-scene,.app.paused .away-scene .puff,.app.paused .croupier-say{animation-play-state:paused!important}.no-motion .pause-veil,.no-motion .pause-card,.no-motion .pause-icon{animation:none!important}@media (prefers-reduced-motion:reduce){.pause-veil,.pause-card,.pause-icon{animation:none!important}}.table-image p{margin:4px 0}.table-image .readers{flex-wrap:wrap;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.table-image .readers li{border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:12px}.table-image .readers li.sharp{border-color:var(--accent);color:var(--accent)}.table-image .readers li.none{opacity:.6}.table-image .readers small{color:var(--muted)}.mood-tag{color:var(--bad);animation:.3s cubic-bezier(.3,1.6,.6,1) both fx-pop}.seat .hud{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10.5px}.seat .hud-short{display:none}@media (width<=640px){.seat .hud-long{display:none}.seat .hud-short{display:inline}.seat .mood-word{display:none}}.dock-hint{color:var(--accent);font-weight:700;animation:.2s ease-out both live-in}.reserved-note{color:var(--accent)}.buttons.dock button.reserved{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent-glow);opacity:.85}.live-step.nudge{animation:.5s ease-out both nudge-flash}@keyframes nudge-flash{0%{box-shadow:0 0 0 8px var(--accent-glow)}to{box-shadow:0 0 0 3px var(--accent-glow)}}.no-motion .dock-hint,.no-motion .live-step.nudge{animation:none!important}.smoking{font-size:17px;line-height:1;animation:.5s cubic-bezier(.3,1.5,.6,1) both drink-in;position:absolute;bottom:4px;left:-26px}.smoking .puff{background:#dcdcdc8c;border-radius:50%;width:8px;height:8px;animation:2.6s ease-out infinite puff;position:absolute;top:-4px;left:2px}.smoking .puff:nth-child(2){animation-delay:1.3s}.table-image .readers li.unknown{opacity:.7;border-style:dashed}.avatar .face.initial{background:var(--panel);width:100%;height:100%;color:var(--text);border-radius:50%;place-items:center;font-weight:800;display:grid}.act-tag{z-index:3;color:#fff;background:var(--muted);pointer-events:none;animation:act-pop calc(.32s * var(--fx)) cubic-bezier(.3, 1.6, .6, 1) both;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:800;line-height:16px;position:absolute;top:-10px;right:6px;box-shadow:0 1px 3px #00000059}.act-tag.act-raise,.act-tag.act-bet{background:var(--bad)}.act-tag.act-allin{background:var(--bad);outline:2px solid var(--accent)}.act-tag.act-call{background:#3d7bd9}.act-tag.act-limp{background:var(--ok);color:var(--accent-ink)}.act-tag.act-check{background:var(--good)}.act-tag.act-fold{background:var(--btn);color:var(--muted)}@keyframes act-pop{0%{opacity:0;transform:translateY(6px)scale(.6)}}.seat.me .pos{background:var(--accent);color:var(--accent-ink);border-radius:6px;padding:0 6px;font-size:13px;font-weight:800}.seat.me .pos .pos-ko,.seat.me .pos abbr,.seat.me .pos button{color:var(--accent-ink)}.spot-strip{border:1px solid var(--line);opacity:.62;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;min-height:32px;margin:2px 0 6px;padding:3px 8px;font-size:13px;transition:opacity .2s,border-color .2s,box-shadow .2s;display:flex}.spot-strip.empty{border-color:#0000}.spot-strip.mine{opacity:1;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow), 0 0 18px var(--accent-glow);animation:.35s cubic-bezier(.2,1.2,.5,1) both spot-in}.spot-strip.mine .spot-chip.raise,.spot-strip.mine .spot-pos{animation:.45s cubic-bezier(.3,1.6,.6,1) 50ms both spot-bump}@keyframes spot-bump{40%{transform:scale(1.12)}}@keyframes spot-in{0%{box-shadow:0 0 0 4px var(--accent-glow), 0 0 30px var(--accent-glow);transform:translateY(6px)}}.spot-pos{background:var(--accent);color:var(--accent-ink);border-radius:7px;align-items:baseline;gap:4px;padding:1px 8px;display:inline-flex}.spot-pos b{font-size:16px;font-weight:900}.spot-pos small{font-size:11px;font-weight:700}.spot-lead{color:var(--muted);font-size:12px}.spot-chip{background:var(--btn);white-space:nowrap;border-radius:999px;padding:1px 8px;display:inline-block}.spot-chip b{font-variant-numeric:tabular-nums;font-size:15px}.spot-chip.raise{background:var(--bad);color:#fff;font-weight:700}.spot-chip.last{border:1px solid var(--bad);color:var(--text)}.spot-chip.call{color:#8db8ff}.spot-chip.limp{color:var(--ok)}.spot-chip.check{color:var(--good)}.spot-chip.fold,.spot-chip.calm{color:var(--muted)}.spot-chip.behind{color:var(--muted);margin-left:auto}@media (width<=640px){.spot-strip{gap:4px;padding:3px 6px;font-size:12px}.spot-pos b{font-size:14px}.spot-chip{padding:1px 6px}.spot-chip.behind{margin-left:0}}.no-motion .spot-strip,.no-motion .spot-strip *{transition:none;animation:none!important}@media (prefers-reduced-motion:reduce){.spot-strip,.spot-strip *{transition:none;animation:none!important}}.no-motion .live-notebook li{transition:none}@media (prefers-reduced-motion:reduce){.live-notebook li{transition:none}}.hand-grid.short{grid-template-columns:repeat(9,1fr)}.hand-grid.short .cell{font-size:11px}.deck-tag{background:var(--accent);color:var(--accent-ink);cursor:help;border-radius:999px;margin-right:6px;padding:1px 7px;font-size:11px;font-weight:800;display:inline-block}.coup{gap:12px;max-width:980px;margin:0 auto;display:grid}.coup .role-duke{--role:#8e5cc8}.coup .role-assassin{--role:#6b7280}.coup .role-captain{--role:#3d7bd9}.coup .role-ambassador{--role:#2e9d5b}.coup .role-contessa{--role:#d0473c}.coup-seats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.coup-seat,.coup-me{background:var(--panel);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:12px;justify-items:center;gap:4px;padding:12px 8px 10px;display:grid;position:relative}.coup-seat:disabled{cursor:default;opacity:1}.coup-seat.turn,.coup-me.turn{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.coup-seat.out,.coup-me.out{opacity:.45}.coup-seat.pickable{cursor:pointer;border-color:var(--bad)}.coup-seat.pickable:hover{background:var(--btn)}.coup-coins{color:var(--accent);font-weight:800}.coup-hand{align-items:center;gap:4px;min-height:30px;display:flex}.coup-back{background:linear-gradient(135deg, var(--back-a), var(--back-b));border:1px solid #ffffff26;border-radius:4px;width:22px;height:30px}.coup-chip{color:#fff;background:var(--role);border-radius:6px;padding:2px 6px;font-size:12px;font-weight:700;display:inline-block}.coup-chip.lost{opacity:.55;text-decoration:line-through}.coup-bubble{background:var(--card-face);max-width:90%;color:var(--card-ink);white-space:nowrap;text-overflow:ellipsis;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:700;animation:.25s ease-out act-pop;position:absolute;top:-12px;right:6px;overflow:hidden}.coup-count{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 12px;display:flex}.coup-count-item{align-items:center;gap:6px;font-size:13px;display:inline-flex}.coup-count-item b{color:var(--role)}.coup-count .dots{gap:3px;display:inline-flex}.coup-count .dots i{border:1.5px solid var(--role);border-radius:50%;width:10px;height:10px}.coup-count .dots i.gone{background:var(--role)}.coup-count .dots i.mine{background:var(--accent);border-color:var(--accent);border-radius:2px;transform:rotate(45deg)scale(.85)}.coup-me-head{align-items:baseline;gap:8px;display:flex}.coup-my-cards{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.coup-card{border:2px solid var(--role);background:color-mix(in srgb, var(--role) 22%, var(--panel));width:130px;min-height:84px;color:var(--text);font:inherit;text-align:left;border-radius:10px;gap:4px;padding:10px;display:grid}.coup-card b{font-size:17px}.coup-card small{color:var(--muted);font-size:12px}.coup-card:disabled{opacity:1;cursor:default}.coup-card.lost{opacity:.4;text-decoration:line-through}.coup-card.pickable,.coup-card.chosen{cursor:pointer;box-shadow:0 0 0 3px var(--accent-glow);border-color:var(--accent)}.coup-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;gap:10px;min-height:120px;padding:14px;display:grid}.coup-q{margin:0;font-size:16px;font-weight:700}.coup-actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.coup-action{text-align:left;border-left:4px solid var(--role,var(--line));gap:2px;padding:10px;display:grid;position:relative}.coup-action small{color:var(--muted);font-size:12px}.coup-bluff{color:var(--bad);font-size:11px;font-style:normal;font-weight:800;position:absolute;top:6px;right:8px}.coup-buttons{flex-wrap:wrap;gap:8px;display:flex}.coup-buttons button{position:relative}.coup-buttons .coup-bluff{margin-left:6px;position:static}.coup-sabu p{background:var(--btn);border-radius:10px;margin:0;padding:10px 12px;line-height:1.5}.coup-sabu small{margin-top:4px;display:block}.coup-over{justify-items:start;gap:10px;display:grid}.coup-over b{color:var(--accent);font-size:22px}.coup-log{background:var(--panel);border:1px solid var(--line);max-height:180px;color:var(--muted);border-radius:10px;padding:8px 12px;font-size:13px;overflow-y:auto}.coup-log ol{margin:0;padding-left:18px}.coup-log li:last-child{color:var(--text)}.coup-rules{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px}.coup-rules ul{gap:4px;margin:8px 0 0;padding-left:18px;display:grid}@media (width<=640px){.coup-seats{grid-template-columns:repeat(2,minmax(0,1fr))}.coup-card{width:calc(50% - 6px)}.coup-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.coup-bubble{animation:none}}.no-motion .coup-bubble{animation:none}.coup-wait{align-content:center;gap:6px;min-height:92px;display:grid}.coup-wait b{color:var(--text);font-size:17px}.error-screen{border-color:var(--bad);max-width:640px;margin:40px auto}.error-screen .home-big{color:var(--bad);word-break:break-word}.account-toolbar{text-align:right;max-width:1280px;margin:0 auto;padding:10px 18px;font-size:13px}.account-toolbar a{color:inherit}.solver-lab{grid-template-columns:minmax(0,1fr);gap:20px;max-width:1000px;margin:24px auto;display:grid}.solver-lab .learn-card{min-width:0;padding:24px}.solver-lab p{line-height:1.7}.solver-inputs{border:0;gap:16px;min-width:0;margin:20px 0 0;padding:0;display:grid}.solver-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.solver-inputs label,.solver-fields label{gap:8px;min-width:0;display:grid}.solver-lab input:not([type=checkbox]),.solver-lab textarea,.solver-lab select{box-sizing:border-box;background:var(--bg);width:100%;min-width:0;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:8px;padding:10px}.solver-lab textarea{resize:vertical}.solver-checkbox{align-items:center;gap:8px;margin:12px 0;display:flex!important}.solver-quality{background:var(--bg);color:var(--accent);border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:20px;display:flex}.solver-actions{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.solver-table-wrap{overflow-x:auto}.solver-table{border-collapse:collapse;width:100%}.solver-table th,.solver-table td{text-align:left;border-bottom:1px solid var(--line);padding:14px 10px}.solver-table td:nth-child(2){min-width:100px}.solver-bar{background:var(--accent);min-width:1px;height:4px;margin-bottom:5px;display:block}.solver-feedback{border-left:3px solid var(--accent);background:var(--bg);padding:16px}.solver-error{color:var(--bad)}@media (width<=600px){.solver-fields{grid-template-columns:1fr}.solver-lab .learn-card{padding:16px}}.theory-lab{grid-template-columns:minmax(0,1fr);gap:20px;max-width:900px;margin:24px auto;display:grid}.theory-lab h2{margin:8px 0 16px;font-size:22px}.theory-lab p{line-height:1.7}.theory-lab .learn-card{padding:24px}.theory-slider{grid-template-columns:1fr auto;gap:16px;margin:22px 0;display:grid}.theory-slider input{width:100%;accent-color:var(--accent);grid-column:1/-1}.theory-metrics{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.theory-metrics>div{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:20px}.theory-metrics span,.theory-metrics small{color:var(--muted);display:block}.theory-metrics strong{color:var(--accent);margin:8px 0;font-size:32px;display:block}.theory-ev{justify-content:space-between;gap:16px;display:flex}.theory-answer{border-left:3px solid var(--accent);background:var(--bg);margin:20px 0;padding:12px 18px}.theory-quiz .buttons{flex-wrap:wrap;gap:10px;margin:18px 0;display:flex}.theory-quiz button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);opacity:1}.theory-lab a{color:var(--accent);overflow-wrap:anywhere}.feedback.unscored .verdict,.review .unscored .badge,.replay-verdict.unscored .badge{color:var(--muted)}@media (width<=600px){.theory-lab{gap:12px;margin:12px auto}.theory-lab .learn-card{padding:16px}.theory-metrics{grid-template-columns:1fr}.theory-lab h2{font-size:19px}}.account-toolbar .quota{color:var(--muted);margin-right:14px}.paywall{z-index:1000;background:var(--overlay);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.paywall-card{border:1px solid var(--line);background:var(--panel);max-width:440px;color:var(--text);word-break:keep-all;border-radius:12px;padding:26px;line-height:1.7}.paywall-card h2{margin:0 0 10px;font-size:20px}.paywall-terms{color:var(--accent);font-weight:600}.paywall-actions{gap:10px;margin-top:16px;display:flex}.paywall-actions a,.paywall-actions button{border:1px solid var(--line);background:var(--btn);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:10px 16px;text-decoration:none}.paywall-actions .primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}
