:root{--felt: #1a3a1e;--felt-dark: #0e2a12;--gold: #c9a227;--brass: #f1c84d;--tile-bg: #f5f0e1;--ink: #1c1c1c;--red: #b22222;--muted: #9db3a1}*{box-sizing:border-box}body{margin:0;background:var(--felt-dark);color:var(--tile-bg);font-family:system-ui,-apple-system,Noto Sans SC,sans-serif}button{font:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:default}input,textarea,select{font:inherit;padding:8px;border-radius:8px;border:1px solid #2c4a31;background:#0f2f15;color:var(--tile-bg);width:100%}label{display:grid;gap:4px;font-size:.9rem}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#0c2410;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:8px;font-weight:800}.brand-mark{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:9px;background:var(--gold);color:var(--felt-dark);font-weight:800}.topbar-actions{display:flex;align-items:center;gap:6px}.gold-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;background:var(--felt-dark);border:1px solid rgba(245,217,127,.35);color:#f5d97f;font-size:.78rem;line-height:1;white-space:nowrap}.gold-chip b{font-weight:700}.gold-chip em{font-style:normal;opacity:.85}.gold-chip .gold-mini{width:18px;height:24px}@media(max-width:460px){.gold-chip{padding:2px 8px;font-size:.7rem;gap:4px}.gold-chip b{display:none}.gold-chip .gold-mini{width:15px;height:20px}}.icon-btn{background:transparent;border:1px solid #2c4a31;color:var(--tile-bg);border-radius:8px;padding:6px;position:relative}.nav-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid #2c4a31;color:var(--tile-bg);border-radius:8px;padding:6px 10px}.me-name{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem}.badge{position:absolute;top:-6px;right:-6px;background:var(--red);border-radius:10px;font-size:.7rem;padding:0 5px}.table-head-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:#000c;padding:10px 16px;border-radius:10px;z-index:100;max-width:90vw;display:flex;align-items:center;gap:10px}.toast button{background:var(--gold);color:var(--felt-dark);font-weight:700;border:none;border-radius:8px;padding:5px 12px;white-space:nowrap}.main{max-width:1100px;margin:0 auto;padding:12px;display:grid;gap:12px}.card{background:#123420;border:1px solid #2c4a31;border-radius:12px;padding:14px}.muted{color:var(--muted)}.small{font-size:.8rem}.eyebrow{color:var(--gold);letter-spacing:.1em;font-size:.75rem;margin:0}.primary-btn{background:var(--gold);color:var(--felt-dark);font-weight:700;border:none;border-radius:10px;padding:10px 18px}.primary-btn.win{background:var(--red);color:#fff}.ghost-btn{background:transparent;border:1px solid var(--gold);color:var(--gold);border-radius:10px;padding:10px 18px}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.danger{color:#ff9d9d}.landing{display:grid;gap:12px}.wechat-tip{margin:0;padding:10px 16px;border-radius:10px;color:#ffeec2;font-size:.82rem;line-height:1.6;background:#c9a22724;border:1px solid rgba(201,162,39,.5)}.wechat-tip p{margin:0}.wechat-tip--auth{margin-top:10px}.welcome-hero{position:relative;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;padding:42px 38px 0;overflow:hidden;border:1px solid rgba(197,171,105,.35);border-radius:24px;background:radial-gradient(ellipse at 80% 30%,rgba(47,102,83,.35),transparent 65%),linear-gradient(135deg,#143e32,#08271f)}.welcome-copy{position:relative;z-index:1}.welcome-copy .eyebrow{display:flex;align-items:center;gap:9px;color:#d9be7a;margin:0 0 22px;font-size:.7rem;font-weight:700;letter-spacing:.17em}.welcome-copy .eyebrow>span{width:6px;height:6px;background:#dcbb69;border-radius:50%}.welcome-copy h1{font:500 clamp(2.3rem,4.6vw,3.7rem)/1.3 Georgia,"Songti SC","SimSun",serif;letter-spacing:-.035em;margin:0;color:#fff6e5}.welcome-copy h1 em{color:#e6c77e;font-style:normal}.welcome-intro{color:#c0d1c7;line-height:1.9;max-width:460px;margin:20px 0 0;font-size:.95rem}.welcome-hint{color:#a9c0b4;font-size:.75rem;line-height:1.6;margin:14px 0 0}.lobby-actions{display:flex;align-items:center;gap:18px;margin-top:22px}.welcome-hero .primary-btn{background:#e2c077;min-height:52px;box-shadow:0 5px 18px #0003}.hero-rules{color:#ead7aa;border:0;background:transparent;padding:10px 0;font-size:.85rem}.welcome-facts{grid-column:1 / -1;display:flex;justify-content:space-between;gap:12px;border-top:1px solid rgba(216,188,115,.19);margin-top:36px;padding:21px 0}.welcome-facts>span{display:flex;align-items:center;gap:12px;color:#afc2b7;font-size:.75rem}.welcome-facts b{font:500 1.5rem Georgia,Songti SC,serif;color:#e2ca8f}.welcome-art{position:relative;width:100%;height:320px}.art-orbit{position:absolute;width:290px;height:290px;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(217,191,126,.22);border-radius:50%;box-shadow:0 0 0 22px #d9bf7e06,0 0 0 44px #d9bf7e04}.art-tile{position:absolute;width:118px;height:158px;left:calc(50% - 59px);top:70px;container-type:size;border-radius:12px;background:linear-gradient(135deg,#fff,#fffdf8 76%,#eee9dd);border:1px solid rgba(255,255,255,.88);box-shadow:0 16px 28px #0000004f;overflow:hidden}.art-tile--one{transform:translate(-62px,14px) rotate(-14deg)}.art-tile--two{transform:translateY(-5px) rotate(-2deg)}.art-tile--three{transform:translate(62px,12px) rotate(12deg);background:linear-gradient(135deg,#ffeda8,#ffe9a8 76%,#f5d97f)}.art-gold{position:absolute;top:6px;right:6px;z-index:2;font-size:.7rem;font-style:normal;font-weight:800;background:var(--gold);color:#3a2c00;border-radius:4px;padding:1px 5px}.art-seal{position:absolute;bottom:21px;right:15px;border:1px solid #e1947a;background:#9b3f31;color:#fff1d8;border-radius:4px;padding:7px;font:600 .8rem/1.5 Songti SC,serif;transform:rotate(8deg)}.welcome-art>p{position:absolute;left:0;bottom:-5px;width:100%;text-align:center;color:#a8bdac;font-size:.56rem;letter-spacing:.18em}@media(min-width:880px){.landing{grid-template-columns:1.45fr 1fr;align-items:center}.landing>.wechat-tip{grid-column:1 / -1}.welcome-hero{padding:32px 30px 0}.welcome-copy h1{font-size:clamp(2.1rem,3.4vw,3rem)}.welcome-intro{font-size:.9rem}.welcome-facts{margin-top:24px;padding:16px 0}.welcome-art{height:280px}.art-tile{width:104px;height:140px;left:calc(50% - 52px);top:62px}.art-tile--one{transform:translate(-56px,12px) rotate(-14deg)}.art-tile--three{transform:translate(56px,10px) rotate(12deg)}.art-orbit{width:250px;height:250px}.auth.card{padding:18px 22px}}.auth{display:grid;gap:10px;max-width:420px}.tabs{display:flex;gap:8px}.tabs button{flex:1;padding:8px;border-radius:8px;border:1px solid #2c4a31;background:transparent;color:var(--tile-bg)}.tabs button.active{background:var(--gold);color:var(--felt-dark);font-weight:700}.google-btn{min-height:44px}.lobby{display:grid;gap:24px}.lobby-options{display:grid;grid-template-columns:1fr 1fr;gap:20px}.create-card,.join-card{display:grid;gap:14px;align-content:start;padding:26px}.create-card h3,.join-card h3{font:600 1.6rem Georgia,Songti SC,SimSun,serif;margin:0;color:#fff6e5}.create-card p,.join-card p{margin:0;line-height:1.6}.create-card .wide,.join-card .wide{display:grid;gap:6px}.create-card button,.join-card button{min-height:46px;display:flex;justify-content:space-between;align-items:center;border-radius:10px}.lobby-footer{text-align:center;margin:0;color:#a9b9ad;font-size:.8rem}.seat-list{list-style:none;padding:0;display:grid;gap:6px}.seat-list li{display:flex;justify-content:space-between;align-items:center}.admin-code{font-family:monospace;background:#0c2410;padding:4px 8px;border-radius:6px}.waiting{display:grid;gap:10px}.waiting-host-note{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:#0c2410;border:1px solid #2c4a31;margin:0}.waiting-dot{width:10px;height:10px;border-radius:50%;background:var(--gold, #f1c84d);animation:waitingPulse 1.2s ease-in-out infinite;flex:none}@keyframes waitingPulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}.table-wrap{display:grid;gap:12px}.table-game{display:grid;gap:10px;min-width:0}.table-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}.code{font-family:monospace;background:var(--felt-dark);color:var(--tile-bg);border-radius:6px;padding:2px 8px;margin-left:8px;letter-spacing:1px}.status{margin-left:8px;color:var(--muted)}.level-pill{background:var(--felt-dark);color:var(--tile-bg);border-radius:999px;padding:3px 10px;font-size:.85rem}.table-nav-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;font-size:.85rem}.table-game>.table-head.card{display:none}.table-game>.table-head.card.expanded{display:flex;position:fixed;z-index:40;top:calc(52px + env(safe-area-inset-top));left:8px;right:8px;padding:10px 12px;font-size:.8rem;flex-wrap:wrap;box-shadow:0 12px 32px #0006}.banner{border-left:6px solid var(--gold)}.banner.pending-me{border-left-color:var(--brass);display:grid;gap:8px}.chow-pick{display:flex;gap:12px;flex-wrap:wrap}.chow-pick label{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid transparent;border-radius:8px;background:#ffffff10;cursor:pointer}.chow-pick label.picked{border-color:var(--brass);background:#ffffff1f;box-shadow:0 0 0 1px #f1c84d4d}.chow-pick input{width:auto;accent-color:var(--brass)}.chow-tile{display:inline-block;width:22px;height:30px;container-type:size;background:linear-gradient(135deg,#fff,#fffdf8 76%,#eee9dd);border:1px solid #b8b5ad;border-radius:3px;overflow:hidden;box-shadow:0 1px 3px #00000059}.poker-arena{position:relative;padding:14px 14px 0;overflow:hidden;border-radius:28px;background:linear-gradient(180deg,#0a241a,#0d2f21 66%,#081c14);box-shadow:0 16px 40px #00000057,inset 0 1px #ffffff0d}.table-rail{position:relative;padding:15px;border-radius:42%/18%;background:linear-gradient(145deg,#5d3a1c,#241309 40%,#6f4523 67%,#28150c);box-shadow:0 13px 22px #0000006b,inset 0 2px 2px #ffe8be47,inset 0 -3px 5px #0000008c}.table-rail:after{content:"";position:absolute;inset:7px;border:1px solid rgba(240,193,112,.3);border-radius:inherit;pointer-events:none}.poker-felt{position:relative;min-height:460px;border-radius:40px;padding:16px 22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto minmax(58px,auto) auto minmax(58px,auto) auto minmax(58px,auto) auto;gap:10px 24px;align-items:center;background:radial-gradient(ellipse at center,#1a5c44,#124a37 54%,#0c3327);box-shadow:inset 0 0 50px #0000006b,inset 0 0 0 2px #debd7038}.felt-grain{position:absolute;inset:0;opacity:.13;pointer-events:none;background-image:repeating-linear-gradient(26deg,transparent 0 3px,rgba(255,255,255,.09) 3px 4px);mix-blend-mode:soft-light}.table-emblem{position:absolute;left:50%;top:50%;width:112px;height:112px;transform:translate(-50%,-50%) rotate(45deg);display:grid;place-items:center;border:2px solid rgba(224,194,121,.13);color:#eed28e1a}.table-emblem span{transform:rotate(-45deg);font:700 4.2rem/1 serif}.seat{position:relative;z-index:5;display:flex;align-items:center;gap:8px;justify-self:center;min-width:150px;max-width:210px;padding:7px 10px;color:#f8f1dc;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#041913d1;box-shadow:0 5px 15px #0000004d;transition:box-shadow .18s,border-color .18s}.seat--top{grid-column:1 / -1;grid-row:1}.seat--left{grid-column:1;grid-row:3}.seat--right{grid-column:2;grid-row:3}.seat.turn{border-color:#f4cd58;box-shadow:0 0 0 3px #f4cd583d,0 0 24px #f4cd586b}.seat.turn .avatar{background:var(--brass);color:#102c23}.seat.pulse{animation:seatPulse 1.4s ease-out}.poker-hand.pulse{animation:handPulse 1.4s ease-out}@keyframes seatPulse{0%{box-shadow:0 0 #f4cd588c}to{box-shadow:0 0 0 14px #f4cd5800}}@keyframes handPulse{0%{box-shadow:0 -8px 24px #0000003d,0 0 #f4cd5880}to{box-shadow:0 -8px 24px #0000003d,0 0 0 12px #f4cd5800}}.avatar{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:50%;background:#e9dfc6;color:#123b2e;border:2px solid rgba(255,255,255,.45);font-weight:800}.seat-copy{min-width:0;flex:1}.seat-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750;font-size:.9rem}.seat-meta{color:#b8cec5;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opponent-hand{display:flex;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;color:#f2d57e;font-size:.82rem}.card-back{display:block;width:21px;height:29px;border:2px solid #f4ead6;border-radius:3px;background:repeating-linear-gradient(45deg,#1d5c34 0 3px,#2f7a48 3px 6px);box-shadow:-3px 1px #f4ead6,-4px 1px #1c5c34}.table-center{position:relative;z-index:3;grid-column:1 / -1;grid-row:5;display:grid;justify-items:center;gap:7px;text-align:center;min-width:0}.turn-call{padding:6px 12px;border-radius:999px;background:#041f17c2;color:#d5e5df;font-size:.83rem}.turn-call.active{color:#1b271f;background:#f2cd58;font-weight:800;animation:turnPulse 1.6s ease-in-out infinite}@keyframes turnPulse{50%{box-shadow:0 0 0 7px #f2cd581f}}.combo{background:#041f17b3;color:#f5d97f;border:1px solid rgba(245,217,127,.35);border-radius:8px;padding:2px 10px;font-size:.78rem}.table-plays{display:contents}.table-play{position:relative;z-index:4;display:grid;justify-items:center;align-self:start;gap:4px;min-width:0;width:100%}.table-play--top{grid-column:1 / -1;grid-row:2}.table-play--bottom{grid-column:1 / -1;grid-row:6}.table-play--left{grid-column:1;grid-row:4}.table-play--right{grid-column:2;grid-row:4}.play-owner{padding:1px 6px;border-radius:9px;color:#ffffffc7;background:#00000038;font-size:.68rem}.play-tiles{display:grid;justify-items:center;gap:3px;width:100%;max-height:112px;overflow-y:auto;scrollbar-width:thin}.played-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;width:100%}.played-card{position:relative;flex:0 0 32px;width:32px;height:44px;display:block;border-radius:4px;border:1px solid #cfcac0;background:var(--tile-bg);color:var(--ink);box-shadow:0 2px 5px #00000059;font-size:9px;overflow:hidden;outline:2px solid transparent;outline-offset:1px;transition:outline-color .18s ease,box-shadow .18s ease}.played-card.gold{background:#ffe9a8}.played-card.last-played{outline-color:#e53935;box-shadow:0 0 9px #e53935b3;z-index:2}.played-card.revealing,.meld-chip.revealing{opacity:0}.played-melds{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}.meld-chip{display:inline-flex;align-items:center;gap:1px;background:#0000004d;border:1px solid rgba(245,217,127,.4);border-radius:6px;padding:1px}.meld-face{display:inline-block;width:20px;height:28px;container-type:size;background:linear-gradient(135deg,#fff,#fffdf8 76%,#eee9dd);border:1px solid #b8b5ad;border-radius:3px;overflow:hidden}.meld-face .face-back{display:block;width:100%;height:100%;background:repeating-linear-gradient(45deg,#2c4a3f 0 3px,#1d332c 3px 6px)}.flower-row{display:flex;align-items:center;gap:3px;flex-wrap:wrap;padding:2px 5px}.flower-label{color:#e49ab0;font-size:.75rem;font-weight:700}.flower-tile{display:inline-block;width:24px;height:32px;font-size:8px;background:linear-gradient(135deg,#fff,#fffdf8 76%,#eee9dd);border:1px solid #b8b5ad;border-radius:4px;overflow:hidden}.tile,.played-card,.flower-tile{container-type:size}.tf{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1;font-size:122cqh;overflow:hidden}.tf.wan{color:#d32f2f}.tf.tong{color:#1976d2}.tf.suo{color:#2e7d32}.tf.wind{color:#6d4c41}.tf.dragon-red{color:#c62828}.tf.dragon-green{color:#2e7d32}.tf.dragon-white{color:#455a64}.tf.flower{color:#e91e63}.tf-dots{display:block;width:100%;height:100%}.tf-dots .tf-frame{fill:none;stroke:currentColor;stroke-width:4}.tf-dots .tf-ring,.tf-dots .tf-ring-in{fill:none;stroke:currentColor}.tf-dots .tf-pip{fill:currentColor}.tf-g{position:absolute;top:2cqi;right:2cqi;z-index:2;font-size:22cqi;font-style:normal;font-weight:800;background:var(--gold);color:#3a2c00;border-radius:3px;padding:0 4cqi;line-height:1.3}.poker-hand{position:relative;margin:10px auto 0;padding:7px 10px 12px;max-width:980px;width:100%;border:1px solid rgba(218,186,104,.25);border-radius:18px 18px 0 0;background:linear-gradient(180deg,#08231bf5,#051812fc);box-shadow:0 -8px 24px #0000003d}.hand-caption{display:flex;justify-content:space-between;align-items:center;min-height:24px;padding:0 5px;color:#b9cec6;font-size:.78rem}.hand-caption strong{color:#f1cd5b}.hand-scroll{overflow-x:auto;overflow-y:hidden;padding:15px 6px 5px;scrollbar-width:thin}.hand-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:100%}.tile{position:relative;flex:0 0 44px;width:44px;height:62px;margin:0;padding:0;border:1px solid #b8b5ad;border-radius:6px;overflow:hidden;background:linear-gradient(135deg,#fff,#fffdf8 76%,#eee9dd);color:var(--ink);box-shadow:-2px 2px 5px #00000057;font-size:13px;transition:transform .12s ease,box-shadow .12s ease;touch-action:manipulation}.tile:first-child{margin-left:0}.tile:hover{transform:translateY(-7px)}.tile.selected{transform:translateY(-15px);background:#ffeb3b;border:2px solid var(--brass);box-shadow:0 0 0 2px #f1c84d47,0 9px 14px #00000080}.tile.drawn{outline:2px solid #00e676;box-shadow:0 0 10px #00e6768c}.tile.grab{outline:2px solid var(--brass);box-shadow:0 0 10px #f1c84da6}.turn.grab-hint{color:var(--brass);font-size:.85rem}.combo.gold-status{display:inline-flex;align-items:center;gap:6px}.level-pill.gold-pill{display:inline-flex;align-items:center;gap:5px}.gold-mini{display:inline-block;width:22px;height:30px;container-type:size;border-radius:4px;overflow:hidden;background:var(--tile-bg);vertical-align:middle}.turn.auto-draw{color:var(--brass);font-size:.85rem}.tile.selected.gold,.tile.gold{background:linear-gradient(135deg,#ffeda8,#ffe9a8 76%,#f5d97f)}.hand-actions{display:flex;justify-content:center;gap:10px;margin-top:4px;position:relative}.hand-actions button{min-width:112px}.hand-actions .primary-btn{box-shadow:0 4px 10px #00000047}.hand-actions .primary-btn span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;padding:0 5px;border-radius:10px;background:#07231a29}.hand-actions .primary-btn.big{font-size:1rem}.pass-btn{border:1px solid rgba(255,255,255,.38);border-radius:10px;padding:8px 20px;color:#f3eee1;background:#ffffff0f;font-weight:700}.hand-actions .home-btn,.hand-actions .settings-btn{min-width:48px;padding:8px 12px;border-radius:10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.38);color:#f3eee1}.sound-popup{position:absolute;right:0;bottom:calc(100% + 10px);z-index:35;display:grid;gap:6px;min-width:216px;padding:10px}.sound-popup .sound-row{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 12px;border:1px solid #cbd5d1;border-radius:10px;background:#fff;color:var(--ink);font-size:.92rem}.sound-popup .sound-row span{flex:1;text-align:left}.panels{display:grid;gap:12px}@media(min-width:760px){.panels{grid-template-columns:1fr 1fr 1fr}}.panels details summary{cursor:pointer;font-weight:700}.plays{display:grid;gap:6px;max-height:220px;overflow:auto;font-size:.9rem}.play{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;border-bottom:1px dashed #2c4a31;padding-bottom:4px}.data-report-row{margin-top:8px}.data-report-row .muted{flex:1 1 140px}.rules-list{padding-left:20px;display:grid;gap:6px;font-size:.92rem}.rules-guide{display:grid;gap:4px}.rules-intro{margin:0 0 6px;color:var(--muted);font-size:.88rem;line-height:1.7}.rule-section{border-top:1px solid rgba(218,186,104,.22)}.rule-section summary{display:flex;align-items:baseline;gap:8px;padding:14px 2px;cursor:pointer;font-weight:700;font-size:.95rem;color:#f3eee1}.rule-section summary::marker{color:var(--brass)}.rule-number{color:var(--brass);font:500 .82rem Georgia,serif;letter-spacing:.04em}.rule-content{padding:0 4px 14px;font-size:.88rem;line-height:1.8;color:#d8e6de}.rule-content p{margin:0 0 10px}.combo-examples{display:grid;gap:8px;margin-top:8px}.combo-example{display:grid;gap:6px;padding:10px 12px;border-radius:10px;background:#00000038;border:1px solid rgba(255,255,255,.07)}.combo-example strong{color:var(--gold);font-size:.86rem}.combo-tiles{display:flex;flex-wrap:wrap;align-items:flex-end;gap:3px}.combo-tiles .tile.mini{flex:0 0 26px;width:26px;height:36px;box-shadow:none}.jin-chip{display:flex;width:100%;height:100%;align-items:center;justify-content:center;background:var(--gold);color:#3a2c00;font-style:normal;font-weight:800;font-size:.85rem}.combo-note{color:#9fb6ab;font-size:.78rem;line-height:1.6}.chat-list{max-height:160px;overflow:auto;display:grid;gap:4px;font-size:.9rem;margin-bottom:8px}.chat-form{display:flex;gap:6px}.chat-form button{flex:none}.modal{position:fixed;inset:0;background:#000a;display:grid;place-items:center;z-index:50;padding:12px}.modal-card{max-width:640px;width:100%;max-height:88vh;overflow:auto}.modal-mask{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50;padding:12px}.fireworks{position:fixed;inset:0;z-index:55;pointer-events:none}.modal-mask.celebrating{z-index:54}.modal-mask.celebrating .finish-modal{position:relative;z-index:56}@media(prefers-reduced-motion:reduce){.fireworks{display:none}}.finish-modal{max-width:420px;text-align:center;justify-items:center;padding:26px}.finish-modal h3{margin:0}.finish-hands{width:100%;margin-top:12px;display:grid;gap:6px;text-align:left}.finish-hands__title{color:var(--gold);font-weight:700;font-size:.82rem}.finish-hand{display:grid;gap:4px;padding:6px 8px;border-radius:10px;background:#0003;border:1px solid rgba(255,255,255,.08)}.finish-hand.is-winner{border-color:var(--gold);background:#c9a22724}.finish-hand__name{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:#cfe3da}.finish-hand__name b{color:var(--gold)}.finish-hand__tiles{display:flex;flex-wrap:wrap;align-items:flex-end;gap:3px}.tile.mini{flex:0 0 26px;width:26px;height:36px;box-shadow:none;border-radius:4px}.tile.mini.win-tile{outline:2px solid #2ed573;box-shadow:0 0 8px #2ed5738c}.finish-actions{justify-content:center;margin-top:6px}.finish-actions .primary-btn.big{min-width:180px}.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.admin-tabs button{background:transparent;border:1px solid #2c4a31;color:var(--tile-bg);border-radius:8px;padding:6px 10px}.admin-tabs button.is-active{background:var(--gold);color:var(--felt-dark)}.close-x{margin-left:auto}.video-wrap video{width:100%;border-radius:8px;background:#000}.legacy-timeline ol{max-height:300px;overflow:auto;font-size:.8rem}.replay-state{white-space:pre-wrap;font-size:.8rem;background:#0c2410;padding:8px;border-radius:8px}.file-btn{border:1px solid var(--gold);color:var(--gold);border-radius:8px;padding:6px 10px;cursor:pointer}.admin-strip{display:flex;gap:8px;align-items:center}.back-button{background:transparent;border:1px solid #2c4a31;color:var(--tile-bg);border-radius:8px;padding:6px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.admin-stat{display:grid}.admin-list{display:grid;gap:8px}.admin-row{display:flex;gap:8px;align-items:center;justify-content:space-between}.inbox-layout{display:grid;gap:8px}.contact-line{border-bottom:1px solid #2c4a31;padding:6px 0;font-size:.9rem}.contact-line p{margin:2px 0}.report-body{margin:4px 0 0;padding:8px 10px;border-radius:8px;background:#00000047;color:#d8e6de;font-size:.75rem;line-height:1.5;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word}.notif-badge{background:var(--red);border-radius:10px;font-size:.7rem;padding:0 6px;margin-left:6px}.settings{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;font-size:.85rem;max-width:1076px;margin:0 auto 12px;padding:10px 12px}.settings label{display:inline-flex;align-items:center;gap:6px}.settings input{width:auto}.static-loader{min-height:60vh;display:grid;place-items:center;text-align:center}.static-loader__mark{display:inline-flex;width:54px;height:54px;align-items:center;justify-content:center;border-radius:14px;background:var(--gold);color:var(--felt-dark);font-weight:800;font-size:1.8rem}.appicon{display:inline-flex;vertical-align:middle}.topbar{min-height:54px}.topbar button{display:inline-flex;justify-content:center;align-items:center;min-height:40px;min-width:36px}.sort-btn{min-height:32px;padding:4px 12px;border-radius:999px;border:1px solid #657c65;background:transparent;color:var(--tile-bg)}.sort-btn[aria-pressed=true]{color:var(--brass);border-color:var(--brass)}.hand-actions{min-height:48px;align-items:center}.hand-actions>button{min-height:44px}.claim-prompt{position:relative;z-index:6;width:fit-content;max-width:100%;margin:4px auto;padding:6px 12px;border:1px solid var(--brass);border-radius:12px;background:#102f23;font-size:.8rem}.chow-pick{margin-top:6px;gap:6px}.chow-pick label{min-height:36px}.chow-tile{width:28px;height:37px}.final-notice{max-width:200px;font-size:.68rem;color:var(--brass)}.table-head .row{flex-wrap:wrap}.finish-modal{width:100%;max-height:90dvh;overflow:auto}@media(min-width:769px){.poker-felt{grid-template-columns:minmax(0,1fr) minmax(150px,1.3fr) minmax(0,1fr);grid-template-rows:auto minmax(80px,1fr) auto minmax(80px,1fr);min-height:410px;gap:12px}.seat--top{grid-column:2;grid-row:1}.seat--left{grid-column:1;grid-row:3}.seat--right{grid-column:3;grid-row:3}.table-play--top{grid-column:2;grid-row:2}.table-play--left{grid-column:1;grid-row:4}.table-play--right{grid-column:3;grid-row:4}.table-center{grid-column:2;grid-row:3}.table-play--bottom{grid-column:2;grid-row:4;min-height:64px}}@media(max-width:768px)and (orientation:portrait),(max-height:500px)and (orientation:landscape){.nav-label,.me-name,.brand-name,.is-playing .topbar .about-nav{display:none}.topbar{padding:4px max(6px,env(safe-area-inset-right)) 4px max(6px,env(safe-area-inset-left))}.topbar-actions{gap:2px}.topbar button{padding:4px}.welcome-hero{grid-template-columns:1fr;padding:27px 20px 0;border-radius:18px}.welcome-copy h1{font-size:clamp(2.1rem,8.5vw,3rem)}.welcome-copy .eyebrow{font-size:.6rem;margin-bottom:16px}.welcome-intro{font-size:.85rem;margin-top:14px}.lobby-actions{margin-top:18px;gap:16px}.welcome-hero .primary-btn.big{padding:12px 18px;font-size:1rem}.welcome-art{height:200px;margin-top:16px}.art-tile{width:88px;height:118px;left:calc(50% - 44px);top:26px}.art-tile--one{transform:translate(-51px,10px) rotate(-14deg)}.art-tile--three{transform:translate(51px,8px) rotate(12deg)}.art-orbit{width:170px;height:170px}.art-seal{bottom:14px;right:8px;font-size:.65rem}.welcome-facts{margin-top:14px;padding:18px 0}.welcome-facts>span{display:grid;gap:5px;font-size:.63rem}.welcome-facts b{font-size:1.2rem}.lobby{gap:16px}.lobby-options{grid-template-columns:1fr;gap:14px}.create-card,.join-card{padding:20px}.settings{margin:0 6px 8px}.main{padding:6px}.is-playing .main{width:100%;max-width:none}.table-game{height:calc(100svh - 66px);height:calc(100dvh - 66px);min-height:0;display:flex;flex-direction:column;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.poker-arena{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:4px 4px 0;border-radius:20px}.table-rail{min-height:0;padding:8px;border-radius:32px}.poker-felt{height:100%;min-height:0;border-radius:26px;padding:6px;gap:4px 10px;grid-template-rows:auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr)}.table-emblem{width:72px;height:72px}.table-emblem span{font-size:2.8rem}.seat{min-width:0;max-width:150px;padding:4px 6px;gap:4px}.avatar{width:26px;height:26px;flex-basis:26px;font-size:.75rem}.seat-name{max-width:76px;font-size:.72rem}.seat-meta{font-size:.58rem}.opponent-hand{font-size:.68rem}.card-back{width:13px;height:19px}.turn-call{padding:4px 8px;font-size:.72rem}.combo{font-size:.68rem}.table-play{height:100%;min-height:0;gap:2px;grid-template-rows:auto minmax(0,1fr)}.play-tiles{min-height:0;max-height:100%;display:block}.played-cards{align-content:start;gap:2px}.played-melds{margin-top:3px}.played-card{flex-basis:23px;width:23px;height:30px;font-size:7px}.play-owner{font-size:.58rem}.meld-chip{padding:1px}.meld-face{width:19px;height:26px}.poker-hand{width:100%;min-width:0;margin:4px 0 0;padding:3px 4px 5px}.hand-caption{min-height:28px;font-size:.7rem}.hand-scroll{overflow:visible;padding:9px 2px 2px}.hand-cards{gap:4px}.tile,.tile:first-child{flex:0 0 calc((100% - 32px) / 9);max-width:40px;width:auto;height:48px;margin:0;font-size:11px}.tile:hover{transform:none}.tile.selected{transform:translateY(-8px)}.hand-actions{position:fixed;z-index:30;left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));bottom:calc(6px + env(safe-area-inset-bottom));margin:0;gap:6px;pointer-events:none}.hand-actions>button{pointer-events:auto;min-width:0;min-height:46px;padding:8px 12px;border-radius:999px;color:#fffdf6;background:#123426ed;border:1px solid #8ca395;font-size:.85rem}.hand-actions>.primary-btn{color:#172c20;background:#f1c84d;border-color:#ffeaa5;text-shadow:none}.hand-actions>.primary-btn.big{flex:0 1 150px;font-size:.9rem}.hand-actions>.win{background:#9e302c;color:#fff}.hand-actions .home-btn,.hand-actions .settings-btn{min-width:42px;flex:0 0 42px;padding:8px}.sound-popup{pointer-events:auto;bottom:calc(100% + 10px)}.panels{gap:6px}.panels>.card{padding:10px}}@media(max-height:500px)and (orientation:landscape){.topbar{min-height:44px;padding-top:2px;padding-bottom:2px}.brand-mark{width:30px;height:30px}.topbar button{min-height:36px}.main{padding:4px max(6px,env(safe-area-inset-right)) 4px max(6px,env(safe-area-inset-left))}.table-game{height:calc(100svh - 52px);height:calc(100dvh - 52px);padding-bottom:calc(52px + env(safe-area-inset-bottom))}.table-rail{background:none;box-shadow:none;padding:0;border-radius:0}.table-rail:after{display:none}.poker-felt{border-radius:14px;grid-template-columns:minmax(0,1fr) minmax(140px,1.3fr) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto minmax(0,1fr);gap:3px 12px;padding:5px 10px}.seat--top{grid-column:2;grid-row:1}.seat--left{grid-column:1;grid-row:1}.seat--right{grid-column:3;grid-row:1}.table-play--top{grid-column:2;grid-row:2}.table-play--left{grid-column:1;grid-row:2 / 5}.table-play--right{grid-column:3;grid-row:2 / 5}.table-play--bottom{grid-column:2;grid-row:4;min-height:0}.table-center{grid-column:2;grid-row:3;align-self:center;padding:0;display:flex;justify-content:center;gap:4px}.seat{max-width:180px;padding:2px 6px}.avatar{width:22px;height:22px;flex-basis:22px}.table-play{grid-template-rows:minmax(0,1fr)}.has-claim .hand-caption,.play-owner{display:none}.turn-call,.combo{font-size:.62rem;padding:2px 5px}.played-card{flex-basis:23px;width:23px;height:29px;font-size:7px}.poker-hand{margin-top:3px;padding:0 4px 3px}.hand-caption{min-height:24px;font-size:.65rem}.sort-btn{min-height:24px;padding:2px 10px}.hand-scroll{padding:8px 4px 1px}.hand-cards{flex-wrap:nowrap;gap:3px}.tile,.tile:first-child{flex:0 1 40px;min-width:0;max-width:40px;height:44px;font-size:10px}.hand-actions>button{min-height:44px}.claim-prompt{display:flex;align-items:center;gap:12px;margin:2px auto;padding:2px 10px}.claim-prompt .chow-pick{margin:0}.chow-pick label{min-height:28px}.chow-tile{width:26px;height:34px}}@media(max-width:360px)and (orientation:portrait){.is-playing .topbar .secondary-nav{display:none}.gold-chip{padding:2px 5px}.gold-chip em{display:none}.hand-actions{gap:4px}.claim-prompt{font-size:.72rem;padding:4px 6px}.chow-pick{flex-wrap:nowrap;gap:3px}.chow-pick label{min-height:28px;padding:2px 3px;gap:2px;font-size:.68rem}.chow-tile{width:22px;height:29px}.hand-actions>button{padding:8px;font-size:.78rem}}@media(max-height:360px)and (orientation:landscape){.topbar{min-height:40px}.table-game{height:calc(100svh - 48px);height:calc(100dvh - 48px)}.hand-scroll{padding-top:6px}.tile,.tile:first-child{height:38px;font-size:9px}.played-card{height:25px;font-size:7px}.chow-tile{width:22px;height:29px}.play-tiles{min-height:22px}}@media(max-width:768px)and (max-height:650px)and (orientation:portrait){.poker-felt{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto minmax(0,1fr) auto minmax(0,1fr);gap:4px}.seat--top{grid-column:2;grid-row:1}.seat--left{grid-column:1;grid-row:1}.seat--right{grid-column:3;grid-row:1}.seat{width:100%;padding:4px;gap:2px;border-radius:10px}.seat .avatar,.seat .card-back{display:none}.seat-name{font-size:.62rem}.seat-meta{font-size:.5rem}.table-play--top{grid-column:2;grid-row:2}.table-play--left{grid-column:1;grid-row:2 / 5}.table-play--right{grid-column:3;grid-row:2 / 5}.table-play--bottom{grid-column:2;grid-row:4}.table-center{grid-column:2;grid-row:3;gap:2px}.table-center .turn-call{display:none}.combo{font-size:.58rem;padding:2px 3px}.table-play{grid-template-rows:minmax(0,1fr)}.play-owner{display:none}.played-card{flex-basis:20px;width:20px;height:28px;font-size:6px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
