:root{--room: #12351f;--felt: #1b5a30;--wood: #6b4226;--rail: #3f2716;--paper: #fffaf0;--ink: #1d1a16;--red: #e0453a;--blue: #1e7cc2;--green: #2e9b4d;--yellow: #f4c21b;--chalk: #f6ead2;--dim: rgba(246, 234, 210, .72);font-family:Rubik,system-ui,sans-serif;color:var(--chalk)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 40%,var(--felt),var(--room) 75%)}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:8px}h1,h2{margin:0;font-weight:400}.hint{color:var(--dim);font-size:14px}.card{position:relative;width:calc(76px * var(--k, 1));height:calc(106.4px * var(--k, 1));border-radius:calc(6.8px * var(--k, 1));box-shadow:0 1px 2px #00000059,0 calc(3px * var(--k, 1)) calc(8px * var(--k, 1)) #00000040;transition:transform .1s ease-out}.card>svg{display:block;width:100%;height:100%}.card.empty{background:#00000024;outline:1.5px dashed rgba(246,234,210,.28);outline-offset:-1.5px;box-shadow:none}.deck-art{width:100%;height:100%}.setup{max-width:680px;margin:0 auto;padding:48px 16px 64px}.setup h1{font-family:Alfa Slab One,serif;font-size:clamp(44px,9vw,72px);color:var(--paper);letter-spacing:1px;text-shadow:3px 3px 0 var(--red)}.lede{font-size:18px;margin:8px 0 28px;max-width:34em}.decks{--k: 1.15;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border:0;padding:0;margin:0 0 24px}.decks legend,.seat-choice legend{font-weight:500;margin-bottom:8px;display:flex;align-items:center;gap:8px}.decks label{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0;border-radius:14px;cursor:pointer}.decks label .card{opacity:.5}.decks label:has(input:checked){background:#00000038}.decks label:has(input:checked) .card{opacity:1;box-shadow:0 0 0 4px var(--paper)}.decks label:has(input:focus-visible),.choices label:has(input:focus-visible){outline:3px solid var(--yellow)}.decks input,.choices input[type=radio]{position:absolute;opacity:0;pointer-events:none}.seat-choice{border:0;border-top:1px solid rgba(246,234,210,.18);margin:0;padding:14px 0}.choices{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.choices label{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:#00000038;cursor:pointer}.choices label:has(input:checked){background:var(--paper);color:var(--ink)}.choices label.off{opacity:.4;cursor:not-allowed}.choices input[type=number]{width:72px;font:inherit;border:0;border-radius:6px;padding:2px 6px}.go{margin-top:16px;padding:12px 40px;border-radius:12px;background:var(--red);color:var(--paper);font-family:Alfa Slab One,serif;font-size:24px;box-shadow:0 4px #8f241d}.go:active{transform:translateY(2px);box-shadow:0 2px #8f241d}.badge{display:inline-grid;place-items:center;width:20px;height:28px;padding:1px;background:#fff;border-radius:3px;flex:none}.game{display:grid;grid-template-columns:1fr;gap:16px;min-height:100vh;padding:16px}.game.with-feed{grid-template-columns:minmax(0,1fr) 300px}@media(max-width:1600px){.with-feed .player.left,.with-feed .player.right{--k: .5}.with-feed .dutch{--k: .75}}.table{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:". top ." "left dutch right" "bottom bottom bottom";gap:10px 24px;align-items:center;padding:14px 24px 16px;border-radius:28px;border:10px solid var(--rail);background:repeating-linear-gradient(90deg,rgba(0,0,0,.07) 0 3px,transparent 3px 47px),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 19px),linear-gradient(180deg,#7a4d2c,var(--wood) 45%,#5f3a20);box-shadow:inset 0 0 50px #0006,0 10px 30px #0006}.player{display:flex;flex-direction:column;align-items:center;gap:8px}.player.top{grid-area:top;--k: .62}.player.left{grid-area:left;--k: .62}.player.right{grid-area:right;--k: .62}.player.bottom{grid-area:bottom;--k: 1.05}.plate{display:flex;align-items:center;gap:8px;padding:3px 12px 3px 4px;border-radius:999px;background:#00000047;font-size:15px}.plate .name{font-weight:500}.plate .score{font-family:Alfa Slab One,serif;color:var(--paper);min-width:2ch;text-align:right}.plate .round{color:var(--dim);font-size:13px;margin-left:4px}.piles{display:flex;align-items:stretch;gap:calc(14px * var(--k))}.pile{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px}.pile>button,.pile .fan>button{position:relative;border-radius:.5em}.pile small{font-size:11px;color:var(--dim);margin-top:auto}.player:not(.bottom) .pile small{display:none}.chip{position:absolute;top:-7px;right:-7px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;display:grid;place-items:center;background:var(--paper);color:var(--ink);font:12px Alfa Slab One,serif;box-shadow:0 1px 3px #00000073;z-index:2}.player:not(.bottom) .chip{transform:scale(.8);top:-9px;right:-9px}kbd{position:absolute;right:-6px;bottom:-6px;padding:1px 5px;border-radius:4px;background:var(--ink);color:var(--paper);font:11px Rubik,sans-serif;border-bottom:2px solid #000;z-index:2}.fan{display:flex;flex-direction:column;border-radius:calc(6.8px * var(--k));height:calc(106.4px * var(--k) * 1.56)}.fan>*+*{margin-top:calc(106.4px * var(--k) * (var(--step, .28) - 1))}.dutch{grid-area:dutch;--k: .85;justify-self:center;display:grid;grid-template-columns:repeat(4,auto);gap:8px 10px;padding:14px;border-radius:18px;background:#0000001f}.dutch>button,.dutch>div{border-radius:.5em}.slot{width:calc(76px * var(--k));height:calc(106.4px * var(--k));border-radius:8px;background:#00000024;display:grid;place-items:center;font:22px Alfa Slab One,serif;color:#ffffff29}.picked .card{transform:translateY(calc(-8px * var(--k, 1)));box-shadow:0 0 0 4px var(--paper),0 .6em .8em #00000059}.target{box-shadow:0 0 0 4px var(--yellow)}.lifted{opacity:.3}.flying{position:fixed;left:0;top:0;transform-origin:0 0;pointer-events:none;z-index:10}.flying .card{box-shadow:0 14px 18px #00000073}.toast{position:absolute;left:50%;bottom:210px;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:8px 16px;border-radius:8px;z-index:5}.quit{position:absolute;right:18px;top:12px;font-size:13px;color:var(--dim);text-decoration:underline}.feed{background:#00000040;border-radius:18px;padding:18px 16px;overflow-y:auto;max-height:calc(100vh - 32px);position:sticky;top:16px}.feed h2{font-family:Alfa Slab One,serif;font-size:22px;color:var(--paper)}.stats{margin:4px 0 14px;font-size:14px;color:var(--dim)}.err{color:#ffc2b8;font-size:13px}.feed ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.feed li{border-left:3px solid rgba(244,194,27,.4);padding:4px 0 4px 10px;font-size:13px}.feed li:first-child{border-left-color:var(--yellow)}.feed li.stale{opacity:.55}.meta{color:var(--dim);margin-bottom:4px}.meta b{color:var(--chalk);font-weight:500}.prob{position:relative;display:grid;grid-template-columns:3ch 1fr;gap:6px;padding:2px 4px;line-height:1.35}.prob .bar{position:absolute;inset:0 auto 0 0;background:#f4c21b38;border-radius:3px}.prob span:not(.bar){position:relative}.prob .pct{font-variant-numeric:tabular-nums;color:var(--paper)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a141099;display:grid;place-items:center;padding:16px;z-index:20}.sheet{background:var(--paper);color:var(--ink);border-radius:18px;padding:24px 28px;min-width:min(380px,100%)}.sheet h2{font-family:Alfa Slab One,serif;font-size:28px;color:var(--red)}.sheet table{width:100%;border-collapse:collapse;margin:16px 0 4px}.sheet th,.sheet td{text-align:right;padding:6px 8px}.sheet th:first-child,.sheet td:first-child{text-align:left;display:flex;align-items:center;gap:8px}.sheet .hint{color:#6b6457}@media(min-width:1700px){.player.top,.player.left,.player.right{--k: .8}.player.bottom{--k: 1.3}.dutch{--k: 1.05}}@media(max-width:1240px){.game.with-feed{grid-template-columns:1fr}.feed{position:static;max-height:420px}}@media(max-width:900px){.table{grid-template-columns:1fr 1fr;grid-template-areas:"top top" "left right" "dutch dutch" "bottom bottom";padding:14px 10px;border-width:6px}.player.bottom{--k: .72}.dutch{--k: .62}}@media(max-width:560px){.game{padding:8px}.table{grid-template-columns:1fr;grid-template-areas:"top" "left" "right" "dutch" "bottom"}.player.top,.player.left,.player.right{--k: .5}.player.bottom{--k: .6}.decks{--k: .8}}@media(prefers-reduced-motion:reduce){.card{transition:none}.flying{display:none}}@media(hover:none){kbd{display:none}}
