@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}: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{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{scrollbar-width:thin;justify-content:flex-start;gap:5px;max-width:none;min-height:85px;padding:12px 4px 10px;display:flex;overflow:auto hidden}.game .hand-tile-wrap{flex:0 0 44px;width:44px}.game .hand .tile{width:44px;max-width:none;height:58px}.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}.hand-scroll-hint{font-style:normal;display:none}@media (orientation:portrait) and (max-height:700px){.hand-scroll-hint{display:inline}}@media (orientation:landscape) and (max-height:600px){.latest-discard-card>.tile{width:64px;height:84px}.game .hand .tile{aspect-ratio:192/252;width:min(7.14286vw - 6.85714px,52px)}}
