:root{--felt:#123a30;--felt-2:#0c2a23;--felt-3:#1a4a3d;--ink:#eef3ee;--muted:#93b4a8;--accent:#e3b95f;--accent-ink:#2a1f06;--danger:#e0705f;--card:#fbf8f0;--red:#c4302d;--black:#1b212b;--line:#ffffff24;--panel:#081a15db;--cw:52px;--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)}*{box-sizing:border-box}html,body{background:var(--felt-2);height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;touch-action:manipulation;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button{font:inherit;color:inherit}#app{background:radial-gradient(120% 80% at 50% 38%, var(--felt-3) 0%, var(--felt) 45%, var(--felt-2) 100%);height:100dvh;padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.card{width:var(--cw);height:calc(var(--cw) * 1.4);border-radius:calc(var(--cw) * .12);background:var(--card);color:var(--black);flex:none;transition:transform .14s,box-shadow .14s,opacity .14s;position:relative;box-shadow:inset 0 1px #ffffff8c,0 2px 5px #0000006b}.card.red{color:var(--red)}.card .idx{left:calc(var(--cw) * .09);top:calc(var(--cw) * .05);width:calc(var(--cw) * .3);flex-direction:column;align-items:center;line-height:1;display:flex;position:absolute}.card .idx b{font-size:calc(var(--cw) * .36);letter-spacing:-.04em;font-weight:700}.card .idx .mini{width:calc(var(--cw) * .24);height:calc(var(--cw) * .24);margin-top:calc(var(--cw) * .02)}.card .pip{right:calc(var(--cw) * .08);bottom:calc(var(--cw) * .08);width:calc(var(--cw) * .52);height:calc(var(--cw) * .52);position:absolute}.card.sel{transform:translateY(calc(var(--cw) * -.28));box-shadow:0 0 0 2px var(--accent), 0 6px 14px #00000080}.card.dim{filter:brightness(.6)saturate(.85)}.card.glow{box-shadow:0 0 0 2px var(--accent), 0 0 16px #e3b95fa6}.card.locked:after{content:"";background:var(--accent);border-radius:2px;height:3px;position:absolute;bottom:-5px;left:10%;right:10%}.card.small{--cw:34px}.card .ctag{text-align:center;color:var(--muted);white-space:nowrap;font-size:10px;position:absolute;bottom:-17px;left:0;right:0}.card.back{border:calc(var(--cw) * .07) solid var(--card);background:repeating-linear-gradient(45deg,#ffffff14 0 3px,#0000 3px 8px),linear-gradient(145deg,#2d6a8a,#1b4560)}.btn{appearance:none;border:1px solid var(--line);cursor:pointer;background:#ffffff14;border-radius:12px;min-height:44px;padding:11px 16px;font-size:15px;font-weight:600;transition:transform 80ms,background .12s,opacity .12s}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.38;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.ghost{background:0 0}.btn.small{min-height:36px;padding:7px 12px;font-size:14px}.icon-btn{appearance:none;border:1px solid var(--line);cursor:pointer;background:#ffffff0f;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.icon-btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.overlay{z-index:30;background:#030c099e;justify-content:center;align-items:flex-end;animation:.16s fade;display:flex;position:fixed;inset:0}.sheet{border:1px solid var(--line);width:100%;max-width:560px;max-height:88dvh;padding:18px 18px calc(18px + var(--safe-b));background:#10302a;border-radius:20px 20px 0 0;animation:.22s rise;overflow:auto}@media (min-width:640px){.overlay{align-items:center}.sheet{border-radius:20px}}.sheet h2{margin:0 0 4px;font-size:20px}.sheet h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:18px 0 6px;font-size:13px}.sheet p,.sheet li{color:#d6e2db;font-size:15px;line-height:1.5}.sheet ul{margin:6px 0;padding-left:18px}.sheet .row{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.sheet .row .btn{flex:1}.sheet table{border-collapse:collapse;width:100%;font-size:15px}.sheet th,.sheet td{text-align:left;border-bottom:1px solid var(--line);padding:7px 4px}.sheet th{color:var(--muted);font-size:12px;font-weight:500}.sheet td.num,.sheet th.num{text-align:right;font-variant-numeric:tabular-nums}.toggle{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.toggle small{color:var(--muted);margin-top:2px;font-size:13px;display:block}.switch{cursor:pointer;background:#ffffff2e;border:0;border-radius:14px;flex:none;width:48px;height:28px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(20px)}.toast{z-index:40;background:var(--panel);border:1px solid var(--line);text-align:center;pointer-events:none;border-radius:20px;max-width:88vw;padding:9px 16px;font-size:14px;font-weight:600;animation:.15s fade;position:fixed;top:40%;left:50%;transform:translate(-50%)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{box-shadow:0 0 #e3b95f8c}50%{box-shadow:0 0 0 7px #e3b95f00}}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.topbar{flex:none;justify-content:space-between;align-items:center;padding:8px 12px 4px;display:flex}.topbar .title{text-align:center;letter-spacing:.01em;font-size:17px;font-weight:700;line-height:1.15}.topbar .title small{color:var(--muted);font-size:12px;font-weight:500;display:block}.table{flex:1;grid-template-rows:auto 1fr;grid-template-columns:1fr minmax(0,1.5fr) 1fr;gap:4px 6px;min-height:0;padding:4px 8px;display:grid}.seat{--cw:36px;border:1px solid #0000;border-radius:14px;align-items:center;gap:8px;padding:6px 8px;transition:border-color .2s,background .2s;display:flex}.seat.top{grid-column:1/4;justify-self:center}.seat.left{text-align:center;flex-direction:column;grid-area:2/1;align-self:center}.seat.right{text-align:center;flex-direction:column;grid-area:2/3;align-self:center}.seat.active{border-color:var(--accent);background:#e3b95f1a;animation:1.6s ease-in-out infinite pulse}.seat.out{opacity:.6}.seat .pile{position:relative}.seat .count{background:var(--accent);min-width:22px;height:22px;color:var(--accent-ink);border-radius:11px;place-items:center;padding:0 5px;font-size:12px;font-weight:800;display:grid;position:absolute;top:-9px;right:-10px}.seat .done{width:36px;height:50.4px;color:var(--accent);place-items:center;display:grid}.seat .done svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.seat .who{font-size:14px;font-weight:700;line-height:1.2}.seat .who small{color:var(--muted);font-size:12px;font-weight:500;display:block}.center{flex-direction:column;grid-area:2/2;justify-content:center;align-items:center;gap:10px;min-width:0;display:flex}.center .caption{color:var(--muted);font-size:13px;font-weight:600}.center .empty{text-align:center;color:var(--muted);font-size:15px;font-weight:600}.center .empty small{color:var(--accent);margin-top:4px;font-size:12px;display:block}.played{--cw:54px;justify-content:center;max-width:100%;display:flex}.played .card+.card{margin-left:-24px}.played .card{animation:.22s drop}@keyframes drop{0%{opacity:0;transform:translateY(-14px)scale(.92)}to{opacity:1;transform:none}}.dock{background:linear-gradient(#0000,#00000047);flex:none;padding:0 9px 10px}.status{text-align:center;min-height:22px;color:var(--ink);padding:6px 0 20px;font-size:14px;font-weight:600}.status.warn{color:var(--danger)}.hand{min-height:calc(var(--cw) * 1.4 + 30px);justify-content:center;align-items:flex-end;padding-top:16px;display:flex}.hand .card{cursor:pointer}.actions{gap:10px;margin-top:12px;display:flex}.actions .btn{flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.actions .btn.primary{flex:1.4}.actions .btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.reveal{--cw:34px;flex-wrap:wrap;gap:4px;margin:8px 0 4px;display:flex}.home{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.home .logo{letter-spacing:-.02em;font-size:44px;font-weight:800}.home .sub{color:var(--muted);max-width:300px;margin:0 0 18px;line-height:1.45}.home-actions{flex-direction:column;gap:10px;width:min(300px,100%);display:flex}.btn.big{min-height:52px;font-size:17px}.home .hint{color:var(--muted);margin-top:8px;font-size:14px}@media (min-width:640px){.table{padding:8px 24px}.played{--cw:54px}.played .card+.card{margin-left:-22px}.seat{--cw:38px}}@media (max-height:640px){.status{padding-bottom:14px}.seat{padding:3px 6px}}
