@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap";.music-settings .toggle-row{width:100%}.music-details{border-bottom:1px solid var(--line,#d9dfd7);padding:0 0 18px}.music-details label{color:var(--muted,#788276);justify-content:space-between;font-size:12px;display:flex}.music-details input[type=range]{accent-color:#386348;cursor:pointer;width:100%;height:24px;margin:10px 0 4px;padding:0}.music-details p{margin:5px 0;font-size:11px;line-height:1.6}.music-details .outline{margin-top:8px}.audio-recovery-button{margin-bottom:12px}.audio-recovery-notice{top:max(14px, env(safe-area-inset-top));z-index:10000;color:#fffdf2;background:#315d45;border:1px solid #98ad88;border-radius:24px;justify-content:center;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 28px);padding:12px 18px;font-size:13px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0003}:root{color:#243f37;font-synthesis:none;--green:#184f40;--muted:#84908a;--gold:#e5c583;--line:#e5e7df;background:#f7f6f1;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}button:disabled{opacity:.4;cursor:not-allowed}button:not(:disabled):active{transform:translateY(1px)}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline-offset:4px;outline:3px solid #bba46a}button,input{touch-action:manipulation}button{color:inherit}h1,h2,h3,p{margin:0}input{color:#243f37;background:#fbfcf9;border:1px solid #d7dfd5;border-radius:11px;outline:none;width:100%;padding:15px 17px;font-size:16px}input:focus{border-color:#53866b;box-shadow:0 0 0 3px #2f6d5512}small{font-size:12px}svg{flex-shrink:0}button{transition:background .18s,color .18s,box-shadow .18s}button:disabled{transform:none!important}.site-header{justify-content:space-between;align-items:center;max-width:1344px;height:100px;margin:auto;padding:0 36px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand img{width:41px;height:45px}.brand>span{letter-spacing:5px;font:600 27px Noto Serif SC,Songti SC,serif}.brand small{letter-spacing:2px;color:#829084;margin-top:5px;font:9px sans-serif;display:block}.site-header nav{align-items:center;gap:20px;display:flex}.nav-text,.text-button{background:0 0;align-items:center;gap:8px;padding:10px 0;font-size:13px;display:inline-flex}.nav-text{color:#60746a;margin-right:10px;font-size:13px}.icon-button{background:0 0;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;padding:0;display:inline-flex}.icon-button:hover{background:#2f654510}.profile-pill{border:1px solid var(--line);background:#fff;border-radius:30px;align-items:center;gap:10px;padding:7px 15px 7px 7px;font-size:13px;display:flex}.profile-pill .avatar{width:31px;height:31px}.profile-pill i{background:#e2e6de;width:1px;height:16px;margin:0 4px}.profile-pill>svg{color:#b4995e}.profile-pill strong{font-size:12px}.avatar{color:#4d7258;background:#e9edde;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;display:inline-flex}.avatar svg{width:100%;height:100%}.avatar-1{color:#64805b;background:#e1eade}.avatar-2{color:#8d7051;background:#e8e3d5}.avatar-3{color:#537881;background:#dce6e7}.avatar-4{color:#ad755c;background:#f1e3d9}.avatar-5{color:#896588;background:#e9dfe9}.lobby{max-width:1344px;margin:auto;padding:0 36px}.lobby-intro{color:#7d8f82;border-top:1px solid var(--line);letter-spacing:1px;justify-content:space-between;padding:17px 0 20px;font-size:12px;display:flex}.lobby-intro>span{align-items:center;gap:8px;display:flex}.live-dot{background:#759c72;border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block;box-shadow:0 0 0 3px #71936c12}.hero-grid{grid-template-columns:minmax(0,1fr) 300px;gap:24px;display:grid}.hero{color:#fcf7e6;background:#0e332b;border-radius:18px;height:450px;position:relative;overflow:hidden}.hero-art{object-fit:cover;object-position:61% 50%;width:100%;height:100%;position:absolute;inset:0}.hero-shade{background:linear-gradient(90deg,#08201ced,#08201c7a 46%,#08201c00 80%),linear-gradient(#0000 72%,#082d29b0);position:absolute;inset:0}.hero-copy{z-index:1;padding:45px 45px 0;position:relative}.eyebrow{letter-spacing:2px;color:#7b8c7e;justify-content:space-between;align-items:center;font-size:10px;font-weight:500;display:flex}.eyebrow.light{color:#b6c5a9;letter-spacing:2.1px;justify-content:flex-start;gap:9px;font-size:9px}.eyebrow.light>span{background:#b9c1a2;width:20px;height:1px}.hero h1{letter-spacing:3px;margin:21px 0 13px;font-family:Noto Serif SC,Songti SC,serif;font-size:47px;font-weight:500;line-height:1.6}.hero p{letter-spacing:1px;color:#c1cfbd;font-size:13px;line-height:1.9}.gold,.solid,.outline{border-radius:9px;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:12px 22px;font-size:14px;font-weight:600;display:inline-flex}.gold{color:#35482d;background:linear-gradient(110deg,#e8cb8c,#daba76);box-shadow:0 3px 12px #0d221421}.gold:hover{background:#efdaac}.solid{color:#fff;background:#205a46}.solid:hover{background:#2f7258}.outline{background:0 0;border:1px solid #dae2d7}.outline:hover{background:#eaf0e7}.full{width:100%;margin-top:15px}.small{min-height:37px;padding:8px 16px;font-size:12px}.hero-cta{justify-content:space-between;width:204px;margin-top:25px;font-size:15px}.hero-cta>svg:first-child{width:16px}.hero-note{letter-spacing:1px;color:#a4b5a4;margin-top:12px;font-size:10px;display:block}.hero-seal{writing-mode:vertical-rl;letter-spacing:3px;color:#d2bd8b;border:1px solid #d8b76b70;padding:9px 7px;font:13px Noto Serif SC,serif;position:absolute;top:35px;right:31px}.hero-bottom{color:#b6baa3;letter-spacing:2px;justify-content:space-between;font-size:9px;display:flex;position:absolute;bottom:17px;left:45px;right:30px}.club-card{background:linear-gradient(135deg,#eff2e8,#f8f9f3);border:1px solid #dce4d8;border-radius:18px;flex-direction:column;padding:27px 24px 20px;display:flex}.club-profile{align-items:center;gap:12px;margin:24px 0;display:flex}.club-profile h2{margin-bottom:7px;font:600 18px Noto Serif SC,serif}.club-profile p{color:#8c9787;font-size:11px}.wallet>span{color:#728675;align-items:center;gap:6px;font-size:11px;display:flex}.wallet strong{letter-spacing:1px;margin:10px 0 6px;font-family:Georgia,serif;font-size:39px;font-weight:500;display:block}.wallet>small{color:#9aa48f;letter-spacing:.5px;font-size:10px}.mini-stats{border-bottom:1px solid #e0e6d8;justify-content:space-between;padding:23px 0;display:flex}.mini-stats>div{text-align:center;flex-direction:column;flex:1;gap:9px;display:flex}.mini-stats>div+div{border-left:1px solid #dfe5d8}.mini-stats b{font:500 19px Georgia,serif}.mini-stats span{color:#909b88;font-size:10px}.gift-button{text-align:left;background:0 0;align-items:center;gap:10px;margin-top:auto;padding:17px 0 0;display:flex}.gift-button>svg{color:#9a8857}.gift-button>span{flex:1}.gift-button b{margin-bottom:5px;font-size:12px;font-weight:500;display:block}.gift-button small{color:#98a08e;font-size:10px}.wallet-foot{letter-spacing:1px;color:#9da896;text-align:center;padding-top:19px;font-size:9px}.section-title{justify-content:space-between;align-items:center;margin:34px 0 19px;display:flex}.section-title h2{letter-spacing:.7px;align-items:center;gap:10px;font:600 20px Noto Serif SC,Songti SC,serif;display:flex}.section-title>span{letter-spacing:1px;color:#9a9f90;font-size:11px}.mode-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.mode-card{text-align:left;background:#f4f6ee;border:1px solid #dce2d7;border-radius:12px;grid-template-columns:48px 1fr;gap:17px;padding:23px 23px 0;transition:transform .2s,box-shadow .2s;display:grid;position:relative;overflow:hidden}.mode-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #213c3210}.mode-card.join{background:#f3f1ea;border-color:#e7e0d4}.mode-card.learn{background:#f0f3f2;border-color:#dce4e2}.mode-icon{color:#668264;background:#e2eadb;border-radius:13px;justify-content:center;align-items:center;width:45px;height:45px;display:flex}.join .mode-icon{color:#9b8760;background:#eae4d8}.learn .mode-icon{color:#6c8a83;background:#e0e8e5}.mode-kicker{color:#97a18e;letter-spacing:.5px;font-size:9px}.mode-card h3{justify-content:space-between;align-items:center;margin:8px 0 10px;font:600 20px Noto Serif SC,serif;display:flex}.mode-card h3 svg{opacity:.5;width:17px}.mode-card p{color:#8e9988;white-space:nowrap;font-size:11px}.mode-foot{color:#97a18e;letter-spacing:.5px;border-top:1px solid #cbd6c944;grid-column:1/-1;justify-content:space-between;align-items:center;margin-top:2px;padding:13px 0;font-size:10px;display:flex}.section-title h2>svg{color:#a89a75;stroke-width:1.5px}.section-title em{color:#9f9270;letter-spacing:1px;border:1px solid #e4dece;border-radius:3px;margin-left:4px;padding:4px 8px;font:10px sans-serif}.leaderboard{background:#fff5;border:1px solid #e0e4da;border-radius:11px;padding:0 24px}.ranking-head{letter-spacing:1px;color:#98a190;border-bottom:1px solid #e6e9e0;grid-template-columns:1fr 90px 150px;padding:16px 0;font-size:10px;display:grid}.ranking-head>span:not(:first-child){text-align:right}.ranking-row{border-bottom:1px solid #e8eae2;align-items:center;gap:14px;padding:15px 0;display:flex}.ranking-row:last-child{border-bottom:0}.rank-number{color:#a8ae9d;width:27px;font:italic 19px Georgia,serif}.rank-0,.rank-1,.rank-2{color:#b69550}.ranking-row .avatar{width:37px;height:37px}.rank-name{flex:1;min-width:0}.rank-name b{font-size:12px;font-weight:500;display:block}.rank-name small{color:#9ca58f;margin-top:5px;font-size:9px;display:block}.rank-wins{font-size:13px}.rank-wins small{color:#9aa58e;font-size:10px}.ranking-row>strong{text-align:right;justify-content:flex-end;align-items:center;gap:10px;width:150px;font-family:Georgia,serif;font-size:18px;font-weight:400;display:flex}.ranking-row>strong svg{color:#c1aa71}.positive{color:#347457}.negative{color:#b97968}.empty-rank{align-items:center;gap:20px;padding:27px 12px;display:flex}.empty-rank>svg{stroke-width:1.2px;color:#baa777}.empty-rank>div{flex:1}.empty-rank b{color:#78886d;font:500 15px Noto Serif SC,serif}.empty-rank p{color:#a1aa96;padding-top:9px;font-size:11px}footer{letter-spacing:.6px;color:#a6ad9c;justify-content:space-between;align-items:center;padding:30px 0 25px;font-size:9px;display:flex}footer>span{align-items:center;gap:8px;display:flex}footer img{opacity:.5;width:19px;height:21px}footer i{background:#b4bda8;border-radius:50%;width:3px;height:3px;margin:0 8px}.modal-backdrop,.result-backdrop,.inspect-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;background:#0c211b8a;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0}.modal{background:#fafaf5;border:1px solid #eeeada;border-radius:21px;width:460px;max-width:100%;max-height:90dvh;padding:39px;animation:.2s ease-out modal-in;position:relative;overflow:auto;box-shadow:0 25px 100px #08211440}.modal.wide{width:810px}.modal-close{z-index:2;position:absolute;top:15px;right:15px}.modal>.eyebrow{margin:8px 25px 17px 0;font-size:9px}.modal h2{letter-spacing:.5px;margin-bottom:16px;font:600 26px Noto Serif SC,serif}.modal>p{color:#81917c;margin-bottom:23px;font-size:13px;line-height:1.9}.modal>small{margin-top:16px;font-size:10px;line-height:1.8;display:block}.muted{line-height:1.8;color:#99a28d!important}.avatar-picker{justify-content:space-between;gap:8px;margin:24px 0;display:flex}.avatar-picker>button{background:0 0;border:1px solid #0000;border-radius:50%;padding:3px}.avatar-picker>button.active{background:#e7eddf;border-color:#48765b}.avatar-picker .avatar{width:44px;height:44px}.field-label{color:#718067;margin-top:18px;font-size:12px;display:block}.field-label input{margin:10px 0}.room-input{text-align:center;letter-spacing:8px;margin:12px 0;padding:20px;font-family:monospace;font-size:30px}.choice-row{gap:15px;margin-top:12px;display:flex}.choice-row button{background:#f1f2e9;border:1px solid #e0e3d5;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:10px;padding:20px 10px;display:flex}.choice-row button.active{background:#e9efdf;border-color:#527c59}.choice-row span{color:#8c967f;font-size:11px}.choice-row svg{color:#b29b63}.info-strip{color:#7d8b70;background:#edf2e5;border-radius:8px;align-items:center;gap:9px;margin:20px 0;padding:14px;font-size:11px;line-height:1.7;display:flex}.info-strip svg{flex-shrink:0}.toggle-row{text-align:left;background:0 0;border-bottom:1px solid #e3e6db;align-items:center;gap:13px;width:100%;padding:22px 0;display:flex}.toggle-row>svg{color:#809378;width:21px}.toggle-row>span{flex:1}.toggle-row b{font-size:14px;font-weight:500;display:block}.toggle-row small{color:#9da791;margin-top:7px;font-size:10px;display:block}.toggle{background:#d6ddcf;border-radius:15px;width:39px;height:23px;padding:3px;transition:background .2s}.toggle:before{content:"";background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .2s;display:block}.toggle.on{background:#3e7554}.toggle.on:before{transform:translate(16px)}.rule-callout{background:#edf1e6;border-radius:12px;align-items:center;gap:24px;margin:25px 0;padding:24px;display:flex}.demo-tiles{gap:4px;display:flex}.rule-callout b{font-size:14px}.rule-callout p{color:#8b977c;margin-top:10px;font-size:12px;line-height:1.8}.rule-columns{grid-template-columns:1fr 1fr;gap:30px;display:grid}.rule-columns h3{margin:5px 0 15px;font:600 17px Noto Serif SC,serif}.rule-columns ol{color:#85937a;margin:0;padding-left:20px;font-size:12px;line-height:1.9}.rule-columns li{padding:0 0 10px 3px}.fan-table>div{border-bottom:1px solid #e4e8da;justify-content:space-between;padding:12px 0;font-size:12px;display:flex}.fan-table b{color:#61835d}.rule-note{color:#8b977d;margin-top:13px;font-size:11px;line-height:1.9}.empty-state{text-align:center;color:#9aa68d;padding:35px 10px}.empty-state p{padding-top:20px;font-size:13px}.history-row{border-bottom:1px solid #e5e9dc;justify-content:space-between;align-items:center;padding:17px 0;display:flex}.history-row b{font-size:13px;font-weight:500;display:block}.history-row small{color:#a2aa93;margin-top:7px;font-size:10px;display:block}.toast{color:#35573c;z-index:300;background:#fbf9ef;border:1px solid #d1d9c7;border-radius:12px;align-items:center;gap:10px;width:max-content;max-width:90vw;padding:15px 23px;font-size:13px;animation:.2s toast-in;display:flex;position:fixed;bottom:35px;left:50%;transform:translate(-50%);box-shadow:0 6px 45px #06271830}.connecting{z-index:70;background:#f8f9f2ed;flex-direction:column;justify-content:center;align-items:center;gap:25px;display:flex;position:fixed;inset:0}.loading-ring{border:2px solid #bfcaba;border-top-color:#376544;border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.connecting>b{font-size:14px;font-weight:400}.tile{vertical-align:middle;color:#2e6850;background:linear-gradient(115deg,#fffdf0,#eeecd9);border:1px solid #d7d7bd;border-radius:5px;flex-shrink:0;width:46px;height:65px;padding:0;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 3px #a9baa0,0 4px #638d76,0 6px 5px #0c2d322d}.tile-face{pointer-events:none;width:100%;height:100%;display:block}.tile.back{background:linear-gradient(130deg,#2a755f,#174d41);border-color:#79a889;box-shadow:0 3px #d3d2b5,0 5px 4px #092b2770}.tile-back rect{fill:none;stroke:#8aaf823d;stroke-width:.8px}.tile-back path,.tile-back circle{fill:none;stroke:#b1c3975c;stroke-width:1px}.ting-dot{background:#d0a940;border:1px solid #fff4a9;border-radius:50%;width:7px;height:7px;position:absolute;top:4px;right:4px}.in-game{background:#123d34}.game{color:#e0e9d5;height:100dvh;min-height:580px;padding:env(safe-area-inset-top) max(20px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(20px, env(safe-area-inset-left));isolation:isolate;background:radial-gradient(at 50% 42%,#2f7661 0%,#1a5849 48%,#123e36 95%);flex-direction:column;display:flex;position:relative;overflow:hidden}.table-noise{z-index:-1;opacity:.1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.45' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.game-header{z-index:3;border-bottom:1px solid #d7e0b811;flex-shrink:0;justify-content:space-between;align-items:center;height:68px;margin:0 12px;display:flex}.game-header-left{align-items:center;gap:15px;display:flex}.game-brand{letter-spacing:3px;font:600 24px Noto Serif SC,serif}.game-brand small{letter-spacing:2px;color:#a2bda3;border-left:1px solid #b7caa14a;margin-left:10px;padding-left:13px;font:10px sans-serif}.game .icon-button:hover{background:#d5e8c917}.room-badge{letter-spacing:2px;cursor:pointer;color:#a8c3a6;background:#0c322734;border:1px solid #c5ddab1c;border-radius:15px;align-items:center;gap:8px;padding:9px 15px;font-size:11px;display:flex}.game-tools{align-items:center;gap:12px;display:flex}.connection{color:#a5c0a6;align-items:center;gap:5px;font-size:9px;display:flex}.connection.offline{color:#efb484}.opponents{z-index:2;flex-shrink:0;justify-content:space-between;align-items:start;width:min(1020px,100%);height:118px;margin:20px auto 0;display:flex;position:relative}.opponent{flex-direction:column;align-items:flex-start;max-width:43%;display:flex;position:relative}.opponent-1{align-items:flex-end}.player-info{background:#062b2022;border:1px solid #0000;border-radius:40px;align-items:center;gap:10px;padding:5px 13px 5px 5px;transition:background .3s,box-shadow .3s;display:flex}.opponent.active .player-info{background:#365f4459;border-color:#e4cb7d72;box-shadow:0 0 25px #e7cb7420}.player-info .avatar{width:42px;height:42px}.player-info b{font-size:13px;font-weight:500}.player-info b small{color:#b0c8a7;background:#bfd0a624;border-radius:3px;margin-left:3px;padding:2px 4px;font-size:8px}.player-info div>span{color:#bbccae;align-items:center;gap:5px;margin-top:6px;font-size:10px;display:flex}.player-info em{color:#e0c88a;background:#c7b46d20;padding:2px 3px;font-size:9px;font-style:normal;line-height:1}.dealer-marker{color:#4b5b34;background:#e4ca81;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font:11px Noto Serif SC,serif;display:inline-flex}.opponent-hand{gap:2px;margin-top:9px;display:flex}.tile.mini{border-radius:3px;width:23px;height:33px}.opponent-melds{gap:5px;margin-top:7px;display:flex}.meld{align-items:center;gap:1px;display:inline-flex;position:relative}.tile.tiny{border-radius:2px;width:18px;height:26px}.playmat{flex:1;width:min(1020px,100%);min-height:190px;margin:0 auto;position:relative}.table-frame{pointer-events:none;border:1px solid #b6d19e17;border-radius:45%;position:absolute;inset:0 2% 10%}.table-frame:after{content:"";border:1px solid #b6d19e08;border-radius:45%;position:absolute;inset:7px}.table-watermark{color:#c8ddb715;letter-spacing:13px;white-space:nowrap;text-align:center;pointer-events:none;font:600 56px Noto Serif SC,serif;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.table-watermark span{letter-spacing:5px;margin:13px 0 0;font:9px sans-serif;display:block}.discard-zone{z-index:1;max-width:40%;position:absolute}.discard-zone>div{grid-template-columns:repeat(7,28px);gap:4px 3px;display:grid}.discard-left{top:8px;left:8%}.discard-right{top:8px;right:8%}.discard-self{max-width:90%;bottom:32px;left:50%;transform:translate(-50%)}.discard-self>div{grid-template-columns:repeat(10,28px)}.discard-label{letter-spacing:1px;color:#a6c59d70;margin-bottom:7px;font-size:9px;display:block}.river-tile{border-radius:3px;width:28px;height:38px;animation:.22s cubic-bezier(.2,.7,.4,1) river-drop;box-shadow:0 2px #abb798,0 3px 3px #0c2d3260}.river-tile.latest{outline-offset:1px;outline:2px solid #e4c67d;box-shadow:0 0 15px #efd99070}.turn-dial{z-index:2;background:linear-gradient(145deg,#174a3bea,#0f3e32dd);border:1px solid #81a27660;border-radius:25px;flex-direction:column;justify-content:center;align-items:center;width:93px;height:93px;display:flex;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 5px 16px #072e2850}.turn-dial>span{color:#96b69a;letter-spacing:2px;font-size:9px}.turn-dial>b{color:#bdcfaa;font:32px/1.3 Georgia,serif}.turn-dial>small{color:#91b190;font-size:9px}.turn-dial.your-turn{border-color:#d7bd7470;box-shadow:0 0 22px #e5c77d1a}.turn-dial.your-turn>b{color:#ecd491}.turn-pointer{background:#d9c177;border-radius:3px;width:22px;height:5px;position:absolute}.pointer-0{bottom:-7px}.pointer-1{top:35px;left:-7px;transform:rotate(90deg)}.pointer-2{top:35px;right:-7px;transform:rotate(90deg)}.last-play{letter-spacing:1px;color:#bdd1ad;white-space:nowrap;font-size:11px;animation:.3s fade-in;position:absolute;bottom:7px;left:50%;transform:translate(-50%)}.player-dock{z-index:4;flex-shrink:0;width:min(1100px,100%);margin:0 auto;padding-bottom:6px;position:relative}.action-bar{border-bottom:1px solid #d1e3b118;justify-content:space-between;align-items:center;gap:8px;height:54px;display:flex}.turn-status{letter-spacing:1px;color:#c4d5b6;align-items:center;gap:7px;font-size:12px;display:flex}.turn-status .live-dot{background:#e9cd85;box-shadow:0 0 10px #d3c07860}.wait-dot{background:#88a98b;border-radius:50%;flex-shrink:0;width:5px;height:5px}.game-actions{align-items:center;gap:8px;display:flex}.game-actions button{color:#395635;background:linear-gradient(135deg,#e7cd91,#cdae69);border:1px solid #f5db9f99;border-radius:7px;min-width:55px;height:41px;padding:7px 20px;font-size:17px;font-weight:600;box-shadow:0 2px 6px #09291f36}.game-actions button.action-pass{color:#bad0ac;box-shadow:none;background:#163b2e78;border-color:#8ea97a55;font-size:14px}.game-actions button.action-hu{color:#68421e;background:linear-gradient(135deg,#f9e4a1,#d39c44);box-shadow:0 0 25px #efd7822b}.game-actions .discard-button{align-items:center;gap:10px;font-size:14px;display:flex}.game-actions .gold{font-size:13px}.hand-info{color:#a5c199;justify-content:space-between;align-items:center;gap:10px;height:33px;font-size:10px;display:flex}.hand-info>span:last-child{color:#89ad8f;white-space:nowrap;font-size:9px}.ting-preview{color:#e4cb8d;align-items:center;gap:5px;display:flex}.ting-preview>span{border:1px solid #cbbc7740;border-radius:3px;padding:2px 4px;font-size:9px}.hand{justify-content:center;align-items:flex-end;gap:4px;min-height:105px;padding:10px 0;display:flex;position:relative}.hand-tile-wrap{animation:.5s both hand-deal;animation-delay:var(--deal-delay,0s);display:inline-flex;position:relative}.hand .tile{border-radius:6px;width:60px;height:84px;transition:transform .16s,box-shadow .16s;overflow:visible;box-shadow:0 5px #a8b99a,0 7px #577e68,0 9px 5px #061f2760}.hand .tile-face{border-radius:6px}.hand.can-play .tile:not(.selected):hover{transform:translateY(-5px)}.hand .tile.selected{background:#fff9d9;outline:2px solid #ffe19b;transform:translateY(-16px);box-shadow:0 5px #baa975,0 8px #5e815f,0 0 23px #efd08256}.drawn-tile{margin-left:14px}.drawn-label{color:#e6d197;font-size:8px;position:absolute;bottom:-18px;left:50%;transform:translate(-50%)}.auto-hand{opacity:.82}.my-melds{gap:14px;display:flex;position:absolute;bottom:160px;left:0}.my-melds .meld>span:last-child{white-space:nowrap;color:#a5bc94;font-size:8px;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)}.tile.small-tile{border-radius:3px;width:27px;height:38px}.dock-footer{justify-content:space-between;align-items:center;gap:15px;height:60px;display:flex}.self-info{align-items:center;gap:9px;display:flex}.self-info .avatar{width:32px;height:32px}.self-info b{font-size:12px;font-weight:500}.self-info>span:not(.avatar){color:#e0d6a9;align-items:center;gap:6px;font-size:11px;display:flex}.self-info small{font-size:11px}.gain{color:#e6cc88}.loss{color:#d9a18b}.dock-tools{align-items:center;gap:18px;display:flex}.dock-tools>button{color:#94b08e;background:0 0;align-items:center;gap:6px;padding:10px 0;font-size:11px;display:flex}.dock-tools>button.active,.dock-tools>button[aria-pressed=true]{color:#ead592}.waiting-table{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:15px;padding-bottom:60px;display:flex}.waiting-table h1{letter-spacing:3px;margin:5px 0;font:500 35px Noto Serif SC,serif}.waiting-table>p{color:#a9c09a;letter-spacing:2px;font-size:12px}.waiting-seats{gap:22px;margin:25px 0;display:flex}.waiting-seat{background:#083d2826;border:1px dashed #91b38455;border-radius:15px;flex-direction:column;align-items:center;gap:10px;width:178px;min-height:209px;padding:20px;display:flex}.waiting-seat.occupied{background:#1c503c72;border:1px solid #99bb8140}.waiting-seat .avatar,.empty-avatar{width:60px;height:60px}.empty-avatar{color:#97b084;background:#b8d39c14;border-radius:50%;justify-content:center;align-items:center;display:flex}.waiting-seat h3{margin-top:3px;font-size:15px;font-weight:500}.waiting-seat>span{color:#97b68e;font-size:10px}.waiting-seat>b{font-size:11px;font-weight:500}.waiting-seat .ready{color:#e9d598}.waiting-seat .not-ready{color:#99b28d}.waiting-seat>small{color:#a3b68b;font-size:9px}.waiting-controls{align-items:center;gap:14px;display:flex}.piao-control{align-items:center;gap:5px;margin-right:12px;display:flex}.piao-control>span{color:#a6bd96;margin-right:6px;font-size:11px}.piao-control button{color:#aec99d;background:#163e2a55;border:1px solid #7da36b50;border-radius:6px;padding:10px 12px;font-size:12px}.piao-control button.active{color:#edd497;background:#d7c98115;border-color:#d2b975}.waiting-controls .outline{color:#b5c79f;border-color:#83a87266}.waiting-links{color:#9dba90;gap:27px;margin-top:10px;display:flex}.waiting-links button{font-size:11px}.game-effect{z-index:50;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;width:280px;height:240px;animation:1.2s both effect-out;display:flex;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.game-effect>strong{color:#f8de9c;text-shadow:0 4px #71542c,0 0 25px #dcc16e90,0 12px 35px #00231ddd;z-index:2;font-family:Noto Serif SC,Songti SC,serif;font-size:99px;font-weight:700;line-height:1.4;animation:.55s cubic-bezier(.1,.8,.2,1) impact;transform:rotate(-8deg)}.game-effect>span{letter-spacing:3px;color:#fae6bb;z-index:2;background:#194537d4;border-radius:20px;padding:5px 18px;font-size:12px}.effect-ring{border:2px solid #f1d394aa;border-radius:50%;width:145px;height:145px;animation:.8s ease-out both shockwave;position:absolute}.effect-deal>strong,.effect-liang>strong{font-size:72px}.effect-hu{animation-duration:2.1s}.effect-hu>strong{font-size:110px}.game-effect>i{width:7px;height:7px;animation:1.1s ease-out both spark;animation-delay:var(--delay);background:#f4d28b;border-radius:2px;position:absolute;top:50%;left:50%;box-shadow:0 0 8px #f8e7b2}.result-backdrop{z-index:80;background:#09292090}.result-card{color:#314c38;text-align:center;background:#f9f8ee;border:1px solid #e2d6af;border-radius:22px;width:410px;max-width:100%;max-height:95dvh;padding:27px 32px;animation:.4s ease-out modal-in;position:relative;overflow:auto;box-shadow:0 20px 80px #04272066}.result-symbol{color:#a6864a;background:radial-gradient(#e6d7aa80,#0000);border:1px solid #cab27e55;border-radius:50%;width:85px;height:85px;margin:0 auto 15px;font:600 47px/80px Noto Serif SC,serif;box-shadow:0 0 0 6px #d1bd9010}.result-card>.eyebrow{color:#aaa083;letter-spacing:1.5px;justify-content:center;font-size:8px}.result-card h2{margin:12px 0;font:600 25px Noto Serif SC,serif}.result-card>p{color:#91a081;font-size:11px;line-height:1.8}.result-scores{border-top:1px solid #e1e7d8;margin:20px 0 13px}.result-scores>div{border-bottom:1px solid #e1e7d8;align-items:center;gap:10px;padding:13px 0;display:flex}.result-scores .avatar{width:35px;height:35px}.result-scores b{text-align:left;flex:1;font-size:12px;font-weight:500}.result-scores small{color:#939d87;border:1px solid #d9e1cc;border-radius:4px;margin-left:7px;padding:2px 5px;font-size:9px}.result-scores strong{font:23px Georgia,serif}.settlement-status{color:#809372;font-size:10px}.result-buttons{gap:9px;margin-top:20px;display:flex}.result-buttons>button{flex:1;font-size:13px}.result-ready{padding-top:11px;font-size:10px!important}.result-card>.text-button{color:#8f9e7e;font-size:10px}.inspect-backdrop{z-index:200}.inspect-backdrop>div{flex-direction:column;align-items:center;gap:22px;display:flex}.inspect-backdrop .tile{border-radius:12px;width:130px;height:180px;box-shadow:0 7px #9ba78e,0 10px #507355,0 14px 20px #102e2270}.inspect-backdrop b{color:#f2e5c4;font:500 25px Noto Serif SC,serif}.inspect-backdrop small{color:#b1c79f;font-size:12px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes modal-in{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-in{0%{opacity:0;margin-bottom:-8px}to{opacity:1;margin-bottom:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes river-drop{0%{opacity:.4;transform:translateY(-18px)scale(1.15)}to{opacity:1;transform:none}}@keyframes hand-deal{0%{opacity:0;transform:translate(50px,-40px)rotate(10deg)}to{opacity:1;transform:none}}@keyframes effect-out{0%{opacity:0}10%,72%{opacity:1}to{opacity:0}}@keyframes impact{0%{filter:blur(3px);transform:scale(2.1)rotate(-18deg)}40%{filter:blur();transform:scale(.93)rotate(-7deg)}65%{transform:scale(1.07)rotate(-9deg)}to{transform:scale(1)rotate(-8deg)}}@keyframes shockwave{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(3)}}@keyframes spark{0%{transform:rotate(var(--angle)) translateX(15px);opacity:1}to{transform:rotate(var(--angle)) translateX(var(--distance)) rotate(220deg) scale(.25);opacity:0}}@media (min-width:1450px){.hero{height:475px}.hero h1{font-size:51px}.hero-copy{padding-top:48px}.club-card{padding-top:31px}.club-profile{margin:27px 0}}@media (max-width:1050px){.site-header,.lobby{padding-left:25px;padding-right:25px}.hero-grid{grid-template-columns:minmax(0,1fr) 260px;gap:19px}.hero-copy{padding:35px 29px 0}.hero{height:430px}.hero h1{font-size:40px}.hero-bottom{left:30px}.hero-bottom span:last-child{display:none}.club-card{padding:23px 20px}.mode-card{grid-template-columns:35px 1fr;gap:13px;padding:19px 18px 0}.mode-icon{border-radius:9px;width:35px;height:35px}.mode-icon svg{width:19px}.mode-kicker{font-size:8px}.mode-card h3{font-size:17px}.mode-card p{font-size:10px}.game{padding-left:15px;padding-right:15px}.hand .tile{width:52px;height:75px}.discard-left{left:3%}.discard-right{right:3%}}@media (max-width:760px) and (orientation:portrait){.site-header{height:82px;padding:0 20px}.site-header nav{gap:8px}.brand img{width:34px;height:39px}.brand>span{font-size:24px}.brand small{letter-spacing:1px;font-size:7px}.brand{gap:8px}.nav-text{display:none}.profile-pill{gap:5px;padding:5px 9px 5px 5px}.profile-pill>span:not(.avatar),.profile-pill i{display:none}.profile-pill .avatar{width:28px;height:28px}.profile-pill strong{font-size:11px}.profile-pill svg{width:13px}.lobby{padding:0 18px}.lobby-intro{letter-spacing:.5px;padding:13px 0 17px;font-size:10px}.intro-right{display:none!important}.hero-grid{flex-direction:column;gap:17px;display:flex}.hero{border-radius:14px;height:430px}.hero-art{object-position:60% 50%;object-fit:cover;opacity:.85}.hero-shade{background:linear-gradient(#0b302a20 10%,#0b302abe 62%,#072f29 100%),linear-gradient(90deg,#0a2e2980,#0000 80%)}.hero-copy{padding:27px}.hero-copy .eyebrow{letter-spacing:1.5px;font-size:7px}.hero h1{letter-spacing:2px;text-shadow:0 2px 15px #03231c44;margin-top:22px;font-size:36px;line-height:1.65}.hero p{color:#d0d7c3;letter-spacing:.6px;margin-top:77px;font-size:11px;line-height:1.75}.hero-cta{width:195px;min-height:46px;margin-top:18px;font-size:14px}.hero-note{margin-top:9px;font-size:8px}.hero-seal{padding:7px 5px;font-size:10px;top:28px;right:25px}.hero-bottom{writing-mode:vertical-rl;letter-spacing:3px;font-size:8px;bottom:25px;left:auto;right:22px}.club-card{border-radius:12px;grid-template-columns:1fr 1fr;gap:0 15px;padding:21px;display:grid;position:relative}.club-card>.eyebrow,.club-profile,.mini-stats,.wallet-foot{display:none}.wallet strong{margin:7px 0;font-size:30px}.wallet>span{font-size:10px}.wallet>small{font-size:8px}.gift-button{border-left:1px solid #dce3d2;gap:9px;margin:0;padding:0 0 0 15px}.gift-button>svg:first-child{width:21px}.gift-button>svg:last-child{width:14px}.gift-button small{font-size:9px;line-height:1.6;display:block}.gift-button b{font-size:11px}.club-card>.solid{height:45px;margin:auto 0;padding:10px;font-size:12px}.section-title{margin:29px 0 16px}.section-title h2{font-size:18px}.section-title>span{letter-spacing:.5px;font-size:9px}.mode-grid{grid-template-columns:1fr;gap:12px}.mode-card{border-radius:11px;grid-template-columns:43px 1fr;align-items:center;gap:17px;padding:20px}.mode-icon{border-radius:12px;grid-row:1/3;width:43px;height:43px}.mode-icon svg{width:21px}.mode-kicker{font-size:8px}.mode-card h3{margin:7px 0;font-size:18px}.mode-card p{font-size:10px}.mode-card h3 svg{width:19px;position:absolute;top:40px;right:20px}.mode-foot{display:none}.mode-card>div{grid-row:1/3}.section-title h2>svg{width:19px}.section-title em{padding:3px 6px;font-size:8px}.section-title .text-button{font-size:10px}.leaderboard{padding:0 16px}.ranking-head{grid-template-columns:1fr 50px 88px;padding:14px 0;font-size:9px}.ranking-row{gap:10px}.rank-number{width:20px;font-size:17px}.rank-name b{font-size:11px}.ranking-row>strong{gap:5px;width:89px;font-size:16px}.rank-wins{font-size:12px}.empty-rank{flex-wrap:wrap;gap:12px;padding:24px 0}.empty-rank>svg{width:26px}.empty-rank b{font-size:12px}.empty-rank p{font-size:10px;line-height:1.7}.empty-rank>.text-button{margin-left:38px;padding:0;font-size:10px}.ranking-row .avatar{width:32px;height:32px}footer{justify-content:center;padding:24px 0}footer>span:last-child{display:none}.modal-backdrop{align-items:center;padding:16px}.modal{border-radius:17px;max-height:89dvh;padding:31px 23px}.modal h2{font-size:24px}.modal>.eyebrow{letter-spacing:1.5px;font-size:8px}.modal>p{font-size:12px}.avatar-picker{gap:3px}.avatar-picker .avatar{width:39px;height:39px}.rule-columns{grid-template-columns:1fr;gap:15px}.rule-callout{align-items:start;gap:15px;padding:16px}.demo-tiles{gap:2px}.demo-tiles .tile{width:29px;height:41px}.rule-callout b{font-size:12px;line-height:1.7}.rule-callout p{font-size:11px}.rule-columns ol{font-size:12px}.toast{max-width:92vw;padding:13px 17px;font-size:12px;bottom:25px}.game{height:100dvh;min-height:640px;padding-left:12px;padding-right:12px}.game-header{height:56px;margin:0}.game-header-left{gap:5px}.game-header-left>.icon-button{width:27px}.game-brand{letter-spacing:2px;font-size:20px}.game-brand small{display:none}.room-badge{letter-spacing:1px;padding:7px 10px;font-size:9px}.game-tools{gap:2px}.connection span,.fullscreen{display:none}.game-tools .icon-button{width:31px}.opponents{height:101px;margin-top:12px}.opponent{max-width:46%}.player-info{gap:5px;padding:3px 8px 3px 3px}.player-info .avatar{width:32px;height:32px}.player-info b{font-size:11px}.player-info b small{padding:1px 2px;font-size:7px}.player-info div>span{gap:3px;margin-top:4px;font-size:9px}.player-info .dealer-marker{width:14px;height:14px;font-size:9px}.opponent-hand{gap:1px;max-width:100%;margin-top:7px}.tile.mini{border-radius:2px;width:14px;height:22px;margin-right:-3px;box-shadow:0 2px #cad1b0,0 3px 2px #09291f55}.opponent-hand.revealed{flex-wrap:wrap;gap:3px;max-width:142px}.opponent-hand.revealed .tile.mini{width:17px;height:24px;margin:0}.opponent-melds{gap:3px;margin-top:6px}.tile.tiny{width:11px;height:16px}.playmat{flex:1;min-height:210px}.table-frame{border-radius:42%;inset:0 -3% 9%}.table-watermark{letter-spacing:10px;font-size:40px;top:44%}.table-watermark span{letter-spacing:3px;font-size:7px}.discard-zone{max-width:47%}.discard-zone>div{grid-template-columns:repeat(6,20px);gap:3px 2px}.discard-left{top:0;left:0}.discard-right{top:0;right:0}.discard-label{letter-spacing:.5px;margin-bottom:6px;font-size:7px}.river-tile{border-radius:2px;width:20px;height:28px;box-shadow:0 2px #a2b58c,0 3px 2px #0a3d2955}.discard-self{max-width:95%;bottom:26px}.discard-self>div{grid-template-columns:repeat(10,20px)}.turn-dial{border-radius:18px;width:66px;height:71px;top:49%}.turn-dial>b{font-size:27px;line-height:1.25}.turn-dial>span,.turn-dial>small{font-size:8px}.turn-pointer{width:15px;height:3px}.pointer-1,.pointer-2{top:29px}.last-play{letter-spacing:.5px;font-size:9px;bottom:5px}.player-dock{padding-bottom:0}.action-bar{flex-wrap:nowrap;gap:6px;height:53px}.turn-status{letter-spacing:.2px;flex:1;gap:5px;font-size:10px;line-height:1.5}.game-actions{gap:5px}.game-actions button{border-radius:6px;min-width:43px;height:38px;padding:5px 12px;font-size:16px}.game-actions .discard-button{gap:5px;font-size:12px}.game-actions button.action-pass{font-size:12px}.game-actions .gold{gap:5px;min-height:38px;font-size:11px}.hand-info{gap:5px;height:34px;font-size:8px;line-height:1.5}.hand-info>span:last-child{font-size:8px}.ting-preview{flex-wrap:wrap;gap:2px}.ting-preview>span{padding:1px 2px;font-size:8px}.hand{grid-template-columns:repeat(7,minmax(0,1fr));align-content:center;justify-items:center;gap:11px 4px;max-width:385px;min-height:157px;margin:0 auto;padding:12px 3px 11px;display:grid}.hand-tile-wrap{justify-content:center;width:100%;display:flex}.hand .tile{aspect-ratio:60/83;border-radius:4px;width:100%;max-width:47px;height:auto;box-shadow:0 3px #b3bea0,0 5px #729673,0 7px 4px #07272055}.hand .tile.selected{outline-width:2px;transform:translateY(-8px);box-shadow:0 3px #cebd82,0 5px #6e9268,0 0 15px #e5cd8366}.drawn-tile{margin:0}.drawn-label{font-size:7px;bottom:-13px}.hand .drawn-tile .tile{background:#fff9db;border-color:#e4cf8f}.my-melds{gap:8px;top:-37px;bottom:auto;left:0}.tile.small-tile{width:18px;height:26px}.my-melds .meld>span:last-child{font-size:7px;bottom:-11px}.dock-footer{gap:5px;height:47px}.self-info{gap:5px}.self-info .avatar{width:26px;height:26px}.self-info b{text-overflow:ellipsis;white-space:nowrap;max-width:58px;font-size:10px;overflow:hidden}.self-info>span:not(.avatar){gap:3px;font-size:10px}.self-info .dealer-marker{width:14px;height:14px;font-size:9px}.self-info small{font-size:9px}.dock-tools{gap:12px}.dock-tools>button{gap:3px;font-size:9px}.dock-tools>button>svg{width:14px}.dock-tools>button:last-child{display:none}.waiting-table{gap:12px;padding-bottom:40px}.waiting-table>.eyebrow{letter-spacing:1px;font-size:7px}.waiting-table h1{letter-spacing:1px;margin-top:8px;font-size:25px}.waiting-table>p{letter-spacing:1px;font-size:10px}.waiting-seats{gap:9px;width:100%;margin:25px 0}.waiting-seat{border-radius:10px;flex:1;gap:10px;width:auto;min-width:0;min-height:183px;padding:15px 5px}.waiting-seat .avatar,.empty-avatar{width:46px;height:46px}.waiting-seat h3{font-size:12px}.waiting-seat>.text-button{font-size:10px}.waiting-controls{flex-wrap:wrap;justify-content:center;gap:10px}.piao-control{justify-content:center;width:100%;margin:0 0 10px}.piao-control>span{font-size:11px}.piao-control button{padding:8px 13px}.waiting-controls>.gold,.waiting-controls>.outline{min-height:43px;padding:10px 16px;font-size:12px}.waiting-links{flex-wrap:wrap;justify-content:center;gap:18px;margin-top:13px}.waiting-links button{font-size:10px}.game-effect{top:43%;transform:translate(-50%,-50%)scale(.8)}.result-backdrop{padding:15px}.result-card{max-height:92dvh;padding:26px 25px}.result-symbol{width:68px;height:68px;font-size:38px;line-height:65px}.result-card h2{font-size:23px}.result-card>p{font-size:10px}.result-scores{margin-top:16px}.result-scores>div{padding:10px 0}.result-card .result-buttons{margin-top:17px}}@media (max-width:760px) and (max-height:720px) and (orientation:portrait){.game{min-height:540px}.game-header{height:49px}.opponents{height:88px;margin-top:8px}.hand{gap:9px 3px;max-width:345px;min-height:137px;padding-top:8px}.hand .tile{max-width:41px}.playmat{min-height:165px}.action-bar{height:44px}.hand-info{height:28px}.dock-footer{height:39px}.river-tile{width:18px;height:25px}.discard-zone>div{grid-template-columns:repeat(6,18px)}.discard-self>div{grid-template-columns:repeat(10,18px)}.turn-dial{width:57px;height:61px}.turn-dial>b{font-size:23px}}@media (orientation:landscape) and (max-height:600px){.game{min-height:320px;padding:env(safe-area-inset-top) max(18px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(18px, env(safe-area-inset-left))}.game-header{height:39px;margin:0}.game-header-left{gap:8px}.game-brand{letter-spacing:2px;font-size:18px}.game-brand small{margin-left:5px;padding-left:8px;font-size:8px}.game-header .icon-button{width:29px;height:29px}.game-header .icon-button svg{width:17px;height:17px}.room-badge{letter-spacing:1px;padding:5px 12px;font-size:9px}.connection{font-size:8px}.game-tools{gap:7px}.opponents{width:auto;max-width:none;height:80px;margin:0;position:absolute;top:48px;left:20px;right:20px}.opponent{max-width:28%}.player-info{gap:5px;padding:2px 9px 2px 2px}.player-info .avatar{width:29px;height:29px}.player-info b{font-size:10px}.player-info b small{font-size:7px}.player-info div>span{margin-top:4px;font-size:9px}.player-info .dealer-marker{width:13px;height:13px;font-size:9px}.opponent-hand{gap:1px;margin-top:5px}.tile.mini{border-radius:2px;width:14px;height:20px}.tile.tiny{width:12px;height:17px}.opponent-melds{gap:4px;margin-top:5px}.playmat{flex:1;width:100%;min-height:103px}.table-frame{border-radius:45%;inset:12px 13% 5%}.table-watermark{letter-spacing:9px;font-size:31px;top:48%}.table-watermark span{letter-spacing:3px;margin-top:8px;font-size:7px}.discard-zone{max-width:30%}.discard-left{top:13px;left:27%}.discard-right{top:13px;right:27%}.discard-zone>div{grid-template-columns:repeat(6,17px);gap:2px}.discard-label{display:none}.river-tile{border-radius:2px;width:17px;height:24px}.discard-self{max-width:60%;bottom:24px}.discard-self>div{grid-template-columns:repeat(14,17px)}.turn-dial{border-radius:15px;width:56px;height:59px;top:35%}.turn-dial>span,.turn-dial>small{font-size:7px}.turn-dial>b{font-size:22px}.turn-pointer{width:13px;height:3px}.pointer-1,.pointer-2{top:25px}.last-play{font-size:9px;bottom:6px}.player-dock{max-width:1000px;padding:0}.action-bar{height:39px;margin:0;position:relative}.turn-status{font-size:10px}.game-actions{gap:5px}.game-actions button{min-width:43px;height:31px;padding:4px 12px;font-size:14px}.game-actions .gold{min-height:31px;font-size:10px}.game-actions .discard-button{font-size:12px}.hand-info{height:21px;font-size:8px}.hand-info>span:last-child{font-size:8px}.ting-preview>span{padding:1px 3px;font-size:8px}.hand{gap:3px;min-height:59px;padding:5px 0 6px}.hand .tile{aspect-ratio:60/82;border-radius:4px;width:min(5.5vw,43px);height:auto;box-shadow:0 3px #a8b997,0 5px #5b7f60,0 6px 4px #143a2360}.hand .tile.selected{transform:translateY(-9px)}.drawn-tile{margin-left:10px}.drawn-label{font-size:7px;bottom:-13px}.dock-footer{height:32px}.self-info{gap:6px}.self-info .avatar{width:24px;height:24px}.self-info b,.self-info>span:not(.avatar){font-size:10px}.self-info .dealer-marker{width:13px;height:13px;font-size:9px}.dock-tools{gap:16px}.dock-tools>button{gap:4px;padding:5px 0;font-size:9px}.dock-tools svg{width:13px}.my-melds{gap:7px;bottom:135px;left:0}.tile.small-tile{width:20px;height:27px}.my-melds .meld>span:last-child{font-size:7px;bottom:-11px}.waiting-table{justify-content:center;gap:7px;padding:12px 0 9px}.waiting-table>.eyebrow{display:none}.waiting-table h1{letter-spacing:1px;margin:0;font-size:24px}.waiting-table>p{font-size:10px}.waiting-seats{gap:16px;margin:6px 0}.waiting-seat{grid-template-columns:40px 1fr;align-content:center;justify-items:center;gap:5px;width:140px;min-height:127px;padding:9px;display:grid}.waiting-seat .avatar,.empty-avatar{grid-row:1/3;width:39px;height:39px}.waiting-seat h3{margin:0;font-size:12px}.waiting-seat>span{font-size:8px}.waiting-seat>b{grid-column:1/-1;font-size:10px}.waiting-seat>small{grid-column:1/-1;font-size:8px}.waiting-seat>.text-button{grid-column:1/-1;font-size:10px}.waiting-controls{gap:10px}.waiting-controls>button{min-height:34px;padding:7px 13px;font-size:11px}.piao-control button{padding:7px 11px;font-size:10px}.piao-control span{font-size:10px}.waiting-links{gap:24px;margin:0}.waiting-links button{padding:5px 0;font-size:9px}.game-effect{top:40%;transform:translate(-50%,-50%)scale(.7)}.result-backdrop{padding:10px}.result-card{grid-template-columns:1fr 1fr;align-items:center;column-gap:25px;width:580px;max-height:96dvh;padding:16px 24px;display:grid}.result-symbol{width:49px;height:49px;margin:0 auto 8px;font-size:29px;line-height:46px}.result-card>.eyebrow{grid-column:1;font-size:7px}.result-card h2{margin:5px 0;font-size:20px}.result-card>p{grid-column:1;font-size:9px}.result-scores{grid-area:1/2/5;margin:0}.result-scores>div{gap:7px;padding:10px 0}.result-scores .avatar{width:29px;height:29px}.result-scores b{font-size:10px}.result-scores strong{font-size:19px}.settlement-status{grid-column:2;font-size:9px}.result-buttons{grid-column:1;gap:6px;margin-top:9px}.result-buttons>button{min-height:35px;padding:8px 12px;font-size:11px}.result-card .result-ready{grid-area:6/2;padding:0}.result-card>.text-button{grid-column:1/-1;justify-content:center;padding:7px 0 0;font-size:9px}.modal{max-height:94dvh;padding:27px}.modal h2{font-size:23px}.modal>.eyebrow{margin-top:0}.modal-backdrop{padding:10px}.rule-columns{font-size:11px}.inspect-backdrop .tile{width:95px;height:131px}.inspect-backdrop>div{gap:16px}.inspect-backdrop b{font-size:21px}}@media (max-width:350px) and (orientation:portrait){.site-header{padding:0 14px}.lobby{padding:0 13px}.hero-copy{padding-left:22px}.hero h1{font-size:32px}.hero p{margin-top:86px}.club-card{gap:10px;padding:17px 15px}.gift-button{gap:7px;padding-left:10px}.gift-button>svg:first-child{display:none}.game{padding-left:8px;padding-right:8px}.game-brand{font-size:18px}.room-badge{padding:6px 8px;font-size:8px}.game-actions button{min-width:35px;padding:5px 10px}.turn-status{font-size:9px}.dock-tools{gap:8px}.dock-tools>button{font-size:8px}.self-info>span:not(.avatar){font-size:9px}.self-info b{max-width:44px}.hand{gap:9px 3px}.avatar-picker .avatar{width:33px;height:33px}.avatar-picker{gap:2px}.discard-zone>div{grid-template-columns:repeat(6,18px);gap:3px 2px}.river-tile{width:18px;height:26px}.discard-self>div{grid-template-columns:repeat(10,18px)}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}.game-effect{display:none}}.tile,.tile.back{background:#ede5cd;border:0;border-radius:9%}.tile .tile-face{object-fit:fill;border-radius:inherit}.ting-dot{background:#956520;border:0;border-radius:4px;width:17px;height:17px;top:1px;right:1px}.ting-dot:after{content:"荐";color:#fff7dc;text-align:center;font-size:11px;font-style:normal;line-height:17px;display:block}.opponent-zoom{color:#e1ecd3;background:#123e3290;border:1px solid #b4d2b83b;border-radius:6px;align-items:center;gap:5px;min-height:28px;padding:4px 7px;font-size:11px;display:flex}.opponent-hand{align-items:center}.opponent-hand>span:not(.tile){color:#b9cbb3;white-space:nowrap;margin-left:7px;font-size:11px}.opponent-melds{pointer-events:none;max-width:100%;position:absolute;top:58px;left:0;overflow:hidden}.opponent-melds .tiny{width:23px;height:31px}.opponent:has(.opponent-melds:not(:empty)) .opponent-hand{visibility:hidden}.opponent-1 .opponent-melds{left:auto;right:0}.game .playmat{min-height:240px}.game .discard-zone>div{grid-template-columns:repeat(3,36px);gap:5px}.game .river-tile{width:36px;height:47px}.game .discard-left{top:20px;left:13%}.game .discard-right{top:20px;right:13%}.game .discard-label{color:#d8e5c9;letter-spacing:0;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:4px;min-height:28px;margin:0 0 6px;padding:0;font-size:11px;display:flex}.game .discard-self{bottom:34px}.game .discard-self>div{grid-template-columns:repeat(8,36px)}.game .discard-self .discard-label{justify-content:center;min-height:20px;margin:0 0 6px}.game .turn-dial{width:auto;min-width:122px;height:29px;box-shadow:none;border-radius:20px;flex-direction:row;gap:8px;padding:0 10px;top:0;transform:translate(-50%)}.game .turn-dial>b{white-space:nowrap;font-size:16px;line-height:1}.game .turn-dial>span{letter-spacing:0;font-size:9px}.game .turn-dial>small{white-space:nowrap;font-size:9px}.game .turn-pointer{display:none}.latest-discard-card{z-index:2;flex-direction:column;align-items:center;gap:7px;display:flex;position:absolute;top:47px;left:50%;transform:translate(-50%)}.latest-discard-card>span{color:#cee0bc;white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-size:11px;overflow:hidden}.latest-discard-card>.tile{width:75px;height:99px;animation:.35s ease-out clear-discard-in;box-shadow:0 5px #768a69,0 9px 20px #071f2860}.latest-discard-card>strong{color:#f5e9c8;letter-spacing:2px;font-size:16px}@keyframes clear-discard-in{0%{opacity:.4;transform:translateY(-18px)scale(1.12)}to{opacity:1;transform:none}}.all-rivers{color:#dce5c4;white-space:nowrap;background:#0e382b80;border-radius:18px;justify-content:center;align-items:center;gap:7px;min-height:32px;padding:5px 15px;font-size:11px;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.discard-advice{color:#eddfac;background:#b4b77412;border:1px solid #d6c78b40;border-radius:9px;align-items:center;gap:10px;min-height:47px;margin-top:8px;padding:8px 12px;display:flex}.discard-advice>svg{flex-shrink:0}.discard-advice>div{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.discard-advice b{white-space:nowrap;font-size:13px}.discard-advice span{color:#c3d1b5;font-size:11px;line-height:1.5}.discard-advice button{color:#ffefc7;border:1px solid #d4c18770;border-radius:6px;flex-shrink:0;min-height:34px;padding:7px 10px;font-size:12px}.game .hand-info{font-size:11px}.game .hand-info>span:last-child{white-space:nowrap;font-size:10px}.table-inspector-backdrop{z-index:120;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:#071e1bd9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.table-inspector{color:#294c3c;background:#f7f5e9;border-radius:19px;flex-direction:column;width:min(580px,100%);max-height:94dvh;padding:20px;display:flex;box-shadow:0 20px 80px #0005}.table-inspector>header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.table-inspector h2{margin:4px 0 0;font-size:22px}.table-inspector header small{color:#69806b;font-size:11px}.table-inspector nav{grid-template-columns:repeat(3,1fr);gap:5px;padding-bottom:15px;display:grid}.table-inspector nav button{text-overflow:ellipsis;background:#e8ebdb;border:1px solid #b4c4ab;border-radius:8px;padding:9px 6px;font-size:13px;overflow:hidden}.table-inspector nav button[aria-pressed=true]{color:#fff9e5;background:#245541}.table-inspector nav small{opacity:.7;margin-top:5px;font-size:10px;display:block}.inspector-content{overscroll-behavior:contain;min-height:0;padding:0 3px 10px;overflow-y:auto}.inspector-content h3{justify-content:space-between;gap:10px;margin:18px 0 14px;font-size:14px;display:flex}.inspector-content h3 span{color:#6a7a62;font-size:11px;font-weight:400}.inspector-content p{color:#63765d;padding:8px 0;font-size:12px;line-height:1.8}.large-river,.large-hand{grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:10px 7px;display:grid}.large-river>div{text-align:center}.large-river .tile,.large-hand .tile{aspect-ratio:192/252;width:100%;max-width:55px;height:auto}.large-river small{color:#7a836f;margin-top:7px;font-size:10px;display:block}.large-melds{flex-wrap:wrap;gap:18px;display:flex}.large-melds>div>div{gap:3px;display:flex}.large-melds .tile{width:45px;height:59px}.large-melds small{margin-top:10px;font-size:10px;display:block}.play-confirm{color:#294c3c;background:#f7f5e9;border-radius:18px;width:min(380px,100%);padding:25px}.play-confirm h2{margin-bottom:18px;font-size:22px}.play-confirm p{color:#5d7057;font-size:14px;line-height:1.9}.tile-catalog{grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:20px 12px;padding:15px 0;display:grid}.tile-catalog>div{text-align:center}.tile-catalog .tile{width:50px;height:66px}.tile-catalog small{margin-top:10px;display:block}@media (max-width:760px) and (orientation:portrait){.game{min-height:0}.game .opponents{height:111px;margin-top:8px}.game .opponent{max-width:47%}.opponent-hand>span:not(.tile){font-size:10px}.opponent-zoom{min-height:26px;font-size:10px}.opponent-melds{top:43px}.game .opponent-melds .tile.tiny{width:22px;height:29px}.game .playmat{min-height:215px}.game .discard-zone>div{grid-template-columns:repeat(3,31px);gap:5px 4px}.game .river-tile{width:31px;height:41px}.game .discard-left{top:22px;left:0}.game .discard-right{top:22px;right:0}.game .discard-label{min-height:24px;margin-bottom:4px;font-size:10px}.game .discard-self{bottom:33px}.game .discard-self>div{grid-template-columns:repeat(8,31px)}.latest-discard-card{gap:6px;top:39px}.latest-discard-card>.tile{width:61px;height:80px}.latest-discard-card>span{max-width:91px;font-size:10px}.latest-discard-card>strong{font-size:14px}.discard-advice{gap:7px;min-height:47px;margin-top:5px;padding:6px 9px}.discard-advice>div{display:block}.discard-advice b{font-size:12px;display:block}.discard-advice span{margin-top:2px;font-size:10px;display:block}.discard-advice button{padding:6px 8px;font-size:11px}.game .game-actions .discard-button{min-width:101px;padding:6px 12px;font-size:13px}.game .hand-info{height:30px;font-size:10px}.game .hand-info>span:last-child{font-size:9px}.game .hand{min-height:148px;padding:10px 2px 6px}.game .dock-footer{height:41px}.game .dock-tools>button{min-height:36px}}@media (max-width:760px) and (max-height:700px) and (orientation:portrait){.game .game-header{height:44px}.game .opponents{height:91px;margin-top:3px}.game .playmat{min-height:135px}.game .discard-self{display:none}.game .discard-zone>div{grid-template-columns:repeat(3,28px);gap:4px 3px}.game .river-tile{width:28px;height:37px}.game .discard-left,.game .discard-right{top:11px}.game .turn-dial{gap:5px;min-width:106px;height:24px}.game .turn-dial>b{font-size:12px}.game .turn-dial>span,.game .turn-dial>small{font-size:8px}.latest-discard-card{gap:3px;top:31px}.latest-discard-card>.tile{width:48px;height:63px}.latest-discard-card>strong{font-size:12px}.latest-discard-card>span{max-width:91px;font-size:9px}.game .action-bar{height:44px}.game .hand-info{height:28px}.game .hand .tile.selected{transform:translateY(-7px)}.game .dock-footer{height:35px}.game .drawn-label{display:none}.game .drawn-tile{margin-left:8px}}@media (orientation:landscape) and (max-height:600px){.game .playmat{min-height:159px}.game .opponents{top:46px}.game .opponent{max-width:21%}.opponent-melds{top:40px}.opponent-zoom{min-height:25px;font-size:9px}.opponent-hand>span:not(.tile){margin-left:4px;font-size:9px}.game .opponent-melds .tile.tiny{width:20px;height:27px}.game .discard-left{top:7px;left:24%}.game .discard-right{top:7px;right:24%}.game .discard-zone>div{grid-template-columns:repeat(3,26px);gap:4px 3px}.game .river-tile{width:26px;height:34px}.game .discard-label{min-height:20px;margin-bottom:3px;font-size:9px}.game .discard-self{bottom:9px;left:3px;transform:none}.game .discard-self>div{grid-template-columns:repeat(8,26px)}.game .discard-self .discard-label{justify-content:flex-start}.game .turn-dial{min-width:120px;height:23px;top:3px}.latest-discard-card{gap:3px;top:32px}.latest-discard-card>.tile{width:49px;height:64px}.latest-discard-card>span{font-size:9px}.latest-discard-card>strong{font-size:12px}.all-rivers{min-height:27px;font-size:10px;bottom:2px}.game .action-bar{height:39px}.discard-advice{gap:4px;width:25%;min-height:50px;margin:0;padding:6px;position:absolute;bottom:calc(100% + 6px);right:0}.discard-advice>svg{display:none}.discard-advice>div{display:block}.discard-advice b{font-size:11px;display:block}.discard-advice span{margin-top:3px;font-size:9px;line-height:1.3;display:block}.discard-advice button{min-height:33px;padding:4px 6px;font-size:10px}.game .hand-info{height:22px;font-size:10px}.game .hand-info>span:last-child{font-size:9px}.table-inspector{max-height:94dvh;padding:12px 20px}.table-inspector>header{margin-bottom:8px}.table-inspector nav{padding-bottom:4px}.table-inspector>.full{min-height:38px;margin-top:8px;padding:7px}}.discard-advice button{color:#fff3ce;background:#315b43}@media (orientation:landscape) and (max-height:600px){.latest-discard-card>.tile{width:64px;height:84px}}.dollar-note{vertical-align:middle;flex-shrink:0}.cash-amount{font-variant-numeric:tabular-nums;white-space:nowrap}.cash-change:not(:empty){animation:.6s ease-out both cash-pop;display:inline-block}@keyframes cash-pop{0%{opacity:0;transform:translateY(9px)scale(1.2)}to{opacity:1;transform:none}}.dollar-stack{width:150px;height:84px;display:inline-block;position:relative}.dollar-stack .stack-note{filter:drop-shadow(0 5px 1px #29432d);position:absolute;top:0;left:0}.stack-note-0{transform:translate(-3px,10px)rotate(-10deg)}.stack-note-1{transform:translate(3px,4px)rotate(7deg)}.stack-note-2{transform:rotate(-4deg)}.money-band{color:#967237;background:linear-gradient(90deg,#dfcb93,#fff1c4 35%,#ebd499);border:1px solid #f5e7b5;place-items:center;width:29px;height:80px;font:700 28px Georgia,serif;display:grid;position:absolute;top:0;left:61px;transform:rotate(-4deg);box-shadow:2px 2px 3px #20322444}.dollar-rush .hero{background:#052b23;border:1px solid #b9975750}.dollar-rush .hero-art{object-position:60% 50%}.dollar-rush .hero-shade{background:linear-gradient(90deg,#05241bf0,#06291d77 36%,#0000 68%)}.dollar-rush .hero h1{color:#ffedbf;text-shadow:0 3px 30px #08281e}.dollar-rush .hero-copy p{color:#dce6cd}.dollar-rush .hero-cta{position:relative;overflow:hidden;box-shadow:0 5px 25px #edc77528}.dollar-rush .hero-cta:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 42%,#fff6 50%,#0000 58%);animation:6s ease-in-out infinite button-shine;position:absolute;inset:-80% -20%}.dollar-rush .club-card{color:#f1edd1;background:linear-gradient(145deg,#153f32,#092b23);border:1px solid #b7a56a55}.dollar-rush .club-card .eyebrow,.dollar-rush .club-card p,.dollar-rush .club-card .mini-stats span{color:#b2c5a7}.dollar-rush .club-card h2,.dollar-rush .club-card .mini-stats b{color:#f6e8bf}.dollar-rush .wallet{position:relative;overflow:hidden}.dollar-rush .wallet>.dollar-stack{transform-origin:100%;opacity:.9;position:absolute;top:22px;right:-21px;transform:rotate(-13deg)scale(.62)}.dollar-rush .wallet>span{color:#c3d4b1}.dollar-rush .wallet>strong{color:#f5d68e;letter-spacing:-1px;text-shadow:0 2px 22px #061f1b;font-size:clamp(30px,2.6vw,39px);position:relative}.dollar-rush .wallet>small{color:#a5ba99}.dollar-rush .mini-stats{border-color:#bdb78525}.dollar-rush .club-card .solid,.dollar-rush .gift-button{color:#f3dfac;background:#cfdfa91a;border:1px solid #b5be7740}.dollar-rush .gift-button b{color:#f3dfac}.dollar-rush .gift-button small{color:#b3c2a0}.dollar-rush .wallet-foot{font-size:10px}.challenge-picker{background:linear-gradient(110deg,#eeeee1,#faf9f1);border:1px solid #dedfcf;border-radius:15px;justify-content:space-between;align-items:center;gap:24px;margin-top:22px;padding:18px 22px;display:flex}.challenge-picker>div:first-child{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.challenge-picker b{font-size:14px}.challenge-picker small{color:#78856e;font-size:10px}.challenge-options{gap:8px;display:flex}.challenge-options button{text-align:left;background:#ffffff90;border:1px solid #d6dccd;border-radius:9px;min-width:126px;padding:10px 14px}.challenge-options button>span{align-items:center;gap:7px;margin-bottom:4px;font-size:12px;font-weight:600;display:flex}.challenge-options button.active{color:#f6e4ae;background:#1b4a39;border-color:#1b4a39;box-shadow:0 3px 12px #123b3514}.challenge-options button.active small{color:#b5c9a3}.challenge-options button:hover{box-shadow:0 3px 14px #173c3220}.dollar-rush .game{background:radial-gradient(at 50% 37%,#286956,#164735 58%,#072a23)}.table-ambience{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.table-ambience>.dollar-stack{opacity:.28;position:absolute;bottom:32%}.table-money-left{left:-58px;transform:rotate(26deg)}.table-money-right{right:-55px;transform:rotate(-23deg)}.table-ambience>i{top:78%;left:var(--x);width:3px;height:3px;animation:table-mote var(--fall) linear infinite;animation-delay:var(--delay);background:#efdb97;border-radius:50%;position:absolute;box-shadow:0 0 9px #f3d481}.challenge-ribbon{z-index:2;background:linear-gradient(90deg,#092e2370,#b1a05f0b);border:1px solid #b9cb9c28;border-radius:7px;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;width:min(780px,96%);min-height:30px;margin:0 auto 5px;padding:5px 13px;display:flex;position:relative}.challenge-ribbon>span{white-space:nowrap;align-items:center;gap:7px;display:flex}.challenge-ribbon b{color:#edd7a1;font-size:11px;font-weight:500}.challenge-ribbon small{color:#aec4a2;font-size:10px}.challenge-ribbon svg{color:#d7bb74}.challenge-ribbon.is-ready{background:#b6a7531c;border-color:#e6ce7970}.challenge-ribbon.is-complete{border-color:#ebcf91}.game.table-ready .table-frame{border-color:#d7c47760;box-shadow:inset 0 0 40px #dbba5720,0 0 30px #d7c66b16}.game.table-impact:after{content:"";pointer-events:none;z-index:3;animation:.6s ease-out both edge-impact;position:absolute;inset:0;box-shadow:inset 0 0 110px #e2bd8050}.game .urgent-turn{color:#ffe7bd;background:#7d392fd0;border-color:#eeab75;box-shadow:0 0 18px #e4a25944}.game .urgent-turn b{color:#ffe2a6}.game .action-hu{animation:1.6s ease-in-out infinite hu-breathe;box-shadow:0 0 0 2px #ffe6a633,0 0 23px #edc55c77}.keyboard-hint{opacity:.7;font-size:9px;font-style:normal}.game .hand .tile:hover{filter:brightness(1.06)}.game .hand .tile.selected{box-shadow:0 4px #607d50,0 0 0 2px #f5d37c,0 0 24px #dbce6570}.game .self-info .dollar-note,.game .player-info .dollar-note{width:25px;height:14px}.game .self-info .cash-amount,.game .player-info .cash-amount{color:#eed7a1}.table-fx{z-index:150;pointer-events:none;isolation:isolate;contain:layout style;position:fixed;inset:0;overflow:hidden}.fx-aura{background:radial-gradient(#d3a74e38,#163c3220 38%,#0000 72%);animation:1.4s ease-out both aura-in;position:absolute;inset:0}.fx-hu .fx-aura,.fx-bonus .fx-aura{background:radial-gradient(at 50% 42%,#efc96744,#0c34234d 43%,#09221a20);animation-duration:2.9s}.fx-ring{border:3px solid #f4d27d;border-radius:50%;width:30vmin;height:30vmin;animation:1.05s cubic-bezier(.1,.6,.3,1) both dollar-shockwave;position:absolute;top:44%;left:50%;box-shadow:0 0 24px #ebd37d66,inset 0 0 24px #ebd37d66}.fx-ring-second{border-width:1px;animation-delay:.14s}.fx-rays{background:repeating-conic-gradient(from 12deg,#0000 0deg 13deg,#f3d18a18 14deg 16deg,#0000 17deg 24deg);width:140vmax;height:140vmax;animation:2.9s ease-out both rays-in;position:absolute;top:calc(44% - 70vmax);left:calc(50% - 70vmax);-webkit-mask-image:radial-gradient(#000,#0000 65%);mask-image:radial-gradient(#000,#0000 65%)}.fx-spark{width:5px;height:12px;animation:1.45s ease-out both dollar-spark;animation-delay:var(--delay);background:#ffe8a3;border-radius:50%;position:absolute;top:44%;left:50%;box-shadow:0 0 10px #fbd365}.flying-dollar{top:-100px;left:var(--x);filter:drop-shadow(0 8px 8px #031c2255);animation:dollar-fall var(--fall) cubic-bezier(.3, .05, .6, .9) both;animation-delay:var(--delay);position:absolute}.fx-title{text-align:center;flex-direction:column;align-items:center;gap:11px;width:min(90vw,620px);animation:1.4s both title-arrive;display:flex;position:absolute;top:41%;left:50%;transform:translate(-50%,-50%)}.fx-title>small{color:#f7de9e;letter-spacing:5px;text-shadow:0 2px 8px #051f17;font-size:10px}.fx-title>strong{letter-spacing:-4px;color:#ffe5a0;-webkit-text-stroke:1px #fff1bb;text-shadow:0 3px #a07529,0 7px #725022,0 12px 30px #072218bb,0 0 60px #e6c36b99;font:900 clamp(64px,12vw,142px)/1.15 Noto Serif SC,Songti SC,serif;transform:rotate(-6deg)}.fx-title>span{color:#f2eac6;letter-spacing:1px;background:#102d23df;border:1px solid #bda66c66;border-radius:22px;padding:7px 20px;font-size:12px}.fx-multiplier{color:#ffda79;text-shadow:0 3px #6b4b20,0 0 20px #fbc75866;font:italic 700 53px Georgia,serif;position:absolute;top:-20%;right:3%;transform:rotate(11deg)}.fx-multiplier em{letter-spacing:4px;font:11px sans-serif;display:block}.fx-title .fx-cash{color:#dafa9e;text-shadow:0 4px #1a553b,0 0 30px #b4f49866;font-variant-numeric:tabular-nums;font:700 clamp(40px,7vw,72px) Georgia,serif}.fx-title .fx-loss{color:#e9c4ab;text-shadow:0 2px #552b1e}.fx-hu .fx-title,.fx-bonus .fx-title{animation-duration:2.9s}.fx-peng .fx-title>strong,.fx-gang .fx-title>strong{font-size:clamp(90px,17vw,180px)}.fx-draw .fx-title>strong,.fx-deal .fx-title>strong,.fx-liang .fx-title>strong{font-size:clamp(48px,9vw,100px)}.fx-quiet .fx-title{background:#0c302bf2;border:1px solid #bbac6b;border-radius:12px;gap:5px;width:min(82vw,330px);padding:15px;animation:none;top:23%}.fx-quiet .fx-title>strong{letter-spacing:1px;-webkit-text-stroke:0;text-shadow:none;font-size:28px;transform:none}.fx-quiet .fx-title>small{display:none}.fx-quiet .fx-title>span{background:0 0;border:0;padding:0;font-size:11px}.fx-quiet .fx-title .fx-cash{text-shadow:none;font-size:27px}.fx-quiet .fx-multiplier{font-size:22px;position:static;transform:none}.fx-quiet .fx-multiplier em{padding-left:6px;display:inline}.result-card.result-winner{background:radial-gradient(at top,#fff0c8,#f8f7ec 55%);border-color:#d1b46b}.dollar-rush .result-symbol{display:none}.result-cash{flex-direction:column;align-items:center;margin:0 auto 13px;display:flex;position:relative}.result-cash .dollar-stack{transform-origin:top;height:62px;margin-bottom:4px;transform:scale(.6)}.result-cash>.cash-amount{color:#22543c;z-index:1;font:700 44px Georgia,serif}.result-cash>small{color:#8a906f;letter-spacing:2px;margin-top:6px;font-size:9px}.result-cash.result-loss>.cash-amount{color:#aa7560}.challenge-award{color:#8e7027;background:#d9bd6520;border:1px solid #c7ad5d55;border-radius:7px;justify-content:center;align-items:center;gap:6px;margin-top:10px;padding:7px;font-size:11px;display:flex}@keyframes dollar-fall{0%{opacity:0;transform:translate3d(0, -5vh, 0) rotate(var(--rotate))}8%{opacity:1}45%{transform:translate3d(var(--drift), 48vh, 0) rotate(calc(var(--rotate) + 130deg)) rotateY(130deg)}90%{opacity:1}to{opacity:0;transform:translate3d(calc(var(--drift) * -1), calc(100dvh + 180px), 0) rotate(calc(var(--rotate) + 290deg)) rotateY(320deg)}}@keyframes dollar-shockwave{0%{opacity:.85;transform:translate(-50%,-50%)scale(.15)}to{opacity:0;transform:translate(-50%,-50%)scale(4.8)}}@keyframes dollar-spark{0%{transform:rotate(var(--angle)) translateY(20px) scale(1.3);opacity:1}to{transform:rotate(var(--angle)) translateY(var(--travel)) scale(.1);opacity:0}}@keyframes title-arrive{0%{opacity:0;transform:translate(-50%,-50%)scale(1.5)}13%,74%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-55%)scale(.96)}}@keyframes rays-in{0%{opacity:0;transform:rotate(-14deg)}20%{opacity:1}to{opacity:0;transform:rotate(14deg)}}@keyframes aura-in{0%,to{opacity:0}18%,65%{opacity:1}}@keyframes edge-impact{0%{opacity:1}to{opacity:0}}@keyframes button-shine{0%,68%{transform:translate(-90%)}95%,to{transform:translate(90%)}}@keyframes hu-breathe{50%{box-shadow:0 0 0 3px #ffe6a644,0 0 32px #edc55c99}}@keyframes table-mote{0%,to{opacity:0}30%,60%{opacity:.4}to{transform:translate(30px,-70vh)}}@media (max-width:720px){.challenge-picker{flex-direction:column;align-items:stretch;gap:12px;margin-top:16px;padding:14px}.challenge-picker>div:first-child{gap:7px}.challenge-picker b{font-size:12px}.challenge-picker>div:first-child small{margin-left:auto;font-size:9px}.challenge-options{gap:6px}.challenge-options button{flex:1;min-width:0;padding:10px 8px}.challenge-options button>span{gap:4px;font-size:11px}.challenge-options small{font-size:9px}.challenge-ribbon{width:100%;min-height:27px;margin-bottom:2px;padding:4px 8px}.challenge-ribbon b{font-size:10px}.challenge-ribbon small{font-size:9px}.challenge-ribbon>span{gap:5px}.challenge-ribbon .streak small,.keyboard-hint{display:none}.table-ambience>.dollar-stack{opacity:.15;bottom:47%}.fx-title{gap:13px;top:39%}.fx-title>small{letter-spacing:3px;font-size:8px}.fx-multiplier{font-size:44px;top:-38%;right:9%}.fx-title>span{padding:6px 12px;font-size:10px}.result-cash>.cash-amount{font-size:38px}}@media (max-width:360px){.challenge-ribbon>span:first-child small{display:none}.challenge-picker>div:first-child small{font-size:8px}}@media (orientation:landscape) and (max-height:550px){.challenge-ribbon{width:75%;min-height:21px;margin-bottom:0;padding:2px 10px}.challenge-ribbon b,.challenge-ribbon small{font-size:9px}.challenge-ribbon svg{width:12px;height:12px}.result-cash{grid-column:1;margin-bottom:4px}.result-cash .dollar-stack{display:none}.result-cash>.cash-amount{font-size:32px}.result-cash>small{margin-top:1px}.challenge-award{grid-column:1;margin-top:4px;padding:4px;font-size:9px}.fx-title{gap:6px;top:45%}.fx-title>strong,.fx-peng .fx-title>strong,.fx-gang .fx-title>strong{font-size:80px}.fx-title .fx-cash{font-size:40px}.fx-multiplier{font-size:40px;top:4%;right:7%}}@media (prefers-reduced-motion:reduce){.dollar-rush *,.dollar-rush :before,.dollar-rush :after{animation:none!important}.dollar-rush .hero-cta:after,.game.table-impact:after,.table-ambience>i{display:none}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{animation:none!important}.reduce-motion .hero-cta:after,.reduce-motion .game.table-impact:after{display:none}.table-chatter{position:relative}.table-chatter>button{color:#b9c9a9;background:0 0;align-items:center;gap:5px;padding:9px 0;font-size:11px;display:flex}.chatter-menu{z-index:60;background:#102f27fa;border:1px solid #afab6f70;border-radius:12px;grid-template-columns:1fr 1fr;gap:7px;width:218px;padding:12px;display:grid;position:absolute;bottom:calc(100% + 12px);right:-12px;box-shadow:0 12px 35px #03191170}.chatter-menu>div{color:#e0d6b1;grid-column:1/-1;justify-content:space-between;align-items:center;font-size:11px;display:flex}.chatter-menu>div button{color:#d0d6b4;background:0 0;padding:3px}.chatter-menu>button{color:#f2e5bc;background:#42614960;border:1px solid #99ad7450;border-radius:7px;padding:10px 3px;font-size:11px}.chatter-menu small{color:#a4b296;text-align:center;grid-column:1/-1;padding-top:4px;font-size:9px}.chatter-bubble{z-index:61;color:#285642;pointer-events:none;background:#fff4cf;border:1px solid #e2c989;border-radius:16px 16px 16px 3px;flex-direction:column;gap:3px;padding:9px 18px;animation:.2s ease-out modal-in;display:flex;position:fixed;box-shadow:0 4px 24px #0b2e2633}.chatter-bubble>span{opacity:.65;font-size:9px}.chatter-bubble>b{font-size:17px}.bubble-seat-0{bottom:32%;left:44%}.bubble-seat-1{top:22%;left:12%}.bubble-seat-2{top:22%;right:12%}@media (max-width:720px){.table-chatter>button{font-size:10px}.table-chatter>button>span{display:none}.bubble-seat-0{bottom:43%;left:35%}.bubble-seat-1{left:5%}.bubble-seat-2{right:5%}}.tile-motion-layer{pointer-events:none;z-index:90;perspective:900px;position:fixed;inset:0;overflow:hidden}.tile-flight{opacity:0;will-change:transform, opacity;filter:drop-shadow(0 12px 10px #041d1888)drop-shadow(0 0 8px #ffe6a864);position:absolute;top:0;left:0}.tile-flight-card{width:100%;height:100%;transform-style:preserve-3d;display:block}.tile-flight img{object-fit:fill;backface-visibility:hidden;width:100%;height:100%;position:absolute;inset:0}.tile-flight .tile-flight-back{transform:rotateY(180deg)}.tile-flight-discard:after{content:"";z-index:-1;filter:blur(9px);background:linear-gradient(#f6d69270,#0000);border-radius:50%;position:absolute;inset:45% -20% -45%}.tile-flight-settle{filter:drop-shadow(0 5px 5px #041d1888)}.tile-impact-ring{opacity:0;border:2px solid #ffe3a2;border-radius:50%;width:58px;height:28px;position:absolute;box-shadow:0 0 14px #f8ce5f66,inset 0 0 12px #fff3c74d}.tile-impact-strong{border-width:3px;width:94px;height:42px}.tile-impact-spark{opacity:0;background:#fff1bb;border-radius:50%;width:4px;height:4px;position:absolute;box-shadow:0 0 7px #ffd76a}.game .hand .tile{transform-origin:50% 90%;transition:transform .18s cubic-bezier(.2,.8,.25,1.3),filter .18s,box-shadow .18s}.game .hand .tile.selected{filter:brightness(1.09);transform:translateY(-13px)rotate(-1.5deg);box-shadow:0 12px 12px #03261b70,0 0 0 2px #efce85,0 0 22px #e9c66f6b}.game .hand .tile.selected:after{content:"";pointer-events:none;border:1px solid #ffe5a899;border-radius:9px;animation:.6s ease-out both tile-select-halo;position:absolute;inset:-5px}.game .hand-tile-wrap,.game .latest-discard-card>.tile{animation:none}.tile-wall{pointer-events:none;opacity:.8;width:34px;height:42px;position:absolute;top:12%;left:calc(50% + 72px)}.tile-wall img{filter:drop-shadow(1px 3px 2px #03291f80);width:24px;height:32px;position:absolute;transform:rotate(18deg)}.tile-wall img:nth-child(2){top:-3px;left:4px}.tile-wall img:nth-child(3){top:-6px;left:8px}.tile-wall span{white-space:nowrap;letter-spacing:2px;color:#e0c899;font-size:8px;position:absolute;top:35px;left:1px}.tile-preview-note{text-align:center;color:#718778;margin:7px 0 14px;font-size:11px}@keyframes tile-select-halo{0%{opacity:1;transform:scale(.92)}to{opacity:0;transform:scale(1.18)}}.reduce-motion .tile-motion-layer{display:none}.reduce-motion .game .hand .tile{transition:none}.reduce-motion .game .hand .tile.selected{transform:translateY(-6px)}@media (max-width:600px){.game .hand .tile.selected{transform:translateY(-9px)rotate(-1deg)}.tile-wall{top:7%;left:calc(50% + 49px);transform:scale(.8)}}@media (orientation:landscape) and (max-height:600px){.tile-wall{top:8%;left:calc(50% + 53px);transform:scale(.65)}}@media (prefers-reduced-motion:reduce){.tile-motion-layer{display:none}.game .hand .tile{transition:none}.game .hand .tile.selected{transform:translateY(-6px)}.game .hand .tile.selected:after{animation:none;display:none}}.app.in-game{width:100dvw;height:100dvh;position:fixed;inset:0;overflow:hidden;container:table/size}.app.in-game.landscape-rotated{transform-origin:0 0;width:100dvh;height:100dvw;inset:0 auto auto 0;transform:translate(100dvw)rotate(90deg)}.app.in-game .game{height:100%;min-height:0}.app.in-game .waiting-table{justify-content:flex-start;min-height:0;padding:20px 0;overflow-y:auto}.app.in-game .waiting-seats{flex-shrink:0}.app.in-game .waiting-progress{letter-spacing:0;margin:0;padding:0 12px}.app.in-game .waiting-links{flex-wrap:wrap;justify-content:center;row-gap:4px;padding:0 12px}.game .hand{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-flow:row;place-content:center;gap:12px 5px;width:min(100%,480px);max-width:100%;min-height:0;margin:0 auto;padding:12px 3px 9px;display:grid;overflow:visible}.game .hand-tile-wrap{flex:initial;justify-content:center;width:100%;min-width:0;display:flex}.game .hand .tile{aspect-ratio:192/252;flex:0 0 100%;width:100%;max-width:none;height:auto}.game .hand .drawn-tile{margin:0}.hand-layout-hint{font-style:normal}.game .drawn-label{color:#173f30;z-index:2;background:#f3d993;border-radius:4px;padding:2px 4px;font-size:8px;line-height:1;display:block;inset:-7px -2px auto auto;transform:none}.game .my-melds{flex-wrap:wrap;gap:6px 14px;margin:5px 0 12px;display:flex;position:static}.game .fullscreen{display:inline-flex}.game .table-view-button{color:#ecd59f;white-space:nowrap;background:#153e30a6;border:1px solid #e9d09350;border-radius:8px;justify-content:center;align-items:center;gap:5px;min-height:32px;padding:5px 8px;font-size:11px;display:inline-flex}.game .table-view-button.active{color:#173d2b;background:#ead19a}.game .game-tools{gap:5px}.viewport-notice{z-index:210;color:#f2e6c9;text-align:center;pointer-events:none;background:#173d2bf2;border:1px solid #f1dca355;border-radius:8px;max-width:80%;padding:9px 14px;font-size:12px;position:absolute;top:54px;left:50%;transform:translate(-50%)}.landscape-rotated .modal-backdrop,.landscape-rotated .result-backdrop,.landscape-rotated .inspect-backdrop,.landscape-rotated .table-inspector-backdrop{padding:10px}.landscape-rotated .modal,.landscape-rotated .result-card,.landscape-rotated .table-inspector{max-width:95%;max-height:94%;overflow-y:auto}@container table (width<=760px) and (height<=700px) and (aspect-ratio<=1){.game .game-header{height:40px}.game .game-brand{font-size:17px}.game .game-header-left{gap:2px}.game .room-badge{letter-spacing:0;padding:5px;font-size:8px}.game .game-tools .connection{display:none}.game .table-view-button{gap:3px;padding:4px 5px;font-size:10px}.game .opponents{height:88px;margin:3px 0 0}.game .playmat{min-height:70px}.game .action-bar{height:38px}.game .discard-advice{min-height:38px;margin:3px 0;padding:4px 8px}.game .discard-advice span{display:none}.game .hand-info{height:22px;font-size:9px}.game .hand-info>span:last-child{display:none}.game .hand{gap:11px 4px;padding:9px 2px 6px}.game .dock-footer{height:32px}.game .challenge-ribbon{min-height:22px;margin:0}.game .latest-discard-card{top:28px}.game .latest-discard-card>.tile{width:42px;height:55px}}@container table (aspect-ratio>=1) and (width>=500px){.game{padding:0 max(14px, env(safe-area-inset-left))}.game .game-header{height:42px;margin:0}.game .game-header-left{gap:6px}.game .game-brand{letter-spacing:2px;font-size:19px}.game .game-brand small{display:none}.game .game-tools .icon-button{width:30px;height:30px}.game .room-badge{padding:5px 9px;font-size:9px}.game .challenge-ribbon{z-index:2;white-space:nowrap;width:auto;min-height:20px;margin:0;padding:3px 10px;position:absolute;top:46px;left:50%;transform:translate(-50%)}.game .challenge-ribbon small,.game .challenge-ribbon>span:last-child{display:none}.game .challenge-ribbon b{font-size:10px}.game .opponents{z-index:2;pointer-events:none;width:auto;max-width:none;height:83px;margin:0;position:absolute;inset:47px 14px auto}.game .opponent{pointer-events:auto;max-width:25%}.game .player-info{gap:4px;padding:2px 6px 2px 2px}.game .player-info .avatar{width:28px;height:28px}.game .player-info b{font-size:10px}.game .player-info div>span{margin-top:3px;font-size:9px}.game .opponent-hand{gap:1px;margin-top:4px}.game .opponent-hand .mini{width:17px;height:23px}.game .opponent-hand>span:not(.tile){margin-left:3px;font-size:8px}.game .opponent-melds{flex-wrap:wrap;gap:3px;margin-top:2px;position:static}.game .opponent-melds .tile.tiny{width:16px;height:21px}.game .opponent-zoom{min-height:21px;padding:3px 5px;font-size:8px}.game .playmat{flex:1;width:100%;min-height:100px;margin:0}.game .turn-dial{gap:5px;width:auto;min-width:108px;height:23px;top:30px}.game .turn-dial>b{font-size:12px}.game .turn-dial>span,.game .turn-dial>small{font-size:8px}.game .latest-discard-card{gap:2px;top:59px}.game .latest-discard-card>.tile{aspect-ratio:192/252;width:clamp(38px,13cqh,68px);height:auto}.game .latest-discard-card>span{font-size:9px}.game .latest-discard-card>strong{font-size:11px}.game .tile-wall{top:56px;left:calc(50% + 49px);transform:scale(.7)}.game .discard-left{top:46px;left:26%}.game .discard-right{top:46px;right:26%}.game .discard-zone>div{grid-template-columns:repeat(3,22px);gap:3px}.game .river-tile{width:22px;height:29px}.game .discard-label{min-height:18px;margin-bottom:2px;font-size:8px}.game .discard-self{display:block;bottom:4px;left:0;transform:none}.game .discard-self>div{grid-template-columns:repeat(8,18px)}.game .discard-self .river-tile{width:18px;height:24px}.game .all-rivers{min-height:22px;padding:3px 8px;font-size:9px;bottom:3px}.game .player-dock{flex-shrink:0;grid-template-columns:minmax(0,1fr) minmax(0,min(48cqw,130cqh,490px)) minmax(0,1fr);align-items:center;gap:0 12px;width:100%;max-width:1120px;margin:0 auto;padding:0;display:grid}.game .action-bar{display:contents}.game .turn-status{white-space:normal;grid-area:1/1;align-self:end;font-size:11px}.game .game-actions{flex-direction:column;grid-area:1/3/4;justify-content:center;align-items:stretch;gap:5px;padding:0 4px}.game .game-actions button{width:100%;min-width:0;min-height:33px;padding:6px 7px;font-size:13px}.game .game-actions .discard-button{min-width:0;padding:8px 4px;font-size:13px}.game .hand-info{grid-area:2/1;align-self:center;height:auto;font-size:9px;line-height:1.5}.game .hand-info>span:last-child,.game .discard-advice{display:none}.game .my-melds{grid-area:3/1;align-self:start;gap:7px;margin:4px 0 9px}.game .my-melds .tile{width:18px;height:24px}.game .my-melds .meld>span:last-child{font-size:7px;bottom:-10px}.game .hand{grid-area:1/2/4;gap:10px 4px;width:100%;padding:10px 2px 6px}.game .hand .tile{border-radius:4px}.game .hand .tile.selected{transform:translateY(-7px)rotate(-1deg)}.game .dock-footer{grid-area:4/1/auto/-1;gap:8px;height:33px;margin:0}.game .dock-footer .avatar{width:24px;height:24px}.game .self-info{gap:5px}.game .self-info b,.game .self-info>span:not(.avatar){font-size:10px}.game .dock-tools{gap:8px}.game .dock-tools>button{min-height:30px;font-size:9px}.game .dock-tools>button:last-child{display:none}.game .table-watermark{opacity:.07;font-size:35px}.game .table-watermark span{display:none}.game .table-frame{inset:22px 12% 0}.game .table-money-left,.game .table-money-right{width:90px;bottom:33%}.game .viewport-notice{padding:6px 10px;font-size:10px;top:44px}.result-backdrop .result-card,.modal-backdrop .modal{max-height:94cqh;padding:20px}.table-inspector-backdrop .table-inspector{max-height:94cqh}}.game .rack-area{width:min(100%,480px);min-width:0;margin:0 auto}.rack-tools{color:#b7cdb8;align-items:center;gap:8px;min-height:27px;font-size:10px;display:flex}.rack-tools>span{flex:1}.rack-tools button{color:#eee2bd;white-space:nowrap;background:#143e322b;border:1px solid #cfcea54a;border-radius:6px;min-height:28px;padding:4px 9px}.game .tactile-hand{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%}.game .tactile-hand .tile{cursor:grab}.game .tactile-hand .tile:focus-visible{outline-offset:3px;outline:2px solid #fff1b9}.game .tactile-hand .rack-lifted>.tile{opacity:.18;box-shadow:none;outline:1px dashed #e8d296;transform:none}.game .tactile-hand .rack-gap{left:-3px}.game .tactile-hand .rack-gap:after{content:"";pointer-events:none;border-right:1px solid #ead3a355;position:absolute;top:18%;bottom:12%;right:-4px}.game .tactile-hand .rack-parked{left:3px}.game .tactile-hand .rack-parked>.tile{box-shadow:0 3px #768a69,-3px 0 #153e35,0 7px 12px #051c254d}.game .tactile-hand .tile.selected{box-shadow:0 10px 12px #03261b70,0 0 0 2px #dfc28c}.game .tactile-hand .tile.selected:after{display:none}.rack-ghost{pointer-events:none;z-index:220;filter:drop-shadow(0 18px 12px #061f2490);will-change:transform;position:fixed;top:0;left:0}.rack-ghost img{object-fit:fill;width:100%;height:100%}.tile-flight{filter:drop-shadow(0 10px 9px #041d1866)}.tile-flight-discard:after{display:none}.game.tactile-table .playmat{z-index:5;pointer-events:none;min-height:160px;container:mat/size}.table-rivers{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid;position:absolute;inset:59px 0 25px}.river-area{pointer-events:auto;flex-direction:column;min-width:0;min-height:0;display:flex}.river-heading{color:#d8e2c7;background:0 0;border-bottom:1px solid #d9d1a825;flex:0 0 23px;justify-content:space-between;align-items:center;gap:4px;width:100%;padding:0 1px 4px;font-size:10px;display:flex}.river-heading>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.river-heading small{white-space:nowrap;opacity:.7;font-size:9px}.river-surface{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:1;min-height:0;padding-top:8px}.river-grid{grid-template-columns:repeat(var(--river-columns), var(--river-size));grid-auto-rows:calc(var(--river-size) * 1.3125);justify-content:center;gap:3px;display:grid}.river-slot{width:var(--river-size);height:calc(var(--river-size) * 1.3125);transform:rotate(var(--rest-angle))}.game .river-slot .river-tile{border-radius:2px;width:100%;height:100%;animation:none;box-shadow:0 1px #9aab8d,1px 2px 3px #062c2877}.river-empty{text-align:center;color:#a5bba188;grid-column:1/-1;padding:15px 0;font-size:9px}.river-loupe{z-index:30;pointer-events:none;background:#153f34f5;border:1px solid #e6d8a966;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:12px;display:flex;position:absolute;inset:0;box-shadow:0 12px 26px #041d1977;container:loupe/size}.river-loupe>b{color:#f0dfb5;font-size:12px}.river-loupe>div{width:min(100%, calc((100cqh - 40px - var(--loupe-rows) * 5px) / var(--loupe-rows) / 1.3125 * 6));grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;display:grid}.river-loupe .tile{aspect-ratio:192/252;border-radius:3px;width:100%;height:auto}.game.tactile-table .turn-dial{background:0 0;border:0;min-width:0;padding:0;top:0;left:0;transform:none}.game.tactile-table .latest-discard-card{pointer-events:auto;flex-direction:row;gap:7px;height:48px;top:0;left:auto;right:0;transform:none}.game.tactile-table .latest-discard-card>.tile{width:31px;height:41px;box-shadow:0 2px #849679,0 4px 8px #092e2566}.game.tactile-table .latest-discard-card>span{font-size:10px}.game.tactile-table .latest-discard-card>strong{letter-spacing:0;font-size:11px}.game.tactile-table .tile-wall{opacity:.55;top:9px;left:calc(50% - 10px);transform:scale(.65)}.game.tactile-table .all-rivers{pointer-events:auto;min-height:22px;padding:3px 10px;font-size:9px;bottom:0}.table-drop-target{z-index:35;pointer-events:none;opacity:0;border:2px dashed #0000;border-radius:18px;justify-content:center;align-items:center;transition:background .12s,opacity .12s;display:flex;position:absolute;inset:40px 10px 0}.table-drop-target.drop-visible{opacity:1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#10392d66;border-color:#d7c69366}.table-drop-target>span,.table-drop-target>strong{color:#f6e7bd;background:#133d32eb;border-radius:30px;padding:9px 16px;font-size:13px}.table-drop-target>strong{display:none}.table-drop-target.drop-armed{background:#b59d4e30;border-color:#f4d991}.table-drop-target.drop-armed>span{display:none}.table-drop-target.drop-armed>strong{display:block}.deal-ritual{pointer-events:auto;white-space:nowrap;z-index:40;color:#eeddb6;background:#113b30e8;border-radius:30px;padding:10px 16px;font-size:12px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.deal-ritual button{color:#cad7bb;background:0 0;margin-left:12px;padding:5px;text-decoration:underline}.game.tactile-table .opponent-hand{visibility:visible;flex-wrap:wrap;gap:1px;width:min(100%,180px);display:flex}.game.tactile-table .opponent-hand .mini{aspect-ratio:192/252;border-radius:2px;width:clamp(7px,2.2cqw,12px);height:auto}.game.tactile-table .opponent-hand>span:not(.tile){width:100%;margin:2px 0 0;font-size:8px}.game.tactile-table .opponent-melds{flex-wrap:wrap;margin-top:3px;position:static;overflow:visible}.game.tactile-table .opponent-melds .tile.tiny{width:14px;height:19px}.game.tactile-table .opponent-zoom{min-height:22px;padding:2px 5px;font-size:9px}@container table (aspect-ratio>=1) and (width>=500px){.game .rack-area{grid-area:1/2/4;width:100%}.game .rack-area .hand{width:100%;display:grid}.rack-tools{min-height:23px;font-size:9px}.rack-tools button{min-height:23px;padding:2px 7px}.game.tactile-table .playmat{min-height:90px}.table-rivers{display:block;inset:73px 0 -62px}.table-rivers .river-area{width:22%;position:absolute;top:0;bottom:0}.table-rivers .river-area:first-child{left:0}.table-rivers .river-area:last-child{right:0}.table-rivers .river-area:nth-child(2){width:50%;height:69px;top:-37px;bottom:auto;left:25%}.game.tactile-table .game-actions{z-index:4;flex-flow:wrap;grid-area:auto;width:21%;max-height:85px;padding:0;position:absolute;bottom:38px;right:14px}.game.tactile-table .game-actions button{flex:36%;min-height:30px}.game.tactile-table .turn-status{grid-area:auto;width:21%;font-size:9px;position:absolute;bottom:62px;left:14px}.game.tactile-table .hand-info{grid-area:auto;width:21%;font-size:8px;position:absolute;bottom:37px;left:14px}.game.tactile-table .my-melds{grid-area:auto;width:21%;position:absolute;bottom:88px;left:14px}.game.tactile-table .opponent-zoom{display:none}.table-rivers .river-loupe{position:fixed;inset:44px 24% 38px}.river-loupe>div{grid-template-columns:repeat(6,minmax(0,1fr))}.game.tactile-table .all-rivers{font-size:8px;top:3px;bottom:auto;left:50%}.game.tactile-table .latest-discard-card>span{display:none}.game.tactile-table .turn-dial{top:9px;left:26%}.game.tactile-table .latest-discard-card{height:29px;top:4px;right:24%}.game.tactile-table .latest-discard-card>.tile{width:20px;height:26px}.game.tactile-table .latest-discard-card>span{font-size:8px}.game.tactile-table .latest-discard-card>strong{font-size:9px}.game.tactile-table .tile-wall{display:none}.game.tactile-table .opponents{height:83px;margin:0}.game.tactile-table .opponent{max-width:22%}.game.tactile-table .opponent-hand .mini{width:clamp(7px,1.1cqw,12px)}.game.tactile-table .opponent-melds .tile.tiny{width:12px;height:16px}.river-heading{flex-basis:18px;font-size:8px}.river-surface{padding-top:5px}.game.tactile-table .discard-advice{z-index:45;background:#194735f5;border-color:#dac78b77;width:auto;display:flex;position:absolute;bottom:36%;left:24%;right:24%}.game.tactile-table .discard-advice span{display:block}.game.tactile-table .challenge-ribbon{z-index:1;display:none;top:auto;bottom:4px;left:50%}.table-drop-target{inset:30px 23% 0}}@container table (width<=600px) and (aspect-ratio<=1){.game.tactile-table .challenge-ribbon{min-height:22px;padding:3px 8px}.game.tactile-table .challenge-ribbon>span:last-child{display:none}.game .rack-tools{font-size:9px}}@container table (height<=680px) and (aspect-ratio<=1){.game.tactile-table .playmat{min-height:75px}.game.tactile-table .opponents{height:98px;margin-top:3px}.table-rivers{gap:7px;inset:40px 0 20px}.game.tactile-table .latest-discard-card{height:33px}.game.tactile-table .latest-discard-card>.tile{width:23px;height:30px}.game.tactile-table .latest-discard-card>strong{display:none}.game.tactile-table .hand-info{height:20px}.game.tactile-table .challenge-ribbon{display:none}.rack-tools>span{white-space:nowrap;max-width:190px;overflow:hidden}}@media (prefers-reduced-motion:reduce){.table-drop-target{transition:none}}.game.tactile-table .turn-status{white-space:normal;letter-spacing:0}.player-status-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.player-status-copy strong{font-size:inherit;font-weight:500}.player-status-copy small{font-size:10px;line-height:1.4}.game.tactile-table.needs-action .turn-status{color:#153d2e;background:#f3d894;border:1px solid #ffe7ab;border-radius:9px;gap:7px;padding:7px 9px;box-shadow:0 3px 14px #061e2455}.needs-action .player-status-copy strong{font-size:16px;font-weight:800;line-height:1.25}.game.tactile-table.needs-action .rack-area{outline-offset:3px;border-radius:10px;outline:2px solid #efd18b}.game.tactile-table.needs-action .discard-button:not(:disabled),.game.tactile-table.needs-action .action-hu{color:#173b2d;background:#f6d381;border:2px solid #ffe7ae;font-weight:800;box-shadow:0 0 18px #f1d18755}.player-countdown{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:23px}.player-countdown small{padding-left:2px;font-size:10px}.player-countdown.urgent{color:#aa3824}.turn-announcement{z-index:160;color:#173d2e;pointer-events:none;background:#fff0bd;border:2px solid #e8be61;border-radius:14px;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 24px);padding:13px 18px;display:flex;position:absolute;top:28%;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #031a2866}.turn-announcement>div{flex-direction:column;gap:3px;display:flex}.turn-announcement strong{font-size:25px;font-weight:850}.turn-announcement span{font-size:12px}.turn-announcement button{pointer-events:auto;color:#fff2c9;white-space:nowrap;background:#194b38;border-radius:7px;padding:9px;font-size:12px}.round-announcement{z-index:155;pointer-events:none;text-align:center;color:#fff1c6;background:radial-gradient(#0a3328f5,#092d25e8 45%,#08271c90);flex-direction:column;justify-content:center;align-items:center;gap:13px;padding:25px;display:flex;position:absolute;inset:0}.round-announcement>strong{text-wrap:balance;font-size:clamp(30px,7cqw,66px);font-weight:900;line-height:1.2}.round-announcement>span{font-size:15px;line-height:1.5}.round-announcement>b{font-variant-numeric:tabular-nums;font-size:35px}.round-announcement>small{opacity:.8;font-size:11px}.round-won{color:#ffe6a3;background:radial-gradient(#3a4820f5,#102f24e8 53%,#09282099)}.victory-trophy{filter:drop-shadow(0 0 15px #f9d87a55)}.game .result-card.result-winner>h2{color:#805812;font-size:clamp(29px,4cqw,42px);font-weight:800}.cue-animated{animation:.28s ease-out both cue-arrival}@keyframes cue-arrival{0%{opacity:0;scale:.94}to{opacity:1;scale:1}}@container table (aspect-ratio>=1) and (width>=500px){.game.tactile-table.needs-action .turn-status{width:22%;padding:7px;bottom:60px;left:5px}.needs-action .player-status-copy strong{font-size:clamp(12px,1.9cqw,17px)}.needs-action .player-status-copy small{font-size:10px}.turn-announcement{padding:9px 15px;top:19%}.turn-announcement strong{font-size:23px}.round-announcement{gap:7px}.round-announcement .victory-trophy{width:42px;height:42px}.game .result-card.result-winner>h2{font-size:29px}}@container table (width<=380px) and (aspect-ratio<=1){.game.tactile-table.needs-action .turn-status{padding:5px 7px}.needs-action .player-status-copy strong{font-size:14px}.needs-action .player-status-copy small{font-size:9px}.player-countdown{font-size:19px}.turn-announcement strong{font-size:21px}.turn-announcement span{font-size:10px}}@media (prefers-reduced-motion:reduce){.cue-animated{animation:none}}.game.tactile-table .table-frame,.game.tactile-table .table-watermark,.game.tactile-table .table-money,.game.tactile-table .tile-wall{display:none}.game.tactile-table .playmat{min-height:205px}.game.tactile-table .opponents{height:100px;margin-top:3px}.game .table-rivers{grid-template-rows:minmax(0,1fr) 87px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid;inset:72px 0 0}.game .table-rivers .river-area{background:#082b2466;border:1px solid #9fbdab42;border-radius:9px;width:auto;min-width:0;height:auto;min-height:0;padding:4px 6px;position:relative;inset:auto}.game .table-rivers .river-left{grid-area:1/1}.game .table-rivers .river-right{grid-area:1/2}.game .table-rivers .river-self{grid-area:2/1/3/3}.game .table-rivers .river-current{background:#8b754720;border-color:#eed493}.river-heading{text-align:left;border-color:#d9d1a82b;flex:0 0 28px;gap:5px;padding:0 0 4px}.river-heading>span{color:#bbceb6;flex:1;min-width:0;font-size:10px}.river-heading small{opacity:1;color:#e5dbc1;font-size:10px}.river-surface{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b4c7ab55 transparent;touch-action:pan-y;padding:5px 2px 3px;overflow-y:auto}.river-grid{justify-content:start}.river-slot{position:relative;transform:none}.game .river-slot .river-tile{box-shadow:none;filter:contrast(1.07);border-radius:2px}.game .river-slot .latest{outline-offset:0;outline:2px solid #ffe29b;box-shadow:0 0 7px #edd08777}.river-new-tag{color:#493514;pointer-events:none;background:#ffe2a0;border-radius:2px;padding:0 2px;font:700 8px/12px sans-serif;position:absolute;top:-4px;right:-2px}.river-empty{color:#b0c5af;padding:8px 0;font-size:10px}.game.tactile-table .latest-discard-card{z-index:2;background:#123b2ff2;border:1px solid #efd49665;border-radius:10px;flex-direction:row;gap:9px;max-width:70%;height:64px;padding:4px 10px 4px 6px;top:0;left:50%;right:auto;transform:translate(-50%)}.game.tactile-table .latest-discard-card>.tile{flex-shrink:0;width:42px;height:55px}.discard-focus-copy{text-align:left;color:#fff1c9;flex-direction:column;gap:2px;min-width:0;display:flex}.discard-focus-copy>span{white-space:nowrap;align-items:center;gap:4px;font-size:10px;display:flex}.discard-focus-copy .avatar{flex-shrink:0;width:19px;height:19px}.discard-focus-copy b{text-overflow:ellipsis;max-width:95px;overflow:hidden}.discard-focus-copy strong{font-size:20px;line-height:1.1}.discard-focus-copy small{color:#decc9e;text-overflow:ellipsis;white-space:nowrap;max-width:155px;font-size:9px;overflow:hidden}.game.tactile-table .turn-dial{flex-wrap:wrap;gap:3px;width:57px;min-width:0;height:auto;font-size:9px;top:8px;left:0}.game.tactile-table .turn-dial>b{font-size:14px}.game.tactile-table .all-rivers{white-space:normal;color:#ffe2a3;background:#143c30;border:1px solid #e2cf896b;border-radius:8px;flex-wrap:wrap;gap:3px;width:64px;min-height:46px;padding:5px 3px;font-size:10px;inset:7px 0 auto auto;transform:none}.all-rivers>span{color:#c4d3b8;width:100%;font-size:8px;display:block}.game .river-loupe{z-index:25}.table-inspector{width:min(1000px,100%)}.table-inspector nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.table-inspector nav button{font-size:12px}.table-inspector nav small{font-size:9px}.all-discard-rivers{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.overview-river{background:#ebefdf;border:1px solid #b8c6ab;border-radius:11px;min-width:0;padding:10px}.overview-current{border:2px solid #b88937;padding:9px}.overview-river>header{align-items:center;gap:7px;margin-bottom:12px;display:flex}.overview-river header .avatar{flex-shrink:0;width:30px;height:30px}.overview-river header>div{flex:1;min-width:0}.overview-river header b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.overview-river header span{color:#697660;margin-top:2px;font-size:10px;display:block}.overview-river header small{white-space:nowrap;font-size:11px}.overview-tiles{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 5px;display:grid}.overview-tiles>div{text-align:center;min-width:0}.overview-tiles .tile{aspect-ratio:192/252;width:100%;max-width:48px;height:auto;box-shadow:none}.overview-tiles small{color:#6d7763;margin-top:4px;font-size:9px;display:block}.overview-latest .tile{outline-offset:1px;outline:2px solid #b88937}.overview-latest small{color:#73500d;font-weight:800}.overview-tiles p{grid-column:1/-1}.overview-details{color:#49664b;background:0 0;border-top:1px solid #bbc8b0;width:100%;margin-top:14px;padding:8px 0 0;font-size:10px}.all-discards-inspector>header{margin-bottom:12px}.all-discards-inspector .inspector-content{padding-bottom:14px}@container table (aspect-ratio<=1){.all-discard-rivers{grid-template-columns:1fr;gap:10px}.overview-tiles{grid-template-columns:repeat(8,minmax(0,1fr))}.overview-river{padding:9px}.overview-current{padding:8px}.overview-river>header{margin-bottom:9px}.overview-details{margin-top:8px;padding-top:6px}.table-inspector{padding:14px}}@container table (aspect-ratio>=1) and (width>=500px){.game.tactile-table .playmat{min-height:110px}.game.tactile-table .challenge-ribbon{display:none}.game .table-rivers{display:block;inset:65px 0 -55px}.game .table-rivers .river-area{width:23%;height:auto;position:absolute;top:0;bottom:0}.game .table-rivers .river-left{left:0;right:auto}.game .table-rivers .river-right{left:auto;right:0}.game .table-rivers .river-self{width:50%;height:70px;inset:0 auto auto 25%}.river-self .river-heading{flex-basis:18px}.river-self .river-heading .avatar{flex-basis:18px;width:18px;height:18px}.river-self .river-heading>span{align-items:center;gap:8px;display:flex}.river-self .river-heading em{display:none}.game.tactile-table .latest-discard-card{max-width:40%;height:66px;top:1px}.game.tactile-table .latest-discard-card>.tile{width:44px;height:58px}.game.tactile-table .turn-dial{width:50px;top:12px;left:25%}.game.tactile-table .all-rivers{width:66px;top:8px;right:25%}.all-discard-rivers{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.overview-self{grid-area:1/2}.overview-right{grid-area:1/3}.all-discards-inspector{padding:13px}.all-discards-inspector>header{margin-bottom:6px}.all-discards-inspector h2{font-size:18px}.all-discards-inspector nav{padding-bottom:9px}}@container table (width<=380px) and (aspect-ratio<=1){.game.tactile-table .opponents{height:100px}.game .table-rivers{gap:6px}.game .table-rivers .river-area{padding:3px 4px}.game.tactile-table .latest-discard-card{gap:5px;max-width:60%;padding-right:6px}.game.tactile-table .latest-discard-card>.tile{width:36px;height:48px}.discard-focus-copy strong{font-size:18px}.discard-focus-copy b{max-width:55px}.game.tactile-table .all-rivers{width:59px;font-size:9px}.overview-tiles{grid-template-columns:repeat(7,minmax(0,1fr))}}.game.tactile-table .table-money-left,.game.tactile-table .table-money-right{display:none}@container table (aspect-ratio>=1) and (width>=500px){.game.tactile-table .player-dock{grid-template-columns:minmax(0,1fr) minmax(0,min(43cqw,110cqh,490px)) minmax(0,1fr)}}.overview-tiles>div{position:relative}.overview-tiles small{background:#f7f5e9e8;border-radius:2px;margin:0;padding:0 3px;font-size:8px;line-height:12px;position:absolute;bottom:0;left:1px}.overview-latest small{background:#f2ce81;left:auto;right:0}@container table (aspect-ratio<=1){.game .table-rivers{grid-template-rows:minmax(0,1fr) 110px}.overview-river>header{margin-bottom:8px}}@container table (width<=380px) and (aspect-ratio<=1){.game .table-rivers{grid-template-rows:minmax(0,1fr) 86px}.game .game-brand{white-space:nowrap;font-size:17px}}@container table (aspect-ratio>=1) and (width>=500px){.river-self .river-surface{padding-top:3px;padding-bottom:0}.game .table-rivers .river-left,.game .table-rivers .river-right{height:max(65px,100dvh - 259px);bottom:auto}.game .table-rivers .river-self{--self-river-max:21px;flex-direction:row;gap:5px}.river-self .river-heading{border:0;border-right:1px solid #d9d1a82b;flex-direction:column;flex:0 0 38px;justify-content:center;gap:2px;width:38px;padding:0 4px 0 0}.river-self .river-heading>span{flex:initial;text-align:center;display:block}.river-self .river-heading small{font-size:8px}.river-self .river-surface{padding:1px 1px 0}}.landscape-rotated .table-rivers .river-left,.landscape-rotated .table-rivers .river-right{height:max(65px,100dvw - 259px)}@container table (aspect-ratio>=1) and (width>=500px){.river-left .river-surface,.river-right .river-surface{padding-top:2px;padding-bottom:0}}.game.tactile-table .challenge-ribbon{display:none}.game .player-info{color:inherit;text-align:left;max-width:100%}.game .player-info>div{min-width:0}.game .player-info b{text-overflow:ellipsis;white-space:nowrap;max-width:112px;display:block;overflow:hidden}.game.tactile-table .opponent:has(.opponent-melds:not(:empty)) .opponent-hand{display:none}.game .river-heading{border:0;flex:0 0 18px;min-height:18px;padding-bottom:3px}.game .table-rivers .river-area{background:#072b2433;border-color:#bbcfad22}.game .table-rivers .river-current{border-color:#efd38b99}.game .river-self .river-heading{flex-basis:18px;width:auto}.game .river-self .river-heading>span{font-size:9px}.game .latest-discard-card{background:#10392d99;border-color:#0000}.game .chatter-menu{width:min(286px,100cqw - 24px);max-height:calc(100cqh - 80px);position:fixed;bottom:60px;right:12px;overflow:auto}.game .player-dock:has(.chatter-menu,.chatter-bubble){z-index:30}@container table (aspect-ratio<=1){.game.tactile-table .opponents{align-items:flex-start;height:auto;min-height:0;margin:8px auto 12px;position:relative;inset:auto}.game.tactile-table .opponent{max-width:47%}.game.tactile-table .opponent-hand{margin-top:4px}.game.tactile-table .opponent-melds{margin-top:3px;position:static}.game.tactile-table .playmat{min-height:180px}.game .table-rivers{grid-template-rows:minmax(0,1fr) 83px;gap:8px;inset:62px 0 0}.game.tactile-table .latest-discard-card{gap:7px;max-width:calc(100% - 138px);height:55px}.game.tactile-table .latest-discard-card>.tile{width:36px;height:47px}.game .discard-focus-copy strong{font-size:20px}.game .discard-focus-copy small{max-width:105px;font-size:8px}.game .all-rivers>span{display:none}.game.tactile-table .all-rivers{min-height:34px;top:10px}.game.tactile-table .turn-dial{top:10px}.game .hand-info{height:22px}.game .hand-info>span:last-child{display:none}}@container table (aspect-ratio>=1) and (width>=500px){.game.tactile-table .my-melds{top:auto}.game.tactile-table .my-melds .tile{aspect-ratio:192/252;width:clamp(9px,2cqw,18px);height:auto}.game.tactile-table .opponent-hand>span:not(.tile){display:none}.game.tactile-table .opponent-melds{flex-wrap:nowrap;gap:2px}.game.tactile-table .opponent-melds .meld{gap:.5px}.game.tactile-table .opponent-melds .tile.tiny{aspect-ratio:192/252;width:clamp(6px,1.06cqw,10px);height:auto}.game .river-self .river-heading{border-right:0;flex:0 0 32px;width:32px}.game .river-self .river-heading>span{white-space:normal}.game .river-self .river-heading small{font-size:8px}}
