:root{--felt-1:#2e7d32;--felt-2:#1b5e20;--felt-3:#0a2b0f;--surface-light:#44ae5d;--surface:#18712f;--surface-dark:#11401f;--surface-deep:#0f461c;--edge:#3ca553;--edge-bright:#55c86f;--text:#fff;--muted:#c8e6c9;--dim:#8fbf98;--gold:#fec735;--red:#ff6b6b;--we:#fec735;--they:#ff8a80;--grad-gold:linear-gradient(180deg, #fce079 0%, #f39c12 100%);--grad-gold-hover:linear-gradient(180deg, #fdf0a6 0%, #f3b112 100%);--grad-green:linear-gradient(180deg, #4bd865 0%, #178a2d 100%);--grad-green-hover:linear-gradient(180deg, #6ee283 0%, #1ea136 100%);--grad-red:linear-gradient(180deg, #ff6b6b 0%, #d32f2f 100%);--grad-red-hover:linear-gradient(180deg, #ff8a80 0%, #e53935 100%);--grad-blue:linear-gradient(180deg, #4da7ff 0%, #1976d2 100%);--grad-blue-hover:linear-gradient(180deg, #74bbff 0%, #2196f3 100%);--grad-panel:linear-gradient(180deg, var(--surface-light) 0%, var(--surface) 100%);--shadow:0 1.25rem 2.5rem #0009;--font:"Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--display:"Playfair Display", Georgia, serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--hand-h:18dvh;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(circle at center, var(--felt-1) 0%, var(--felt-2) 50%, var(--felt-3) 100%), var(--felt-3);overscroll-behavior:none;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}button:disabled{cursor:not-allowed;opacity:.5}input{font:inherit;color:var(--text);-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:none;width:100%;min-width:0;padding:.75rem 0;font-size:max(16px,1.0625rem);font-weight:700}input::placeholder{color:#c8e6c98c;font-weight:500}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}code{font-family:ui-monospace,Menlo,Consolas,monospace}.stage{touch-action:none;animation:.6s fade;inset:0;position:fixed!important}.ui{pointer-events:none;z-index:1;position:fixed;inset:0}.ui>*{pointer-events:auto}.vignette{pointer-events:none;z-index:2;background:radial-gradient(90% 80% at 50% 45%,#0000 70%,#0014064d 100%);position:fixed;inset:0}.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center}.stack{flex-direction:column;gap:.75rem;display:flex}.row{gap:.75rem;display:flex}.row>*{flex:1}.contents{display:contents}.scroll{-webkit-overflow-scrolling:touch;min-height:0;padding-right:.25rem;overflow-y:auto}.lede{color:var(--muted);font-size:.95rem;line-height:1.5}.lede b{color:var(--text)}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-size:.72rem;font-weight:800;display:block}.status-line{color:var(--muted);text-align:center;font-size:.88rem;font-weight:600}.status-line b{color:var(--gold)}.num{font-variant-numeric:tabular-nums;animation:pop .5s var(--ease-spring);display:inline-block}@keyframes pop{0%{opacity:0;transform:scale(.4)}}.reveal-text{animation:rise .45s var(--ease-out);display:inline-block}@keyframes rise{0%{opacity:0;transform:translateY(.5rem)}}.reveal{animation:rise .35s var(--ease-out)}.suit-icon{vertical-align:-.12em;display:inline-block}.panel{background:var(--grad-panel);border:.25rem solid var(--gold);box-shadow:var(--shadow), inset 0 0 0 2px #fff9c459;border-radius:1.5rem;position:relative}.card-head{min-height:2.75rem;color:var(--text);justify-content:center;align-items:center;gap:.625rem;padding-top:1.125rem;display:flex;position:relative}.card-head h2{text-align:center;min-width:0;font-family:var(--display);color:#fff;text-shadow:0 3px #00000040;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:1.85rem;font-weight:900;line-height:1.1;overflow:hidden}.card-head>svg{color:var(--gold);flex:none}.card-head.small{padding-top:.75rem}.card-head.small h2{font-size:1.3rem}.head-btn{color:#fff;background:var(--grad-green);border:2px solid #7ef893;border-radius:50%;flex:none;place-items:center;width:2.5rem;height:2.5rem;transition:transform .1s,box-shadow .1s;display:grid;box-shadow:0 .25rem #0d541b,0 .375rem .5rem #0000004d}.head-btn:hover{transform:translateY(2px);box-shadow:0 2px #0d541b,0 .25rem .375rem #0000004d}.head-btn-spacer{width:2.5rem;color:var(--gold);flex:none;place-items:center;display:grid}.head-note{color:var(--muted);font-size:.75rem;font-weight:700}.badge{color:#5b3300;background:radial-gradient(circle at 35% 28%,#fff8d6 0%,#fce079 32%,#f39c12 72%,#b86a05 100%);border-radius:50%;flex:none;place-items:center;font-weight:900;line-height:1;display:inline-grid;position:relative;box-shadow:0 0 0 2px #fdeea9,0 3px #bc6c05,0 .3125rem .625rem #00000059}.badge-silver{color:#2a2d33;background:radial-gradient(circle at 35% 28%,#fff 0%,#e3e7ec 34%,#a5acb5 72%,#6b717a 100%);box-shadow:0 0 0 2px #f1f4f7,0 3px #6b717a,0 .3125rem .625rem #00000059}.badge-bronze{color:#3a1d08;background:radial-gradient(circle at 35% 28%,#ffe3c6 0%,#eba86f 34%,#b2672e 72%,#7a4018 100%);box-shadow:0 0 0 2px #f6c99c,0 3px #7a4018,0 .3125rem .625rem #00000059}.badge-ember{color:#fff;background:radial-gradient(circle at 35% 28%,#ffc4c4 0%,#ff6b6b 34%,#d32f2f 72%,#8b0000 100%);box-shadow:0 0 0 2px #ef9a9a,0 3px #8b0000,0 .3125rem .625rem #00000059}.badge-sm{width:1.625rem;height:1.625rem;font-size:.72rem}.badge-md{width:2rem;height:2rem;font-size:.85rem}.badge-lg{width:2.875rem;height:2.875rem;font-size:1rem}.badge-xl{width:6rem;height:6rem;font-size:2rem;animation:3.2s ease-in-out infinite float;box-shadow:0 0 0 3px #fdeea9,0 .375rem #bc6c05,0 .75rem 1.875rem #00000073,0 0 2.5rem #fec73573}.badge-xl.badge-silver{box-shadow:0 0 0 3px #f1f4f7,0 .375rem #6b717a,0 .75rem 1.875rem #00000073}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-.375rem)}}.btn{letter-spacing:.05em;text-transform:uppercase;color:#fff;text-shadow:1px 1px 2px #00000080;border-radius:1.875rem;justify-content:center;align-items:center;min-height:3.25rem;padding:.875rem 1.5rem;font-size:1rem;font-weight:800;transition:transform .1s,box-shadow .1s,background .1s;display:inline-flex;position:relative}.btn-label{align-items:center;gap:.5rem;display:inline-flex}.btn-sm{min-height:2.5rem;padding:.5rem 1rem;font-size:.85rem}.btn-solid{background:var(--grad-gold);border:2px solid #fdeea9;box-shadow:0 .3125rem #bc6c05,0 .5rem .625rem #0000004d}.btn-solid:hover:not(:disabled){background:var(--grad-gold-hover);transform:translateY(2px);box-shadow:0 3px #bc6c05,0 .3125rem .375rem #0000004d}.btn-line{background:var(--grad-green);border:2px solid #7ef893;box-shadow:0 .3125rem #0d541b,0 .5rem .625rem #0000004d}.btn-line:hover:not(:disabled){background:var(--grad-green-hover);transform:translateY(2px);box-shadow:0 3px #0d541b,0 .3125rem .375rem #0000004d}.btn-danger{background:var(--grad-red);border:2px solid #ef9a9a;box-shadow:0 .3125rem #8b0000,0 .5rem .625rem #0000004d}.btn-danger:hover:not(:disabled){background:var(--grad-red-hover);transform:translateY(2px);box-shadow:0 3px #8b0000,0 .3125rem .375rem #0000004d}.btn-blue{background:var(--grad-blue);border:2px solid #90caf9;box-shadow:0 .3125rem #0d47a1,0 .5rem .625rem #0000004d}.btn-blue:hover:not(:disabled){background:var(--grad-blue-hover);transform:translateY(2px);box-shadow:0 3px #0d47a1,0 .3125rem .375rem #0000004d}.btn:active:not(:disabled){transform:translateY(.3125rem);box-shadow:0 0 #0000,0 2px 3px #0000004d}.icon-btn{color:#fff;background:var(--grad-green);border:2px solid #7ef893;border-radius:.75rem;flex:none;place-items:center;width:2.625rem;height:2.625rem;transition:transform .1s,box-shadow .1s;display:grid;box-shadow:0 .25rem #0d541b,0 .375rem .5rem #0000004d}.icon-btn:hover{transform:translateY(2px);box-shadow:0 2px #0d541b,0 .25rem .375rem #0000004d}.icon-btn.small{border-radius:.5625rem;width:2rem;height:2rem;box-shadow:0 3px #0d541b}.icon-btn.refresh{background:var(--grad-gold);color:#5b3300;border-color:#fdeea9;border-radius:50%;width:2.5rem;height:2.5rem;margin-right:-.5rem;box-shadow:0 3px #bc6c05,0 .25rem .5rem #0000004d}.icon-btn.refresh:hover{box-shadow:0 1px #bc6c05,0 2px .375rem #0000004d}.icon-btn.refresh.spin svg{animation:spin-once .6s var(--ease-out)}@keyframes spin-once{to{rotate:360deg}}.icon-btn.bare{box-shadow:none;color:var(--muted);background:0 0;border:0}.text-link{color:var(--gold);text-underline-offset:.25rem;align-self:center;padding:2px .375rem;font-size:.9rem;font-weight:700;text-decoration:underline}.text-link:hover{color:#fff3c0}.menu{flex-direction:column;gap:.5rem;display:flex}.menu-item,.room-item{background:var(--surface-dark);border:2px solid var(--edge);text-align:left;min-height:3.375rem;transition:transform .2s var(--ease-spring), border-color .2s, background .2s;animation:row-in .45s var(--ease-out) both;border-radius:.875rem;align-items:center;gap:.75rem;padding:.5rem .875rem .5rem .625rem;display:grid;position:relative;box-shadow:inset 0 2px .25rem #00000080}.menu-item{grid-template-columns:auto 1fr auto .875rem}.menu-item:hover:not(:disabled),.room-item:hover{border-color:var(--gold);background:#15502a;transform:translateY(-2px)}@keyframes row-in{0%{opacity:0;transform:translateY(.625rem)}}.mi-index{color:#5b3300;background:radial-gradient(circle at 35% 28%,#fff8d6 0%,#fce079 32%,#f39c12 72%,#b86a05 100%);border-radius:50%;place-items:center;width:1.875rem;height:1.875rem;font-size:.8rem;font-weight:900;display:grid;box-shadow:0 0 0 2px #fdeea9,0 2px #bc6c05}.mi-label{font-size:1.05rem;font-weight:800}.mi-hint{color:var(--muted);font-size:.75rem;font-weight:700}.mi-arrow{color:var(--gold);font-size:1.4rem}.table-head{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);grid-template-columns:2.75rem 1fr auto;gap:.625rem;margin-bottom:-.375rem;padding:0 .875rem;font-size:.72rem;font-weight:800;display:grid}.room-stats{grid-template-columns:1fr 1fr;gap:.625rem;display:grid}.room-stat{background:var(--surface-dark);border:2px solid var(--edge);border-radius:.875rem;flex-direction:column;align-items:center;gap:2px;padding:.625rem .5rem;display:flex;box-shadow:inset 0 2px .25rem #00000080}.room-stat .num{color:var(--gold);font-size:1.7rem;font-weight:900;line-height:1}.room-stat small{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:800}.room-list{flex-direction:column;gap:.5rem;min-height:8.125rem;max-height:34dvh;padding:2px;display:flex;overflow-y:auto}.room-item{grid-template-columns:auto 1fr auto}.room-main{min-width:0}.room-main b,.room-main small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.room-main b{font-size:1rem;font-weight:800}.room-main small{color:var(--muted);font-size:.76rem}.room-count{color:var(--muted);font-size:.85rem;font-weight:700}.room-count b{color:var(--gold);font-size:1.1rem}.list-empty{text-align:center;background:#0a251066;border:2px dashed #fec73559;border-radius:.875rem;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.25rem;padding:1.375rem .625rem;display:flex}.list-empty b{font-size:1.05rem;font-weight:800}.list-empty small{color:var(--muted)}.lobby{padding:calc(1rem + var(--safe-t)) calc(1rem + var(--safe-r)) calc(1rem + var(--safe-b)) calc(1rem + var(--safe-l));background:radial-gradient(#00190840 0%,#00140699 100%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow-y:auto}.lobby-panel{width:min(27.5rem,100%);max-height:none;animation:panel-in .5s var(--ease-spring);flex-direction:column;gap:1rem;margin:auto;padding:1.125rem 1.625rem 1.375rem;display:flex}.lobby-panel.waiting{width:min(32.5rem,100%)}@keyframes panel-in{0%{opacity:0;transform:translateY(1.25rem)scale(.95)}}.logo-img{filter:drop-shadow(0 0 .9375rem #fec73566);align-self:center;width:min(15rem,62%,30vh);height:auto;margin:-.25rem 0 -.375rem;animation:4s ease-in-out infinite float;display:block}.lobby-buttons{flex-direction:column;gap:.875rem;display:flex}.lobby-buttons .btn{width:100%}.panel-foot{color:var(--muted);opacity:.85;justify-content:space-between;font-size:.72rem;font-weight:700;display:flex}.server-status{align-items:center;gap:.4375rem;display:inline-flex}.server-status svg{color:#f6c453;animation:1.2s ease-in-out infinite soft-pulse}.server-status.on svg{color:#69f0ae;filter:drop-shadow(0 0 .3125rem #69f0aeb3);animation:none}.field{text-align:left;flex-direction:column;gap:.375rem;display:flex}.field>span{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-size:.75rem;font-weight:800}.input-wrap{background:var(--surface-deep);border:.25rem solid var(--edge-bright);color:var(--muted);border-radius:.75rem;align-items:center;gap:.625rem;padding:0 1rem;transition:border-color .2s,box-shadow .2s;display:flex;box-shadow:inset 0 3px .375rem #00000080}.input-wrap input:focus-visible{outline:none}.input-wrap input:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);-webkit-box-shadow:0 0 0 62.5rem var(--surface-deep) inset;box-shadow:0 0 0 62.5rem var(--surface-deep) inset;transition:background-color 100000s ease-out}.input-wrap input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);caret-color:var(--text);-webkit-box-shadow:0 0 0 62.5rem var(--surface-deep) inset;box-shadow:0 0 0 62.5rem var(--surface-deep) inset;transition:background-color 100000s ease-out}.input-wrap input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);caret-color:var(--text);-webkit-box-shadow:0 0 0 62.5rem var(--surface-deep) inset;box-shadow:0 0 0 62.5rem var(--surface-deep) inset;transition:background-color 100000s ease-out}.input-wrap:focus-within{border-color:var(--gold);box-shadow:inset 0 3px .375rem #00000080,0 0 .75rem #fec73566}.search{border-width:3px}.code-input{text-transform:uppercase;letter-spacing:.45em;text-align:center;color:var(--gold);font-size:1.4rem;font-weight:900}.conn-hint{bottom:calc(.875rem + var(--safe-b));border:2px solid var(--edge);max-width:calc(100vw - 2rem);color:var(--muted);background:#0a2510eb;border-radius:62.4375rem;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.8rem;font-weight:600;display:flex;position:absolute;left:50%;transform:translate(-50%)}.conn-hint code{color:var(--gold)}@keyframes blink{50%{opacity:.3}}.segmented{background:var(--surface-dark);border:2px solid var(--edge);border-radius:.875rem;gap:.25rem;padding:.25rem;display:flex;box-shadow:inset 0 2px .25rem #00000080}.segmented button{min-height:2.25rem;color:var(--muted);border-radius:.625rem;flex:1;padding:.375rem .5rem;font-size:.92rem;font-weight:800;transition:background .15s,color .15s}.segmented button:hover:not(:disabled){color:#fff}.segmented button.on{color:#fff;background:var(--grad-gold);text-shadow:1px 1px 2px #00000073;animation:pop .3s var(--ease-spring);box-shadow:0 3px #bc6c05}.segmented.disabled button.on{opacity:1}.toggle{background:var(--surface-dark);border:2px solid var(--edge);border-radius:62.4375rem;flex:none;width:3.5rem;height:2rem;transition:background .25s;position:relative;box-shadow:inset 0 2px .25rem #00000080}.toggle span{width:1.5rem;height:1.5rem;transition:transform .3s var(--ease-spring), background .2s;background:#e0e0e0;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px .25rem #00000080}.toggle.on{background:var(--grad-green);border-color:#7ef893}.toggle.on span{background:radial-gradient(circle at 35% 28%,#fff8d6,#fce079 40%,#f39c12);transform:translate(1.5rem)}.settings{flex-direction:column;gap:.875rem;display:flex}.setting{text-align:left;flex-direction:column;gap:.5rem;display:flex}.setting.inline{flex-direction:row;justify-content:space-between;align-items:center;gap:.875rem}.setting-text b{font-size:1rem;font-weight:800;display:block}.setting-text small{color:var(--muted);font-size:.8rem}.settings-box{border:2px solid var(--edge);background:#0a251059;border-radius:1rem;padding:.875rem}.code-box{background:var(--surface-dark);border:.25rem solid var(--edge);border-radius:1.125rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex;box-shadow:inset 0 3px .375rem #00000080}.code-box small{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:800}.code{letter-spacing:.18em;color:var(--gold);font-size:2.2rem;font-weight:900;line-height:1.1}.code-actions{gap:.5rem;display:flex}.teams{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.team{border:2px solid var(--edge);background:#0a251066;border-radius:1rem;flex-direction:column;gap:.5rem;padding:.625rem;display:flex}.team.mine{border-color:var(--gold)}.team-title{font-family:var(--display);justify-content:space-between;align-items:center;font-size:1.15rem;font-weight:900;display:flex}.team.a .team-title{color:var(--gold)}.team.b .team-title{color:#ffcdd2}.pill{font-family:var(--font);color:#5b3300;background:var(--grad-gold);border-radius:62.4375rem;padding:3px .5rem;font-size:.65rem;font-weight:800}.slot{background:var(--surface-dark);min-height:3.125rem;animation:row-in .4s var(--ease-out) both;border:2px solid #0000;border-radius:.75rem;align-items:center;gap:.5rem;padding:.375rem .5rem;display:flex}.slot-index{text-align:center;width:1.625rem;color:var(--dim);font-size:.8rem;font-weight:800}.slot-name{flex:1;min-width:0}.slot-name b,.slot-name small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.slot-name b{font-size:.95rem;font-weight:800}.slot-name small{color:var(--muted);font-size:.72rem}.slot.me{border-color:var(--gold)}.slot.open{background:0 0;border:2px dashed #c8e6c959}.slot.open b{color:var(--dim)}.slot.offline{opacity:.5}.countdown{border:2px solid var(--gold);color:var(--gold);background:#fec73526;border-radius:1rem;justify-content:center;align-items:center;gap:.75rem;padding:.5rem;font-size:.9rem;font-weight:800;display:flex}.countdown b{color:#fff;font-size:2.2rem;font-weight:900}@media (min-height:501px){.lobby-panel{gap:1.25rem;width:min(32.5rem,100%);padding:1.5rem 2rem 1.75rem}.lobby-panel.waiting{width:min(37.5rem,100%)}.logo-img{width:min(18.75rem,70%,30vh)}.lobby-buttons{gap:1rem}.lobby-panel .btn{min-height:3.75rem;font-size:1.1rem}.lobby-panel .card-head h2{font-size:2.2rem}.lobby-panel .head-btn{width:2.875rem;height:2.875rem}.lobby-panel .head-btn-spacer{width:2.875rem}.lobby-panel .lede{font-size:1.05rem}.field>span{font-size:.84rem}.lobby-panel input{padding:.9375rem 0;font-size:max(16px,1.125rem)}.input-wrap{border-radius:.875rem}.text-link{font-size:1rem}.panel-foot{font-size:.82rem}.conn-hint{font-size:.88rem}.setting-text b{font-size:1.12rem}.setting-text small{font-size:.9rem;line-height:1.4}.settings{gap:1.125rem}.segmented button{min-height:2.875rem;font-size:1.02rem}.menu-item,.room-item{min-height:4rem;padding:.625rem 1rem .625rem .75rem}.mi-label{font-size:1.15rem}.mi-hint{font-size:.84rem}.table-head{font-size:.78rem}.code{font-size:2.6rem}.code-box small{font-size:.78rem}.team-title{font-size:1.3rem}.slot{min-height:3.625rem;padding:.5rem .625rem}.slot-name b{font-size:1.05rem}.slot-name small{font-size:.8rem}.status-line{font-size:.95rem}}@media (min-width:1100px) and (min-height:760px){.lobby-panel{gap:1.375rem;width:min(36.25rem,100%);padding:1.75rem 2.375rem 2rem}.lobby-panel.waiting{width:min(42.5rem,100%)}.logo-img{width:min(21.25rem,70%,30vh)}.lobby-panel .btn{min-height:4rem;font-size:1.15rem}.lobby-panel .card-head h2{font-size:2.5rem}.setting-text b{font-size:1.2rem}.segmented button{min-height:3.125rem;font-size:1.08rem}}.pager{touch-action:pan-y;flex-direction:column;gap:.875rem;display:flex}.pager-page{text-align:center;animation:page-in .35s var(--ease-out);flex-direction:column;align-items:center;gap:.5rem;display:flex}@keyframes page-in{0%{opacity:0;transform:translate(1.125rem)}}.pager-title{font-family:var(--display);color:#fff;text-shadow:0 3px #00000040;font-size:1.6rem;font-weight:900;line-height:1.15}.pager-visual{background:radial-gradient(#1f7a35 0%,#145a26 100%);border:2px solid #fec73559;border-radius:1.125rem;place-items:center;width:100%;min-height:11.625rem;margin-top:.25rem;padding:1rem .75rem;display:grid;box-shadow:inset 0 3px .625rem #00000073}.pager-visual.scene3d{height:14.5rem;min-height:0;padding:0;display:block;position:relative;overflow:hidden}.rules-stage{width:100%;height:100%;position:relative}.rules-label{white-space:nowrap;pointer-events:none;color:#fff;border:2px solid var(--edge);animation:label-in .4s var(--ease-out) both;background:#0a2510d1;border-radius:62.4375rem;padding:.25rem .75rem;font-size:.78rem;font-weight:900;position:absolute;top:0;left:0;transform:translate(-200%,-200%);box-shadow:0 3px .5rem #00000059}@media (max-width:480px){.rules-label{padding:3px .5625rem;font-size:.7rem}}.rules-label.we{background:var(--grad-gold);color:#3d2600;border-color:#fdeea9}.rules-label.they{background:var(--grad-red);border-color:#ef9a9a}.rules-label.note{color:var(--gold);border-color:#fec73580}@keyframes label-in{0%{opacity:0;scale:.7}}.pager-copy{flex-direction:column;gap:.75rem;width:100%;max-width:34rem;min-height:11.5rem;margin-top:.25rem;display:flex}.pager-rule{color:#fff;text-shadow:0 2px #0003;font-size:1.2rem;font-weight:700;line-height:1.35}.pager-rule b{color:var(--gold)}.pager-points{text-align:left;background:#0a25106b;border-radius:.875rem;flex-direction:column;gap:.5rem;padding:.75rem 1rem;list-style:none;display:flex}.pager-points li{color:#e6f4e8;animation:rise .4s var(--ease-out) both;padding-left:1.375rem;font-size:1rem;font-weight:500;line-height:1.45;position:relative}.pager-points li:before{content:"";background:var(--gold);border-radius:2px;width:.5rem;height:.5rem;position:absolute;top:.55em;left:3px;rotate:45deg;box-shadow:0 0 .375rem #fec73580}.pager-points b{color:#fff;font-weight:800}@keyframes deal-in{0%{opacity:0;transform:translateY(.875rem)rotate(-4deg)}}.rv-score{flex-direction:column;gap:.375rem;width:100%;list-style:none;display:flex}.rv-score li{text-align:left;background:#0a25108c;border-radius:.625rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.4375rem .75rem;font-size:.85rem;font-weight:600;display:flex}.rv-tokens{color:var(--gold);white-space:nowrap;flex:none;font-weight:900}.rv-tracks{flex-direction:column;gap:.75rem;width:100%;display:flex}.recap{color:var(--muted);text-align:left;flex-direction:column;gap:.25rem;padding-left:1.25rem;line-height:1.5;display:flex}.recap b{color:var(--gold)}.recap li::marker{color:var(--gold);font-weight:800}.modal-backdrop{padding:calc(1rem + var(--safe-t)) 1rem calc(1rem + var(--safe-b));-webkit-backdrop-filter:blur(.25rem);z-index:20;background:#0009;justify-content:center;align-items:center;animation:.3s fade;display:flex;position:absolute;inset:0}.modal-backdrop.overlay{z-index:50;position:fixed}@keyframes fade{0%{opacity:0}}.modal{background:var(--grad-panel);border:.25rem solid var(--gold);width:min(33.75rem,100%);max-height:100%;box-shadow:var(--shadow), inset 0 0 0 2px #fff9c459;text-align:center;animation:modal-in .5s var(--ease-spring);border-radius:1.5rem;flex-direction:column;gap:1rem;padding:.5rem 1.875rem 1.75rem;display:flex;position:relative;overflow:hidden}.modal.wide{width:min(40rem,100%)}.modal.wide.prompt{overscroll-behavior:contain;overflow-y:auto}@keyframes modal-in{0%{opacity:0;transform:translateY(2.5rem)scale(.92)}}.modal.prompt{gap:1.125rem;padding:1.625rem 1.5rem 1.375rem}.prompt-head{flex-direction:column;align-items:center;gap:.375rem;display:flex}.prompt-title{font-family:var(--display);color:#fff;text-shadow:0 3px #00000047;font-size:2.1rem;font-weight:900;line-height:1.1}.modal-backdrop.win .prompt-title{color:var(--gold)}.modal-backdrop.lose .prompt-title{color:#ffcdd2}.prompt-sub{max-width:36ch;color:var(--muted);font-size:.95rem;line-height:1.45}.prompt-sub b{color:#fff}.faceoff{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:.625rem;display:grid}.side{background:var(--surface-dark);border:2px solid var(--edge);animation:row-in .5s var(--ease-out) .1s both;border-radius:1rem;flex-direction:column;align-items:center;gap:2px;padding:.75rem .5rem;display:flex;box-shadow:inset 0 2px .25rem #00000080}.side.they{animation-delay:.18s}.side-label{letter-spacing:.14em;text-transform:uppercase;font-size:.75rem;font-weight:800}.side.we .side-label{color:var(--we)}.side.they .side-label{color:var(--they)}.side .num{color:#fff;font-size:2.6rem;font-weight:900;line-height:1.05}.side-note{color:var(--dim);font-size:.78rem;font-weight:700}.side.lead{border-color:var(--gold);box-shadow:inset 0 2px .25rem #00000080,0 0 0 3px #fec73538,0 .375rem 1.125rem #fec73540}.side.lead .side-note{color:var(--gold)}.side.they.lead{border-color:var(--they);box-shadow:inset 0 2px .25rem #00000080,0 0 0 3px #ff8a8033,0 .375rem 1.125rem #ff6b6b38}.side.they.lead .side-note{color:var(--they)}.faceoff-mid{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);align-self:center;font-size:.66rem;font-weight:800}.tracks{background:#0a251080;border-radius:1rem;flex-direction:column;gap:.625rem;padding:.875rem 1rem;display:flex}.tracks-title{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);text-align:left;font-size:.68rem;font-weight:800}.track{text-align:left;grid-template-columns:2.75rem 1fr 2.875rem;align-items:center;gap:.75rem;display:grid}.track-label{font-size:.85rem;font-weight:900}.track.we .track-label{color:var(--we)}.track.they .track-label{color:var(--they)}.track-cells{gap:.25rem;height:.875rem;display:grid}.track-cells i{background:#00000059;border-radius:.25rem;box-shadow:inset 0 1px 2px #00000073}.track.we .track-cells i.on{background:var(--grad-gold);box-shadow:0 1px #bc6c05}.track.they .track-cells i.on{background:var(--grad-red);box-shadow:0 1px #8b0000}.track-cells i.new{animation:cell-fill .55s var(--ease-spring) both}@keyframes cell-fill{0%{background:#00000059;transform:scaleY(.5)}60%{filter:brightness(1.35);transform:scaleY(1.4)}}.track-value{text-align:right;font-variant-numeric:tabular-nums;font-size:1rem;font-weight:900}.track-value small{color:var(--muted);font-size:.78rem;font-weight:700}.waiting-line{justify-content:center;align-items:center;gap:.5rem;display:flex}@keyframes soft-pulse{50%{opacity:.3;transform:scale(.7)}}.confetti{z-index:30;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.modal-backdrop.victory{background:radial-gradient(circle at 50% 45%,#ffd66657 0%,#28180073 45%,#000000a6 100%);animation:.5s fade;overflow:hidden}.victory-rays{pointer-events:none;width:260vmax;height:260vmax;animation:rays-in 1.2s var(--ease-out) both, rays-spin 40s linear infinite;background:repeating-conic-gradient(#ffdf8033 0deg 7deg,#0000 7deg 18deg);margin:-130vmax 0 0 -130vmax;position:absolute;top:45%;left:50%;-webkit-mask:radial-gradient(circle,#000 0%,#0009 14%,#0000 34%);mask:radial-gradient(circle,#000 0%,#0009 14%,#0000 34%)}@keyframes rays-in{0%{opacity:0;scale:.4}}@keyframes rays-spin{to{rotate:360deg}}.victory .modal{animation:modal-in .7s var(--ease-spring) .1s both;box-shadow:0 0 0 .375rem #fec73540, 0 0 5rem #fec7358c, var(--shadow), inset 0 0 0 2px #fff9c473}.victory .prompt-title{animation:2.4s ease-in-out infinite title-glow}@keyframes title-glow{50%{text-shadow:0 3px #00000047,0 0 1.625rem #fec735e6}}.modal-backdrop.defeat{-webkit-backdrop-filter:grayscale()brightness(.6)blur(3px);backdrop-filter:grayscale()brightness(.6)blur(3px);background:#10101080;animation:1.6s both drain}@keyframes drain{0%{-webkit-backdrop-filter:grayscale(0)brightness()blur();backdrop-filter:grayscale(0)brightness()blur();background:#10101000}}.defeat .modal{box-shadow:var(--shadow), inset 0 0 0 2px #ffffff29;animation:sink-in .9s var(--ease-out) .35s both;background:linear-gradient(#6f7872 0%,#474e4a 100%);border-color:#b5b5b5}@keyframes sink-in{0%{opacity:0;transform:translateY(-1.5rem)scale(.97)}}.defeat .eyebrow{color:#d6d6d6}.modal-backdrop.defeat .prompt-title{color:#ececec}.defeat .prompt-sub{color:#d0d0d0}.defeat .side{background:#00000047;border-color:#ffffff24}.defeat .side.they.lead{border-color:#cfcfcf;box-shadow:inset 0 2px .25rem #00000080}.defeat .faceoff-mid{color:#bdbdbd}.defeat .side .side-label,.defeat .side.they.lead .side-note{color:#e0e0e0}.is-mobile .modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#000000b8}.is-mobile .modal-backdrop.victory{background:radial-gradient(circle at 50% 45%,#ffd6664d 0%,#1e1200b3 45%,#000000d1 100%)}.is-mobile .modal-backdrop.defeat{-webkit-backdrop-filter:grayscale()brightness(.6);backdrop-filter:grayscale()brightness(.6);background:#1010108c}.is-mobile .lo-beam{filter:none}.lights-out{pointer-events:none;position:absolute;inset:0;overflow:hidden}.lights-out>*{display:block;position:absolute;inset:0}.lo-shade{opacity:0;animation:.55s linear both light-off}.lo-shade.s1{background:radial-gradient(80% 75% at 50% 46%,#0000 50%,#0009 100%)}.lo-shade.s2{background:radial-gradient(65% 60% at 50% 46%,#0000 42%,#000000a6 100%)}.lo-shade.s3{background:radial-gradient(50% 48% at 50% 46%,#0000 35%,#000c 100%)}@keyframes light-off{0%{opacity:0}12%{opacity:.75}20%{opacity:.1}30%{opacity:.9}38%{opacity:.35}52%,to{opacity:1}}.lo-beam{clip-path:polygon(calc(50% - 34px) 0,calc(50% + 34px) 0,calc(50% + min(300px,47vw)) 82%,calc(50% - min(300px,47vw)) 82%);filter:blur(.375rem);opacity:0;background:linear-gradient(#b9d4ff57 0%,#a0c3ff24 55%,#a0c3ff00 88%);animation:.9s linear both spot-on,5s ease-in-out infinite spot-breathe}.lo-pool{opacity:0;background:radial-gradient(6.875rem 2.125rem at 50% 0,#ebf3fff2 0%,#b9d4ff66 45%,#0000 75%),radial-gradient(min(20rem,50vw) 2.875rem at 50% 82%,#afcdff38 0%,#0000 70%),radial-gradient(min(28.75rem,85vw) min(21.25rem,55vh),#96bcff3d 0%,#96bcff14 45%,#0000 75%);animation:.9s linear both spot-on,5s ease-in-out infinite spot-breathe}@keyframes spot-on{0%{opacity:0}10%{opacity:.85}16%{opacity:0}30%{opacity:.6}36%{opacity:.15}55%,to{opacity:1}}@keyframes spot-breathe{0%,to{opacity:1}50%{opacity:.8}}.lo-dust{width:100%;height:100%}.defeat .end-prompt{box-shadow:var(--shadow), 0 -1rem 3.125rem -.75rem #a0c4ff73, inset 0 2px 0 #d6e4ff66, inset 0 0 0 2px #ffffff1f}.card-face{height:auto;transition:transform .25s var(--ease-out), box-shadow .25s, filter .25s;border-radius:7.8%/5.6%;display:block;box-shadow:0 .25rem .625rem #0006}.card-face.dim{filter:brightness(.6)saturate(.6)}.trick-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:.625rem;display:grid}.trick-cell{min-width:0;animation:deal-in .45s var(--ease-out) both;flex-direction:column;align-items:center;gap:.375rem;display:flex}.trick-cell .card-face{width:100%;max-width:5.25rem}.trick-cell.winner .card-face{box-shadow:0 0 0 3px var(--gold), 0 .625rem 1.375rem #fec73573;transform:translateY(-.375rem)}.trick-tag{letter-spacing:.1em;text-transform:uppercase;min-height:1.25rem;color:var(--muted);background:#0a25108c;border-radius:62.4375rem;padding:2px .5625rem;font-size:.62rem;font-weight:900}.trick-tag:empty{visibility:hidden}.trick-cell.winner .trick-tag{background:var(--grad-gold);color:#3d2600}.trick-cell small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.8rem;font-weight:800;overflow:hidden}.trick-cell.we small{color:var(--we)}.trick-cell.they small{color:var(--they)}.modal.prompt{border-radius:1.75rem;gap:1.375rem;padding:2.125rem 2rem 1.875rem}.prompt .eyebrow{font-size:.82rem}.prompt-title{font-size:2.5rem}.prompt-title.big{font-size:3.6rem}.prompt-sub{max-width:40ch;font-size:1.05rem}.prompt .btn{min-height:3.625rem;font-size:1.08rem}.faceoff{gap:.875rem}.side{border-radius:1.125rem;padding:1rem .625rem}.side-label{font-size:.86rem}.side .num{font-size:3.2rem}.side-note{font-size:.9rem}.faceoff-mid{font-size:.74rem}.tracks{border-radius:1.125rem;gap:.75rem;padding:1.125rem 1.25rem}.tracks-title{font-size:.76rem}.track{grid-template-columns:3.25rem 1fr 3.75rem;gap:.875rem}.track-label{font-size:1rem}.track-cells{gap:.3125rem;height:1.125rem}.track-value{font-size:1.2rem}.track-value small{font-size:.88rem}.trick-row{gap:.875rem}.trick-cell .card-face{max-width:7rem}.trick-cell small{font-size:.92rem}.trick-tag{font-size:.7rem}.pager-title{font-size:1.95rem}.pager-visual{min-height:13.75rem}.pager-rule{font-size:1.28rem}.pager-points li{font-size:1.04rem}.rv-score li{padding:.5625rem .875rem;font-size:.95rem}@media (min-width:1100px) and (min-height:760px){.modal{width:min(37.5rem,100%)}.pager-visual.scene3d{height:16.875rem}.rules-label{font-size:.86rem}.modal.wide{width:min(43.75rem,100%)}.modal.prompt{padding:2.375rem 2.375rem 2.125rem}.prompt-title{font-size:2.8rem}.prompt-title.big{font-size:4.2rem}.side .num{font-size:3.6rem}}.hud{pointer-events:none;position:absolute;inset:0}.hud>*{pointer-events:auto}.scoreboard{top:calc(.75rem + var(--safe-t));left:calc(.75rem + var(--safe-l));animation:rise .5s var(--ease-out);gap:.75rem;display:flex;position:absolute}.team-score{background:var(--surface-dark);border:2px solid var(--edge);border-radius:1rem;flex-direction:column;align-items:center;gap:3px;min-width:7.75rem;padding:.5rem 1.125rem .625rem;display:flex;box-shadow:inset 0 2px .25rem #00000080,0 .25rem .375rem #0006}.team-score.we{border-color:var(--gold)}.tricks-focus .num{color:#fff;font-size:2.4rem;font-weight:900;line-height:1}.team-score.we .tricks-focus .num{color:var(--gold)}.team-score h3{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:800}.tokens-sub{color:var(--muted);white-space:nowrap;font-size:.78rem;font-weight:600}.tokens-sub b{color:#fff;font-size:1rem}.top-controls{top:calc(.75rem + var(--safe-t));right:calc(.75rem + var(--safe-r));animation:rise .5s var(--ease-out);align-items:center;gap:.875rem;display:flex;position:absolute}.ctl-row{gap:.625rem;display:flex}.trump-chip{color:#212121;background:#ffffffeb;border-radius:62.4375rem;align-items:center;gap:.625rem;min-height:2.875rem;padding:.5rem 1.125rem;font-size:.95rem;font-weight:800;display:flex;box-shadow:0 .25rem .625rem #00000059}.trump-chip b{color:#9e9e9e}.trump-chip.set{box-shadow:0 0 0 3px var(--gold), 0 .25rem .875rem #fec73580;animation:pop .6s var(--ease-spring)}.ctl-btn{letter-spacing:.02em;text-transform:uppercase;color:#fff;text-shadow:1px 1px 2px #00000073;border-radius:62.4375rem;justify-content:center;align-items:center;gap:.5rem;min-height:2.875rem;padding:.5rem 1.125rem;font-size:.85rem;font-weight:800;transition:transform .1s,box-shadow .1s,background .2s;display:inline-flex}.ctl-btn.gold{background:var(--grad-gold);border:2px solid #fdeea9;box-shadow:0 .25rem #bc6c05}.ctl-btn.green{background:var(--grad-green);border:2px solid #7ef893;box-shadow:0 .25rem #0d541b}.ctl-btn.red{background:var(--grad-red);border:2px solid #ef9a9a;box-shadow:0 .25rem #8b0000}.ctl-btn.purple{background:linear-gradient(#b388ff 0%,#7c4dff 100%);border:2px solid #d1c4e9;box-shadow:0 .25rem #4527a0}.ctl-btn.blue{background:var(--grad-blue);border:2px solid #90caf9;box-shadow:0 .25rem #0d47a1}.ctl-btn:hover:not(:disabled){transform:translateY(2px)}.ctl-btn:active:not(:disabled){box-shadow:none;transform:translateY(.25rem)}.nameplate,.my-plate{border:2px solid var(--edge);white-space:nowrap;background:#0a2510d1;border-radius:62.4375rem;align-items:center;gap:.375rem;padding:.3125rem .875rem;font-size:.88rem;font-weight:800;transition:background .25s,color .25s,border-color .25s,box-shadow .25s;display:flex;position:absolute;box-shadow:0 3px .5rem #00000059}.nameplate{will-change:transform;pointer-events:none;max-width:40vw;top:0;left:0}.nameplate b{text-overflow:ellipsis;overflow:hidden}.nameplate.active,.my-bar.active .my-plate{background:var(--gold);color:#212121;border-color:#fdeea9;box-shadow:0 0 0 3px #fec7354d,0 0 1.125rem #fec7358c}.seat-timer{width:1.75rem;height:1.75rem;animation:pop .3s var(--ease-spring);flex:none;place-items:center;margin:-.125rem -.5rem -.125rem .125rem;display:grid;position:relative}.seat-timer svg{width:100%;height:100%;position:absolute;inset:0;rotate:-90deg}.seat-timer circle{fill:none;stroke-width:4px}.seat-timer .st-track{stroke:#2121212e}.seat-timer .st-time{stroke:#1b5e20;stroke-linecap:round;transition:stroke-dashoffset .25s linear,stroke .25s}.seat-timer.low .st-time{stroke:#d32f2f}.seat-timer b{color:#212121;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:900;line-height:1;position:relative}.seat-timer.low b{color:#c62828}.nameplate.offline{opacity:.45;filter:grayscale()}.trick-point{color:#3d2600;background:var(--grad-gold);pointer-events:none;animation:point-up 1.3s var(--ease-out) forwards;border-radius:62.4375rem;padding:2px .5625rem;font-size:.85rem;font-weight:900;position:absolute;top:-.375rem;left:50%;box-shadow:0 3px #bc6c05}.trick-point.they{color:#fff;background:var(--grad-red);box-shadow:0 3px #8b0000}@keyframes point-up{0%{opacity:0;transform:translate(-50%,.375rem)scale(.6)}20%{opacity:1;transform:translate(-50%,-.875rem)scale(1.15)}70%{opacity:1;transform:translate(-50%,-1.625rem)scale(1)}to{opacity:0;transform:translate(-50%,-2.375rem)scale(.95)}}.my-bar{left:50%;bottom:calc(var(--hand-h) + 2px);pointer-events:none;position:absolute;transform:translate(-50%)}.my-plate{border-color:var(--gold);position:relative}.message-bar{will-change:transform;pointer-events:none;width:max-content;max-width:calc(100vw - 1.5rem);display:grid;position:absolute;top:0;left:0}.message{border:2px solid var(--edge);min-height:2.5rem;color:var(--muted);white-space:nowrap;pointer-events:auto;animation:msg-in .28s var(--ease-out);background:#0a2510e6;border-radius:62.4375rem;grid-area:1/1;justify-self:center;align-items:center;gap:.625rem;padding:.5rem .5rem .5rem 1.125rem;font-size:.92rem;font-weight:600;display:flex;box-shadow:0 .375rem 1rem #00000059}.message:not(:has(.message-action)){padding-right:1.125rem}.message b{color:#fff}.message.won{border-color:var(--gold);color:#fff}.message.won b{color:var(--gold)}.message.lost{border-color:var(--they);color:#fff}.message.lost b{color:var(--they)}.message.turn{border-color:var(--gold);color:#fff}.message.leaving{pointer-events:none;animation:.24s forwards msg-out}.message-action{text-transform:uppercase;color:#fff;text-shadow:1px 1px 2px #00000073;background:var(--grad-gold);border:2px solid #fdeea9;border-radius:62.4375rem;padding:.375rem 1rem;font-size:.85rem;font-weight:800;transition:transform .1s,box-shadow .1s;box-shadow:0 3px #bc6c05}.message-action:active{box-shadow:none;transform:translateY(3px)}@keyframes msg-in{0%{opacity:0;transform:translateY(.5rem)scale(.96)}}@keyframes msg-out{to{opacity:0;transform:translateY(-.375rem)scale(.97)}}.announce{z-index:18;pointer-events:none;background:radial-gradient(#00000073,#0000 70%);justify-content:center;align-items:center;animation:2s both announce-life;display:flex;position:absolute;inset:0}@keyframes announce-life{0%{opacity:0}10%{opacity:1}82%{opacity:1}to{opacity:0}}.announce-card{background:var(--grad-panel);border:.25rem solid var(--gold);box-shadow:var(--shadow), 0 0 3.75rem #fec73559;animation:modal-in .6s var(--ease-spring);border-radius:1.5rem;flex-direction:column;align-items:center;gap:.25rem;padding:0 2.25rem 1.375rem;display:flex}.announce-medal{animation:medal-in .9s var(--ease-spring);margin-top:-2.875rem;margin-bottom:.5rem}@keyframes medal-in{0%{transform:scale(.2)rotate(-180deg)}}.announce-card small{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:800}.announce-card h2{font-family:var(--display);color:var(--gold);text-shadow:0 3px #0000004d;font-size:2.6rem;font-weight:900;line-height:1.05}.announce-card p{color:var(--muted);font-size:.85rem;font-weight:600}.trump-picker{z-index:10;text-align:center;width:min(32.5rem,100vw - 1.5rem);animation:picker-in .5s var(--ease-spring);flex-direction:column;gap:.875rem;padding:.25rem 1.625rem 1.625rem;display:flex;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}@keyframes picker-in{0%{opacity:0;transform:translate(-50%,-40%)scale(.92)}}.suit-grid{grid-template-columns:repeat(4,1fr);gap:.625rem;display:grid}.suit-btn{color:#212121;transition:transform .15s var(--ease-spring), box-shadow .15s;animation:row-in .45s var(--ease-spring) both;background:#fff;border-radius:1rem;flex-direction:column;align-items:center;gap:.25rem;padding:.875rem .25rem .625rem;display:flex;box-shadow:0 .3125rem #9e9e9e,0 .5rem .75rem #0000004d}.suit-btn:hover,.suit-btn:focus-visible{box-shadow:0 .5625rem 0 #9e9e9e, 0 0 0 .25rem var(--gold), 0 .875rem 1.25rem #00000059;outline:none;transform:translateY(-.25rem)}.suit-btn:active{transform:translateY(3px);box-shadow:0 2px #9e9e9e}.suit-btn path{fill:#212121}.suit-btn.red path{fill:#d32f2f}.sb-name{font-size:.78rem;font-weight:800}.suit-btn small{color:#616161;font-size:.66rem;font-weight:600}.reconnect-card{top:calc(6rem + var(--safe-t));z-index:12;text-align:left;border-width:3px;border-radius:1.125rem;align-items:center;gap:.75rem;width:max-content;max-width:calc(100vw - 1.5rem);padding:.625rem 1.125rem .625rem .625rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.reconnect-card b{font-size:.92rem;font-weight:800}.reconnect-card small{color:var(--muted);font-size:.76rem;display:block}.ring{color:var(--gold);flex:none;place-items:center;display:grid;position:relative}.ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.ring-bg{fill:#00000059;stroke:#ffffff26}.ring-fg{fill:none;stroke:currentColor;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.ring-fg.low{stroke:var(--red)}.ring span{color:#fff;font-size:.7rem;font-weight:900;position:relative}.nameplate.active .ring span,.my-bar.active .ring span{color:#212121}.conn-banner{top:calc(.75rem + var(--safe-t));background:var(--grad-red);z-index:30;animation:pop .35s var(--ease-spring);border:2px solid #ef9a9a;border-radius:62.4375rem;align-items:center;gap:.5rem;padding:.5rem 1.125rem;font-size:.85rem;font-weight:800;display:flex;position:absolute;left:50%;transform:translate(-50%)}.toasts{top:calc(4.75rem + var(--safe-t));z-index:40;pointer-events:none;flex-direction:column;align-items:center;gap:.375rem;width:max-content;max-width:calc(100vw - 1.5rem);display:flex;position:absolute;left:50%;transform:translate(-50%)}.toast{border:2px solid var(--edge);animation:pop .35s var(--ease-spring);background:#0a2510f2;border-radius:62.4375rem;align-items:center;gap:.625rem;padding:.625rem 1.125rem;font-size:.88rem;font-weight:700;display:flex;box-shadow:0 .5rem 1.25rem #00000073}.toast.error{border-color:#ef9a9a}.coach{top:calc(6.25rem + var(--safe-t));border:3px solid var(--gold);width:min(23.75rem,100vw - 1.5rem);box-shadow:var(--shadow);z-index:11;color:#fff;animation:pop .4s var(--ease-spring);background:#0a2510f2;border-radius:1.125rem;flex-direction:column;gap:.5rem;padding:.875rem 1rem;font-size:.95rem;line-height:1.45;display:flex;position:absolute;left:50%;transform:translate(-50%)}.coach b{color:var(--gold)}.coach .btn{align-self:flex-end}.fatal{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;height:100%;padding:1.5rem;display:flex}.fatal h1{font-family:var(--display);color:var(--gold);font-size:2.6rem}.rules-modal .card-head{padding-top:0}.head-btn.close{background:var(--grad-red);border-color:#ff9e9e;box-shadow:0 .25rem #8e1b1b,0 .375rem .5rem #0000004d}.modal-x{z-index:1;position:absolute;top:.875rem;right:.875rem}.head-btn.close:hover{box-shadow:0 2px #8e1b1b,0 .25rem .375rem #0000004d}.swipe-up-hint{left:50%;bottom:calc(1rem + var(--safe-b));z-index:9;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;animation:.4s both fade;display:flex;position:fixed;translate:-50%}.swipe-up-hint span{border:2px solid var(--gold);color:#fff;white-space:nowrap;background:#06240fe6;border-radius:999px;padding:.4375rem 1rem;font-size:.95rem;font-weight:800;box-shadow:0 .375rem 1rem #0006}.swipe-hand{filter:drop-shadow(0 .625rem .75rem #00000073)drop-shadow(0 0 .125rem #00000040);width:5.5rem;height:6.1875rem;animation:4s cubic-bezier(.45,0,.2,1) both hint-swipe,4s both hint-life;overflow:visible}.swipe-hand .sh-ripple{transform-box:fill-box;transform-origin:50%;animation:4s ease-out both hint-ripple}@keyframes hint-life{0%{opacity:0}6%,90%{opacity:1}to{opacity:0}}@keyframes hint-swipe{0%{transform:translateY(.75rem)scale(1.08)}18%{transform:translateY(1.25rem)scale(1)}28%{transform:translateY(1.25rem)scale(.92)}80%,to{transform:translateY(-3.5rem)scale(.92)}}@keyframes hint-ripple{0%,20%{opacity:0;transform:scale(.2)}30%{opacity:1;transform:scale(1)}60%,to{opacity:0;transform:scale(1.6)}}.practice-points{text-align:left;background:#0a25106b;border-radius:.875rem;flex-direction:column;gap:.625rem;padding:.875rem 1.125rem;list-style:none;display:flex}.practice-points li{color:#e6f4e8;animation:rise .4s var(--ease-out) both;font-size:1.05rem;font-weight:500;line-height:1.45}.practice-points li:nth-child(2){animation-delay:70ms}.practice-points li:nth-child(3){animation-delay:.14s}.practice-points b{color:var(--gold)}@media (min-aspect-ratio:1){:root{--hand-h:24dvh}}@media (max-aspect-ratio:1){:root{--hand-h:16dvh}.trump-picker{top:60%}.ctl-btn span{display:none}.ctl-btn{width:2.875rem;padding:0}}@media (max-aspect-ratio:1) and (max-width:699px){.top-controls{display:contents}.trump-chip{top:calc(.75rem + var(--safe-t));right:calc(.75rem + var(--safe-r));position:absolute}.team-score{width:6.75rem;min-width:0;padding:.375rem .625rem .5rem}.tricks-focus .num{font-size:2.2rem}.ctl-row{top:calc(7.375rem + var(--safe-t));left:calc(.75rem + var(--safe-l));right:calc(.75rem + var(--safe-r));animation:rise .5s var(--ease-out);grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid;position:absolute}.ctl-btn{border-radius:.875rem;flex-direction:column;gap:3px;width:auto;min-height:3.125rem;padding:.375rem .25rem;font-size:.68rem}.ctl-btn span{white-space:nowrap;display:block}.toasts{top:calc(11.25rem + var(--safe-t))}.coach{top:calc(11.5rem + var(--safe-t))}}@media (min-aspect-ratio:1) and (max-width:1000px){.ctl-btn span{display:none}.ctl-btn{width:2.875rem;padding:0}}@media (max-width:480px){.lobby{padding-left:calc(.625rem + var(--safe-l));padding-right:calc(.625rem + var(--safe-r))}.lobby-panel{gap:1.125rem;padding:1.375rem 1.25rem 1.5rem}.pager-copy{min-height:14.5rem}.pager-rule{font-size:1.12rem}.pager-points{padding:.625rem .75rem}.lobby-panel .row .btn{letter-spacing:.02em;white-space:nowrap;padding-left:.5rem;padding-right:.5rem;font-size:.95rem}.card-head h2{font-size:1.9rem}.lobby-panel .card-head h2{font-size:1.95rem}.modal{padding:.25rem 1.125rem 1.125rem}.tokens-sub{font-size:.7rem}.trump-chip{padding:.375rem .875rem;font-size:.85rem}.nameplate{padding:.25rem .6875rem;font-size:.8rem}.teams{grid-template-columns:1fr}.suit-btn small{font-size:.62rem}.sb-name{font-size:.7rem}.modal-backdrop{padding-left:.75rem;padding-right:.75rem}.modal.prompt{gap:1.25rem;padding:1.75rem 1.25rem 1.5rem}.prompt-title{font-size:2.2rem}.prompt-title.big{font-size:3.1rem}.side .num{font-size:2.9rem}.tracks{padding:.875rem 1rem}.track{grid-template-columns:2.75rem 1fr 3.375rem;gap:.625rem}.trick-row{gap:.625rem}.pager-visual{min-height:12.5rem}.pager-visual.scene3d{height:13.125rem}.btn{padding:.875rem 1.125rem;font-size:1rem}}@media (max-height:500px){.lobby{align-items:flex-start}.lobby-panel{gap:.625rem;padding:.625rem 1.25rem .875rem}.logo-img{width:7.5rem}.lobby-panel{width:min(40rem,100%)}.lobby-buttons{flex-direction:row;gap:.625rem}.lobby-buttons .btn{flex:1;padding:.5rem .625rem;font-size:.82rem}.btn{min-height:2.625rem;padding:.5rem 1rem}.team-score{min-width:6rem;padding:.25rem .75rem .375rem}.tricks-focus .num{font-size:1.6rem}.ctl-row{gap:.5rem}.ctl-btn span{display:none}.ctl-btn{width:2.5rem;min-height:2.5rem;padding:0}.trump-chip{min-height:2.5rem;padding:.375rem .875rem}.modal-backdrop{padding:.5rem 1rem}.modal{gap:.5rem}.modal.prompt{gap:.625rem;width:min(37.5rem,100%);padding:.875rem 1.5rem}.prompt .btn{min-height:2.875rem}.track-cells{height:.875rem}.prompt-title{font-size:1.5rem}.prompt-title.big{font-size:2rem}.prompt-sub{font-size:.85rem}.side{padding:.375rem .5rem}.side .num{font-size:1.8rem}.tracks{gap:.375rem;padding:.5rem .875rem}.trick-cell .card-face{max-width:3.75rem}.pager-visual{min-height:0;padding:.5rem}.pager-visual.scene3d{height:9.375rem;padding:0}.pager-copy{gap:.375rem;min-height:0}.pager-rule{font-size:1rem}.pager-points{gap:.25rem;padding:.5rem .75rem}.pager-points li{font-size:.85rem}.pager{gap:.5rem}.pager-title{font-size:1.4rem}.rv-score li{padding:.3125rem .75rem;font-size:.85rem}.badge-xl{width:4rem;height:4rem}.trump-picker{gap:.5rem;top:46%}.trump-picker .lede{display:none}.coach{top:calc(4.375rem + var(--safe-t))}.message{min-height:2.125rem;font-size:.8rem}.nameplate,.my-plate{padding:3px .625rem;font-size:.8rem}.reconnect-card{top:calc(4.375rem + var(--safe-t))}.announce-card h2{font-size:1.9rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ctl-btn.challenge-toggle.off{color:#e2d6ff;background:linear-gradient(#5b3aa8 0%,#2a1260 100%);border:2px solid #9b7bff;box-shadow:0 .25rem #1a0840}.ctl-btn.challenge-toggle.on{border:2px solid var(--gold);color:#fff;background:linear-gradient(#6a3fd1 0%,#2e1065 100%);box-shadow:0 .25rem #1a0840,0 0 .875rem #fec7358c}.ctl-btn.challenge-toggle.on svg{color:var(--gold);filter:drop-shadow(0 0 .25rem #fec735cc)}.challenge-chip{letter-spacing:.02em;text-transform:uppercase;color:#fff;white-space:nowrap;box-shadow:0 0 0 2px var(--gold);animation:pop .5s var(--ease-spring);background:linear-gradient(#6a3fd1 0%,#2e1065 100%);border-radius:999px;padding:.1875rem .625rem;font-size:.72rem;font-weight:900}.challenge-chip.loneWolf{background:linear-gradient(#7b4fe0 0%,#3a1680 100%)}.picker-choice{gap:.75rem;display:grid}.picker-note{color:var(--muted);font-size:.85rem;line-height:1.4}.picker-note b{color:#fff}.picker-actions{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.625rem;display:grid}.challenge-btn{color:#fff;text-shadow:1px 1px 2px #00000073;border:2px solid var(--gold);transition:transform .12s var(--ease-spring), box-shadow .12s;animation:row-in .45s var(--ease-spring) .3s both;background:linear-gradient(#6a3fd1 0%,#2e1065 100%);border-radius:1rem;flex-direction:column;align-items:center;gap:.125rem;padding:.75rem 1rem;display:flex;box-shadow:0 .3125rem #1a0840,0 0 1rem #6a3fd173}.challenge-btn b{font-family:var(--display);letter-spacing:.01em;font-size:1.25rem;font-weight:900}.challenge-btn small{color:#e7dcff;font-size:.8rem;font-weight:600}.challenge-btn:hover{transform:translateY(-2px);box-shadow:0 .4375rem #1a0840,0 0 1.375rem #fec73573}.challenge-btn:active{transform:translateY(3px);box-shadow:0 2px #1a0840}.challenge-btn.wolf{background:linear-gradient(#7b4fe0 0%,#3a1680 100%)}.challenge-btn.redeal{background:var(--grad-blue);border-color:#90caf9;box-shadow:0 .3125rem #0d47a1}.challenge-btn.redeal small{color:#e3f2fd}.trump-picker.challenge.shadowCall,.trump-picker.challenge.loneWolf{box-shadow:var(--shadow), 0 0 0 .25rem #6a3fd159, 0 0 2.5rem #6a3fd173;border-color:#9b7bff}.trump-picker.challenge .card-head h2{color:var(--gold)}.asking-row{justify-content:center;align-items:center;gap:.875rem;padding-bottom:.5rem;display:flex}.asking-row .lede{margin:0}.stakes{gap:.5rem;list-style:none;display:grid}.stakes li{text-align:left;background:#0a251073;border-radius:.75rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem .875rem;font-size:.95rem;display:flex}.stakes li b{white-space:nowrap}.stakes li.win b{color:var(--gold)}.stakes li.lose b{color:var(--they)}.ask-timer{color:var(--muted);justify-content:center;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.modal.challenge-ask.shadowCall,.modal.challenge-ask.loneWolf{border-color:#9b7bff}.nameplate.out{opacity:.75;border-style:dashed}.np-out{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:700}.challenge-fx{z-index:45;pointer-events:none;place-items:center;animation:7s both cfx-life;display:grid;position:fixed;inset:0;overflow:hidden}.challenge-fx.ours{background:radial-gradient(circle at 50% 45%,#ffd66652 0%,#2818006b 45%,#0009 100%)}.challenge-fx.theirs{background:radial-gradient(circle at 50% 45%,#ff3c3c59 0%,#3c00008c 50%,#000000bf 100%)}.cfx-rays{width:260vmax;height:260vmax;animation:rays-in .9s var(--ease-out) both, rays-spin 30s linear infinite;background:repeating-conic-gradient(#ffdf8038 0deg 7deg,#0000 7deg 18deg);margin:-130vmax 0 0 -130vmax;position:absolute;top:45%;left:50%;-webkit-mask:radial-gradient(circle,#000 0%,#0009 14%,#0000 34%);mask:radial-gradient(circle,#000 0%,#0009 14%,#0000 34%)}.challenge-fx.theirs .cfx-rays{animation:rays-in .6s var(--ease-out) both, rays-spin 30s linear reverse infinite, cfx-throb .7s ease-in-out .3s 3;background:repeating-conic-gradient(#ff525247 0deg 5deg,#0000 5deg 15deg)}.cfx-card{border:.25rem solid var(--gold);box-shadow:0 0 0 .375rem #fec73540, 0 0 5rem #fec73580, var(--shadow);text-align:center;max-width:calc(100vw - 2rem);animation:cfx-in .7s var(--ease-spring) both;background:linear-gradient(#6a3fd1 0%,#2e1065 100%);border-radius:1.75rem;flex-direction:column;align-items:center;gap:.375rem;padding:1.5rem 2.25rem 1.75rem;display:flex;position:relative}.challenge-fx.loneWolf .cfx-card{background:linear-gradient(#7b4fe0 0%,#3a1680 100%)}.challenge-fx.theirs .cfx-card{box-shadow:0 0 0 .375rem #ff52524d, 0 0 5rem #ff323299, var(--shadow);animation:cfx-in .6s var(--ease-spring) both, cfx-shake .5s ease .35s both;background:linear-gradient(#b71c1c 0%,#3e0303 100%);border-color:#ff8a80}.cfx-card small{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:.85rem;font-weight:900}.challenge-fx.theirs .cfx-card small{color:#ffcdd2}.cfx-card h2{font-family:var(--display);color:#fff;text-shadow:0 3px #00000059,0 0 1.5rem #fec735b3;font-size:3.4rem;font-weight:900;line-height:1.05}.challenge-fx.theirs .cfx-card h2{text-shadow:0 3px #0006,0 0 1.5rem #ff5252e6}.cfx-card p{color:#f3eaff;max-width:22rem;font-size:1.05rem;font-weight:600;line-height:1.4}.cfx-x{background:var(--grad-gold);color:#3d2600;width:3.75rem;height:3.75rem;animation:pop .6s var(--ease-spring) .35s both;border:3px solid #fff3c4;border-radius:50%;place-items:center;font-size:1.35rem;font-weight:900;display:grid;position:absolute;top:-1.25rem;right:-1.25rem;box-shadow:0 .375rem 1rem #00000073}.challenge-fx.theirs .cfx-x{background:var(--grad-red);color:#fff;border-color:#ffcdd2}@keyframes cfx-life{0%{opacity:0}4%,92%{opacity:1}to{opacity:0}}@keyframes cfx-in{0%{opacity:0;transform:scale(.6)translateY(2rem)}}@keyframes cfx-shake{0%,to{translate:0}20%{translate:-.5rem}40%{translate:.5rem}60%{translate:-.3125rem}80%{translate:.3125rem}}@keyframes cfx-throb{50%{opacity:.45}}.pager-section{color:#fff;letter-spacing:.08em;background:linear-gradient(#6a3fd1 0%,#2e1065 100%);border-radius:999px;margin-right:.5rem;padding:.125rem .5rem;display:inline-block}.rv-challenge{gap:.75rem;width:100%;display:grid}.rv-toggle{justify-content:center;gap:.75rem;display:flex}.rv-toggle .ctl-btn{pointer-events:none;min-height:2.5rem}.rv-stakes li{grid-template-columns:1fr auto;row-gap:.125rem;display:grid}.rv-stakes li small{text-align:left;color:var(--muted);grid-column:1/-1;font-size:.8rem}.practice-points li:nth-child(4){animation-delay:.21s}@media (prefers-reduced-motion:reduce){.challenge-fx .cfx-rays,.challenge-fx .cfx-card{animation:none}}@media (max-aspect-ratio:1) and (max-width:699px){.ctl-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:.375rem}.ctl-btn{letter-spacing:0;font-size:.6rem}.challenge-chip{padding:.125rem .4375rem;font-size:.6rem}.cfx-card{padding:1.25rem 1.5rem 1.5rem}.cfx-card h2{font-size:2.6rem}.cfx-card p{font-size:.95rem}.cfx-x{width:3.25rem;height:3.25rem;font-size:1.15rem;top:-1rem;right:-.75rem}.stakes li{font-size:.88rem}}@media (max-height:500px){.challenge-btn{padding:.5rem .75rem}.challenge-btn b{font-size:1.05rem}.picker-note{display:none}.cfx-card h2{font-size:2.2rem}}@media (max-aspect-ratio:1) and (max-width:699px){.trump-chip .challenge-chip{position:absolute;top:calc(100% + .375rem);right:0}}.ctl-btn.challenge-toggle{position:relative}.left-count{background:var(--grad-gold);color:#3d2600;min-width:1.375rem;height:1.375rem;text-shadow:none;border:2px solid #fff3c4;border-radius:999px;place-items:center;padding:0 .3125rem;font-size:.75rem;font-weight:900;line-height:1;display:grid;position:absolute;top:-.5rem;right:-.375rem;box-shadow:0 2px .375rem #0006}.left-count.none{color:#fff;background:#6d6d80;border-color:#b9b9c8}.challenge-btn{position:relative}.left-badge{background:var(--grad-gold);color:#3d2600;text-shadow:none;border:2px solid #fff3c4;border-radius:999px;padding:.125rem .5rem;font-size:.72rem;font-weight:900;position:absolute;top:-.625rem;right:.75rem;box-shadow:0 2px .375rem #0006}.make-host{border:1.5px solid var(--gold);color:var(--gold);white-space:nowrap;background:#fec73526;border-radius:999px;flex:none;padding:.3125rem .625rem;font-size:.72rem;font-weight:800}.make-host:hover{background:#fec7354d}.modal.challenge-info{border-color:#9b7bff}.ci-left{grid-template-columns:1fr 1fr;gap:.625rem;display:grid}.ci-count{border:2px solid var(--gold);text-align:left;background:linear-gradient(#6a3fd1 0%,#2e1065 100%);border-radius:.875rem;align-items:center;gap:.625rem;padding:.625rem .875rem;display:flex}.ci-count b{color:var(--gold);font-size:1.9rem;font-weight:900;line-height:1}.ci-count span{color:#efe6ff;font-size:.82rem;font-weight:700;line-height:1.25}.ci-count.none b{color:#c9c9d6}.ci-count.theirs{background:#0a251080;border-color:#ff8a8099}.ci-count.theirs b{color:var(--they)}.ci-list{gap:.625rem;list-style:none;display:grid}.ci-list li{text-align:left;background:#2e10658c;border:1.5px solid #9b7bff99;border-radius:.875rem;gap:.25rem;padding:.75rem .875rem;display:grid}.ci-list li.muted{opacity:.6}.ci-head{justify-content:space-between;align-items:center;display:flex}.ci-head b{font-family:var(--display);font-size:1.25rem;font-weight:900}.ci-x{background:var(--grad-gold);color:#3d2600;border-radius:999px;padding:.125rem .5rem;font-size:.8rem;font-weight:900}.ci-list p{color:#fff;font-size:.92rem;font-weight:600;line-height:1.35}.ci-list small{color:var(--muted);font-size:.82rem;line-height:1.35}.ci-list em{color:var(--gold);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-style:normal;font-weight:800}.ci-rules{color:var(--muted);font-size:.85rem}.ci-toggle{text-align:left;background:#0a251073;border-radius:.875rem;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .875rem;display:flex}.ci-toggle div{gap:.125rem;display:grid}.ci-toggle small{color:var(--muted);font-size:.8rem}
