:root{--layout-max-width:1440px;--color-rules-example:#dbe3b233;--color-drawer-overlay:#183b2529;--color-canvas:#fff;--color-text:#183b25;--color-link:#36945a;--color-muted:#526c56;--color-surface:#eff7ed;--color-room-banner:#f7edc7;--color-room-link:#eadfb5;--color-robot-seat:#e6def6a6;--color-seat:#daf5e685;--color-surface-raised:#f5faf3;--color-winner-surface:#fff2bf;--color-control:#e0eddd;--color-control-hover:#d3e7d0;--color-selected:#214c32;--color-action:#214c32;--color-action-hover:#183b25;--color-on-action:#fff;--color-border:#cadcc8;--color-border-strong:#719777;--color-focus:#287a35;--color-card-highlight:#23728b;--color-card-highlight-glow:#0098ff24;--color-danger:#ad3046;--color-danger-surface:#fff3f4;--color-overlay:#ffffffa6;--color-card-edge:#b9cec0;--color-chip-coral:#ff5061;--color-chip-blue:#0098ff;--color-chip-green:#00ad3d;--color-chip-silver:#b2b2b2;--color-avatar-pink:#ffc4e9;--color-avatar-blue:#b2e4f0;--color-avatar-lime:#dbe3b2;--color-avatar-peach:#f6d1b7;--color-avatar-lavender:#d9cef2;--color-avatar-mint:#c3e7ce;--font-body:gelica, Georgia, serif;--font-display:"dela-gothic-one", sans-serif;--font-weight-regular:400;--font-weight-emphasis:500;--font-xs:10px;--font-sm:12px;--font-md:14px;--font-lg:16px;--font-xl:20px;--font-title:30px;--font-display-size:clamp(36px, 4.05vw, 64px);--radius-card:4px;--radius-control:9px;--radius-panel:16px;--radius-dialog:20px;--radius-pill:999px;--shadow-decor:0 5px 12px #183b251f;--shadow-stick:0 3px 4px #183b2529;--shadow-chip:0 2px 0 var(--color-card-edge);--gradient-button:linear-gradient(to bottom, #ffffff29, transparent 55%, #183b250d);--shadow-button:inset 0 -1px 0 #183b251f, 0 2px 3px #183b2517;--shadow-button-pressed:inset 0 1px 3px #183b2526;--shadow-card:0 3px 0 var(--color-card-edge), 0 7px 12px #183b251a;--shadow-card-small:0 2px 3px #183b2517;--shadow-popover:0 8px 24px #183b251f;--shadow-dialog:0 20px 64px #183b2529;--shadow-deck:1px 3px var(--color-card-edge), 2px 5px var(--color-canvas), 2px 6px var(--color-card-edge), 3px 8px var(--color-canvas), 3px 9px var(--color-card-edge), 4px 11px var(--color-canvas), 4px 12px var(--color-card-edge), 5px 14px var(--color-canvas), 5px 15px var(--color-card-edge), 6px 17px var(--color-canvas), 6px 18px var(--color-card-edge), 7px 20px var(--color-canvas), 7px 21px var(--color-card-edge), 8px 25px 18px #183b2524;--duration-fast:.16s;--duration-standard:.22s;--ease-out:cubic-bezier(.23, 1, .32, 1);--card-aspect:825 / 1125;--shared-card-width:74px;--hand-public-tilt:30deg;--hand-card-height:clamp(80px, 10vw, 142px);--table-depth:1500px;--table-tilt:14deg;--table-transform:perspective(var(--table-depth)) rotateX(var(--table-tilt));--control-height:40px;--z-popover:20;--z-overlay:100;--space-0-half:2px;--space-1:4px;--space-1-half:6px;--space-2:8px;--space-2-half:10px;--space-3:12px;--space-3-half:14px;--space-4:16px;--space-4-half:18px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--space-10:40px;--space-12:48px;--space-15:60px;font-family:var(--font-body);color:var(--color-text);background:var(--color-canvas);font-synthesis:none}*{box-sizing:border-box}body{color:var(--color-text);background:var(--color-canvas);min-width:360px;margin:0}button{font:inherit;-webkit-tap-highlight-color:transparent;cursor:pointer;border:1px solid var(--color-border);min-height:var(--control-height);color:var(--color-text);background:var(--color-canvas);border-radius:var(--radius-control);font-weight:var(--font-weight-emphasis);transition:background-color var(--duration-fast) ease-out, color var(--duration-fast) ease-out, border-color var(--duration-fast) ease-out, box-shadow var(--duration-fast) ease-out;padding:8px 15px}b,strong{font-weight:var(--font-weight-emphasis)}input{font:inherit;-webkit-tap-highlight-color:transparent;width:100%;min-height:var(--control-height);color:var(--color-text);border:1px solid var(--color-border);background:var(--color-canvas);border-radius:var(--radius-control);padding:var(--space-2-half) var(--space-3);font-size:var(--font-sm)}select{font:inherit;-webkit-tap-highlight-color:transparent;width:100%;min-height:var(--control-height);color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;background:var(--color-canvas);border-radius:var(--radius-control);padding:var(--space-2-half) var(--space-3);font-size:var(--font-sm)}a{-webkit-tap-highlight-color:transparent;color:inherit}summary{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}h1{font-family:var(--font-display);margin-top:0;font-weight:400}h2{font-family:var(--font-display);letter-spacing:-.8px;font-size:var(--font-title);margin-top:0;font-weight:400}h3{font-family:var(--font-display);font-weight:400;font-size:var(--font-lg);margin-top:0}p{margin-top:0;line-height:1.65}.eyebrow{letter-spacing:1.8px;margin-bottom:var(--space-3-half);font-size:var(--font-xs);font-weight:400}.masthead{max-width:var(--layout-max-width);color:var(--color-text);background:0 0;border-bottom:0;justify-content:space-between;align-items:center;gap:30px;height:91px;margin-inline:auto;padding:0 4%;display:flex}.brand{flex-shrink:0;width:174px;display:block}.brand img{width:174px;height:auto;display:block}.masthead nav{gap:var(--space-6);display:flex}.text-button{min-height:36px;color:inherit;padding:var(--space-1-half) 0;font-size:var(--font-sm);background:0 0;border:0;border-radius:0;font-weight:400}.text-button span{margin-left:var(--space-4)}.masthead .text-button{color:var(--color-text);border-color:var(--color-border);border-bottom-style:solid;border-bottom-width:1px}label{font-size:var(--font-xs);font-weight:400;display:block}.primary{background:var(--color-action);border-color:var(--color-action);color:var(--color-on-action)}.primary:hover:not(:disabled){background-color:var(--color-action-hover)}.button-row{align-items:center;gap:var(--space-2-half);flex-wrap:wrap;display:flex}.fold-button{color:var(--color-danger);background:0 0;border-color:#0000;margin-left:auto}.bet-button{background:var(--color-text);border-color:var(--color-text);color:var(--color-canvas)}.wager-input{font-size:var(--font-xs);position:relative}.wager-input input{width:80px;min-height:38px;margin-top:var(--space-1);font-size:var(--font-sm)}.fishing-row{align-items:center;gap:var(--space-5);margin-bottom:17px;display:flex}.fishing-row label{min-width:220px;font-size:var(--font-xs)}.fishing-row select{margin-top:var(--space-1-half)}.fishing-row>span{color:var(--color-muted);font-size:var(--font-xs)}.expansion-actions{gap:var(--space-4-half);flex-wrap:wrap;margin-top:22px;display:flex}.check-label{color:var(--color-muted);align-items:center;gap:var(--space-2);font-size:var(--font-xs);font-weight:400;display:flex}.check-label input{width:15px;min-height:15px;accent-color:var(--color-chip-coral)}.rank{color:var(--color-muted);min-width:19px;font-size:var(--font-xs)}.mini-hand{flex-wrap:wrap;gap:3px;display:flex}html{overflow-x:clip}.reserved-empty{visibility:hidden}.sr-only{clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (max-width:1100px){.fishing-row>span{max-width:150px}}@media (max-width:640px){.masthead{gap:15px;height:76px;padding:0 5%}.brand,.brand img{width:145px}.masthead nav{gap:15px}.masthead .text-button{font-size:var(--font-xs)}.wager-input input{width:63px}.fold-button{margin-left:0}.fishing-row{gap:13px}.fishing-row label{flex:1;min-width:0}.fishing-row>span{max-width:100px;font-size:var(--font-xs)}.fishing-row select{font-size:var(--font-xs)}.rank{min-width:15px;font-size:var(--font-xs)}}.welcome{isolation:isolate;color:var(--color-text);background:var(--color-canvas);min-height:calc(100dvh - 94px);padding:var(--space-15) max(5%, calc((100% - 1320px) / 2)) 220px;grid-template-columns:minmax(0,1.6fr) minmax(300px,460px);align-items:center;gap:55px;display:grid;position:relative;overflow:hidden}.welcome-copy{min-height:0;padding:0}.welcome h1{font-family:var(--font-body);letter-spacing:-1.8px;color:var(--color-text);max-width:760px;font-weight:400;font-size:var(--font-display-size);margin:0;line-height:1.17}.welcome h1 em{font-weight:400}.launch-card{z-index:1;color:var(--color-text);box-shadow:none;background:var(--color-surface);border-radius:var(--radius-panel);padding:var(--space-10);align-self:center;gap:var(--space-10);display:grid;position:relative;container-type:inline-size}.setup-mode{align-items:baseline;gap:var(--space-2);grid-template-columns:auto minmax(0,1fr);display:grid}.setup-mode>.mode-picker,.setup-mode>.mode-description{grid-column:1/-1}.mode-picker{border:1px solid var(--color-border);border-radius:calc(var(--radius-control) + var(--space-1));gap:var(--space-1);padding:var(--space-1);color:var(--color-text);isolation:isolate;background:var(--color-surface-raised);border-color:var(--color-border);margin-top:0;display:flex;position:relative}.mode-picker button{white-space:nowrap;min-height:38px;padding:var(--space-2) 5px;font-size:var(--font-md);color:var(--color-text);transition:color var(--duration-fast) ease-out;background:0 0;border:0;flex:1}.mode-picker button.selected{color:var(--color-canvas);transition:color var(--duration-fast) ease-out;background:0 0}.player-picker button.selected{color:var(--color-canvas);background:var(--color-selected)}.mode-description{line-height:1.5;font-size:var(--font-md);font-style:italic;font-weight:var(--font-weight-regular);opacity:.85;color:var(--color-muted);margin:0}.player-picker{gap:var(--space-2);margin:0;display:flex}.player-picker button{font-size:var(--font-lg);min-width:0;padding:var(--space-2);color:var(--color-text);background:var(--color-control);border-radius:var(--radius-control);border-color:#0000;flex:1}.start-button{text-align:center;color:var(--color-canvas);background:var(--color-selected);border-radius:var(--radius-control);width:100%;min-height:48px;padding:var(--space-2) var(--space-3);font-size:var(--font-xl);border-color:#0000;justify-content:center;align-items:center;margin-top:0;display:flex}.home-page{color:var(--color-text);background:var(--color-canvas);min-height:100dvh}.setup-field{gap:var(--space-2);font-size:var(--font-sm);margin-top:0;font-weight:400;display:grid;position:relative}.setup-field>small{color:var(--color-muted);font-size:var(--font-sm);font-weight:400;line-height:1.5}.setup-label,.setup-field>span{font-family:var(--font-body);font-size:var(--font-lg);font-weight:var(--font-weight-emphasis);justify-content:space-between;gap:var(--space-2);display:flex}.setup-field .player-picker{margin:0}.frontpage-decor{pointer-events:none;-webkit-user-select:none;user-select:none;--decor-card-width:clamp(144px, 15.3vw, 198px);--decor-card-height:calc(var(--decor-card-width) * 1125 / 825);z-index:0;width:100%;height:calc(var(--decor-card-height) * 1.65);position:fixed;inset:auto 0 0;overflow:clip;transform:none}.decor-layer{top:var(--card-lift,0px);left:calc(50% - var(--decor-card-width) / 2 + var(--card-offset));width:var(--decor-card-width);position:absolute}.decor-layer img{transform-origin:bottom;width:100%;height:auto;transform:rotate(var(--card-angle));border-radius:var(--radius-control);border:1px solid var(--color-border);box-shadow:var(--shadow-decor);display:block}.decor-fan{width:min(620px,92vw);height:var(--decor-card-height);left:-140px;bottom:calc(var(--decor-card-height) / -3 + 20px);transform-origin:35% 100%;position:absolute;transform:rotate(45deg)}.seat-picker{gap:var(--space-2);grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.setup-seat{color:var(--color-text);background:var(--color-surface-raised);border-radius:var(--radius-control);justify-content:center;align-items:center;gap:var(--space-1);min-width:0;height:78px;padding:var(--space-2);font-size:var(--font-sm);border:1px solid #0000;flex-direction:column;display:flex}.setup-seat.human{color:var(--color-canvas);background:var(--color-selected)}.setup-seat.none{color:var(--color-muted);border-style:dashed;border-color:var(--color-border);background:0 0}.setup-seat.robot:hover:not(:disabled){background-color:var(--color-control-hover)}.seat-setup .seat-validation{padding-top:var(--space-1);font-size:var(--font-sm);margin:0;position:absolute;top:100%}.setup-seat.robot{color:var(--color-text);background:var(--color-control)}.setup-seat.robot,.player-picker button:not(.selected){mix-blend-mode:multiply}.mode-picker:before{content:"";z-index:-1;background:var(--color-selected);border-radius:var(--radius-control);width:calc(33.3333% - 5.33333px);transform:translateX(calc(var(--mode-index,0) * (100% + var(--space-1))));transition:transform var(--duration-standard) var(--ease-out);position:absolute;inset:4px auto 4px 4px}.setup-seat.robot svg{color:var(--color-text)}.player-picker button:not(.selected):hover:not(:disabled){background-color:var(--color-control-hover)}.start-button:hover:not(:disabled){color:var(--color-canvas);background-color:var(--color-text)}@container (width<340px){.seat-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1500px){.welcome h1{font-size:67px}}@media (min-width:901px){.welcome{align-content:center;align-items:start}.welcome-copy{align-self:start;padding-top:0}.launch-card{align-self:start}}@media (max-width:1100px){.welcome{gap:var(--space-7)}.welcome h1{font-size:42px}}@media (max-width:900px){.frontpage-decor{--decor-card-width:clamp(122px, 26vw, 180px);position:absolute}.decor-fan{left:-110px}}@media (max-width:850px){.welcome{gap:var(--space-6);grid-template-columns:1fr 330px}.welcome h1{letter-spacing:-1px;font-size:36px}.welcome-copy{padding-top:var(--space-2-half)}}@media (max-width:640px){.welcome{min-height:calc(100dvh - 70px);padding:var(--space-8) 5% 206px;flex-direction:column;gap:30px;display:flex}.welcome h1{letter-spacing:-1.2px;font-size:39px;line-height:1.18}.launch-card{width:100%;padding:var(--space-8);gap:var(--space-8)}.frontpage-decor{transform-origin:100% 100%}}.expansion-decor{opacity:0;transition:opacity .5s var(--ease-out), translate .7s var(--ease-out);translate:0 70px}.expansion-decor.visible{opacity:1;translate:0}.expansion-decor .decor-fan{transform-origin:65% 100%;left:auto;right:-140px;transform:rotate(-45deg)}.decor-stick{left:calc(42% + var(--stick-x));top:calc(-10% + var(--stick-y));transform-origin:50%;height:auto;transform:rotate(var(--stick-angle));filter:drop-shadow(var(--shadow-decor));position:absolute}@media (max-width:900px){.expansion-decor .decor-fan{right:-110px}}.playtest-note{color:var(--color-chip-blue);font-size:var(--font-sm);justify-content:flex-end;align-items:flex-start;gap:6px;margin-bottom:-2px;padding-right:9%;font-style:italic;display:flex}.playtest-note svg{flex:none;width:38px;height:24px}.playing-card{object-fit:contain;-webkit-user-select:none;user-select:none;aspect-ratio:var(--card-aspect);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-card);width:86px;height:auto;box-shadow:var(--shadow-card-small);display:block}.card-choice{border-radius:var(--radius-card);background:0 0;border:0;min-height:0;padding:0;line-height:1;transition:none;position:relative}.card-choice:not(:disabled):hover .playing-card{border-color:var(--color-focus)}.card-choice:disabled{opacity:1}.card-choice.picked{transform:translateY(-12px)}.card-choice.picked .playing-card{outline:3px solid var(--color-focus);outline-offset:2px}.card-caption{text-align:center;white-space:nowrap;color:var(--color-text);font-size:var(--font-xs);margin-top:11px;font-weight:400;line-height:1.4;display:block}.picked .card-caption{color:var(--color-selected);font-weight:var(--font-weight-emphasis)}.bet-chips{align-items:center;gap:var(--space-2-half);margin-top:var(--space-5);display:flex}.bet-chips>span{color:var(--color-muted);margin-right:var(--space-1-half);font-size:var(--font-xs)}.chip{color:var(--color-canvas);border:3px dashed var(--color-overlay);outline:1px solid var(--color-overlay);width:42px;height:42px;min-height:0;font-family:var(--font-display);font-size:var(--font-md);box-shadow:var(--shadow-chip);border-radius:50%;padding:0;font-weight:400}.chip-5{background:var(--color-chip-silver);color:var(--color-canvas)}.chip-10{background:var(--color-chip-blue)}.chip-20{background:var(--color-chip-coral)}.chip-50{background:var(--color-chip-green)}.mini-hand .playing-card{width:31px}.chip-stacks{justify-content:center;align-items:flex-end;gap:var(--space-2-half);display:flex;transform:none}.denomination-stack{text-align:center}.stack-discs{transform-origin:50%;width:44px;position:relative;transform:none}.stack-discs .chip{width:44px;height:44px;font-family:var(--font-display);font-size:var(--font-lg);box-shadow:var(--shadow-chip);place-items:center;font-weight:400;display:grid;position:absolute;left:0}.denomination-stack small{white-space:nowrap;font-size:var(--font-xs);margin-top:5px;display:block}.card-choice.is-public .card-caption{color:var(--color-text)}.card-back{aspect-ratio:var(--card-aspect);height:auto}@media (min-width:1500px){.playing-card{width:103px}}@media (min-width:701px) and (max-height:850px){.pot-summary .chip-stacks{zoom:.8}}@media (max-width:1100px){.playing-card{width:70px}}@media (max-width:850px){.playing-card{width:88px}}@media (max-width:640px){.playing-card{width:clamp(38px,11.35vw,70px)}.card-caption{margin-top:9px}.bet-chips{gap:9px}.bet-chips>span{max-width:60px;font-size:var(--font-xs)}.bet-chips .text-button{font-size:var(--font-xs)}.chip-stacks{gap:5px}}.bet-chips>button:not(.chip){background-color:var(--color-control)}.bet-chips>button:not(.chip):hover:not(:disabled){background-color:var(--color-control-hover)}.game-page{color:var(--color-text);font-variant-numeric:tabular-nums;background:var(--color-canvas);max-width:var(--layout-max-width);min-height:100dvh;margin:auto}.game-topline{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-3) 3%;display:flex}.game-stats{color:var(--color-text);align-items:baseline;gap:var(--space-7);font-size:var(--font-lg);display:flex}.ante-stat{align-items:center;gap:var(--space-2);font-size:var(--font-lg);white-space:nowrap;display:flex}.ante-stat .chip{width:26px;height:26px;font-size:var(--font-sm);font-weight:var(--font-weight-emphasis);border-width:2px;place-items:center;line-height:1;display:grid}.play-layout{box-shadow:none;color:var(--color-text);transform-origin:50%;margin:0 3% var(--space-6);border-radius:var(--radius-dialog);align-items:start;gap:var(--space-2) var(--space-5);width:calc(100% - 100px);padding:var(--space-4-half) 22px;transform:var(--table-transform);background:0 0;border:0;grid-template-columns:minmax(0,1fr) 180px;margin-inline:auto;display:block}.play-main{min-width:0;display:block}.table{color:var(--color-text);box-shadow:none;border-radius:var(--radius-dialog);background:0 0;border:0;grid-area:1/1/auto/-1;padding:0;overflow:visible}.opponents{justify-content:center;align-items:stretch;gap:var(--space-4-half);flex-wrap:wrap;display:flex}.opponent{min-width:0;max-width:380px;box-shadow:none;color:var(--color-text);background:var(--color-seat);border-radius:var(--radius-panel);align-content:start;align-items:center;gap:var(--space-1-half);padding:var(--space-3);transition:opacity var(--duration-standard), border var(--duration-standard);border:0;flex:170px;grid-template-rows:48px 96px;grid-template-columns:minmax(0,1fr);display:grid;position:relative}.opponent-heading{grid-area:1/1;justify-content:flex-start;align-items:center;gap:9px;min-width:0;display:flex}.avatar{--spirit-color:var(--color-avatar-blue);width:40px;height:40px;color:var(--color-text);flex-shrink:0;place-items:center;display:grid}.avatar svg{width:100%;height:100%;overflow:visible}.spirit-body{fill:var(--spirit-color)}.spirit-eye{fill:currentColor}.spirit-cheek{fill:currentColor;opacity:.12}.spirit-leaf{fill:var(--color-action)}.spirit-shine{fill:none;stroke:var(--color-overlay);stroke-width:3px;stroke-linecap:round}.spirit-smile{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round}.opponent-heading small{color:var(--color-text);margin-top:var(--space-0-half);font-size:var(--font-md);display:block}.opponent-cards{width:100%;height:96px;min-height:96px;padding:var(--space-1) 0 var(--space-1-half);flex-wrap:nowrap;grid-area:2/1;place-content:center flex-start;align-items:center;gap:5px;margin:0;display:flex;overflow:visible}.opponent-cards>.playing-card,.opponent-private>.card-back{transform-origin:50%;object-fit:contain;aspect-ratio:var(--card-aspect);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-card);width:100%;min-width:0;height:auto;max-height:60px;box-shadow:var(--shadow-card);flex:none;margin:0;transform:none}.lane{min-width:0}.lane-cards .playing-card{transform-origin:50%;width:100%;min-width:0;height:auto;max-width:var(--shared-card-width);box-shadow:var(--shadow-card);flex-shrink:0;margin:0;transform:none}.empty-lane{color:var(--color-muted);font-size:var(--font-xs);font-weight:400}.deck{min-height:0;width:var(--shared-card-width);border-radius:var(--radius-card);margin:var(--space-2) auto;box-shadow:var(--shadow-deck);background:0 0;border:0;padding:0;line-height:0;display:block;transform:none}.deck img{transform-origin:50%;width:var(--shared-card-width);aspect-ratio:var(--card-aspect);border-radius:var(--radius-card);height:auto;box-shadow:var(--shadow-card);transform:none}.hand-heading{justify-content:center;align-items:center;gap:var(--space-3-half);min-height:0;margin-bottom:0;display:flex;position:static}.hand-heading .eyebrow{color:var(--color-muted);font-size:var(--font-xs);margin-bottom:7px}.action-area{border-top:1px solid var(--color-border);text-align:center;justify-content:center;align-items:center;gap:var(--space-2);background:0 0;border:0;flex-wrap:wrap;min-height:52px;margin:0;padding:0;display:flex}.action-area>p{color:var(--color-muted);min-height:20px;font-size:var(--font-sm);margin:0}.main-actions button{color:var(--color-text);padding:var(--space-1-half) 16px;background-color:var(--color-control);min-width:96px;height:40px;min-height:var(--control-height);font-size:var(--font-md);flex-shrink:0;line-height:20px}.action-area>label{max-width:280px;margin-top:15px}.ladder-panel{color:var(--color-text);background:var(--color-surface-raised);border-radius:var(--radius-panel);border:0;flex:0 0 168px;grid-area:2/2;align-self:start;width:168px;min-width:0;margin:0 0 0 auto;position:relative;overflow:visible}.ladder-panel ol{margin:0;padding:0;list-style:none;display:block}.ladder-panel li{border-radius:var(--radius-control);align-items:center;gap:var(--space-2-half);padding:7px var(--space-2);border:0;display:flex}.ladder-panel li:last-child{border:0}.ladder-panel li small{color:var(--color-muted);font-size:var(--font-xs);margin-top:3px;line-height:1.4;display:block}.pot-summary{font-family:var(--font-body);font-size:var(--font-md);justify-content:center;align-items:center;gap:var(--space-4);height:100px;min-height:100px;padding:var(--space-3-half) 0;display:flex}.pot-summary strong{color:var(--color-text);font-size:var(--font-xl);font-weight:var(--font-weight-regular);margin:0;line-height:1}.pot-label{font-family:var(--font-display);font-size:var(--font-lg);font-weight:400}.pot-amount{white-space:nowrap;font-size:var(--font-md)}.table-center{align-items:center;gap:var(--space-2) var(--space-6);max-width:1176px;min-height:0;margin:var(--space-6) auto;grid-template-rows:auto auto;grid-template-columns:260px minmax(0,1fr);padding:0;display:grid}.deck-pile{text-align:center;justify-content:center;align-self:stretch;align-items:center;gap:var(--space-3);flex-direction:row;grid-area:1/1/3;display:flex}.hand-panel{--hand-side-inset:var(--space-4-half);width:100%;min-width:0;max-width:1100px;box-shadow:none;color:var(--color-text);padding:var(--space-4);background:var(--color-seat);border-radius:var(--radius-panel);border:0;grid-area:2/1;margin:0 auto;position:relative}.hand-cards{box-sizing:border-box;--hand-gap:var(--space-3);perspective:calc(var(--table-depth) / 2);transform-style:flat;perspective-origin:bottom;justify-content:safe center;align-items:flex-start;gap:var(--hand-gap);width:calc(100% - 330px);max-width:780px;height:auto;margin:0 auto;padding:0 5px;display:flex;overflow:visible}.hand-cards .card-choice{transform-origin:bottom;flex:0 0 calc((100% - 7 * var(--hand-gap)) / 8);align-self:start;width:100%;min-width:0;padding-bottom:22px;transform:none}.main-actions .fold-button{margin-left:0}.ladder-toggle{text-align:left;color:var(--color-text);border-radius:var(--radius-control);width:100%;padding:var(--space-1-half) var(--space-3);font-size:var(--font-md);background:0 0;border:0;justify-content:space-between;align-items:center;display:flex}.ladder-toggle:hover:not(:disabled){background:var(--color-control-hover)}.ladder-toggle[aria-expanded=true]{background:var(--color-control)}.ladder-toggle:active:not(:disabled){background:var(--color-control-hover)}.opponent-status{text-align:center;color:var(--color-text);white-space:nowrap;font-size:var(--font-xs);grid-area:4/1;margin:0;line-height:20px;display:block}.table-center .lane{align-items:center;gap:var(--space-3);grid-column:2;grid-template-columns:65px minmax(0,1fr);min-width:0;display:block}.lane-cards{box-shadow:none;transform-origin:50%;box-sizing:border-box;grid-template-columns:repeat(var(--lane-count), minmax(0, var(--shared-card-width)));grid-template-rows:calc(var(--shared-card-width) * 1125 / 825);justify-content:flex-start;gap:var(--space-2);column-gap:min(var(--space-1), calc(100% / var(--lane-count) / 8));width:100%;height:calc(var(--shared-card-width) * 1125 / 825 + 24px);min-height:calc(var(--shared-card-width) * 1125 / 825 + 24px);border-radius:var(--radius-control);align-items:center;row-gap:var(--space-1);padding:var(--space-2-half) 5px;background:0 0;border:2px solid #0000;margin:0;display:grid;overflow:visible;transform:none}.action-area>.button-row{justify-content:center}.main-actions{justify-content:center;gap:var(--space-2-half)}.ladder-toggle small{color:var(--color-text);margin-bottom:var(--space-1);font-weight:400;font-size:var(--font-xs);display:block}.ladder-toggle b{font-weight:400;font-size:var(--font-md);display:block}.progress-segments{margin-top:var(--space-2);gap:3px;display:flex}.progress-segments i{background:var(--color-control);border-radius:var(--radius-card);flex:1;height:5px}.progress-segments i.complete{background:var(--color-chip-green)}.opponent.active .avatar{box-shadow:none}.opponent.folded{opacity:.45}.opponent-heading b{font-family:var(--font-display);color:var(--color-text);font-weight:400;font-size:var(--font-lg)}.opponent-heading small strong{color:var(--color-text);font-size:var(--font-xl);font-weight:var(--font-weight-regular)}.own-seat b,.opponent-heading b{position:relative}.dealer-label{left:calc(100% + var(--space-2));align-items:center;gap:var(--space-1);vertical-align:middle;width:max-content;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.progress-segments i.current{background:var(--color-selected)}.main-actions .primary{color:var(--color-canvas);background-color:var(--color-action);min-width:126px}.pot-summary>span{color:var(--color-text);min-width:70px;font-size:var(--font-md);flex-direction:column;align-items:center;gap:3px;display:flex}.own-hand-status{top:14px;right:var(--hand-side-inset);gap:var(--space-3);grid-template-columns:minmax(0,1fr);width:168px;display:grid;position:absolute}.own-wager{justify-content:flex-end;min-height:30px;display:flex}.ladder-panel li b{color:var(--color-text);font-size:var(--font-sm);line-height:1.35}.hand-cards .card-choice>*{pointer-events:none}.hand-cards .playing-card{transform-origin:50%;max-width:100%;height:auto;max-height:var(--hand-card-height);object-fit:contain;width:100%;box-shadow:var(--shadow-card);transform:none}.own-seat{top:18px;left:var(--hand-side-inset);justify-content:flex-start;margin:0;position:absolute}.hand-heading .ladder-panel{background:var(--color-overlay);border-radius:var(--radius-control);grid-area:auto;width:100%;margin:0;position:static}.cycle-bars{width:130px;font-size:var(--font-lg)}.cycle-bars strong{margin-left:5px}.hand-cards .card-choice.is-public{transform-style:preserve-3d;transform:none}.hand-cards .card-choice.is-public .hand-card-surface{transform:rotateX(var(--hand-public-tilt));transform-origin:bottom;opacity:1}.hand-cards .card-choice.is-public .card-caption{margin-top:0;top:-26px;bottom:auto}.hand-cards .card-choice.is-highlighted:not(.picked) .playing-card{outline:2px dashed var(--color-card-highlight);outline-offset:3px;box-shadow:var(--shadow-card), 0 0 12px 5px var(--color-card-highlight-glow)}.hand-cards .card-choice.is-highlighted:not(.picked) .card-caption{color:var(--color-card-highlight);font-weight:var(--font-weight-emphasis)}.hand-cards .card-caption{inset-inline:0;white-space:normal;overflow-wrap:anywhere;color:var(--color-text);max-width:100%;font-size:var(--font-xs);margin-top:5px;position:absolute;bottom:-22px}.main-actions button:hover:not(:disabled){background-color:var(--color-control-hover)}.main-actions .primary:hover:not(:disabled){background-color:var(--color-action-hover)}.main-actions button:not(.primary){mix-blend-mode:multiply}.ladder-panel li+li{border-top:1px solid var(--color-border)}.ladder-panel li.made{box-shadow:none;background:0 0}.rank-details{align-items:center;column-gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;width:100%;display:grid}.rank-details>b,.rank-details>small{grid-column:1}.rank-details>b{font-size:var(--font-lg);align-self:end;line-height:1.2}.ladder-panel .rank-details>small{margin-top:var(--space-0-half);align-self:start;line-height:1.3}.rank-details>.rank-examples{grid-area:1/2/3;margin:0}.rank-examples,.rank-example-group{align-items:center;display:flex}.rank-examples{gap:var(--space-2);margin-top:var(--space-2)}.rank-example-group{gap:var(--space-0-half)}.rank-example-plus{padding-inline:var(--space-1);color:var(--color-muted);font-size:var(--font-xl);flex:none;place-items:center;line-height:1;display:grid}.rank-examples .playing-card{border-radius:var(--radius-card);width:32px;box-shadow:var(--shadow-card-small)}.ladder-panel #hand-ladder ol{grid-template-columns:1fr 1fr;grid-template-rows:repeat(var(--ladder-rows), auto);gap:var(--space-2) var(--space-4);grid-auto-flow:column;display:grid}#hand-ladder li+li{border:0}.fish-card{border-radius:var(--radius-control);background:0 0;border:0;flex:none;min-height:0;padding:0}.fish-card:disabled,.deck:disabled{opacity:1;cursor:default}.fish-card:not(:disabled),.choosing-fish .deck:not(:disabled){outline-offset:5px;cursor:pointer;outline:3px solid var(--color-action);box-shadow:0 0 0 3px var(--color-control)}.fish-card:not(:disabled):hover,.choosing-fish .deck:not(:disabled):hover{outline-color:var(--color-text);box-shadow:0 0 0 3px var(--color-control)}.choosing-fish .deck:not(:disabled),.choosing-fish .deck:not(:disabled):hover{box-shadow:var(--shadow-deck), 0 0 0 3px var(--color-control)}.choosing-fish .lane-cards>.playing-card{opacity:.45}.main-actions.fishing-active{display:none}.discard-zone{min-height:calc(var(--shared-card-width) * 1.37 + 24px);background:0 0;border:2px solid #0000;justify-content:flex-start}.discard-zone:disabled{opacity:1}.discard-zone.available{background:var(--color-overlay);border:2px dashed var(--color-border-strong);border-radius:var(--radius-panel)}.discard-zone.ready{cursor:pointer;background:var(--color-surface-raised);border:2px solid var(--color-action)}.discard-zone.ready:hover{background:var(--color-control);border-color:var(--color-text)}.discard-slot{width:var(--shared-card-width);aspect-ratio:var(--card-aspect);color:var(--color-action);border:1px dashed var(--color-border-strong);border-radius:var(--radius-control);font-size:var(--font-xl);flex:none;place-items:center;display:grid}.lane-cards .fish-card,.lane-cards .discard-slot{width:100%;min-width:0;max-width:var(--shared-card-width)}.lane-cards.discard-zone.available{border-color:var(--color-border-strong)}.lane-cards.discard-zone.ready{border-color:var(--color-action)}.hand-heading .ladder-toggle{min-height:0}.hand-heading .ladder-toggle b{line-height:20px}.hand-panel .ladder-toggle,.hand-panel .ladder-toggle b,.opponent .opponent-status,.opponent.active .opponent-status,.hand-cards .card-choice.is-public .card-caption,.hand-panel .own-wager,.hand-panel .action-area>p,.hand-panel .ladder-toggle small{color:var(--color-text)}.opponent-cards>.playing-card{flex:0 64px;width:64px;min-width:0;height:auto;max-height:88px}.opponent-private{--back-width:64px;grid-template-columns:repeat(calc(var(--hidden-count) - 1), minmax(0, 1fr)) var(--back-width);flex:1;align-items:center;width:auto;min-width:64px;padding-right:0;display:grid}.opponent-private .card-back{width:64px;max-width:none;height:auto;max-height:none}.deck-pile .pot-summary{gap:var(--space-2);width:160px;height:76px;min-height:76px;padding:0}.deck-pile .pot-summary>span{min-width:40px}.deck-pile .pot-summary .chip-stacks{transform-origin:0;flex:none;gap:3px;max-width:104px;transform:scale(.7)}.deck-pile .deck{margin:0}.opponent>.opponent-heading{padding-right:126px}.seat-summary{color:var(--color-text);font-variant-numeric:tabular-nums;align-items:flex-end;gap:var(--space-0-half);font-size:var(--font-xs);flex-direction:column;line-height:18px;display:flex;position:absolute;top:14px;right:12px}.seat-bet{white-space:nowrap;align-items:center;gap:var(--space-1-half);padding:var(--space-1) var(--space-2);border-radius:var(--radius-control);background:var(--color-control);font-size:var(--font-md);font-weight:var(--font-weight-emphasis);display:flex}.seat-bet-chips{zoom:.55}.seat-bet-chips .chip-stacks{gap:0}.seat-bet-chips .denomination-stack+.denomination-stack{margin-left:-16px}.seat-summary .opponent-status:empty{display:none}.seat-summary .opponent-status{font-size:inherit;line-height:inherit}.action-area>button{height:44px;min-height:var(--control-height);padding-block:var(--space-2);line-height:20px}@media (min-width:701px) and (max-height:850px){.opponent-cards{margin-top:var(--space-1)}}@media (max-width:1100px){.opponent-cards>.playing-card,.opponent-private>.card-back{margin-right:-9px}}@media (max-width:900px){.game-topline,.game-stats{flex-wrap:wrap}.hand-panel{grid-area:3/1}.ladder-panel{grid-area:2/1}.opponent{flex-basis:240px}.own-seat,.own-hand-status,.hand-heading .ladder-panel{position:static}.hand-heading{margin-bottom:var(--space-2);justify-content:space-between}.hand-cards{--hand-gap:var(--space-2);width:100%}}@media (max-width:850px){.ladder-panel{margin-bottom:25px;display:block}.ladder-panel ol{grid-template-columns:1fr 1fr}}@media (max-width:700px){.play-layout{border-radius:var(--radius-dialog);padding:var(--space-2-half) var(--space-2);grid-template-columns:minmax(0,1fr);width:calc(100% - 24px)}.ladder-panel{flex-basis:100%;grid-area:2/1;justify-self:end;width:auto;margin:0}.hand-panel{--hand-card-height:clamp(48px, 12vw, 84px);padding:var(--space-2-half) var(--space-2);grid-area:3/1}.table-center .lane{gap:var(--space-1);grid-template-columns:42px minmax(0,1fr)}.opponent{align-items:stretch;column-gap:var(--space-0-half);padding:var(--space-2);flex-basis:95px;grid-template-rows:66px 76px}.opponent-cards>.playing-card,.opponent-private>.card-back{flex-shrink:0;max-height:40px}.table{border-radius:var(--radius-dialog)}.opponent-heading{align-items:start;gap:5px}.opponent-heading .avatar{display:none}.opponent-heading b{font-family:var(--font-display);font-weight:400;font-size:var(--font-md)}.opponent-heading small{font-size:var(--font-xs)}.opponent-heading small strong{font-size:var(--font-md)}.dealer-label{font-style:italic;font-family:var(--font-body);font-size:var(--font-xs)}.opponents{gap:var(--space-1-half)}.table-center{gap:var(--space-1) var(--space-2-half);grid-template-columns:128px minmax(0,1fr)}.lane-cards{gap:var(--space-1-half)}.hand-heading{gap:var(--space-2);flex-wrap:wrap;min-height:86px}.ladder-toggle>span:first-child{align-items:center;gap:var(--space-2-half);display:block}.ladder-toggle small{margin:0}.main-actions{gap:var(--space-1-half)}.main-actions button{min-width:75px;padding:var(--space-1-half) var(--space-3);font-size:var(--font-sm)}.main-actions .primary{min-width:120px}.game-stats{justify-content:center;gap:var(--space-3);flex-wrap:wrap}.cycle-bars{width:90px}.own-seat .avatar{display:grid}.hand-heading .ladder-panel{flex:0 140px}.game-page{--shared-card-width:55px;--table-tilt:10deg}.rank-details{display:block}.rank-details>.rank-examples{margin-top:var(--space-2)}#hand-ladder ol{grid-template-rows:none;grid-template-columns:1fr;grid-auto-flow:row}.opponent-cards{gap:3px;height:76px;min-height:76px}.opponent-cards>.playing-card{flex-basis:50px;width:50px;max-height:68px}.opponent-private{--back-width:50px;flex-basis:auto;width:auto;min-width:50px;padding-right:0}.opponent-private .card-back{width:50px}.deck-pile{gap:var(--space-1)}.deck-pile .pot-summary{flex-direction:column;gap:0;width:64px;height:100px;min-height:100px}.deck-pile .pot-summary .chip-stacks{transform-origin:50%;max-width:none;height:40px;transform:scale(.55)}.opponent>.opponent-heading{align-self:start;padding-right:0}.seat-summary{justify-content:space-between;gap:var(--space-1);font-size:var(--font-xs);flex-direction:row;top:52px;left:8px;right:8px}.action-area{min-height:60px}}@media (max-width:640px){.game-page .masthead{padding:0 4%}.game-topline{flex-direction:column;align-items:start}.play-layout{margin:0 3%}.opponent{min-width:95px}.avatar{width:23px;height:23px;font-size:var(--font-xs)}.opponent-cards>.playing-card,.opponent-private>.card-back{margin-right:-9px}.game-stats{width:100%;font-size:var(--font-xs)}.opponents{display:flex}.pot-summary{padding-top:var(--space-3-half)}.hand-heading{align-items:start}.hand-cards{justify-content:flex-start}}.stick-tag{opacity:.8;border-radius:var(--radius-control);background:var(--color-selected);color:var(--color-on-action);font-family:var(--font-body);font-size:var(--font-sm);white-space:nowrap;padding:3px 6px;font-weight:500;line-height:1.2;display:inline-block}.player-sticks{align-items:end;gap:var(--space-2);height:96px;display:flex;position:absolute;top:62px;left:0}.riichi-stick-count,.loan-stick-count{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.riichi-stick-art{place-items:center;height:69px;padding-inline:8px;display:grid}.riichi-stick-art img{object-fit:contain;grid-area:1/1;width:42px;height:62px}.loan-stick-art{width:36px;height:69px;display:block;position:relative}.loan-stick-art img{object-fit:contain;width:64px;height:30px;position:absolute;top:20px;left:-14px;transform:rotate(-55deg)}.player-sticks small{font-size:var(--font-xs);white-space:nowrap}@media (max-width:900px){.player-sticks{height:96px;margin-top:var(--space-2);position:static}}.riichi-stick-art,.loan-stick-art,.riichi-declared>div{filter:drop-shadow(0 2px 0 var(--color-card-edge)) drop-shadow(var(--shadow-stick))}.opponent-card-journey{z-index:100;pointer-events:none;width:96px;position:absolute;top:0;left:0}.opponent-card-journey .playing-card{width:100%;box-shadow:var(--shadow-card)}.opponent-known-hand{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;min-height:42px;display:flex}.opponent-known-hand small{color:var(--color-muted);font-size:var(--font-xs)}.opponent-known-hand b{font-size:var(--font-sm);font-weight:500}.hand-card-surface{transform-origin:bottom;display:block;position:relative}.opponent.betting .opponent-status{color:var(--color-action);font-weight:500}.hand-panel.folded .hand-cards,.hand-panel.folded .own-seat{opacity:.45}.opponent-sticks{font-size:var(--font-sm);align-items:center;gap:4px;margin-right:0;display:inline-flex}.opponent-sticks img{object-fit:contain;width:28px;height:42px}.all-in-notice{justify-content:center;gap:var(--space-2);width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);margin:var(--space-2) auto;padding:var(--space-1-half) var(--space-3);border-radius:var(--radius-control);background:var(--color-control);color:var(--color-text);font-size:var(--font-sm);flex-wrap:wrap;display:flex}.riichi-stick-count,.opponent-sticks{position:relative}.riichi-stick-count>.spent-stick,.opponent-sticks>.spent-stick{pointer-events:none;width:32px;height:64px;animation:spend-stick .8s var(--ease-out) both;position:absolute;top:0;left:0}@keyframes spend-stick{0%{opacity:1;transform:translateY(0)rotate(-15deg)}65%{opacity:1;transform:translate(32px,-65px)rotate(30deg)}to{opacity:0;transform:translate(48px,-90px)rotate(40deg)}}@media (prefers-reduced-motion:reduce){.riichi-stick-count>.spent-stick,.opponent-sticks>.spent-stick{animation:none;display:none}}.game-counter{align-items:baseline;gap:var(--space-2);display:flex}.game-counter .scores-link{color:var(--color-link);font-size:var(--font-sm);min-height:0;box-shadow:none;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.game-counter .scores-link:hover{color:var(--color-action)}.counter-label{white-space:nowrap;align-items:baseline;display:flex}.counter-label .scores-link{margin-left:var(--space-2)}.game-counter .cycle-bars{width:auto;min-width:130px}.opponent-cards{margin-top:16px;position:relative}.compact-sticks{align-items:center;gap:var(--space-1);flex-direction:row}.compact-sticks .riichi-stick-art{height:42px}.compact-sticks .riichi-stick-art img{width:28px;height:42px}.compact-sticks .loan-stick-art{width:32px;height:42px}.compact-sticks .loan-stick-art img{width:44px;height:auto;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-55deg)}.compact-sticks .stick-tag{color:var(--color-text);opacity:1;font-size:var(--font-sm);background:0 0;padding:0}.hand-cards{position:relative}.riichi-declared{z-index:2;pointer-events:none;justify-items:center;display:grid;position:absolute;top:20%;left:50%;transform:translate(-50%)}.riichi-declared>div{display:flex}.riichi-declared img{object-fit:contain;flex:none;width:auto;height:48px;transform:rotate(-20deg)}.riichi-declared .stick-tag{opacity:1}@media (min-width:901px){.hand-panel{align-items:center;gap:var(--space-2) var(--space-3);grid-template-columns:170px minmax(0,1fr) 168px;display:grid}.hand-heading{display:contents}.own-seat{grid-area:1/1;position:static}.own-hand-status{align-self:center;gap:var(--space-2);grid-area:1/3;position:static}.own-wager:empty{display:none}.hand-cards{grid-area:1/2;width:100%}.hand-panel .action-area{grid-area:2/2;min-height:44px}.player-sticks{height:auto;margin-top:var(--space-2);position:static}.player-sticks .riichi-stick-art,.player-sticks .loan-stick-art{height:42px}.player-sticks .riichi-stick-art img{width:28px;height:42px}.player-sticks .loan-stick-art img{max-height:42px}}@media (min-width:701px) and (max-height:950px){.game-page{--shared-card-width:60px;--hand-card-height:112px}.game-page .masthead{height:56px}.game-topline{padding-block:var(--space-1)}.play-layout{padding-block:var(--space-2);margin-bottom:var(--space-2)}.opponent-cards{height:76px;min-height:76px;margin-top:var(--space-2)}.table-center{margin-block:var(--space-2);row-gap:var(--space-1)}}@media (min-width:701px) and (max-width:900px){.opponents{gap:var(--space-2);flex-wrap:nowrap}.opponent{flex:1 1 0}}.opponent.robot{background:var(--color-robot-seat)}.opponent-private .card-back{transition:translate var(--duration-standard)}.opponent-private .card-back.ready-to-pass{translate:0 12px}@media (prefers-reduced-motion:reduce){.opponent-private .card-back{transition:none}}.own-seat{align-items:center;gap:var(--space-2);grid-template-columns:40px minmax(0,1fr);display:grid}.own-seat>.avatar{grid-area:1/1}.own-seat>div{grid-area:1/2}.own-seat>.player-sticks{grid-area:2/1/3/-1;align-items:center;height:auto;margin:0;position:static}.hand-cards .card-choice{padding-bottom:22px}.hand-cards .card-choice.picked{transform:translateY(-6px)}.own-chip-balance{align-items:center;gap:var(--space-1-half);white-space:nowrap;display:flex}.own-chip-balance .take-loan{min-height:24px;font-size:var(--font-xs);flex-shrink:0;padding:2px 6px}.round-result{border:1px solid var(--color-border);background:var(--color-canvas);border-radius:var(--radius-panel);grid-column:1/-1;margin:0 0 25px;padding:25px}.round-result h2{font-size:var(--font-title)}.result-hands{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px;display:grid}.result-hands article>span{color:var(--color-muted);margin:7px 0 var(--space-3);font-size:var(--font-xs);display:block}.standings{gap:var(--space-5);font-size:var(--font-sm);flex-wrap:wrap;margin-bottom:22px;display:flex}.standings span{gap:7px;display:grid}.error-toast{border:1px solid var(--color-chip-coral);z-index:var(--z-popover);background:var(--color-danger-surface);border-radius:var(--radius-panel);align-items:center;gap:var(--space-5);max-width:calc(100% - 30px);padding:var(--space-3-half) var(--space-4-half);font-size:var(--font-sm);box-shadow:var(--shadow-popover);display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%)}.error-toast button{min-height:25px;font-size:var(--font-xl);background:0 0;border:0;padding:0}.game-dialog{border:1px solid var(--color-border);background:var(--color-canvas);width:min(560px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--color-text);border-radius:var(--radius-dialog);padding:var(--space-6);box-shadow:var(--shadow-dialog);overflow:auto}.game-dialog::backdrop{background:var(--color-drawer-overlay)}.dialog-heading{justify-content:space-between;align-items:center;gap:var(--space-5);margin-bottom:var(--space-5);display:flex}.dialog-heading h2{font-size:var(--font-title);margin:0}.dialog-heading button{min-width:36px;min-height:36px;padding:var(--space-1);font-size:var(--font-xl);margin-left:auto}.game-dialog p{font-size:var(--font-md);line-height:1.6}.game-dialog .bet-chips{flex-wrap:wrap}.game-dialog .chip{width:42px;height:42px;font-size:var(--font-sm)}.game-dialog .fishing-row{margin-top:var(--space-5);display:block}.game-dialog label{font-size:var(--font-sm)}.game-dialog select{width:100%;font-size:var(--font-md)}.game-dialog .expansion-actions{gap:var(--space-3);display:grid}.dialog-actions{margin-top:var(--space-6);flex-wrap:wrap;display:flex}.dialog-actions button{min-height:var(--control-height);font-size:var(--font-md)}.game-dialog.result-dialog{color:var(--color-text);background:var(--color-canvas);border:1px solid var(--color-border);border-radius:var(--radius-dialog);width:min(640px,100vw - 32px);max-height:calc(100dvh - 48px);box-shadow:var(--shadow-dialog);padding:22px}.game-dialog.result-dialog::backdrop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:var(--color-overlay)}.result-dialog .dialog-heading{margin-bottom:var(--space-4-half)}.result-dialog .dialog-heading h2{font:700 16px LINE Seed Sans,sans-serif}.result-dialog .round-result{box-shadow:none;background:0 0;border:0;margin:0;padding:0;transform:none}.result-dialog .round-result>h2{margin:var(--space-2) 0 var(--space-5);font-size:var(--font-title)}.result-dialog .result-hands{gap:var(--space-2-half);grid-template-columns:1fr;display:grid}.result-dialog .result-hands article{background:var(--color-surface-raised);border-radius:var(--radius-control);align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3);grid-template-columns:130px minmax(0,1fr);display:grid}.result-dialog .result-hands article.winner{background:var(--color-winner-surface)}.result-dialog .result-hands article>span{color:var(--color-muted);margin:var(--space-1) 0 var(--space-2-half);font-size:var(--font-xs);display:block}.result-dialog .mini-hand{gap:var(--space-1);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.result-dialog .mini-hand .playing-card{width:100%;max-width:52px;margin:0;transform:none}.result-dialog .result-actions{justify-content:center;gap:var(--space-3);flex-wrap:wrap;margin-top:22px;display:flex}.result-dialog .result-actions .primary{color:var(--color-canvas);width:100%}.result-player-summary>span{color:var(--color-muted);margin:var(--space-1) 0 9px;font-size:var(--font-xs);display:block}.result-committed{color:var(--color-text);font-size:var(--font-xs);display:block}.result-committed strong{color:var(--color-text);font-family:var(--font-display);font-size:var(--font-lg)}.game-dialog>p[role=alert]{min-height:24px}.action-area>.standings{display:none}@media (max-width:850px){.rules-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.rules-panel{padding:22px}.rules-grid{grid-template-columns:1fr}.rules-heading h2{font-size:var(--font-title)}.rules-heading button{font-size:var(--font-xs);flex-shrink:0;padding:9px}.round-result{padding:var(--space-5)}.round-result h2{font-size:var(--font-xl)}.game-dialog{padding:var(--space-5)}}@media (max-width:480px){.result-dialog .result-hands article{gap:var(--space-2-half);grid-template-columns:1fr}.result-player-summary{gap:var(--space-1) var(--space-2);grid-template-columns:1fr auto;display:grid}.result-player-summary>span{grid-column:1;margin:0}.result-committed{grid-area:1/2/3;align-self:center}}.game-dialog.drawer{width:min(var(--layout-max-width), 100%);border-radius:22px 22px 0 0;max-width:100%;max-height:82dvh;margin:0 auto;padding:24px clamp(20px,4vw,40px);animation:.18s ease-out drawer-enter;position:fixed;inset:auto 0 0;transform:none}.game-dialog.drawer .dialog-heading h2{font-size:26px}.game-dialog.drawer .dialog-heading{margin-bottom:18px}.game-dialog.drawer .dialog-actions{margin-top:20px}.game-dialog.bet-drawer{width:min(880px,100%)}.bet-editor{border-radius:var(--radius-panel);background:var(--color-seat);justify-content:space-between;align-items:center;gap:24px;padding:18px 22px;display:flex}.bet-amount{gap:4px;min-width:100px;display:grid}.bet-amount>span{font-size:var(--font-sm);color:var(--color-muted)}.bet-amount strong{font-variant-numeric:tabular-nums;font-size:32px;line-height:1.15}.bet-editor .bet-chips{justify-content:flex-end;margin:0}.bet-drawer .dialog-actions{justify-content:flex-end}.bet-drawer .dialog-actions .primary{order:1}.bet-drawer .dialog-error:empty{display:none}@media (max-width:600px){.bet-editor{flex-direction:column;align-items:flex-start;gap:16px;padding:16px}.bet-editor .bet-chips{justify-content:flex-start}}.bet-drawer .bet-chips .chip{font-weight:500}.rank-drawer #hand-ladder{width:100%;max-height:none}.rank-drawer #hand-ladder ol{gap:0 28px;margin:0;padding:0}.rank-drawer #hand-ladder li{border-bottom:1px solid var(--color-border);border-radius:0;padding:16px 0}.rank-drawer #hand-ladder li+li{border-top:0}.rank-drawer .rank-details>b{font-size:20px}.rank-drawer .rank-details>small{color:color-mix(in srgb, var(--color-muted) 72%, white);font-size:15px;font-weight:400}.rank-drawer .rank-examples .playing-card{width:44px}.rules-content section{border-top:1px solid var(--color-border);padding-top:20px}.rules-content h4{margin:0 0 16px;font-size:20px}.rules-content h5{margin:20px 0 8px;font-size:18px}.rules-content p,.rules-content li{color:var(--color-muted);font-size:16px;line-height:1.65}.rules-content ul,.rules-content ol{margin:16px 0;padding-left:24px}.rules-content li{margin:6px 0}.rules-content strong{color:var(--color-text);font-weight:700}.rules-chapter>h3{margin:28px 0 16px;font-size:26px}.rules-chapter+.rules-chapter{margin-top:40px}.rules-setup-illustrations{justify-content:space-between;align-items:center;gap:24px;margin:20px 0;display:flex}.rules-setup-illustrations .rules-illustration{float:none;min-width:0;max-width:44%;margin:0}.rules-setup-illustrations .rules-illustration img{object-fit:contain}.rules-content table{border-collapse:collapse;width:min(520px,100%);margin:24px 0 28px;font-size:15px}.rules-content th,.rules-content td{text-align:left;border-bottom:1px solid var(--color-border);padding:8px 12px}.rules-content{margin:0;display:block}.rules-content section{padding:28px 0;display:flow-root}.rules-content section:last-child h5{clear:both}.rules-illustration{float:right;max-width:45%;margin:0 0 24px 28px}.rules-illustration img{max-width:100%;height:auto;display:block}.rules-illustration-inline{float:none;clear:both;max-width:100%;margin:24px 0}.fishing-illustration{width:117px;height:296px;position:relative}.fishing-illustration img{max-width:none;position:absolute}@media (max-width:480px){.rules-setup-illustrations{flex-wrap:wrap;justify-content:center;gap:16px}.rules-setup-illustrations .rules-illustration:first-child{flex-basis:100%;max-width:100%}.rules-setup-illustrations .rules-illustration:first-child img{margin:auto}.rules-illustration{float:none;width:-moz-fit-content;width:fit-content;max-width:100%;margin:20px auto}.fishing-illustration{width:117px}}@keyframes drawer-enter{0%{opacity:0;translate:0 24px}to{opacity:1;translate:0}}@media (max-width:700px){.rank-drawer #hand-ladder ol{grid-template-rows:none;grid-template-columns:1fr;grid-auto-flow:row}.rank-drawer .rank-details{display:grid}}@media (prefers-reduced-motion:reduce){.game-dialog.drawer{animation:none}}.rules-content .rules-example{clear:both;background:var(--color-rules-example);border-radius:var(--radius-control);color:var(--color-text);padding:12px 16px}.game-dialog.rules-drawer .dialog-heading{float:right;margin:0 0 12px 20px}.rules-chapter:first-child>h3{margin-top:0}.game-dialog.rules-drawer{width:min(960px,100%)}.game-dialog.scores-dialog{width:min(760px,100vw - 32px)}.scores-scroll{overflow-x:auto}.tournament-scores table{border-collapse:collapse;width:100%;margin:20px 0}.tournament-scores th,.tournament-scores td{text-align:right;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 16px}.tournament-scores th:first-child{text-align:left}.game-completion{margin-bottom:24px}.score-player{align-items:center;gap:var(--space-2);display:inline-flex}.score-player .avatar{width:32px;height:32px}.winner-trophy{font-size:var(--font-lg)}.loan-description-stick{float:right;object-fit:contain;width:100px;height:70px;margin:0 0 16px 20px}.result-player-summary>b{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--font-lg);display:flex}.result-player-summary>span{font-size:var(--font-md)}.result-committed{align-items:center;gap:var(--space-1);font-size:var(--font-md);flex-wrap:wrap;display:flex}.result-dialog .dialog-heading:not(:has(h2)){top:var(--space-4);right:var(--space-4);margin:0;position:absolute}.result-dialog .round-result>.eyebrow{padding-right:var(--space-10)}html[data-motion-input=keyboard] .game-dialog,html[data-motion-input=keyboard] #hand-ladder,html[data-motion-input=keyboard] .card-choice{transition:none}html[data-motion-input=keyboard] .game-dialog::backdrop{transition:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.launch-card .mode-picker:before{transition:none}}@media (prefers-reduced-motion:no-preference){.game-dialog:not(.drawer)[open]{opacity:1;transition:opacity var(--duration-standard) var(--ease-out), transform var(--duration-standard) var(--ease-out);transform:scale(1)}.game-dialog[open]::backdrop{opacity:1;transition:opacity var(--duration-standard) ease-out}#hand-ladder{transform-origin:100% 0;opacity:1;transition:opacity var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);transform:scale(1)}@starting-style{.game-dialog:not(.drawer)[open]{opacity:0;transform:scale(.97)}.game-dialog[open]::backdrop{opacity:0}#hand-ladder{opacity:0;transform:scale(.98)}}}@keyframes home-cards-enter{0%{opacity:0;translate:-40px 90px}to{opacity:1;translate:0}}@media (prefers-reduced-motion:no-preference){.frontpage-decor:not(.expansion-decor){animation:home-cards-enter .85s var(--ease-out) both}}body:before,body:after{content:"";z-index:-1;pointer-events:none;position:fixed;inset:0}body{isolation:isolate}body:before{filter:saturate(1.2);opacity:.18;background:url(/assets/whatajong/mountains.webp) 50%/100% 100% no-repeat;width:90vw;height:60vw;margin:auto;-webkit-mask-image:radial-gradient(closest-side,#000 30%,#0000 100%);mask-image:radial-gradient(closest-side,#000 30%,#0000 100%)}body:after{z-index:10000;mix-blend-mode:multiply;opacity:.38;background:url(/assets/whatajong/paper.webp)}.home-page,.game-page,.welcome{background:0 0}.audio-controls{align-items:center;gap:var(--space-2);display:flex}.audio-toggle{width:40px;height:40px;min-height:40px;padding:var(--space-2);font-size:var(--font-sm);background:var(--color-seat);border-color:#0000;place-items:center;font-weight:500;display:grid}.audio-toggle[aria-pressed=false]{color:var(--color-muted);background:0 0}@media (max-width:640px){.masthead{gap:var(--space-2);height:auto;min-height:91px;padding-block:var(--space-3);flex-wrap:wrap}.masthead nav{align-items:center;gap:var(--space-2);flex-wrap:wrap}}.audio-toggle svg{width:22px;height:22px}.launch-card{background:var(--color-seat);-webkit-backdrop-filter:none;backdrop-filter:none}button:where(:not(.card-choice,.deck,.fish-card,.chip,.text-button,.ladder-toggle,.setup-seat.none,.mode-picker button)),.main-actions button,.player-picker button,.setup-seat:not(.none),.start-button,.audio-toggle{background-image:var(--gradient-button);box-shadow:var(--shadow-button);border-style:solid;border-width:1px;border-color:var(--color-border-strong);border-radius:var(--radius-control)}button.primary,.main-actions .primary,.start-button,.setup-seat.human,.player-picker button.selected{border-color:var(--color-text)}.mode-picker:before{background-image:var(--gradient-button);box-shadow:var(--shadow-button)}button:active:not(:disabled,.card-choice,.deck,.fish-card,.chip,.text-button,.ladder-toggle,.mode-picker button){box-shadow:var(--shadow-button-pressed)}.main-actions button,.dialog-actions button{border-radius:var(--radius-control);min-height:40px;padding:6px 16px;font-size:14px;line-height:20px}.main-actions button.primary,.dialog-actions button.primary{min-width:126px}.masthead .text-button{text-underline-offset:3px;border:0;align-items:center;gap:6px;text-decoration:underline;display:inline-flex}.masthead .text-button span{margin-left:0}.room-entry.launch-card{width:min(480px,100% - 32px);margin:var(--space-10) auto;padding:var(--space-8);gap:var(--space-6)}.room-entry-heading h1{margin:var(--space-2) 0;font-size:clamp(26px,5vw,36px);line-height:1.2}.room-entry-heading p{margin:0;line-height:1.5}.room-entry-heading .room-inviter{color:var(--color-muted);font-size:var(--font-sm)}.setup-field input,.room-bar input{width:100%;min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font:inherit}.game-page .masthead.has-room{height:auto;min-height:72px;padding-block:var(--space-2);gap:var(--space-4)}.masthead.has-room nav{flex-shrink:0}.room-bar{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3);margin-top:calc(-1 * var(--space-2));border-radius:0 0 var(--radius-control) var(--radius-control);background:var(--color-room-banner);font-size:var(--font-sm);border:0;flex:0 440px;align-self:flex-start;animation:.24s ease-out room-arrive;display:flex}.room-bar>[role=status]{flex-shrink:0}.room-bar p{margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--font-xs)}.room-link{gap:var(--space-2);flex:1;min-width:0;display:flex}.room-link button{flex-shrink:0}@media (max-width:1050px){.game-page .masthead.has-room{flex-wrap:wrap}.room-bar{flex:0 440px;order:3;margin-inline:auto}}.room-bar input{background:var(--color-room-link);border:0}.room-bar .room-copy{width:36px;min-width:36px;padding:var(--space-2);box-shadow:none;background:0 0;border:0}.room-copy svg{width:20px;height:20px}.room-bar .room-copy:hover{background:var(--color-room-link)}@keyframes room-arrive{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.room-bar{animation:none}}
