:root{--accent:#c0162e;--warn:#ffb020;--neg:#3b4cc0;--zero:#7fd1f5;--low:#4caf6a;--mid:#f2c744;--high:#e0523f;--cw:56px;--ch:78px;color-scheme:light;--bg:#f1f1f3;--bg-glow:#fff;--ink:#1f1f22;--muted:#67676c;--accent-text:#c0162e;--panel:#ffffffee;--panel-2:#f2f2f4;--line:#d6d6db;--line-soft:#e6e6ea;--ghost-line:#b8b8be;--chip:#ffffffdd;--raised:#fff;--raised-2:#e8e8ec;--list:#3d3d42;--btn-off:#dcdce0;--btn-off-ink:#9a9aa0;--shadow:#28283226;--shadow-strong:#28283240;--err-text:#8f1022;--title-fx:drop-shadow(0 3px 0 #0000001f) drop-shadow(0 0 18px #c0162e33)}[data-theme=dark]{color-scheme:dark;--bg:#1b1b1d;--bg-glow:#333336;--ink:#f5f3f3;--muted:#aaaaae;--accent-text:#ff7a8c;--panel:#19191bd9;--panel-2:#121213;--line:#444447;--line-soft:#3a3a3d;--ghost-line:#59595b;--chip:#1a1a1ccc;--raised:#262628;--raised-2:#2b2b2e;--list:#dcdcdf;--btn-off:#454548;--btn-off-ink:#8d8d90;--shadow:#0006;--shadow-strong:#0008;--err-text:#ffb3bd;--title-fx:drop-shadow(0 4px 0 #000a) drop-shadow(0 0 24px #c0162e66)}.felt{--ink:#f5f3f3;--muted:#aaaaae;--accent-text:#ff7a8c;--panel:#19191bd9;--panel-2:#121213;--line:#444447;--chip:#19191bcc;color:var(--ink)}*{box-sizing:border-box}body{background:radial-gradient(circle at 50% 25%,var(--bg-glow),var(--bg) 65%) fixed;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh}body,h1{margin:0}h1{font-size:3rem;letter-spacing:.3em;color:var(--accent);background:linear-gradient(180deg,#f0445c,#c0162e 70%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.muted{color:var(--muted);font-size:.85rem}input{background:var(--panel-2);border:1px solid var(--line);color:var(--ink);padding:.7rem .9rem;border-radius:10px;width:100%}button,input{font-size:1rem}button{background:var(--accent);color:#fff;border:0;padding:.7rem 1.1rem;border-radius:10px;font-weight:700;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;color:var(--ink);border:1px solid var(--ghost-line)}table{width:100%;border-collapse:collapse;font-size:.95rem}td,th{padding:6px 8px;text-align:left;border-bottom:1px solid var(--line-soft)}th{color:var(--muted);font-weight:600}tr.me td{color:var(--accent-text);font-weight:700}.pill{background:var(--chip);border:1px solid var(--line);border-radius:999px;padding:4px 12px}.pill,.small{font-size:.9rem}.small{padding:.35rem .8rem}:root{--cw:clamp(38px,6.4vh,64px);--ch:calc(var(--cw) * 1.4)}.table{display:flex;flex-direction:column;gap:12px;padding:12px 12px 90px;max-width:1080px;margin:0 auto}.topbar{display:flex;align-items:center;gap:8px}.log{flex:1 1;text-align:center;color:var(--muted);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.felt{position:relative;display:flex;flex-direction:column;gap:12px;padding:16px 18px 18px;border-radius:56px;background:radial-gradient(ellipse at 50% 45%,#505053 0,#3f3f42 55%,#2f2f31 100%);border:12px solid #2a0a10;background-clip:padding-box;box-shadow:0 0 0 12px #a3132a,0 0 0 14px #4a0a14,inset 0 0 90px #0008,0 24px 50px #0007;margin:12px}.felt:before{content:"";position:absolute;inset:10px;border:2px solid #ffffff14;border-radius:44px;pointer-events:none}.opponents{display:flex;flex-wrap:wrap;gap:20px 28px;justify-content:center}.seat{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 10px 10px;border-radius:20px;border:2px solid transparent;transition:.2s}.seat.turn{border-color:var(--accent);background:#c0162e1a;box-shadow:0 0 24px #c0162e55}.seat.mine{align-self:center;padding:10px 18px 14px}.plate{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid #ffffff1f;border-radius:999px;padding:4px 6px 4px 4px}.plate.off{opacity:.55}.plate.active .avatar{box-shadow:0 0 0 3px var(--accent)}.avatar{width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;font-weight:800;font-size:.95rem;color:#fff;flex:none;vertical-align:middle}.who{display:flex;flex-direction:column;line-height:1.15;text-align:left;font-size:.9rem}.who span{color:var(--muted);font-size:.72rem}.total{background:var(--accent);color:#fff;font-weight:800;border-radius:999px;min-width:32px;height:26px;padding:0 9px;display:grid;place-items:center;font-size:.95rem}.lower{display:flex;flex-wrap:wrap;gap:14px 34px;align-items:center;justify-content:center}.lower .seat.mine{align-self:center}.center{display:flex;flex-direction:column;align-items:center;gap:10px}.piles{display:flex;gap:26px;align-items:flex-end;padding:10px 22px 6px;border-radius:22px;background:#00000055;box-shadow:inset 0 2px 12px #0006}.pile{display:flex;flex-direction:column;align-items:center;gap:6px}.pile>.card{--cw:clamp(48px,8.4vh,76px);--ch:calc(var(--cw) * 1.4)}.cap{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.deck .card{box-shadow:2px 2px 0 #8f1022,4px 4px 0 #6d0b19,6px 6px 0 #4d0711,8px 10px 16px #0008}.discard .card.up{box-shadow:2px 2px 0 #ddd,4px 4px 0 #bbb,6px 8px 14px #0008}.hand .card.down,.hand .card.up{animation:lift .3s ease-out both;transform:translateY(-6px) rotate(-5deg)}.hint{font-weight:600;color:var(--ink);background:var(--chip);border-radius:999px;padding:6px 16px;text-align:center;min-height:2em;font-size:.95rem}.hint.you{color:#fff;background:var(--accent)}.grid{display:grid;grid-template-columns:repeat(4,var(--cw));grid-gap:7px;gap:7px;justify-content:center}.grid.sm{--cw:clamp(28px,4.6vh,40px);--ch:calc(var(--cw) * 1.4);gap:4px}.card{position:relative;width:var(--cw);height:var(--ch);border-radius:9px;border:3px solid #fffdf6;padding:0;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 3px 8px #0006;transition:transform .15s,box-shadow .15s;animation:deal .4s ease-out both;animation-delay:calc(var(--i) * 35ms)}.card .num{font-weight:800;font-size:1.7rem;text-shadow:0 2px 3px #0004}.card .corner{position:absolute;font-style:normal;font-weight:700;font-size:.7rem;opacity:.9}.card .corner.tl{top:2px;left:5px}.card .corner.br{bottom:2px;right:5px;transform:rotate(180deg)}.card.sm{border-width:2px;border-radius:6px}.card.sm .num{font-size:1.05rem}.card.sm .corner{display:none}.card.down{background:repeating-linear-gradient(45deg,#a8142a 0 7px,#c0162e 7px 14px);border-color:#e7e2d2}.card .logo{writing-mode:vertical-rl;transform:rotate(180deg);font-weight:800;font-size:.7rem;letter-spacing:.25em;color:#ffffff66}.card.sm .logo{font-size:.5rem}.card.up{animation:flip .5s ease-out both}.card.neg{background:linear-gradient(160deg,#5163d8,#2c3a9c)}.card.zero{background:linear-gradient(160deg,#a5e5ff,#5cb6e0);color:#0c2c3b}.card.zero .num{text-shadow:none}.card.low{background:linear-gradient(160deg,#5fcf80,#2f8f4e)}.card.mid{background:linear-gradient(160deg,#ffdd6b,#e0a91d);color:#3a2a00}.card.mid .num{text-shadow:none}.card.high{background:linear-gradient(160deg,#ff7a63,#c93a28)}.card.gone{border:2px dashed #ffffff26;background:transparent;box-shadow:none;animation:none}.card.click{cursor:pointer}.card.click:hover{transform:translateY(-5px) scale(1.04)}.card.glow{box-shadow:0 0 0 3px #fff,0 0 18px #c0162e}.card:disabled{cursor:default;opacity:1}.clock .bar{position:relative;width:70px;height:6px;border-radius:3px;background:#ffffff22;overflow:hidden}.clock .bar i{display:block;height:100%;background:var(--accent);transition:width .25s linear}.clock.urgent .bar i{background:var(--warn)}@keyframes deal{0%{opacity:0;transform:translateY(-14px) scale(.9)}to{opacity:1;transform:none}}@keyframes flip{0%{transform:perspective(500px) rotateY(90deg)}to{transform:perspective(500px) rotateY(0)}}@keyframes lift{0%{opacity:0;transform:translateY(-30px) rotate(0)}}@keyframes pop{0%{opacity:0;transform:scale(.9) translateY(10px)}}.overlay{position:fixed;inset:0;background:#000a;display:grid;place-items:center;padding:16px;z-index:20}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.modal{animation:pop .3s ease-out;background:var(--raised);border:1px solid var(--ghost-line);border-radius:18px;padding:22px;width:min(440px,100%);display:flex;flex-direction:column;gap:12px}.modal h2{margin:0;text-align:center}small{color:var(--muted)}.chat{position:fixed;right:12px;bottom:12px;width:min(320px,calc(100vw - 24px));background:var(--panel-2);border:1px solid var(--line);border-radius:14px;z-index:10;overflow:hidden}.chat-head{width:100%;display:flex;justify-content:space-between;background:var(--raised-2);color:var(--ink);border-radius:0}.badge{background:var(--high);border-radius:10px;padding:0 7px;margin-left:6px}.chat-msgs{height:180px;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:4px;font-size:.9rem}.msg b{color:var(--accent-text);margin-right:4px}.msg.mine b{color:var(--zero)}.msg.sys{color:var(--muted);font-style:italic;font-size:.8rem}.chat-form{display:flex;gap:6px;padding:8px;border-top:1px solid var(--line-soft)}.chat-form input{padding:.5rem .7rem}.chat-form button{padding:.5rem .8rem}.toast{position:fixed;top:14px;left:50%;transform:translateX(-50%);background:var(--high);color:#fff;padding:.6rem 1rem;border-radius:10px;z-index:30;font-weight:600}@media (max-width:640px){:root{--cw:clamp(36px,11vw,50px)}.felt{border-radius:30px;padding:14px 6px 18px;margin:6px;box-shadow:0 0 0 8px #a3132a,0 0 0 10px #4a0a14,inset 0 0 60px #0008;border-width:6px}.pile>.card{--cw:clamp(44px,13vw,58px)}.piles{gap:14px;padding:8px 12px 4px}.grid.sm{--cw:clamp(24px,7vw,32px)}.card .num{font-size:1.3rem}.grid.sm .card .num{font-size:.9rem}.opponents{gap:8px}.seat{padding:6px}}select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:.4rem .6rem;margin-left:8px;font-size:1rem}.clock{display:flex;align-items:center;gap:8px;background:var(--chip);border:2px solid var(--line);border-radius:999px;padding:4px 8px 4px 14px;font-size:1.4rem}.clock b{min-width:1.6ch;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.clock.mine{border-color:var(--accent)}.clock.urgent{border-color:var(--warn);color:#ffd699;animation:pulse 1s infinite}.clock.urgent .face{display:inline-block;animation:shake .25s infinite}.clock .mute{padding:2px 8px;font-size:.9rem;border-radius:999px}@keyframes shake{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}@keyframes pulse{50%{box-shadow:0 0 16px var(--warn)}}.home{max-width:960px;margin:0 auto;padding:6vh 16px 90px;display:grid;grid-gap:22px;gap:22px;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center}.hero{display:flex;flex-direction:column;align-items:center;gap:8px}.hero h1{font-size:clamp(2.6rem,9vw,4.2rem);letter-spacing:.28em;margin-right:-.28em;filter:var(--title-fx)}.tagline{color:var(--muted);margin:0;line-height:1.5}.fan{display:flex;justify-content:center;height:108px;margin-bottom:6px;--cw:62px;--ch:88px}.fan .card{animation:none;margin:0 -10px;box-shadow:0 8px 18px #0008}.fan .card:first-child{transform:rotate(-14deg) translateY(8px)}.fan .card:nth-child(2){transform:translateY(-6px);z-index:1}.fan .card:nth-child(3){transform:rotate(14deg) translateY(8px)}.card-panel{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px;text-align:left;box-shadow:0 18px 40px var(--shadow)}.card-panel h3{margin:0;display:flex;justify-content:space-between;align-items:baseline}.field{display:flex;flex-direction:column;gap:6px}.field>small,.field>span{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.field>small{text-transform:none;letter-spacing:0}.name-input{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:6px 10px 6px 8px}.codebox:focus-within,.name-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #c0162e40}.name-input input{border:0;background:transparent;padding:.5rem 0;outline:0}.pad{margin:4px 0}.seg,.tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;grid-gap:4px;gap:4px;background:var(--panel-2);border-radius:12px;padding:4px}.seg button,.tabs button{background:transparent;color:var(--muted);padding:.6rem .4rem;font-size:.95rem}.seg button.on,.tabs button.on{background:#c0162e;color:#fff;box-shadow:0 2px 6px #0005}.seg button:disabled{opacity:1;cursor:default}.seg button:disabled:not(.on){opacity:.5}.codebox{position:relative;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;border-radius:12px}.codebox input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:text;z-index:1}.codebox i{font-style:normal;height:64px;display:grid;place-items:center;font-size:2rem;font-weight:800;background:var(--panel-2);border:2px solid var(--line);border-radius:12px;color:var(--accent-text)}.codebox i.cur{border-color:var(--accent)}.codebox:focus-within i.cur{animation:blink 1s infinite}@keyframes blink{50%{border-color:var(--line)}}button.cta{padding:.95rem;font-size:1.1rem;border-radius:14px;background:linear-gradient(180deg,#dc2f48,#c0162e);box-shadow:0 4px 0 #7d0e1f,0 10px 20px #0005;transition:transform .1s,box-shadow .1s}button.cta:hover:not(:disabled){transform:translateY(-1px)}button.cta:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #7d0e1f}button.cta:disabled{background:var(--btn-off);color:var(--btn-off-ink);box-shadow:none;opacity:1}.info{display:grid;grid-gap:16px;gap:16px;width:100%;justify-items:center}.lb{font-size:.9rem}.lb td,.lb th{padding:7px 6px}.lb .rank{width:2rem;text-align:center}.lb .avatar{margin-right:4px}.rules{padding:6px 20px}.rules-toggle{background:transparent;color:var(--ink);display:flex;justify-content:space-between;padding:.6rem 0;width:100%}.rules ul{margin:0 0 12px;padding-left:18px;display:grid;grid-gap:8px;gap:8px;color:var(--list);font-size:.9rem;line-height:1.45}.eyebrow{margin:0;color:var(--muted);text-transform:uppercase;letter-spacing:.2em;font-size:.8rem}.bigcode{background:transparent;display:flex;gap:10px;padding:0;border-radius:16px}.bigcode i{font-style:normal;width:64px;height:80px;display:grid;place-items:center;font-size:2.8rem;font-weight:800;border-radius:14px;background:linear-gradient(160deg,#fffdf6,#e7e2d2);color:#2a2a2c;box-shadow:0 6px 0 #b9b39c,0 14px 24px var(--shadow-strong)}.bigcode:hover i{transform:translateY(-2px);transition:transform .12s}.invite{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:10px}.roster{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.roster li{display:flex;align-items:center;gap:10px;background:var(--panel-2);border-radius:12px;padding:8px 12px}.roster li.off{opacity:.55}.roster li.empty{color:var(--muted);border:2px dashed var(--line);background:transparent}.ghost-av{width:36px;height:36px;border-radius:50%;border:2px dashed var(--line);display:grid;place-items:center}.tag{margin-left:auto;background:var(--accent);color:#fff;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:800;text-transform:uppercase}.tag.dim{background:var(--line);color:var(--ink);margin-left:0}@media (min-width:900px){.home:not(.waiting):not(.solo){grid-template-columns:minmax(0,440px) minmax(0,440px);align-items:start;justify-content:center;gap:22px 28px}.home:not(.waiting):not(.solo) .hero{grid-column:1/-1}.info{align-content:start}}@media (max-width:480px){.bigcode i{width:54px;height:70px;font-size:2.3rem}.codebox i{height:56px}}.logo-badge{display:inline-grid;place-items:center;background:#fff;border-radius:50%;flex:none;box-shadow:0 8px 22px var(--shadow-strong),0 0 0 4px #c0162e55;overflow:hidden}.logo-badge img{display:block;width:94%;height:94%;object-fit:contain}.account{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:8px 10px}.account .who{flex:1 1;min-width:0}.account .who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-error{background:#c0162e22;border:1px solid #c0162e;color:var(--err-text);border-radius:10px;padding:.6rem .8rem;font-size:.9rem}.theme-toggle{position:fixed;left:12px;bottom:12px;z-index:15;width:42px;height:42px;padding:0;border-radius:50%;font-size:1.15rem;line-height:1;background:var(--raised);color:var(--ink);border:1px solid var(--line);box-shadow:0 4px 14px var(--shadow);display:grid;place-items:center}.theme-toggle:hover{border-color:var(--accent)}.avatar.emoji{color:initial;line-height:1;box-shadow:inset 0 0 0 1px #0000001a}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-gap:4px;gap:4px}.emoji-grid button{background:var(--panel-2);border:2px solid transparent;border-radius:10px;padding:0;aspect-ratio:1;font-size:1.35rem;line-height:1;display:grid;place-items:center;transition:transform .1s}.emoji-grid button:hover{transform:scale(1.12)}.emoji-grid button.on{border-color:var(--accent);background:#c0162e22}.pick-row{display:flex;gap:12px;align-items:flex-start}.pick-row .avatar{flex:none;margin-top:2px}.pick-row .emoji-grid{flex:1 1}.avatar-btn{position:relative;background:transparent;padding:0;flex:none}.avatar-btn,.avatar-btn i{border-radius:50%;display:grid}.avatar-btn i{position:absolute;right:-4px;bottom:-4px;width:20px;height:20px;background:var(--accent);color:#fff;font-style:normal;font-size:.7rem;place-items:center;border:2px solid var(--panel)}.avatar-btn:hover .avatar{box-shadow:0 0 0 3px var(--accent)}.modal .emoji-grid button{font-size:1.5rem}.plate .avatar.emoji{width:36px;height:36px;font-size:1.3rem}