:root{--gold:#e9c46a;--gold-hi:#f7e2a6;--gold-lo:#b9883a;--ivory:#f4ead6;--ink:#2a1a08;--us:#f0c766;--them:#9fd0e0;--panel:linear-gradient(170deg, #281b11f2, #110b07f7);--gold-grad:linear-gradient(180deg, #f6dc8e 0%, #e2b458 55%, #c08b37 100%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;color:var(--ivory);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#0c0805;margin:0;font-family:Nunito Sans,system-ui,sans-serif;overflow:hidden}button,input,select{font-family:inherit;font-size:inherit}.room{background:radial-gradient(75% 70% at 50% 46%,#2f8653 0%,#246c42 42%,#194f30 78%,#10341f 100%);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.room:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 12vmin #00000073}.stage{z-index:1;touch-action:none;flex:none;position:relative}.felt-noise{opacity:.42;background-size:calc(240px * var(--k));pointer-events:none;position:absolute;inset:0}.lamp{pointer-events:none;background:radial-gradient(50% 46% at 50% 44%,#fff4cd1c,#0000 72%);position:absolute;inset:0}.felt-mark{z-index:2;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;color:#eee2ba80;text-shadow:0 1px #00000073;pointer-events:none;font-family:Cinzel,serif;font-size:.66em;font-weight:600;position:absolute;transform:translate(-50%)}.felt-mark.beside{transform:translate(-100%,-50%)}.felt-logo{z-index:2;letter-spacing:.3em;white-space:nowrap;color:#0824126b;text-shadow:0 1px #ffffff12;pointer-events:none;font-family:Cinzel,serif;font-size:.95em;font-weight:700;position:absolute}.card{perspective:900px;transform-origin:50%;will-change:transform;pointer-events:none;position:absolute;top:0;left:0}.card.interactive{pointer-events:auto;cursor:grab;touch-action:none}.card.dragging{cursor:grabbing}.card-flip{width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,.7,.25,1);position:relative}.card-face{backface-visibility:hidden;box-shadow:0 calc(1px * var(--k)) calc(1.5px * var(--k)) #0006, 0 calc(5px * var(--k)) calc(12px * var(--k)) #00000042;background:#fbf8f1;transition:box-shadow .2s;position:absolute;inset:0;overflow:hidden}.card-face img{pointer-events:none;width:100%;height:100%;display:block}.card-face.back{transform:rotateY(180deg)}.card.selected .card-face{box-shadow:0 0 0 calc(3px * var(--k)) var(--gold), 0 0 calc(18px * var(--k)) #f2c75c8c, 0 calc(12px * var(--k)) calc(24px * var(--k)) #0006}.card.dragging .card-face{box-shadow:0 0 0 calc(3px * var(--k)) var(--gold), 0 calc(22px * var(--k)) calc(40px * var(--k)) #00000080}.lock-badge{aspect-ratio:1;background:#1e1208d9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e9c46a'%3E%3Cpath d='M7 10V8a5 5 0 0 1 10 0v2h1a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zm2 0h6V8a3 3 0 0 0-6 0z'/%3E%3C/svg%3E") 50%/58% no-repeat;border-radius:50%;width:26%;position:absolute;bottom:6%;right:8%;box-shadow:0 0 0 2px #e9c46acc}.band{z-index:5;border:1.5px dashed #0000;border-radius:1em;transition:background .25s,border-color .25s,box-shadow .25s;position:absolute}.band-hint{color:var(--gold);letter-spacing:.08em;font-size:.7em;font-weight:700;position:absolute;bottom:.5em;right:.9em}.band.can-drop{cursor:pointer;background:#f2c75c0d;border-color:#f2c75c8c}.band.drop-hover{border-color:var(--gold);background:#f2c75c21;box-shadow:inset 0 0 2em #f2c75c33}.meld-zone{z-index:6;cursor:grab;touch-action:none;border-radius:.6em;transition:background .2s,box-shadow .2s;position:absolute}.meld-zone.moving{cursor:grabbing}.meld-zone.can-drop{cursor:pointer;animation:1.6s ease-in-out infinite breathe;box-shadow:0 0 0 2px #f2c75cbf,0 0 1.3em #f2c75c66}.meld-zone.drop-hover{background:#f2c75c33}.pile-zone{z-index:8;border-radius:.7em;transition:box-shadow .25s,background .25s;position:absolute}.pile-zone.pulse{cursor:pointer;animation:1.8s ease-in-out infinite pulse}.pile-zone.can-drop{cursor:pointer;box-shadow:0 0 0 2px #f2c75cb3,0 0 1.2em #f2c75c59}.pile-zone.drop-hover{background:#f2c75c2e}.plaque{z-index:900;background:linear-gradient(#22170ee0,#100b07eb);border:1px solid #e0b65c52;border-radius:.75em;min-width:6.5em;padding:.3em .6em .35em;transition:box-shadow .4s,border-color .4s,opacity .4s;position:absolute;box-shadow:0 .35em 1em #00000080,inset 0 1px #ffe6b41a}.plaque.inline{align-items:baseline;gap:.6em;padding-top:.2em;padding-bottom:.2em;display:flex}.plaque.inline .plaque-sub{margin-top:0}.plaque.side{white-space:nowrap;min-width:0;font-size:.84em}.plaque.side .plaque-name{text-overflow:ellipsis;max-width:6em;overflow:hidden}.plaque.side-left{transform:translate(-50%,-50%)rotate(90deg)}.plaque.side-right{transform:translate(-50%,-50%)rotate(-90deg)}.plaque-name{white-space:nowrap;font-size:.95em;font-weight:800}.plaque-sub{opacity:.72;white-space:nowrap;margin-top:.1em;font-size:.72em}.plaque .you{opacity:.6;font-weight:600}.plaque.active{border-color:var(--gold);animation:2s ease-in-out infinite glow}.plaque.away{opacity:.5}.badge{color:var(--gold);background:#e9c46a33;border-radius:1em;margin-left:.5em;padding:0 .5em;font-weight:700;display:inline-block}.crown{vertical-align:0;background:var(--gold-grad);width:.95em;height:.7em;margin-right:.35em;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cpath d='M2 16h20v2H2zM1 4l5.5 4L12 0l5.5 8L23 4l-2 10H3z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cpath d='M2 16h20v2H2zM1 4l5.5 4L12 0l5.5 8L23 4l-2 10H3z'/%3E%3C/svg%3E") 50%/contain no-repeat}.corner-br{z-index:1500;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.45em;display:flex;position:fixed;bottom:0;right:0}.corner-br>*{pointer-events:auto}.scoreboard{background:linear-gradient(165deg,#3b2716,#1b120a);border:1px solid #e0b65c80;border-radius:.6em 0 0;padding:.2em .6em .25em;box-shadow:0 .4em 1.1em #0000008c,inset 0 1px #ffe6b426;border-bottom:none!important;border-right:none!important}.score-row{gap:.9em;display:flex}.score-team{align-items:baseline;gap:.35em;display:flex}.score-team span{letter-spacing:.1em;font-family:Cinzel,serif;font-size:.7em;font-weight:600}.score-team.us span{color:var(--us)}.score-team.them span{color:var(--them)}.score-team b{font-variant-numeric:tabular-nums;font-family:Cormorant Garamond,serif;font-size:1.25em;font-weight:600;line-height:1.05}.score-meta{opacity:.75;letter-spacing:.03em;flex-wrap:wrap;align-items:center;gap:.2em .6em;font-size:.55em;display:flex}.score-meta i{color:var(--gold);background:#e9c46a29;border-radius:1em;padding:0 .5em;font-style:normal;font-weight:700}.toolbar{z-index:950;gap:.45em;display:flex;position:fixed}.icon-btn{width:1.75em;height:1.75em;color:var(--ivory);cursor:pointer;background:#160f09c7;border:1px solid #e0b65c6b;border-radius:50%;font-size:.85em;font-weight:800;transition:background .2s,transform .15s;box-shadow:0 .2em .6em #00000073}.icon-btn:hover{background:#3c2816e6}.icon-btn:active{transform:scale(.94)}.icon-btn svg{margin:auto;display:block}.icon-btn.danger{color:#f3a59a}.icon-btn.on{border-color:var(--gold);color:var(--gold)}.help-backdrop{z-index:2000;background:#00000073;place-items:center;display:grid;position:absolute;inset:0}.help-panel{background:var(--panel);border:1px solid #e0b65c8c;border-radius:1em;width:30em;padding:.8em 1.2em .9em;font-size:.75em;box-shadow:0 1.4em 3.5em #000000b3}.help-panel h3{color:var(--gold);margin:0 0 .4em;font-family:Cinzel,serif;font-size:1.15em}.help-panel p,.help-panel ol{margin:.3em 0;line-height:1.35}.help-panel ol{padding-left:1.3em}.help-links{flex-direction:column;gap:.35em;margin:.6em 0;display:flex}.help-link{align-items:center;gap:.5em;display:flex}.help-link code{-webkit-user-select:all;user-select:all;background:#00000059;border:1px dashed #e9c46a80;border-radius:.35em;flex:1;padding:.25em .5em;font-size:.85em}.help-link .btn.small{margin-top:0;text-decoration:none}.help-panel .hint{opacity:.7;font-size:.85em}.help-actions{justify-content:flex-end;margin-top:.5em;display:flex}.ended{z-index:10;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.6em;display:flex;position:absolute;inset:0}.ended h2{color:var(--gold);margin:0;font-family:Cinzel,serif;font-size:1.3em}.ended p{opacity:.85;margin:0;font-family:Cormorant Garamond,serif;font-size:.9em;font-style:italic}.icon-btn.off{opacity:.55}.status{z-index:950;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#0a1c11bf;border:1px solid #f0e1b438;border-radius:2em;padding:.42em 1.2em;font-size:.82em;font-weight:700;animation:.4s both fadeIn;position:absolute;transform:translateY(-100%);box-shadow:0 .3em 1em #00000059}.status.mine{background:var(--gold-grad);color:var(--ink);border-color:var(--gold-hi);box-shadow:0 0 1.4em #f2c75c80}.choice{z-index:2400;background:var(--panel);border:2px solid var(--gold);text-align:center;border-radius:.8em;flex-direction:column;align-items:center;gap:.55em;max-width:min(90vw,22em);padding:.7em 1.2em .8em;animation:.25s ease-out both choice-in;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1em 3em #0009,0 0 2em #e9c46a59}.choice p{color:var(--ivory);margin:0;font-size:.85em;font-weight:700;line-height:1.3}.choice-buttons{flex-wrap:wrap;justify-content:center;gap:.5em;display:flex}.choice-buttons .btn{margin-top:0}@keyframes choice-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.92)}}.announce{z-index:2500;background:var(--panel);border:2px solid var(--gold);white-space:nowrap;color:var(--gold-hi);pointer-events:none;border-radius:.8em;padding:.5em 1.4em;font-family:Cinzel,serif;font-size:1.3em;font-weight:700;animation:3s both announce;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1em 3em #0009,0 0 2em #e9c46a59}@keyframes announce{0%{opacity:0;transform:translate(-50%,-50%)scale(.85)}10%,85%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1)}}.toast{z-index:960;white-space:nowrap;pointer-events:none;background:linear-gradient(#8a1a1ef5,#600e12f5);border:1px solid #ffbeaa59;border-radius:.7em;padding:.55em 1.2em;font-size:.85em;font-weight:700;animation:.35s cubic-bezier(.2,.9,.3,1.3) both toastIn;position:absolute;transform:translate(-50%,-50%);box-shadow:0 .6em 1.5em #00000080}.actions{flex-direction:column;align-items:stretch;gap:.3em;width:max-content;min-width:7em;margin-right:.75em;display:flex}.sel-info{color:var(--gold-hi);cursor:pointer;background:#0c0805b8;border:1px solid #f0e1b433;border-radius:.5em;order:-1;padding:.3em .6em;font-size:.72em;font-weight:800}.sel-info span{opacity:.6;margin-left:.3em}.felt-tap{z-index:3;position:absolute;inset:0}.btn{color:var(--ivory);letter-spacing:.02em;white-space:nowrap;cursor:pointer;background:linear-gradient(#2e7149,#1c4a30);border:1px solid #f0e1b452;border-radius:.65em;padding:.62em 1.2em;font-size:.82em;font-weight:800;transition:filter .15s,transform .12s,opacity .2s;box-shadow:0 .25em .7em #0000006b,inset 0 1px #ffffff1f}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:active:not(:disabled){transform:translateY(1px)scale(.98)}.btn:disabled{opacity:.38;cursor:not-allowed}.btn.gold{background:var(--gold-grad);color:var(--ink);border-color:var(--gold-hi)}.btn.ghost{background:#120c07b8}.btn.small{margin-top:.2em;padding:.2em .7em;font-size:.62em}.btn.big{padding:.5em 2em;font-size:.9em}.show-score{margin-right:.75em}.result-backdrop{z-index:2000;background:radial-gradient(#0000004d,#0000009e);place-items:center;animation:.6s .4s both fadeIn;display:grid;position:absolute;inset:0}.result{background:var(--panel);text-align:center;border:1px solid #e0b65c8c;border-radius:1.2em;width:25em;padding:.9em 1.3em;box-shadow:0 1.6em 4em #000000b3,inset 0 1px #ffe6b426}.result-kicker{letter-spacing:.3em;text-transform:uppercase;color:var(--gold);opacity:.8;font-family:Cinzel,serif;font-size:.72em}.result h2,.lobby h1{background:linear-gradient(#fff1c8 0%,#e9c46a 50%,#b9883a 100%);color:#0000;filter:drop-shadow(0 .08em .1em #00000080);-webkit-background-clip:text;background-clip:text;margin:.15em 0 .2em;font-family:Cinzel,serif;font-weight:700}.result h2{font-size:1.25em}.result.final h2{font-size:1.6em}.result-sub{margin-bottom:.2em;font-family:Cormorant Garamond,serif;font-size:.9em;font-style:italic}.result table{border-collapse:collapse;width:100%;margin:.4em 0 .6em;font-size:.72em}.result th{letter-spacing:.1em;border-bottom:1px solid #e0b65c4d;padding:.3em .5em .5em;font-family:Cinzel,serif;font-size:.95em}.result th small{letter-spacing:0;opacity:.6;font-family:Nunito Sans,sans-serif;font-size:.7em;display:block}.result th.us{color:var(--us)}.result th.them{color:var(--them)}.result td{font-variant-numeric:tabular-nums;padding:.32em .5em}.result td:first-child{text-align:left;opacity:.78}.result tr.subtotal td{border-top:1px solid #e0b65c4d;padding-top:.5em;font-weight:800}.result tr.total td{color:var(--gold-hi);font-family:Cormorant Garamond,serif;font-size:1.35em;font-weight:600}.result tr.total td:first-child{color:var(--gold);opacity:1;font-family:Cinzel,serif;font-size:1em}.result-actions{justify-content:center;align-items:center;gap:.8em;display:flex}.waiting{opacity:.82;font-family:Cormorant Garamond,serif;font-size:.85em;font-style:italic}.lobby-wrap{z-index:10;place-items:center;display:grid;position:absolute;inset:0;overflow-y:auto}.lobby{background:var(--panel);border:1px solid #e0b65c80;border-radius:1.4em;width:47em;padding:.7em 1.3em .8em;box-shadow:0 2em 5em #000000b3,inset 0 1px #ffe6b426}.lobby-head{text-align:center;margin-bottom:.2em}.lobby h1{letter-spacing:.08em;font-size:1.55em;line-height:1}.lobby-head p{opacity:.78;margin:0;font-family:Cormorant Garamond,serif;font-size:.8em;font-style:italic}.lobby.guest{width:24em}.lobby-cols.single{grid-template-columns:1fr}.lobby-cols{grid-template-columns:22fr 23fr;gap:1.4em;display:grid}.lobby h3{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid #e0b65c40;margin:.5em 0 .3em;padding-bottom:.25em;font-family:Cinzel,serif;font-size:.82em;font-weight:600}.lobby .hint{opacity:.6;margin:0 0 .4em;font-size:.75em}.field{margin:.4em 0;display:block}.field>span{letter-spacing:.08em;text-transform:uppercase;opacity:.68;margin-bottom:.2em;font-size:.62em;font-weight:700;display:block}.field input{width:100%;color:var(--ivory);-webkit-user-select:text;user-select:text;background:#00000059;border:1px solid #e0b65c59;border-radius:.4em;outline:none;padding:.3em .6em;font-size:.85em;font-weight:700}.field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #e9c46a2e}.mini-table{height:11.4em;margin-top:.3em;position:relative}.mini-felt{background:radial-gradient(at 50% 45%,#2f8653,#174a2c);border:.5em solid #5a3a1e;border-radius:999px;place-items:center;display:grid;position:absolute;inset:2.4em 6.2em;box-shadow:0 .6em 1.4em #0009,inset 0 0 1.2em #00000080,0 0 0 1px #e2b86466}.mini-felt span{letter-spacing:.4em;color:#051e0e80;font-size:1.1em}.seat{text-align:center;background:#0e0905eb;border:1px solid #f0e1b42e;border-radius:.75em;width:8.2em;padding:.25em .4em .3em;position:absolute;box-shadow:0 .3em .9em #00000080}.seat.top{top:0;left:50%;transform:translate(-50%)}.seat.bottom{bottom:0;left:50%;transform:translate(-50%)}.seat.left{top:50%;left:0;transform:translateY(-50%)}.seat.right{top:50%;right:0;transform:translateY(-50%)}.seat.team0{border-top:3px solid var(--us)}.seat.team1{border-top:3px solid var(--them)}.seat.me{box-shadow:0 0 0 2px #e9c46a99,0 0 1.4em #e9c46a4d}.seat-team{letter-spacing:.14em;text-transform:uppercase;opacity:.55;font-size:.6em;font-weight:800}.seat-name{white-space:nowrap;text-overflow:ellipsis;font-size:.8em;font-weight:800;overflow:hidden}.seat-name .you{opacity:.6;font-weight:600}.seat-empty{opacity:.5;font-size:.75em;font-style:italic}.away-dot{background:#d0574f;border-radius:50%;width:.5em;height:.5em;margin-left:.35em;display:inline-block}.seat-select{width:100%;color:var(--ivory);background:#1d140c;border:1px solid #e0b65c59;border-radius:.3em;margin-top:.2em;padding:.1em .2em;font-size:.66em}.spectators{opacity:.7;margin-top:.3em;font-size:.62em}.chips{flex-wrap:wrap;gap:.4em;display:flex}.chip{color:var(--ivory);cursor:pointer;background:#00000052;border:1px solid #f0e1b440;border-radius:2em;padding:.25em .75em;font-size:.8em;font-weight:800;transition:background .2s}.chip.on{background:var(--gold-grad);color:var(--ink);border-color:var(--gold-hi)}.chip:disabled,.back-pick:disabled{cursor:default}.toggle{cursor:pointer;align-items:center;gap:.6em;margin:.35em 0;font-size:.72em;font-weight:600;display:flex}.toggle input{opacity:0;pointer-events:none;position:absolute}.switch{background:#00000073;border:1px solid #f0e1b440;border-radius:1em;flex:none;width:2.5em;height:1.4em;transition:background .2s;position:relative}.switch:after{content:"";background:var(--ivory);border-radius:50%;width:1.05em;height:1.05em;transition:transform .2s;position:absolute;top:.12em;left:.14em;box-shadow:0 .1em .3em #00000080}.toggle input:checked+.switch{background:var(--gold-grad)}.toggle input:checked+.switch:after{transform:translate(1.08em)}.toggle input:focus-visible+.switch{box-shadow:0 0 0 3px #e9c46a59}.backs{align-items:center;gap:.4em;margin:.2em 0;display:flex}.backs em{opacity:.7;width:6em;font-size:.75em;font-style:normal;font-weight:700}.back-pick{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:.3em;width:1.6em;height:2.24em;padding:0;transition:transform .2s,box-shadow .2s;overflow:hidden;box-shadow:0 .15em .4em #00000080}.back-pick img{width:100%;height:100%;display:block}.back-pick.on{border-color:var(--gold);transform:translateY(-.2em);box-shadow:0 0 .8em #e9c46a99}.invite{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5em;margin-top:.5em;font-size:.66em;display:flex}.invite-url{color:var(--ivory);cursor:pointer;background:#00000059;border:1px dashed #e9c46a99;border-radius:.45em;padding:.35em .75em;font-family:ui-monospace,monospace;font-size:1em}.invite-url em{color:var(--gold);margin-left:.5em;font-family:Nunito Sans,sans-serif;font-style:normal;font-weight:800}.lobby-foot{flex-wrap:wrap;justify-content:center;align-items:center;gap:.3em .9em;margin-top:.4em;display:flex}.splash{z-index:10;letter-spacing:.1em;color:var(--ivory);place-items:center;font-family:Cinzel,serif;font-size:1em;display:grid;position:absolute;inset:0}.offline{z-index:9000;background:#8a1a1e;border-radius:0 0 .7em .7em;padding:.5em 1.2em;font-weight:700;position:fixed;top:0;left:50%;transform:translate(-50%);box-shadow:0 .4em 1em #00000080}.rotate-hint{display:none}@media (orientation:portrait) and (width<=1000px){.rotate-hint{z-index:9999;text-align:center;color:var(--gold);background:#0c0805;place-items:center;padding:2em;font-family:Cinzel,serif;font-size:1.3em;display:grid;position:fixed;inset:0}}@keyframes pulse{0%,to{box-shadow:0 0 0 2px #f2c75c59,0 0 .6em #f2c75c26}50%{box-shadow:0 0 0 2px #f2c75cd9,0 0 1.6em #f2c75c73}}@keyframes breathe{50%{box-shadow:0 0 0 2px #f2c75cf2,0 0 1.8em #f2c75c8c}}@keyframes glow{0%,to{box-shadow:0 0 0 1px #f2c75c80,0 0 1em #f2c75c4d}50%{box-shadow:0 0 0 2px #f2c75ce6,0 0 2em #f2c75c99}}@keyframes fadeIn{0%{opacity:0}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-30%)scale(.9)}}@media (prefers-reduced-motion:reduce){.card-flip{transition-duration:10ms}.plaque.active,.pile-zone.pulse,.meld-zone.can-drop{animation:none}}.lobby.home{text-align:center;flex-direction:column;align-items:center;gap:.5em;width:24em;padding:1em 1.5em 1.1em;display:flex}.lobby.home h1{font-size:2.2em}.home-suits{letter-spacing:.4em;color:var(--gold);opacity:.55;font-size:.9em}.home-note{opacity:.78;margin:0;font-family:Cormorant Garamond,serif;font-size:.75em;font-style:italic}a.btn{text-decoration:none;display:inline-block}
