.join[data-v-b7a0dff1]{max-width:400px;margin:8vh auto;display:flex;flex-direction:column;gap:14px;padding:28px 24px;animation:fadeUp .35s ease-out}h1[data-v-b7a0dff1]{margin:0;font-size:44px;text-align:center;background:linear-gradient(135deg,#fff,#fdba74);-webkit-background-clip:text;background-clip:text;color:transparent}.sub[data-v-b7a0dff1]{margin:-8px 0 10px;text-align:center;color:var(--muted)}label[data-v-b7a0dff1]{display:flex;flex-direction:column;gap:6px}label>span[data-v-b7a0dff1],label[data-v-b7a0dff1]{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}input[data-v-b7a0dff1]{text-transform:none;letter-spacing:normal;font-weight:500}input.code[data-v-b7a0dff1]{text-transform:uppercase;letter-spacing:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center;font-size:22px}.divider[data-v-b7a0dff1]{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin:6px 0}.divider[data-v-b7a0dff1]:before,.divider[data-v-b7a0dff1]:after{content:"";flex:1;border-top:1px solid var(--panel-border)}.error[data-v-b7a0dff1]{color:#fca5a5;background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:10px;text-align:center;margin:0;font-size:14px}.lobby[data-v-fc54d8ef]{max-width:400px;margin:6vh auto;display:flex;flex-direction:column;gap:16px;padding:28px 24px;text-align:center;animation:fadeUp .35s ease-out}h1[data-v-fc54d8ef]{margin:0;font-size:28px}.hint[data-v-fc54d8ef]{color:var(--muted);margin:0;font-size:14px}.code[data-v-fc54d8ef]{font:800 36px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:8px;padding:18px 14px 18px 22px;border-radius:14px;background:#ffffff0f;border:2px dashed rgba(249,115,22,.7);color:#fff;cursor:pointer;transition:background .12s}.code[data-v-fc54d8ef]:hover{background:#f9731626}.players[data-v-fc54d8ef]{list-style:none;padding:0;margin:4px 0 0;display:flex;flex-direction:column;gap:8px}.players li[data-v-fc54d8ef]{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#ffffff0d;border:1px solid var(--panel-border);border-radius:12px;font-weight:600}.dot[data-v-fc54d8ef]{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}.offline .dot[data-v-fc54d8ef]{background:var(--muted);box-shadow:none}.dot.bot[data-v-fc54d8ef]{background:#a78bfa;box-shadow:0 0 8px #a78bfa}.tag.bot[data-v-fc54d8ef]{background:#a78bfa40;color:#ddd6fe}.remove[data-v-fc54d8ef]{background:none;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}.remove[data-v-fc54d8ef]:hover{color:#fff;background:#ef444480}.offline[data-v-fc54d8ef]{opacity:.55}.tag[data-v-fc54d8ef]{font-size:11px;padding:3px 8px;border-radius:999px;background:#ffffff1f;color:var(--fg);font-weight:600}.players li .tag[data-v-fc54d8ef]:first-of-type{margin-left:auto}.tag.you[data-v-fc54d8ef]{background:var(--accent)}.opt[data-v-fc54d8ef]{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);text-align:left;text-transform:uppercase;letter-spacing:.1em;font-weight:600}select[data-v-fc54d8ef]{text-transform:none;letter-spacing:normal;font-weight:500}.card[data-v-5d0843ba]{--w: 64px;width:var(--w);height:calc(var(--w) * 1.45);border-radius:9px;border:4px solid #fff;background:var(--card-bg);color:#fff;font:900 34px/1 Arial Black,Helvetica Neue,Arial,system-ui,sans-serif;display:grid;place-items:center;position:relative;cursor:pointer;padding:0;box-shadow:0 0 0 1px #d0d0d0,0 3px 6px #0000004d;transition:transform .12s,box-shadow .12s;white-space:pre-line;text-align:center;flex:0 0 auto;overflow:hidden}.card[data-v-5d0843ba]:before{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;pointer-events:none;background:repeating-conic-gradient(from 10deg at 50% 50%,rgba(0,0,0,.1) 0 5deg,transparent 5deg 12deg)}.value[data-v-5d0843ba]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-shadow:0 2px 0 rgba(0,0,0,.28)}.corner[data-v-5d0843ba]{position:absolute;font-size:13px;font-weight:900;line-height:1;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.corner.tl[data-v-5d0843ba]{top:3px;left:5px}.corner.br[data-v-5d0843ba]{bottom:3px;right:5px;transform:rotate(180deg)}.card.small[data-v-5d0843ba]{--w: 48px;font-size:25px;border-width:3px}.card.small .corner[data-v-5d0843ba]{font-size:10px}.card[data-v-5d0843ba]:disabled{cursor:default}.card[data-v-5d0843ba]:not(:disabled):hover{transform:translateY(-3px)}.card.selected[data-v-5d0843ba]{transform:translateY(-8px);box-shadow:0 0 0 3px var(--accent),0 6px 12px #0000004d}.card.highlight[data-v-5d0843ba]{box-shadow:0 0 0 3px var(--ok)}.card.over[data-v-5d0843ba]{transform:scale(1.08);box-shadow:0 0 0 4px var(--accent),0 8px 16px #0000004d}.card.preview[data-v-5d0843ba]{border-style:dashed;box-shadow:0 0 0 4px var(--ok),0 8px 16px #0000004d}.card.preview .value[data-v-5d0843ba],.card.preview .corner[data-v-5d0843ba]{opacity:.55}.card.preview[data-v-5d0843ba]:after{content:"↓";position:absolute;bottom:4px;left:6px;font-size:12px;opacity:.8}.card.invalid[data-v-5d0843ba]{box-shadow:0 0 0 4px var(--danger);transform:none}.card.grab[data-v-5d0843ba]:not(:disabled){touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.card.empty[data-v-5d0843ba]{background:transparent;border:2px dashed var(--muted);box-shadow:none;color:var(--muted)}.card.empty[data-v-5d0843ba]:before{display:none}.placeholder[data-v-5d0843ba]{font-size:11px;font-weight:500;color:var(--muted);padding:4px}.count[data-v-5d0843ba]{position:absolute;top:2px;right:2px;background:#0000008c;color:#fff;font-size:10px;font-weight:700;border-radius:999px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px;font-family:system-ui,sans-serif}.card.back[data-v-5d0843ba]{background:#fff;color:#1a8f2a}.card.back[data-v-5d0843ba]:before{display:none}.back-face[data-v-5d0843ba]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.back-face b[data-v-5d0843ba]{font-size:9px;letter-spacing:1px;font-weight:900;color:#e0501e;text-shadow:0 1px 0 rgba(0,0,0,.15);position:relative;z-index:1}.band[data-v-5d0843ba]{position:absolute;left:-30%;right:-30%;height:30%;background:linear-gradient(90deg,#2fb34a,#1c8a33);transform:rotate(-22deg)}.band.top[data-v-5d0843ba]{top:-6%}.band.bottom[data-v-5d0843ba]{bottom:-6%}.c-a[data-v-5d0843ba]{background:#1d64c8}.c-b[data-v-5d0843ba]{background:#22a02f}.c-c[data-v-5d0843ba]{background:#e2231a}.c-wild[data-v-5d0843ba]{background:#f5901f;font-size:13px;letter-spacing:.5px}.card.small.c-wild[data-v-5d0843ba]{font-size:10px}.card.wild-as[data-v-5d0843ba]{font-size:34px;letter-spacing:0}.card.small.wild-as[data-v-5d0843ba]{font-size:25px}.joker-tag[data-v-5d0843ba]{position:absolute;bottom:4px;left:50%;transform:translate(-50%);font:700 9px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;background:#00000059;color:#fff;padding:2px 5px;border-radius:999px;white-space:nowrap}.card.small .joker-tag[data-v-5d0843ba]{font-size:7px;padding:1px 4px;bottom:3px}.drag-source{opacity:.35!important}.game[data-v-b3c53f9d]{max-width:960px;margin:0 auto;padding:8px 16px 40px;display:flex;flex-direction:column;gap:16px;animation:fadeUp .35s ease-out}.status[data-v-b3c53f9d]{position:sticky;top:8px;z-index:2;display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:14px;background:#0f172abf;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--panel-border)}.turn[data-v-b3c53f9d]{font-weight:800;font-size:18px;display:flex;align-items:center;gap:10px}.turn[data-v-b3c53f9d]:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--muted);flex:0 0 auto}.my-turn .turn[data-v-b3c53f9d]{color:#fdba74}.my-turn .turn[data-v-b3c53f9d]:before{background:var(--accent);animation:pulse 1.6s infinite}.log[data-v-b3c53f9d]{font-size:13px;color:var(--muted);min-height:1.2em}.row[data-v-b3c53f9d]{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}.gap[data-v-b3c53f9d]{width:10px;flex:0 0 auto}.others[data-v-b3c53f9d]{display:flex;gap:10px;flex-wrap:wrap}.others .discards[data-v-b3c53f9d]{flex-wrap:nowrap;gap:8px}.pile[data-v-b3c53f9d]{position:relative;flex:0 0 auto}.pile .card[data-v-b3c53f9d]{position:absolute;left:0}.pile .card.under[data-v-b3c53f9d]{pointer-events:none;filter:brightness(.85)}.pile .card.under[data-v-b3c53f9d]:before{display:none}.pile .card.under[data-v-b3c53f9d] .value,.pile .card.under[data-v-b3c53f9d] .corner.br{visibility:hidden}.opponent[data-v-b3c53f9d]{display:flex;flex-direction:column}.opponent[data-v-b3c53f9d]{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:10px 12px;transition:border-color .2s,box-shadow .2s}.opponent.active[data-v-b3c53f9d]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 24px #f9731640}.opp-head[data-v-b3c53f9d]{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:14px}.table[data-v-b3c53f9d]{min-height:200px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center;padding:22px 16px;border-radius:22px;background:var(--felt);box-shadow:inset 0 0 60px #00000059,inset 0 0 0 6px #00000040,0 12px 30px #00000059}.mine[data-v-b3c53f9d]{display:flex;flex-direction:column;gap:16px;padding:16px;border-radius:18px;background:var(--panel);border:1px solid var(--panel-border)}.labeled[data-v-b3c53f9d]{display:flex;flex-direction:column;gap:8px}.hand .row[data-v-b3c53f9d]{padding-top:10px}.help[data-v-b3c53f9d]{font-size:13px;color:var(--muted);margin:0}.actions[data-v-b3c53f9d]{display:flex;gap:12px;justify-content:center;margin-top:4px;flex-wrap:wrap}@media(min-width:820px){.game.seated[data-v-b3c53f9d]{display:grid;gap:16px;align-items:center;grid-template-columns:minmax(150px,auto) 1fr minmax(150px,auto);grid-template-rows:auto auto auto auto auto}.game.seated .status[data-v-b3c53f9d]{grid-column:1 / -1;grid-row:1}.game.seated .others[data-v-b3c53f9d]{display:contents}.game.seated .opponent.seat-top[data-v-b3c53f9d]{grid-column:1 / -1;grid-row:2;justify-self:center;flex-direction:row;align-items:center;gap:16px}.game.seated .opponent.seat-top .opp-head[data-v-b3c53f9d]{flex-direction:column;align-items:flex-start;margin:0;gap:2px}.game.seated .opponent.seat-left[data-v-b3c53f9d]{grid-column:1;grid-row:3}.game.seated .opponent.seat-right[data-v-b3c53f9d]{grid-column:3;grid-row:3}.game.seated .table[data-v-b3c53f9d]{grid-column:2;grid-row:3;align-self:stretch}.game.seated .mine[data-v-b3c53f9d]{grid-column:1 / -1;grid-row:4}.game.seated .actions[data-v-b3c53f9d]{grid-column:1 / -1;grid-row:5}.game.seated .opponent.seat-left .row[data-v-b3c53f9d]:not(.discards),.game.seated .opponent.seat-right .row[data-v-b3c53f9d]:not(.discards){flex-direction:column;align-items:center}.game.seated .opponent.seat-left .gap[data-v-b3c53f9d],.game.seated .opponent.seat-right .gap[data-v-b3c53f9d]{height:8px;width:0}.game.seated .opponent.seat-left .discards[data-v-b3c53f9d],.game.seated .opponent.seat-right .discards[data-v-b3c53f9d]{display:grid;grid-template-columns:repeat(2,48px);gap:8px 10px;justify-content:center}.game.seated .opponent.seat-left[data-v-b3c53f9d],.game.seated .opponent.seat-right[data-v-b3c53f9d]{justify-self:center}}.legal[data-v-7317af70]{max-width:720px;margin:4vh auto;padding:32px 28px;line-height:1.6;animation:fadeUp .35s ease-out}.back[data-v-7317af70]{display:inline-block;margin-bottom:16px;color:var(--muted);text-decoration:none;font-size:14px}.back[data-v-7317af70]:hover{color:var(--fg)}h1[data-v-7317af70]{margin:0 0 4px;font-size:30px}h2[data-v-7317af70]{font-size:16px;margin:24px 0 6px;color:#fdba74}p[data-v-7317af70]{margin:0 0 8px}a[data-v-7317af70]{color:#fdba74}@media(max-width:600px){.legal[data-v-7317af70]{margin:0;border-radius:0;padding:24px 16px}}.center{display:grid;place-items:center;height:60vh}.site-footer{text-align:center;padding:24px 16px 32px;font-size:13px;color:var(--muted)}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--fg);text-decoration:underline}.banner{position:fixed;top:0;left:0;right:0;background:var(--danger);color:#fff;text-align:center;padding:8px;font-size:13px;font-weight:600;z-index:10}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:#0f172aeb;color:#fff;padding:12px 18px;border-radius:999px;font-size:14px;font-weight:500;border:1px solid var(--panel-border);box-shadow:var(--shadow);z-index:10;max-width:90vw;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fadeUp .2s ease-out}:root{--bg: #0f172a;--bg-2: #1e293b;--felt: radial-gradient(ellipse at 50% 30%, #1f6b4a 0%, #14503a 55%, #0e3a2b 100%);--panel: rgba(255, 255, 255, .06);--panel-border: rgba(255, 255, 255, .1);--panel-solid: #1e293b;--fg: #f1f5f9;--muted: #94a3b8;--accent: #f97316;--accent-2: #fb923c;--ok: #22c55e;--danger: #ef4444;--card-bg: #fff;--radius: 16px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);background-image:radial-gradient(1200px 600px at 20% -10%,rgba(249,115,22,.18),transparent 60%),radial-gradient(900px 500px at 110% 110%,rgba(34,197,94,.14),transparent 60%);background-attachment:fixed;color:var(--fg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}h1{font-weight:800;letter-spacing:-.02em}button{font:inherit}button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:none;border-radius:12px;padding:14px 20px;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px #f9731659;transition:transform .12s,box-shadow .12s,filter .12s}button.primary:not(:disabled):hover{transform:translateY(-1px);filter:brightness(1.05)}button.primary:not(:disabled):active{transform:translateY(0)}button.secondary{background:var(--panel);color:var(--fg);border:1px solid var(--panel-border);border-radius:12px;padding:14px 20px;font-size:16px;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .12s}button.secondary:not(:disabled):hover{background:#ffffff1a}button.link{background:none;border:none;color:var(--muted);cursor:pointer;padding:8px;font-size:14px}button.link:hover{color:var(--fg)}button:disabled{opacity:.45;cursor:not-allowed}input,select{font-size:17px;padding:13px 14px;border-radius:12px;border:1px solid var(--panel-border);background:#ffffff0f;color:var(--fg);outline:none;transition:border-color .12s,box-shadow .12s}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f9731640}input::placeholder{color:#64748b}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow)}.muted{color:var(--muted)}.lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:600}@keyframes pulse{0%,to{box-shadow:0 0 #f973168c}70%{box-shadow:0 0 0 10px #f9731600}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
