:root{--ink: #f4ead6;--ink-soft: #cdbf9f;--ink-mute: #8f8670;--bg: #0b1f19;--bg-2: #10291f;--panel: #142f25;--panel-2: #1a3a2e;--line: rgba(244, 234, 214, .12);--line-strong: rgba(244, 234, 214, .22);--felt: #0f5a43;--felt-dark: #083a2b;--wood: #6e3f1d;--wood-light: #a0672f;--wood-dark: #3e200c;--brass: #e0b154;--brass-dark: #a97a23;--tea: #b4381f;--orange: #f08a24;--danger: #e0533d;--ok: #5fbf7f;--tile: #fbf5e6;--tile-edge: #d9ccad;--t-red: #c8261d;--t-yellow: #d68a00;--t-blue: #1d5fb8;--t-black: #1b1b1b;--radius: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--font: "Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", sans-serif;--font-tile: "Archivo", "Arial Black", sans-serif;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 600px at 80% -10%,rgba(224,177,84,.1),transparent 60%),radial-gradient(900px 600px at -10% 110%,rgba(180,56,31,.12),transparent 60%),var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{color:var(--brass);text-decoration:none}a:hover{text-decoration:underline}img,svg{display:block}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;border:0;cursor:pointer;padding:.78em 1.3em;border-radius:999px;font-weight:700;letter-spacing:.01em;font-size:1rem;line-height:1;background:var(--panel-2);color:var(--ink);border:1px solid var(--line-strong);transition:transform .12s ease,background .2s,box-shadow .2s,opacity .2s;text-decoration:none!important;white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover{transform:translateY(-1px);background:#21483a}.btn:active{transform:translateY(1px) scale(.98)}.btn[disabled]{opacity:.45;pointer-events:none}.btn-brass{background:linear-gradient(180deg,#f3cd78,var(--brass) 45%,var(--brass-dark));color:#2a1a05;border-color:#f7dc9c;box-shadow:0 6px 18px #e0b15447,inset 0 1px #ffffff80}.btn-brass:hover{background:linear-gradient(180deg,#f7d78d,#e9bb5e 45%,#b8862b)}.btn-tea{background:linear-gradient(180deg,#d55233,var(--tea));border-color:#e7795e;color:#fff4ea}.btn-ghost{background:transparent}.btn-sm{padding:.55em .95em;font-size:.88rem}.btn-lg{padding:1em 1.7em;font-size:1.12rem}.btn-block{width:100%}.icon-btn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#00000047;border:1px solid var(--line-strong);cursor:pointer;transition:background .2s,transform .12s}.icon-btn:hover{background:#00000073}.icon-btn.on{background:var(--ok);color:#062014;border-color:#9be2b3}.icon-btn.warn{background:var(--danger);border-color:#ff9d8a}.icon-btn svg{width:20px;height:20px}.field{display:grid;gap:.4rem;margin-bottom:1rem}.field label{font-weight:600;color:var(--ink-soft);font-size:.92rem}.input,select.input{width:100%;padding:.85em 1em;border-radius:12px;border:1px solid var(--line-strong);background:#00000040;color:var(--ink);font:inherit;font-size:1rem}.input:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px #e0b15433}.check{display:flex;gap:.65rem;align-items:flex-start;font-size:.92rem;color:var(--ink-soft);cursor:pointer;margin:.5rem 0}.check input{width:20px;height:20px;accent-color:var(--brass);flex:none;margin-top:1px}.error{color:#ff9d8a;font-size:.88rem}.errors{background:#e0533d1f;border:1px solid rgba(224,83,61,.4);padding:.8rem 1rem;border-radius:12px;margin-bottom:1rem}.card{background:linear-gradient(180deg,#ffffff09,#ffffff03),var(--panel);border:1px solid var(--line);border-radius:20px;padding:1.5rem;box-shadow:var(--shadow)}.muted{color:var(--ink-mute)}.brand{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.25rem;letter-spacing:-.01em;color:var(--ink)}.brand:hover{text-decoration:none}.brand .mark{width:38px;height:38px}.brand b{color:var(--brass)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:calc(.8rem + var(--safe-t)) clamp(1rem,4vw,2.5rem) .8rem;background:#0b1f19d1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar nav{display:flex;align-items:center;gap:.5rem}.chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .85rem;border-radius:999px;background:#0000004d;border:1px solid var(--line-strong);font-weight:700;font-size:.92rem}.chip .coin{width:18px;height:18px}.container{width:min(1180px,100%);margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}.avatar{--c: #c8553d;width:48px;height:48px;border-radius:50%;flex:none;position:relative;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.35),transparent 45%),var(--c);display:grid;place-items:center;border:2px solid rgba(255,255,255,.25);box-shadow:0 4px 12px #00000059}.avatar svg{width:62%;height:62%}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:clamp(2rem,6vw,5rem) 0 3rem}.hero h1{font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:.98;letter-spacing:-.035em;margin:0 0 1.2rem;font-weight:800}.hero h1 em{font-style:normal;color:var(--brass)}.hero p.lead{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--ink-soft);max-width:34em;line-height:1.55}.hero .ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem;align-items:center}.hero-art{position:relative;aspect-ratio:1 / .92}.hero-art .felt{position:absolute;inset:6% 0 0 4%;border-radius:28px;background:radial-gradient(circle at 50% 40%,#157a5b,var(--felt) 45%,var(--felt-dark));box-shadow:inset 0 0 0 10px var(--wood),inset 0 0 0 13px var(--wood-dark),0 30px 60px #00000080;transform:rotate(-3deg)}.hero-art .float{position:absolute;filter:drop-shadow(0 14px 18px rgba(0,0,0,.45))}.hero-tiles{position:absolute;left:14%;top:34%;display:flex;gap:6px;transform:rotate(-8deg)}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;padding:1rem 0 4rem}.feature{padding:1.3rem;border-radius:18px;background:#ffffff08;border:1px solid var(--line)}.feature h3{margin:.6rem 0 .3rem;font-size:1.12rem}.feature p{margin:0;color:var(--ink-soft);line-height:1.5;font-size:.96rem}.feature .ico{width:46px;height:46px}.footer{border-top:1px solid var(--line);padding:2rem 0 calc(2rem + var(--safe-b));color:var(--ink-mute);font-size:.9rem}.footer .links{display:flex;flex-wrap:wrap;gap:1.2rem;margin-bottom:.8rem}.footer a{color:var(--ink-soft)}.guest-box{display:grid;gap:.3rem}.auth-wrap{min-height:calc(100vh - 70px);display:grid;place-items:center;padding:2rem 1rem}.auth-card{width:min(440px,100%)}.auth-card h1{margin:0 0 .3rem;font-size:1.9rem;letter-spacing:-.02em}.auth-card .sub{margin:0 0 1.5rem;color:var(--ink-soft)}.divider{display:flex;align-items:center;gap:.8rem;color:var(--ink-mute);font-size:.85rem;margin:1.2rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.lobby-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem;padding:2rem 0 1.2rem}.lobby-head h1{margin:0;font-size:clamp(1.8rem,3.5vw,2.6rem);letter-spacing:-.03em}.lobby-actions{display:flex;flex-wrap:wrap;gap:.6rem}.lobby-grid{display:grid;grid-template-columns:1fr 340px;gap:1.5rem;align-items:start;padding-bottom:3rem}.tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.table-card{position:relative;padding:1rem;border-radius:18px;cursor:pointer;overflow:hidden;background:radial-gradient(circle at 50% 30%,#12684d,var(--felt) 50%,var(--felt-dark));border:3px solid var(--wood);box-shadow:inset 0 0 0 1px #ffffff14,var(--shadow);transition:transform .15s ease,box-shadow .2s}.table-card:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1px #ffffff1f,0 16px 36px #00000073}.table-card h3{margin:0 0 .2rem;font-size:1.06rem}.table-card .meta{font-size:.82rem;color:#f4ead6bf;display:flex;gap:.7rem;flex-wrap:wrap}.table-card .mini-seats{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;margin-top:.9rem}.mini-seat{aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:2px dashed rgba(255,255,255,.28);font-size:.7rem;color:#fff9}.mini-seat.full{border:0}.mini-seat .avatar{width:100%;height:100%}.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.badge.waiting{background:#5fbf7f33;color:#9be2b3}.badge.playing{background:#e0b15433;color:var(--brass)}.badge.finished{background:#ffffff1a;color:var(--ink-mute)}.table-card .badge{position:absolute;right:.8rem;top:.8rem}.empty-state{text-align:center;padding:3rem 1rem;border:2px dashed var(--line-strong);border-radius:20px;color:var(--ink-soft)}.side-stack{display:grid;gap:1rem}.stat-row{display:flex;justify-content:space-between;padding:.55rem 0;border-bottom:1px dashed var(--line);font-size:.95rem}.stat-row:last-child{border-bottom:0}.modal-back{position:fixed;inset:0;z-index:80;background:#040c09a8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:1rem}.modal-back.open{display:flex;animation:fade .2s ease}.modal{width:min(520px,100%);max-height:calc(100vh - 2rem);overflow:auto;background:linear-gradient(180deg,#1c4033,#142f25);border:1px solid var(--line-strong);border-radius:22px;padding:1.5rem;box-shadow:0 30px 80px #0009;animation:pop .25s cubic-bezier(.2,1.4,.4,1)}.modal h2{margin:0 0 1rem;font-size:1.45rem;letter-spacing:-.02em}.modal .row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.2rem;flex-wrap:wrap}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:scale(.92);opacity:0}}#toasts{position:fixed;z-index:120;left:50%;top:calc(14px + var(--safe-t));transform:translate(-50%);display:grid;gap:.5rem;pointer-events:none;width:min(92vw,440px)}.toast{background:#f4ead6;color:#1b140a;padding:.8rem 1.1rem;border-radius:14px;font-weight:600;box-shadow:0 12px 30px #00000073;animation:toastIn .3s cubic-bezier(.2,1.4,.4,1);text-align:center}.toast.err{background:#ffd9cf;color:#6a1407}.toast.out{animation:toastOut .25s ease forwards}@keyframes toastIn{0%{transform:translateY(-14px) scale(.95);opacity:0}}@keyframes toastOut{to{transform:translateY(-10px);opacity:0}}.prose{max-width:760px;margin:0 auto;padding:2.5rem 1rem 4rem;line-height:1.7;color:var(--ink-soft)}.prose h1{color:var(--ink);font-size:2.2rem;letter-spacing:-.03em;line-height:1.1}.prose h2{color:var(--ink);margin-top:2rem;font-size:1.3rem}.prose strong{color:var(--ink)}.prose table{width:100%;border-collapse:collapse;margin:1rem 0}.prose td,.prose th{padding:.5rem .6rem;border-bottom:1px solid var(--line);text-align:left}.profile-grid{display:grid;grid-template-columns:340px 1fr;gap:1.5rem;padding:2rem 0 4rem;align-items:start}.avatar-pick{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem}.avatar-pick label{cursor:pointer}.avatar-pick input{display:none}.avatar-pick .avatar{width:100%;height:auto;aspect-ratio:1;transition:transform .15s}.avatar-pick input:checked+.avatar{outline:3px solid var(--brass);outline-offset:2px;transform:scale(1.06)}.color-pick{display:flex;flex-wrap:wrap;gap:.45rem}.color-pick input{display:none}.color-pick span{width:30px;height:30px;border-radius:50%;display:block;cursor:pointer;border:2px solid rgba(255,255,255,.2)}.color-pick input:checked+span{outline:3px solid var(--brass);outline-offset:2px}.gift-shelf{display:flex;flex-wrap:wrap;gap:.8rem}.gift-shelf .g{display:grid;justify-items:center;gap:.2rem;font-size:.82rem;color:var(--ink-soft)}.gift-shelf .g svg{width:44px;height:44px}.danger-zone{border-color:#e0533d73}body.game{overflow:hidden;height:100dvh;background:#061510;touch-action:none;overscroll-behavior:none}.game-root{position:fixed;inset:0;display:grid;grid-template-rows:auto 1fr auto;background:radial-gradient(ellipse at 50% 42%,rgba(40,160,120,.38),transparent 62%),radial-gradient(ellipse at 50% 120%,rgba(0,0,0,.55),transparent 55%),repeating-linear-gradient(45deg,rgba(255,255,255,.012) 0 2px,transparent 2px 5px),var(--felt);box-shadow:inset 0 0 0 clamp(6px,1vw,12px) var(--wood),inset 0 0 0 clamp(8px,1.3vw,15px) var(--wood-dark),inset 0 0 120px #0000008c}.g-top{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:calc(clamp(10px,1.4vw,18px) + var(--safe-t)) clamp(14px,2vw,26px) 0;position:relative;z-index:6}.g-top .left,.g-top .right{display:flex;align-items:center;gap:.5rem}.g-title{display:grid;line-height:1.15}.g-title b{font-size:.98rem}.g-title small{color:#f4ead6b3;font-size:.78rem}.okey-info{display:flex;align-items:center;gap:.55rem;padding:.3rem .7rem .3rem .35rem;border-radius:14px;background:#0000004d;border:1px solid rgba(255,255,255,.1);font-size:.78rem;color:#f4ead6cc}.okey-info .tile{--tw: 30px}.okey-info b{display:block;color:var(--brass);font-size:.86rem}.g-board{position:relative;min-height:0}.seat{position:absolute;z-index:5;display:flex;align-items:center;gap:.55rem;padding:.4rem .75rem .4rem .4rem;border-radius:999px;background:#00000057;border:1px solid rgba(255,255,255,.09);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:box-shadow .3s,background .3s;max-width:46vw}.seat.s-top{left:50%;top:4px;transform:translate(-50%)}.seat.s-left{left:clamp(14px,2vw,28px);top:42%;transform:translateY(-50%);flex-direction:column;border-radius:22px;padding:.6rem .5rem;text-align:center}.seat.s-right{right:clamp(14px,2vw,28px);top:42%;transform:translateY(-50%);flex-direction:column;border-radius:22px;padding:.6rem .5rem;text-align:center}.seat.s-bottom{left:clamp(14px,2vw,28px);bottom:8px}.seat.active{background:#e0b1542e;border-color:#e0b154a6;box-shadow:0 0 0 4px #e0b15424,0 0 34px #e0b1544d}.seat .who{display:grid;line-height:1.15;min-width:0}.seat .who b{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.seat .who small{font-size:.74rem;color:#f4ead6b8;white-space:nowrap}.seat .total{font-family:var(--font-tile);font-size:.82rem;color:var(--brass)}.seat .avatar-wrap{position:relative;cursor:pointer}.seat .avatar{width:clamp(40px,4.6vw,54px);height:clamp(40px,4.6vw,54px)}.seat .timer{position:absolute;inset:-5px;border-radius:50%;pointer-events:none;background:conic-gradient(var(--brass) calc(var(--p, 0) * 1turn),transparent 0);-webkit-mask:radial-gradient(circle,transparent 62%,#000 63%);mask:radial-gradient(circle,transparent 62%,#000 63%);opacity:0;transition:opacity .2s}.seat.active .timer{opacity:1}.seat.hurry .timer{background:conic-gradient(var(--danger) calc(var(--p, 0) * 1turn),transparent 0)}.seat .speaking{position:absolute;inset:-4px;border-radius:50%;box-shadow:0 0 0 3px var(--ok),0 0 18px var(--ok);opacity:0;transition:opacity .15s;pointer-events:none}.seat.talk .speaking{opacity:1}.seat .flags{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:center}.flag{font-size:.66rem;font-weight:800;padding:.12rem .4rem;border-radius:6px;background:#ffffff1f;letter-spacing:.03em}.flag.open{background:var(--ok);color:#062014}.flag.pairs{background:#8fb3ff;color:#061433}.flag.bot{background:#e0b15440;color:var(--brass)}.flag.auto{background:#e0533d4d;color:#ffb3a4}.seat .count{font-family:var(--font-tile);font-size:.75rem;background:var(--tile);color:#222;border-radius:6px;padding:.05rem .35rem}.seat .gifts{position:absolute;display:flex;gap:2px;pointer-events:none}.seat.s-top .gifts{left:100%;margin-left:8px;top:50%;transform:translateY(-50%)}.seat.s-left .gifts,.seat.s-right .gifts{top:100%;margin-top:6px;left:50%;transform:translate(-50%)}.seat.s-bottom .gifts{left:100%;margin-left:8px;bottom:6px}.seat .gifts svg{width:24px;height:24px;animation:settle .5s ease}@keyframes settle{0%{transform:translateY(-10px) scale(1.4);opacity:0}}.seat .yancis{display:flex;gap:2px}.seat .yancis .avatar{width:22px!important;height:22px!important;border-width:1px}.seat.empty{border-style:dashed;border-color:#ffffff4d;background:#0000002e}.seat.empty .avatar{background:#ffffff0f;border-style:dashed}.seat-actions{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:center}.bubble{position:absolute;z-index:30;max-width:230px;padding:.55rem .8rem;border-radius:16px;font-size:.9rem;font-weight:600;background:var(--tile);color:#1d1408;box-shadow:0 10px 24px #0006;pointer-events:none;animation:bubbleIn .3s cubic-bezier(.2,1.4,.4,1),bubbleOut .4s ease 3.6s forwards}.bubble.react{font-size:2.4rem;padding:.2rem .5rem;background:transparent;box-shadow:none;animation:reactPop 2.2s ease forwards}@keyframes bubbleIn{0%{transform:scale(.6);opacity:0}}@keyframes bubbleOut{to{opacity:0;transform:translateY(-8px)}}@keyframes reactPop{0%{transform:scale(.3) rotate(-15deg);opacity:0}15%{transform:scale(1.3) rotate(8deg);opacity:1}30%{transform:scale(1) rotate(0)}80%{opacity:1;transform:translateY(-30px)}to{opacity:0;transform:translateY(-60px)}}.center{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:clamp(10px,1.6vw,22px);z-index:3}.deck{position:relative;width:calc(var(--tw) * 1.05);height:calc(var(--tw) * 1.42);cursor:pointer;--tw: clamp(40px, 4.4vw, 56px)}.deck .stack{position:absolute;inset:0;border-radius:8px;background:linear-gradient(180deg,#fff9ea,#e9dcbc);box-shadow:0 1px #cdbd96,0 2px #c4b38a,0 3px #bba980,0 4px #b29f75,0 5px #a8956b,0 10px 18px #00000073}.deck .stack:after{content:"";position:absolute;inset:18%;border-radius:6px;border:2px solid rgba(169,122,35,.35);background:radial-gradient(circle,rgba(224,177,84,.25),transparent 70%)}.deck .n{position:absolute;left:50%;bottom:-24px;transform:translate(-50%);font-family:var(--font-tile);font-size:.82rem;color:#f4ead6d9;white-space:nowrap}.deck.can{animation:glow 1.4s ease-in-out infinite;border-radius:8px}@keyframes glow{50%{box-shadow:0 0 0 4px #e0b1548c,0 0 30px #e0b15473}}.indicator-slot{display:grid;justify-items:center;gap:4px;font-size:.68rem;color:#f4ead6b3;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.discard{position:absolute;z-index:4;width:calc(var(--tw) + 22px);height:calc(var(--tw) * 1.38 + 22px);--tw: clamp(40px, 4.2vw, 54px);border-radius:12px;border:2px dashed rgba(255,255,255,.18);display:grid;place-items:center;transition:background .2s,border-color .2s}.discard .pile{position:relative;width:var(--tw);height:calc(var(--tw) * 1.38)}.discard .pile .tile{position:absolute;left:0;top:0}.discard.d-bl{left:18%;bottom:4%}.discard.d-br{right:18%;bottom:4%}.discard.d-tl{left:18%;top:10%}.discard.d-tr{right:18%;top:10%}.discard.can-take{border-color:var(--brass);animation:glow 1.4s ease-in-out infinite;cursor:pointer}.discard.drop-ok{border-color:var(--ok);background:#5fbf7f24}.discard.drop-hover{background:#5fbf7f4d;transform:scale(1.05)}.discard .lbl{position:absolute;bottom:-20px;font-size:.66rem;color:#f4ead68c;white-space:nowrap;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.melds{position:absolute;left:50%;top:57%;transform:translate(-50%);width:min(64%,900px);max-height:30%;overflow:auto;display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center;align-content:flex-start;z-index:3;scrollbar-width:thin;padding:4px}.meld{display:flex;gap:1px;padding:4px 5px;border-radius:8px;background:#00000038;border:1px solid rgba(255,255,255,.08);position:relative;--tw: clamp(22px, 2.2vw, 30px);transition:background .2s,transform .15s}.meld .owner{position:absolute;top:-7px;left:6px;width:10px;height:10px;border-radius:50%;border:2px solid rgba(0,0,0,.4)}.meld.drop-ok{background:#5fbf7f38;border-color:var(--ok)}.meld.drop-hover{transform:scale(1.06);background:#5fbf7f66}.meld.fresh{animation:meldIn .5s cubic-bezier(.2,1.4,.4,1)}@keyframes meldIn{0%{transform:translateY(20px) scale(.8);opacity:0}}.tile{--tw: 52px;width:var(--tw);height:calc(var(--tw) * 1.38);border-radius:calc(var(--tw) * .14);background:linear-gradient(180deg,#fffdf6,var(--tile) 55%,#efe4c8);box-shadow:inset 0 -3px 0 var(--tile-edge),inset 0 1px #fff,0 2px #b9a77e,0 4px 8px #00000052;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:calc(var(--tw) * .12);position:relative;-webkit-user-select:none;user-select:none;flex:none;color:var(--t-black);font-family:var(--font-tile);font-weight:900;line-height:1}.tile .num{font-size:calc(var(--tw) * .56);letter-spacing:-.04em}.tile .dot{width:calc(var(--tw) * .2);height:calc(var(--tw) * .2);border-radius:50%;background:currentColor;margin-top:calc(var(--tw) * .1);opacity:.95}.tile.c0{color:var(--t-red)}.tile.c1{color:var(--t-yellow)}.tile.c2{color:var(--t-blue)}.tile.c3{color:var(--t-black)}.tile.joker:after{content:"★";position:absolute;right:calc(var(--tw) * .07);top:calc(var(--tw) * .04);font-size:calc(var(--tw) * .22);color:var(--brass-dark)}.tile.joker{box-shadow:inset 0 -3px 0 var(--tile-edge),inset 0 0 0 2px #e0b154bf,0 2px #b9a77e,0 4px 10px #e0b15466}.tile.fake{justify-content:center;padding:0;color:#2a6b3c}.tile.fake .num{font-size:calc(var(--tw) * .5)}.tile.back{background:linear-gradient(160deg,#f6ecd2,#e1d1a8)}.tile.back:before{content:"";position:absolute;inset:16%;border-radius:5px;border:2px solid rgba(169,122,35,.4)}.tile.ghost{opacity:.35}.tile.selected{transform:translateY(-12px);box-shadow:inset 0 -3px 0 var(--tile-edge),0 0 0 3px var(--brass),0 12px 20px #0006}.tile.new-tile{animation:newTile 1.6s ease}@keyframes newTile{0%,60%{box-shadow:inset 0 -3px 0 var(--tile-edge),0 0 0 3px var(--ok),0 0 24px var(--ok)}}.tile.dragging{opacity:.25}.tile.fly{position:fixed;z-index:90;pointer-events:none;margin:0;transition:transform .45s cubic-bezier(.3,.8,.3,1),opacity .3s}.drag-ghost{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-60%) rotate(4deg) scale(1.08);filter:drop-shadow(0 14px 18px rgba(0,0,0,.5))}.g-bottom{position:relative;z-index:6;display:grid;justify-items:center;padding:0 10px calc(10px + var(--safe-b))}.rack-tools{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin-bottom:8px;align-items:center}.rack-tools .sum{font-family:var(--font-tile);font-size:.86rem;padding:.45rem .8rem;border-radius:999px;background:#00000061;border:1px solid rgba(255,255,255,.12);min-width:112px;text-align:center}.rack-tools .sum.ready{background:var(--ok);color:#052012;border-color:#b7f1c9}.rack{--tw: clamp(30px, min(5.1vw, 7.4vh), 60px);--gap: calc(var(--tw) * .06);position:relative;padding:calc(var(--tw) * .14) calc(var(--tw) * .3) calc(var(--tw) * .2);border-radius:14px 14px 22px 22px;background:repeating-linear-gradient(92deg,rgba(0,0,0,.06) 0 3px,transparent 3px 11px),linear-gradient(180deg,var(--wood-light),var(--wood) 45%,var(--wood-dark));box-shadow:0 18px 40px #0000008c,inset 0 2px #fff3,inset 0 -6px #0000004d}.rack-row{display:grid;grid-template-columns:repeat(15,var(--tw));gap:var(--gap);padding:calc(var(--tw) * .05) 0 calc(var(--tw) * .1);position:relative}.rack-row+.rack-row{margin-top:calc(var(--tw) * .06)}.rack-row:after{content:"";position:absolute;left:-6px;right:-6px;bottom:0;height:calc(var(--tw) * .14);border-radius:4px;background:linear-gradient(180deg,#4a2810,#2b1606);box-shadow:inset 0 1px #ffffff26}.slot{width:var(--tw);height:calc(var(--tw) * 1.38);position:relative;z-index:1;border-radius:calc(var(--tw) * .14)}.slot.hover{background:#ffffff24}.slot .tile{--tw: inherit;width:100%;height:100%;cursor:grab;transition:transform .12s ease;touch-action:none}.slot .tile:active{cursor:grabbing}.slot .tile.in-meld{box-shadow:inset 0 -3px 0 var(--tile-edge),inset 0 0 0 2px #5fbf7fa6,0 2px #b9a77e,0 4px 8px #00000052}.slot .tile.in-pair{box-shadow:inset 0 -3px 0 var(--tile-edge),inset 0 0 0 2px #8fb3ffcc,0 2px #b9a77e,0 4px 8px #00000052}.rack.yanci-view{opacity:.95}.rack-label{position:absolute;left:50%;top:-26px;transform:translate(-50%);font-size:.78rem;background:#00000080;padding:.25rem .7rem;border-radius:999px;white-space:nowrap}.g-dock{position:absolute;right:clamp(14px,2vw,26px);bottom:calc(10px + var(--safe-b));display:flex;gap:.45rem;z-index:7}.reactions{position:absolute;left:clamp(14px,2vw,26px);bottom:calc(80px + var(--safe-b));display:grid;grid-template-columns:repeat(4,38px);gap:6px;z-index:7}.reactions button{width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#0000004d;cursor:pointer;font-size:1.3rem;display:grid;place-items:center;transition:transform .12s}.reactions button:hover{transform:scale(1.15) rotate(-6deg);background:#00000080}.reactions.hidden{display:none}.turn-banner{position:absolute;left:50%;top:22%;transform:translate(-50%);z-index:8;pointer-events:none;font-weight:800;font-size:clamp(1rem,1.8vw,1.35rem);padding:.55rem 1.2rem;border-radius:999px;background:#e0b154f2;color:#2a1a05;box-shadow:0 10px 30px #0006;opacity:0;transition:opacity .25s,transform .25s}.turn-banner.show{opacity:1;transform:translate(-50%) translateY(-4px)}.waiting-panel{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:9;width:min(460px,86vw);text-align:center;padding:1.4rem;border-radius:22px;background:#072018e6;border:1px solid rgba(224,177,84,.35);box-shadow:var(--shadow)}.waiting-panel h2{margin:0 0 .4rem;font-size:1.4rem}.waiting-panel p{margin:0 0 1rem;color:var(--ink-soft)}.invite{display:flex;gap:.4rem;align-items:center;justify-content:center;margin:.8rem 0 0;flex-wrap:wrap}.invite code{font-family:var(--font-tile);letter-spacing:.2em;background:#0006;padding:.45rem .8rem;border-radius:10px;color:var(--brass)}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(360px,92vw);z-index:60;transform:translate(105%);background:linear-gradient(180deg,#153a2d,#0d271e);border-left:1px solid var(--line-strong);display:grid;grid-template-rows:auto 1fr auto auto;transition:transform .3s cubic-bezier(.3,.8,.3,1);box-shadow:-20px 0 40px #0006;padding-top:var(--safe-t)}.drawer.open{transform:none}.drawer header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--line)}.drawer header h3{margin:0}.chat-list{overflow:auto;padding:.8rem 1rem;display:grid;gap:.6rem;align-content:start}.msg{display:flex;gap:.55rem;align-items:flex-start}.msg .avatar{width:30px;height:30px}.msg .body{background:#ffffff0f;padding:.45rem .7rem;border-radius:4px 14px 14px;font-size:.92rem;line-height:1.4;word-break:break-word}.msg .body b{font-size:.8rem;color:var(--brass);display:block}.msg .body time{font-size:.7rem;color:var(--ink-mute);margin-left:.3rem}.msg.mine{flex-direction:row-reverse}.msg.mine .body{background:#e0b1542e;border-radius:14px 4px 14px 14px}.msg.system .body{background:transparent;color:var(--ink-mute);font-size:.82rem;padding:0}.quick{display:flex;gap:.35rem;overflow-x:auto;padding:.5rem 1rem;scrollbar-width:none}.quick button{flex:none;padding:.4rem .7rem;border-radius:999px;border:1px solid var(--line-strong);background:#00000040;font-size:.8rem;cursor:pointer}.chat-form{display:flex;gap:.4rem;padding:.7rem 1rem calc(.8rem + var(--safe-b));border-top:1px solid var(--line)}.chat-form .input{padding:.7em .9em}.unread{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;border-radius:9px;background:var(--danger);font-size:.7rem;font-weight:800;display:none;place-items:center;padding:0 4px}.unread.show{display:grid}.pop{position:fixed;z-index:70;width:300px;padding:1rem;border-radius:18px;display:none;background:linear-gradient(180deg,#1e4537,#143126);border:1px solid var(--line-strong);box-shadow:0 20px 50px #0009}.pop.open{display:block;animation:pop .2s cubic-bezier(.2,1.4,.4,1)}.pop .head{display:flex;gap:.7rem;align-items:center;margin-bottom:.8rem}.pop .head b{font-size:1.05rem}.gift-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}.gift-grid button{display:grid;justify-items:center;gap:2px;padding:.4rem .1rem;border-radius:12px;border:1px solid var(--line);background:#0003;cursor:pointer;font-size:.7rem;transition:transform .12s,background .2s}.gift-grid button:hover{background:#e0b15429;transform:translateY(-2px)}.gift-grid button svg{width:36px;height:36px}.gift-grid button small{color:var(--brass);font-weight:800}.pop .acts{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.8rem}.gift-fly{position:fixed;z-index:95;width:64px;height:64px;pointer-events:none;filter:drop-shadow(0 12px 14px rgba(0,0,0,.5))}.gift-toast{position:fixed;left:50%;top:18%;transform:translate(-50%);z-index:96;pointer-events:none;text-align:center;background:#072018eb;border:1px solid rgba(224,177,84,.5);padding:.7rem 1.2rem;border-radius:16px;font-weight:700;animation:bubbleIn .3s cubic-bezier(.2,1.4,.4,1),bubbleOut .5s ease 2.6s forwards}.steam path{animation:steam 2.4s ease-in-out infinite;transform-origin:center bottom}.steam path:nth-child(2){animation-delay:.8s}.steam path:nth-child(3){animation-delay:1.6s}@keyframes steam{0%{opacity:0;transform:translateY(4px) scaleY(.6)}40%{opacity:.7}to{opacity:0;transform:translateY(-8px) scaleY(1.1)}}.score-table{width:100%;border-collapse:collapse;font-size:.92rem}.score-table th,.score-table td{padding:.5rem .4rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.score-table td.num{font-family:var(--font-tile);text-align:right;white-space:nowrap}.score-table tr.win td{color:var(--ok)}.score-table .mini-tiles{display:flex;flex-wrap:wrap;gap:2px;--tw: 18px}.podium{display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:.6rem;margin:1rem 0;text-align:center}.podium .p{border-radius:14px 14px 4px 4px;padding:.8rem .4rem;background:#ffffff0f}.podium .p .avatar{margin:0 auto .4rem}.podium .p1{background:linear-gradient(180deg,#e0b15466,#e0b1541a);padding-top:1.6rem}.confetti{position:fixed;inset:0;pointer-events:none;z-index:110}.rotate-hint{display:none;position:fixed;inset:0;z-index:200;background:var(--bg);place-items:center;text-align:center;padding:2rem}.rotate-hint svg{width:90px;height:90px;margin:0 auto 1rem;animation:rot 2s ease-in-out infinite}@keyframes rot{50%{transform:rotate(-90deg)}}@media(orientation:portrait)and (max-width:760px){body.game .rotate-hint{display:grid}}@media(max-width:980px){.lobby-grid,.profile-grid,.hero{grid-template-columns:1fr}.hero-art{max-width:520px;width:100%;margin:0 auto}}@media(max-width:560px){.modal .row{grid-template-columns:1fr}.topbar .hide-sm{display:none}}@media(max-height:520px){.g-title small,.okey-info span,.seat .who small{display:none}.reactions{grid-template-columns:repeat(8,32px);bottom:auto;top:54px;left:50%;transform:translate(-50%)}.reactions button{width:32px;height:32px;font-size:1.05rem}.rack-tools{margin-bottom:4px}.rack-tools .btn-sm{padding:.42em .75em;font-size:.78rem}.melds{top:55%;max-height:26%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
