:root{color-scheme:dark;--felt: #1a1d24;--felt-2: #0e1117;--felt-3: #050608;--ink: #f0f2f5;--muted: #9ca5b5;--dim: #6f7888;--panel: #0e1018;--panel-2: #161922;--panel-3: #1a1d27;--line: rgba(255, 255, 255, .1);--gold: oklch(.68 .14 70);--gold-2: oklch(.79 .17 73);--pink: oklch(.85 .15 92);--blue: oklch(.68 .14 70);--green: oklch(.85 .15 92);--danger: #ff7468;--card-bg: #ffffff;--card-edge: #c7cad4;--card-red: #d8232a;--card-black: #18181c;--shadow: 0 18px 45px rgba(0, 0, 0, .42);--button-shadow: 0 5px 0 rgba(73, 55, 20, .95), 0 14px 28px rgba(0, 0, 0, .32)}*{box-sizing:border-box}html{min-height:100%;background:var(--felt-3)}body{margin:0;min-height:100vh;font-family:Fredoka,Segoe UI,system-ui,sans-serif;background:radial-gradient(120% 90% at 50% 28%,color-mix(in oklab,var(--felt) 92%,white 4%) 0%,var(--felt) 34%,var(--felt-3) 100%);color:var(--ink)}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(140% 120% at 50% 30%,transparent 36%,rgba(0,0,0,.72) 100%),repeating-linear-gradient(45deg,rgba(0,0,0,.055) 0 1px,transparent 1px 5px),repeating-linear-gradient(-45deg,rgba(0,0,0,.055) 0 1px,transparent 1px 5px);mix-blend-mode:multiply}#app{position:relative;width:min(100%,980px);margin:0 auto;padding:10px 10px 28px}.topbar{display:flex;align-items:end;gap:10px;padding:4px 2px 10px;margin-bottom:8px;border-bottom:1px solid var(--line)}.topbar h1{margin:0;color:#fff;font-size:1.6rem;line-height:1;letter-spacing:0;text-shadow:0 1px 0 rgba(89,64,20,.95),0 0 18px color-mix(in oklab,var(--gold-2) 55%,transparent)}.logo-link{color:inherit;text-decoration:none}.subtitle{color:var(--muted);font-size:.82rem}button{min-height:42px;border:1px solid rgba(255,255,255,.18);border-radius:7px;padding:9px 14px;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1d1406;box-shadow:var(--button-shadow);cursor:pointer;font:700 .9rem/1 Fredoka,Segoe UI,system-ui,sans-serif;letter-spacing:0;text-transform:uppercase;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}button:hover{transform:translateY(-2px);filter:saturate(1.12)}button:active{transform:translateY(3px) scale(.98);box-shadow:0 2px #6b4516,0 8px 18px #00000059}button.secondary{background:linear-gradient(180deg,#1b1f29f5,#0d0f15fa);color:var(--ink);border-color:#ffffff24;box-shadow:0 4px #07080cf2,0 12px 26px #00000047}button.small{min-height:34px;padding:6px 9px;font-size:.7rem;border-radius:6px}button:disabled{cursor:not-allowed;opacity:.48;filter:grayscale(.6);transform:none}.small.warn{color:var(--pink);opacity:.95;margin-top:4px}.seattoggle.on{border-color:color-mix(in oklab,var(--pink) 65%,white 10%);box-shadow:0 4px #604f16e0,0 0 22px color-mix(in oklab,var(--pink) 28%,transparent)}.scorepanel,.setup,.online,.handoff,.handover,.lasttrick{position:relative;background:linear-gradient(180deg,#161922f7,#0e1018fc),var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.scorepanel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px;padding:10px;border-radius:8px;transform:rotate(-.35deg)}.scorecell{min-width:0;padding:8px 9px;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#ffffff08;box-shadow:inset 0 0 0 1px #ffffff08}.scorecell .label{margin-bottom:4px;color:var(--dim);font-size:.66rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.scorecell .subnote{margin-bottom:4px;color:var(--dim);font-size:.58rem;line-height:1.15}.scorecell .value{overflow-wrap:anywhere;color:var(--ink);font-size:1rem;font-weight:900;line-height:1.05}.scorecell .value.big{color:var(--gold);font-size:1.65rem;text-shadow:0 2px 0 rgba(82,62,16,.95)}.crosses{min-height:1em;color:var(--pink);font-weight:900;letter-spacing:0}.table{display:grid;grid-template-areas:". north ." "west center east" ". south .";grid-template-columns:minmax(76px,.92fr) minmax(170px,1.18fr) minmax(76px,.92fr);gap:14px;align-items:center;min-height:492px;max-width:940px;margin-inline:auto;margin-bottom:10px;padding:22px 18px 18px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:radial-gradient(ellipse at center,rgba(255,255,255,.06),transparent 58%),linear-gradient(180deg,#0c0e14eb,#08090ee0);box-shadow:inset 0 0 45px #00000059,0 20px 55px #00000047}.table-surface{position:relative;max-width:940px;margin-inline:auto;margin-bottom:10px;padding:18px 18px 14px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:radial-gradient(ellipse at center,rgba(255,255,255,.045),transparent 62%),linear-gradient(180deg,#0c0e14eb,#08090ee6);box-shadow:inset 0 0 45px #00000059,0 20px 55px #00000047}.table-wrap{position:relative;margin-bottom:0}.siderail{display:flex;flex-direction:column;gap:12px;max-width:940px;margin-inline:auto}.siderail .chatbox{margin:0}.siderail .chatbox h3{margin:0 0 6px}.board-status{min-height:72px;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:8px;margin-top:10px}.board-status>.message{width:100%;margin-bottom:0}.table-surface:not(.tutorial-surface)>.board-status{position:absolute;top:10px;left:50%;transform:translate(-50%);width:min(94%,560px);min-height:0;margin:0;z-index:25;pointer-events:none;justify-content:center}.table-surface:not(.tutorial-surface)>.board-status:empty{display:none}.table-surface:not(.tutorial-surface)>.board-status>.message{width:auto;max-width:100%;margin:0;pointer-events:auto;box-shadow:0 12px 32px #0000008c}.table-wrap .table{margin-bottom:0}@media(min-width:980px){#app:has(.table-surface){width:min(100%,1320px);padding-top:6px;padding-bottom:10px}html:has(#root>.table-surface){scrollbar-gutter:stable}#app:has(.table-surface) .topbar{padding:2px 2px 6px;margin-bottom:6px}#app:has(.table-surface) .topbar h1{font-size:1.3rem}:is(#root,.tutorial-game):has(>.table-surface){display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,24vw,340px);column-gap:18px;align-items:start}:is(#root,.tutorial-game):has(>.table-surface)>.table-surface{grid-column:1;max-width:none;width:100%;min-height:calc(100dvh - 86px);display:flex;flex-direction:column}:is(#root,.tutorial-game):has(>.table-surface)>.table-surface>.table-wrap{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}:is(#root,.tutorial-game):has(>.table-surface) .table{max-width:none;width:100%;flex:1 1 auto;min-height:0;margin-inline:0;gap:8px;padding:12px 14px;grid-template-rows:auto minmax(0,1fr) auto}:is(#root,.tutorial-game):has(>.table-surface)>.siderail{grid-column:2;align-self:stretch;width:clamp(280px,24vw,340px);max-width:clamp(280px,24vw,340px);min-width:0;min-height:calc(100dvh - 86px);display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#ffffff0a,#ffffff04)}:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.scorepanel,:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.meldbox,:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.board-status-panel,:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.piles,:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.chatbox,:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.rules-row,:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.actions{margin:0;width:100%;min-width:0}:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.scorepanel{grid-template-columns:1fr;gap:6px;transform:none}:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.chatbox{flex:1 1 auto;min-height:120px;display:flex;flex-direction:column}:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.chatbox .chatlog{flex:1 1 auto;max-height:none}:is(#root,.tutorial-game):has(>.table-surface)>.siderail>.actions{margin-top:auto}:is(#root,.tutorial-game):has(>.table-surface) .seat.west,:is(#root,.tutorial-game):has(>.table-surface) .seat.east{min-height:258px}:is(#root,.tutorial-game):has(>.table-surface) .board-status:empty{min-height:0;margin-top:0}:is(#root,.tutorial-game):has(>.table-surface) .table.two{--board-center-slot: 150px}}.seat{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding-top:6px;padding-bottom:6px;text-align:center}.seat.north{grid-area:north}.seat.west{grid-area:west;justify-content:center;min-height:320px}.seat.east{grid-area:east;justify-content:center;min-height:320px}.center{grid-area:center;min-width:0;min-height:208px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.south-area{grid-area:south;min-width:0;display:flex;justify-content:center;align-items:flex-start}.seathead{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:52px;margin-bottom:18px;position:relative;z-index:2}.seat.west .seathead,.seat.east .seathead{position:absolute;top:0;left:0;right:0;margin-bottom:0}.seat .seatname{display:inline-flex;max-width:100%;align-items:center;flex-wrap:wrap;justify-content:center;gap:4px;position:relative;z-index:2;color:var(--muted);font-size:.78rem;font-weight:900;line-height:1.1}.seat .seatname.active{color:#16110a;background:var(--pink);text-shadow:none;box-shadow:0 0 0 1px #ffffff1f,0 0 16px color-mix(in oklab,var(--pink) 40%,transparent)}.seat .seatname.partner:after{content:"♥";color:var(--pink)}.seatmeta{margin-top:0;position:relative;z-index:2;color:var(--dim);font-size:.66rem}.seatstatus{margin-top:4px;position:relative;z-index:2;font-size:.68rem;font-weight:900}.seatstatus.auto{color:#ffd7d2}.seat-token{display:inline-flex;align-items:center;justify-content:center;min-height:18px;border-radius:4px;padding:2px 5px;font-size:.62rem;font-weight:1000;line-height:1;letter-spacing:0}.seat-token.declarer{margin-left:2px;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1a1208;box-shadow:0 0 0 1px #fff8df26,0 4px 10px #0003}.seat-token.dealer{margin-left:2px;background:linear-gradient(180deg,color-mix(in oklab,var(--gold) 72%,white 8%),color-mix(in oklab,var(--gold) 68%,black 20%));color:#041016;opacity:.9;transform:scale(.93)}.declarer-banner{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:linear-gradient(180deg,#191309f2,#0e0c0af5);box-shadow:0 4px #4f3a10e6,0 12px 24px #00000047}.declarer-banner .declarer-name{color:var(--gold);font-size:.88rem;font-weight:1000;line-height:1}.declarer-inline{margin-left:0}.declarer-cell .value{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.tag{display:inline-flex;align-items:center;min-height:18px;border-radius:4px;padding:2px 5px;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1a1208;font-size:.62rem;font-weight:900;line-height:1}.tag.dealer{background:linear-gradient(180deg,var(--blue),#1d7aa3);color:#041016}.tag.auto{background:linear-gradient(180deg,#ff7468fa,#c33a2dfa);color:#fff5f2}.backrow,.backfan{position:relative;display:inline-block;width:clamp(150px,22vw,212px);min-height:76px;margin-top:12px;margin-inline:auto;overflow:visible;z-index:1}.backrow.west,.backfan.west,.backrow.east,.backfan.east{width:clamp(142px,18vw,168px);margin-top:0;margin-inline:0}.backrow.north,.backfan.north{transform:rotate(180deg)}.backrow.west,.backfan.west{transform:rotate(90deg)}.backrow.east,.backfan.east{transform:rotate(-90deg)}.backrow .cardback,.backfan .cardback{position:absolute;left:calc(50% - (var(--back-w, 38px) * .5));top:0;border:1px solid rgba(255,255,255,.5);background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 45%),linear-gradient(180deg,#8e1825,#67111a);box-shadow:inset 0 0 0 2px #ffffff14,0 5px 12px #00000047;transform:translate(var(--fan-x, 0),var(--fan-y, 0)) rotate(var(--fan-rot, 0deg));animation:none}.cardback.dealing{animation:dealFromDeck .24s ease both;animation-delay:var(--deal-delay, 0ms)}.bidpanel{margin:8px auto 4px;width:max-content;max-width:100%;display:flex;flex-direction:column;gap:2px}.bidpanel-title{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;opacity:.6;text-align:center;margin-bottom:2px}.bidrow{display:flex;justify-content:space-between;gap:16px;font-size:13px;line-height:1.4;opacity:.85}.bidrow.active{opacity:1;font-weight:700;color:var(--gold)}.bidrow-val{font-variant-numeric:tabular-nums}.table.two .bidpanel{flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:center;column-gap:20px;row-gap:2px}.table.two .bidpanel-title{margin-bottom:0}.table.two .bidrow{gap:8px}.pilecard{border:1px solid rgba(255,255,255,.5);background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 45%),linear-gradient(180deg,#8e1825,#67111a);box-shadow:inset 0 0 0 2px #ffffff14,0 5px 12px #00000047}.cardback{width:var(--back-w, 38px);height:var(--back-h, 56px);border-radius:6px;transform-origin:50% 100%}.card{position:relative;display:inline-flex;flex-direction:column;justify-content:space-between;width:var(--card-w, clamp(56px, 15vw, 86px));height:var(--card-h, clamp(82px, 21vw, 122px));padding:6px 7px;border:2px solid var(--card-edge);border-radius:8px;background:radial-gradient(circle at 50% 12%,rgba(255,255,255,.86),transparent 24%),linear-gradient(180deg,#fff,#e6e7ed);box-shadow:0 4px #9096a2f2,0 15px 24px #00000061;color:var(--card-black);font-size:1.06rem;font-weight:1000;line-height:1;user-select:none;transform:translate(var(--fan-x, 0),var(--fan-y, 0)) rotate(var(--fan-rot, 0deg));transform-origin:50% 92%;transition:transform .13s ease,box-shadow .13s ease,filter .13s ease,opacity .13s ease}.card.red{color:var(--card-red)}.card .corner-top,.card .corner-bottom{position:relative;z-index:1}.card .corner-bottom{align-self:flex-end;transform:rotate(180deg)}.card .card-center{position:absolute;inset:0;display:grid;place-items:center;padding-bottom:2px;font-size:1.85rem;line-height:1;opacity:.95}.card.playable{cursor:pointer;outline:3px solid color-mix(in oklab,var(--pink) 75%,white 10%);outline-offset:3px;box-shadow:0 4px #725f19f2,0 0 28px color-mix(in oklab,var(--pink) 28%,transparent),0 18px 28px #0000006b}.card.disabled{cursor:not-allowed;opacity:.38;filter:grayscale(.7)}.card.public{cursor:default;filter:saturate(.9) brightness(.95);box-shadow:0 2px #9096a299,0 6px 12px #00000052}.card.dealing{animation:dealFromDeck .22s ease both;animation-delay:var(--deal-delay, 0ms)}.card.declaration-chosen{outline:2px solid var(--gold-2);outline-offset:3px;box-shadow:0 0 12px color-mix(in oklab,var(--gold-2) 30%,transparent),0 2px #725f1999}.center .trick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);align-items:center;justify-items:center;column-gap:8px;row-gap:0;min-height:118px;--card-w: 42px;--card-h: 60px}.center .trick .trickcard.top{grid-column:2;grid-row:1;z-index:1}.center .trick .trickcard.left{grid-column:1;grid-row:2;margin:-16px 0;z-index:2}.center .trick .trickcard.right{grid-column:3;grid-row:2;margin:-16px 0;z-index:2}.center .trick .trickcard.bottom{grid-column:2;grid-row:3;z-index:1}.center .trick.two{min-height:74px}.center .trick.two .trickcard.top{grid-column:1;grid-row:2;margin:0}.center .trick.two .trickcard.bottom{grid-column:3;grid-row:2;margin:0}.center .trick .trickcard{position:relative}.center .trick .trickcard .who{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:1px;white-space:nowrap}.center.play-center{position:relative;justify-content:center}.play-center .trickbanner{position:absolute;left:0;right:0;top:calc(50% + 84px);pointer-events:none}.center .trick .trickcard.empty{visibility:hidden}.center .trick .trickcard .trickcard-ph{width:var(--card-w, 42px);height:var(--card-h, 60px)}.dealstack{position:relative;width:74px;height:94px;margin:10px auto 0}.dealcardback{position:absolute;inset:0;border:1px solid rgba(255,255,255,.5);border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 45%),linear-gradient(180deg,#8e1825,#67111a);box-shadow:inset 0 0 0 2px #ffffff14,0 6px 14px #00000047;animation:dealFromDeck .24s ease both;animation-delay:var(--deal-delay, 0ms)}.dealcardback:nth-child(1){--fan-x: 0px;--fan-y: 0px;--fan-rot: -3deg;--deal-delay: 0ms}.dealcardback:nth-child(2){--fan-x: 7px;--fan-y: -5px;--fan-rot: 4deg;--deal-delay: 45ms}.dealcardback:nth-child(3){--fan-x: -6px;--fan-y: 5px;--fan-rot: -5deg;--deal-delay: 90ms}.dealcardback:nth-child(4){--fan-x: 5px;--fan-y: 7px;--fan-rot: 2deg;--deal-delay: 135ms}.trickcard{text-align:center}.trickdiamond{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);align-items:center;justify-items:center;gap:6px;min-height:206px}.trickdiamond-slot.top{grid-column:2;grid-row:1}.trickdiamond-slot.right{grid-column:3;grid-row:2}.trickdiamond-slot.bottom{grid-column:2;grid-row:3}.trickdiamond-slot.left{grid-column:1;grid-row:2}.trickdiamond-slot .card{transform:translate(0) rotate(0)}.trickpoints{margin-top:4px;color:var(--muted);font-size:.68rem;font-weight:900;text-align:center}.trickcard .who{margin-bottom:4px;color:var(--muted);font-size:.7rem;font-weight:900}.center .trickinfo,.bidreason{color:var(--muted);font-size:.82rem;line-height:1.25}.biddingturn{margin-bottom:6px;color:var(--blue);font-size:.84rem;font-weight:900}.bigbid,.winner-banner{color:var(--gold);font-weight:1000;line-height:1.02;text-shadow:0 4px 0 #67330f,0 0 20px rgba(255,216,106,.35)}.bigbid{font-size:2.1rem;animation:pop .21s ease both}.bigbid.quiet{color:var(--ink);text-shadow:0 2px 0 rgba(0,0,0,.28)}.bigbid.pass{color:var(--muted);text-shadow:0 3px 0 rgba(0,0,0,.35)}.winner-banner{margin-bottom:8px;font-size:1.75rem;animation:pop .24s ease both}.trumpbadge{display:flex;align-items:center;gap:10px;padding:10px 14px;border:2px solid var(--gold);border-radius:8px;background:linear-gradient(90deg,rgba(255,79,184,.18),transparent 28%),linear-gradient(180deg,#241b17,#11100f);box-shadow:0 5px #5f3716,0 18px 34px #00000059;transform:rotate(.35deg)}.trumpbadge .tb-label{color:var(--gold);font-size:.7rem;font-weight:1000;letter-spacing:0;text-transform:uppercase}.trumpbadge .tb-num{display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;padding:2px 8px;border-radius:6px;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1d1406;font-size:1.4rem;font-weight:1000;line-height:1}.trumpbadge .tb-suit{color:var(--ink);font-size:1.55rem;font-weight:1000;line-height:1}.trumpbadge.red .tb-suit{color:#ff6f7e}.trumpbadge.black .tb-suit{color:#fff7e5}.trumpbadge .tb-x2{border-radius:5px;padding:3px 7px;background:var(--pink);color:#fff;font-size:.9rem;font-weight:1000}.meldbox{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#161922f7,#0e1018fc),var(--panel);box-shadow:var(--shadow)}.meldbox-owner{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.meldbox-name{font-weight:1000;color:var(--ink)}.meldbox-meld{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.meldbox-label{color:var(--gold);font-size:.7rem;font-weight:1000;text-transform:uppercase}.meldbox-meld .tb-num{display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;padding:2px 8px;border-radius:6px;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1d1406;font-size:1.3rem;font-weight:1000;line-height:1}.meldbox-meld .tb-suit{font-size:1.3rem;font-weight:1000;line-height:1}.meldbox-meld.red .tb-suit{color:#ff6f7e}.meldbox-meld.black .tb-suit{color:#fff7e5}.meldbox-meld .tb-x2{border-radius:5px;padding:2px 6px;background:var(--pink);color:#fff;font-size:.82rem;font-weight:1000}.sortselect{min-height:34px;border:1px solid rgba(255,255,255,.18);border-radius:7px;padding:4px 10px;background:linear-gradient(180deg,#1b1f29f5,#0d0f15fa);color:var(--ink);font:700 .82rem/1 Fredoka,Segoe UI,system-ui,sans-serif;cursor:pointer}.sortselect:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.piles{display:flex;justify-content:center;gap:22px;margin:8px 0 4px}.pile{min-width:110px;cursor:pointer;text-align:center}.pile-stack{position:relative;width:62px;height:62px;margin-inline:auto;min-height:62px;overflow:visible}.pile-stack.diamond{transform:rotate(45deg)}.pilecard{position:absolute;left:50%;top:50%;width:18px;height:27px;border-radius:3px;transform-origin:50% 100%;margin:0}.pile-label,.pilehint,.small{color:var(--muted);font-size:.76rem;line-height:1.25}.pile-label{margin-top:4px;font-weight:800}.pilehint{text-align:center;margin-bottom:8px}.lasttrick{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:60;width:max-content;max-width:min(440px,92vw);margin:0;padding:14px;border-radius:10px;box-shadow:0 24px 70px #0009}.lasttrick:before{content:"";position:fixed;inset:0;background:#0000008c;z-index:-1}.lasttrick-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:.85rem;font-weight:900}.hand-wrap{margin:12px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}.table .hand-wrap{display:flex;flex-direction:column;align-items:center;width:min(100%,760px);margin:0;padding-top:0;border-top:0}.hand-controls{display:flex;justify-content:center;margin-top:10px}.hand-label,.bid-current{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;color:var(--ink);font-size:.9rem;font-weight:900}.bid-current{color:var(--gold);font-size:1rem}.sortrow{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:0}.sortrow.compact .sortselect.small{min-height:30px;font-size:.78rem}.hand{--card-w: clamp(56px, 15vw, 86px);--card-h: clamp(82px, 21vw, 122px);--fan-step: calc(var(--card-w) - clamp(18px, 1.4vw, 12px));display:flex;flex-wrap:nowrap;gap:0;align-items:flex-end;justify-content:center;overflow:visible;width:fit-content;max-width:100%;margin-inline:auto;padding:2px 8px 6px;scrollbar-width:none;min-height:var(--card-h);box-sizing:content-box}.hand .card{flex:0 0 auto;margin-left:calc(var(--fan-step) - var(--card-w))}.hand .card:first-child{margin-left:0}.hand .card:last-child{margin-right:0}.hand::-webkit-scrollbar{display:none}.hand.hand-backs{min-height:var(--card-h);overflow:visible}.hand.hand-backs .backfan{width:fit-content;margin-top:2px}.celebration-layer{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:clamp(24px,14%,110px);gap:10px;pointer-events:none}.celebration-badge{padding:10px 18px;border-radius:999px;font-size:clamp(2rem,6vw,3.5rem);font-weight:1000;line-height:1;text-transform:uppercase;animation:celebrationPop .52s ease both}.celebration-badge.vol{color:#150f07;background:linear-gradient(180deg,var(--gold),var(--gold-2));box-shadow:0 10px 28px #0006}.celebration-badge.cross{color:#fffffff2;text-shadow:0 0 18px rgba(255,255,255,.25)}.actions,.bidcontrols,.hostbox,.inviterow,.online-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.handover-center{gap:10px}.handover-center-actions{margin-top:6px;justify-content:center;width:100%}.handover-summary{display:flex;flex-direction:column;gap:4px}.nexthand{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.nexthand-count{font-weight:600}.nexthand-seats{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.nexthand-seat{font-size:.8em;padding:1px 6px;border-radius:10px;background:#ffffff14}.nexthand-seat.ready{background:#50c87838}.nexthand-seat.disconnected{background:#e6787838}.nexthand-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.nexthand-waiting{font-size:.85em;opacity:.85}.review-overlay{position:absolute;inset:0;z-index:30;display:flex;flex-wrap:wrap;gap:12px;align-items:stretch;padding:14px;border-radius:8px;background:linear-gradient(180deg,#0a0c12f2,#08090ef7)}.review-main{flex:3 1 360px;min-width:0;display:flex;flex-direction:column;gap:10px;min-height:0}.review-aside{flex:1 1 220px;min-width:0;display:flex;min-height:0}.review-main:not(:has(.review-details)){justify-content:center}.review-aside .chatbox{width:100%;margin:0;display:flex;flex-direction:column}.review-aside .chatlog{flex:1 1 auto;max-height:none}.review-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.review-result{flex:0 1 auto;min-width:0;max-width:640px}.review-meld{font-size:1.1rem;font-weight:700;color:var(--ink);text-align:center}.review-meld-suit{font-size:1.2em;vertical-align:-.05em}.review-meld-suit.red{color:var(--card-red)}.review-controls{flex:0 1 auto}.review-details{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;width:100%;max-width:760px;margin:0 auto}.review-section-title{font-weight:800;font-size:.78rem;color:var(--muted);margin-bottom:2px;text-align:center}.review-sides{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:stretch}.review-side,.review-bordkort{flex:1 1 0;min-width:220px;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:6px 8px;background:#0000002e}.review-side.winner{border-color:var(--gold);box-shadow:0 0 0 1px #d4af3759 inset}.review-bordkort{flex-basis:100%;margin-top:6px}.review-side-head{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;font-weight:700;margin-bottom:4px}.review-side-eygu{color:var(--gold);white-space:nowrap}.review-side-cards{display:flex;flex-wrap:wrap;gap:3px;align-items:center;justify-content:center}.review-side-none{font-size:.72rem;color:var(--dim)}.review-tricks{flex:1 1 auto;min-height:0;overflow-y:auto}.reviewbtn-row{display:flex;justify-content:center;margin:4px 0}.alltricks{border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px;background:#ffffff05}.alltricks-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.alltricks-title{font-weight:900;font-size:.85rem}.alltricks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}.alltrick{border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:5px;background:#0000001f}.alltrick-num{font-weight:800;font-size:.68rem;color:var(--muted);margin-bottom:3px}.alltrick-plays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;justify-items:center}.alltrick-plays>.alltrick-play:last-child:nth-child(odd){grid-column:1 / -1}.review-overlay .alltrick-plays .card,.review-overlay .review-chip .card{--card-w: 30px;--card-h: 42px;padding:3px;font-size:.66rem;border-width:1.5px;box-shadow:0 2px #9096a2e6}.review-overlay .review-chip .card{--card-w: 26px;--card-h: 36px}.review-chip{display:inline-flex}.alltrick-play{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px}.alltrick-play .who{max-width:40px;overflow:hidden;font-size:.56rem;color:var(--dim);text-overflow:ellipsis;white-space:nowrap}.alltrick-play.lead .card{box-shadow:0 0 0 2px #78aaffe6}.alltrick-play.winner .card{box-shadow:0 0 0 2px var(--gold),0 0 8px #d4af3799}.alltrick-mark{font-size:.52rem;font-weight:800;line-height:1.3;border-radius:6px;padding:0 4px}.alltrick-mark.lead{color:#9ec0ff}.alltrick-mark.vann{color:var(--gold)}.alltrick-play.winner .who{color:var(--gold);font-weight:800}.alltrick-winner{margin-top:3px;font-size:.64rem;font-weight:700;color:var(--gold)}@media(max-width:640px){.table-surface:has(.review-overlay) .table-wrap{display:none}.review-overlay{position:static;inset:auto;min-height:0;flex-direction:column;background:var(--felt-3, #0a0c12)}.review-main,.review-details,.review-aside{flex:0 0 auto;min-height:auto}.review-tricks{flex:0 0 auto;min-height:auto;height:auto;overflow-y:visible}}.actions,.bidcontrols,.hostbox{margin-bottom:10px}.boardcontrols{justify-content:center}.bidcontrols{width:100%;justify-content:center}.bidaction-slot{min-height:44px}.trumpcontrols button{min-width:124px}.message{margin-bottom:10px;padding:10px 12px;border:1px solid rgba(255,116,104,.7);border-radius:7px;background:#68181880;color:#ffe4df;font-size:.86rem;font-weight:800}.autoplay-notice{display:flex;align-items:center;justify-content:space-between;gap:10px}.handover,.handoff,.setup,.online{border-radius:8px;padding:16px}.handover{margin-bottom:10px;border-color:#ff4fb86b}.handover h3,.setup h2,.online h2,.online h3{margin:0 0 10px;color:var(--gold);font-weight:1000;line-height:1.05;text-shadow:0 3px 0 #5d3212}.setup p,.online p{max-width:68ch;color:var(--muted);line-height:1.38}.setup .presets{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0}.quicklabel{font-weight:900}.setuprow{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 10px;max-width:520px;padding:8px 0;border-bottom:1px solid rgba(255,248,223,.08)}.seatno{flex:1 1 auto;font-weight:900}.seatno em{display:inline-block;margin-left:.55rem;color:var(--muted);font-size:.8rem;font-style:normal;font-weight:700}.seattoggle{flex:0 0 auto;width:96px}.seatnameinput{flex:1 1 100%;min-width:0;min-height:42px;border:1px solid rgba(255,255,255,.14);border-radius:7px;padding:8px 10px;background:#090b10e6;color:var(--ink);font:700 .9rem/1.1 Fredoka,Segoe UI,system-ui,sans-serif;box-shadow:inset 0 0 0 1px #ffffff08}.seatnameinput::placeholder{color:var(--dim)}#startmatch,#dobid,#dopass{margin-top:8px;font-size:.95rem}.sep{border:none;border-top:1px solid var(--line);margin:18px 0}.online-head{justify-content:space-between;margin-bottom:12px}.online .code{display:inline-block;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:3px 7px;background:#ffffff08;color:var(--gold);font-family:Cascadia Mono,Consolas,monospace;font-size:.95em;letter-spacing:0}.conn{border:1px solid currentColor;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:900}.conn.connected{color:var(--green)}.conn.connecting{color:var(--gold)}.conn.disconnected{color:var(--danger)}.online-status{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:6px 8px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff08;box-shadow:none}.online-status.lobby-status{margin-bottom:10px;border-radius:10px}.board-status-panel{margin:0;width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden}.online-status.active,.online-status.your-turn{border-color:color-mix(in oklab,var(--gold) 42%,transparent);background:color-mix(in oklab,var(--gold) 10%,rgba(255,255,255,.03))}.online-status.your-turn .online-status-text{color:var(--gold)}.online-status.pending{border-color:color-mix(in oklab,var(--gold) 28%,transparent)}.online-status.warning{border-color:color-mix(in oklab,var(--danger) 42%,transparent);background:color-mix(in oklab,var(--danger) 8%,rgba(255,255,255,.03))}.online-status-main{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;overflow:hidden}.online-status-text{color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:1000;line-height:1.1}.online-status-detail,.online-status-error{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;line-height:1.1}.online-status-detail{color:var(--muted)}.online-status-error{color:#ffd3cc}.online-status-meta{display:flex;flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end;gap:6px;min-width:0}.online-status-chip{display:inline-flex;align-items:center;gap:6px;min-height:22px;padding:2px 8px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#ffffff0a;color:var(--ink);font-size:.68rem;font-weight:900;white-space:nowrap}.online-status-chip.conn-connected{color:var(--green)}.online-status-chip.conn-pending,.online-status-chip.pending{color:var(--gold)}.online-status-chip.conn-warning{color:var(--danger)}.online-head .conn{display:none}.invite,.namebox{margin:12px 0}.invite label,.namebox label{display:block;color:var(--muted);font-size:.82rem;font-weight:900}.inviterow{margin-top:6px}.inviterow input{flex:1 1 220px;min-width:0;min-height:42px;border:1px solid rgba(255,255,255,.14);border-radius:7px;padding:8px 10px;background:#090b10e6;color:var(--ink);font:700 .9rem/1.1 Fredoka,Segoe UI,system-ui,sans-serif}.qr{display:block;width:152px;height:152px;margin-top:10px;border:5px solid var(--card-bg);border-radius:8px;background:#fff;box-shadow:0 14px 30px #00000059;image-rendering:pixelated}.lseats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:10px 0 14px}.lseat{min-height:118px;padding:12px;border:1px solid rgba(255,248,223,.14);border-radius:8px;background:linear-gradient(180deg,#183027d9,#081612e6);box-shadow:inset 0 0 0 1px #ffffff08}.lseat.mine{border-color:var(--gold);box-shadow:0 0 0 2px #ffd86a1f,0 0 24px #ffd86a2e}.lseat.empty{border-style:dashed;opacity:.86}.lseat.disconnected{border-color:#ff7468bf}.lseat-top,.lseat-state{color:var(--muted);font-size:.76rem;font-weight:800}.lseat-name{margin:8px 0;color:var(--ink);font-size:1.05rem;font-weight:1000}.handoff{margin-bottom:10px;text-align:center;border-color:#ffd86a80}.handoff-title{margin-bottom:6px;color:var(--gold);font-size:1.4rem;font-weight:1000}.handoff-sub{margin-bottom:12px;color:var(--muted);font-size:.9rem}.log{max-height:150px;overflow-y:auto;border-radius:7px;padding:10px;background:#00000038;color:var(--muted);font-size:.8rem}.log div{padding:2px 0;border-bottom:1px solid rgba(255,255,255,.06)}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.9) rotate(-1deg)}70%{opacity:1;transform:translateY(-1px) scale(1.04) rotate(.5deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes dealIn{0%{opacity:0;transform:translateY(10px) rotate(-3deg) scale(.92)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}@keyframes dealFromDeck{0%{opacity:0;transform:translate(calc(var(--fan-x, 0px) * .08),calc(12px + var(--fan-y, 0px) * .08)) rotate(calc(var(--fan-rot, 0deg) * .4)) scale(.86)}to{opacity:1;transform:translate(var(--fan-x, 0px),var(--fan-y, 0px)) rotate(var(--fan-rot, 0deg)) scale(1)}}@keyframes celebrationPop{0%{opacity:0;transform:scale(.72) translateY(10px)}55%{opacity:1;transform:scale(1.06) translateY(0)}to{opacity:1;transform:scale(1) translateY(0)}}@media(max-width:760px){#app{padding-inline:8px}.scorepanel{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;transform:none}.scorecell{padding:7px}.table{grid-template-columns:minmax(58px,.78fr) minmax(126px,1.34fr) minmax(58px,.78fr);min-height:312px;padding:10px 8px}.card{font-size:.96rem}.card .card-center{font-size:1.55rem}.backrow,.backfan{width:clamp(136px,28vw,190px);min-height:62px;margin-top:10px}.seat .back-reserve{min-height:72px}.backrow.west,.backfan.west,.backrow.east,.backfan.east{width:clamp(186px,42vw,248px);margin-top:0}.seat.west,.seat.east{min-height:258px}.declarer-banner{max-width:100%}.board-status{min-height:48px}.bigbid{font-size:1.65rem}.winner-banner{font-size:1.3rem;white-space:nowrap}.center .trickinfo{white-space:nowrap}.hand{gap:0}.trumpcontrols button{min-width:0;flex:1 1 120px}.setup{overflow-x:hidden}.setup .presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.quicklabel{grid-column:1 / -1}.setup .presets button{min-width:0;padding-inline:8px}.setuprow{max-width:none}.seatnameinput{padding-inline:8px}}@media(max-width:540px){.online-status{gap:6px;padding:5px 7px}.online-status-meta{gap:4px}.board-status-panel .online-status-detail{display:none}.board-status-panel .online-status-text{font-size:.8rem}.board-status-panel .online-status-chip{max-width:42vw;overflow:hidden;text-overflow:ellipsis}.table{grid-template-areas:". north ." "west center east" "south south south"}.south-area{justify-self:center;width:100%}.table .hand-wrap{width:100%;align-items:center}.table .hand-label,.table .bid-current{width:100%;justify-content:center;text-align:center}.hand{--card-w: clamp(40px, 14.5vw, 56px);--card-h: clamp(62px, 22vw, 88px);--fan-step: calc(var(--card-w) - clamp(20px, 5.5vw, 26px));justify-content:center;padding-inline:0}}@media(max-width:460px){.topbar{align-items:start;flex-direction:column;gap:4px}.scorepanel{grid-template-columns:repeat(2,minmax(0,1fr))}.table{grid-template-areas:". north ." "west center east" "south south south";grid-template-columns:minmax(44px,.68fr) minmax(128px,1.64fr) minmax(44px,.68fr);gap:8px;min-height:0;padding:10px 6px 12px}.seat.west,.seat.east{min-height:228px}.seathead{min-height:44px;margin-bottom:12px}.center{justify-self:center;width:100%}.center .trick{min-height:96px}.south-area{justify-self:center;width:100%}.table .hand-wrap{width:100%;align-items:center}.table .hand-label,.table .bid-current{width:100%;justify-content:center;text-align:center}.hand{--card-w: clamp(40px, 14.5vw, 56px);--card-h: clamp(62px, 22vw, 88px);--fan-step: calc(var(--card-w) - clamp(20px, 5.5vw, 26px));justify-content:center;padding-inline:0}.card.playable{outline-width:2px;outline-offset:1px;box-shadow:0 3px #725f19f2,0 0 18px color-mix(in oklab,var(--pink) 24%,transparent),0 12px 20px #00000057}.backrow,.backfan{width:clamp(122px,30vw,158px);min-height:60px}.seat .back-reserve{min-height:70px}.backrow.west,.backfan.west,.backrow.east,.backfan.east{width:clamp(124px,32vw,154px);margin-top:0}.piles{gap:10px}.pile{min-width:0;flex:1}.pile-stack{width:54px;height:54px;min-height:54px}.online-head{align-items:stretch}.setup,.online,.handoff,.handover{padding:14px 10px}.inviterow input{flex-basis:100%}}@media(hover:hover)and (pointer:fine){.card.playable:hover{transform:translate(var(--fan-x, 0),calc(var(--fan-y, 0) - 8px)) rotate(var(--fan-rot, 0deg)) scale(1.025)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}.rules-row{display:flex;justify-content:center;margin:6px 0 2px}button.rulesbtn{background:#ffffff0f;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;box-shadow:none;opacity:.85}button.rulesbtn:hover{opacity:1;transform:none}.rules-modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.rules-modal[hidden]{display:none}.reconnect-prompt-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#0009}.reconnect-prompt{width:min(420px,100%);padding:18px 18px 16px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(180deg,#161922fc,#0e1018),var(--panel);box-shadow:var(--shadow);text-align:center}.reconnect-prompt h3{margin:0 0 8px;font-size:19px;color:var(--gold)}.reconnect-prompt p{margin:0 0 14px;color:var(--ink)}.reconnect-prompt-actions{display:flex;flex-direction:column;gap:8px}.reconnect-prompt-actions button{width:100%}.rules-backdrop{position:absolute;inset:0;background:#0009}.rules-dialog{position:relative;z-index:1;width:min(440px,100%);max-height:min(82vh,720px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:14px 16px 16px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(180deg,#161922fc,#0e1018),var(--panel);box-shadow:var(--shadow)}.rules-dialog h2{margin:0 36px 8px 0;font-size:19px;color:var(--gold)}.rules-section{margin-bottom:10px}.rules-section:last-of-type{margin-bottom:0}.rules-section h3{margin:0 0 3px;font-size:14px;color:var(--pink)}.rules-list{margin:0;padding-left:18px;font-size:12.5px;line-height:1.45}.rules-intro{margin:0 0 6px;font-size:12.5px;line-height:1.4;opacity:.82}.rules-rank-hint{margin:0 0 6px;text-align:center;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;opacity:.6}.rules-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:10px 6px;padding:8px 4px 0;justify-items:center;--card-w: 44px;--card-h: 62px}@media(max-width:480px){.rules-cards{grid-template-columns:repeat(3,1fr)}}.rules-card{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%;min-width:0;margin:0}.rules-cardwrap{position:relative;display:inline-flex}.rules-card .card{font-size:.78rem;box-shadow:0 2px #9096a2f2,0 6px 12px #00000059}.rules-card figcaption{font-size:11px;line-height:1.2;text-align:center;overflow-wrap:normal;hyphens:manual;opacity:.9}.rules-rank{position:absolute;top:-7px;left:-7px;min-width:17px;height:17px;padding:0 3px;border-radius:999px;background:var(--gold);color:#1a1206;font-size:10px;font-weight:900;line-height:17px;text-align:center;box-shadow:0 1px 3px #00000073}.rules-badge{position:absolute;top:-8px;right:-8px;min-width:21px;height:21px;padding:0 4px;border-radius:999px;background:var(--pink);color:#1a1206;font-size:12px;font-weight:900;line-height:21px;text-align:center;box-shadow:0 1px 3px #00000080}.rules-symbols{margin:8px 0 0;text-align:center;font-size:18px;font-weight:800;letter-spacing:.5px;white-space:nowrap}.rules-symbols .sym-rank{color:var(--ink)}.rules-symbols .sym-suit{color:#0c0d11;text-shadow:0 0 1px rgba(255,255,255,.95),0 0 2px rgba(255,255,255,.55)}.rules-symbols .sym-suit.red{color:var(--card-red);text-shadow:0 0 1px rgba(255,255,255,.95),0 0 2px rgba(255,255,255,.55)}.rules-symbols .sym-sep{margin:0 3px;color:var(--ink);opacity:.4;font-weight:600}.rules-cards.eygu{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:10px 8px}.rules-cards.eygu .rules-card{width:auto}.rules-card-wide{grid-column:1 / -1;flex-basis:100%}.rules-cardwrap.group{display:inline-flex;gap:6px}button.rules-close{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:0;border-radius:999px;background:#ffffff14;color:var(--ink);border:1px solid var(--line);box-shadow:none;font-size:15px;line-height:1}.seg{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:5px;border:1px solid var(--line);border-radius:12px;background:#0000004d}.modeselect{margin-bottom:12px}.modeselect .modebtn{font-size:1.05rem;font-weight:800;letter-spacing:.02em}.modeselect .quicklabel{flex:0 0 auto;margin:0 4px;color:var(--muted);font-size:.8rem}.seg .modebtn{flex:1 1 auto;min-height:44px;border-color:transparent;border-radius:9px;box-shadow:none}.seg .modebtn.secondary{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)}.seg .modebtn.secondary:hover{color:var(--ink);filter:none}.modebtn.on{background:linear-gradient(180deg,color-mix(in oklab,var(--gold) 92%,white 12%),var(--gold));border-color:var(--gold);color:#030406;box-shadow:0 3px color-mix(in oklab,var(--gold) 55%,black)}.modebox{margin:12px 0}.moderow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.chatbox{margin:12px 0}.chatlog{height:150px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:8px;margin-bottom:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.chatmsg{font-size:.86rem;line-height:1.3;word-break:break-word}.chatname{font-weight:800;color:var(--gold)}.chat-empty{color:var(--muted)}.chat-status{min-height:1.1em;margin-top:4px;color:var(--gold)}@media(max-width:460px){.chatlog{height:118px}}.onlinegroup{margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.onlinegroup>button{width:100%}.onlinegroup .small{margin:6px 0 2px}.onlinegroup.disabled{opacity:.5;filter:grayscale(.4)}.online-note{margin:8px 0 2px}.openrooms{margin-top:10px}.openrooms-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.openrooms-title{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.openrooms-head #findopenrooms{width:auto;flex:0 0 auto}.openroomslist{display:flex;flex-direction:column;gap:6px;max-height:242px;overflow-y:auto;scrollbar-gutter:stable}.openroom{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:#ffffff05}.openroom-code{font-weight:800;letter-spacing:.04em}.openroom-meta{flex:1 1 auto;min-width:0;font-size:.78rem;color:var(--muted)}.openroom [data-join-room]{flex:0 0 auto;color:#1d1406}.openrooms-empty{margin:4px 0 2px;color:var(--muted)}.lane-sep{display:flex;align-items:center;gap:10px;margin:14px 2px;color:var(--muted);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.lane-sep:before,.lane-sep:after{content:"";flex:1 1 auto;border-top:1px solid rgba(255,255,255,.16)}.lane-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}.lane{min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#00000038}@media(min-width:761px){.setup-shell{min-height:660px;display:flex;flex-direction:column}.setup-shell>footer.site-footer{margin-top:auto}}.lane.primary{border-color:color-mix(in oklab,var(--gold) 45%,transparent);background:radial-gradient(120% 90% at 50% 0%,color-mix(in oklab,var(--gold) 9%,transparent),transparent 60%),#00000038}.lane>h2,.lane>h3{margin-top:0}.lane .onlinegroup:first-of-type{margin-top:0}.start-tabs{display:none}.start-tab{flex:1 1 0;min-height:44px;border-color:transparent;background:#00000040;box-shadow:none;color:var(--muted)}.start-tab.on{background:linear-gradient(180deg,color-mix(in oklab,var(--gold) 92%,white 12%),var(--gold));border-color:var(--gold);color:#030406;box-shadow:0 3px color-mix(in oklab,var(--gold) 55%,black)}.lobby-shell button:not(.secondary):not(:disabled){color:#000}.lobby-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.9fr);gap:18px;align-items:start}.lobby-main{min-width:0}.lobby-main .modebox:first-child,.lobby-main>h3:first-child{margin-top:0}.rail{display:flex;flex-direction:column;gap:12px;min-width:0}.railcard{padding:12px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--panel-2),var(--panel))}.railcard.invite,.railcard .chatbox{margin:0}.railcard .chatbox h3{margin-top:0}.lobby-main .lseats{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:760px){.lane-grid,.lobby-grid{grid-template-columns:1fr}.start-tabs{display:flex;gap:6px;margin-bottom:12px}.setup-shell.tab-online .lane[data-lane=local],.setup-shell.tab-local .lane[data-lane=online]{display:none}}.table.two{--board-center-slot: calc(2*clamp(68px, 17vw, 92px) + 68px) }.table.three,.table.four{--board-center-slot: 208px}.table.four{--board-center-slot: 256px}@media(min-width:600px){.table.three{--board-center-slot: 272px}}.table.two .center,.table.three .center,.table.four .center{min-height:var(--board-center-slot)}.table.three{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"north-left north-right" "center center" "south south"}.seat.north-left{grid-area:north-left;justify-content:center;align-items:flex-end;min-height:210px}.seat.north-right{grid-area:north-right;justify-content:center;align-items:flex-start;min-height:210px}.table.three .seat.north-left .seathead,.table.three .seat.north-right .seathead{text-align:center}.table.three .seat.north-left .backfan,.table.three .seat.north-right .backfan{transform-origin:center center}.table.three .seat.north-left .backfan{transform:rotate(120deg) scale(.78)}.table.three .seat.north-right .backfan{transform:rotate(240deg) scale(.78)}.table.three .hand{--card-w: clamp(38px, 8.4vw, 60px);--card-h: clamp(56px, 12.4vw, 88px)}@media(min-width:600px){.table.three .hand{--card-w: clamp(46px, 10.6vw, 82px);--card-h: clamp(68px, 15.6vw, 120px)}.table.three .seat.north-left{align-items:flex-start}.table.three .seat.north-right{align-items:flex-end}.table.three .seat.north-left .backfan{transform:rotate(135deg) scale(.98);margin-left:26px}.table.three .seat.north-right .backfan{transform:rotate(225deg) scale(.98);margin-right:26px}}.bordkort-deal{display:flex;justify-content:center;gap:8px;margin:8px 0;min-height:60px}.bordkort-deal .cardback{position:relative;width:40px;height:58px;border:1px solid rgba(255,255,255,.5);background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 45%),linear-gradient(180deg,#8e1825,#67111a);box-shadow:inset 0 0 0 2px #ffffff14,0 5px 12px #00000047}.bordkort{display:flex;justify-content:center;gap:8px;margin:8px 0 6px}.bordkort-card{min-height:0;padding:0;width:40px;height:58px;border-radius:6px;border:1px solid rgba(255,255,255,.5);background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 45%),linear-gradient(180deg,#8e1825,#67111a);box-shadow:inset 0 0 0 2px #ffffff14,0 5px 12px #00000047}.bordkort-card:first-child{transform:rotate(-6deg)}.bordkort-card:last-child{transform:rotate(6deg)}button.bordkort-card.selected{border-color:var(--gold);box-shadow:inset 0 0 0 2px var(--gold),0 5px 12px #00000047;transform:translateY(-4px)}.bordkort-area{display:flex;flex-direction:column;align-items:center;gap:2px;margin:4px 0 6px}.bordkort-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.bordkort-cards{display:flex;justify-content:center;gap:8px}.bordkort-exchange{font-size:.72rem;color:var(--muted);margin-top:2px}.exchange-selected{display:flex;flex-direction:column;align-items:center;gap:4px;margin:6px 0}.exchange-selected-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.exchange-selected-cards{display:flex;gap:6px}.exchange-selected-cards .card{--card-w: 44px;--card-h: 64px;cursor:pointer}.hand .card.selectable.selected{transform:translateY(-22px);z-index:50;opacity:.55}.drawn-reveal{display:flex;justify-content:center;gap:8px;margin:8px 0}.drawn-reveal .card{--card-w: 52px;--card-h: 74px}.center .trick.three .trickcard.left{grid-column:1;grid-row:1;margin:0}.center .trick.three .trickcard.right{grid-column:3;grid-row:1;margin:0}.center .trick.three .trickcard.bottom{grid-column:2;grid-row:3}.trickdiamond.three{min-height:188px}.trickdiamond.three .trickdiamond-slot.left{grid-column:1;grid-row:1}.trickdiamond.three .trickdiamond-slot.right{grid-column:3;grid-row:1}.trickdiamond.three .trickdiamond-slot.bottom{grid-column:2;grid-row:3}.trickdiamond.three .who{font-size:.72rem;color:var(--muted);margin-bottom:2px;text-align:center}.trickdiamond.three .trickdiamond-slot.winner .card{outline:2px solid var(--gold);outline-offset:1px}.scorepanel.three{grid-template-columns:repeat(3,minmax(0,1fr))}.center .trick.two{row-gap:34px;min-height:0;--card-w: clamp(46px, 11.5vw, 62px);--card-h: clamp(68px, 17vw, 92px)}.table.two .trickbanner .winner-banner{font-size:1.2rem;margin:0}.table.two .trickbanner .trickinfo{font-size:.8rem}.table.two .play-center .trickbanner{position:static;order:2;top:auto;left:auto;right:auto;transform:none;margin-top:8px;min-height:1.4rem}.table.two .play-center .trick.two{order:1}.table.two{grid-template-columns:minmax(0,1fr);grid-template-areas:"north" "center" "south"}.table.two .seat.north{grid-area:north;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:150px}.table.two .seat.north .seathead{text-align:center}.table.two .seat.north .backfan{transform:rotate(180deg) scale(.96);transform-origin:center center}.table.two .south-area{flex-direction:column;align-items:center}.table.two .hand{--card-w: clamp(48px, 12vw, 64px);--card-h: clamp(70px, 17.5vw, 94px)}.scorepanel.two{grid-template-columns:repeat(2,minmax(0,1fr))}.back-reserve{min-height:88px;display:flex;justify-content:center}.tablepiles{--tablecard-w: clamp(48px, 12vw, 64px);--tablecard-h: calc(var(--tablecard-w) * 1.46);--hidden-peek: 16px;display:flex;justify-content:center;gap:16px;margin:6px 0 4px}.tablepile{position:relative;width:calc(var(--tablecard-w) + var(--hidden-peek));height:calc(var(--tablecard-h) + var(--hidden-peek))}.tablepile.empty{border:1px dashed rgba(255,255,255,.16);border-radius:6px;width:calc(var(--tablecard-w) + var(--hidden-peek));height:calc(var(--tablecard-h) + var(--hidden-peek))}.tablepile .cardback.tablehidden{position:absolute;top:var(--hidden-peek);left:var(--hidden-peek);width:var(--tablecard-w);height:var(--tablecard-h);border:1px solid rgba(255,255,255,.55);border-radius:8px;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 45%),linear-gradient(180deg,#8e1825,#67111a);box-shadow:inset 0 0 0 2px #ffffff14,0 6px 14px #00000057}.tablepile .card{--card-w: var(--tablecard-w);--card-h: var(--tablecard-h);position:absolute;top:0;left:0}.tablepile .card.playable{cursor:pointer}.tablepile .card.disabled{opacity:1;cursor:default;filter:grayscale(.55) brightness(.7)}.table.two .seat.north .tablepile .card{top:var(--hidden-peek);left:var(--hidden-peek)}.table.two .seat.north .tablepile .cardback.tablehidden{top:0;left:0}.card.selectable{cursor:pointer}.card.selectable.selected{outline:2px solid var(--accent, #5ad);outline-offset:1px;transform:translateY(-8px)}.exchange-hint{font-size:13px;opacity:.8;margin:4px 0}.exchangecontrols{margin-top:6px}@media(max-width:460px){.scorepanel.three{grid-template-columns:repeat(3,minmax(0,1fr))}}.tutorial-shell{max-width:940px;margin:0 auto}.tutorial-shell h2{margin:0 0 12px}.tutorial-entry{margin-top:10px}.tutorial-entry-note{margin-top:6px;color:var(--muted)}.tutorial-intro{margin:0 0 18px;font-size:15px;color:var(--muted)}.tutorial-modules{display:grid;gap:22px}.tutorial-section{display:grid;gap:10px}.tutorial-section-title{margin:0;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.tutorial-module-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tutorial-module-card{position:relative;padding:14px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d}.tutorial-module-card.is-active{cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .05s ease}.tutorial-module-card.is-active:hover{border-color:#ffffff47;background:#ffffff17}.tutorial-module-card.is-active:active{transform:translateY(1px)}.tutorial-module-card.is-active:focus-visible{outline:2px solid var(--accent, #e0a93c);outline-offset:2px}.tutorial-module-card.is-inactive{opacity:.55;border-style:dashed;border-color:#ffffff17;background:#ffffff05;filter:grayscale(.35);cursor:default}.tutorial-module-title{font-size:15px;font-weight:700}.tutorial-module-sub{margin-top:5px;font-size:13px;color:var(--muted)}.tutorial-module-badge{display:inline-block;margin-top:10px;padding:3px 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--gold-2, #d9a441);background:#d9a44124;border:1px solid rgba(217,164,65,.4);border-radius:999px}@media(max-width:640px){.tutorial-module-list{grid-template-columns:1fr}}.tutorial-table-shell{display:grid;gap:8px;max-width:none}.tutorial-surface{min-height:clamp(560px,84dvh,760px);margin-bottom:0;width:100%;display:flex;flex-direction:column;justify-content:space-between}.tutorial-surface .message{width:100%}.tutorial-board-wrap{position:relative;flex:1;min-height:0}.tutorial-surface .table{min-height:clamp(500px,66dvh,620px)}.kleyvi-coach{position:absolute;inset:0;z-index:8;pointer-events:none}.kleyvi-coach-avatar{position:absolute;border-radius:50%;object-fit:cover;object-position:50% 12%;background:var(--felt-3);border:2px solid var(--pink);box-shadow:0 0 0 2px #ffffff1f,0 4px 10px #0006;-webkit-user-drag:none;user-select:none;-webkit-user-select:none}.kleyvi-coach-avatar[data-coach-advance=true]{pointer-events:auto;cursor:pointer}.kleyvi-coach-bubble{position:absolute;padding:7px 12px 8px 16px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:linear-gradient(180deg,#10121af5,#090b11fa);box-shadow:0 6px 14px #0006;pointer-events:none}.kleyvi-coach-bubble[data-coach-advance=true]{pointer-events:auto;cursor:pointer}.kleyvi-coach-next,.kleyvi-coach-cta{pointer-events:auto}.kleyvi-coach-bubble--tail-left{border-radius:0 12px 12px}.kleyvi-coach-bubble--tail-right{border-radius:12px 0 12px 12px}.kleyvi-coach-preview-badge{display:block;margin-bottom:4px;font-size:.6em;font-weight:900;letter-spacing:.06em;color:var(--gold-2)}.kleyvi-coach-editable .kleyvi-coach-bubble{user-select:none;-webkit-user-select:none}.kleyvi-coach-l1{font-size:1em;font-weight:700;line-height:1.3}.kleyvi-coach-l2{margin-top:2px;font-size:.85em;line-height:1.3;color:var(--muted)}.kleyvi-coach-next{display:inline-block;margin-top:7px;padding:5px 9px;font-family:Fredoka,Segoe UI,system-ui,sans-serif;font-weight:700;font-size:.85em;line-height:1;border-radius:8px;background:linear-gradient(180deg,var(--gold),var(--gold-2))}.kleyvi-coach-next--hint{min-height:0;border:none;background:none;box-shadow:none;padding:0;border-radius:0;font-weight:600;font-size:.78em;text-transform:none;letter-spacing:normal;color:var(--muted)}.kleyvi-coach-next--hint:hover{transform:none;filter:none;color:var(--ink)}.kleyvi-coach-next--hint:active{transform:none;box-shadow:none}.kleyvi-coach-editable .kleyvi-coach-avatar,.kleyvi-coach-editable .kleyvi-coach-bubble{pointer-events:auto;cursor:grab;outline:1px dashed color-mix(in oklab,var(--pink) 70%,transparent);outline-offset:2px;touch-action:none;will-change:transform}.kleyvi-coach-editable[data-preview-viewport=mobile] .kleyvi-coach-avatar,.kleyvi-coach-editable[data-preview-viewport=mobile] .kleyvi-coach-bubble{outline-color:color-mix(in oklab,var(--gold-2) 85%,transparent)}.kleyvi-coach-editable .kleyvi-coach-avatar:active,.kleyvi-coach-editable .kleyvi-coach-bubble:active{cursor:grabbing}.kleyvi-coach-editable .kleyvi-coach-next{cursor:pointer}.kleyvi-coach-editor{position:fixed;right:12px;bottom:12px;z-index:50;width:min(260px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow-y:auto;padding:10px 12px 12px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:linear-gradient(180deg,#10121af7,#090b11fc);box-shadow:0 18px 36px #00000080;font-size:.76rem;line-height:1.35}.kleyvi-coach-editor-head{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.kleyvi-coach-editor-scene{color:var(--muted);font-size:.68rem}.kleyvi-coach-editor-viewport{display:flex;gap:6px;margin-top:4px}.kleyvi-coach-editor-viewport button{flex:1;min-width:0;padding:5px 8px;font-size:.68rem}.kleyvi-coach-editor-viewport button.active{background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1d1406}.kleyvi-coach-editor-source-row{margin-top:4px;color:var(--muted)}.kleyvi-coach-editor-source-row.active{color:var(--text)}.kleyvi-coach-editor-source-ok{color:color-mix(in oklab,var(--good, #5ad17a) 85%,white 5%)}.kleyvi-coach-editor-source-warn{color:var(--gold-2, #d9a441)}.kleyvi-coach-editor-size-presets{flex-direction:row;flex-wrap:wrap;gap:6px}.kleyvi-coach-editor-size-presets button{flex:1;min-width:0;padding:5px 8px;font-size:.68rem}.kleyvi-coach-editor-size-presets button.active{background:linear-gradient(180deg,var(--gold),var(--gold-2));color:#1d1406}.kleyvi-coach-editor-row{display:flex;flex-direction:column;gap:2px;margin-top:8px}.kleyvi-coach-editor-row select,.kleyvi-coach-editor-row input[type=range]{width:100%}.kleyvi-coach-editor-readout{display:flex;justify-content:space-between;gap:8px;margin-top:8px;color:var(--muted)}.kleyvi-coach-editor-draft-head{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.kleyvi-coach-editor-draft-badge{padding:1px 6px;border-radius:999px;background:color-mix(in oklab,var(--pink) 30%,transparent);color:var(--pink);font-size:.62rem;text-transform:none;letter-spacing:0}.kleyvi-coach-editor-row input[type=text],.kleyvi-coach-editor-row input[type=number],.kleyvi-coach-editor-row textarea{width:100%;padding:5px 7px;border-radius:6px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:var(--text);font:inherit}.kleyvi-coach-editor-xy{align-items:center}.kleyvi-coach-editor-xy-group{display:flex;flex:1;align-items:center;gap:4px}.kleyvi-coach-editor-xy-group input[type=number]{width:100%;min-width:0;padding:4px 5px;border-radius:6px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:var(--text);font:inherit}.kleyvi-coach-editor-row textarea{resize:vertical;min-height:44px}.kleyvi-coach-editor-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.kleyvi-coach-editor-actions button{min-width:0;padding:5px 8px;font-size:.68rem}.kleyvi-coach-editor-hint{margin:8px 0 0;color:var(--muted);font-size:.68rem}.tutorial-mobile-authoring{display:block}.kleyvi-mobile-frame{width:390px;max-width:100%;margin:6px auto 28px;border:10px solid #0a0b0f;border-radius:34px;box-shadow:0 0 0 2px var(--gold-2, #d9a441),0 22px 54px #0009;background:var(--felt-1, #0b0d13);overflow:hidden}.kleyvi-mobile-frame-label{text-align:center;font-size:.66rem;font-weight:800;letter-spacing:.1em;padding:5px 0;color:#101010;background:var(--gold-2, #d9a441)}.kleyvi-mobile-viewport{width:100%;height:760px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.kleyvi-mobile-viewport::-webkit-scrollbar{width:0;height:0;display:none}.kleyvi-mobile-viewport .tutorial-mobile-game{display:flex;flex-direction:column;gap:8px;padding:6px}.tutorial-mobile-game .table{grid-template-areas:". north ." "west center east" "south south south";grid-template-columns:minmax(44px,.68fr) minmax(128px,1.64fr) minmax(44px,.68fr);max-width:none;gap:10px;padding:18px 10px 16px}.tutorial-mobile-game .card{font-size:.96rem}.tutorial-mobile-game .card .card-center{font-size:1.55rem}.tutorial-mobile-game .seat.west,.tutorial-mobile-game .seat.east{min-height:228px}.tutorial-mobile-game .seathead{min-height:44px;margin-bottom:12px}.tutorial-mobile-game .center{justify-self:center;width:100%}.tutorial-mobile-game .center .trick{min-height:96px}.tutorial-mobile-game .south-area{justify-self:center;width:100%}.tutorial-mobile-game .table .hand-wrap{width:100%;align-items:center}.tutorial-mobile-game .table .hand-label,.tutorial-mobile-game .table .bid-current{width:100%;justify-content:center;text-align:center}.tutorial-mobile-game .hand{gap:0;justify-content:center;padding-inline:0}.tutorial-mobile-game .seat .back-reserve{min-height:70px}.kleyvi-mobile-viewport .tutorial-surface{min-height:480px;padding:14px 12px 12px;max-width:none;margin-inline:auto}.kleyvi-mobile-viewport .tutorial-surface .table{min-height:430px}.tutorial-mobile-game .tutorial-board-overlay{width:min(320px,calc(100% - 16px));padding:10px 12px}.tutorial-mobile-game .tutorial-board-overlay--stikkarar{width:min(340px,calc(100% - 12px));padding:12px 12px 14px}.tutorial-mobile-game .tutorial-board-overlay--stikkarar .tutorial-stikkari-cards{gap:6px 5px;margin:10px 0 4px;--card-w: 42px;--card-h: 60px}.tutorial-mobile-game .tutorial-board-overlay--stikkarar .tutorial-stikkari-cards .card{font-size:.72rem}.tutorial-mobile-game .tutorial-board-overlay--trump-choice{width:fit-content;padding:8px 12px}.tutorial-mobile-game .tutorial-board-actions button{min-width:96px}.tutorial-mobile-game .tutorial-board-actions button[data-tutorial-meld]{min-width:48px}.tutorial-mobile-game .winner-banner{font-size:1.1rem;margin-bottom:5px}.tutorial-mobile-game .center .trickinfo{font-size:.72rem}.tutorial-hand-wrap .hand{min-height:118px}.tutorial-banner{display:inline-block;margin-bottom:8px;padding:4px 10px;border-radius:6px;background:color-mix(in oklab,var(--warn, #c93) 30%,transparent);border:1px solid color-mix(in oklab,var(--warn, #c93) 55%,transparent);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.tutorial-step{margin:8px 0 12px;padding:10px 12px;border-radius:8px;background:#ffffff0f}.tutorial-step-topic{font-size:12px;text-transform:uppercase;letter-spacing:.04em;opacity:.7}.tutorial-step-text{margin-top:4px;font-size:15px}.tutorial-feedback{margin-top:6px;font-size:13px;color:var(--warn, #e0a93c)}.tutorial-help{margin-top:6px;font-size:12px;opacity:.8}.tutorial-board-overlay{position:absolute;left:50%;z-index:7;width:min(360px,calc(100% - 24px));padding:12px 14px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:linear-gradient(180deg,#10121af5,#090b11fa);box-shadow:0 18px 36px #0000006b;backdrop-filter:blur(8px);transform:translate(-50%)}.tutorial-board-overlay.top{top:14px}.tutorial-board-overlay.center{top:50%;transform:translate(-50%,-50%);min-height:0;display:block}.tutorial-board-overlay.bottom{bottom:122px}.tutorial-board-overlay[data-overlay-kind=result]{z-index:9}.tutorial-board-overlay-label{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--gold)}.tutorial-board-overlay-text{margin-top:4px;font-size:1rem;font-weight:800;line-height:1.25}.tutorial-board-overlay-help,.tutorial-overlay-note{margin-top:6px;font-size:.78rem;line-height:1.3;color:var(--muted)}.tutorial-overlay-note.warn{color:var(--gold)}.tutorial-stikkari-cards{display:grid;grid-template-columns:repeat(6,1fr);gap:6px 4px;margin:10px 0 4px;--card-w: 38px;--card-h: 56px}.tutorial-stikkari-cards .card{position:relative;cursor:default;font-size:.7rem;width:var(--card-w);height:var(--card-h)}.stikkari-slot{display:flex;justify-content:center}.tutorial-eyes-ref{display:flex;flex-direction:column;gap:3px;margin:8px auto 2px;max-width:360px}.tutorial-eyes-ref-title{font-weight:700;text-align:center;margin-bottom:4px;opacity:.9}.tutorial-eyes-ref .rules-cards.eygu{--card-w: 38px;--card-h: 54px;gap:8px 6px;padding-top:6px}.tutorial-eyes-ref .rules-card figcaption{font-size:10px}.tutorial-board-overlay--stikkarar{width:min(750px,calc(100% - 24px));padding:24px 28px 26px}.tutorial-board-overlay--stikkarar .tutorial-stikkari-cards{gap:12px 10px;margin:18px 0 6px;--card-w: 104px;--card-h: 148px}.tutorial-board-overlay--stikkarar .tutorial-stikkari-cards .card{font-size:1.3rem}.tutorial-board-overlay--trump-choice{width:fit-content;padding:10px 14px}.tutorial-board-overlay--trump-choice .tutorial-board-actions{margin-top:0}.tutorial-board-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px}.tutorial-board-actions button{min-width:122px}.tutorial-board-actions button[data-tutorial-meld]{min-width:56px}.tutorial-start-screen{display:flex;flex-direction:column;justify-content:center}.tutorial-start-screen .tutorial-start-heading{text-align:center;margin:0 0 4px;font-size:clamp(1.6rem,2.4vw + 1.2rem,2.1rem)}.tutorial-start-screen .kleyvi-coach-bubble{padding-bottom:12px}.kleyvi-coach-cta{display:block;width:100%;margin-top:12px;padding:12px 16px;min-height:44px;font-family:Fredoka,Segoe UI,system-ui,sans-serif;font-weight:700;font-size:1em;border-radius:8px;background:linear-gradient(180deg,var(--gold),var(--gold-2))}.kleyvi-start-coach-wrap{position:relative;margin-bottom:12px}.tutorial-game{display:flex;flex-direction:column;gap:12px}.tutorial-siderail{max-width:940px;margin-inline:auto}.tutorial-siderail .scorecell .value{position:relative;display:inline-block}.tutorial-score-delta{position:absolute;left:100%;margin-left:4px;top:50%;transform:translateY(-50%);font-size:.72em;font-weight:900;color:var(--gold, #d9a441);white-space:nowrap;pointer-events:none}.tutorial-meta{font-size:12px;opacity:.75;margin-bottom:8px}.tutorial-trick{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.tutorial-trick.empty{font-size:12px;opacity:.6;margin-bottom:10px}.tutorial-trick-who{font-size:11px;opacity:.7;margin-bottom:2px}.tutorial-hand-label{font-size:12px;opacity:.75;margin:6px 0 4px}.tutorial-hand{display:flex;flex-wrap:wrap;gap:8px;--card-w: 48px;--card-h: 72px}.card.tutorial-recommended{outline:3px solid color-mix(in oklab,var(--accent, #5ad) 80%,white 10%);outline-offset:2px}.card.tutorial-recommended.tutorial-recommended--gold{outline-color:var(--gold)}.tutorial-controls{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.tutorial-result{margin:12px 0;font-size:14px}.tutorial-foot{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.tutorial-progress{margin:6px 0 10px}.tutorial-progress-line{font-size:12px;opacity:.8;text-transform:uppercase;letter-spacing:.03em}.tutorial-pips{display:flex;gap:6px;margin-top:6px}.tutorial-pip{width:22px;height:6px;border-radius:3px;background:#ffffff2e}.tutorial-pip.done{background:color-mix(in oklab,var(--accent, #5ad) 70%,white 5%)}.tutorial-pip.current{background:var(--accent, #5ad);box-shadow:0 0 8px color-mix(in oklab,var(--accent, #5ad) 60%,transparent)}.tutorial-complete{margin:10px 0;padding:14px;border-radius:8px;background:#ffffff0f}.tutorial-complete-title{font-size:16px;font-weight:700;margin-bottom:6px}.tutorial-complete-summary{font-size:14px;margin-bottom:12px}@media(max-width:640px){.tutorial-start-screen{min-height:calc(100dvh - 150px)}.tutorial-surface{min-height:clamp(540px,88dvh,700px);padding:14px 12px 12px;max-width:none;margin-inline:auto}.tutorial-surface .table{min-height:clamp(480px,68dvh,580px);padding:18px 10px 16px;gap:10px}.tutorial-board-overlay{width:min(320px,calc(100% - 16px));padding:10px 12px}.tutorial-board-overlay.bottom{bottom:112px}.tutorial-board-overlay-text{font-size:.94rem}.tutorial-board-actions button{min-width:104px}.tutorial-surface .tutorial-board-overlay--stikkarar{width:min(340px,calc(100% - 12px));padding:12px 12px 14px}.tutorial-surface .tutorial-board-overlay--stikkarar .tutorial-stikkari-cards{gap:6px 5px;margin:10px 0 4px;--card-w: 42px;--card-h: 60px}.tutorial-surface .tutorial-board-overlay--stikkarar .tutorial-stikkari-cards .card{font-size:.72rem}.tutorial-surface .tutorial-board-overlay--trump-choice{width:fit-content;padding:8px 12px}.tutorial-surface .tutorial-board-actions button[data-tutorial-meld]{min-width:48px}.tutorial-surface .winner-banner{font-size:1.1rem;margin-bottom:5px}.tutorial-surface .center .trickinfo{font-size:.72rem}.kleyvi-coach-bubble{padding:6px 10px 7px 13px}.kleyvi-coach-next{padding:4px 7px}}.site-footer{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);text-align:center}.site-footer a{color:var(--muted);font-size:.9rem;text-decoration:none}.site-footer-sep{margin:0 10px;color:var(--dim)}.site-footer a:hover{color:var(--ink);text-decoration:underline}.feedback-callout{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:var(--muted)}.feedback-callout p{margin:0;line-height:1.45;color:inherit}.feedback-callout button{flex:0 0 auto}.feedback-inline{justify-content:flex-start;padding:2px 0 0;font-size:.88rem}.setup-footer-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.setup-footer-row>.feedback-inline{margin-top:0;justify-self:start}.feedback-inline .feedback-open{min-height:0;min-width:0;padding:0;background:transparent;border:0;box-shadow:none;color:var(--muted);text-transform:none;font:inherit;text-decoration:underline}.feedback-inline .feedback-open:focus-visible,.feedback-inline .feedback-open:hover{transform:none;text-decoration:underline;color:var(--ink);filter:none}.setup-footer-row>.site-footer{justify-self:center;margin-top:0;padding-top:0;border-top:0}.setup-footer-row:after{content:"";justify-self:stretch}.feedback-rules{padding:14px 16px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:radial-gradient(120% 120% at 0% 0%,rgba(255,255,255,.06),transparent 60%),linear-gradient(180deg,#161922f7,#0e1018fc);box-shadow:var(--shadow);color:var(--ink)}.feedback-modal[hidden]{display:none}.feedback-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px}.feedback-backdrop{position:absolute;inset:0;background:#000000bd;backdrop-filter:blur(4px)}.feedback-dialog{position:relative;width:min(100%,720px);max-height:min(90dvh,820px);overflow:auto;padding:18px 18px 16px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:radial-gradient(140% 120% at 0% 0%,rgba(255,255,255,.05),transparent 58%),linear-gradient(180deg,#12151efa,#0a0c12fc);box-shadow:0 28px 70px #0000008f;z-index:1}.feedback-dialog h2{margin:0 0 8px}.feedback-intro{margin:0 0 14px;color:var(--muted);line-height:1.45}.feedback-close{position:absolute;top:12px;right:12px;min-width:36px;min-height:36px;padding:0;border-radius:999px;font-size:1.1rem}.feedback-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.feedback-tab{min-height:38px;padding:8px 12px;border-radius:999px;background:#ffffff0d;color:var(--muted);border-color:#ffffff1f;box-shadow:none;text-transform:none}.feedback-tab.is-active{color:#18110a;background:linear-gradient(180deg,var(--gold),var(--gold-2));border-color:#ffffff2e}.feedback-form{display:grid;gap:12px}.feedback-panel{display:grid;gap:10px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff09}.feedback-panel label{display:grid;gap:6px;color:var(--ink);font-size:.92rem;font-weight:700}.feedback-panel-intro{margin:0;color:var(--muted);font-size:.92rem;line-height:1.45}.feedback-panel input,.feedback-panel textarea,.feedback-panel select{width:100%;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:10px 11px;background:#080a0ff2;color:var(--ink);font:inherit;resize:vertical}.feedback-panel select{padding-right:38px;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,rgba(237,240,255,.78) 50%),linear-gradient(135deg,rgba(237,240,255,.78) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px),100% 0;background-size:6px 6px,6px 6px,2.5em 2.5em;background-repeat:no-repeat;color-scheme:dark}.feedback-panel input::placeholder,.feedback-panel textarea::placeholder{color:color-mix(in oklab,var(--muted) 78%,white 8%)}.feedback-note{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45}.feedback-note.warn,.feedback-status.warn{color:var(--pink)}.feedback-actions{display:flex;flex-wrap:wrap;gap:10px}.feedback-status{min-height:1.2em;margin:0;color:var(--gold-2);font-size:.9rem}.rules-page{max-width:860px;margin:0 auto;padding:6px 4px 28px;line-height:1.55}.rules-page h2{margin:0 0 10px}.rules-lead{margin:0 0 10px;color:var(--muted)}.rules-accordion{display:grid;gap:12px;margin-top:16px}.rules-accordion-item{overflow:clip;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:radial-gradient(110% 120% at 0% 0%,rgba(255,255,255,.04),transparent 52%),linear-gradient(180deg,#161922f5,#0e1018fc);box-shadow:var(--shadow)}.rules-accordion-item summary{list-style:none;cursor:pointer;padding:14px 16px;color:var(--ink);font-size:1rem;font-weight:800}.rules-accordion-item summary::-webkit-details-marker{display:none}.rules-accordion-item summary:after{content:"＋";float:right;color:var(--gold-2)}.rules-accordion-item[open] summary:after{content:"−"}.rules-accordion-item[open] summary{border-bottom:1px solid rgba(255,255,255,.08)}.rules-accordion-body{padding:14px 16px 16px}.rules-accordion-body p:first-child{margin-top:0}.rules-accordion-body p:last-child{margin-bottom:0}.rules-list,.rules-variant-list{margin:8px 0 12px;padding-left:22px}.rules-list li,.rules-variant-list li{margin:4px 0}.rules-variant-list li strong{color:var(--ink)}.rules-table-wrap{overflow-x:auto;margin:12px 0 14px}.rules-table{width:100%;border-collapse:collapse;font-size:.86rem}.rules-table th,.rules-table td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.09);vertical-align:top}.rules-table th{color:var(--muted);font-weight:700;text-align:left}.rules-table td:first-child{color:var(--gold-2);font-weight:800;white-space:nowrap}.privacy{max-width:720px;margin:0 auto;padding:6px 4px 28px;line-height:1.55;color:var(--ink)}.privacy-back{display:inline-block;margin-bottom:14px;color:var(--muted);font-size:.92rem;text-decoration:none}.privacy-back:hover{color:var(--ink);text-decoration:underline}.privacy h2{margin:0 0 14px}.privacy h3{margin:22px 0 8px;color:var(--gold-2)}.privacy ul{margin:8px 0;padding-left:22px}.privacy li{margin:4px 0}.hagtol{max-width:820px;margin:0 auto;padding:6px 4px 28px}.hagtol h2{margin:0 0 14px}.hagtol-lead,.hagtol-note{color:var(--muted);line-height:1.55}.hagtol-grid{display:grid;gap:12px;margin:18px 0}.hagtol-grid-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.hagtol-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.hagtol-grid-splits{grid-template-columns:repeat(2,minmax(0,1fr))}.hagtol-card,.hagtol-panel{position:relative;background:linear-gradient(180deg,#161922f7,#0e1018fc),var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.hagtol-card{padding:16px 14px}.hagtol-label{color:var(--dim);font-size:.78rem;font-weight:900;letter-spacing:.03em;text-transform:uppercase}.hagtol-value{margin-top:8px;color:var(--gold-2);font-size:clamp(1.7rem,5vw,2.35rem);font-weight:900;line-height:1;text-shadow:0 2px 0 rgba(82,62,16,.95)}.hagtol-panel{padding:16px 14px 14px}.hagtol-section{display:grid;gap:12px;margin:18px 0}.hagtol-section>h3{margin:0;color:var(--ink);font-size:1rem}.hagtol-panel h3{margin:0 0 12px;color:var(--ink);font-size:1rem}.hagtol-rows{display:grid;gap:8px}.hagtol-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.hagtol-row:first-child{padding-top:0;border-top:0}.hagtol-row span{color:var(--muted)}.hagtol-row strong{color:var(--ink);font-size:1rem}@media(max-width:640px){.hagtol-grid-metrics,.hagtol-grid-4,.hagtol-grid-splits{grid-template-columns:1fr}.feedback-callout{flex-direction:column;align-items:stretch}.feedback-dialog{padding:16px 14px 14px}.rules-table th,.rules-table td{white-space:nowrap}}@media(max-width:640px){.setup-footer-row{grid-template-columns:1fr;justify-items:center;gap:10px}.setup-footer-row>.site-footer{justify-self:center;text-align:center;order:1}.setup-footer-row>.feedback-inline{justify-self:center;text-align:center;order:2;width:100%}.setup-footer-row:after{display:none}}@media(max-width:640px){.setup-footer-row{grid-template-columns:1fr;justify-items:center;gap:10px}.setup-footer-row>.site-footer{justify-self:center;text-align:center;order:1}.setup-footer-row>.feedback-inline{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap;width:100%;order:2;text-align:center}.setup-footer-row>.feedback-inline p{margin:0;white-space:nowrap}.setup-footer-row>.feedback-inline .feedback-open{white-space:nowrap}.setup-footer-row:after{display:none}}.admin-hagtol-windows{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-breakdown{display:flex;flex-direction:column;gap:2px;padding:2px 0 10px;font-size:.78rem;color:var(--muted)}.admin-lifetime-rows .hagtol-row{padding-bottom:2px}.admin-section-heading{margin:24px 0 10px;font-size:.95rem}.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:24px}.admin-table{width:100%;border-collapse:collapse;font-size:.82rem;white-space:nowrap}.admin-table th{text-align:left;padding:6px 10px 6px 0;border-bottom:1px solid var(--border, #ccc);color:var(--muted);font-weight:600}.admin-table td{padding:5px 10px 5px 0;border-bottom:1px solid var(--border, #eee);color:var(--ink)}.admin-table tbody tr:last-child td{border-bottom:none}@media(max-width:640px){.admin-hagtol-windows{grid-template-columns:1fr}}.topbar-glyph{width:34px;height:22px;flex:none;filter:drop-shadow(0 3px 8px rgba(0,0,0,.5))}.logo-link{display:inline-flex;align-items:center;gap:9px}#app:has(.setup-shell) .topbar{display:none}.start-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px}.brand-crop{position:relative;top:20px}.brand-glyph{width:238px;height:155px;flex:none;filter:drop-shadow(0 10px 22px rgba(0,0,0,.5))}.brand-word{font-weight:700;font-size:2.4rem;line-height:1;color:#fff;letter-spacing:.02em;text-shadow:0 2px 0 #67330f,0 0 24px color-mix(in oklab,var(--gold-2) 40%,transparent)}.brand-tag{font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}@media(max-width:560px){.brand-glyph{width:168px;height:110px}.brand-crop{top:12px}.brand-word{font-size:1.95rem}}.deco{position:absolute;inset:0 0 auto;height:260px;z-index:0;overflow:hidden;pointer-events:none}.deco .ds{position:absolute;width:30px;height:30px}.deco .w{fill:#fff;opacity:.05}.deco .r{fill:#d8232a;opacity:.06}.setup-shell>*:not(.deco),.lobby-shell>*:not(.deco){position:relative;z-index:1}.lane-title{display:flex;align-items:center;gap:10px}.livepill{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1px solid color-mix(in oklab,var(--pink) 45%,transparent);border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.02em;text-transform:none;color:var(--pink);white-space:nowrap}.livepill .dot{width:7px;height:7px;border-radius:50%;background:var(--pink);box-shadow:0 0 color-mix(in oklab,var(--pink) 70%,transparent);animation:livepill-pulse 2s infinite}@keyframes livepill-pulse{0%{box-shadow:0 0 color-mix(in oklab,var(--pink) 60%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){.livepill .dot{animation:none}}.learn{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:16px}.learn-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 20px;border:1px solid color-mix(in oklab,var(--pink) 42%,rgba(255,255,255,.2));border-radius:8px;background:#ffffff0a;box-shadow:0 3px #00000059;color:var(--ink);font-weight:700;text-decoration:none;white-space:nowrap}.learn-btn:hover{border-color:color-mix(in oklab,var(--pink) 70%,transparent);color:var(--pink)}.learn-ico{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--pink);color:#030406;font-size:.8rem;font-weight:700}.learn-note{color:var(--muted);font-size:.82rem}@media(max-width:560px){.learn{flex-direction:column;gap:8px;text-align:center}}.setup-shell button,.setup-shell .learn-btn,.lobby-shell button{white-space:nowrap}.lobby-main .lseat,.lseat{background:radial-gradient(130% 120% at 0% 0%,rgba(255,255,255,.03),transparent 58%),#00000042}.lseat.empty{border-style:solid;opacity:1;background:radial-gradient(130% 120% at 0% 0%,color-mix(in oklab,#1f7a44 22%,transparent),transparent 58%),#00000042}.lseat.mine{background:radial-gradient(130% 120% at 0% 0%,color-mix(in oklab,var(--gold) 22%,transparent),transparent 60%),#00000042}
