@charset "UTF-8";
:root{--paper:#f5f6f1;--white:#fff;--ink:#21372f;--muted:#76827a;--green:#175547;--jade:#3b806b;--line:#e2e7df;--gold:#bf9752;--soft:#eaf0e8;--serif:"Noto Serif TC","PMingLiU",serif;--sans:"Microsoft JhengHei","PingFang TC",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button,a{transition:background .15s,color .15s,box-shadow .15s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d5ab62;outline-offset:3px}a{color:inherit;text-decoration:none}button{color:inherit}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:1px;margin-bottom:0;line-height:1.4}h2{font-size:21px;line-height:1.5}h3{font-size:17px;margin-bottom:8px}p{line-height:1.8}small{font-size:11px}svg{vertical-align:middle}.icon{width:21px;height:21px;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 22px;border:1px solid transparent;border-radius:8px;font-weight:600;background:var(--soft)}.button:hover:not(:disabled){filter:brightness(.96)}.button.primary{background:var(--green);color:white}.button.ivory{background:#f4ecd5;color:var(--green)}.button.outline{background:transparent;border-color:#bacbc0}.button.outline-light{background:transparent;color:white;border-color:#9bc2b1}.small-button{min-height:36px;padding:7px 14px;font-size:13px}.wide{width:100%}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:none;color:var(--green);padding:9px 6px;font-weight:600}.text-button:hover{color:#398b70}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;background:transparent;border-radius:50%}.icon-button:hover{background:var(--soft)}.muted{color:var(--muted)}.fine-print,.prototype-note{font-size:12px;color:var(--muted);line-height:1.8}.prototype-note{margin-top:24px}.badge{display:inline-block;background:var(--soft);color:#4c6c5a;font-size:11px;padding:4px 10px;border-radius:5px;white-space:nowrap}.badge.gold{background:#f7ecd5;color:#916f2c}.eyebrow{font-size:12px;color:var(--muted);margin-bottom:7px;letter-spacing:1px}.notice{padding:16px 18px;border-radius:8px;background:#f8f1df;color:#7b673e;font-size:13px;line-height:1.8}.app-shell{display:flex;min-height:100vh}.sidebar{width:210px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:32px 22px;z-index:10}.brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:23px;font-weight:bold;letter-spacing:1px;white-space:nowrap}.brand-mark{width:40px;height:46px;background:var(--green);border-radius:7px;color:#f6f0de;display:grid;place-items:center;font-size:27px;box-shadow:inset 0 -4px 0 #103d33}.brand small{display:block;font-family:var(--sans);font-size:9px;letter-spacing:3px;font-weight:400;color:var(--muted);margin-top:2px}.sidebar nav{display:grid;gap:9px;margin-top:52px}.nav-item{display:flex;align-items:center;gap:13px;padding:14px;border:0;background:none;border-radius:8px;color:#6b7d71;font-size:14px;text-align:left}.nav-item.selected{background:#edf3ed;color:var(--green);font-weight:700}.nav-item.selected i{width:5px;height:5px;background:var(--green);border-radius:50%;margin-left:auto}.nav-item:hover{background:var(--paper)}.sidebar-note{margin-top:auto;padding:35px 13px;color:#9ba79e;font-family:var(--serif);font-size:19px;line-height:1.9;letter-spacing:2px}.side-mini-tiles{display:flex;gap:5px;margin-top:18px}.side-mini-tiles b{width:24px;height:32px;border:1px solid #d4dfd4;border-bottom:3px solid #aebfad;border-radius:3px;font-size:14px;text-align:center;background:var(--paper)}.sidebar-bottom{border-top:1px solid var(--line);padding:20px 8px 0;font-size:11px;display:flex;justify-content:space-between;gap:5px;color:#8e9a91}.local-label i,.connection i{display:inline-block;width:6px;height:6px;background:#66a083;border-radius:50%;margin-right:5px}.main-shell{margin-left:210px;flex:1;min-width:0}.topbar{height:85px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;gap:20px}.breadcrumb{font-size:12px;color:#75877a}.breadcrumb span{margin:0 15px;color:#c1cdc1}.header-right{display:flex;align-items:center;gap:12px}.wallet-pill{display:flex;align-items:center;gap:10px;border:1px solid #e7e8dd;border-radius:22px;background:#faf9f3;padding:7px 12px;min-height:36px}.wallet-pill .icon{color:#b59347;width:18px;height:18px}.wallet-pill strong{font-size:13px}.wallet-pill>span{width:17px;line-height:17px;background:#eae6d6;border-radius:50%;color:#8e824e;font-size:13px}.wallet-pill.cards{background:#f3f7f2;border-color:#e1e9df}.wallet-pill.cards .icon{color:#65926c}.wallet-pill.cards>span{background:#dce7d8;color:#68846b}.account{display:flex;gap:9px;align-items:center;margin-left:15px}.avatar,.table-avatar{display:inline-grid;place-items:center;background:#dfebdf;color:#467054;border-radius:50%;width:37px;height:37px;font-family:var(--serif);font-weight:bold}.account strong{font-size:12px;display:block}.account small{color:#97a294;font-size:9px;display:block;letter-spacing:.3px}.demo-strip{font-size:10px;color:#879184;text-align:center;padding:7px 12px;border-bottom:1px solid #eaede4;background:#f7f8f3}.content{max-width:1320px;margin:auto;padding:32px 40px 20px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.connection{font-size:11px;color:#879283}.hero{display:flex;position:relative;min-height:316px;border-radius:14px;background:#175547;overflow:hidden;color:#fff}.hero-copy{position:relative;z-index:2;padding:30px 36px;width:56%}.hero-pill{background:#ffffff12;border:1px solid #ffffff20;padding:5px 10px;border-radius:4px;color:#c5d9b8;font-size:10px;letter-spacing:1px}.hero h2{font-family:var(--serif);font-size:34px;line-height:1.55;letter-spacing:3px;margin:16px 0 12px;font-weight:600}.hero-copy p{color:#b1cebd;font-size:12px;margin-bottom:20px;line-height:1.8}.hero .button{min-height:40px;padding:8px 20px;font-size:12px}.hero-art{position:absolute;right:0;bottom:0;top:0;width:47%;overflow:hidden}.table-rings{position:absolute;width:370px;height:370px;border:1px solid #86a58526;border-radius:50%;top:15px;right:-10px;box-shadow:0 0 0 28px #86a5850b,0 0 0 58px #86a58509,0 0 0 88px #86a58507}.tile-stack{position:absolute;top:75px;left:15px;display:flex;gap:13px;transform:rotate(-12deg);filter:drop-shadow(12px 24px 8px #05251f66)}.tile-stack .tile{width:85px;height:120px;font-size:37px;border-radius:10px;border-bottom:10px solid #c8d0b3;box-shadow:inset -5px 0 #e5e5d5,5px 6px 0 #66836b}.tile-stack .tile:first-child{transform:rotate(-12deg) translateY(18px)}.tile-stack .tile:last-child{transform:rotate(10deg) translateY(-5px)}.tile-stack .tile .honor{font-size:57px}.hero-stamp{position:absolute;right:25px;top:33px;writing-mode:vertical-rl;border:1px solid #d0b57080;color:#d0b570;padding:10px 7px;font-family:var(--serif);font-size:15px;letter-spacing:5px;transform:rotate(5deg)}.art-caption{position:absolute;bottom:30px;right:36px;color:#b7ccad;font-family:var(--serif);letter-spacing:3px;font-size:11px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 0 16px;gap:15px}.section-heading h2{margin:0;font-size:18px}.section-heading>.muted{font-size:11px}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mode-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:11px;text-align:left;padding:24px 23px 0;overflow:hidden}.mode-card:hover{box-shadow:0 6px 20px #2946370c;border-color:#a2b7a1}.mode-card h3{font-family:var(--serif);font-size:23px;letter-spacing:1px;margin:10px 0 8px}.mode-card p{font-size:12px;color:var(--muted);margin-bottom:22px;line-height:1.8}.card-tag{font-size:10px;color:#91a08f}.mode-symbol{width:48px;height:48px;margin-bottom:13px;display:grid;place-items:center;color:#5e816b;background:#f0f4ed;border-radius:50%}.mode-symbol>.icon{width:27px;height:27px}.mode-symbol .tile{width:26px;height:36px}.mode-symbol .tile b.honor{font-size:23px}.mode-card:nth-child(2) .mode-symbol{color:#ab8d55;background:#f8f2e6}.mode-card:nth-child(3) .mode-symbol{color:#6b8295;background:#eef2f5}.mode-bottom{border-top:1px solid #edf0e9;padding:13px 0;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#6e806c}.mode-bottom>span{display:flex;align-items:center;gap:6px}.mode-bottom .icon{width:15px;height:15px}.public-mode{border-color:#c9d8c6;background:#fcfef9}.lobby-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;margin-top:24px}.guild-banner{display:flex;align-items:center;gap:13px;border:1px solid var(--line);background:#fff;padding:18px 22px;border-radius:9px}.guild-avatar{width:44px;height:44px;background:#eef2e6;color:#6f8251;display:grid;place-items:center;border-radius:50%}.guild-banner h3,.note-block h3{font-size:13px;margin:0 0 3px}.guild-banner p{font-size:11px;color:var(--muted);margin:0}.guild-banner .text-button{margin-left:auto;font-size:10px}.guild-banner .text-button .icon{width:14px}.note-block{display:flex;gap:13px;align-items:center;padding:15px 6px}.note-icon{color:#a78e57}.note-block p{font-size:11px;color:var(--muted);margin:0;line-height:1.8}.app-footer{display:flex;justify-content:space-between;margin:10px 40px 0;padding:19px 0;border-top:1px solid #e3e7dd;color:#a2ac9f;font-size:10px}.resume-bar{display:flex;align-items:center;justify-content:space-between;background:#e8eee3;padding:10px 20px;border-radius:8px;margin-bottom:20px}.back{font-size:12px;margin-bottom:15px;padding-left:0}.rules-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(230px,1fr);gap:28px}.rules-form{background:white;border:1px solid var(--line);padding:26px;border-radius:12px}fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}legend{font-weight:700;font-size:14px;margin-bottom:12px;padding:0}.choices,.inputs{display:grid;gap:10px}.two{grid-template-columns:repeat(2,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}.choice{position:relative}.choice input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;margin:0}.choice>span{display:flex;flex-direction:column;padding:13px;border:1px solid var(--line);border-radius:7px;min-height:52px}.choice strong{font-size:13px}.choice small{font-size:10px;color:var(--muted);margin-top:3px}.choice input:checked+span{background:#eef5ed;border-color:#6b9272;color:var(--green)}.choice input:focus-visible+span{outline:3px solid #d5ab62;outline-offset:2px}.choice i{position:absolute;right:9px;top:14px;display:none}.choice .icon{width:14px;height:14px}.choice input:checked~i{display:block}.five .choice span,.four .choice span{padding:13px 7px;text-align:center}.five .choice i,.four .choice i{display:none}.inputs label,.dialog-form label{display:grid;gap:7px;font-size:12px;color:#5d6d62}input:not([type=radio]),select{width:100%;background:white;border:1px solid #d6dfd3;border-radius:7px;padding:11px 12px;min-height:43px;color:var(--ink)}.rules-aside{padding:0 2px}.rules-aside ul{padding-left:20px;font-size:12px;color:#7a877b;line-height:2.2}.rules-aside h3{margin-top:25px;font-size:15px}.mini-table{background:var(--green);color:#edf4e7;border-radius:12px;padding:34px;text-align:center}.mini-table .icon{width:48px;height:48px;color:#bdd0b2}.mini-table h2{font-family:var(--serif);margin:14px 0 0}.rules-aside .button{margin-top:20px}.rule-chips{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}.rule-chips span{padding:5px 10px;background:#edf2e9;border-radius:4px;font-size:11px;color:#60755c}.waiting-panel{padding:38px;background:white;border:1px solid var(--line);border-radius:12px;text-align:center}.waiting-orbit{width:84px;height:84px;display:grid;place-items:center;margin:auto;background:#edf3e7;border-radius:50%;box-shadow:0 0 0 12px #f6f8f2}.waiting-orbit .icon{width:40px;height:40px;color:#72926b}.seats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:660px;margin:38px auto}.seat{display:flex;flex-direction:column;align-items:center;gap:6px}.seat-avatar{width:64px;height:64px;border:1px dashed #c6d3bd;background:#f4f7ee;color:#bdc9b5;border-radius:50%;display:grid;place-items:center;font-size:22px;margin-bottom:8px}.occupied .seat-avatar{border:0;background:#e4edda;color:#5f7b53;font-family:var(--serif)}.seat strong{font-size:13px}.seat small{color:var(--muted)}.waiting-panel>.muted{margin-top:25px;font-size:12px}.waiting-panel>.text-button{display:block;margin:10px auto 0;font-size:12px}.room-code{display:flex;justify-content:center;align-items:center;gap:15px}.room-code>span{font-size:12px;color:var(--muted)}.room-code strong{font-size:30px;letter-spacing:5px;color:var(--green)}.game-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.game-heading h1{font-size:24px}.game-rules{justify-content:flex-start;margin-bottom:15px}.game-table{background:#205f50;border:7px solid #bad0af;border-radius:18px;padding:17px;color:#e8f0df;box-shadow:0 4px 0 #91ac86}.player-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.player-tag{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #ffffff20;border-radius:7px;background:#184f43}.player-tag.active{border-color:#d9bf6e;box-shadow:0 0 0 1px #d9bf6e}.player-wind{width:29px;height:32px;background:#326f5c;border-radius:4px;display:grid;place-items:center;color:#d4deba;font-family:var(--serif);font-size:18px}.player-tag strong{font-size:12px;display:block;white-space:nowrap}.player-tag strong small{color:#b0c7a4;font-size:9px}.player-tag div>span{display:block;font-size:10px;color:#9fc5ac}.river-board{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:20px 160px;min-height:310px;padding:20px 6px}.river{min-height:120px}.river>small{display:block;color:#98bea3;margin-bottom:8px;font-size:10px}.river-tiles{display:flex;flex-wrap:wrap;gap:3px}.river-tiles .claimed{opacity:.35}.tile{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;background:#f9f8ed;color:#17624c;border:1px solid #f4f4f0;border-bottom:4px solid #e5e5e1;border-radius:4px;width:37px;height:52px;flex-shrink:0;line-height:1.05;padding:2px 0 3px;box-shadow:0 2px 1px #0d2e2422;font-family:var(--serif)}.tile>b{font-size:22px;font-weight:700}.tile>span{font-size:17px;font-weight:700}.tile .honor{font-size:32px}.tile.suit-0{color:#a53b37}.tile.suit-1{color:#315d7b}.tile.suit-2{color:#28714b}.tile.small{width:23px;height:32px;border-bottom-width:3px;border-radius:3px}.tile.small>b{font-size:14px}.tile.small>span{font-size:10px}.tile.small .honor{font-size:20px}.tile.back-tile{background:#bd1745;width:23px;height:32px;border-color:#f4f4f0}.table-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;justify-content:center;width:155px;height:155px;border:1px solid #a6c19750;border-radius:15px;background:#1b584a;box-shadow:inset 0 0 0 7px #2d695528}.table-emblem{font-family:var(--serif);font-size:33px;letter-spacing:6px;color:#b7cba0;margin-bottom:4px}.table-center strong{font-size:10px;font-weight:400}.table-center>span:not(.table-emblem){font-size:10px;color:#9fbea0}.countdown{font-size:16px;color:#e7d69c;margin-top:5px}.exposed{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.meld{display:flex;gap:1px}.hand-zone{padding:13px 6px 0;border-top:1px solid #bbd1b530}.hand-caption{display:flex;justify-content:space-between;margin-bottom:12px;font-size:12px}.hand-caption>span{font-size:10px;color:#adc8a9}.hand{display:flex;gap:4px;justify-content:center;overflow:auto;padding:5px 0 6px;min-height:69px}.hand .tile.drawn{margin-left:8px;border-color:#f4f4f0;outline:2px solid #d3b566}.hand button.tile:hover{transform:translateY(-4px);background:#fffce8}.game-actions{display:flex;justify-content:flex-end;gap:8px;margin:8px 0 0;flex-wrap:wrap}.game-actions .button{font-size:12px;min-height:35px;padding:7px 14px}.result-panel{padding:24px;background:white;border:1px solid var(--line);border-radius:12px;margin-top:22px}.result-panel h2{margin:12px 0 6px}.score-list{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.score-list>div{display:grid;gap:4px;background:var(--paper);padding:15px;border-radius:7px}.score-list strong{font-size:20px;color:var(--green)}.score-list small{color:var(--muted)}.store-notice{margin-bottom:25px}.balance-strip{display:flex;gap:60px;padding:0 0 28px}.balance-strip>div{display:flex;gap:15px;align-items:center}.balance-strip .icon{color:#a88c47;width:30px;height:30px}.balance-strip>div>span{font-size:11px;color:var(--muted)}.balance-strip strong{display:block;font-size:25px;line-height:1.5;color:var(--ink)}.balance-strip small{font-size:12px}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.product{border:1px solid var(--line);padding:20px;border-radius:12px;background:white;text-align:center}.product-art{height:110px;display:grid;place-items:center;margin:-5px -5px 20px;border-radius:8px;background:#f9f4e5}.product-art .icon{width:57px;height:57px;color:#b79b49;filter:drop-shadow(3px 5px 0 #e8dbaa)}.product-art.cards{background:#edf4e6}.product-art.cards .icon{color:#789067;filter:drop-shadow(3px 5px 0 #cedfc4)}.product>.muted{font-size:10px}.product h2{font-size:17px;margin:8px 0}.product-amount{font-size:23px;display:block;margin-bottom:15px}.product-amount small{font-size:10px;font-weight:400}.product p{font-size:10px;color:var(--muted)}.product .button{font-size:11px;padding:10px 3px;min-height:38px}.ledger{margin:30px 0}.ledger h2{font-size:18px}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:8px;background:white}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:11px;font-weight:500;background:#f0f4ec;color:#7a8773;padding:13px 18px}td{border-top:1px solid #e9ede4;padding:16px 18px;font-size:12px}td small{display:block;color:#8a9684;font-size:10px;margin-top:4px}.table-avatar{width:28px;height:28px;margin-right:9px;font-size:13px}.player-id{color:#7a8b72;letter-spacing:1px;font-size:11px}.positive{color:#478161}.negative{color:#ac665b}.guild-header{display:flex;align-items:center;gap:20px;background:white;border:1px solid var(--line);padding:26px;border-radius:11px;margin-bottom:25px}.guild-crest{display:grid;place-items:center;width:76px;height:80px;background:#e7eedb;color:#759456;border-radius:15px}.guild-crest .icon{width:44px;height:44px}.guild-header h2{font-family:var(--serif);font-size:26px;margin:8px 0 3px}.guild-header p{font-size:12px;color:var(--muted);margin:0}.guild-header>.button{margin-left:auto}.guild-list{display:grid;gap:14px;max-width:700px;margin:auto}.guild-list article{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border:1px solid var(--line);border-radius:10px;background:white}.guild-list p{font-size:12px;color:var(--muted);margin:0}.empty-state{text-align:center;padding:45px 20px}.empty-state .guild-crest{margin:0 auto 20px}.empty-state p{color:var(--muted)}.empty-hint{padding:28px;text-align:center;border:1px dashed #d5dfcb;border-radius:9px;color:#8e9c86;font-size:12px}.admin-toolbar{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:22px}.admin-toolbar label{max-width:360px;width:100%;font-size:11px;display:grid;gap:7px}.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:#fff}.login-art{display:flex;flex-direction:column;padding:45px 55px;background:#175547;color:#f2f1db;position:relative;overflow:hidden}.login-art .brand-mark{background:#e9edd8;color:var(--green);box-shadow:inset 0 -4px #b3c6a6}.login-title{margin:auto 0;position:relative;padding:55px 0}.subtle-light{color:#b5cfb7;font-size:12px;letter-spacing:3px}.login-title h1{font-family:var(--serif);font-size:44px;line-height:1.75;letter-spacing:4px;margin:15px 0}.login-title p{font-size:14px;color:#b6ceb6}.login-tiles{display:flex;gap:14px;margin:45px 0 20px;transform:rotate(-6deg);padding-left:15px}.login-tiles .tile{width:68px;height:94px;border-radius:8px;border-bottom-width:7px;box-shadow:5px 9px 0 #103e33}.login-tiles .tile>b{font-size:35px}.login-tiles .tile>span{font-size:25px}.login-tiles .tile .honor{font-size:50px}.login-foot{color:#99b8a0;font-size:11px;letter-spacing:3px;margin:0}.login-panel{max-width:480px;width:100%;padding:55px 48px;margin:auto}.login-panel h2{font-family:var(--serif);font-size:30px;margin:15px 0 8px;letter-spacing:2px}.login-panel>.muted{font-size:12px;margin-bottom:25px}.provider-list{display:grid;gap:10px}.provider{display:flex;gap:16px;align-items:center;text-align:left;width:100%;border:1px solid #e2e5df;border-radius:7px;background:white;min-height:46px;padding:10px 16px;font-weight:700}.provider span{font-size:12px;font-weight:500}.provider small{margin-left:auto;font-size:9px;color:#8b9786;font-weight:400}.provider.line{color:#278956}.provider.google{color:#526eac}.provider:disabled{opacity:.65}.login-panel .fine-print{font-size:10px;margin-top:12px}.divider{position:relative;text-align:center;margin:26px 0 20px;border-top:1px solid var(--line);height:1px}.divider span{position:relative;top:-12px;background:white;padding:0 12px;font-size:10px;color:#99a28f}#demo-login{display:grid;gap:12px}#demo-login label{font-size:11px;color:var(--muted)}#demo-login .button{margin-top:4px}#new-player{font-size:11px;margin-top:6px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(20px);background:#183f32;color:white;padding:13px 24px;border-radius:8px;box-shadow:0 8px 30px #0002;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90vw;font-size:13px}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}dialog{border:1px solid #d9e2cf;border-radius:14px;padding:32px;max-width:460px;width:calc(100% - 32px);color:var(--ink);box-shadow:0 20px 90px #133e322a}dialog::backdrop{background:#16392e77}dialog h2{font-size:21px;margin-right:20px}.modal-close{position:absolute;right:10px;top:10px}.dialog-form{display:grid;gap:16px}.dialog-form p{font-size:13px;margin-bottom:0}.dialog-form .fine-print{font-size:11px}.dialog-error{color:#b45141}.dialog-error:empty{display:none}.boot{padding:80px;text-align:center;color:var(--muted)}
@media(min-width:1450px){.hero{min-height:350px}.hero-copy{padding:37px 45px}.hero h2{font-size:39px}.tile-stack{left:35px;top:90px}.tile-stack .tile{width:100px;height:140px}.hero-art{width:46%}.content{padding-top:40px}.mode-card{padding-top:28px}}
@media(max-width:1150px){.sidebar{width:175px;padding:27px 15px}.brand{font-size:20px;gap:8px}.brand-mark{width:33px;height:40px;font-size:24px}.main-shell{margin-left:175px}.topbar{padding:0 24px}.content{padding:26px 24px 15px}.app-footer{margin-left:24px;margin-right:24px}.hero-copy{padding:27px}.hero h2{font-size:29px}.tile-stack{gap:9px;left:2px;top:90px}.tile-stack .tile{width:63px;height:95px}.tile-stack .tile .honor{font-size:45px}.mode-card{padding:20px 18px 0}.product-grid{grid-template-columns:repeat(2,1fr)}.account{margin-left:4px}.river-board{gap:20px 130px}.table-center{width:130px;height:145px}.hand{justify-content:flex-start}.sidebar-bottom{display:grid;gap:3px}}
@media(max-width:850px){.sidebar{position:sticky;top:0;width:76px;min-width:76px;height:100vh;padding:24px 10px}.sidebar .brand{justify-content:center}.sidebar .brand>span:last-child{display:none}.sidebar nav{margin-top:35px}.nav-item{font-size:0;justify-content:center;padding:14px}.nav-item .icon{width:22px;height:22px}.nav-item i{display:none!important}.sidebar-note{display:none}.sidebar-bottom{font-size:0;margin-top:auto;padding:15px 0}.sidebar-bottom small{display:none}.main-shell{margin-left:0}.topbar{height:75px}.breadcrumb{display:none}.header-right{margin-left:auto;gap:9px;width:100%}.account{margin-left:auto}.content{padding:24px 22px}.hero h2{font-size:28px;letter-spacing:2px}.hero-copy{width:60%;padding:28px}.hero-pill{font-size:8px}.hero-art{width:43%}.hero-stamp{right:15px;top:28px}.tile-stack{left:0;top:110px;gap:6px}.tile-stack .tile{width:52px;height:82px;border-bottom-width:7px}.tile-stack .tile .honor{font-size:36px}.mode-grid{gap:12px}.mode-card{padding:17px 13px 0}.mode-card h3{font-size:20px}.mode-card p{font-size:10px}.lobby-bottom{grid-template-columns:1fr}.note-block{display:none}.rules-layout{grid-template-columns:1fr}.rules-aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-table{display:none}.rules-aside h3{display:none}.rules-aside ul{margin:0}.rules-aside>.button{margin:0;grid-column:span 2}.player-tag{padding:8px 5px;gap:5px}.player-wind{width:22px;height:26px}.player-tag strong{font-size:10px}.player-tag div>span{font-size:8px}.login-art{padding:32px}.login-title h1{font-size:34px}.login-panel{padding:40px 30px}.login-tiles{gap:9px}.login-tiles .tile{width:52px;height:76px}.login-title p{font-size:12px}}
@media(max-width:600px){body{font-size:13px}.app-shell{display:block;padding-bottom:66px}.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;height:63px;min-height:0;padding:0;background:#fffffffa;border-top:1px solid var(--line);border-right:0}.sidebar>.brand,.sidebar-bottom{display:none}.sidebar nav{display:flex;justify-content:space-around;margin:0;gap:0;padding:0 7px}.nav-item{font-size:10px;flex:1;gap:3px;padding:7px 5px 6px;flex-direction:column;border-radius:0;min-height:60px}.nav-item.selected{background:transparent}.nav-item .icon{width:21px;height:21px}.topbar{height:69px;padding:0 16px}.wallet-pill{padding:6px 9px;gap:6px;min-height:32px}.wallet-pill strong{font-size:11px}.wallet-pill .icon{width:16px}.wallet-pill>span{display:none}.account .avatar{width:31px;height:31px}.account strong{font-size:10px}.account small{font-size:8px}.account{gap:6px}.header-right{gap:8px}.header-right>.icon-button{width:28px}.demo-strip{font-size:8px;padding:6px 14px;line-height:1.7}.content{padding:23px 16px 16px}.page-heading{margin-bottom:20px;align-items:flex-start}.page-heading h1{font-size:25px}.eyebrow{font-size:10px}.connection{font-size:9px;margin-top:24px}.hero{min-height:285px;border-radius:10px}.hero-copy{width:100%;padding:25px 23px}.hero h2{font-size:28px;margin:16px 0 12px;letter-spacing:1px}.hero-pill{font-size:8px}.hero-copy p{font-size:10px;max-width:60%;margin-bottom:20px}.hero-art{width:43%;top:60px;overflow:visible;pointer-events:none}.hero-stamp,.art-caption{display:none}.tile-stack{left:-5px;top:83px;gap:4px;transform:rotate(-13deg)}.tile-stack .tile{width:39px;height:62px;border-bottom-width:5px;border-radius:5px;box-shadow:inset -3px 0 #e5e5d5,3px 4px 0 #66836b}.tile-stack .tile .honor{font-size:28px}.table-rings{width:200px;height:200px;right:-70px;top:50px}.mode-grid{grid-template-columns:1fr;gap:12px}.mode-card{padding:21px 22px 0}.mode-symbol{float:right;width:55px;height:55px;margin-top:15px}.mode-card h3{font-size:24px;margin-top:8px}.mode-card p{font-size:11px;margin-bottom:16px}.mode-card p br{display:none}.mode-bottom{font-size:11px;padding:12px 0}.card-tag{font-size:9px}.section-heading{margin-top:25px}.section-heading h2{font-size:17px}.section-heading>.muted{font-size:10px}.guild-banner{padding:16px;gap:10px}.guild-banner h3{font-size:12px}.guild-banner .text-button{font-size:9px;white-space:nowrap}.guild-avatar{width:36px;height:36px}.app-footer{margin:0 16px;padding:15px 0;font-size:9px}.prototype-note{font-size:10px;margin-bottom:0}.rules-form{padding:20px 16px}.rules-layout{gap:18px}.choices.two{gap:8px}.choice>span{padding:12px 10px}.choice strong{font-size:12px}.choice small{font-size:9px}.choice i{right:5px}.choice .icon{width:10px}.rules-aside{display:block}.rules-aside ul{margin-bottom:16px;font-size:11px}.rules-aside .button{margin-top:16px}.rules-aside .notice{font-size:11px}legend{font-size:13px}.waiting-panel{padding:24px 14px}.seats{gap:8px;margin:35px 0}.seat-avatar{width:48px;height:48px}.seat strong{font-size:11px}.seat small{font-size:9px}.rule-chips{gap:5px}.rule-chips span{font-size:9px;padding:4px 7px}.room-code{gap:8px}.room-code strong{font-size:25px}.waiting-panel>.muted{font-size:11px}.game-heading h1{font-size:22px}.game-table{padding:10px 7px;border-width:4px;border-radius:12px;margin:0 -7px}.player-row{gap:5px}.player-tag{display:block;text-align:center;padding:7px 2px}.player-wind{display:none}.player-tag strong{font-size:10px;overflow:hidden;max-width:100%;text-overflow:ellipsis}.player-tag strong small{font-size:8px}.player-tag div>span{font-size:8px}.river-board{padding:12px 2px;min-height:315px;gap:100px 12px}.river{min-height:92px}.river-tiles{gap:2px}.tile.small{width:19px;height:28px}.tile.small>b{font-size:11px}.tile.small>span{font-size:9px}.tile.small .honor{font-size:17px}.table-center{width:136px;height:100px;top:50%;border-radius:9px}.table-emblem{font-size:21px;letter-spacing:3px;margin:0}.table-center strong{font-size:9px}.table-center>span:not(.table-emblem){font-size:9px}.countdown{font-size:12px;margin:0}.hand-caption{font-size:10px;gap:8px}.hand-caption>span{font-size:8px}.hand{gap:3px;min-height:65px}.hand .tile{width:33px;height:48px}.hand .tile>b{font-size:20px}.hand .tile>span{font-size:15px}.hand .tile .honor{font-size:28px}.game-actions .button{font-size:11px;padding:7px 10px}.result-panel{padding:18px}.result-panel p{font-size:11px}.score-list{gap:6px;grid-template-columns:repeat(2,1fr)}.score-list>div{padding:12px}.score-list strong{font-size:18px}.product-grid{gap:12px}.product{padding:15px 11px}.product-art{height:90px;margin:0 0 15px}.product-art .icon{width:45px;height:45px}.product h2{font-size:15px}.product-amount{font-size:21px}.product-amount small{display:block;font-size:10px;margin-top:3px}.product p{font-size:9px;min-height:32px}.product .button{font-size:10px;padding:9px 2px}.balance-strip{gap:35px}.balance-strip strong{font-size:22px}.store-notice{font-size:11px}.page-heading>.badge{font-size:9px;margin-top:22px}.guild-header{padding:18px 15px;gap:13px;flex-wrap:wrap}.guild-crest{width:55px;height:60px;border-radius:10px}.guild-crest .icon{width:32px;height:32px}.guild-header h2{font-size:22px}.guild-header p{font-size:11px}.guild-header>.button{font-size:11px;min-height:35px;padding:7px 12px}.section-heading>.button{font-size:10px;padding:7px 8px}.page-heading>.button{font-size:10px;padding:8px 12px;min-height:37px;margin-top:18px}th,td{padding:12px;font-size:11px}.table-avatar{display:none}.admin-toolbar .button{white-space:nowrap;font-size:11px}.admin-toolbar label{font-size:10px}.login-page{display:block}.login-art{min-height:260px;padding:22px 28px}.login-art .brand{font-size:20px}.login-title{padding:24px 0 12px}.subtle-light{font-size:9px}.login-title h1{font-size:28px;line-height:1.5;letter-spacing:2px;margin:9px 0}.login-title p{font-size:10px;margin-bottom:0}.login-tiles{position:absolute;right:0;bottom:10px;margin:0;gap:6px;transform:rotate(-9deg)}.login-tiles .tile{width:29px;height:43px;border-radius:4px;border-bottom-width:4px;box-shadow:3px 5px 0 #103e33}.login-tiles .tile>b{font-size:17px}.login-tiles .tile>span{font-size:13px}.login-tiles .tile .honor{font-size:22px}.login-foot{display:none}.login-panel{padding:30px;max-width:430px}.login-panel h2{font-size:27px}.login-panel .badge{font-size:9px}.login-title p{max-width:60%}.resume-bar{font-size:11px;gap:10px;padding:10px 13px}.resume-bar .button{font-size:10px;white-space:nowrap;padding:7px 10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.sidebar-note{font-size:17px;letter-spacing:1px}
.history-intro{font-size:13px;margin:8px 0 0}
.history-summary,.history-detail{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:24px}
.history-summary h2,.history-detail h2{font-size:18px;margin-bottom:6px}
.history-stat{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:16px;align-items:center;border-top:1px solid var(--line);padding:16px 0}
.history-stat:last-child{padding-bottom:0}.history-stat>strong{font-size:14px}.history-stat>span{font-size:14px}
.history-stat small{font-size:11px;display:block;color:#667569}.history-stat>b{text-align:right;font-size:21px;font-variant-numeric:tabular-nums}
.history-filters{display:flex;align-items:end;gap:16px;margin:24px 0 18px}.history-filters label{display:grid;gap:7px;font-size:12px;min-width:170px}
.history-filters>.text-button{margin-left:auto;white-space:nowrap}
.history-list{border-top:1px solid var(--line)}
.history-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 4px;border-bottom:1px solid var(--line)}
.history-row h2{font-size:17px;margin:8px 0 4px}.history-row p{font-size:12px;color:#667569;margin:0 0 3px}
.history-row small{font-size:11px;color:#667569}.history-row-result{display:grid;justify-items:end;gap:12px;flex-shrink:0}
.history-row-result>strong{font-size:23px;font-variant-numeric:tabular-nums}
.history-pager{display:flex;justify-content:flex-end;gap:12px;margin:20px 0}
.history-detail-heading{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}
.history-detail-heading .button{flex-shrink:0}.history-detail-heading p{margin-bottom:12px}
.history-players{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 22px}
.history-players>div{display:flex;flex-direction:column;padding:16px 12px;gap:8px;border:1px solid var(--line);border-radius:6px;overflow-wrap:anywhere}
.history-players>div.is-self{border-color:var(--jade);background:#f4f8f2}.history-players strong{font-size:13px}
.history-players>div>small{color:#667569;font-size:10px}.history-players b{font-size:20px;font-variant-numeric:tabular-nums}
.history-players b small{font-size:10px}.history-times{display:flex;gap:35px;margin:0;font-size:11px}.history-times dt{color:#667569}.history-times dd{margin:4px 0 0}
.history-hand{border:1px solid var(--line);background:white;border-radius:7px;margin-bottom:10px}
.history-hand summary{display:flex;align-items:center;gap:18px;cursor:pointer;list-style:none;padding:17px 20px;font-size:12px}
.history-hand summary::-webkit-details-marker{display:none}.history-hand summary>b{margin-left:auto;white-space:nowrap}
.history-hand summary:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.history-expand{color:var(--green);font-size:11px;white-space:nowrap}.history-expand::after{content:' ＋'}.history-hand[open] .history-expand::after{content:' −'}
.history-hand-body{padding:0 20px 18px;border-top:1px solid var(--line);font-size:12px}.history-hand-body>p{margin:14px 0}
.history-deltas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.history-deltas span{display:grid;gap:4px;overflow-wrap:anywhere}
.history-hand-body>.fine-print{margin-bottom:0}
.dialog-form .phone-consent{display:grid;grid-template-columns:24px 1fr;align-items:start;gap:9px;font-size:12px;line-height:1.6}.dialog-form .phone-consent input{width:20px;height:20px;min-height:20px;padding:0;margin:2px 0}
@media(max-width:700px){
  .history-summary,.history-detail{padding:18px 15px}.history-stat{grid-template-columns:1fr auto;gap:5px 12px}
  .history-stat>span{grid-row:2;grid-column:1/-1;font-size:12px}.history-stat small{display:inline;font-size:10px}
  .history-stat>b{grid-column:2;grid-row:1;font-size:20px}.history-stat>b small{display:block}
  .history-filters{flex-wrap:wrap;gap:12px}.history-filters label{flex:1;min-width:120px}.history-filters>.text-button{margin-left:0;padding-left:0}
  .history-row{gap:10px;align-items:flex-start}.history-row h2{font-size:15px}.history-row p,.history-row small{font-size:10px}
  .history-row-result>strong{font-size:21px}.history-row-result>strong small{display:block;text-align:right}.history-row-result .button{font-size:11px;padding:7px 10px}
  .history-detail-heading{display:block}.history-players{grid-template-columns:repeat(2,minmax(0,1fr))}
  .history-times{flex-direction:column;gap:12px}.history-hand summary{display:grid;grid-template-columns:1fr auto;gap:7px 12px;padding:14px}
  .history-hand summary>strong{grid-row:2;grid-column:1}.history-hand summary>b{grid-row:1;grid-column:2}.history-expand{grid-column:2;grid-row:2;text-align:right}
  .history-hand-body{padding:0 14px 15px}.history-deltas{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.choices.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.next-hand-notice{margin:20px 0 0;padding:13px 18px;border:1px solid #c7dacb;border-radius:8px;background:#eef5eb;color:#24593f;text-align:center}.next-hand-notice strong{font-size:21px;white-space:nowrap;font-variant-numeric:tabular-nums}

.network-status{min-height:32px;padding:7px 16px;font-size:12px;line-height:18px;background:#eef5ed;color:#285d3a}
.network-status:not([data-state="connected"]){background:#fff1cf;color:#704b0d}
.arena[inert]{cursor:wait}
.lan-invite{padding:18px 22px;background:#f4eedf;border:1px solid #d6c697;border-radius:12px;margin:16px 0;overflow-wrap:anywhere}
.lan-invite p{margin:8px 0}.lan-invite b{letter-spacing:2px}.lan-invite a{color:#24634a}

.table-reference{position:absolute;left:12px;top:10px;z-index:12;max-width:calc(100% - 24px);pointer-events:none;display:flex;flex-direction:column;gap:5px}.match-number{font-variant-numeric:tabular-nums;letter-spacing:.04em;overflow-wrap:anywhere}.table-reference>.match-number{font-size:12px;color:#fff4d5;background:#142e29df;border:1px solid #a18a56;padding:4px 8px;border-radius:6px;align-self:flex-start}.voice-controls{display:flex;gap:5px;align-items:center;flex-wrap:wrap;pointer-events:auto;font-size:12px}.voice-controls button{background:#f9efdc;color:#143a30;border:1px solid #ae9864;border-radius:7px;padding:6px 8px;cursor:pointer}.voice-controls button[hidden]{display:none}.voice-controls span{background:#142e29ef;color:#fff;padding:4px 6px;border-radius:5px}.history-number-search{display:flex;align-items:end;gap:12px;margin:16px 0}.history-number-search label{flex:1}.hand-number{display:block;font-size:11px;overflow-wrap:anywhere}.replay-actions{margin:10px 0;display:flex;gap:8px;flex-wrap:wrap}#replay-player:empty{display:none}#replay-player{padding:16px;background:#f4f0e7;border-radius:12px;margin:15px 0;scroll-margin-top:20px}
.replay-table{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.replay-seat{background:#123b32;color:#fff;border:2px solid #477666;padding:12px;border-radius:12px}.replay-seat.self{border-color:#d6bc77}.replay-seat.current h3{color:#ffe0a1}.replay-tiles{display:flex;flex-wrap:wrap;gap:3px;margin:6px 0}.replay-tile{display:inline-block;background:#fff7e7;color:#183b30;border-radius:3px;padding:5px 3px;font-size:14px}.replay-seat small{display:block}#replay-player input[type=range]{width:100%}#replay-player button,#replay-player select{margin:5px;padding:8px}@media(max-width:600px){.replay-table{grid-template-columns:1fr}}
