:root{--table:#13234a;--table-deep:#0e1a33;--table-edge:#24355e;--royal:#1d3d88;--bronze:#8b6135;--mahogany:#4a2414;--felt:#15563a;--bone:#f4eee2;--bone-edge:#c9bfa9;--pip:#1d2433;--back:#1d3d88;--back-edge:#41579f;--marigold:#dab84f;--gold-hi:#f3e28d;--gold-lo:#b8862e;--on-gold:#2a1409;--hibiscus:#c2272d;--team-0:#5cc8bd;--team-1:#b8a2ff;--ink:#f4eee2;--mist:#a9b8d8;--radius-s:12px;--radius-l:20px;--font:"Bricolage Grotesque", ui-rounded, "Segoe UI", system-ui, sans-serif;--display:Montserrat, "Bricolage Grotesque", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--table-deep);color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-size:17px;line-height:1.45;overflow-x:hidden}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--marigold);outline-offset:2px}.screen{max-width:480px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 12px) 20px calc(env(safe-area-inset-bottom) + 20px);flex-direction:column;gap:28px;margin:0 auto;display:flex}.screen.center{justify-content:center}.title{letter-spacing:-.02em;font-variation-settings:"opsz" 96;margin:0;font-size:56px;font-weight:800;line-height:.95}.title.small{font-size:36px}.h2{margin:0;font-size:22px;font-weight:600}.lede{color:var(--mist);max-width:34ch;margin:0}.fine{color:var(--mist);margin:0;font-size:14px}.error{color:#ffd9de;margin:0}.stack{flex-direction:column;gap:16px;display:flex}.row{gap:12px;display:flex}.bar{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.who{font-weight:600}.link{color:var(--mist);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:8px 0;text-decoration:underline}.btn{border-radius:var(--radius-s);cursor:pointer;touch-action:manipulation;border:0;min-height:52px;padding:14px 20px;font-weight:600}.btn.primary{background:var(--marigold);color:#241a02}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 2px var(--table-edge);background:0 0}.btn.wide{width:100%}.btn:disabled{opacity:.45;cursor:default}.field{color:var(--mist);flex-direction:column;gap:6px;font-size:15px;display:flex}.field input{font:inherit;color:var(--ink);background:var(--table);border:2px solid var(--table-edge);border-radius:var(--radius-s);padding:12px 14px;font-size:20px}.code-input{letter-spacing:.3em;font-weight:600}.mark{height:92px;position:relative}.mark-tile{background:var(--bone);width:44px;height:88px;box-shadow:inset 0 0 0 2px var(--bone-edge);border-radius:8px;position:absolute;top:0;left:0}.mark-tile:after{content:"";background:var(--bone-edge);height:2px;position:absolute;top:43px;left:8px;right:8px}.mark-tile.tilt{background:var(--marigold);box-shadow:none;top:12px;left:40px;transform:rotate(18deg)}.mark-tile.tilt:after{background:#c88e12}.lobby{flex-direction:column;gap:14px;display:flex}.code-card{flex-direction:column;gap:8px;display:flex}.code-label{color:var(--mist);font-size:15px}.code{cursor:pointer;background:0 0;border:0;gap:6px;padding:0;display:flex}.code span{aspect-ratio:.62;background:var(--bone);max-width:54px;color:var(--pip);border-radius:8px;flex:1;place-items:center;font-size:32px;font-weight:800;display:grid}.seats{flex-direction:column;gap:10px;display:flex}.seat{border-radius:var(--radius-s);background:var(--table);justify-content:space-between;align-items:center;padding:16px;display:flex}.seat.open{border:2px dashed var(--table-edge);color:var(--mist);background:0 0}.seat-name{font-weight:600}.seat-state{color:var(--mist);font-size:15px}.rules-summary p{color:var(--mist);margin:0;font-size:15px}.watchers{flex-direction:column;gap:8px;display:flex}.watcher{justify-content:space-between;align-items:center;gap:12px;display:flex}.watcher-actions{gap:16px;display:flex}.actions{flex-direction:column;gap:10px;margin-top:auto;display:flex}.ruleset{color:var(--mist);box-shadow:inset 0 0 0 1px var(--table-edge);border-radius:6px;padding:4px 8px;font-size:13px}.ruleset.dev{color:#ffd9de;box-shadow:inset 0 0 0 1px var(--hibiscus)}.table{max-width:520px;height:100dvh;padding:calc(env(safe-area-inset-top) + 6px) 12px calc(env(safe-area-inset-bottom) + 10px);grid-template-rows:auto auto 1fr auto auto auto;grid-template-columns:minmax(0,1fr);gap:8px;margin:0 auto;display:grid;overflow:hidden}.round{color:var(--mist);font-size:15px}.opponents{gap:8px;display:flex}.panel{border-radius:var(--radius-s);background:var(--table);flex:1;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 14px;transition:box-shadow .16s;display:grid;box-shadow:inset 0 0 0 2px #0000}.panel.on-turn{box-shadow:inset 0 0 0 2px var(--marigold)}.panel-id{flex-direction:column;display:flex}.panel-name{font-weight:600}.panel-status{color:var(--hibiscus);font-size:13px}.backs{grid-column:1;align-items:center;gap:3px;display:flex}.more{color:var(--mist);font-size:13px}.score{font-variant-numeric:tabular-nums;grid-area:1/2/span 2;font-size:30px;font-weight:800}.score-of{color:var(--mist);font-size:17px;font-weight:600}.score-pts{color:var(--mist);text-align:right;font-size:12px;font-weight:400;display:block}.felt{border-radius:var(--radius-l);background:var(--table);box-shadow:inset 0 0 0 6px var(--table-edge), inset 0 0 0 7px #0c1f3a;min-height:0;position:relative;overflow:hidden}.board-canvas{position:absolute;inset:10px}.board-canvas canvas{display:block}.hint{color:var(--mist);pointer-events:none;place-items:center;margin:0;display:grid;position:absolute;inset:0}.card{background:var(--bone);width:min(92%,360px);color:var(--pip);border-radius:var(--radius-l);flex-direction:column;gap:12px;padding:20px;display:flex;position:absolute;top:50%;left:50%;translate:-50% -50%}.card .fine,.card .lede{color:#5a5547}.card-title{margin:0;font-size:24px;line-height:1.1}.card-points{color:#a06d00;margin:0;font-size:44px;font-weight:800}.reveal{flex-direction:column;gap:6px;display:flex}.reveal-row{justify-content:space-between;align-items:center;gap:8px;font-size:15px;display:flex}.reveal-tiles{flex-wrap:wrap;justify-content:flex-end;gap:2px;display:flex}.final{flex-direction:column;gap:4px;display:flex}.final-row{justify-content:space-between;font-size:18px;display:flex}.final-score{font-variant-numeric:tabular-nums;font-weight:800}.turnbar{min-height:40px;color:var(--mist);align-items:center;gap:10px;padding:0 4px;display:flex}.turnbar.mine{color:var(--marigold);font-weight:600}.turnbar.low .ring-fg{stroke:var(--hibiscus)}.ring{width:30px;height:30px;rotate:-90deg}.ring-bg{fill:none;stroke:var(--table-edge);stroke-width:4px}.ring-fg{fill:none;stroke:var(--marigold);stroke-width:4px;stroke-linecap:round;transition:stroke-dasharray .2s linear}.secs{font-variant-numeric:tabular-nums;margin-left:auto}.me-row .panel{grid-template-rows:auto}.hand-area{flex-direction:column;gap:8px;min-width:0;display:flex}.chooser{flex-wrap:wrap;gap:8px;display:flex}.chooser .btn{flex:1}.hand{scrollbar-width:none;justify-content:safe center;gap:6px;min-width:0;padding:10px 2px 4px;display:flex;overflow-x:auto}.hand-tile{cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:9px;flex:none;padding:0;transition:translate .14s,opacity .14s}.hand-tile svg{display:block}.hand.active .hand-tile{opacity:.5}.hand.active .hand-tile.playable{opacity:1;translate:0 -8px}.hand.active .hand-tile.playable svg rect{stroke:var(--marigold);stroke-width:3px}.hand-tile.chosen{translate:0 -14px!important}.banner{top:env(safe-area-inset-top);z-index:20;background:var(--hibiscus);color:#fff;text-align:center;padding:8px 12px;font-size:15px;font-weight:600;position:fixed;left:0;right:0}.notice{left:50%;bottom:calc(env(safe-area-inset-bottom) + 132px);z-index:20;background:var(--bone);color:var(--pip);text-align:center;border-radius:999px;max-width:calc(100% - 32px);padding:10px 16px;font-size:15px;position:fixed;translate:-50%}.notice.warn{background:#ffd9de}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.table-types{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.table-types legend{color:var(--mist);margin-bottom:6px;padding:0;font-size:15px}.table-type{border-radius:var(--radius-s);background:var(--table);cursor:pointer;align-items:center;gap:14px;padding:12px 14px;display:flex;box-shadow:inset 0 0 0 2px #0000}.table-type:has(input:focus-visible){outline:3px solid var(--marigold);outline-offset:2px}.table-type input{opacity:0;pointer-events:none;position:absolute}.seat-dots{grid-template-columns:repeat(2,10px);justify-content:center;gap:4px;width:24px;display:grid}.dot{background:var(--bone);border-radius:50%;width:10px;height:10px}.dot.team-0{background:var(--team-0)}.dot.team-1{background:var(--team-1)}.table-type-text{flex-direction:column;display:flex}.table-type-label{font-weight:600}.table-type-note{color:var(--mist);font-size:14px}.team-group{border-left:3px solid var(--team-0);flex-direction:column;gap:8px;padding-left:12px;display:flex}.team-group.team-1{border-left-color:var(--team-1)}.team-head{color:var(--mist);font-size:14px}.top-area{flex-direction:column;gap:8px;display:flex}.team-strip{grid-template-columns:1fr 1fr;gap:8px;display:grid}.team-score{border-radius:var(--radius-s);background:var(--table);border-left:3px solid var(--team-0);justify-content:space-between;align-items:center;gap:8px;padding:6px 12px;display:flex}.team-score.team-1{border-left-color:var(--team-1)}.team-score-name{font-size:14px;font-weight:600;line-height:1.2}.team-score.ours .team-score-name{color:var(--ink)}.team-score:not(.ours) .team-score-name{color:var(--mist)}.opponents.four{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.panel.compact{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:8px 10px;display:flex}.panel.compact .panel-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;overflow:hidden}.panel-sub{color:var(--mist);align-items:center;gap:8px;font-size:13px;display:flex}.tiles-left{font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:inline-flex}.partner-tag{color:var(--team-0);font-weight:600}.panel.compact.team-0{border-left:3px solid var(--team-0)}.panel.compact.team-1{border-left:3px solid var(--team-1)}.panel.compact.team-1 .partner-tag{color:var(--team-1)}.score.small{font-size:20px}.score.small .score-of{font-size:13px}.score.small .score-pts{font-size:11px}.panel.compact .score.small{align-self:flex-end;margin-top:-18px}.card-sub{margin:-4px 0 0;font-weight:600}.final-row.winner{font-weight:700}.lang-root{display:contents}.controls,.bar-end{align-items:center;gap:8px;display:inline-flex}.bar-end{gap:14px}.corner{top:calc(env(safe-area-inset-top) + 12px);position:absolute;right:16px}.screen.center{position:relative}.chip{background:var(--table);min-width:40px;height:34px;box-shadow:inset 0 0 0 1.5px var(--table-edge);color:var(--ink);letter-spacing:.04em;cursor:pointer;touch-action:manipulation;border:0;border-radius:999px;place-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-grid}.chip.icon{width:40px;padding:0}.chip.off{color:var(--mist);opacity:.7}.btn.small{align-items:center;gap:6px;min-height:40px;padding:8px 14px;font-size:15px;display:inline-flex}.btn.pass{letter-spacing:.04em;font-size:22px;font-weight:800}.shout{pointer-events:none;z-index:5;flex-direction:column;justify-content:center;align-items:center;animation:1.3s ease-out forwards shout-life;display:flex;position:absolute;inset:0}.shout-text{letter-spacing:-.01em;text-align:center;color:var(--bone);-webkit-text-stroke:2px #0c1f3a;paint-order:stroke fill;text-shadow:0 4px #0c1f3a,0 10px 24px #0000008c;padding:0 12px;font-weight:800;line-height:.9;animation:.5s cubic-bezier(.2,1.8,.4,1) both shout-pop}.shout.m .shout-text{font-size:54px}.shout.l .shout-text{font-size:68px}.shout.xl .shout-text{font-size:92px}.shout.gold .shout-text{color:var(--marigold)}.shout.red .shout-text{color:#ff6b7f}.shout-sub{color:var(--ink);text-shadow:0 2px 6px #0009;margin-top:8px;font-size:20px;font-weight:800}@keyframes shout-pop{0%{opacity:0;rotate:-8deg;scale:3.2}60%{opacity:1}to{rotate:-4deg;scale:1}}@keyframes shout-life{0%,70%{opacity:1}to{opacity:0;translate:0 -24px}}.danger-chips{pointer-events:none;z-index:3;flex-wrap:wrap;justify-content:center;gap:6px;width:max-content;max-width:calc(100% - 24px);display:flex;position:absolute;top:12px;left:50%;translate:-50%}.danger-chip{background:var(--marigold);color:#241a02;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:800;animation:.9s ease-in-out infinite chip-pulse}.danger-chip.level-2{background:var(--hibiscus);color:#fff;animation-duration:.5s}.danger-chip.yours{box-shadow:0 0 0 3px #fff}.danger-chip.level-3{color:#ff8a99;background:#0c1f3a;animation:none;box-shadow:inset 0 0 0 1.5px #ff8a99}@keyframes chip-pulse{50%{scale:1.08}}.felt.tremble-1{animation:.32s linear infinite tremble}.felt.tremble-2{box-shadow:inset 0 0 0 6px var(--table-edge), inset 0 0 0 7px #0c1f3a, inset 0 0 40px #e0475e8c;animation:.18s linear infinite tremble-hard}@keyframes tremble{0%,to{translate:0}25%{translate:1.2px -.8px}50%{translate:-1px .6px}75%{translate:.8px 1px}}@keyframes tremble-hard{0%,to{translate:0;rotate:0deg}25%{translate:3px -2px;rotate:.4deg}50%{translate:-3px 1.5px;rotate:-.4deg}75%{translate:2px 2.5px;rotate:.2deg}}.card.won{box-shadow:0 0 0 4px var(--marigold), 0 0 60px #f2b63299}.card.lost{box-shadow:0 0 0 4px var(--hibiscus)}@media (prefers-reduced-motion:reduce){.felt.tremble-1,.felt.tremble-2,.danger-chip,.shout,.shout-text{animation:none}}.table.spectate{flex-direction:column;display:flex}.table.spectate .felt{flex:1}.watching-tag{color:var(--marigold);align-items:center;gap:6px;font-weight:600;display:inline-flex}.felt.railed .board-canvas{left:42px;right:42px}.rail{background:var(--table-deep);z-index:2;border-radius:10px;flex-direction:column;align-items:center;gap:8px;width:34px;max-height:70%;padding:10px 0;display:flex;position:absolute;top:50%;translate:0 -50%;box-shadow:inset 0 0 0 2px #0000}.rail.left{left:8px}.rail.right{right:8px}.rail.on-turn{box-shadow:inset 0 0 0 2px var(--marigold)}.rail.team-0{border-left:3px solid var(--team-0)}.rail.team-1{border-left:3px solid var(--team-1)}.rail-name{writing-mode:vertical-rl;text-overflow:ellipsis;white-space:nowrap;max-height:160px;font-size:15px;font-weight:600;overflow:hidden}.rail.left .rail-name{rotate:180deg}.rail-count{color:var(--mist);flex-direction:column;align-items:center;gap:2px;font-size:13px;display:flex}.rail-score{font-size:18px;font-weight:800}.opponents.bottom .panel,.spectate .opponents .panel{grid-template-rows:auto auto}.panel.team-0:not(.compact){box-shadow:inset 3px 0 0 var(--team-0)}.panel.team-1:not(.compact){box-shadow:inset 3px 0 0 var(--team-1)}.panel.on-turn.team-0:not(.compact),.panel.on-turn.team-1:not(.compact){box-shadow:inset 0 0 0 2px var(--marigold)}.spec-foot{justify-content:space-between;align-items:center;gap:12px;display:flex}.felt .board-canvas{top:34px}.danger-chips{flex-wrap:nowrap;top:8px}.danger-chip{white-space:nowrap;font-size:12px}.card{z-index:6;animation:.35s ease-out 1.25s both card-in}@keyframes card-in{0%{opacity:0;scale:.9}}@media (prefers-reduced-motion:reduce){.card{animation:none}}.final-row{flex-wrap:wrap;gap:2px 12px;font-size:16px}.final-score{margin-left:auto}.bar .link{white-space:nowrap}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.devan{flex-direction:column;grid-area:1/2/span 2;align-items:flex-end;gap:4px;display:flex}.devan-dots{gap:4px;display:flex}.dd{width:12px;height:12px;box-shadow:inset 0 0 0 1.5px var(--table-edge);background:0 0;border-radius:3px}.dd.on{background:var(--marigold);box-shadow:none}.devan-label{color:var(--mist);white-space:nowrap;font-size:13px;font-weight:800}.devan.small .dd{border-radius:2px;width:9px;height:9px}.devan.small .devan-label{font-size:12px}.devan.hot .dd.on{background:var(--hibiscus);animation:.7s ease-in-out infinite devan-hot}.devan.hot .devan-label{color:#ff8a99}@keyframes devan-hot{50%{box-shadow:0 0 10px var(--hibiscus);scale:1.25}}.rail-score.hot{color:#ff8a99}.card-points .card-series{color:#5a5547;font-size:15px;font-weight:600;display:block}.card.kabes{box-shadow:0 0 0 4px var(--marigold), 0 0 50px #f2b632b3}.card-vyej{color:#d21034;letter-spacing:-.02em;margin:0;font-size:56px;font-weight:800;line-height:.9}.celebration{z-index:30;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.celebration-canvas{width:100%;height:100%;position:absolute;inset:0}.celebration-title{letter-spacing:-.02em;-webkit-text-stroke:3px #0c1f3a;paint-order:stroke fill;text-shadow:0 6px #0c1f3a,0 14px 40px #0009;font-size:min(26vw,140px);font-weight:800;line-height:.9;animation:4.4s ease-out forwards celebrate-life;display:flex;position:relative}.celebration.vyej .celebration-title{font-size:min(30vw,170px);animation-duration:6.8s}.celebration-title span{animation:.6s cubic-bezier(.2,2,.4,1) both letter-in,.5s ease-in-out .6s infinite alternate letter-dance,.6s step-end infinite letter-colors;display:inline-block}.celebration-sub{color:var(--marigold);background:#0c1f3a;border-radius:999px;margin-top:14px;padding:6px 16px;font-size:22px;font-weight:800;animation:4.4s ease-out forwards celebrate-life;position:relative}.celebration.vyej .celebration-sub{animation-duration:6.8s}@keyframes letter-in{0%{translate:0 -120px;rotate:-40deg;scale:0}to{scale:1}}@keyframes letter-dance{0%{translate:0 6px;rotate:-7deg}to{translate:0 -10px;rotate:7deg}}@keyframes letter-colors{0%{color:#f2b632}25%{color:#fff}50%{color:#ff6b7f}75%{color:#5cc8bd}}@keyframes celebrate-life{0%,85%{opacity:1}to{opacity:0;scale:1.3}}@media (prefers-reduced-motion:reduce){.celebration-title,.celebration-title span,.celebration-sub,.devan.hot .dd.on{animation:none}}.celebration.kabes .celebration-title{font-size:min(15.5vw,120px)}.celebration.vyej .celebration-title{font-size:min(23vw,170px)}.me-row{align-items:stretch;gap:8px;display:flex}.slap-btn{border-radius:var(--radius-s);background:var(--table);width:64px;box-shadow:inset 0 0 0 2px var(--table-edge);color:var(--ink);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:0;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;font-size:12px;font-weight:800;display:flex}.slap-btn:active{background:var(--marigold);color:#241a02;scale:.9}.hand-wrap{min-width:0;position:relative}.drum-pad{z-index:8;border-radius:var(--radius-l);background:var(--hibiscus);color:#fff;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;box-shadow:0 0 0 4px var(--marigold), 0 0 40px #e0475eb3;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;animation:.45s ease-in-out infinite alternate drum-throb;display:flex;position:absolute;inset:-6px 0 0}.drum-pad svg{width:34px;height:34px}.drum-pad:active{background:#f35;scale:.94}.drum-text{letter-spacing:.02em;font-size:30px;font-weight:800;line-height:1}.drum-sub{opacity:.9;font-size:14px;font-weight:600}@keyframes drum-throb{to{box-shadow:0 0 0 6px var(--marigold), 0 0 60px #f2b632cc;scale:1.03}}.hand-tile{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.hand.active .hand-tile.charging{visibility:hidden}.lift{z-index:40;pointer-events:none;transition:translate .12s ease-out,scale .12s ease-out;position:fixed}.lift svg{display:block}.lift svg rect{stroke:var(--marigold);stroke-width:3px}.lift.level-1{animation:.12s linear infinite windup;translate:0 -24px}.lift.level-2{animation:80ms linear infinite windup;translate:0 -40px;scale:1.1}.lift.level-3{filter:drop-shadow(0 0 12px var(--hibiscus));animation:50ms linear infinite windup-hard;translate:0 -58px;scale:1.2}.lift.level-3 svg rect{stroke:var(--hibiscus);stroke-width:4px}@keyframes windup{0%,to{rotate:-2deg}50%{rotate:2deg}}@keyframes windup-hard{0%,to{rotate:-5deg}50%{rotate:5deg}}@media (prefers-reduced-motion:reduce){.drum-pad,.lift{animation:none}}.pile{z-index:3;background:var(--table-deep);box-shadow:inset 0 0 0 1.5px var(--table-edge);color:var(--ink);cursor:default;touch-action:manipulation;border:0;border-radius:12px;align-items:flex-end;gap:8px;padding:8px 10px 6px;display:flex;position:absolute;bottom:10px;right:10px}.pile-stack{width:22px;height:30px;position:relative}.pile-stack>span{position:absolute;bottom:0;left:0}.pile-count{font-variant-numeric:tabular-nums;font-size:18px;font-weight:800}.pile.ready{cursor:pointer;background:var(--marigold);color:#241a02;animation:.6s ease-in-out infinite alternate pile-call;box-shadow:0 0 0 3px #fff,0 0 24px #f2b632b3}.pile.empty{opacity:.45}@keyframes pile-call{to{scale:1.1}}.hand-tile.fresh{animation:.5s cubic-bezier(.2,1.4,.4,1) both tile-arrive}@keyframes tile-arrive{0%{opacity:0;translate:60px -120px;rotate:25deg}}.shame-chip{color:#ff8a99;white-space:nowrap;background:#3a0f18;border-radius:999px;width:max-content;margin-top:2px;padding:1px 7px;font-size:11px;font-weight:800;display:inline-block}.mockery{z-index:29;pointer-events:none;background:#0812228c;place-items:center;animation:linear forwards mock-life;display:grid;position:fixed;inset:0;overflow:hidden}.mock-rain span{animation:1.6s ease-in infinite mock-fall;position:absolute;top:-60px}.mock-card{border-radius:var(--radius-l);background:var(--bone);width:min(92%,380px);color:var(--pip);text-align:center;box-shadow:0 0 0 4px var(--hibiscus), 0 20px 60px #0009;padding:18px 18px 14px;animation:.5s cubic-bezier(.2,1.8,.4,1) both mock-in,.18s ease-in-out .5s infinite mock-shake;position:relative}.mock-line+.mock-line{border-top:2px dashed var(--bone-edge);margin-top:12px;padding-top:12px}.mock-tiles{justify-content:center;gap:8px;display:flex}.mock-tile{animation:.7s ease-in-out infinite alternate mock-tile;display:inline-block}.mock-title{color:#c0102e;margin:10px 0 0;font-size:26px;font-weight:800;line-height:1.05}.mock-verdict{color:#5a5547;margin:10px 0 0;font-size:16px;font-weight:600}.mockery.size-4 .mock-title,.mockery.size-5 .mock-title{font-size:30px}.mockery.size-6 .mock-title{font-size:34px}.mockery.size-6 .mock-card{animation-duration:.5s,.1s}@keyframes mock-in{0%{opacity:0;rotate:-12deg;scale:.2}}@keyframes mock-shake{0%,to{rotate:-1.5deg}50%{rotate:1.5deg}}@keyframes mock-tile{0%{translate:0 4px;rotate:-14deg}to{translate:0 -4px;rotate:14deg}}@keyframes mock-fall{to{translate:0 calc(100vh + 120px);rotate:40deg}}@keyframes mock-life{0%,88%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.mock-card,.mock-tile,.mock-rain span,.pile.ready,.hand-tile.fresh{animation:none}}.avatar{background:var(--av-bg,var(--table-edge));color:#0c1f3a;letter-spacing:-.02em;box-shadow:0 0 0 2px var(--table-deep);-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid;position:relative}.avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.avatar-initials{line-height:1}.avatar.ring-team-0{box-shadow:0 0 0 2px var(--table-deep), 0 0 0 4px var(--team-0)}.avatar.ring-team-1{box-shadow:0 0 0 2px var(--table-deep), 0 0 0 4px var(--team-1)}.avatar.ring-turn{box-shadow:0 0 0 2px var(--table-deep), 0 0 0 4px var(--marigold), 0 0 14px #f2b63299}.avatar-progress{pointer-events:none;width:calc(100% + 14px);height:calc(100% + 14px);position:absolute;inset:-7px;rotate:-90deg}.avatar-progress .ap-bg{fill:none;stroke:#ffffff1f}.avatar-progress .ap-fg{fill:none;stroke:var(--marigold);stroke-linecap:round;transition:stroke-dasharray .2s linear}.avatar.low .ap-fg{stroke:var(--hibiscus)}.avatar.ring-turn.low{animation:.5s ease-in-out infinite alternate face-hurry}@keyframes face-hurry{to{scale:1.08}}.turnbar .avatar{margin:7px 6px 7px 7px}.avatar-stack{align-items:center;display:inline-flex}.avatar.stacked+.avatar.stacked{margin-left:-8px}.avatar.more{background:var(--table-edge);color:var(--ink)}.handle{color:var(--mist);font-size:12px;font-weight:600;line-height:1.2;display:block}.compact-head{align-items:center;gap:7px;min-width:0;max-width:100%;display:flex}.compact-head .panel-name{min-width:0}.panel:not(.compact){grid-template-columns:auto 1fr auto}.panel:not(.compact) .panel-face{grid-row:1/span 2}.panel:not(.compact) .backs{grid-column:2}.panel:not(.compact) .score,.panel:not(.compact) .devan{grid-column:3}.rail .avatar{flex:none}.who{align-items:center;gap:10px;min-width:0;display:inline-flex}.who-names{flex-direction:column;min-width:0;display:flex}.seat-who,.watcher-who{align-items:center;gap:12px;min-width:0;display:flex}.seat-names{flex-direction:column;min-width:0;display:flex}.seat-empty-face{border:2px dashed var(--table-edge);border-radius:50%;flex:none;width:40px;height:40px}.bar-mid{align-items:center;gap:10px;min-width:0;display:inline-flex}.audience{position:relative}.audience-btn{background:var(--table);color:var(--marigold);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:5px;padding:3px 8px 3px 6px;display:inline-flex}.audience-list{z-index:25;border-radius:var(--radius-s);background:var(--table-deep);min-width:210px;max-height:50vh;box-shadow:0 0 0 1.5px var(--table-edge), 0 14px 40px #00000080;flex-direction:column;gap:10px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);left:50%;overflow-y:auto;translate:-50%}.audience-title{color:var(--marigold);font-size:13px;font-weight:800}.audience-person{align-items:center;gap:10px;display:flex}.audience-names{flex-direction:column;font-weight:600;display:flex}.shout-face{box-shadow:0 0 0 4px #0c1f3a, 0 0 0 7px var(--marigold), 0 10px 30px #00000080;margin-bottom:10px;animation:.5s cubic-bezier(.2,1.8,.4,1) both shout-pop}.shout.red .shout-face{box-shadow:0 0 0 4px #0c1f3a,0 0 0 7px #ff6b7f,0 10px 30px #00000080}.celebration-faces{gap:14px;margin-top:16px;animation:4.4s ease-out forwards celebrate-life;display:flex;position:relative}.celebration.vyej .celebration-faces{animation-duration:6.8s}.celebration-faces .avatar{animation:.6s cubic-bezier(.2,2,.4,1) both letter-in,.45s ease-in-out .6s infinite alternate letter-dance}.mock-face{box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--hibiscus);margin-right:6px;animation:.35s ease-in-out infinite alternate mock-tile}.mock-handle{color:#8a6d2e;margin:2px 0 0;font-size:14px;font-weight:800}.mock-tiles{align-items:center}.final-who{align-items:center;gap:8px;min-width:0;display:inline-flex}.final-faces{display:inline-flex}.final-faces .avatar+.avatar{margin-left:-6px}@media (prefers-reduced-motion:reduce){.celebration-faces .avatar,.mock-face,.shout-face,.avatar.ring-turn.low{animation:none}}.hand{pointer-events:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.hand-tile{touch-action:pan-x}.turnbar .pile{margin-left:6px;padding:4px 10px 4px 8px;position:static}.turnbar .pile .pile-stack{height:26px}.turnbar.quiet{justify-content:flex-end}.hand.active .hand-tile.kabes-ready{animation:.5s ease-in-out infinite alternate kabes-call;position:relative;translate:0 -14px}.hand.active .hand-tile.kabes-ready svg rect{stroke:var(--marigold);stroke-width:4px}.hand-tile.kabes-ready:after{content:attr(data-kabes);white-space:nowrap;background:var(--marigold);color:#241a02;border-radius:999px;padding:3px 10px;font-size:14px;font-weight:800;position:absolute;bottom:calc(100% + 6px);left:50%;translate:-50%}@keyframes kabes-call{0%{filter:drop-shadow(0 0 6px #f2b63299);rotate:-3deg}to{filter:drop-shadow(0 0 18px #f2b632);rotate:3deg}}@media (prefers-reduced-motion:reduce){.hand.active .hand-tile.kabes-ready{animation:none}}.card.kabes{animation-delay:2.4s}.card-proverb{color:#6b4f12;margin:0;font-style:italic;font-weight:600}.avatar{overflow:visible}.pin{z-index:2;background:linear-gradient(90deg, #0000002e 0 18%, transparent 18% 82%, #ffffff40 82%), var(--pin);pointer-events:none;border-radius:3px 3px 2px 2px;position:absolute;box-shadow:0 1px 2px #00000073}.pin:after{content:"";background:#c9ced8;border-radius:2px;height:12%;position:absolute;top:46%;left:-15%;right:-15%;box-shadow:0 0 0 1px #00000040}.pin.pin-on{animation:.5s cubic-bezier(.2,1.8,.4,1) both pin-on}.pin.pin-off{animation:.75s cubic-bezier(.3,0,.6,1) forwards pin-off}@keyframes pin-on{0%{opacity:0;translate:0 -10px;scale:1.9}60%{opacity:1}}@keyframes pin-off{0%{opacity:1}to{opacity:0;translate:var(--fly-x) var(--fly-y);rotate:540deg;scale:.6}}.pin-more{z-index:3;color:#fff;background:#c2272d;border-radius:999px;padding:1px 6px;font-weight:800;line-height:1.3;position:absolute;top:-10%;right:-14%}@media (prefers-reduced-motion:reduce){.pin.pin-on,.pin.pin-off{animation:none}}.voice-btn{background:var(--marigold);color:#241a02;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:6px;min-width:92px;padding:0 16px;font-size:15px;font-weight:800;display:inline-flex;position:relative}.voice-btn .voice-ring{pointer-events:none;border-radius:999px;position:absolute;inset:-4px}.voice-btn.recording{color:#fff;background:#c2272d;min-width:150px}.voice-btn.recording .voice-ring{box-shadow:0 0 0 3px rgb(194 39 45/calc(.35 + var(--frac) * .65));animation:.6s ease-in-out infinite alternate voice-pulse}.voice-btn.cooling{background:var(--table);color:var(--mist);box-shadow:inset 0 0 0 2px var(--table-edge)}.voice-btn.muted{background:var(--table);color:#ff8a99;cursor:default;box-shadow:inset 0 0 0 2px #5a2230}@keyframes voice-pulse{to{scale:1.06}}.voice-bubble{z-index:4;box-shadow:inset 0 0 0 1.5px var(--marigold);pointer-events:none;white-space:nowrap;background:#0e1a33e0;border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 5px;display:flex;position:absolute;bottom:12px;left:50%;translate:-50%}.voice-bars{align-items:center;gap:2px;height:20px;display:inline-flex}.voice-bars span{background:var(--marigold);border-radius:2px;width:3px;height:100%;animation:.5s ease-in-out infinite alternate voice-bar}@keyframes voice-bar{0%{scale:1 .25}}.voice-who{font-size:13px;font-weight:600}.voice-waiting{color:var(--marigold);font-size:12px;font-weight:800}.avatar.speaking{box-shadow:0 0 0 2px var(--table-deep), 0 0 0 4px var(--marigold), 0 0 18px #f2b632e6;animation:.35s ease-in-out infinite alternate face-talk}@keyframes face-talk{to{scale:1.08}}.face-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;display:inline-grid;position:relative}.panel:not(.compact) .face-btn{grid-row:1/span 2}.face-muted{z-index:4;color:#ffd9de;width:18px;height:18px;box-shadow:0 0 0 2px var(--table-deep);background:#5a2230;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-4px;right:-4px}.seat-menu-backdrop{z-index:35;padding:16px 16px calc(env(safe-area-inset-bottom) + 16px);background:#060c1a8c;place-items:end center;display:grid;position:fixed;inset:0}.seat-menu{border-radius:var(--radius-l);background:var(--table);width:min(100%,420px);box-shadow:0 0 0 1.5px var(--table-edge), 0 20px 50px #00000080;flex-direction:column;gap:10px;padding:18px;display:flex}.seat-menu-head{align-items:center;gap:12px;margin-bottom:4px;display:flex}.seat-menu-names{flex-direction:column;font-size:18px;display:flex}@media (prefers-reduced-motion:reduce){.voice-btn.recording .voice-ring,.voice-bars span,.avatar.speaking{animation:none}}.title,.card-title,.shout-text,.celebration-title,.drum-text,.card-vyej,.mock-title{font-family:var(--display);font-weight:900}.h2,.team-head,.turn-text{font-family:var(--display);font-weight:800}.turnbar.mine .turn-text{text-transform:uppercase;letter-spacing:.02em}.btn.primary{background:linear-gradient(180deg, var(--gold-hi) 0%, var(--marigold) 55%, #c49a3a 100%);color:var(--on-gold);box-shadow:0 0 0 1px var(--bronze), 0 3px 0 var(--bronze);font-weight:800}.btn.primary:active{box-shadow:0 0 0 1px var(--bronze), 0 1px 0 var(--bronze);translate:0 2px}.btn.ghost{box-shadow:inset 0 0 0 1.5px var(--marigold);color:var(--marigold)}.voice-btn{background:linear-gradient(180deg, var(--gold-hi) 0%, var(--marigold) 55%, #c49a3a 100%);box-shadow:0 0 0 1px var(--bronze), 0 3px 0 var(--bronze);color:var(--on-gold)}.felt{background:radial-gradient(ellipse at 50% 42%, #1e7049 0%, var(--felt) 58%, #0f4430 100%);box-shadow:inset 0 0 0 7px var(--mahogany), inset 0 0 0 9px var(--bronze), inset 0 0 0 10px #2a1409, inset 0 0 40px #00000059, 0 12px 30px #0006}.felt.tremble-2{box-shadow:inset 0 0 0 7px var(--mahogany), inset 0 0 0 9px var(--bronze), inset 0 0 0 10px #2a1409, inset 0 0 50px #c2272d99}.hint{color:#cfe3d6}.panel{box-shadow:inset 0 0 0 1px var(--table-edge)}.panel.on-turn,.panel.on-turn.team-0:not(.compact),.panel.on-turn.team-1:not(.compact){box-shadow:inset 0 0 0 2px var(--marigold), 0 0 16px #dab84f40}.chip{background:var(--table);box-shadow:inset 0 0 0 1.5px var(--table-edge)}.code span{box-shadow:inset 0 -4px 0 var(--bone-edge), 0 0 0 1.5px var(--bronze)}.card{box-shadow:0 0 0 2px var(--bronze), 0 20px 50px #00000080}.card-points{color:#9a6b12}.notice{box-shadow:0 0 0 1.5px var(--bronze), 0 10px 30px #0006}.table-type.picked{box-shadow:inset 0 0 0 2px var(--marigold)}.wordmark{flex-direction:column;align-self:center;align-items:center;gap:8px;margin-bottom:8px;display:flex}.wordmark-top{font-family:var(--display);letter-spacing:.04em;color:#2b57c4;-webkit-text-stroke:1.5px var(--gold-hi);paint-order:stroke fill;text-shadow:0 3px #0b1530;font-size:34px;font-weight:900}.wordmark-plate{background:linear-gradient(180deg, var(--gold-hi) 0%, var(--marigold) 50%, var(--gold-lo) 100%);box-shadow:0 0 0 2px var(--bronze), 0 8px 24px #00000073;font-family:var(--display);letter-spacing:.04em;color:var(--mahogany);border-radius:12px;padding:6px 26px 4px;font-size:46px;font-weight:900;line-height:1.05}.wordmark-bottom{font-family:var(--display);letter-spacing:.24em;color:var(--marigold);font-size:15px;font-weight:800}.screen.center .lede{text-align:center;align-self:center}.signin-title{text-align:center;text-transform:uppercase;letter-spacing:.03em;font-size:22px}.seat-dots{width:40px}.seat-dots.duo{justify-content:center;align-items:center;gap:4px;display:flex}.dot.c0{background:var(--team-0)}.dot.c1{background:var(--marigold)}.dot.c2{background:var(--team-1)}.dot.c3{background:#ff6b7f}.dot-plus{font-family:var(--display);color:var(--bone);margin-left:1px;font-size:15px;font-weight:900;line-height:10px}.share-link{justify-content:center;align-items:center;gap:8px;margin-bottom:14px;display:inline-flex}.invite-line{text-align:center;border-radius:var(--radius-s);background:var(--table);box-shadow:inset 0 0 0 1.5px var(--marigold);color:var(--marigold);align-self:center;padding:10px 14px;font-weight:700}.shuffle{pointer-events:none;z-index:4;border-radius:14px;position:absolute;inset:12px;overflow:hidden}.shuffle-tile{aspect-ratio:1/2;background:linear-gradient(160deg, #fbf7ee, var(--bone) 55%, #e4dccb);width:clamp(18px,6.2vmin,34px);box-shadow:inset 0 0 0 1px var(--bone-edge), 0 2px 0 #b9ae97, 0 3px 5px #0006;will-change:transform;border-radius:4px;position:absolute;top:0;left:0}.shuffle-hand{filter:drop-shadow(0 8px 10px #00000073);will-change:transform;z-index:1;width:clamp(70px,24vmin,130px);position:absolute;top:0;left:0}.shuffle-hand-svg{width:100%;height:auto;display:block}.shuffle-popup{z-index:6;background:linear-gradient(180deg, var(--gold-hi) 0%, var(--marigold) 55%, #c49a3a 100%);box-shadow:0 0 0 2px var(--bronze), 0 10px 26px #00000073;color:var(--on-gold);font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:clamp(15px,4.4vw,22px);font-weight:900;animation:.45s cubic-bezier(.2,1.6,.4,1) both shuffle-pop;display:flex;position:absolute;top:16px;left:50%;translate:-50%}.shuffle-dots{gap:4px;display:inline-flex}.shuffle-dots span{background:var(--on-gold);border-radius:50%;width:7px;height:7px;animation:.9s ease-in-out infinite shuffle-dot}.shuffle-dots span:nth-child(2){animation-delay:.15s}.shuffle-dots span:nth-child(3){animation-delay:.3s}@keyframes shuffle-pop{0%{opacity:0;scale:.4}}@keyframes shuffle-dot{0%,to{opacity:.4;translate:0}50%{opacity:1;translate:0 -5px}}@media (prefers-reduced-motion:reduce){.shuffle-popup,.shuffle-dots span{animation:none}}.kontinye-note{color:var(--pip);text-align:center;margin:4px 0 0;font-weight:700}.kontinye-wait{flex-direction:column;align-items:center;gap:6px;display:flex}.kontinye-wait .link{color:#6b4a1c}.kontinye-btn{font-family:var(--display);letter-spacing:.04em;font-weight:900}.card .btn.ghost{color:#6b4a1c;box-shadow:inset 0 0 0 1.5px var(--bronze)}.consent{gap:14px}.consent-title{font-family:var(--display);text-transform:uppercase;margin:0;font-size:22px;font-weight:900}.consent-body{color:var(--mist);margin:0;line-height:1.5}.report-open{color:#ff8fa0;box-shadow:inset 0 0 0 1.5px #ff8fa0}.report-form{flex-direction:column;gap:12px;display:flex}.report-reasons{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.report-reasons legend{margin-bottom:8px;font-weight:800}.report-reason{border-radius:var(--radius-s);background:var(--table-deep);min-height:44px;box-shadow:inset 0 0 0 1px var(--table-edge);align-items:center;gap:10px;padding:0 14px;font-weight:600;display:flex}.report-reason.picked{box-shadow:inset 0 0 0 2px var(--marigold)}.report-reason input{accent-color:var(--marigold)}.report-note textarea{box-sizing:border-box;border-radius:var(--radius-s);background:var(--table-deep);width:100%;color:var(--ink);box-shadow:inset 0 0 0 1px var(--table-edge);font:inherit;resize:vertical;border:0;padding:10px 12px}.final-devan{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.final-devan strong{font-family:var(--display);font-size:1.15em;font-weight:900}.final-devan span{opacity:.75;font-size:.8em;font-weight:600}
