@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap";.table-talk{pointer-events:none;z-index:24;position:absolute;inset:0}.talk-bubble{color:#234137;background:#f7faf2;border:1px solid #dce9d3;border-radius:8px;width:190px;padding:8px 11px;animation:.22s ease-out talk-enter;position:absolute;box-shadow:0 3px 12px #102a2833}.talk-bubble:after{content:"";background:#f7faf2;width:8px;height:8px;position:absolute;bottom:-4px;left:20px;transform:rotate(45deg)}.talk-speaker{color:#647d69;align-items:center;gap:5px;font-size:10px;line-height:13px;display:flex}.talk-bubble p{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 0;font-size:13px;line-height:18px;display:-webkit-box;overflow:hidden}.talk-bubble.speaking{border-color:#cfaf56}.talk-bubble.speaking .talk-speaker svg{color:#ae7924;animation:.8s ease-in-out infinite alternate talk-wave}.talk-0{bottom:6px;left:104px}.talk-1{right:18px;top:calc(var(--side-y) - 82px)}.talk-1:after{left:auto;right:20px}.talk-2{width:min(190px,50% - 76px);top:4px;right:calc(50% + 60px)}.talk-2:after{top:18px;left:auto;right:-4px}.talk-3{left:18px;top:calc(var(--side-y) - 82px)}.in-game .table-panel.talk-panel{top:max(8px, env(safe-area-inset-top));bottom:max(8px, env(safe-area-inset-bottom));width:min(420px,100vw - 24px);max-height:min(560px,100dvh - 16px)}.talk-panel .chat-messages{flex:1;min-height:0;max-height:none}.talk-panel .chat-input{flex-shrink:0}.talk-tabs{border-bottom:1px solid #dce3d5;flex:0 0 40px;gap:20px;padding:0 16px;display:flex}.talk-tabs button{color:#718171;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 0 6px;font-size:13px}.talk-tabs button[aria-selected=true]{color:#235f4d;border-color:#235f4d;font-weight:600}.quick-voice-panel{flex:1;min-height:0;padding:6px 12px 10px;overflow:auto}.talk-categories{align-items:center;gap:6px;margin-bottom:6px;display:flex}.talk-categories button{color:#697967;background:0 0;border:0;border-radius:6px;min-height:38px;padding:8px 14px;font-size:12px}.talk-categories button[aria-selected=true]{color:#244d3c;background:#e0e9d8}.talk-categories>span{color:#8b7543;font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.voice-phrases{grid-template-columns:1fr 1fr;gap:8px;display:grid}.voice-phrases button{text-align:left;color:#344e3c;background:#f8faf3;border:1px solid #d7dfcd;border-radius:8px;align-items:center;gap:8px;min-height:64px;padding:10px;font-size:12px;line-height:19px;display:flex}.voice-phrases svg{color:#a37b3d;flex-shrink:0}.voice-phrases button:active{background:#e6eedc;transform:translateY(1px)}.voice-phrases button:disabled{opacity:.48}.voice-replay{vertical-align:middle;color:#41694d;background:0 0;border:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.table-talk.still .talk-bubble,.table-talk.still svg{animation:none}@keyframes talk-enter{0%{opacity:0;transform:translateY(5px)scale(.96)}to{opacity:1;transform:none}}@keyframes talk-wave{0%{opacity:.5}to{opacity:1}}@media (height<=500px){.talk-bubble{width:172px;padding:5px 8px}.talk-bubble p{margin-top:1px;font-size:11px;line-height:15px}.talk-2{width:min(172px,50% - 76px)}.talk-1,.talk-3{top:calc(var(--side-y) + 3px)}.talk-1{right:66px}.talk-3{left:66px}.talk-1:after{top:16px;right:-4px}.talk-3:after{top:16px;left:-4px}.talk-0{width:min(220px,100% - 350px)}.voice-phrases button{min-height:54px;padding:6px 8px;line-height:17px}.talk-tabs{flex-basis:32px}}@media (prefers-reduced-motion:reduce){.talk-bubble,.talk-bubble.speaking .talk-speaker svg{animation:none}}:root{color:#293c35;font-synthesis:none;letter-spacing:0;--green:#285c4f;--muted:#86908a;--border:#e5e9e2;--serif:"Noto Serif SC", "Songti SC", STSong, serif;--shadow:0 12px 42px #243f3910;background:#f5f6f3;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.42}button,a{touch-action:manipulation}button{transition:background .18s,color .18s,box-shadow .18s,transform .18s}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #a1b99c}input:focus,select:focus{outline-offset:1px;outline:2px solid #8cac99}button svg{flex-shrink:0}button{border:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}svg{vertical-align:middle}button{background:0 0}input,select{min-width:0}::selection{background:#c7dbcb}small{font-weight:400}button:not(:disabled):active{transform:translateY(1px)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app{min-height:100dvh}.sidebar{border-right:1px solid var(--border);z-index:20;background:#fbfcf9;flex-direction:column;width:210px;padding:34px 20px 20px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{align-items:center;gap:13px;display:flex}.brand-link{padding:0 15px 37px;display:block}.brand-mark{background:var(--green);border:1px solid #285c4f;border-radius:7px;place-items:center;width:34px;height:44px;display:grid;box-shadow:0 3px #173f34}.brand-mark>span{color:var(--green);font-family:var(--serif);text-align:center;background:#f1f1e8;border-radius:4px;align-self:start;width:28px;margin-top:2px;font-size:24px;line-height:32px}.brand-word{font-family:var(--serif);white-space:nowrap;font-size:24px;font-weight:700;line-height:1.4}.brand-word small{color:#71847a;font-family:Arial,sans-serif;font-size:8px;font-weight:500;line-height:1.6;display:block}.sidebar nav{flex-direction:column;gap:8px;display:flex}.nav-item{color:#7a857d;white-space:nowrap;border-radius:6px;align-items:center;gap:16px;width:100%;padding:15px 17px;font-size:13px;font-weight:500;display:flex}.nav-item:hover{color:#315849;background:#eff3ec}.nav-item.active{color:#2c5b46;background:#e7eee5}.nav-item.active:after{content:"";background:#567b5a;border-radius:50%;width:5px;height:5px;margin-left:auto}.sidebar-bottom{margin-top:auto}.sidebar-bottom .nav-item{padding:13px 17px;font-size:12px}.sidebar-note{border-top:1px solid var(--border);color:#a0a99d;white-space:nowrap;align-items:center;gap:8px;margin:22px 10px 0;padding-top:20px;font-size:10px;display:flex}.topbar{border-bottom:1px solid var(--border);background:#fbfcf980;justify-content:space-between;align-items:center;height:82px;padding:0 42px;display:flex}.breadcrumb{color:#9ba39c;gap:15px;font-size:11px;display:flex}.breadcrumb b{color:#566359;font-weight:500}.topbar-right{align-items:center;gap:17px;display:flex}.online-status{color:#7d8e7d;align-items:center;gap:7px;font-size:10px;display:flex}.online-status i,.online-status:before{background:#77a076;border-radius:50%;width:5px;height:5px}.header-divider{background:var(--border);width:1px;height:22px}.icon-button{color:#7b897e;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.icon-button:hover,.icon-button.active{color:var(--green);background:#e8eee5}.profile-button{align-items:center;gap:10px;max-width:205px;font-size:11px;display:flex}.profile-button>span:not(.avatar){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar{color:#607451;background:#e4ebdc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;position:relative}.avatar svg{width:21px;height:21px}.avatar-1{color:#ab7376;background:#f0e0df}.avatar-2{color:#68838d;background:#dfe8ea}.avatar-3{color:#ac955f;background:#ece5d3}.avatar-4{color:#5a8881;background:#dae9e5}.avatar-5{color:#718362;background:#e1e7da}.avatar-6{color:#8b809d;background:#e7e3ed}.avatar-7{color:#988977;background:#e9e4dd}.avatar.large{width:74px;height:74px}.avatar.large svg{width:43px;height:43px}.bot-dot{color:#5c7769;background:#f2f3ed;border-radius:50%;place-items:center;width:16px;height:16px;display:grid;position:absolute;bottom:0;right:-3px}.bot-dot svg{width:10px;height:10px}.eyebrow{color:#859184;align-items:center;gap:8px;font-size:9px;font-weight:500;display:flex}.welcome-row{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.welcome-row h1{font-family:var(--serif);margin-top:10px;font-size:26px;font-weight:600;line-height:1.55}.title-dot{color:#91a080}.welcome-row p{color:#929b90;margin-top:9px;font-size:11px}.date-stamp{color:#8c987e;align-items:center;gap:14px;display:flex}.date-stamp>span{width:36px;height:36px;font-family:var(--serif);border:1px solid #c4ceba;border-radius:5px;place-items:center;font-size:24px;display:grid;transform:rotate(5deg)}.date-stamp>div{font-size:11px}.date-stamp small{color:#a1a898;margin-top:7px;font-size:9px;display:block}.lounge-banner{background:#e8ebe1 url(/lounge.webp) 100%/cover no-repeat;border-radius:7px;min-height:300px;position:relative;overflow:hidden}.banner-copy{z-index:1;padding:30px 38px;position:relative}.banner-kicker{color:#65735f;align-items:center;gap:7px;font-size:10px;display:flex}.banner-kicker>span{background:#7f9275;width:12px;height:1px}.banner-copy h2{font-family:var(--serif);color:#294634;margin:14px 0 11px;font-size:40px;font-weight:500;line-height:1.3}.banner-copy p{color:#7a8975;margin-bottom:20px;font-size:10px}.btn{white-space:nowrap;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:9px;min-height:41px;padding:0 20px;font-size:11px;font-weight:500;display:inline-flex}.btn.primary{background:var(--green);color:#fff}.btn.primary:hover:not(:disabled){background:#1a4c3e;box-shadow:0 4px 12px #294f4820}.btn.primary>svg:last-child:not(:first-child){margin-left:9px}.btn.secondary{color:#48614d;background:#fbfcf9;border-color:#dce3d9}.btn.secondary:hover:not(:disabled){background:#eaf0e5}.btn.mini{gap:7px;min-height:33px;padding:0 13px;font-size:10px}.btn.full{width:100%;min-height:45px;margin-top:23px}.btn.cream{color:#365447;background:#ece5cf;box-shadow:0 3px #b1ac91}.btn.cream:hover:not(:disabled){background:#fbf3db}.btn.light-outline{color:#e7efde;background:#ffffff06;border-color:#e0eadb60}.banner-note{color:#8c9884;margin-top:11px;font-size:9px;display:block}.banner-seal{color:#657a5d;line-height:1.65;font-family:var(--serif);border:1px solid #8da28277;border-radius:4px;padding:6px 4px;font-size:11px;position:absolute;top:25px;right:24px}.section-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.section-heading h2{font-size:16px;font-weight:600}.section-heading>div{align-items:center;gap:14px;display:flex}.section-heading span{color:#969e92;font-size:10px}.text-button{color:#7a8a75;white-space:nowrap;align-items:center;gap:8px;padding:4px 0;font-size:10px;display:inline-flex}.text-button:hover{color:var(--green)}.modes-section{margin-top:31px}.mode-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.mode-card{text-align:left;color:#364b3c;background:#f9fbf5;border:1px solid #e1e7dc;border-radius:7px;min-height:245px;padding:0;position:relative;overflow:hidden}.mode-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}.mode-card.jade{--art:#edf1e8;--accent:#61785c}.mode-card.coral{--art:#f1e8e1;--accent:#b2846a;background:#fcf9f5;border-color:#e9e2d9}.mode-card.blue{--art:#e8edef;--accent:#748f97;background:#f6fafb;border-color:#dde6e7}.mode-card-top{z-index:2;justify-content:space-between;align-items:center;display:flex;position:absolute;top:17px;left:18px;right:18px}.mode-tag{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent), transparent 65%);background:#ffffff50;border-radius:3px;padding:3px 6px;font-size:9px}.mode-number{color:var(--accent);opacity:.25;font-family:Georgia,serif;font-size:22px}.mode-art{background:var(--art);justify-content:center;align-items:flex-end;gap:5px;height:125px;padding-bottom:13px;display:flex;position:relative}.mode-art:before{content:"";filter:blur(13px);background:#596c5720;border-radius:50%;width:142px;height:28px;position:absolute;bottom:9px}.mode-art .tile{width:42px;height:59px;transform:rotate(-13deg)translateY(-6px);box-shadow:1px 4px #c9cfc0,2px 7px #3b6b56,6px 11px 11px #203b3817}.mode-art .tile:nth-child(2){z-index:1;width:46px;height:65px;transform:rotate(0)translateY(-1px)}.mode-art .tile:nth-child(3){transform:rotate(13deg)translateY(-7px)}.mode-info{padding:16px 19px 14px}.mode-info h3{font-family:var(--serif);font-size:18px;font-weight:600}.mode-info p{color:#93998b;white-space:normal;margin-top:6px;font-size:10px;line-height:1.7}.mode-bottom{color:#909b8c;border-top:1px solid #dce3d980;align-items:center;gap:15px;margin-top:12px;padding-top:12px;font-size:9px;display:flex}.mode-bottom>span{align-items:center;gap:5px;display:flex}.mode-bottom .mode-arrow{color:var(--accent);margin-left:auto}.friend-band{background:#eef2e9;border-block:1px solid #dfe6da;align-items:center;gap:19px;margin-top:28px;padding:22px 23px;display:flex}.friend-icon{color:#7b946e;border:1px solid #d1dccb;border-radius:50%;flex-shrink:0;place-items:center;width:49px;height:49px;display:grid}.friend-band h3{font-family:var(--serif);color:#4e6345;font-size:17px;font-weight:600}.friend-band p{color:#8e9a85;margin-top:6px;font-size:10px;line-height:1.8}.friend-actions{flex-shrink:0;gap:10px;margin-left:auto;display:flex}.bottom-grid{grid-template-columns:minmax(0,1fr) 240px;gap:30px;margin-top:31px;display:grid}.room-preview .section-heading h2{font-size:15px}.quiet-empty{color:#98a18e;border:1px dashed #d7dfd0;border-radius:5px;align-items:center;gap:16px;min-height:95px;padding:19px 20px;display:flex}.quiet-empty div{flex-direction:column;flex:1;gap:8px;display:flex}.quiet-empty b{color:#7c8a73;font-size:11px;font-weight:500}.quiet-empty span{font-size:10px;line-height:1.7}.daily-note{border-left:1px solid #dce3d7;padding-bottom:8px;padding-left:25px;position:relative;overflow:hidden}.daily-note .eyebrow{color:#859576;font-size:10px}.daily-note h3{font-family:var(--serif);margin-top:12px;font-size:18px;font-weight:500;line-height:1.7}.daily-note p{color:#9ba393;margin-top:10px;font-size:10px;line-height:1.9}.note-line{background:#b2bea3;width:34px;height:1px;margin-top:12px;display:block}.footer{color:#a0aa9c;border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;min-height:68px;margin-top:27px;font-size:9px;display:flex}.footer>span,.footer>div{align-items:center;gap:7px;display:flex}.footer i{background:#d0d9ca;width:1px;height:9px;margin:0 5px;display:inline-block}.footer-version{color:#b3bab0;margin-left:15px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin:6px 0 35px;display:flex}.page-heading h1{font-family:var(--serif);margin-top:10px;font-size:32px;font-weight:600}.page-heading p{color:#909b8e;margin-top:10px;font-size:12px}.heading-actions{gap:10px;display:flex}.room-filters{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding-bottom:20px;display:flex}.segmented{background:#eaf0e6;border-radius:6px;gap:2px;padding:4px;display:flex}.segmented button{color:#83917b;white-space:nowrap;border-radius:4px;padding:9px 13px;font-size:11px}.segmented button.active{color:var(--green);background:#fff;box-shadow:0 1px 5px #2349320d}.search-box{border:1px solid var(--border);color:#91a088;background:#fff;border-radius:5px;align-items:center;gap:8px;max-width:220px;margin-left:auto;padding:10px 12px;display:flex}.search-box input{background:0 0;border:0;outline:0;width:100%;font-size:11px}.rooms-list{min-height:420px}.list-heading{color:#99a18f;justify-content:space-between;padding:24px 0 15px;font-size:11px;display:flex}.room-row{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:19px 0;display:flex}.room-mode-icon{width:39px;height:39px;font-family:var(--serif);color:#6c845f;background:#e6eee0;border-radius:5px;flex-shrink:0;place-items:center;font-size:12px;display:grid}.room-mode-icon.coral{color:#a98d70;background:#f0e6de}.room-mode-icon.blue{color:#77949a;background:#e4ecee}.room-row-info{flex-direction:column;flex:1;gap:7px;min-width:0;display:flex}.room-row-info>b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.room-row-info>span{color:#9ba593;align-items:center;gap:7px;font-size:9px;display:flex}.room-row-info i{background:#acb6a4;border-radius:50%;width:3px;height:3px}.room-state{color:#a2a699;align-items:center;gap:5px;font-size:9px;display:flex}.room-state i{background:currentColor;border-radius:50%;width:4px;height:4px}.room-state.available{color:#7d9773}.room-capacity{color:#93a08a;align-items:center;gap:5px;font-size:10px;display:flex}.empty-state{text-align:center;color:#9eac97;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:370px;padding:45px 20px;display:flex}.empty-state h2{font-family:var(--serif);color:#64785b;margin-top:10px;font-size:23px;font-weight:500}.empty-state p{color:#9aa491;max-width:420px;font-size:12px;line-height:1.8}.empty-state .btn{margin-top:7px}.empty-art{gap:4px;padding-bottom:15px;display:flex}.empty-art .tile:first-child{transform:rotate(-12deg)}.empty-art .tile:last-child{transform:rotate(10deg)translateY(7px)}.stats-row{border-block:1px solid var(--border);grid-template-columns:repeat(3,1fr);margin-bottom:22px;padding:24px 0;display:grid}.stats-row>div{border-right:1px solid var(--border);flex-direction:column;gap:13px;padding:0 28px;display:flex}.stats-row>div:first-child{padding-left:0}.stats-row>div:last-child{border-right:0}.stats-row span{color:#8e9e82;font-size:11px}.stats-row strong{font-family:Georgia,serif;font-size:36px;font-weight:400}.stats-row small{color:#95a18a;margin-left:7px;font-family:inherit;font-size:12px}.history-row{border-bottom:1px solid var(--border);align-items:center;gap:17px;padding:22px 0;display:flex}.history-row>div{flex-direction:column;flex:1;gap:8px;display:flex}.history-row b{font-size:12px;font-weight:500}.history-row span{color:#909e85;font-size:10px}.history-symbol{background:#e9ede4;border-radius:50%;place-items:center;width:43px;height:43px;display:grid}.history-symbol.won{color:#b09a5c;background:#f0e8d0}.history-row strong{text-align:right;min-width:60px;font-family:Georgia,serif;font-size:24px}.history-row strong small{color:#9eaa94;margin-top:3px;font:9px sans-serif;display:block}.positive{color:#527e5b}.negative{color:#bf8570}.free-label{color:#97a382;align-items:center;gap:7px;font-size:11px;display:flex}.theme-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.theme-option{text-align:left;background:#eef1e8;border:2px solid #0000;border-radius:7px;padding:4px}.theme-option.chosen{border-color:#6f926c}.theme-option .theme-preview{background:#356451;border-radius:3px;justify-content:center;align-items:center;gap:4px;height:190px;display:flex;position:relative;overflow:hidden}.theme-option.ink .theme-preview{background:#525e61}.theme-option.rose .theme-preview{background:#895b5d}.theme-preview:after{content:"";pointer-events:none;border:1px solid #ffffff20;border-radius:5px;position:absolute;inset:12px}.theme-preview .tile{transform:rotate(-10deg)}.theme-preview .tile-back{transform:rotate(12deg)translateY(13px)}.theme-option>div:last-child{justify-content:space-between;padding:14px 12px;font-size:12px;display:flex}.theme-option>div:last-child>span:last-child:not(:first-child){color:#a2ad95;font-size:10px}.props-heading{margin-top:35px}.soft-label{background:#e9efe2;border-radius:4px;padding:5px 8px}.prop-collection{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.prop-collection>button{text-align:center;border:1px solid var(--border);background:#fcfcf8;border-radius:7px;padding:26px 18px}.prop-collection>button:hover{box-shadow:var(--shadow);background:#fff;transform:translateY(-3px)}.prop-illustration{background:color-mix(in srgb, currentColor 7%, transparent);border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;margin:0 auto 18px;display:flex}.prop-collection h3{font-family:var(--serif);font-size:17px;font-weight:500}.prop-collection p{color:#a1a792;margin-top:8px;font-size:10px}.prop-preview-label{color:#899d7a;justify-content:center;align-items:center;gap:7px;margin-top:22px;font-size:9px;display:flex}.tile{vertical-align:middle;-webkit-user-select:none;user-select:none;color:#7f9d75;transform-origin:bottom;background:linear-gradient(135deg,#fffdf6 0%,#f8f4e7 72%,#eeeadc 100%);border:1px solid #d8d4c2;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:66px;padding:2px;display:inline-flex;position:relative;box-shadow:0 3px #c4cbb6,0 6px #285e48,0 7px 1px #244c40,1px 9px 9px #142a3320}.tile>svg{pointer-events:none;width:100%;height:100%}.tile.tile-back{color:#d5e6cb;background:linear-gradient(125deg,#548674,#376650);border-color:#628a72;box-shadow:0 3px #dedecb,0 5px #b6c1ac,1px 7px 8px #142a3330}.tile-small{border-radius:3px;width:27px;height:37px;padding:1px;box-shadow:0 2px #c8cebd,0 3px #2f674f,1px 4px 3px #16291e22}.tile-small.tile-back{box-shadow:0 2px #dee0cf,0 3px #acc0a7}.tile:not(:disabled)[aria-pressed]:hover{background:#fffef4;transform:translateY(-6px);box-shadow:0 3px #d0d5bc,0 6px #4b8066,0 10px 18px #1b352f40}.tile.selected{background:#fffbe7;border:2px solid #e6c66d;box-shadow:0 3px #d2c995,0 6px #6a875e,0 0 0 2px #ecd47e50;transform:translateY(-14px)!important}.tile:disabled{opacity:1;cursor:default}.dialog{color:#344c3e;background:#fafbf7;border:1px solid #e1e7db;border-radius:8px;width:470px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);padding:0;animation:.22s ease-out dialog-in;overflow-y:auto;box-shadow:0 25px 100px #172d3845}.dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#132c3260}.dialog-wide{width:620px}.dialog-inner{padding:29px}.dialog header{justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px;display:flex}.dialog header .eyebrow{margin-bottom:9px;font-size:8px}.dialog header h2{font-family:var(--serif);font-size:24px;font-weight:600}.dialog header .icon-button{align-self:start;margin-top:-7px;margin-right:-7px}.dialog-description{color:#8c9982;margin-bottom:15px;font-size:12px;line-height:1.9}.field-label{color:#6c805d;margin:19px 0 9px;font-size:11px;display:block}.input{color:#4f6345;background:#fff;border:1px solid #dfe5d8;border-radius:5px;width:100%;height:43px;padding:0 12px;font-size:12px;display:block}.input::placeholder{color:#adb8a2}.mode-select{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.mode-select>button{color:#738767;background:#f0f3eb;border:1px solid #e1e7d8;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:13px;min-height:90px;padding:14px 7px 10px;font-size:10px;display:flex;position:relative}.mode-select>button.selected{color:#385c35;background:#e8eee1;border-color:#6e9267}.mode-select>button>svg{position:absolute;top:5px;right:5px}.mode-select .tile{width:24px;height:34px}.form-two{grid-template-columns:1fr 1fr;gap:15px;display:grid}.form-two select{margin-top:9px}.privacy-select{grid-template-columns:1fr 1fr;gap:10px;display:grid}.privacy-select label{cursor:pointer;border:1px solid #e0e7d8;border-radius:5px;align-items:center;gap:9px;padding:12px 9px;display:flex}.privacy-select input{accent-color:var(--green);flex-shrink:0;width:14px;height:14px}.privacy-select b{font-size:11px;font-weight:500;display:block}.privacy-select small{color:#9aa78c;margin-top:6px;font-size:9px;display:block}.create-summary{color:#99a78e;align-items:center;gap:8px;margin-top:20px;font-size:10px;line-height:1.8;display:flex}.room-code-input{text-align:center;height:55px;font-family:monospace;font-size:22px}.room-code-input::placeholder{font:13px sans-serif}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:25px;display:flex}.profile-preview{font-family:var(--serif);color:#7a8a6b;flex-direction:column;align-items:center;gap:12px;margin-bottom:22px;font-size:14px;display:flex}.avatar-picker{flex-wrap:wrap;justify-content:center;gap:7px;display:flex}.avatar-picker>button{border:2px solid #0000;border-radius:50%;padding:3px}.avatar-picker>button.selected{border-color:#75966b}.form-note{color:#9ca98d;margin-top:12px;font-size:10px;line-height:1.8}.setting-row{border-bottom:1px solid var(--border);color:#899d7b;cursor:pointer;align-items:center;gap:15px;padding:17px 0;display:flex}.setting-row:last-child{border-bottom:0}.setting-row>span{flex:1}.setting-row b{color:#536b44;font-size:12px;font-weight:500;display:block}.setting-row small{color:#9ba98e;margin-top:6px;font-size:10px;display:block}.switch{appearance:none;cursor:pointer;background:#dce3d4;border:0;border-radius:20px;flex-shrink:0;width:37px;height:22px;padding:3px;transition:background .2s}.switch:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;display:block;box-shadow:0 1px 3px #253f2930}.switch:checked{background:#4d7955}.switch:checked:before{transform:translate(15px)}.invite-tiles{justify-content:center;gap:6px;margin:5px 0 32px;display:flex}.invite-tiles .tile:first-child{transform:rotate(-12deg)}.invite-tiles .tile:last-child{transform:rotate(12deg)}.invite-room-name{text-align:center;color:#8fa081;font-size:12px}.invite-code{color:#3d6245;justify-content:center;align-items:center;gap:12px;margin:15px 0;font:30px Georgia,serif;display:flex}.invite-detail{color:#9ca88e;text-align:center;margin-bottom:23px;font-size:10px}.invite-url{text-align:center;color:#7f9170;font-size:10px}.share-button{margin:16px auto 0;display:flex}.rules-tabs{margin-bottom:25px}.rules-tabs button{flex:1}.rules-intro{border-bottom:1px solid var(--border);align-items:center;gap:20px;padding-bottom:22px;display:flex}.rules-intro h3{font-family:var(--serif);margin-bottom:9px;font-size:18px}.rules-intro p,.rule-section p,.rule-section li{color:#889879;font-size:11px;line-height:1.9}.rule-section{padding-top:21px}.rule-section h3{margin-bottom:10px;font-size:13px;font-weight:600}.example-hand{flex-wrap:wrap;gap:7px;margin-top:15px;padding:12px 0;display:flex}.example-hand>span{gap:2px;display:flex}.example-hand .tile{width:24px;height:33px}.rule-section ul{margin:0;padding-left:17px}.rule-section li+li{margin-top:7px}.score-table{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:0 18px;margin-bottom:12px;display:grid}.score-table>div{border-bottom:1px solid var(--border);color:#879679;justify-content:space-between;gap:10px;padding:11px 0;font-size:10px;display:flex}.score-table b{color:#668055;white-space:nowrap;font-weight:500}.rule-footnote{color:#8ba276;background:#edf2e5;border-radius:5px;align-items:start;gap:11px;margin-top:20px;padding:14px;display:flex}.rule-footnote svg{flex-shrink:0;margin-top:3px}.rule-footnote p{font-size:10px;line-height:1.9}.toast{color:#f4f5ec;z-index:10000;background:#263d33;border:1px solid #e4e9dc30;border-radius:6px;align-items:center;gap:20px;max-width:calc(100vw - 28px);padding:13px 14px 13px 20px;font-size:12px;line-height:1.6;display:flex;position:fixed;bottom:35px;left:50%;transform:translate(-50%);box-shadow:0 8px 35px #162c3550}.toast>span{min-width:0}.toast button{color:#b3c5aa;flex-shrink:0;place-items:center;display:grid}.loading-screen{background:#f5f6f0;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100dvh;display:flex}.loading-screen .brand{margin-bottom:8px}.loading-screen p{font-family:var(--serif);color:#94a184;font-size:13px}.loading-line{background:#acbca1;width:50px;height:1px;animation:2s infinite pulse}@keyframes pulse{50%{opacity:.3}}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.game-shell{--felt:#2c6555;--felt-deep:#1f5146;--felt-edge:#396e5a;background:#e9ece4;flex-direction:column;min-height:100dvh;display:flex}.game-shell.theme-ink{--felt:#46575b;--felt-deep:#344447;--felt-edge:#617070}.game-shell.theme-rose{--felt:#84595e;--felt-deep:#633f49;--felt-edge:#956b6d}.game-header{background:#f4f5ef;border-bottom:1px solid #d7dece;flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;height:74px;padding:0 27px;display:flex}.game-header>div{align-items:center;gap:19px;display:flex}.game-header .brand-mark{border-radius:5px;width:29px;height:37px}.game-header .brand-mark>span{width:24px;font-size:20px;line-height:27px}.game-header .brand-word{font-size:21px}.game-header .brand-word small{font-size:7px}.game-title-divider{background:#dce4d3;width:1px;height:28px}.game-title{flex-direction:column;gap:7px;max-width:230px;display:flex}.game-title>b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.game-title>span{color:#9ba58f;align-items:center;gap:8px;font-size:10px;display:flex}.game-title i{background:#aab5a0;border-radius:50%;width:3px;height:3px}.connection{color:#7a9370;align-items:center;gap:5px;font-size:9px;display:flex}.connection.disconnected{color:#bd885e}.room-id-button{color:#8a9a7d;align-items:center;gap:7px;font-family:monospace;font-size:11px;display:flex}.game-header .game-header-actions{gap:15px}.table-surround{flex:1;padding:16px 22px 0;position:relative}.table-felt{background-color:var(--felt);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.09' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");border:9px solid #b6bdaa;border-radius:20px;width:100%;max-width:1800px;height:calc(100dvh - 146px);min-height:655px;margin:auto;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #153f3825,inset 0 2px 45px #163b3133,0 3px #a0a990,0 5px #f1f3e6}.felt-border{pointer-events:none;border:1px solid #bad3aa2a;border-radius:10px;position:absolute;inset:12px}.table-brand{color:#cce0bd30;font-family:var(--serif);pointer-events:none;align-items:center;gap:12px;font-size:19px;display:flex;position:absolute;bottom:25px;right:33px}.table-brand>span{font-family:Arial,sans-serif;font-size:7px}.corner-mark{pointer-events:none;border:1px solid #aec79840;width:32px;height:32px;position:absolute}.corner-mark.top-left{border-bottom:0;border-right:0;border-radius:2px 0 0;top:22px;left:22px}.corner-mark.bottom-right{border-top:0;border-left:0;border-radius:0 0 2px;bottom:22px;right:22px}.seat{z-index:5;color:#d3e4c8;position:absolute}.seat-0{bottom:28px;left:36px}.seat-2{flex-direction:column;align-items:center;display:flex;top:24px;left:50%;transform:translate(-50%)}.seat-1{flex-direction:column;align-items:center;display:flex;top:42%;right:30px;transform:translateY(-50%)}.seat-3{flex-direction:column;align-items:center;display:flex;top:42%;left:30px;transform:translateY(-50%)}.player-info{color:inherit;text-align:left;border-radius:6px;align-items:center;gap:10px;max-width:180px;padding:5px;display:flex}.player-info:hover{background:#ffffff09}.avatar-wrap{border:1px solid #b9d5a644;border-radius:50%;padding:3px;display:inline-flex;position:relative}.player-info .avatar{width:42px;height:42px}.player-info .avatar svg{width:25px;height:25px}.player-text{flex-direction:column;gap:7px;min-width:0;display:flex}.player-text>b{text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:11px;font-weight:400;overflow:hidden}.player-text>b small{color:#afc99e;border:1px solid #b4ce9f44;border-radius:2px;margin-left:5px;padding:1px 3px;font-size:8px}.player-text>span{color:#a5c4a2;font-size:9px}.player-text em{color:#c6dba9;align-items:center;gap:3px;font-style:normal;display:flex}.host-crown{color:#d0bb72;fill:#d0bb7230;position:absolute;top:-9px;left:17px}.seat-wind{color:#c4d3ad;width:17px;height:17px;font-family:var(--serif);background:var(--felt-deep);border:1px solid #7e9e79;border-radius:50%;place-items:center;font-size:9px;display:grid;position:absolute;bottom:-2px;right:-1px}.seat.current .avatar-wrap{border-color:#e0c876;box-shadow:0 0 0 3px #e0c87618}.seat.current .seat-wind{color:#3f633c;background:#d9c482;border-color:#d9c482}.seat-1 .player-info,.seat-3 .player-info{text-align:center;flex-direction:column;gap:7px}.seat-1 .player-text,.seat-3 .player-text{align-items:center}.seat-won .avatar-wrap{border-color:#d6c173}.que-tag{color:#cee0b6;white-space:nowrap;background:#214e4630;border:1px solid #9ab98944;border-radius:3px;padding:3px 4px;font-size:8px;position:absolute;top:13px;right:-23px}.seat-1 .que-tag,.seat-3 .que-tag{top:40px;right:-12px}.seat-0 .que-tag{top:18px;right:-18px}.remove-bot{color:#bdcfb1;background:#133f3620;border:1px solid #bed4a933;border-radius:50%;width:23px;height:23px;position:absolute;top:12px;right:-25px}.remove-bot:hover{color:#fff;background:#123f3450}.empty-seat{text-align:center;color:#a9c79d;flex-direction:column;align-items:center;gap:8px;min-width:84px;padding:7px;display:flex}.empty-seat>span{border:1px dashed #b8d5a15f;border-radius:50%;place-items:center;width:46px;height:46px;margin-bottom:4px;display:grid}.empty-seat b{font-size:10px;font-weight:400}.empty-seat small{opacity:.6;font-size:8px}.change-seat{color:#a8c394;margin-top:4px;padding:5px;font-size:8px}.opponent-hand{gap:2px;margin-top:11px;display:flex}.opponent-hand .tile{width:20px;height:28px}.seat-1 .opponent-hand,.seat-3 .opponent-hand{flex-direction:column;gap:2px;display:flex;position:absolute;top:-16px}.seat-1 .opponent-hand{right:104px}.seat-3 .opponent-hand{left:104px}.seat-1 .opponent-hand .tile,.seat-3 .opponent-hand .tile{border-radius:2px;width:30px;height:14px}.seat-1 .opponent-hand .tile svg,.seat-3 .opponent-hand .tile svg{opacity:.5}.seat-1 .opponent-hand.revealed .tile,.seat-3 .opponent-hand.revealed .tile{width:19px;height:25px}.opponent-melds{gap:5px;display:flex;position:absolute;top:97px;left:50%;transform:translate(-50%)}.opponent-melds>span{gap:1px;display:flex}.opponent-melds .tile{width:19px;height:26px}.seat-1 .opponent-melds,.seat-3 .opponent-melds{top:218px}.waiting-center{text-align:center;color:#d6e5c7;z-index:4;flex-direction:column;align-items:center;width:430px;max-width:70%;display:flex;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.waiting-motif{gap:5px;margin-bottom:37px;display:flex}.waiting-motif .tile{width:51px;height:71px}.waiting-motif .tile:first-child{transform:rotate(-14deg)translateY(4px)}.waiting-motif .tile:last-child{transform:rotate(13deg)translateY(5px)}.waiting-center>.eyebrow{color:#a6c69b;justify-content:center;font-size:8px}.waiting-center h2{font-family:var(--serif);margin-top:15px;font-size:27px;font-weight:400;line-height:1.6}.waiting-center>p{color:#aac69b;margin-top:12px;font-size:11px}.waiting-buttons{gap:13px;margin-top:29px;display:flex}.waiting-buttons .btn{min-height:43px;padding:0 22px}.table-link{color:#afcba0;margin-top:23px;font-size:9px}.table-link:hover{color:#e8f0dc}.waiting-center>.btn{margin-top:20px}.compass{background:var(--felt-deep);color:#b9d0a6;z-index:2;border:1px solid #bfd3a72a;border-radius:9px;width:142px;height:130px;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px #173e3730,inset 0 0 0 4px #bdd2a307}.compass-top{color:#9bb991;justify-content:space-between;padding:13px 15px 7px;font-size:8px;display:flex}.compass-main{justify-content:center;align-items:center;gap:8px;height:59px;padding-top:0;display:flex}.remaining-label{writing-mode:vertical-rl;color:#a7c399;font-size:9px}.compass-main>strong{color:#e2e6ca;font:37px/1 Georgia,serif}.turn-timer{color:#d8c48a;align-self:end;min-width:28px;padding-bottom:15px;font:15px Georgia,serif}.turn-timer small{color:#afbe92;margin-left:2px;font-size:8px}.turn-timer.urgent{color:#f0ad93;animation:.65s infinite pulse}.compass-bottom{color:#9ab98c;border-top:1px solid #abc5961b;justify-content:center;align-items:center;gap:5px;margin:0 13px;padding-top:9px;font-size:8px;display:flex}.compass-bottom i{background:#8faf7c;border-radius:50%;width:4px;height:4px}.direction{color:#7f9f7e;width:19px;height:19px;font:10px var(--serif);background:var(--felt-deep);border:1px solid #9eba8433;border-radius:3px;place-items:center;display:grid;position:absolute}.direction.lit{color:#284e36;background:#d3c483;border-color:#d8ca89}.direction-0{bottom:-10px;left:calc(50% - 10px)}.direction-2{top:-10px;left:calc(50% - 10px)}.direction-1{top:calc(50% - 10px);right:-10px}.direction-3{top:calc(50% - 10px);left:-10px}.river{z-index:2;grid-template-columns:repeat(6,27px);grid-auto-rows:38px;align-content:start;gap:2px;width:172px;display:grid;position:absolute}.river-0{top:calc(44% + 85px);left:50%;transform:translate(-50%)}.river-2{bottom:calc(56% + 84px);left:50%;transform:translate(-50%)rotate(180deg)}.river-1{top:44%;left:calc(50% + 183px);transform:translate(-50%,-50%)rotate(-90deg)}.river-3{top:44%;right:calc(50% + 183px);transform:translate(50%,-50%)rotate(90deg)}.river .tile{width:27px;height:36px}.latest-discard{border-color:#e3c974;animation:.2s ease-out tile-in;box-shadow:0 2px #b8be9c,0 4px #4c7450,0 0 0 2px #e4cd7644}.latest-discard:after{content:"";border:3px solid #0000;border-top-color:#e6cd83;position:absolute;top:-8px;left:calc(50% - 3px)}@keyframes tile-in{0%{opacity:.5;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.self-area{z-index:8;flex-direction:column;align-items:center;width:calc(100% - 350px);max-width:930px;display:flex;position:absolute;bottom:15px;left:50%;transform:translate(-50%)}.turn-status{color:#b5cda7;justify-content:center;align-items:center;gap:14px;max-width:100%;height:38px;margin-bottom:13px;font-size:10px;line-height:1.5;display:flex}.turn-status>span{align-items:center;gap:7px;display:flex}.turn-status>span.your-turn{color:#e4d59a}.turn-status>button{color:#d3e2bd;border-bottom:1px solid #c3d7aa80;padding:3px 0;font-size:9px}.turn-dot{background:#dace96;border-radius:50%;width:5px;height:5px;animation:1.5s infinite pulse;display:inline-block}.self-hand-row{justify-content:center;align-items:flex-end;gap:15px;width:100%;max-width:100%;display:flex}.self-hand{flex:0 auto;justify-content:center;gap:3px;min-width:0;display:flex}.self-hand .tile{width:46px;height:65px}.self-hand .tile.que-blocked{filter:saturate(.35);opacity:.65}.drawn-tile{margin-left:10px}.self-melds{align-items:center;gap:7px;display:flex}.self-melds>span{gap:1px;display:flex}.self-melds .tile{width:29px;height:41px}.waits{align-items:center;gap:3px;max-width:270px;padding:2px 2px 5px;display:flex;overflow-x:auto}.waits>b{font-family:var(--serif);color:#e0cb88;margin-right:3px;font-size:12px;font-weight:400}.waits .tile{width:17px;height:24px}.game-action-bar{justify-content:space-between;align-items:center;gap:10px;width:100%;height:52px;margin-top:12px;display:flex}.hand-tools{align-items:center;gap:9px;min-width:96px;display:flex}.hand-tools .icon-button{color:#b2cba1;width:28px;height:28px}.hand-tools .icon-button.active,.hand-tools .icon-button:hover{color:#d9e8c7;background:#ccddb915}.auto-button{color:#adca9b;border-radius:4px;align-items:center;gap:5px;padding:7px;font-size:9px;display:flex}.auto-button.active{color:#e1eacb;background:#c9dcaf1a}.tile-actions{justify-content:center;align-items:center;gap:7px;min-height:40px;display:flex}.action-button{color:#315343;min-width:49px;height:40px;font-size:23px;font-family:var(--serif);background:#e9e4c9;border:1px solid #f0efd8;border-radius:5px;justify-content:center;align-items:center;gap:5px;padding:0 12px;display:flex;position:relative;box-shadow:0 3px #b9b696}.action-button small{max-width:50px;font:8px/1.4 sans-serif}.action-button.hu-action{color:#5b432c;background:#dfb871;border-color:#e7ca8a;box-shadow:0 3px #aa8546}.action-button.pass-action{color:#c4d9af;box-shadow:none;background:#ffffff0d;border:1px solid #bad0a34a;font-size:15px}.discard-button{color:#3c5740;background:#e6d5a2;border-radius:4px;justify-content:center;align-items:center;gap:20px;min-width:100px;height:38px;padding:0 15px;font-size:12px;display:flex;box-shadow:0 3px #b9a977}.discard-button:disabled{opacity:.35}.hand-count{color:#9fba8d;text-align:right;min-width:96px;font-size:9px}.dingque-panel{z-index:12;background:#f6f5ebf5;border:1px solid #d7dfc5;border-radius:8px;min-width:335px;padding:25px 30px;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);box-shadow:0 15px 45px #173c3855}.dingque-panel .eyebrow{color:#899d74;justify-content:center}.dingque-panel h3{font-family:var(--serif);text-align:center;color:#3b613e;margin:11px 0 22px;font-size:20px;font-weight:500}.dingque-panel>div{justify-content:center;gap:17px;display:flex}.dingque-panel>div>button{background:#fff9;border:1px solid #dce5cd;border-radius:5px;flex-direction:column;align-items:center;gap:17px;padding:10px 12px;display:flex}.dingque-panel>div>button:hover{background:#e9f0dd}.dingque-panel>div>button>span{color:#6c825a;flex-direction:column;gap:6px;font-size:11px;display:flex}.dingque-panel small{color:#a1ad90;font-size:9px}.dingque-panel .tile{width:37px;height:52px}.game-footer{color:#93a386;justify-content:space-between;align-items:center;gap:15px;height:56px;padding:0 32px;font-size:9px;display:flex}.game-footer>div{align-items:center;gap:9px;display:flex}.game-footer .icon-button{color:#8a9c7a}.game-footer .icon-button.active{color:#5d8054;background:#dee7d5}.footer-tool-divider{background:#d1ddc7;width:1px;height:18px;margin:0 5px}.footer-text-button{color:#6f875e;border-radius:4px;align-items:center;gap:7px;padding:8px 10px;font-size:10px;display:flex;position:relative}.footer-text-button.active{background:#dae4d0}.footer-text-button>i{background:#82a170;border-radius:50%;width:4px;height:4px;position:absolute;top:5px;right:4px}.reconnect-banner{color:#8b7950;z-index:30;box-shadow:var(--shadow);background:#eee7c7;border-radius:5px;align-items:center;gap:8px;padding:10px 15px;font-size:11px;display:flex;position:fixed;top:82px;left:50%;transform:translate(-50%)}.table-panel{z-index:25;background:#f8faf3;border:1px solid #dce4cf;border-radius:7px;flex-direction:column;width:315px;max-height:min(480px,100dvh - 160px);display:flex;position:fixed;bottom:64px;right:28px;overflow:hidden;box-shadow:0 12px 50px #15393050}.table-panel>header{border-bottom:1px solid #e2e8d7;justify-content:space-between;align-items:center;padding:16px 17px;display:flex}.table-panel h3{font-family:var(--serif);font-size:17px;font-weight:500}.table-panel header .icon-button{width:24px;height:24px}.chat-messages{flex-direction:column;gap:14px;min-height:160px;max-height:260px;padding:18px;display:flex;overflow-y:auto}.chat-messages>div>b{color:#8a9e77;font-size:9px;font-weight:400}.chat-messages>div>p{overflow-wrap:anywhere;background:#ecf1e4;border-radius:0 6px 6px;max-width:95%;margin-top:5px;padding:8px 11px;font-size:12px;line-height:1.8}.chat-empty{color:#a9b899;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.chat-messages>.chat-empty>p{font:13px var(--serif);background:0 0}.quick-chats{border-top:1px solid #e8eddc;gap:5px;padding:9px 13px;display:flex;overflow-x:auto}.quick-chats button{white-space:nowrap;color:#8ca373;border:1px solid #dce6ce;border-radius:4px;padding:6px 7px;font-size:9px}.chat-input{border-top:1px solid #e4e9d8;gap:8px;padding:12px;display:flex}.chat-input input{color:#6a8353;background:#fff;border:1px solid #e1e8d3;border-radius:4px;flex:1;padding:9px 10px;font-size:11px}.chat-input button{color:#718f59;background:#e5eddb;border-radius:4px;width:32px}.prop-target{color:#94a580;align-items:center;gap:12px;padding:17px;font-size:10px;display:flex}.prop-target select{color:#6d8755;background:#fff;border:1px solid #dde6ce;border-radius:4px;flex:1;padding:8px;font-size:11px}.prop-picker{grid-template-columns:repeat(3,1fr);gap:10px;padding:0 17px;display:grid}.prop-picker>button{background:#ffffff70;border:1px solid #e4ead8;border-radius:5px;flex-direction:column;align-items:center;gap:12px;padding:16px 5px;display:flex}.prop-picker>button:hover{background:#fff}.prop-picker b{color:#8b9e75;font-size:9px;font-weight:400}.props-note{text-align:center;color:#a2b18f;padding:20px 10px;font-size:9px}.event-list{max-height:370px;padding:7px 17px 17px;overflow-y:auto}.event-list>div{border-bottom:1px solid #e6edda;gap:12px;padding:10px 0;display:flex}.event-list span{color:#a8b899;flex-shrink:0;padding-top:2px;font:9px monospace}.event-list p{color:#879b71;font-size:11px;line-height:1.7}.result-status{color:#b3a166;justify-content:center;align-items:center;gap:15px;margin:0 0 22px;display:flex}.result-status>span{font:13px var(--serif);color:#879c6c}.result-player{border-bottom:1px solid #e3e9d5;padding:14px 0}.result-player-main{align-items:center;gap:10px;display:flex}.result-player-main>b{text-overflow:ellipsis;white-space:nowrap;min-width:80px;max-width:130px;font-size:11px;font-weight:500;overflow:hidden}.result-player-main b small{color:#9da98b;margin-left:5px;font-size:8px}.result-player-main>span:not(.avatar){color:#99ab80;flex:1;font-size:9px;line-height:1.5}.result-player-main strong{margin-left:auto;font:22px Georgia,serif}.result-hand{flex-wrap:wrap;gap:6px 2px;margin:12px 0 4px 45px;display:flex}.result-hand>span:not(.tile){gap:1px;margin-right:5px;display:flex}.result-hand .tile{width:23px;height:31px}.winning-tile{border-color:#c9b46d;margin-left:7px}.result-note{color:#a2af8e;text-align:center;margin-top:16px;font-size:9px}.result-player.winner{background:#f1f4e733;border-left:2px solid #c2b471;padding-left:9px}.prop-effect{z-index:22;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.app>.prop-effect{position:fixed}.prop-effect-center{background:#faf8eef2;border:1px solid #d5dfc299;border-radius:50%;place-items:center;width:120px;height:120px;animation:4.8s ease-in-out both effect-main;display:grid;box-shadow:0 12px 40px #244f3833}.prop-effect>p{font-family:var(--serif);color:#657b4e;text-align:center;background:#f5f7e8ef;border:1px solid #dfe6cc;border-radius:5px;max-width:80%;margin-top:22px;padding:12px 22px;font-size:15px;line-height:1.7;animation:4.8s ease-in-out both effect-main}.effect-particles{position:absolute;top:50%;left:50%}.effect-particles>span{opacity:0;animation:particle 3.3s ease-out var(--delay) both;filter:drop-shadow(0 2px 3px #2a432322);position:absolute}@keyframes effect-main{0%{opacity:0;transform:translateY(20px)scale(.85)}12%,80%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-20px)scale(.96)}}@keyframes particle{0%{opacity:0;transform:translate(0)rotate(0)}20%{opacity:1}80%{opacity:.8}to{opacity:0;transform:translate(var(--x), var(--y)) rotate(var(--r))}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}@media (width>=1600px){.main-content{padding-inline:60px}.lounge-banner{background-position:right 52%;min-height:330px}.banner-copy{padding:36px 45px}.banner-copy h2{font-size:46px}.mode-art{height:146px}.mode-card{min-height:264px}.mode-art .tile{width:47px;height:65px}.mode-art .tile:nth-child(2){width:51px;height:71px}.table-felt{min-height:710px}.self-hand .tile{width:54px;height:75px}.self-area{bottom:23px}.seat-0{bottom:42px;left:50px}.river-0{top:calc(44% + 87px)}.river-2{bottom:calc(56% + 87px)}}@media (width<=1200px){.sidebar{width:175px;padding-inline:13px}.brand-link{padding-left:12px}.nav-item{gap:13px;padding-inline:14px;font-size:12px}.sidebar-note{gap:5px;margin-inline:8px;font-size:8px}.main{margin-left:175px}.main-content{padding:30px 28px 0}.topbar{height:72px;padding:0 28px}.welcome-row h1{font-size:24px}.date-stamp{display:none}.lounge-banner{background-position:60%;min-height:278px}.banner-copy{padding:25px 28px}.banner-copy h2{font-size:36px}.mode-grid{gap:13px}.mode-info{padding-inline:14px}.mode-info h3{font-size:17px}.mode-info p{font-size:9px}.mode-bottom{gap:9px}.friend-band{gap:14px;padding:18px}.friend-band h3{font-size:15px}.friend-band p{font-size:9px}.friend-actions .btn{padding:0 13px}.friend-actions{gap:7px}.bottom-grid{grid-template-columns:minmax(0,1fr) 190px;gap:23px}.daily-note{padding-left:20px}.daily-note h3{font-size:17px}.section-heading>div>span{display:none}.game-header{padding-inline:18px}.game-header>div{gap:14px}.game-header .game-header-actions{gap:9px}.table-surround{padding:12px 14px 0}.table-felt{border-width:7px;height:calc(100dvh - 141px);min-height:630px}.self-area{width:calc(100% - 200px)}.self-hand .tile{width:40px;height:56px}.seat-0{bottom:36px;left:22px}.seat-0 .player-info{text-align:center;flex-direction:column}.seat-0 .player-text{align-items:center}.seat-1{right:20px}.seat-3{left:20px}.seat-1 .opponent-hand{right:93px}.seat-3 .opponent-hand{left:93px}.river-1{left:calc(50% + 165px)}.river-3{right:calc(50% + 165px)}.self-melds .tile{width:24px;height:33px}.self-hand-row{gap:10px}.self-area{bottom:16px}.river{grid-template-columns:repeat(6,24px);grid-auto-rows:34px;width:154px}.river .tile{width:24px;height:32px}.room-filters{flex-wrap:wrap}.search-box{max-width:190px}.game-title{max-width:180px}.player-text>b{max-width:85px}.hand-count{min-width:65px}.hand-tools{min-width:85px}.theme-option .theme-preview{height:155px}}@media (width<=1000px){.sidebar{width:85px;padding-inline:11px}.brand-link{padding:0 15px 35px}.brand-link .brand-word{display:none}.nav-item{justify-content:center;padding:15px}.nav-item>span,.nav-item.active:after,.sidebar-note{display:none}.sidebar-bottom .nav-item{padding:15px}.main{margin-left:85px}.main-content{padding-inline:26px}.breadcrumb{font-size:10px}.friend-icon{width:40px;height:40px}.friend-band p{max-width:240px}.friend-actions .btn{padding:0 10px;font-size:10px}.bottom-grid{grid-template-columns:minmax(0,1fr) 175px;gap:20px}.quiet-empty{padding:15px}.quiet-empty>svg{display:none}.quiet-empty span{font-size:9px}.page-heading{flex-wrap:wrap}.game-title-divider,.game-header .brand-word{display:none}.table-felt{min-height:610px}.self-hand .tile{width:36px;height:51px}.self-area{width:calc(100% - 160px)}.seat-1 .opponent-hand{right:73px}.seat-3 .opponent-hand{left:73px}.seat-1 .opponent-hand .tile,.seat-3 .opponent-hand .tile{width:25px;height:13px}.opponent-hand .tile{width:18px;height:25px}.seat-1{right:12px}.seat-3{left:12px}.player-info .avatar{width:34px;height:34px}.player-info .avatar svg{width:22px;height:22px}.player-text>b{max-width:76px;font-size:10px}.player-text>span{font-size:8px}.river-1{left:calc(50% + 150px)}.river-3{right:calc(50% + 150px)}.self-hand{gap:2px}.self-melds .tile{width:21px;height:30px}.self-melds{gap:4px}.game-title>b{font-size:11px}.game-header .connection>span{display:none}.game-header-actions .btn{font-size:9px}.game-header-actions .room-id-button{font-size:10px}.game-footer{padding-inline:23px}.river-0{top:calc(44% + 80px)}.river-2{bottom:calc(56% + 80px)}.compass{width:128px;height:120px}.compass-main{height:51px}.compass-main>strong{font-size:33px}.compass-top,.compass-bottom{font-size:7px}.hand-tools{gap:3px;min-width:72px}.hand-count{min-width:50px}.turn-status{font-size:9px}.table-brand{display:none}}@media (width<=760px){.sidebar{width:67px;padding:24px 7px 18px}.brand-link{padding:0 9px 29px}.brand-mark{width:31px;height:41px}.brand-mark>span{width:25px;font-size:22px;line-height:29px}.nav-item{padding:14px 10px}.sidebar-bottom .nav-item{padding:13px 10px}.main{margin-left:67px}.topbar{height:65px;padding:0 20px}.topbar-right{gap:10px}.online-status,.header-divider{display:none}.profile-button{gap:7px;max-width:150px}.profile-button>span:not(.avatar){font-size:10px}.profile-button>.avatar{width:29px;height:29px}.main-content{padding:24px 20px 0}.welcome-row h1{font-size:21px}.welcome-row .eyebrow{font-size:8px}.welcome-row p{font-size:10px}.welcome-row{margin-bottom:20px}.lounge-banner{background-position:57%;min-height:267px}.banner-copy{padding:23px}.banner-copy h2{font-size:34px}.banner-copy p{font-size:9px}.banner-seal{top:17px;right:14px}.mode-grid{gap:10px}.mode-card-top{top:12px;left:11px;right:11px}.mode-tag{padding:3px 4px;font-size:8px}.mode-number{font-size:18px}.mode-art{height:111px;padding-bottom:15px}.mode-art .tile{width:29px;height:41px}.mode-art .tile:nth-child(2){width:33px;height:46px}.mode-info{padding:14px 11px 12px}.mode-info h3{font-size:15px}.mode-info p{min-height:30px;font-size:9px}.mode-bottom{flex-wrap:wrap;gap:6px;font-size:8px}.mode-bottom>span>svg{width:11px;height:11px}.mode-bottom .mode-arrow{display:none}.mode-card{min-height:236px}.section-heading h2{font-size:14px}.friend-band{flex-wrap:wrap;gap:12px;padding:18px}.friend-band>div:nth-child(2){flex:1}.friend-band p{max-width:none}.friend-actions{width:100%;margin-left:52px}.friend-actions .btn{min-height:36px;padding:0 15px}.bottom-grid{grid-template-columns:1fr}.daily-note{display:none}.section-heading{gap:8px}.footer{flex-wrap:wrap;gap:9px;min-height:62px;margin-top:22px;padding:14px 0;font-size:8px}.footer-version{display:none}.page-heading h1{font-size:27px}.page-heading p{font-size:11px}.heading-actions{width:100%}.heading-actions .btn{font-size:10px}.room-filters .segmented{max-width:100%;overflow-x:auto}.segmented button{padding:8px 10px;font-size:10px}.room-filters .search-box{flex:1;max-width:none;margin-left:0}.room-row{gap:9px}.room-mode-icon{width:33px;height:33px;font-size:10px}.room-state{display:none}.room-row-info>b{font-size:11px}.room-row-info>span{font-size:8px}.room-capacity{font-size:9px}.room-row .btn.mini{gap:4px;padding:0 8px;font-size:9px}.empty-state h2{font-size:20px}.empty-state p{font-size:11px}.stats-row>div{padding-inline:15px}.stats-row span{font-size:10px}.stats-row strong{font-size:30px}.history-row{gap:10px}.history-row .history-symbol{width:33px;height:33px}.history-row b{font-size:10px}.history-row>div>span{font-size:8px}.history-result{display:none}.theme-grid{gap:10px}.theme-option .theme-preview{height:125px}.theme-preview .tile{width:31px;height:43px}.theme-option>div:last-child{padding:12px 5px;font-size:11px}.theme-option>div:last-child>span:last-child:not(:first-child){font-size:9px}.prop-collection{gap:10px}.prop-collection>button{padding:20px 8px}.prop-illustration{width:50px;height:50px;margin-bottom:14px}.prop-illustration svg{width:30px;height:30px}.prop-collection h3{font-size:14px}.prop-collection p{min-height:27px;font-size:9px;line-height:1.6}.free-label{font-size:10px}.table-surround{padding:8px 8px 0}.game-header{gap:9px;height:62px;padding-inline:12px}.game-header>div{gap:8px}.game-header .brand{display:none}.game-header .icon-button{width:28px;height:28px}.game-header .game-header-actions{gap:5px}.game-title{max-width:155px}.game-title>b{font-size:11px}.game-title>span{gap:5px;font-size:8px}.game-header .room-id-button{display:none}.game-header-actions .btn{min-height:30px;padding:0 8px;font-size:9px}.game-header-actions>.icon-button{display:none}.game-header .connection{margin-right:5px}.table-felt{border-width:5px;border-radius:13px;height:calc(100dvh - 124px);min-height:585px}.felt-border{border-radius:7px;inset:7px}.corner-mark{width:19px;height:19px}.corner-mark.top-left{top:15px;left:15px}.corner-mark.bottom-right{bottom:15px;right:15px}.seat-2{top:17px}.seat-2 .player-info{gap:7px}.seat-0{bottom:140px;left:15px}.seat-0 .player-info{text-align:left;flex-direction:row}.seat-0 .player-text{align-items:start}.seat-1{top:40%;right:9px}.seat-3{top:40%;left:9px}.player-info{padding:3px}.player-text>b{max-width:66px;font-size:9px}.player-text>span{font-size:7px}.player-text>b small{padding:0 2px;font-size:7px}.player-info .avatar{width:31px;height:31px}.player-info .avatar svg{width:20px;height:20px}.avatar-wrap{padding:2px}.host-crown{width:12px;height:12px;top:-8px;left:13px}.seat-wind{width:14px;height:14px;font-size:8px;bottom:-3px;right:-3px}.bot-dot{width:13px;height:13px}.bot-dot svg{width:8px;height:8px}.seat-1 .opponent-hand{right:56px}.seat-3 .opponent-hand{left:56px}.seat-1 .opponent-hand,.seat-3 .opponent-hand{gap:2px;top:-10px}.seat-1 .opponent-hand .tile,.seat-3 .opponent-hand .tile{width:19px;height:10px}.opponent-hand .tile{width:15px;height:21px}.opponent-hand{gap:1px;margin-top:7px}.self-area{width:calc(100% - 34px);bottom:8px}.self-hand .tile{border-radius:4px;width:32px;height:45px}.self-hand{gap:2px}.self-hand-row{gap:7px}.self-melds .tile{width:19px;height:27px}.self-melds{gap:3px}.game-action-bar{height:42px;margin-top:10px}.hand-tools{min-width:75px}.hand-count{min-width:75px;font-size:8px}.auto-button{padding:5px;font-size:8px}.hand-tools .icon-button{width:25px;height:25px}.turn-status{gap:9px;height:26px;margin-bottom:12px;font-size:9px}.river{grid-template-columns:repeat(6,19px);grid-auto-rows:27px;gap:2px;width:124px}.river .tile{border-radius:2px;width:19px;height:26px}.river-0{top:calc(42% + 70px)}.river-2{bottom:calc(58% + 70px)}.river-1{top:42%;left:calc(50% + 121px)}.river-3{top:42%;right:calc(50% + 121px)}.compass{border-radius:6px;width:103px;height:99px;top:42%}.compass-top{padding:9px 9px 4px;font-size:6px}.compass-main{gap:6px;height:44px}.compass-main>strong{font-size:27px}.remaining-label{font-size:7px}.turn-timer{min-width:20px;padding-bottom:13px;font-size:12px}.turn-timer small{font-size:6px}.compass-bottom{margin:0 9px;padding-top:7px;font-size:6px}.direction{width:15px;height:15px;font-size:8px}.direction-0{bottom:-8px;left:calc(50% - 7px)}.direction-2{top:-8px;left:calc(50% - 7px)}.direction-1{top:calc(50% - 7px);right:-8px}.direction-3{top:calc(50% - 7px);left:-8px}.game-footer{height:53px;padding:0 13px}.game-footer>div:first-child{font-size:8px}.game-footer>div{gap:4px}.game-footer .icon-button{width:29px;height:29px}.footer-text-button{gap:5px;padding:7px;font-size:9px}.footer-text-button svg{width:16px}.footer-tool-divider{margin:0 3px}.waiting-center{max-width:72%;top:45%}.waiting-center h2{font-size:24px}.waiting-motif .tile{width:40px;height:56px}.waiting-motif{margin-bottom:28px}.waiting-center>.eyebrow{font-size:7px}.waiting-center>p{font-size:10px}.waiting-buttons .btn{min-height:39px;padding:0 15px;font-size:10px}.waiting-buttons{gap:9px;margin-top:22px}.empty-seat{min-width:70px}.empty-seat>span{width:39px;height:39px}.empty-seat b{font-size:9px}.empty-seat small,.change-seat{font-size:7px}.action-button{min-width:40px;height:35px;padding:0 9px;font-size:20px}.action-button small{font-size:7px}.discard-button{gap:15px;min-width:88px;height:34px;font-size:11px}.tile-actions{gap:6px}.que-tag{font-size:7px;top:10px;right:-18px}.opponent-melds{top:85px}.opponent-melds .tile{width:15px;height:21px}.seat-1 .opponent-melds,.seat-3 .opponent-melds{flex-direction:column;gap:6px;top:163px}.seat-1 .opponent-hand.revealed .tile,.seat-3 .opponent-hand.revealed .tile{width:15px;height:20px}.dingque-panel{min-width:280px;padding:20px}.dingque-panel h3{font-size:18px}.dingque-panel>div{gap:10px}.dingque-panel>div>button{padding:8px 10px}.dingque-panel .tile{width:31px;height:44px}.reconnect-banner{white-space:nowrap;max-width:calc(100% - 35px);font-size:10px;top:70px}.table-panel{width:300px;bottom:59px;right:14px}.toast{bottom:65px}.result-player-main>b{min-width:65px;font-size:10px}.result-hand .tile{width:20px;height:28px}.result-hand{margin-left:0}.result-player-main>span:not(.avatar){font-size:8px}.result-player-main strong{font-size:20px}}@media (width<=520px){.sidebar{border-top:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fafcf7f5;border-right:0;flex-direction:row;justify-content:center;width:auto;height:65px;padding:0 6px;position:fixed;inset:auto 0 0}.sidebar>.brand-link,.sidebar-bottom{display:none}.sidebar nav{flex-direction:row;flex:1;justify-content:space-around;gap:2px}.sidebar .nav-item{color:#9ba58f;border-radius:0;flex-direction:column;flex:1;gap:6px;padding:10px 4px 8px;font-size:9px}.sidebar .nav-item svg{width:20px;height:20px}.sidebar .nav-item>span{font-size:9px;display:block}.sidebar .nav-item.active{color:#3d6346;background:#e7eee34d}.main{margin-left:0;padding-bottom:65px}.topbar{height:63px;padding-inline:20px}.breadcrumb{gap:10px;font-size:9px}.breadcrumb>b,.breadcrumb>span{display:none}.breadcrumb:before{content:"友";font:19px var(--serif);color:#4e704f;border:1px solid #92a481;border-radius:4px;place-items:center;width:25px;height:31px;display:grid}.breadcrumb{color:#678061}.topbar-right .icon-button{width:27px;height:27px}.profile-button{max-width:155px}.main-content{padding:24px 18px 0}.welcome-row h1{font-size:21px;line-height:1.6}.welcome-row .eyebrow{font-size:7px}.welcome-row p{font-size:10px}.lounge-banner{background-position:50%;background-size:auto 100%;min-height:274px}.banner-copy{padding:22px 20px}.banner-kicker{font-size:8px}.banner-copy h2{margin-top:17px;margin-bottom:12px;font-size:34px}.banner-copy p{max-width:145px;font-size:8px;line-height:1.7}.banner-copy .btn{gap:6px;min-height:36px;padding:0 13px;font-size:10px}.banner-copy .btn>svg{width:14px;height:14px}.banner-note{font-size:7px}.banner-seal{background:#f3f5e75c;font-size:9px;top:16px;right:13px}.modes-section{margin-top:25px}.section-heading{margin-bottom:15px}.section-heading h2{font-size:14px}.text-button{gap:5px;font-size:9px}.mode-grid{gap:8px}.mode-card-top{top:10px;left:7px;right:7px}.mode-number{display:none}.mode-tag{background:0 0;border-color:#0000;padding:1px 0;font-size:7px}.mode-art{gap:3px;height:94px;padding-bottom:15px}.mode-art .tile{border-radius:3px;width:22px;height:31px;padding:1px;box-shadow:0 2px #c7ceba,0 4px #416e53,3px 7px 8px #32544022}.mode-art .tile:nth-child(2){width:25px;height:35px}.mode-info{padding:11px 9px 12px}.mode-info h3{font-family:var(--serif);white-space:nowrap;font-size:14px;line-height:1.5}.mode-info p{min-height:43px;margin-top:6px;font-size:8px;line-height:1.8}.mode-bottom{gap:5px;margin-top:9px;padding-top:9px}.mode-bottom>span{gap:3px;font-size:7px}.mode-bottom>span:nth-child(2){display:none}.mode-card{min-height:222px}.friend-band{gap:11px;margin-top:22px;padding:17px 14px}.friend-icon{width:35px;height:35px}.friend-icon>svg{width:23px;height:23px}.friend-band h3{font-size:15px}.friend-band p{margin-top:5px;font-size:8px;line-height:1.9}.friend-actions{gap:8px;margin-left:46px}.friend-actions .btn{gap:6px;min-height:33px;padding:0 12px;font-size:9px}.friend-actions .btn svg{width:13px;height:13px}.bottom-grid{margin-top:25px}.room-preview .section-heading h2{font-size:14px}.quiet-empty{gap:10px;min-height:91px;padding:15px 13px}.quiet-empty b{font-size:10px}.quiet-empty span{font-size:9px}.footer{margin-top:22px;font-size:7px}.footer>span,.footer>div{gap:4px}.footer i{margin:0 1px}.footer svg{width:11px;height:11px}.page-heading{margin-top:3px;margin-bottom:26px}.page-heading h1{font-size:27px}.page-heading p{font-size:10px}.page-heading>.eyebrow,.page-heading .eyebrow{font-size:7px}.room-filters .segmented{width:100%}.room-filters .segmented button{flex:1;padding:9px 7px;font-size:9px}.empty-state{min-height:330px;padding-inline:9px}.empty-state h2{font-size:22px}.empty-state p{font-size:10px}.stats-row{padding-block:21px}.stats-row span{font-size:9px}.stats-row strong{font-size:27px}.stats-row small{font-size:10px}.theme-grid{gap:8px}.theme-option .theme-preview{height:114px}.theme-option>div:last-child{padding:11px 4px;font-size:10px}.theme-option>div:last-child>svg{width:14px;height:14px}.theme-option>div:last-child>span:last-child:not(:first-child){font-size:8px}.theme-preview .tile{border-radius:3px;width:27px;height:37px}.prop-collection{grid-template-columns:repeat(2,1fr);gap:12px}.prop-collection>button{padding:22px 10px}.prop-collection h3{font-size:16px}.prop-collection p{min-height:auto;font-size:9px}.dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 35px)}.dialog-inner{padding:24px 21px}.dialog header h2{font-size:22px}.dialog header{margin-bottom:22px}.dialog header .eyebrow{font-size:7px}.input{font-size:11px}.form-two{gap:10px}.form-two .input{padding:0 9px;font-size:10px}.privacy-select{gap:8px}.privacy-select label{gap:6px;padding:11px 5px}.privacy-select b{font-size:10px}.privacy-select small{font-size:8px}.mode-select>button{gap:12px;font-size:9px}.avatar-picker{gap:5px}.avatar-picker .avatar{width:29px;height:29px}.avatar-picker>button{padding:2px}.rules-intro{gap:15px}.rules-intro .tile{width:37px;height:53px}.rules-intro p,.rule-section p,.rule-section li{font-size:10px}.rule-section h3{font-size:12px}.score-table{column-gap:12px}.score-table>div{gap:5px;font-size:9px}.example-hand{gap:5px}.example-hand .tile{width:18px;height:26px}.dialog-description{font-size:11px}.dialog-actions{gap:8px}.dialog-actions .btn{padding:0 13px;font-size:10px}.toast{font-size:11px;bottom:80px}.in-game .toast{bottom:66px}.game-header{height:57px;padding-inline:8px}.game-title{gap:5px;max-width:137px}.game-title>b{font-size:10px}.game-title>span{gap:4px;font-size:7px}.game-header .game-header-actions{gap:3px}.game-header-actions .btn{gap:5px;min-height:28px;padding:0 7px;font-size:8px}.game-header-actions .btn svg{width:13px;height:13px}.game-header .connection{margin-right:3px}.game-header .connection svg{width:12px;height:12px}.table-surround{padding:6px 5px 0}.table-felt{border-width:4px;border-radius:11px;height:calc(100dvh - 115px);min-height:585px}.felt-border{inset:6px}.seat-2{top:17px}.seat-0{bottom:132px;left:13px}.player-info .avatar{width:27px;height:27px}.player-info .avatar svg{width:17px;height:17px}.player-text>b{max-width:60px;font-size:8px}.player-text>span{font-size:7px}.player-text{gap:5px}.seat-1{top:37%;right:7px}.seat-3{top:37%;left:7px}.seat-1 .player-info,.seat-3 .player-info{gap:6px}.seat-1 .opponent-hand{gap:1px;top:8px;right:49px}.seat-3 .opponent-hand{gap:1px;top:8px;left:49px}.seat-1 .opponent-hand .tile,.seat-3 .opponent-hand .tile{width:14px;height:8px;box-shadow:0 1px #d7ddc2,0 2px #8cac87}.opponent-hand .tile{border-radius:2px;width:12px;height:18px}.opponent-hand{gap:1px;margin-top:7px}.seat-1 .opponent-hand .tile svg,.seat-3 .opponent-hand .tile svg{display:none}.seat-1 .opponent-hand.revealed .tile,.seat-3 .opponent-hand.revealed .tile{width:12px;height:17px}.seat-1 .opponent-hand.revealed .tile svg,.seat-3 .opponent-hand.revealed .tile svg{opacity:1;display:block}.river{grid-template-columns:repeat(6,15px);grid-auto-rows:22px;gap:1px;width:95px}.river .tile{width:15px;height:21px;padding:0;box-shadow:0 1px #c3cbb3,0 2px #3a6d4c}.river-0{top:calc(43% + 59px)}.river-2{bottom:calc(57% + 59px)}.river-1{top:43%;left:calc(50% + 95px)}.river-3{top:43%;right:calc(50% + 95px)}.compass{border-radius:5px;width:84px;height:87px;top:43%}.compass-top{padding:9px 8px 3px;font-size:6px}.compass-main{gap:4px;height:37px}.compass-main>strong{font-size:25px}.remaining-label{font-size:6px}.turn-timer{min-width:18px;padding-bottom:11px;font-size:10px}.compass-bottom{margin-inline:8px;padding-top:6px;font-size:6px}.compass-bottom i{width:3px;height:3px}.self-area{width:calc(100% - 22px);bottom:6px}.self-hand .tile{border-radius:3px;width:22px;height:33px;padding:1px;box-shadow:0 2px #c2c9b2,0 4px #234e3c,0 5px #1a4437,1px 7px 6px #163c3a25}.self-hand{gap:2px}.self-hand .tile.selected{border-width:1px;transform:translateY(-10px)!important}.self-hand-row{gap:6px}.self-melds .tile{border-radius:2px;width:15px;height:22px;padding:0}.self-melds{gap:3px}.self-melds>span{gap:1px}.turn-status{gap:7px;height:24px;margin-bottom:12px;font-size:8px}.turn-status>button{font-size:8px}.waits{gap:2px;max-width:125px}.waits .tile{width:12px;height:17px}.waits>b{margin-right:2px;font-size:10px}.game-action-bar{gap:6px;height:45px;margin-top:12px}.hand-tools{gap:2px;min-width:61px}.hand-tools .icon-button{width:22px;height:25px}.hand-tools svg{width:13px;height:13px}.auto-button{gap:3px;padding:5px 3px;font-size:7px}.hand-count{min-width:53px;font-size:7px}.discard-button{gap:9px;min-width:76px;height:33px;padding:0 10px;font-size:10px}.discard-button svg{width:14px}.tile-actions{gap:5px}.action-button{border-radius:4px;min-width:32px;height:32px;padding:0 8px;font-size:19px}.action-button small{max-width:34px;font-size:6px}.action-button.pass-action{font-size:13px}.seat-0 .que-tag{top:10px;right:-16px}.que-tag{padding:2px 3px;font-size:6px}.seat-1 .que-tag,.seat-3 .que-tag{top:-10px;right:0}.seat-2 .que-tag{top:9px;right:-17px}.opponent-melds{gap:3px;top:73px}.opponent-melds .tile{width:12px;height:17px;padding:0}.seat-1 .opponent-melds,.seat-3 .opponent-melds{top:139px}.waiting-center{width:270px;max-width:73%;top:44%}.waiting-motif .tile{width:33px;height:47px}.waiting-motif{margin-bottom:28px}.waiting-center h2{white-space:nowrap;margin-top:13px;font-size:20px}.waiting-center>.eyebrow{font-size:6px}.waiting-center>p{margin-top:12px;font-size:9px}.waiting-buttons{gap:8px;margin-top:23px}.waiting-buttons .btn{gap:6px;min-height:35px;padding:0 11px;font-size:9px}.waiting-buttons .btn svg{width:14px;height:14px}.table-link{gap:5px;margin-top:20px;font-size:8px}.table-link svg{width:12px}.empty-seat{gap:7px;min-width:59px;padding:3px}.empty-seat>span{width:32px;height:32px;margin-bottom:3px}.empty-seat>span svg{width:17px;height:17px}.empty-seat>b{font-size:8px}.empty-seat>small,.change-seat{font-size:6px}.dingque-panel{min-width:251px;padding:18px 17px;top:43%}.dingque-panel>div{gap:9px}.dingque-panel>div>button{gap:13px;padding:9px}.dingque-panel h3{margin-bottom:16px;font-size:17px}.dingque-panel>div>button>span{font-size:10px}.dingque-panel small{font-size:8px}.dingque-panel .tile{width:29px;height:41px}.game-footer{gap:7px;height:52px;padding-inline:11px}.game-footer>div:first-child{gap:5px;font-size:7px}.game-footer>div:first-child>svg{width:11px;height:11px}.game-footer>div{gap:2px}.game-footer .icon-button{width:25px;height:28px}.game-footer .icon-button svg{width:16px;height:16px}.footer-text-button{gap:4px;padding:7px 5px;font-size:8px}.footer-text-button svg{width:14px;height:14px}.footer-tool-divider{height:15px;margin-inline:3px}.table-panel{width:285px;bottom:58px;right:10px}.prop-effect-center{width:94px;height:94px}.prop-effect-center svg{width:48px;height:48px}.prop-effect>p{max-width:87%;padding:10px 15px;font-size:12px}.result-player-main{gap:7px}.result-player-main .avatar{width:27px;height:27px}.result-player-main .avatar svg{width:17px;height:17px}.result-player-main>b{min-width:62px;max-width:82px;font-size:9px}.result-player-main>span:not(.avatar){font-size:7px}.result-player-main strong{font-size:19px}.result-hand .tile{border-radius:2px;width:16px;height:23px;padding:0}.result-hand{gap:2px}.result-hand>span:not(.tile){gap:1px;margin-right:3px}.result-note{font-size:8px}.room-code-input{font-size:24px}.reconnect-banner{padding:8px 10px;font-size:8px;top:64px}.reconnect-banner svg{width:12px;height:12px}}@media (width<=370px){.main-content{padding-inline:14px}.welcome-row h1{font-size:19px}.lounge-banner{background-position:47%}.mode-info{padding-inline:7px}.mode-info h3{font-size:13px}.self-hand .tile{width:20px;height:30px}.self-hand{gap:1px}.river-1{left:calc(50% + 87px)}.river-3{right:calc(50% + 87px)}.seat-1 .opponent-hand{right:44px}.seat-3 .opponent-hand{left:44px}.game-footer>div:first-child>span,.game-header-actions .connection{display:none}.game-title{max-width:135px}.waiting-center h2{font-size:18px}.waiting-buttons .btn{padding-inline:9px;font-size:8px}.self-melds .tile{width:13px;height:19px}.result-hand .tile{width:14px;height:21px}.room-row .room-capacity{display:none}}@media (width>=1201px){.self-hand .tile{width:52px;height:73px}.player-text>b{font-size:12px}.player-text>span{font-size:10px}.game-title>b{font-size:13px}.game-title>span{font-size:11px}.turn-status{font-size:12px}.game-footer{font-size:10px}.footer-text-button{font-size:11px}}@media (width<=520px){.self-hand .tile{width:min(24px,7.14286vw - 4px);height:40px}.self-hand{gap:1px}.game-title>b{font-size:11px}.game-title>span{font-size:8px}.player-text>b,.turn-status{font-size:9px}}@media (width<=760px){.friend-actions{width:calc(100% - 52px)}}@media (width<=520px){.friend-actions{width:calc(100% - 46px)}}.zoom-trigger{color:#c3d7ad;z-index:10;position:absolute;bottom:28px;right:165px}.zoom-trigger:hover{color:#e2edca;background:#d4e2b818}.zoom-hand{grid-template-columns:repeat(7,minmax(0,1fr));justify-items:center;gap:20px 7px;padding:10px 0 19px;display:grid}.zoom-hand .tile{width:100%;max-width:45px;height:64px}.zoom-hand .tile:disabled{opacity:.5}.zoom-hand .tile.selected{transform:translateY(-5px)!important}@media (width<=760px){.zoom-trigger{width:27px;height:27px;bottom:22px;right:88px}}@media (width<=520px){.zoom-trigger{width:25px;height:25px;bottom:22px;right:66px}.zoom-trigger svg{width:14px;height:14px}.zoom-hand{gap:18px 5px}.zoom-hand .tile{max-width:40px;height:58px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.prop-sprite{vertical-align:middle;filter:drop-shadow(0 3px 3px #18382d18);background-image:url(/props.webp);background-repeat:no-repeat;background-size:400% 400%;flex-shrink:0;display:inline-block}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.prop-stage{pointer-events:none;z-index:30;contain:layout paint;border-radius:inherit;position:absolute;inset:0;overflow:hidden}.prop-animation{pointer-events:none;position:absolute;inset:0}.prop-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.prop-flight{opacity:0;pointer-events:none;width:48px;height:48px;position:absolute;top:0;left:0}.phase-impact .prop-flight,.phase-quiet .prop-flight{visibility:hidden}.prop-impact{width:0;height:0;position:absolute}.prop-caption{color:#f1f6e9;white-space:nowrap;background:#244d42df;border-radius:4px;max-width:156px;padding:4px 8px;font-size:10px;font-weight:500;animation:6.4s both prop-caption;position:absolute;transform:translate(-50%)}.phase-quiet .prop-caption{animation:none}.game-shell .phase-impact .prop-caption{clip-path:inset(50%);width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.phase-quiet .prop-canvas{display:none}@keyframes prop-caption{0%,8%{opacity:0}15%,75%{opacity:1}to{opacity:0}}.avatar-wrap .shield-status{color:#387a58;background:#e5f5d9;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:-6px;right:-12px;box-shadow:0 0 0 2px #47765e}.prop-tabs{background:#f0f3f0;border-radius:6px;gap:4px;margin:0 18px 10px;padding:5px;display:flex}.prop-tabs button{color:#76837a;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:1;padding:8px 3px;font-size:12px}.prop-tabs button[aria-selected=true]{color:#245b49;background:#fff;font-weight:650;box-shadow:0 1px 4px #183e3510}.prop-picker{overscroll-behavior:contain;max-height:285px;overflow:auto}.prop-picker>button{gap:2px;min-height:90px;padding:7px 2px}.prop-picker .prop-sprite{width:58px!important;height:58px!important}.prop-picker>button:disabled{opacity:.4}.prop-collection .prop-illustration{background:0 0;width:94px;height:94px}.prop-collection .prop-sprite{width:94px!important;height:94px!important}.prop-preview-stage{z-index:90;background:#386c5d;border:1px solid #628d7d;border-radius:8px;justify-content:space-between;align-items:center;width:min(540px,100vw - 24px);height:225px;padding:0 45px;display:flex;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 15px 60px #172c3650}.preview-seat{color:#3c6552;background:#e9eedd;border:3px solid #c5ddc8;border-radius:50%;place-items:center;width:50px;height:50px;font-size:14px;display:grid}.preview-label{color:#d7e7df9c;letter-spacing:0;font-size:11px}.preview-close{color:#fff;cursor:pointer;z-index:31;background:0 0;border:0;width:32px;height:32px;font-size:24px;position:absolute;top:9px;right:9px}.preview-recipient{background:#f3d2ad;border-color:#d9e4cd;position:relative}.prop-preview-stage .prop-caption{top:12px!important;left:50%!important}.preview-eyes{gap:15px;display:flex;position:absolute;top:16px}.preview-eyes i{background:#425444;border-radius:50%;width:4px;height:6px}.preview-mouth{border-bottom:2px solid #997557;border-radius:0 0 50% 50%;width:14px;height:6px;position:absolute;top:29px}@media (width<=520px){.prop-preview-stage{height:230px;padding:0 28px;bottom:80px}}@media (prefers-reduced-motion:reduce){.prop-canvas{display:none}.prop-caption{animation:none}}.expanded-river{grid-template-columns:repeat(8,minmax(0,1fr));gap:12px 5px;padding:10px 0 15px;display:grid}.expanded-river .tile{width:100%;max-width:40px;height:56px}.river{text-align:initial;cursor:zoom-in;min-height:10px;padding:0}.river:focus-visible{outline-offset:5px;outline:2px solid #e0ce9a}@media (orientation:landscape) and (height<=600px) and (width<=1200px){.game-shell{height:100dvh;min-height:0;overflow:hidden}.game-header{height:42px;padding:0 max(10px, env(safe-area-inset-right)) 0 max(10px, env(safe-area-inset-left));gap:10px}.game-header>div{gap:10px}.game-header .brand,.game-title-divider{display:none}.game-title{flex-direction:row;align-items:center;gap:10px;max-width:380px}.game-title>b{max-width:170px;font-size:11px}.game-title>span{gap:5px;font-size:9px}.game-header .game-header-actions{gap:9px}.game-header .btn{height:30px;min-height:30px;padding:0 9px}.game-header .icon-button{width:32px;height:32px}.connection span{display:none}.room-id-button{font-size:9px}.table-surround{min-height:0;padding:3px max(8px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left));flex:1}.table-felt{border-width:5px;border-radius:12px;height:100%;min-height:0}.felt-border{border-radius:5px;inset:6px}.corner-mark{width:18px;height:18px}.corner-mark.top-left{top:12px;left:12px}.corner-mark.bottom-right{bottom:12px;right:12px}.table-brand{display:none}.game-footer{height:38px;padding:0 max(12px, env(safe-area-inset-right)) 0 max(12px, env(safe-area-inset-left));flex-shrink:0;gap:6px}.game-footer>div{gap:5px}.game-footer .icon-button{width:32px;height:32px}.footer-text-button{height:32px;padding:5px 10px;font-size:10px}.game-footer>div:first-child{font-size:9px}.seat-0{bottom:14px;left:15px}.seat-2{flex-direction:row;gap:10px;top:5px}.seat-1{top:42%;right:15px}.seat-3{top:42%;left:15px}.player-info{gap:5px;max-width:135px;padding:2px}.player-info .avatar{width:29px;height:29px}.player-info .avatar svg{width:20px;height:20px}.avatar-wrap{padding:2px}.player-text{gap:3px}.player-text>b{max-width:80px;font-size:10px}.player-text>span{font-size:8px}.seat-0 .player-text{display:none}.seat-1 .player-info,.seat-3 .player-info{gap:4px}.host-crown{width:11px;top:-7px;left:10px}.seat-wind{width:14px;height:14px;font-size:8px}.que-tag{padding:2px 3px;font-size:7px}.seat-2 .que-tag{top:10px;right:-26px}.seat-1 .que-tag,.seat-3 .que-tag{top:-10px;right:0}.opponent-hand{gap:1px;margin-top:0}.opponent-hand .tile{width:13px;height:19px}.seat-1 .opponent-hand,.seat-3 .opponent-hand{gap:1px;top:-28px}.seat-1 .opponent-hand{right:68px}.seat-3 .opponent-hand{left:68px}.seat-1 .opponent-hand .tile,.seat-3 .opponent-hand .tile{width:22px;height:7px}.seat-1 .opponent-hand.revealed .tile,.seat-3 .opponent-hand.revealed .tile{width:15px;height:15px}.opponent-melds{gap:3px;top:31px;left:76%}.opponent-melds .tile{width:13px;height:18px}.seat-1 .opponent-melds,.seat-3 .opponent-melds{flex-wrap:wrap;max-width:80px;top:78px;left:50%}.compass{border-radius:5px;width:80px;height:64px;top:34%}.compass-top{padding:6px 7px 2px;font-size:6px}.compass-main{gap:4px;height:30px}.compass-main>strong{font-size:24px}.remaining-label{font-size:6px}.turn-timer{min-width:17px;padding-bottom:6px;font-size:10px}.turn-timer small{font-size:6px}.compass-bottom{margin-inline:6px;padding-top:5px;font-size:6px}.direction{width:14px;height:14px;font-size:8px}.direction-0{bottom:-7px}.direction-2{top:-7px}.river{overscroll-behavior:contain;scrollbar-width:none;grid-template-columns:repeat(8,17px);grid-auto-rows:23px;gap:1px;width:143px;max-height:47px;padding:1px;overflow-y:auto}.river .tile{border-radius:2px;width:17px;height:22px;padding:0;box-shadow:0 1px #b7c4a3}.river-0{max-height:24px;top:calc(34% + 45px);left:50%;transform:translate(-50%)}.river-2{max-height:24px;top:46px;bottom:auto;left:50%;transform:translate(-50%)rotate(180deg)}.river-1{max-height:94px;top:34%;left:calc(50% + 143px);transform:translate(-50%,-50%)rotate(-90deg)}.river-3{max-height:94px;top:34%;right:calc(50% + 143px);transform:translate(50%,-50%)rotate(90deg)}.seat-2 .opponent-melds{max-width:180px;position:static;transform:none}.self-area{width:calc(100% - 150px);max-width:740px;bottom:5px}.turn-status{white-space:nowrap;gap:8px;height:20px;margin:0;font-size:9px;position:absolute;bottom:92px}.turn-status>button{font-size:9px}.self-hand-row{gap:8px}.self-hand{gap:3px}.self-hand .tile{border-radius:4px;width:34px;height:47px}.self-hand .tile.selected{transform:translateY(-8px)!important}.drawn-tile{margin-left:6px}.self-melds{gap:4px}.self-melds .tile{width:20px;height:28px}.game-action-bar{gap:5px;height:35px;margin-top:5px}.hand-tools{gap:4px;min-width:80px}.hand-tools .icon-button{width:30px;height:30px}.auto-button{padding:7px;font-size:10px}.hand-count{min-width:80px;font-size:8px}.tile-actions{gap:5px;min-height:32px}.action-button{min-width:40px;height:32px;padding:0 9px;font-size:21px}.action-button small{font-size:7px}.action-button.pass-action{font-size:13px}.discard-button{gap:14px;min-width:94px;height:32px;font-size:12px}.zoom-trigger{width:32px;height:32px;bottom:12px;right:25px}.waits{max-width:150px}.waits .tile{width:13px;height:18px}.waiting-center{width:380px;max-width:65%;top:44%}.waiting-motif{height:43px;margin-bottom:5px}.waiting-motif .tile{width:27px;height:39px}.waiting-center>.eyebrow{display:none}.waiting-center h2{margin:10px 0 6px;font-size:21px}.waiting-center>p{margin-bottom:10px;font-size:10px}.waiting-buttons{gap:8px}.waiting-buttons .btn,.waiting-center>.btn{height:33px;min-height:33px;padding:0 15px;font-size:11px}.waiting-center>.btn{margin-top:8px}.table-link{margin-top:6px;font-size:10px}.empty-seat{gap:4px;min-width:58px;padding:4px}.empty-seat>span{width:32px;height:32px;margin:0}.empty-seat small{display:none}.change-seat{padding:3px}.dingque-panel{min-width:275px;padding:12px 20px;top:37%}.dingque-panel .eyebrow{display:none}.dingque-panel h3{margin:0 0 10px;font-size:17px}.dingque-panel>div{gap:12px}.dingque-panel>div>button{flex-direction:row;gap:7px;padding:7px}.dingque-panel .tile{width:26px;height:36px}.dingque-panel>div>button>span{font-size:10px}.dingque-panel small{font-size:8px}.table-panel{top:46px;right:max(10px, env(safe-area-inset-right));width:305px;max-height:none;bottom:42px}.table-panel>header{padding:8px 14px}.table-panel h3{font-size:16px}.prop-target{margin:0;padding:7px 14px}.prop-target select{padding:5px}.prop-tabs{margin:0 12px 5px;padding:2px}.prop-tabs button{padding:5px}.prop-picker{flex:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;min-height:0;max-height:none;margin:0;padding:2px 12px}.prop-picker>button{min-height:68px;padding:2px}.prop-picker .prop-sprite{width:44px!important;height:44px!important}.prop-picker b{font-size:9px}.props-note{margin:0;padding:7px 10px;font-size:9px}.dialog{max-height:calc(100dvh - 20px)}.dialog-inner{padding:18px 24px}.dialog header{margin-bottom:13px}.dialog header h2{font-size:23px}.dialog header .eyebrow{font-size:9px}.zoom-hand{gap:9px 6px;padding:5px 0 10px}.zoom-hand .tile{max-width:32px;height:44px}.dialog-actions{margin-top:10px;padding-top:10px}.dialog-actions .btn{height:33px;min-height:33px}.reconnect-banner{z-index:50;padding:5px 12px;font-size:10px;position:absolute;top:42px;left:50%;transform:translate(-50%)}.prop-preview-stage{height:195px;bottom:15px}}@media (orientation:landscape) and (height<=420px) and (width<=760px){.game-title>b{display:none}.game-header .game-header-actions{gap:6px}.game-footer>div:first-child{display:none}.game-footer{justify-content:center}.self-hand .tile{width:30px;height:42px}.self-hand{gap:2px}.self-area{width:calc(100% - 125px)}.turn-status{bottom:86px}.seat-1{right:9px}.seat-3{left:9px}.player-text>b{max-width:56px;font-size:9px}.river-1{max-height:70px;left:calc(50% + 117px)}.river-3{max-height:70px;right:calc(50% + 117px)}.seat-1 .opponent-hand{right:54px}.seat-3 .opponent-hand{left:54px}}.app:not(.in-game){background:#f4f6f5}.sidebar{background:#fff;width:180px}.main{margin-left:180px}.main-content{max-width:1180px;padding:30px 38px 18px}.topbar{background:#fff;height:72px;padding:0 38px}.sidebar-note,.footer-version{display:none}.sidebar nav{margin-top:32px}.lobby-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.lobby-heading h1{letter-spacing:0;margin:5px 0 0;font-size:30px;line-height:1.3}.lobby-presence{color:#657773;align-items:center;gap:7px;font-size:12px;display:flex}.lobby-presence i{background:#408673;border-radius:50%;width:6px;height:6px}.lobby-play-layout{grid-template-columns:minmax(220px,.9fr) minmax(360px,1.1fr);align-items:stretch;gap:30px;display:grid}.lobby-still{border-radius:6px;min-height:240px;overflow:hidden}.lobby-still img{object-fit:cover;object-position:68% 50%;width:100%;height:100%;max-height:285px;display:block}.lobby-play-controls{flex-direction:column;justify-content:center;min-width:0;display:flex}.mode-selector{border-bottom:1px solid #d9e1de;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.mode-selector>button{color:#61746e;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:98px;padding:8px 3px 13px;font-size:13px;display:flex;position:relative}.mode-selector>button[aria-selected=true]{color:#235d4f;background:#e8f0ec;border-bottom-color:#287b64}.mode-selector>button:nth-child(2)[aria-selected=true]{color:#a05260;background:#f5ebee;border-bottom-color:#b46674}.mode-selector>button:nth-child(3)[aria-selected=true]{color:#426e88;background:#eaf0f5;border-bottom-color:#547f99}.mode-selector>button>svg{position:absolute;top:8px;right:7px}.selected-mode b{font-size:13px;font-weight:600}.lobby-primary-actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.lobby-primary-actions .btn{border-radius:6px;min-height:48px;font-size:14px}.practice-command{color:#536b63;background:0 0;border:0;justify-content:center;align-items:center;gap:8px;min-height:44px;margin-top:5px;font-size:12px;display:flex}.practice-command>svg:last-child{width:14px;margin-left:5px}.public-rooms-heading{border-top:1px solid #dce3df;justify-content:space-between;align-items:center;margin:34px 0 16px;padding-top:22px;display:flex}.public-rooms-heading h2{margin:0;font-size:18px}.public-rooms-heading>span{color:#75817c;font-size:12px}.room-filters{gap:10px;margin-bottom:12px}.room-filters .segmented button{min-height:38px;font-size:12px}.rooms-list{box-shadow:none;background:0 0;border:0;border-radius:0;min-height:0}.rooms-list .list-heading{display:none}.rooms-list .empty-state{border:1px dashed #d6dfd9;border-radius:6px;min-height:130px;padding:22px 12px}.rooms-list .empty-art{display:none}.rooms-list .empty-state h2{margin:0 0 8px;font-size:16px}.rooms-list .empty-state p{margin:0;font-size:12px}.rooms-list .room-row{background:#fff;border-radius:6px;margin-bottom:6px}.footer{margin-top:24px;padding-top:16px}.sound-levels{border-bottom:1px solid #e0e6e1;padding-bottom:16px}.volume-row{grid-template-columns:90px 1fr 40px;align-items:center;gap:12px;min-height:44px;font-size:13px;display:grid}.volume-row input{accent-color:#337b65;cursor:pointer;width:100%;height:28px}.volume-row output{text-align:right;color:#6c7c73;font-variant-numeric:tabular-nums;font-size:12px}.sound-levels .text-button{min-height:40px;margin-top:5px}@media (width>=540px){.settings-list{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);column-gap:28px;display:grid}.settings-list .sound-levels{border-bottom:0;grid-area:1/1/9;padding:4px 0}.settings-list .setting-row{grid-column:2;gap:10px;min-height:44px;padding:7px 0}.settings-list .setting-row small{margin-top:3px}.settings-list .volume-row{grid-template-columns:76px minmax(0,1fr) 34px;gap:8px}}.portrait-paused{visibility:hidden}.orientation-gate{z-index:110;padding:40px 30px max(30px, env(safe-area-inset-bottom));text-align:center;background:#eff4f0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.orientation-back{left:max(18px, env(safe-area-inset-left));top:max(18px, env(safe-area-inset-top));color:#476158;background:0 0;border:0;align-items:center;gap:8px;min-height:44px;display:flex;position:absolute}.orientation-art{color:#4c8070;width:148px;height:112px;margin-bottom:30px;position:relative}.orientation-art>svg:first-child{width:112px;height:112px;transform:rotate(90deg)}.orientation-art>svg:last-child{color:#b98379;width:32px;height:32px;position:absolute;top:0;right:0}.orientation-gate h1{margin:12px 0;font-size:28px}.orientation-gate p{color:#6a7e74;max-width:300px;margin:0 0 28px;font-size:14px;line-height:1.9}.orientation-gate .btn{border-radius:6px;min-width:210px;min-height:50px}@media (width<=760px),(pointer:coarse) and (width<=1100px){.sidebar{width:100%;height:calc(62px + env(safe-area-inset-bottom));padding:0 10px env(safe-area-inset-bottom);z-index:40;box-shadow:none;background:#fff;border-top:1px solid #e0e6e2;position:fixed;inset:auto 0 0}.sidebar .brand-link{display:none}.sidebar nav{grid-template-columns:repeat(3,1fr);gap:4px;width:100%;height:62px;margin:0;padding:0;display:grid}.sidebar .nav-item{background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;height:100%;margin:0;padding:4px;font-size:11px;display:flex}.sidebar .nav-item:before{display:none}.sidebar .nav-item.active{color:#287b64;background:#f1f7f3}.sidebar .nav-item span{display:inline}.main{padding:0 0 calc(66px + env(safe-area-inset-bottom));margin:0}.topbar{height:calc(62px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;gap:6px}.breadcrumb{display:none}.topbar-right{gap:3px;width:100%}.topbar .online-status,.topbar .header-divider{display:none}.topbar .icon-button{width:44px;height:44px;display:flex}.topbar .profile-button{gap:8px;min-height:44px;margin-left:auto;display:flex}.topbar .profile-button>span{text-overflow:ellipsis;white-space:nowrap;max-width:100px;display:block;overflow:hidden}.main-content{padding:20px 18px 12px}.lobby-heading{gap:8px;margin-bottom:18px}.lobby-heading h1{font-size:26px}.lobby-heading .eyebrow{font-size:9px}.lobby-presence{font-size:10px}.lobby-play-layout{flex-direction:column;gap:14px;display:flex}.lobby-still{height:114px;min-height:0}.lobby-still img{object-position:72% 53%;height:114px}.mode-selector>button{gap:8px;min-height:86px;font-size:12px}.selected-mode{min-height:61px}.public-rooms-heading{margin-top:20px;margin-bottom:12px;padding-top:20px}.room-filters{grid-template-columns:1fr 44px;gap:8px;display:grid}.room-filters .segmented{grid-column:1/-1;width:100%}.room-filters .segmented button{flex:1;min-height:40px;padding:5px;font-size:11px}.room-filters .search-box{width:100%;min-width:0;height:44px}.room-filters .icon-button{width:44px;height:44px}.footer{gap:7px;margin-top:16px;font-size:9px}.page-heading h1{font-size:25px}.volume-row{grid-template-columns:80px 1fr 34px;gap:8px;font-size:12px}.dialog-inner{padding:20px}.dialog .icon-button{min-width:44px;min-height:44px}}@media (orientation:landscape) and (pointer:coarse) and (width<=1100px){.topbar{height:48px}.main-content{padding-top:14px}.lobby-heading{margin-bottom:12px}.lobby-heading h1{font-size:22px}.lobby-play-layout{grid-template-columns:minmax(140px,.7fr) minmax(300px,1.3fr);gap:20px;display:grid}.lobby-still,.lobby-still img{height:215px}.mode-selector>button{gap:5px;min-height:70px;padding-block:3px 8px}.selected-mode{min-height:51px;padding:8px 0}}@media (orientation:landscape) and (height<=600px) and (width<=1200px){.game-header,.game-footer{height:46px}.game-header .icon-button,.game-footer .icon-button{width:44px;height:44px}.game-header-actions>.icon-button{display:inline-flex}.game-header .game-header-actions,.game-header>div{gap:4px}.game-header .btn{height:40px;min-height:40px}.game-title>span{font-size:11px}.game-title>b{font-size:12px}.game-footer>div:first-child{display:none}.game-footer{justify-content:center}.game-footer .footer-text-button{height:44px;font-size:12px}.game-footer>div{gap:6px}.self-hand .tile{width:35px;height:50px}.game-action-bar{height:40px;margin-top:5px}.tile-actions{min-height:40px}.action-button{min-width:44px;height:40px}.discard-button{min-width:104px;height:40px;font-size:14px}.hand-tools .icon-button,.auto-button{min-width:40px;min-height:40px}.turn-status{font-size:11px;bottom:102px}.turn-status>button{font-size:11px}.zoom-trigger{width:44px;height:44px;bottom:9px;right:16px}.player-info{min-width:44px;min-height:44px}.player-info .avatar{width:32px;height:32px}.player-text>b{font-size:11px}.player-text>span{font-size:10px}.waiting-center h2{margin-top:6px;font-size:22px}.waiting-center>p{font-size:12px}.waiting-buttons .btn,.waiting-center>.btn{height:40px;min-height:40px;font-size:12px}.table-panel{width:330px;top:48px;bottom:48px}.table-panel>header{min-height:44px;padding:3px 12px}.table-panel .icon-button{width:40px;height:40px}.prop-target{padding:4px 12px}.prop-target select{min-height:34px}.prop-tabs button{min-height:36px;font-size:11px}.prop-picker b{font-size:11px}.prop-picker{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:60px;overflow-y:auto}.prop-picker>button{min-height:60px}.prop-picker .prop-sprite{width:36px!important;height:36px!important}.dialog{max-height:calc(100dvh - 12px)}.dialog-inner{padding:16px 22px}.dialog .btn{min-height:42px}.reconnect-banner{top:44px}}@media (orientation:landscape) and (height<=420px) and (width<=760px){.self-hand .tile{width:30px;height:44px}.turn-status{bottom:95px}.game-header .game-title>span{font-size:10px}.game-header .btn{padding:0 8px}.player-text>b{font-size:10px}.player-text>span{font-size:9px}.waiting-motif{display:none}.self-area{bottom:3px}}@media (orientation:landscape) and (height<=350px){.turn-status{bottom:91px}.compass{top:29%}.river-0{top:calc(29% + 42px)}.river-1,.river-3{top:29%}.seat-2 .opponent-hand{display:none}.river-2{top:40px}.waiting-center{top:50%}}:root{--ink:#21463e;--green:#246650}button,a,input,select{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}.app:not(.in-game){background:#edf2ef;min-height:100dvh}.app.page-lobby:not(.in-game){background:#dce7e2 url(/room-v2.webp) 50% 56%/cover no-repeat fixed}.main{margin:0;padding:0 0 100px}.main-content{max-width:1080px;margin:auto;padding:36px 30px 24px}.topbar{background:0 0;border:0;gap:12px;height:76px;padding:12px 32px}.topbar>.brand{display:flex}.topbar .brand-mark{color:#fff7dd;background:#245b4b;border-radius:6px;width:36px;height:43px;box-shadow:0 3px #173d33}.topbar .brand-word{font-size:21px}.topbar .brand-word small,.page-lobby .topbar .brand-word{display:none}.topbar-right{gap:8px;width:auto}.topbar .icon-button{color:#21463e;background:#fffaf0d9;border-radius:50%;width:44px;height:44px;display:inline-flex;box-shadow:0 2px #314d4520}.topbar .profile-button{background:#fffaf0e8;border-radius:28px;gap:8px;min-height:44px;padding:3px 12px 3px 3px;box-shadow:0 2px #314d4520}.topbar .profile-button>span{display:block}.topbar .profile-button>span:not(.avatar){text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.header-divider{display:none}.sidebar{inset:auto auto max(14px, env(safe-area-inset-bottom)) 50%;z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f8faf3eb;border:1px solid #fffc;border-radius:8px;width:336px;height:64px;padding:0;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #153d3930,0 3px #b6c6ba}.sidebar .brand-link{display:none}.sidebar nav{grid-template-columns:repeat(3,1fr);gap:4px;width:100%;height:100%;margin:0;padding:0 8px;display:grid}.sidebar .nav-item{color:#66786f;background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:100%;height:100%;margin:0;padding:3px;font-size:11px;display:flex}.sidebar .nav-item:before,.sidebar .nav-item:after{display:none}.sidebar .nav-item>svg{width:26px;height:26px;transition:transform .2s}.sidebar .nav-item span{display:inline}.sidebar .nav-item.active{color:#21624b;background:0 0}.sidebar .nav-item.active>svg{color:#f6f9df;background:#28664f;border-radius:50%;width:42px;height:42px;margin-top:-18px;margin-bottom:1px;padding:7px;box-shadow:0 3px #153f34,inset 0 1px #9ab78b}.page-lobby .main-content{max-width:none;padding:0 20px 28px}.play-lobby{text-align:center;width:min(460px,100%);margin:22px auto 0}.lobby-heading{justify-content:center;margin:0 0 22px}.lobby-heading h1{color:#234a40;text-shadow:0 2px #fff9;margin:0;font-family:Noto Serif SC,Songti SC,serif;font-size:44px;font-weight:700;line-height:1.25}.lobby-invitation{color:#54695c;margin:10px 0 0;font-size:14px}.lobby-play-layout,.lobby-play-controls{display:block}.mode-selector{border:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.mode-selector>button{color:#536557;background:#f9faf1e8;border:1px solid #ffffffd9;border-bottom:3px solid #b8c6b5;border-radius:8px;gap:9px;min-height:94px;padding:10px 4px;font-size:13px;transition:background .18s,transform .18s;box-shadow:0 4px 10px #2b4f4320}.mode-selector>button[aria-selected=true],.mode-selector>button:nth-child(2)[aria-selected=true],.mode-selector>button:nth-child(3)[aria-selected=true]{color:#205743;background:#e5efe0f7;border:1px solid #467559;border-bottom:3px solid #28563f;box-shadow:inset 0 0 0 2px #fff9,0 4px 10px #2b4f4320}.mode-selector .tile{width:25px;height:35px}.selected-mode{min-height:35px;padding:9px 0}.selected-mode p{color:#455b4f;margin:0;font-size:12px}.lobby-primary-actions{gap:10px}.lobby-primary-actions .btn{border-radius:8px;min-height:52px;font-size:16px;font-weight:600}.lobby-primary-actions .primary{color:#fff8df;background:#2c7155;border:1px solid #568966;box-shadow:inset 0 1px #a4c48b,0 4px #174835,0 6px 12px #214a3925}.lobby-primary-actions .secondary{color:#5c4924;background:#f9e7b8;border:1px solid #f9edce;box-shadow:inset 0 1px #fffaf0,0 4px #b4a074,0 6px 12px #214a3925}.lobby-primary-actions .btn:active{transform:translateY(2px)}.practice-command{color:#335c4c;background:#f7faefe8;border-radius:24px;min-height:44px;margin:12px auto 0;padding:0 18px;font-size:13px;box-shadow:0 2px #8eab944d}.friend-tables{color:#2a5644;width:min(460px,100%);margin:18px auto 0}.friend-tables>summary{cursor:pointer;background:#f5f8ecd9;border-radius:6px;align-items:center;gap:8px;min-height:44px;padding:0 15px;font-size:13px;list-style:none;display:flex}.friend-tables>summary::-webkit-details-marker{display:none}.friend-tables>summary>span{color:#698172;align-items:center;gap:7px;margin-left:auto;font-size:11px;display:flex}.friend-tables[open]{background:#f6f8f0;border-radius:6px;padding:0 14px 14px}.friend-tables[open]>summary{background:0 0;padding:0}.friend-tables[open]>summary svg:last-child{transform:rotate(180deg)}.friend-tables .public-rooms-heading{display:none}.friend-tables .room-filters{flex-wrap:wrap;margin-top:10px}.friend-tables .room-row{flex-wrap:wrap;gap:10px;padding:12px;display:flex}.portrait-avatar{background-color:#dce5db;border:2px solid #fffc;box-shadow:inset 0 0 0 1px #24493e30}.avatar-groups{margin:0 0 12px}.avatar-groups button{flex:1;min-height:40px}.avatar-picker{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;padding:4px 2px 10px;display:grid}.avatar-picker button{aspect-ratio:1;border-radius:50%;width:100%;height:auto;padding:3px}.avatar-picker .avatar{aspect-ratio:1;width:100%;height:100%}.profile-preview{margin:0 0 18px}.page-heading h1{font-size:30px}.history-meta{flex-wrap:wrap;gap:4px 10px;display:flex}.history-meta>span:before{content:"·";margin-right:10px}.theme-option,.prop-collection>button{border-radius:8px}.prop-collection>button{background:#f9fbf8;box-shadow:0 3px #d6e2d9}.prop-illustration{background:0 0}.in-game .game-shell{--felt:#28674f;--felt-dark:#1f523f;background:#163c33;height:100dvh;min-height:0;position:relative;overflow:hidden}.in-game .game-shell.theme-rose{--felt:#815166;--felt-dark:#5a384a;background:#392635}.in-game .game-shell.theme-ink{--felt:#455d64;--felt-dark:#31474c;background:#23383d}.in-game .game-header{height:46px;min-height:0;padding:0 max(10px, env(safe-area-inset-right)) 0 max(10px, env(safe-area-inset-left));color:#e8eddf;z-index:15;background:0 0;border:0;position:absolute;inset:0 0 auto}.in-game .game-header>div{gap:8px}.in-game .game-header .brand,.in-game .game-title-divider,.in-game .connection span{display:none}.in-game .game-title{flex-direction:row;align-items:center;gap:14px;display:flex}.in-game .game-title>b{color:#e7eede;font-size:12px}.in-game .game-title>span{color:#c4d7c9;font-size:11px}.in-game .game-header .icon-button{color:#dbe7d8;background:0 0;width:44px;height:44px}.in-game .game-header .btn{color:#e3e9d8;background:#ffffff0a;border:1px solid #ffffff21;height:40px;min-height:40px}.in-game .connection{color:#abcbb9}.in-game .table-surround{inset:46px max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));min-height:0;padding:0;position:absolute}.in-game .table-felt{background-color:var(--felt);background-image:repeating-linear-gradient(0deg,#ffffff02 0 1px,#0000 1px 3px);border:1px solid #adc7a04d;border-radius:8px;width:100%;height:100%;min-height:0;box-shadow:inset 0 0 70px #082c2733}.in-game .felt-border{border:1px solid #c7d8b51c;border-radius:4px;inset:7px}.in-game .corner-mark,.in-game .table-brand{display:none}.in-game .game-footer{inset:auto max(20px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) auto;z-index:20;background:0 0;border:0;width:auto;height:42px;padding:0;position:absolute}.in-game .game-footer>div:first-child,.in-game .footer-tool-divider,.in-game .footer-text-button>span{display:none}.in-game .game-footer>div{gap:2px}.in-game .game-footer .icon-button,.in-game .footer-text-button{color:#d4e5d2;background:#163f331f;border:0;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;min-height:40px;padding:0;display:inline-flex}.in-game .game-footer .active{color:#fff1b5;background:#ffffff14}.in-game .footer-text-button svg{width:20px;height:20px}.in-game .seat{gap:4px;width:auto;height:auto;position:absolute;transform:none}.in-game .seat-0{inset:auto auto 66px 16px}.in-game .seat-2{flex-direction:row;align-items:center;gap:12px;display:flex;inset:7px auto auto 50%;transform:translate(-50%)}.in-game .seat-1{top:var(--side-y);bottom:auto;left:auto;right:14px}.in-game .seat-3{top:var(--side-y);bottom:auto;left:14px;right:auto}.in-game .player-info{gap:6px;min-width:44px;max-width:140px;min-height:44px;padding:0}.in-game .player-info .avatar{width:42px;height:42px}.in-game .player-info .avatar svg{width:26px;height:26px}.in-game .player-info .bot-dot{background:#e8eee3;width:13px;height:13px;bottom:-1px;left:-3px;right:auto}.in-game .player-info .bot-dot svg{width:9px;height:9px}.in-game .avatar-wrap{padding:2px}.in-game .seat-0 .player-text{display:none}.in-game .seat-2 .player-info{flex-direction:row;display:flex}.in-game .seat-1 .player-info,.in-game .seat-3 .player-info{flex-direction:column}.in-game .player-text>b{color:#f2f1dc;max-width:78px;font-size:11px}.in-game .player-text>span{color:#bbd4bd;font-size:10px}.in-game .seat-wind{width:16px;height:16px;font-size:10px;bottom:-1px;right:-3px}.in-game .host-crown{top:-9px;left:15px}.in-game .opponent-hand{flex-direction:row;gap:1px;margin:0;display:flex;position:static;transform:none}.in-game .opponent-hand .tile{border-radius:2px;width:10px;min-width:0;height:16px;padding:0}.in-game .seat-1 .opponent-hand,.in-game .seat-3 .opponent-hand{display:none}.in-game .opponent-melds{flex-flow:column;gap:3px;max-width:none;display:flex;position:absolute;inset:0 auto auto;transform:none}.in-game .opponent-melds>span{gap:1px;display:flex}.in-game .opponent-melds .tile{width:16px;height:22px;padding:0}.in-game .seat-1 .opponent-melds{right:72px}.in-game .seat-3 .opponent-melds{left:72px}.in-game .seat-2 .opponent-melds{flex-direction:row;gap:5px;max-width:none;position:absolute;top:47px;left:50%;transform:translate(-50%)}.in-game .seat-2:has(.opponent-melds) .opponent-hand{display:none}.in-game .seat-2 .opponent-melds .tile{width:13px;height:18px}.in-game .compass{top:var(--compass-y);width:74px;height:var(--compass-h);background:var(--felt-dark);border:1px solid #c4d9b625;border-radius:5px;position:absolute;bottom:auto;left:50%;transform:translate(-50%);box-shadow:0 2px #122e2920}.in-game .compass-top,.in-game .compass-bottom,.in-game .compass-directions{display:none}.in-game .compass-main{justify-content:center;align-items:center;gap:5px;height:100%;padding:0;display:flex}.in-game .compass-main>strong{color:#f4efc8;font-size:24px;line-height:1}.in-game .remaining-label{color:#bfd0b6;font-size:8px}.in-game .turn-timer{color:#e8c77c;min-width:18px;padding:0;font-size:12px}.in-game .turn-timer small{font-size:8px}.in-game .river{width:118px;height:var(--river-height);scrollbar-width:none;overscroll-behavior:contain;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(6,18px);grid-auto-rows:24px;place-content:start;gap:2px;min-height:0;max-height:none;margin:0;padding:0;display:grid;position:absolute;bottom:auto;right:auto;overflow:hidden auto;transform:none}.in-game .river .tile{border-radius:2px;width:18px;height:24px;padding:0;transform:none;box-shadow:0 1px #abc3a0}.in-game .river-0{top:var(--river-bottom-y);left:calc(50% - 59px)}.in-game .river-2{top:var(--arena-top);left:calc(50% - 59px)}.in-game .river-1,.in-game .river-3{top:var(--arena-top);width:78px;height:var(--arena-height);grid-template-columns:repeat(4,18px)}.in-game .river-1{left:calc(50% + 77px)}.in-game .river-3{left:calc(50% - 155px)}.in-game .self-area{width:calc(100% - 140px);max-width:950px;height:var(--self-height);flex-direction:column;justify-content:end;display:flex;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.in-game .turn-status{bottom:calc(var(--hand-h) + 59px);white-space:nowrap;justify-content:center;gap:8px;width:max-content;max-width:100%;height:20px;margin:0;font-size:11px;position:absolute;top:auto;left:50%;right:auto;transform:translate(-50%)}.in-game .turn-status>button{font-size:11px}.in-game .self-hand-row{width:100%;min-width:0;height:calc(var(--hand-h) + 8px);justify-content:center;align-items:end;gap:10px;display:flex}.in-game .self-hand{align-items:end;gap:3px;min-width:0;display:flex}.in-game .self-hand .tile{width:var(--hand-w);height:var(--hand-h);border-radius:5px;flex-shrink:0}.in-game .self-hand .tile.selected{transform:translateY(-8px)!important}.in-game .self-melds{flex-wrap:nowrap;gap:5px;min-width:0;display:flex}.in-game .self-melds .tile{width:calc(var(--hand-w) * .78);height:calc(var(--hand-h) * .78)}.in-game .game-action-bar{justify-content:center;height:44px;min-height:44px;margin-top:5px;display:flex;position:relative}.in-game .hand-tools{gap:2px;min-width:0;position:fixed;bottom:0;left:-55px}.in-game .hand-tools .icon-button,.in-game .auto-button{justify-content:center;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;font-size:0;display:inline-flex}.in-game .auto-button svg{width:20px;height:20px}.in-game .hand-count{display:none}.in-game .tile-actions{gap:5px;min-height:40px}.in-game .tile-actions:has(.action-button){scrollbar-width:thin;justify-content:flex-start;padding-bottom:4px;position:absolute;left:30px;right:162px;overflow-x:auto}.in-game .tile-actions>button{flex-shrink:0}.in-game .discard-button{color:#374930;background:#eddaa2;border-radius:6px;gap:16px;min-width:104px;height:40px;font-size:14px;box-shadow:inset 0 1px #fff5cb,0 3px #9c9366}.in-game .discard-button:disabled{opacity:.48}.in-game .action-button{border-radius:6px;min-width:44px;height:40px;font-size:19px}.in-game .zoom-trigger{color:#d9e3c6;width:44px;height:44px;bottom:65px;right:20px}.in-game .table-panel{top:48px;bottom:58px;right:max(10px, env(safe-area-inset-right));border-radius:8px}.in-game .waiting-center{top:44%}.in-game .waiting-center h2{font-size:24px}.in-game .dingque-panel{top:42%}@media (width>=1001px) and (height>=650px){.in-game .table-surround{max-width:1280px;max-height:740px;margin:auto;inset:60px 20px 24px}.in-game .game-footer{bottom:max(30px,50dvh - 382px);right:max(32px,50vw - 626px)}.in-game .player-info .avatar{width:60px;height:60px}.in-game .player-text>b{font-size:13px}.in-game .player-text>span{font-size:11px}.in-game .seat-2{top:18px}.in-game .seat-1{right:28px}.in-game .seat-3{left:28px}.in-game .seat-0{bottom:70px;left:28px}.in-game .seat-2 .opponent-melds{top:69px}.in-game .seat-1 .opponent-melds{right:100px}.in-game .seat-3 .opponent-melds{left:100px}.in-game .opponent-melds .tile,.in-game .seat-2 .opponent-melds .tile{width:22px;height:30px}.in-game .river{grid-template-columns:repeat(6,25px);grid-auto-rows:34px;width:160px}.in-game .river .tile{width:25px;height:34px}.in-game .river-0,.in-game .river-2{left:calc(50% - 80px)}.in-game .river-1,.in-game .river-3{grid-template-columns:repeat(4,25px);width:106px}.in-game .river-1{left:calc(50% + 108px)}.in-game .river-3{left:calc(50% - 214px)}.in-game .compass{width:96px}.in-game .compass-main>strong{font-size:30px}.in-game .turn-timer{font-size:15px}}@media (width<=600px){.topbar{height:66px;padding:10px 15px}.topbar .brand-word{display:none}.topbar-right{gap:5px}.topbar .profile-button>span:not(.avatar){max-width:76px;font-size:12px}.main-content{padding:24px 18px}.app.page-lobby:not(.in-game){background-position:49%}.page-lobby .main{min-height:100dvh}.play-lobby{margin-top:30px}.lobby-heading{margin-bottom:24px}.lobby-heading h1{font-size:36px}.lobby-invitation{font-size:13px}.mode-selector{gap:8px}.mode-selector>button{min-height:94px;font-size:12px}.sidebar{width:min(320px,100% - 36px)}.avatar-picker{gap:7px}.page-heading h1{font-size:26px}}@media (orientation:landscape) and (height<=600px){.topbar{height:50px;padding-block:3px}.page-lobby .main{padding-bottom:78px}.page-lobby .main-content{padding-top:0}.play-lobby{grid-template-columns:175px minmax(0,1fr);align-items:start;gap:24px;width:min(620px,100% - 40px);margin-top:0;display:grid}.lobby-heading{text-align:left;margin:21px 0 0}.lobby-heading h1{color:#fffbe7;text-shadow:0 2px 3px #153e35,0 0 12px #153e35;font-size:29px}.lobby-invitation{color:#fffbe7;text-shadow:0 1px 3px #153e35,0 0 6px #153e35;font-size:12px}.mode-selector>button{gap:5px;min-height:72px;padding:6px 3px;font-size:12px}.mode-selector .tile{width:20px;height:28px}.selected-mode{min-height:29px;padding:7px 0}.selected-mode p{font-size:11px}.lobby-primary-actions .btn{min-height:44px;font-size:14px}.practice-command{min-height:40px;margin-top:9px;font-size:12px}.friend-tables{width:min(620px,100% - 40px);margin-top:10px}.friend-tables>summary{width:175px;margin-top:-47px;padding:0 8px;font-size:11px}.friend-tables>summary>span{display:none}.friend-tables[open]{margin-top:10px}.friend-tables[open]>summary{margin-top:0}.sidebar{height:54px;bottom:max(10px, env(safe-area-inset-bottom))}.sidebar .nav-item.active>svg{width:34px;height:34px;margin-top:-10px;padding:6px}.sidebar .nav-item>svg{width:22px;height:22px}.in-game .seat-2 .opponent-hand,.in-game .waiting-motif{display:none}.in-game .waiting-center{top:45%}.avatar-picker{grid-template-columns:repeat(8,minmax(0,1fr))}.profile-preview{display:none}}@media (width<=380px) and (orientation:portrait){.avatar-picker{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (height<=350px) and (orientation:landscape){.in-game .seat-2 .opponent-melds{top:35px;left:calc(100% + 10px);transform:none}.in-game .seat-2 .opponent-melds .tile{width:11px;height:15px}.in-game .player-info .avatar{width:36px;height:36px}.in-game .seat-2{top:3px}.in-game .game-footer{right:12px}.in-game .game-footer>div{gap:0}.in-game .seat-1 .opponent-melds{right:58px}.in-game .seat-3 .opponent-melds{left:58px}.in-game .opponent-melds .tile{width:11px;height:16px}.in-game .opponent-melds{gap:2px}.in-game .game-title>b{display:none}}@media (orientation:landscape) and (height<=600px) and (width<=1200px){.in-game .game-footer .icon-button,.in-game .footer-text-button{background:0 0}.in-game .game-footer .active{color:#fff1b5}.in-game .game-footer button:hover,.in-game .game-footer button:focus-visible{background:#ffffff14}.in-game .player-info .avatar{width:34px;height:34px}.in-game .seat-0{bottom:62px}.in-game .self-hand-row{gap:8px}.in-game .game-action-bar{margin-top:9px}}@media (width<=760px) and (orientation:portrait){.app:not(.in-game) .main{padding-bottom:calc(92px + env(safe-area-inset-bottom))}.app:not(.in-game) .main-content{padding:16px 20px 24px}.topbar{height:calc(64px + env(safe-area-inset-top));padding:calc(10px + env(safe-area-inset-top)) 20px 10px}.topbar .brand-mark{width:30px;height:36px;font-size:26px}.topbar .profile-button>span:not(.avatar){max-width:70px;font-size:14px}.sidebar{width:min(420px,100% - 32px);height:64px;bottom:calc(12px + env(safe-area-inset-bottom));border-radius:16px;box-shadow:0 4px 18px #153d391a}.sidebar nav{gap:4px;height:100%;padding:4px 6px}.sidebar .nav-item,.sidebar .nav-item.active{border:0;border-radius:12px;gap:4px;padding:4px}.sidebar .nav-item.active{background:0 0;font-weight:600}.sidebar .nav-item>svg{width:24px;height:24px;color:inherit;box-shadow:none;background:0 0;border-radius:0;margin:0;padding:0}.sidebar .nav-item>span{font-size:12px;line-height:16px}.page-heading{margin:6px 0 22px}.page-heading h1{margin:0;font-size:24px;line-height:1.4}.page-heading p{color:#63766b;margin-top:6px;font-size:14px;line-height:1.6}.stats-row{margin-bottom:8px;padding:18px 0}.stats-row>div{gap:8px;padding:0 14px}.stats-row>div:first-child{padding-left:0}.stats-row>div:last-child{padding-right:0}.stats-row span{color:#63766b;font-size:12px}.stats-row strong{font-variant-numeric:tabular-nums;font-family:inherit;font-size:28px;font-weight:500;line-height:1.2}.stats-row small{color:#63766b;margin-left:4px;font-size:12px}.history-row{gap:10px;padding:18px 0}.history-row .history-symbol{flex-shrink:0;width:32px;height:32px}.history-symbol svg{width:19px;height:19px}.history-row>div{gap:6px;min-width:0}.history-row b{font-size:14px;font-weight:500;line-height:1.5}.history-row .history-meta,.history-meta>span{color:#63766b;font-size:12px;line-height:1.5}.history-meta{column-gap:8px}.history-meta>span:before{content:none}.history-result{display:none}.history-row strong{font-variant-numeric:tabular-nums;flex-shrink:0;min-width:48px;font-family:inherit;font-size:24px;font-weight:600}.history-row strong small{color:#63766b;margin-top:4px;font-size:12px;font-weight:400}.play-lobby{margin-top:14px}.lobby-heading{margin-bottom:20px}.lobby-heading h1{font-size:30px}.lobby-invitation,.selected-mode p{font-size:14px;line-height:1.6}.mode-selector>button{min-height:84px;font-size:14px}.practice-command,.friend-tables>summary{font-size:14px}.section-heading h2{font-size:17px}.section-heading span{color:#63766b;font-size:12px}.theme-grid{gap:8px}.theme-option .theme-preview{height:88px}.theme-option>div:last-child{align-items:center;min-height:44px;padding:8px 3px;font-size:13px}.theme-option>div:last-child>span:last-child:not(:first-child){color:#63766b;font-size:12px}.props-heading{margin-top:24px}.prop-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.prop-collection>button{padding:18px 12px}.prop-illustration{margin-bottom:12px}.prop-collection h3{font-size:16px}.prop-collection p{color:#63766b;font-size:13px;line-height:1.6}.prop-preview-label{color:#476c51;margin-top:14px;font-size:12px}.empty-state{min-height:260px;padding:28px 8px}.empty-state h2{font-size:20px}.empty-state p{color:#63766b;font-size:14px;line-height:1.7}}.dialog.rules-dialog{border-radius:18px;width:620px;height:min(800px,100dvh - 48px);max-height:calc(100dvh - 48px);overflow:hidden}.rules-dialog .dialog-inner{flex-direction:column;height:100%;min-height:0;padding:0;display:flex}.rules-dialog .dialog-inner>header{flex-shrink:0;align-items:center;margin:0;padding:16px 24px 8px}.rules-dialog header h2{font-size:24px;line-height:1.4}.rules-dialog header .icon-button{color:#365c49;background:#edf2ec;border-radius:50%;align-self:center;width:44px;height:44px;margin:0}.rules-mode-switch{background:#eaf0e8;border-radius:12px;flex-shrink:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0 24px 12px;padding:4px;display:grid}.rules-mode-switch button{color:#52685a;background:0 0;border-radius:9px;min-height:44px;padding:8px 4px;font-size:14px;line-height:1.4}.rules-mode-switch button[aria-pressed=true]{color:#205a43;background:#fffefa;font-weight:600;box-shadow:0 1px 4px #23493212}.rules-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;color:#52685a;flex:1;min-height:0;padding:8px 24px 20px;scroll-padding-block:12px;font-size:14px;line-height:1.7;overflow-y:auto}.rules-scroll:focus-visible{outline-offset:-3px;outline:2px solid #8cac99}.rules-overview h3{color:#254b3b;margin:0 0 4px;font-size:19px}.rules-facts{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.rules-facts span{color:#4d6c54;white-space:nowrap;background:#edf2e9;border-radius:6px;padding:3px 9px;font-size:12px}.rules-basics{margin-top:18px}.rules-basics h3{color:#254b3b;margin-bottom:12px;font-size:16px}.rules-basics ol{counter-reset:rule;margin:0;padding:0;list-style:none}.rules-basics li{counter-increment:rule;padding-left:36px;position:relative}.rules-basics li+li{margin-top:12px}.rules-basics li:before{content:counter(rule);color:#2d6045;background:#e5eee1;border-radius:50%;place-items:center;width:25px;height:25px;font-size:13px;font-weight:600;display:grid;position:absolute;top:0;left:0}.rules-basics strong{color:#294c3b;margin-bottom:3px;font-size:15px;font-weight:600;display:block}.rules-more{margin-top:20px}.rules-more-hint{color:#657766;margin-bottom:8px;font-size:12px}.rules-detail{border-top:1px solid #e0e7dc}.rules-detail:last-child{border-bottom:1px solid #e0e7dc}.rules-detail summary{color:#2e503d;cursor:pointer;touch-action:manipulation;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:12px 0;font-size:15px;font-weight:500;list-style:none;display:flex}.rules-detail summary::-webkit-details-marker{display:none}.rules-detail summary svg{flex-shrink:0}.rules-detail[open] summary svg{transform:rotate(180deg)}.rules-detail summary:focus-visible{outline-offset:-2px;border-radius:6px;outline:2px solid #8cac99}.rules-detail-body{padding:0 0 18px}.rules-detail-body ul{margin:12px 0 0;padding-left:20px}.rules-detail-body li+li{margin-top:8px}.rules-hand-example{flex-wrap:wrap;gap:12px 16px;margin:16px 0;display:flex}.rules-hand-example>div{flex-direction:column;align-items:center;gap:6px;display:flex}.rules-hand-example>div>span{gap:2px;display:flex}.rules-hand-example .tile{width:26px;height:36px}.rules-hand-example small{font-size:12px}.rules-score-list{margin:12px 0}.rules-score-list>div{border-bottom:1px solid #e0e7dc;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:10px 0;display:grid}.rules-score-list dd{color:#2d6045;margin:0;font-weight:500}.rules-score-example{background:#edf2e9;border-radius:8px;padding:12px}.rules-scope-note{color:#657766;margin-top:16px;font-size:12px}.rules-footer{background:#fafbf7;border-top:1px solid #e0e7dc;flex-shrink:0;padding:12px 24px 16px}.rules-footer .btn{border-radius:10px;width:100%;min-height:46px;font-size:15px}@media (width<=600px),(orientation:landscape) and (height<=600px) and (width<=1100px){.dialog.rules-dialog{border:0;border-radius:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0}.rules-dialog .dialog-inner>header{padding:calc(8px + env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 8px max(20px, env(safe-area-inset-left))}.rules-dialog header h2{font-size:22px}.rules-mode-switch{margin:0 max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left))}.rules-scroll{padding:12px max(20px, env(safe-area-inset-right)) 20px max(20px, env(safe-area-inset-left))}.rules-footer{padding:10px max(20px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}}@media (orientation:landscape) and (height<=600px) and (width<=1100px){.rules-dialog .dialog-inner>header{padding-block:env(safe-area-inset-top) 0}.rules-dialog header h2{font-size:20px}.rules-mode-switch{margin-bottom:4px;padding-block:2px}.rules-footer{padding-block:6px max(6px, env(safe-area-inset-bottom))}}.dialog.room-entry-dialog{width:520px;height:min(760px, calc(var(--dialog-viewport-height,100dvh) - 48px));max-height:calc(var(--dialog-viewport-height,100dvh) - 48px);border-radius:18px;overflow:hidden}.dialog.join-room-dialog{height:min(390px, calc(var(--dialog-viewport-height,100dvh) - 48px))}.room-entry-dialog .dialog-inner{flex-direction:column;height:100%;min-height:0;padding:0;display:flex}.room-entry-dialog .dialog-inner>header{border-bottom:1px solid #e0e7dc;flex-shrink:0;align-items:center;margin:0;padding:14px 20px 10px}.room-entry-dialog header h2{font-size:22px;line-height:1.4}.room-entry-dialog header .icon-button{color:#365c49;background:#edf2ec;border-radius:50%;align-self:center;width:44px;height:44px;margin:0}.room-entry-form{flex-direction:column;flex:1;min-height:0;display:flex}.room-entry-scroll{overscroll-behavior:contain;flex:1;min-height:0;padding:18px 20px;scroll-padding-block:20px;overflow-y:auto}.room-entry-description{color:#63766b;margin:0 0 20px;font-size:14px;line-height:1.6}.room-entry-dialog .entry-label{color:#315441;margin:0 0 8px;padding:0;font-size:14px;font-weight:500;line-height:1.5;display:block}.room-entry-dialog .input{color:#2f513e;background:#fff;border-radius:9px;width:100%;min-width:0;height:48px;padding:0 12px;font-size:16px}.entry-fieldset{border:0;min-width:0;margin:20px 0 0;padding:0}.room-entry-dialog .mode-select{gap:8px}.room-entry-dialog .mode-select>button{border-radius:10px;gap:7px;min-width:0;min-height:78px;padding:8px 4px;font-size:14px}.room-entry-dialog .mode-select .tile{width:22px;height:30px}.room-entry-dialog .privacy-select{grid-template-columns:1fr;gap:8px}.room-entry-dialog .privacy-select label{touch-action:manipulation;background:#fffefa;border-radius:10px;gap:12px;min-height:62px;padding:10px 12px}.room-entry-dialog .privacy-select label:has(input:checked){background:#eaf2e5;border-color:#73966b}.room-entry-dialog .privacy-select input{width:18px;height:18px;margin:0}.room-entry-dialog .privacy-select b{font-size:14px}.room-entry-dialog .privacy-select small{color:#63766b;margin-top:3px;font-size:12px;line-height:1.5}.room-extra-options{border-block:1px solid #e0e7dc;margin-top:20px}.room-extra-options summary{cursor:pointer;touch-action:manipulation;color:#315441;align-items:center;gap:8px;min-height:52px;padding:10px 0;font-size:14px;list-style:none;display:flex}.room-extra-options summary::-webkit-details-marker{display:none}.room-extra-options summary b{font-weight:500}.room-extra-options summary span{color:#63766b;white-space:nowrap;margin-left:auto;font-size:12px}.room-extra-options summary svg{flex-shrink:0}.room-extra-options[open] summary svg{transform:rotate(180deg)}.room-extra-options .form-two{gap:12px;padding-bottom:12px}.room-extra-options select{margin-top:8px}.room-entry-note{color:#63766b;align-items:center;gap:6px;margin-top:14px;font-size:12px;line-height:1.6;display:flex}.room-entry-note svg{flex-shrink:0}.room-entry-footer{background:#fafbf7;border-top:1px solid #e0e7dc;flex-shrink:0;padding:12px 20px 16px}.room-entry-footer .btn.full{border-radius:10px;width:100%;min-height:48px;margin:0;font-size:16px}.room-entry-error{color:#a34532;max-height:72px;margin:0 0 10px;font-size:14px;line-height:1.6;overflow-y:auto}.room-code-label{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.room-code-label>span{color:#63766b;font-variant-numeric:tabular-nums;font-size:13px}.room-entry-dialog .room-code-input{letter-spacing:4px;height:60px;font-family:ui-monospace,monospace;font-size:26px}.room-entry-dialog .room-code-input::placeholder{letter-spacing:1px;font-family:inherit;font-size:16px}.room-entry-dialog .room-code-input[aria-invalid=true]{border-color:#ac5942}.friend-tables,.friend-tables[open]{width:min(460px,100%);scroll-margin-top:max(16px, env(safe-area-inset-top));background:#f6f8f0f2;border-radius:12px;margin:18px auto 0;padding:0}.friend-tables>summary,.friend-tables[open]>summary{touch-action:manipulation;background:0 0;border-radius:12px;gap:8px;width:100%;min-height:50px;margin:0;padding:12px 14px;font-size:14px;transition:background .15s}.friend-tables>summary b{font-weight:500}.friend-tables>summary>span{white-space:nowrap;margin-left:auto;font-size:12px;display:block}.friend-tables>summary svg{flex-shrink:0;transform:none}.friend-tables .friend-tables-chevron{transition:transform .18s}.friend-tables[open]>summary .friend-tables-chevron{transform:rotate(180deg)}@media (hover:hover){.friend-tables>summary:hover{background:#eaf1e4}}.friend-tables>summary:active{background:#dce8d6}.friend-tables>summary:focus-visible,.room-extra-options>summary:focus-visible{outline-offset:-3px;outline:2px solid #73966b}.friend-tables-content{padding:0 14px 16px}.friend-tables .room-filters{grid-template-columns:minmax(0,1fr) 44px;gap:8px;margin:8px 0 16px;display:grid}.friend-tables .room-filters .segmented{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;display:grid}.friend-tables .room-filters .segmented button{min-height:44px;padding:6px 2px;font-size:12px}.friend-tables .room-filters .search-box{width:100%;min-width:0;height:44px;margin:0}.friend-tables .search-box input{min-width:0;font-size:16px}.friend-tables .room-filters .icon-button{width:44px;height:44px}.friend-tables .list-heading{font-size:12px}.friend-tables .rooms-list{min-height:0}.friend-tables .room-row{grid-template-columns:32px minmax(0,1fr) auto;gap:8px;padding:14px 0;display:grid}.friend-tables .room-mode-icon{grid-area:1/1/3;width:32px;height:36px;font-size:12px}.friend-tables .room-row-info{grid-area:1/2;min-width:0}.friend-tables .room-row-info>b{overflow-wrap:anywhere;font-size:14px}.friend-tables .room-row-info>span{font-size:12px}.friend-tables .room-state{grid-area:2/2;font-size:12px;display:flex}.friend-tables .room-capacity{grid-area:1/3;justify-self:end;font-size:12px}.friend-tables .room-row .btn.mini{grid-area:2/3;min-height:44px;padding:0 10px;font-size:13px}.friend-tables .empty-state{min-height:200px;padding:20px 8px}.friend-tables .empty-state h2{font-size:18px}.friend-tables .empty-state p{color:#63766b;font-size:13px}@media (width<=420px){.friend-tables .room-filters .segmented{grid-template-columns:repeat(2,minmax(0,1fr))}.friend-tables .room-filters .segmented button{font-size:13px}.room-extra-options .form-two{grid-template-columns:1fr;gap:8px}}@media (width<=600px),(orientation:landscape) and (height<=600px) and (width<=1100px){.dialog.room-entry-dialog{inset:var(--dialog-viewport-top,0px) 0 auto;width:100%;max-width:none;height:var(--dialog-viewport-height,100dvh);max-height:var(--dialog-viewport-height,100dvh);border:0;border-radius:0;margin:0;position:fixed}.dialog.join-room-dialog{height:min(390px, var(--dialog-viewport-height,100dvh));top:calc(var(--dialog-viewport-top,0px) + var(--dialog-viewport-height,100dvh) - min(390px, var(--dialog-viewport-height,100dvh)));border-radius:20px 20px 0 0}.room-entry-dialog .dialog-inner>header{padding:calc(8px + env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 8px max(20px, env(safe-area-inset-left))}.room-entry-scroll{padding-inline:max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right))}.room-entry-footer{padding:10px max(20px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}}@media (orientation:landscape) and (height<=600px) and (width<=1100px){.room-entry-dialog .dialog-inner>header{padding-block:env(safe-area-inset-top) 0}.room-entry-footer{padding-block:6px max(6px, env(safe-area-inset-bottom))}.friend-tables,.friend-tables[open]{width:min(620px,100% - 40px)}}.app.page-history:not(.in-game),.app.page-collection:not(.in-game){background:#dce7e2 url(/room-v2.webp) 50% 56%/cover no-repeat fixed}.app.page-history:not(.in-game) .main-content,.app.page-collection:not(.in-game) .main-content{padding:20px 24px 24px}.history-page,.collection-page{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7faf2ed;border:1px solid #ffffffc9;border-radius:18px;padding:24px;box-shadow:0 8px 30px #173d3420}.history-page .page-heading,.collection-page .page-heading{margin:0 0 24px}.history-page .page-heading h1,.collection-page .page-heading h1{margin:0}.collection-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:12px;display:flex}.collection-section-heading h2{color:#2c4c3d;font-size:17px;font-weight:600}.collection-section-heading>span,.collection-hint,.collection-usage{color:#617464;font-size:12px;line-height:1.6}.collection-page .theme-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:540px}.collection-page .theme-option{background:#eaf0e6;border:2px solid #0000;border-radius:12px;min-width:0;padding:4px}.collection-page .theme-option.chosen{background:#e3eddd;border-color:#4b7b55}.collection-page .theme-option .theme-preview{border-radius:7px;height:90px}.collection-page .theme-preview .tile{width:26px;height:36px}.collection-page .theme-option>div:last-child{align-items:center;gap:4px;min-height:38px;padding:8px 4px 4px;font-size:14px}.collection-page .theme-option>div:last-child svg{flex-shrink:0;width:16px;height:16px}.collection-hint{margin-top:8px}.collection-props{margin-top:24px;scroll-margin-top:16px}.collection-filters{top:max(8px, env(safe-area-inset-top));z-index:2;background:#eaf1e5;border:1px solid #dde7d7;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:12px;padding:4px;display:grid;position:sticky}.collection-filters button{color:#526b57;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:44px;padding:6px 2px;font-size:14px;display:flex}.collection-filters button span{font-variant-numeric:tabular-nums;font-size:12px}.collection-filters button[aria-pressed=true]{color:#20583f;background:#fffefa;font-weight:600;box-shadow:0 1px 4px #23493212}.collection-page .prop-collection{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.collection-page .prop-collection>button{text-align:center;background:#fffef9;border:1px solid #dde6d7;border-radius:12px;grid-template-rows:64px auto 1fr auto;place-items:start center;gap:6px;min-width:0;padding:14px 10px;transition:background .15s,box-shadow .15s;display:grid;transform:none;box-shadow:0 2px #d5e0ce}.collection-page .prop-collection .prop-illustration{width:64px;height:64px;margin:0}.collection-page .prop-collection .prop-sprite{width:64px!important;height:64px!important}.collection-page .prop-collection h3{color:#2e513d;margin:0;font-family:inherit;font-size:15px;font-weight:500;line-height:1.5}.collection-page .prop-collection p{color:#657760;min-height:40px;margin:0;font-size:13px;line-height:1.5}.collection-page .prop-preview-label{color:#3b6946;gap:4px;margin-top:2px;font-size:12px;line-height:1.5}@media (hover:hover){.collection-page .prop-collection>button:hover{background:#f0f6e9;box-shadow:0 2px #bcccaf}}.collection-page .prop-collection>button:active{background:#e5efdc;box-shadow:inset 0 1px 4px #4764431a}.collection-usage{margin-top:16px}.prop-preview-dialog{color:#2c4c3d;background:#f7faf2;border:1px solid #ffffffc9;border-radius:18px;width:min(540px,100vw - 32px);max-width:none;max-height:calc(100dvh - 24px);padding:0;position:fixed;overflow:hidden;box-shadow:0 18px 70px #173d3445}.prop-preview-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#193c346b}.prop-preview-dialog>header{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 12px 20px;display:flex}.prop-preview-dialog h2{font-family:var(--serif);font-size:21px;font-weight:600;line-height:1.4}.prop-preview-dialog header p{color:#617464;margin-top:4px;font-size:13px;line-height:1.5}.prop-preview-dialog .preview-close{color:#365c49;background:#e8efe2;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid;position:static}.prop-preview-content{grid-template-columns:minmax(0,1fr);display:grid}.prop-preview-dialog .prop-preview-stage{border-radius:12px;width:auto;height:240px;margin:0 16px;padding:0 32px;position:relative;inset:auto;transform:none;box-shadow:inset 0 0 30px #183d3524}.prop-preview-dialog .preview-label{color:#dfebdb;font-size:13px}.prop-preview-dialog .prop-caption{font-size:12px}.prop-preview-actions{padding:14px 20px 20px}.prop-preview-actions>p{color:#617464;margin-bottom:12px;font-size:13px;line-height:1.6}.prop-preview-actions>div{grid-template-columns:1fr 1fr;gap:10px;display:grid}.prop-preview-actions .btn{border-radius:10px;min-height:46px;padding:8px;font-size:14px}@media (width<=760px){.collection-page .prop-collection{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=600px){.app.page-history:not(.in-game),.app.page-collection:not(.in-game){background-position:49%}.app.page-history:not(.in-game) .main-content,.app.page-collection:not(.in-game) .main-content{padding:14px 16px 24px}.history-page,.collection-page{border-radius:16px;padding:18px 16px}.history-page .page-heading,.collection-page .page-heading{margin-bottom:20px}.history-page .page-heading h1,.collection-page .page-heading h1{font-size:24px}.collection-section-heading{gap:4px 8px}.collection-page .theme-grid{gap:8px}.collection-page .theme-option .theme-preview{height:64px}.collection-page .theme-preview:after{inset:7px}.collection-page .theme-preview .tile{width:20px;height:28px}.collection-page .theme-option>div:last-child{min-height:34px;padding:6px 2px 2px;font-size:13px}.collection-page .theme-option>div:last-child svg{width:13px;height:13px}.collection-page .prop-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.collection-page .prop-collection>button{grid-template-rows:56px auto 1fr auto;padding:12px 8px}.collection-page .prop-collection .prop-illustration{width:56px;height:56px}.collection-page .prop-collection .prop-sprite{width:56px!important;height:56px!important}.collection-filters button{gap:4px;font-size:13px}.prop-preview-dialog{width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - 8px);border:0;border-radius:20px 20px 0 0;margin:0;inset:auto 0 0}.prop-preview-actions{padding-bottom:calc(16px + env(safe-area-inset-bottom))}}@media (orientation:landscape) and (height<=600px) and (width<=1100px){.prop-preview-dialog{border-radius:16px;width:min(740px,100vw - 24px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);margin:auto;inset:0}.prop-preview-dialog[open]{flex-direction:column;display:flex}.prop-preview-dialog>header{flex-shrink:0;padding-block:8px}.prop-preview-dialog h2{font-size:19px}.prop-preview-content{flex:1;grid-template-columns:minmax(0,1fr) 176px;min-height:0;padding-bottom:12px}.prop-preview-dialog .prop-preview-stage{height:100%;min-height:0;margin-right:0;padding-inline:20px}.prop-preview-dialog .preview-label{display:none}.prop-preview-actions{flex-direction:column;justify-content:center;padding:0 16px;display:flex}.prop-preview-actions>div{grid-template-columns:1fr}}.in-game .river-owner{display:none}.in-game .river:focus-visible{outline-offset:3px;outline:2px solid #f1cf79}.in-game .self-melds>span{border-bottom:2px solid #e9d7a56b;padding-bottom:3px}.in-game .turn-status .your-turn{align-items:center;gap:7px;display:inline-flex}.in-game .turn-status .status-countdown{color:#ffedb6;font-variant-numeric:tabular-nums;font-weight:600}.in-game .turn-status .status-countdown.urgent{color:#ffd1ba}.in-game .game-footer .icon-button,.in-game .footer-text-button{background:0 0}.in-game .game-footer button:hover,.in-game .game-footer button:focus-visible{background:#ffffff14}.in-game .river-1,.in-game .river-3{top:var(--side-river-y);height:var(--side-river-height)}.in-game .river .latest-discard{outline-offset:-2px;background:#fff4cb;outline:2px solid #f1cf79}.in-game .seat.current .avatar-wrap{border-color:#f0d28a;box-shadow:0 0 0 3px #edcd7940}.in-game .turn-status{bottom:calc(var(--hand-h) + 65px);font-size:13px}.in-game .turn-status .your-turn{color:#ffedb6;font-weight:600}.in-game .self-hand-row{gap:20px}.in-game .self-melds:empty{display:none}.in-game .self-melds{gap:8px;padding-bottom:3px}.in-game .self-hand .tile.selected{outline-offset:-2px;background:#fff7d9;outline:2px solid #f1cf79}.in-game .drawn-tile{margin-left:12px}.in-game .discard-button:not(:disabled){color:#263f30;background:#f5dc98}.in-game .discard-button:disabled{opacity:.65;box-shadow:none}.in-game .game-action-bar{margin-top:9px}@media (width>=1001px) and (height>=650px){.in-game .self-area{bottom:14px}.in-game .river-1{left:calc(50% + 150px)}.in-game .river-3{left:calc(50% - 256px)}.in-game .compass-main>strong{font-size:24px}.in-game .turn-timer{font-size:18px;font-weight:600}}@media (orientation:landscape) and (height<=600px) and (width<=1200px){.in-game .self-hand-row{gap:12px}.in-game .self-melds{gap:5px;padding-bottom:2px}.in-game .drawn-tile{margin-left:8px}.in-game .turn-status{bottom:calc(var(--hand-h) + 61px);font-size:11px}.in-game .compass-main>strong{font-size:20px}.in-game .turn-timer{font-size:14px;font-weight:600}}:root{--app-chrome:#163c33;--safe-top:env(safe-area-inset-top,0px);background:var(--app-chrome)}.pwa-install{background:#edf3e8;border:1px solid #d6e1d3;border-radius:12px;margin-bottom:22px;padding:16px}.pwa-install-heading{align-items:center;gap:12px;display:flex}.pwa-install-heading img{border-radius:12px;flex:0 0 48px}.pwa-install h3{margin:0;font-size:15px}.pwa-install p{color:#627761;margin:5px 0 0;font-size:12px;line-height:1.7}.pwa-install .btn{margin-top:14px}.pwa-install .pwa-install-help{margin-top:12px}.in-game .game-header{height:calc(46px + var(--safe-top));padding-top:var(--safe-top)}.in-game .table-surround{top:calc(46px + var(--safe-top))}@media (width>=1001px) and (height>=650px){.in-game .table-surround{top:calc(60px + var(--safe-top))}}.orientation-gate{background:linear-gradient(var(--app-chrome) var(--safe-top), #eff4f0 var(--safe-top));padding-top:calc(40px + var(--safe-top))}.orientation-back{top:calc(18px + var(--safe-top))}@media (width<=1024px),(display-mode:standalone){.loading-screen{background:linear-gradient(var(--app-chrome) var(--safe-top), #f5f6f0 var(--safe-top));padding:var(--safe-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.dialog:not(.rules-dialog):not(.room-entry-dialog){inset:var(--safe-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);max-height:calc(100dvh - var(--safe-top) - env(safe-area-inset-bottom) - 24px);position:fixed}.app:not(.in-game):before{content:"";height:var(--safe-top);background:var(--app-chrome);pointer-events:none;z-index:45;position:fixed;inset:0 0 auto}.topbar{height:calc(76px + var(--safe-top));padding-top:calc(12px + var(--safe-top));padding-left:max(20px, env(safe-area-inset-left));padding-right:max(20px, env(safe-area-inset-right))}}@media (width<=760px) and (orientation:portrait){.topbar{height:calc(64px + var(--safe-top));padding-top:calc(10px + var(--safe-top))}}@media (orientation:landscape) and (height<=600px){.topbar{height:calc(50px + var(--safe-top));padding-top:calc(3px + var(--safe-top))}}@media (width<=600px),(orientation:landscape) and (height<=600px) and (width<=1100px){.rules-dialog .dialog-inner>header,.create-room-dialog .dialog-inner>header{background:linear-gradient(var(--app-chrome) var(--safe-top), #fafbf7 var(--safe-top))}}
