.chat-preview{position:fixed;z-index:8;pointer-events:none}.chat-preview[hidden]{display:none}.chat-preview button{width:100%;display:grid;gap:4px;text-align:left;padding:9px 11px;border:1px solid #cbd7be;border-radius:12px;background:#f8faeff5;color:#294c46;box-shadow:0 4px 14px #173b3b20;pointer-events:auto}.chat-preview strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-preview span{font-size:12px;line-height:1.4;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-preview button:focus-visible{outline:3px solid #34796c;outline-offset:2px}body:has(dialog[open]) .chat-preview{visibility:hidden!important}.chat-preview[data-compact=true] span{-webkit-line-clamp:1}.chat-preview{--chat-safe-left:env(safe-area-inset-left,0px);--chat-safe-right:env(safe-area-inset-right,0px);--chat-safe-top:env(safe-area-inset-top,0px);--chat-safe-bottom:env(safe-area-inset-bottom,0px)}:root{--font:"Segoe UI","Microsoft YaHei",system-ui,sans-serif;--ink:#173b3d;--muted:#65776b;--paper:#f7f6f0;--ocean:#b8d8d2;--surface-alt:#e9ede3;--accent:#b65c35;--wood:#397456;--brick:#ae674a;--sheep:#66863e;--wheat:#a28027;--ore:#637e8c;color-scheme:light}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;width:100%}body{font-family:var(--font);font-size:14px;line-height:1.6;color:var(--ink);background:var(--paper)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;padding:11px 15px;background:var(--surface-alt);color:var(--ink);font-weight:600;cursor:pointer;min-height:44px;transition:background .16s,transform .16s}button:hover:not(:disabled){background:#dbe6df}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input,select{width:100%;min-width:0;background:#fff;color:var(--ink);border:1px solid #c4d0c7;border-radius:8px;padding:11px 12px;min-height:44px;caret-color:var(--ink)}input::placeholder{color:#798983}label{display:block;font-weight:600;margin-bottom:7px}h1,h2,h3,p{margin:0}h2{font-size:17px;line-height:1.4}h3{font-size:15px}a{color:inherit;text-decoration:none}::selection{background:#f0cc87;color:var(--ink)}*{scrollbar-width:thin;scrollbar-color:#b7c7bd transparent}.icon{width:21px;height:21px;flex:none;vertical-align:middle}.primary{background:var(--ink);color:var(--paper)}.primary:hover:not(:disabled){background:#285758}.secondary{background:#e9ede5}.text-button{background:none;padding:8px;min-height:40px}.text-button:hover:not(:disabled){background:#e4ebe3}.square{width:42px;padding:8px;flex:none}.muted{color:var(--muted)}.small{font-size:12px}.wood{--resource:var(--wood)}.brick{--resource:var(--brick)}.sheep{--resource:var(--sheep)}.wheat{--resource:var(--wheat)}.ore{--resource:var(--ore)}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:var(--paper);position:relative;z-index:10;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:700;white-space:nowrap}.brand small{font-size:12px;font-weight:500;display:block;line-height:1;letter-spacing:.1em;color:var(--muted)}.brand-mark{width:40px;height:46px;display:grid;place-items:center;background:var(--ink);color:#efd6a3;border-radius:10px}.brand-mark .icon{width:29px;height:29px}.brand>span:last-child{display:flex;align-items:baseline;gap:13px}.topbar nav button{font-size:13px}.header-note{color:var(--muted);font-size:13px}.room-code{font-weight:600;letter-spacing:.06em}.connection{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.connection i,.presence{width:7px;height:7px;display:inline-block;border-radius:50%;background:#acb7b1}.connection.connected i,.presence.online{background:#548c64}.connection.reconnecting i{background:#d69d49}#room-meta{display:flex;align-items:center;gap:20px}.table{display:grid;grid-template-columns:260px minmax(0,1fr) 270px;min-height:calc(100dvh - 76px);background:var(--ocean)}#left-panel{background:var(--paper);padding:28px 22px;z-index:2;min-width:0}#right-panel{background:#edf2e9;padding:26px 21px;z-index:2;min-width:0}.board-area{position:relative;min-width:0;min-height:710px;overflow:hidden}#board{position:absolute;inset:0 0 80px}#board canvas{display:block;width:100%;height:100%;touch-action:none}#board svg{width:100%;height:100%;touch-action:manipulation}#board [data-id],#board [data-tile]{cursor:pointer}.board-controls{position:absolute;right:20px;top:20px;display:flex;gap:6px}.board-controls button{background:#e9f1e7;color:#315a54;font-size:12px}.tile-hint{position:absolute;bottom:194px;left:50%;transform:translate(-50%);color:#426e64;font-size:12px;white-space:nowrap;pointer-events:none}.board-top{position:absolute;top:24px;left:24px;right:118px;pointer-events:none}.turn-banner{padding:12px 16px;background:#f8f7ef;display:flex;align-items:center;gap:12px;border-radius:12px;max-width:520px;margin:auto;box-shadow:0 7px 24px #21483b12}.turn-banner>div:not(.dice-pair){flex:1;min-width:0}.turn-banner strong{display:block;font-size:14px}.turn-banner span:not(.turn-dot){display:block;font-size:12px;color:var(--muted)}.turn-dot{width:10px;height:10px;border-radius:50%;flex:none}.your-turn strong{color:var(--accent)}.dice-pair{display:flex;gap:5px}.dice-pair span{display:grid!important;place-items:center;background:#e9e6d8;color:var(--ink)!important;border-radius:5px;width:30px;height:30px;font-size:19px!important;font-weight:700}.panel-title h2{font-size:24px}.panel-title p{color:var(--muted);margin-top:8px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:15px}.panel-heading h2{font-size:15px}.panel-heading>span{font-size:11px;color:var(--muted);white-space:nowrap}.home{grid-template-columns:370px minmax(0,1fr) 240px}.home #left-panel{padding:48px 36px 24px;display:flex;flex-direction:column}.home #right-panel{background:var(--ocean);display:flex;align-items:center;padding:32px 32px 32px 6px}.home-intro h1{font-family:"Noto Serif SC",Songti SC,SimSun,serif;font-size:43px;font-weight:600;line-height:1.5;letter-spacing:-.03em}.home-intro p{margin-top:20px;line-height:1.9;color:var(--muted);font-size:14px}.game-facts{display:flex;gap:24px;margin:25px 0 30px;color:var(--muted);font-size:12px}.game-facts span{display:flex;gap:7px;align-items:center}.game-facts .icon{width:17px;height:17px}#entry-form label{font-size:12px;margin-bottom:8px}#entry-form .large{width:100%;justify-content:space-between;margin:14px 0 18px;padding:15px 18px}.join-row{display:flex;gap:8px}.join-row button{white-space:nowrap;padding:10px 13px;font-size:12px}.join-row input{font-size:12px;width:170px;flex:1;text-transform:uppercase}.practice-entry{margin-top:25px;text-align:center}.practice-entry p{font-size:11px;color:var(--muted);margin-top:3px}.practice-entry button{font-size:12px}.home-bottom{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#63786e;margin-top:auto;padding-top:44px}.resume-button{margin-top:18px;background:transparent;font-size:12px}.home .board-area{min-height:calc(100dvh - 76px)}.home #board{inset:-30px -95px 70px -40px}.home .board-controls{top:18px}.home .tile-hint{bottom:174px}.home #island-caption{position:absolute;bottom:56px;left:0;right:0;text-align:center;pointer-events:none}#island-caption>span{display:block;color:#456d64;font-size:11px}#island-caption strong{font-family:"Noto Serif SC",Songti SC,SimSun,serif;font-weight:500;font-size:30px;letter-spacing:.14em;display:block;margin:6px 0}.island-guide{color:#355e55}.guide-mark{display:block;margin-bottom:26px}.guide-mark .icon{width:34px;height:34px;stroke-width:1.1}.island-guide h2{font-size:17px}.island-guide p{font-size:12px;line-height:1.9;margin-top:14px}.resource-legend{display:grid;grid-template-columns:1fr 1fr;gap:15px 10px;margin-top:30px}.resource-legend span{display:flex;align-items:center;gap:7px;font-size:11px}.resource-legend .icon{color:var(--resource);width:21px;height:21px}.island-guide .guide-note{margin-top:40px;color:#4a7165;font-size:11px}.invite-block{padding:20px 0 24px}.invite-block>span{display:block;font-size:12px;color:var(--muted)}.invite-block strong{font-size:30px;letter-spacing:.18em;display:block;margin:3px 0}.invite-block button{padding-left:0;font-size:12px}.players{display:flex;flex-direction:column;gap:5px}.player{display:flex;align-items:center;gap:10px;padding:11px 9px;border-radius:10px;position:relative}.player.active{background:#e4eadd}.avatar{width:35px;height:35px;display:grid;place-items:center;color:#fff;background:var(--player);border-radius:10px;font-weight:700;flex:none}.player-info{min-width:0;flex:1}.player-info strong{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-info strong small{margin-left:5px;color:var(--muted);font-size:10px}.player-info>span{font-size:10px;color:var(--muted);display:block;white-space:nowrap}.score{display:flex;align-items:baseline;gap:3px}.score b{font-size:20px;font-weight:600}.score small{font-size:10px;color:var(--muted)}.remove-bot{padding:0;min-height:25px;width:25px;height:25px;background:none}.empty-seat{padding:18px 8px;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}.lobby-actions{display:grid;gap:10px;margin:22px 0 12px}#left-panel>.text-button{margin-top:25px;font-size:12px}.awards{padding:20px 4px 16px;display:flex;flex-direction:column;gap:12px}.awards>span{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}.awards .icon{width:16px;height:16px}.awards b{margin-left:auto;font-weight:500;color:var(--ink);max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.build-section{margin-top:14px}.build-section .panel-heading{margin-bottom:12px}.build-button{width:100%;justify-content:start;padding:12px 6px;background:transparent;gap:12px;margin-bottom:4px;text-align:left}.build-button>span:nth-child(2){flex:1}.build-button>span>b{font-size:12px;font-weight:600}.build-button>small{font-size:12px;color:var(--muted)}.build-button>.icon{width:15px;height:15px}.build-icon{display:grid;place-items:center;width:33px;height:36px;background:#e6e8da;border-radius:8px}.build-icon .icon{width:22px;height:22px}.build-button.selected{background:#e2e9d8;outline:2px solid #799788}.build-button:disabled{opacity:.48}.cost{display:flex;gap:9px;margin-top:4px}.mini-resource{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:#485e53;font-weight:500;white-space:nowrap}.mini-resource .icon{width:13px;height:13px;color:var(--resource)}.turn-actions{display:grid;gap:8px;margin-top:20px}.turn-actions button{font-size:12px}.supply{font-size:10px;color:var(--muted);display:flex;flex-direction:column;gap:3px;margin-top:15px}.supply b{font-weight:500}.hand-tray{position:absolute;bottom:27px;left:18px;right:18px;max-width:530px;margin:auto}.hand-label{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px}.hand-label strong{font-size:12px}.hand-label span{font-size:10px;color:#4d7168}.resource-hand{display:flex;justify-content:center;gap:10px}.resource-card{width:76px;min-width:0;background:#f6f3e5;padding:12px 6px 9px;text-align:center;border-radius:9px;position:relative;box-shadow:0 5px 10px #23473a13}.resource-art{display:grid;place-items:center;margin-bottom:5px;color:var(--resource)}.resource-art .icon{width:29px;height:29px;stroke-width:1.6}.resource-card>span:not(.resource-art){font-size:10px;color:#52695c}.resource-card>strong{font-size:18px;margin-left:8px;font-weight:600;font-variant-numeric:tabular-nums}.development-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px}.development-hand:empty{display:none}.development-hand button{background:#e9ead9;padding:5px 9px;font-size:11px;min-height:32px}.development-hand .icon{width:15px;height:15px}.development-hand small{font-size:9px}.log-section .panel-heading{margin-bottom:8px}.activity-log{max-height:350px;overflow-y:auto;padding-right:5px}.activity-log p{font-size:11px;line-height:1.8;color:#5a6f61;padding:9px 0}.activity-log p:last-child{color:var(--ink)}.chat-section{margin-top:26px}.chat-section h2{font-size:14px;margin-bottom:12px}.chat-log{max-height:160px;overflow-y:auto;margin-bottom:10px}.chat-log p{font-size:11px;line-height:1.8;margin-bottom:7px;overflow-wrap:anywhere}.chat-log strong{font-weight:600}#chat-form{display:flex;gap:6px}#chat-message{font-size:11px;background:#f7f8f0;border:0}#chat-form .square{background:#dfe7d8;width:36px}.choice-panel{margin-bottom:25px}.choice-panel h2{font-size:17px}.choice-panel p{font-size:12px;color:var(--muted);margin:8px 0 16px}.choice-panel form>button{width:100%;margin-top:12px;font-size:12px}.choice-panel>button{width:100%;margin-top:8px}.resource-input{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0;font-size:12px;font-weight:400}.resource-input>span{display:flex;align-items:center;gap:6px}.resource-input .icon{width:16px;height:16px;color:var(--resource)}.resource-input input{width:63px;padding:6px;min-height:36px;text-align:center}.bank-row{display:flex;align-items:center;gap:6px}.bank-row select{font-size:12px;padding:7px}.bank-row b{white-space:nowrap;font-size:11px}.choice-panel label{font-size:12px}.choice-panel h3{margin:22px 0 12px;font-size:13px}.offer-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.offer-columns>div>b{font-size:11px;font-weight:500;color:var(--muted)}.offer-columns .resource-input{gap:2px;font-size:10px}.offer-columns .resource-input input{width:38px;min-height:32px;padding:3px}.offer-columns .resource-input .icon{display:none}.trade-offer{background:#e1e8d5;border-radius:12px;padding:16px;margin-bottom:24px}.trade-offer h3{font-size:12px;margin-bottom:10px}.trade-offer>div{display:flex;gap:9px;align-items:center;font-size:11px;margin-bottom:7px}.trade-offer button{width:100%;margin-top:7px;font-size:12px}.winner{background:#e4e7cc;padding:22px 16px;border-radius:12px;margin-bottom:22px;text-align:center}.winner>span .icon{width:36px;height:36px;color:#ac8138}.winner h2{margin-top:13px;font-size:21px}.winner p{margin:8px 0 18px;font-size:12px}.winner button{width:100%;margin-top:6px}#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,15px);max-width:calc(100vw - 32px);background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:9px;z-index:100;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%)}dialog{border:0;border-radius:18px;background:var(--paper);color:var(--ink);padding:30px;width:min(640px,calc(100vw - 24px));max-height:85dvh;box-shadow:0 20px 100px #0c2c3650}dialog::backdrop{background:#16393670}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.dialog-heading h2{font-size:24px}.dialog-heading .square{background:#e9ebdf}.rules-copy{font-size:13px;line-height:1.9}.rules-copy h3{margin:24px 0 7px}.rules-copy>p+p{margin-top:12px}.rules-costs{background:#edf0e4;border-radius:10px;padding:14px;margin-top:15px;display:grid;gap:12px}.rules-costs>div{display:flex;align-items:center;gap:12px}.rules-costs>div>b{min-width:50px}.rules-costs>.icon{width:18px}body:has(dialog[open]){overflow:hidden}@media(min-width:1600px){.table{grid-template-columns:285px minmax(0,1fr) 295px}.home{grid-template-columns:400px minmax(0,1fr) 270px}.home #left-panel{padding-left:48px;padding-right:42px}.home-intro h1{font-size:48px}.board-area{min-height:calc(100dvh - 76px)}.activity-log{max-height:440px}}@media(max-width:1190px){.table{grid-template-columns:225px minmax(0,1fr) 235px}.home{grid-template-columns:320px minmax(0,1fr)}.home #right-panel{display:none}.home #left-panel{padding:35px 27px 24px}.home-intro h1{font-size:38px}#left-panel{padding:24px 15px}#right-panel{padding:25px 16px}.board-top{left:12px;right:12px;top:16px}.board-controls{top:92px;right:12px}.home .board-controls{top:18px}.turn-banner{padding:10px}.board-area{min-height:730px}.resource-hand{gap:6px}.resource-card{padding:10px 3px;width:66px}.resource-card>strong{margin-left:4px}.resource-card .icon{width:25px;height:25px}.tile-hint{bottom:180px}.home #board{inset:0 -25px 90px}.cost{gap:5px}.player{padding:10px 3px;gap:7px}}@media(max-width:950px){.table.playing{grid-template-columns:210px minmax(0,1fr)}.playing #right-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:24px}.playing .chat-section{margin-top:0}.playing .choice-panel{grid-column:1/-1;max-width:600px;width:100%;margin:auto}.playing .trade-offer{margin:0}.activity-log{max-height:200px}.table.in-room:not(.playing){grid-template-columns:280px minmax(0,1fr)}.in-room:not(.playing) #right-panel{display:none}.board-area{min-height:720px}.topbar{padding:0 22px}.brand{font-size:21px}#room-meta{gap:12px}.room-code{font-size:12px}.connection{font-size:11px}}@media(max-width:640px){.topbar{height:66px;padding:0 16px;gap:10px}.brand{font-size:19px;gap:8px}.brand-mark{width:31px;height:36px;border-radius:8px}.brand-mark .icon{width:24px;height:24px}.brand>span:last-child{display:block;line-height:1.2}.brand small{font-size:9px;letter-spacing:0;margin-top:2px}.topbar nav button{padding:8px}.topbar nav button>span{display:none}.header-note{display:none}#room-meta{gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:215px}.connection{font-size:10px}.room-code{font-size:10px;letter-spacing:.03em}#room-meta>.text-button{padding:4px;min-height:30px}#room-meta>.text-button>span{display:none}#room-meta>.square{width:30px;min-height:30px;padding:4px}.table,.table.home,.table.playing,.table.in-room:not(.playing){display:flex;flex-direction:column;min-height:calc(100dvh - 66px)}.table.home #left-panel{order:2;padding:27px 24px}.home .board-area{min-height:365px;height:365px;order:1}.home #board{inset:-45px 0 16px}.home .board-controls{right:12px;top:12px}.home #island-caption{bottom:14px}.home #island-caption>span:first-child{display:none}#island-caption strong{font-size:23px;letter-spacing:.12em;margin:1px 0}.home #island-caption>span:last-child{font-size:9px}.home .tile-hint{left:14px;bottom:12px;transform:none;font-size:9px}.home-intro h1{font-size:31px;line-height:1.45}.home-intro h1 br{display:none}.home-intro p{margin-top:9px;font-size:12px;line-height:1.8}.home-intro p br{display:none}.game-facts{margin:17px 0 20px;font-size:11px}.home-bottom{padding-top:27px}.practice-entry{margin-top:15px}.home #right-panel{display:none}.in-room:not(.playing) #left-panel{order:1;padding:26px}.in-room:not(.playing) .board-area{min-height:330px;height:330px;order:2}.in-room:not(.playing) #board{inset:-45px 0 0}.in-room:not(.playing) #island-caption{display:none}.in-room:not(.playing) .tile-hint{bottom:12px}.in-room:not(.playing) .board-controls{top:12px}.playing .board-area{order:1;min-height:530px;height:530px}.playing #board{inset:38px -8px 105px}.playing .board-top{top:13px;left:12px;right:12px}.turn-banner{gap:9px;padding:10px 12px}.turn-banner strong{font-size:12px}.turn-banner span:not(.turn-dot){font-size:10px}.playing .board-controls{right:12px;top:85px}.board-controls .square{width:35px;min-height:35px;padding:7px}.tile-hint{bottom:156px;font-size:10px}.hand-tray{bottom:18px;left:12px;right:12px}.hand-label{margin-bottom:8px}.resource-hand{gap:7px}.resource-card{width:62px;padding:10px 2px 7px}.resource-art .icon{width:25px;height:25px}.resource-card>strong{font-size:16px;margin-left:5px}.resource-card>span:not(.resource-art){font-size:9px}.hand-label strong{font-size:11px}.hand-label span{font-size:9px}.development-hand button{font-size:10px;min-height:30px}.playing #left-panel{order:2;padding:21px 18px}.playing .players{display:grid;grid-template-columns:1fr 1fr;gap:7px}.player{padding:8px;gap:8px}.avatar{width:30px;height:32px;border-radius:8px}.player-info strong{font-size:11px}.player-info>span{font-size:9px}.score b{font-size:18px}.score small{display:none}.awards{flex-direction:row;justify-content:space-between;padding:17px 1px 5px;gap:10px}.awards>span{font-size:9px;gap:4px}.awards b{margin-left:4px}.build-section{display:grid;grid-template-columns:1fr 1fr;column-gap:10px}.build-section>.panel-heading{grid-column:1/-1;margin-top:12px;margin-bottom:7px}.build-button{padding:9px 5px;gap:8px}.build-button>span>b{font-size:11px}.cost{gap:7px}.build-button>.icon{display:none}.turn-actions{grid-template-columns:1fr 1fr;margin-top:12px}.supply{flex-direction:row;justify-content:space-between;font-size:9px;margin-top:12px}.playing #right-panel{order:3;display:flex;flex-direction:column;padding:24px 22px;gap:22px}.playing .choice-panel{width:100%;max-width:none;margin:0}.activity-log{max-height:170px}.activity-log p,.chat-log p{font-size:12px}.chat-section{margin-top:0}.offer-columns{gap:25px}.offer-columns .resource-input{font-size:12px}.offer-columns .resource-input .icon{display:block}.offer-columns .resource-input input{width:50px;min-height:40px}.resource-input input{min-height:44px}.choice-panel h3{margin-top:18px}.choice-panel:has(form){scroll-margin-top:12px}.dialog-heading h2{font-size:19px}dialog{padding:22px}.rules-copy{font-size:12px}.rules-costs>div{gap:8px}.rules-costs .mini-resource{font-size:10px}.rules-costs .mini-resource .icon{width:12px;height:12px}#toast{font-size:12px;bottom:18px;width:max-content}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.entry-error{padding:12px;border:1px solid #a44330;background:#fff3e9;color:#7a3024;border-radius:8px;line-height:1.6}.topbar nav{display:flex;align-items:center;gap:12px}.topbar nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;white-space:nowrap}@media(max-width:600px){.topbar nav{gap:6px}.topbar nav a{font-size:12px}}.home-bottom a{color:inherit;text-decoration:none}.home-bottom a:hover{text-decoration:underline}.home{grid-template-columns:350px minmax(0,1fr) 310px}.home #left-panel{padding:34px 28px 24px}.home #right-panel{align-items:flex-start;background:#edf2e9;padding:30px 22px}.home-intro h1{font-size:38px}.home .board-area{min-height:780px}.home #board{inset:0 -45px 90px}.home-bottom{padding-top:24px}#entry-form>.join-row{margin:14px 0 24px}.create-options,.room-settings{margin-top:14px;border-top:1px solid #d6ded3;padding-top:12px}summary{cursor:pointer;font-size:13px;font-weight:600;min-height:40px;display:flex;align-items:center;gap:8px}summary:before{content:"+";font-size:18px;font-weight:400}details[open]>summary:before{content:"−"}.rules-options{border:0;padding:8px 0 0;margin:0;min-width:0}.rules-options legend{font-weight:600;font-size:13px}.variant-option{display:flex;align-items:flex-start;gap:10px;padding:12px 0;margin:0;font-weight:400;cursor:pointer}.variant-option input{width:20px;height:20px;min-height:20px;margin:3px 0;flex:none;accent-color:var(--ink)}.variant-option b{display:block;font-size:13px}.variant-option small{display:block;font-size:12px;line-height:1.7;color:var(--muted);margin-top:3px}.room-settings form>button{width:100%;font-size:12px;margin-top:8px}.rules-summary{font-size:12px;color:var(--muted);margin:10px 0;overflow-wrap:anywhere}.public-rooms{width:100%;min-width:0}.public-rooms>.panel-heading{margin-bottom:4px}.public-rooms h2{font-size:20px}.public-rooms>.small{font-size:12px;line-height:1.8}.public-rooms .text-button{font-size:12px}.list-message{padding:24px 0;font-size:13px;color:var(--muted);line-height:1.8}.list-error{color:#8a4031}.public-room{padding:17px 0;border-bottom:1px solid #d6dfd3}.public-room>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.public-room strong{font-size:13px;letter-spacing:.02em}.public-room p{font-size:12px;margin-top:6px;overflow-wrap:anywhere}.public-room>small{display:block;font-size:11px;color:var(--muted);margin:4px 0 10px}.public-room>button{width:100%;font-size:12px}.room-status{font-size:10px;border:1px solid #bdc9b8;border-radius:20px;padding:1px 7px;color:#56694e}.room-status.waiting{color:#38654a;background:#e0eadb}.retention-notice{padding:12px 13px;background:#eaf0e2;border:1px solid #d1dcc5;border-radius:9px;margin-bottom:12px}.retention-notice strong{display:block;font-size:12px}.retention-notice p{font-size:11px;line-height:1.7;color:#53654b;margin-top:3px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.retention-notice.has-deadline{background:#fff1d8;border-color:#d9c394}.retention-notice.has-deadline p{color:#79572f}.room-navigation{display:flex;flex-direction:column;gap:7px;margin-top:24px;padding-top:16px;border-top:1px solid #d6ded3}.room-navigation button{font-size:12px}.danger-button{background:#f3e6de;color:#8c3d30}.danger-button:hover:not(:disabled){background:#ecd3c8}.player-management{display:flex;flex-direction:column;gap:3px;flex:none}.player-management>button{font-size:10px;min-height:30px;padding:3px 8px;background:#e7ebdf}.player-management>.remove-bot{font-size:20px;min-height:40px;width:35px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#room-dialog{width:min(480px,calc(100vw - 24px))}#room-dialog-copy{font-size:14px;line-height:1.9}#room-dialog .dialog-heading h2{font-size:22px}.room-outcome{background:#f3e8ce;border:1px solid #d9c795;padding:13px;border-radius:9px;margin-bottom:18px;font-size:13px}.resource-card{border-top:4px solid var(--resource);background:linear-gradient(150deg,#fffdf3,#eeebdc)}.resource-card>strong{font-size:20px}.resource-art{background:color-mix(in srgb,var(--resource) 11%,transparent);width:44px;height:40px;border-radius:50%;margin:0 auto 7px}.build-icon{border:1px solid #d6dccb}.awards{flex-wrap:wrap}.topbar nav a{font-size:12px}.topbar nav{gap:4px}.home #island-caption strong{letter-spacing:.14em}@media(min-width:1600px){.home{grid-template-columns:380px minmax(0,1fr) 340px}.home #left-panel{padding:44px 36px 28px}.home-intro h1{font-size:44px}.home #right-panel{padding:40px 28px}}@media(max-width:1190px){.home{grid-template-columns:320px minmax(0,1fr)}.home #right-panel{display:block;grid-column:1/-1;padding:26px}.public-rooms #public-room-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:22px}.home .board-area{min-height:760px}.player-management>button{padding:3px 5px}.in-room #left-panel{padding-left:13px;padding-right:13px}}@media(max-width:640px){.topbar{height:auto;min-height:66px;padding:12px 14px;display:grid;grid-template-columns:auto 1fr;gap:6px 10px}.topbar nav{justify-content:flex-end;grid-column:2;grid-row:1}.topbar nav a{font-size:11px;padding:6px;white-space:normal;line-height:1.4;text-align:center}.topbar #room-meta:has(.room-code){grid-column:1/-1;grid-row:2;max-width:none;justify-content:space-between;padding-top:7px;border-top:1px solid #dce3d7;min-height:38px}.topbar #room-meta:has(.header-note){display:none}.room-code,.connection{font-size:11px}.home #right-panel{display:block;order:3;padding:26px 24px;background:#edf2e9}.public-rooms #public-room-results{display:block}.home .board-area{min-height:330px;height:330px}.home #board{inset:-45px 0 20px}.home #left-panel{padding:26px 24px}.home-intro h1{font-size:30px}.home .game-facts{margin-bottom:16px}.player-management{flex-direction:row}.player-management>button{min-height:44px;padding:7px 10px;font-size:11px}.room-navigation{flex-direction:row;flex-wrap:wrap;gap:8px}.room-navigation>button{flex:1;min-width:100px}.retention-notice p,.rules-summary{font-size:12px}.playing .player-info>span{white-space:normal;font-size:10px}.playing .awards{flex-direction:column;gap:9px}.playing .awards>span{font-size:11px}.playing .awards b{margin-left:auto;max-width:140px}.variant-option{padding:14px 0}.variant-option b{font-size:14px}.variant-option small{font-size:12px}.room-settings summary{min-height:44px}.resource-card{border-top-width:3px}.resource-art{width:37px;height:32px;margin-bottom:4px}.resource-card>strong{font-size:18px}.dialog-actions button{flex:1}.table.in-room:not(.playing) #left-panel{padding:24px}.public-room{padding:18px 0}.public-room>small{font-size:12px}.public-room strong{font-size:14px}}.load-more{width:100%;margin-top:16px}#transfer-choice{margin-top:7px}#room-dialog-copy>label{margin-top:18px;font-size:13px}.development-hand button{border:1px solid #c4c9ab;background:linear-gradient(135deg,#f6f1d9,#e6ead6 75%);box-shadow:inset 0 0 0 2px #f8f6e6}.development-hand button:not(:disabled):hover{background:#dce5c9}.resource-legend span{padding:5px 0}.resource-legend .icon{filter:drop-shadow(0 1px 0 #ffffff)}.resource-card.wood{background:linear-gradient(150deg,#fffdf3,#e2eadc)}.resource-card.brick{background:linear-gradient(150deg,#fffdf3,#efdfd0)}.resource-card.wheat{background:linear-gradient(150deg,#fffdf3,#f0e5c4)}.resource-card.sheep{background:linear-gradient(150deg,#fffdf3,#e6ebce)}.resource-card.ore{background:linear-gradient(150deg,#fffdf3,#dce5e4)}.resource-illustration{display:block;width:100%;height:100%;flex:none}.resource-legend{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}.resource-legend span{display:block;padding:0;aspect-ratio:1;max-width:72px}.resource-legend .resource-illustration{width:100%;height:100%;filter:drop-shadow(0 3px 3px #173b3d12)}.resource-art{width:54px;height:49px;background:none}.resource-art .resource-illustration{width:54px;height:49px}.resource-card>strong{display:block;margin:0;font-size:22px;line-height:1.2}.resource-card{padding:7px 6px 10px}.resource-card .resource-art{margin-bottom:6px}.home-intro h1{line-height:1.35}.home-intro p{margin-top:16px}.home .game-facts{gap:16px}.home .island-guide p{max-width:190px}@media(max-width:640px){.resource-art,.resource-art .resource-illustration{width:45px;height:42px}.resource-card{padding:6px 2px 8px}.resource-card>strong{font-size:20px}.resource-hand{gap:8px}.resource-card .resource-art{margin-bottom:5px}.home .game-facts{font-size:10px;gap:10px}.home .home-intro h1{font-size:30px}.home .home-intro h1 br{display:none}.home-intro p{margin-top:10px}}.secondary-panel{border-top:1px solid #d0dacb;padding-top:9px;margin-top:12px}.secondary-panel summary{font-size:14px;display:flex;justify-content:flex-start;min-height:44px}.secondary-panel summary small{margin-left:auto;font-size:11px;font-weight:400;color:var(--muted)}.secondary-panel .chat-section{margin-top:0}.secondary-panel .activity-log{max-height:260px}.secondary-panel .chat-log{max-height:170px}.playing #right-panel>.secondary-panel{min-width:0;width:100%}@media(max-width:640px){.playing #right-panel{gap:8px}.secondary-panel{margin-top:0}.secondary-panel .activity-log{max-height:180px}.secondary-panel .chat-log{max-height:160px}.secondary-panel summary small.chat-unread:not(:empty){color:var(--accent);font-weight:600}}@media(min-width:1191px){.home #right-panel{max-height:calc(100dvh - 76px);overflow-y:auto;align-self:start}.home .board-area{height:calc(100dvh - 76px);min-height:720px;max-height:1000px}}.fixed-nickname{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.fixed-nickname strong{font-size:22px;white-space:nowrap}.domestic-site .player-circle .circle-face{font-size:12px;white-space:nowrap}.circle-bot{position:absolute;top:-10px;right:-9px;border-radius:4px;padding:1px 3px;background:#315b54;color:#fff;font-size:9px}.domestic-site .player-info strong{white-space:normal;overflow:visible}:root{--app-height:100dvh;--visual-height:100dvh;--visual-top:0px}#stage-tools:empty,#play-dock:empty{display:none}.home #board{inset:24px 8px 150px}.home .tile-hint{bottom:132px}.in-room:not(.playing) #board{inset:20px 8px 80px}.topbar{padding-top:env(safe-area-inset-top);height:calc(76px + env(safe-area-inset-top))}body.at-table{position:fixed;inset:0;overflow:hidden;overscroll-behavior:none}.at-table #app{height:100%;min-height:0;overflow:hidden}.at-table .topbar{display:none}.table.playing{--board-pad-top:80px;--board-pad-bottom:132px;position:fixed;inset:0;display:block;width:100%;height:100dvh;min-height:0;overflow:hidden;background:var(--ocean);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.table.playing #left-panel,.table.playing #right-panel{display:none}.table.playing .board-area{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none}.table.playing #board{inset:0}.playing #island-caption,.playing .board-controls,.playing .tile-hint{display:none}#stage-tools{position:absolute;z-index:4;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));display:flex;justify-content:space-between;pointer-events:none}.stage-brand{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#173d3b;color:#f3d79c;pointer-events:auto;box-shadow:0 3px 14px #173b3b1c}.stage-brand .icon{width:28px;height:28px}.stage-utilities{display:flex;gap:6px;padding:3px;background:#f8f7efef;border:1px solid #fff9;border-radius:13px;box-shadow:0 3px 14px #173b3b14;pointer-events:auto}.stage-utilities button{position:relative;min-width:44px;width:44px;height:44px;padding:10px;background:transparent}.badge{position:absolute;top:0;right:0;min-width:17px;height:17px;display:grid;place-items:center;background:#8a391e;color:#fff;border-radius:10px;padding:0 3px;font-size:10px}.playing .board-top{position:absolute;z-index:3;top:max(12px,env(safe-area-inset-top));left:70px;right:240px;pointer-events:none}.playing .turn-banner{max-width:350px;min-height:50px;padding:7px 12px;gap:9px;background:#f8f7eff2;border:1px solid #fff8}.playing .turn-banner strong{font-size:13px;line-height:1.4}.playing .turn-banner span:not(.turn-dot){font-size:11px;line-height:1.5}.playing .dice-pair span{width:27px;height:27px}.task-shortcut{min-height:44px;padding:8px 10px;background:#e8d59e;pointer-events:auto;white-space:nowrap}.needs-attention{border:2px solid #a76d29!important}.needs-attention strong{color:#834819}#play-dock{position:absolute;z-index:4;bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));width:max-content;max-width:calc(100% - 24px);margin:auto;padding:5px;display:flex;gap:6px;border:1px solid #fff9;border-radius:14px;background:#f8f7eff2;box-shadow:0 6px 24px #173b3b20}#play-dock .build-section{display:flex;gap:4px;margin:0}#play-dock .build-button{display:flex;flex-direction:column;justify-content:center;gap:2px;width:68px;min-height:52px;margin:0;padding:4px;background:transparent;font-size:11px;border-radius:9px;text-align:center}#play-dock .build-button .icon{display:block;width:22px;height:22px}#play-dock .build-button.selected{background:#d7e4cb;outline:2px solid #4b7767}#play-dock .turn-actions{display:flex;gap:5px;margin:0}#play-dock .turn-actions button{min-width:92px;min-height:52px;padding:7px 12px;font-size:12px}.playing .hand-tray{position:absolute;bottom:calc(74px + max(12px,env(safe-area-inset-bottom)));left:12px;right:12px;max-width:none;margin:auto;pointer-events:none}.playing .resource-hand{display:flex;gap:5px;justify-content:center}.playing .resource-card{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;width:61px;height:42px;padding:4px;border-radius:8px;border-top-width:2px}.playing .resource-art,.playing .resource-art .resource-illustration{width:29px;height:29px;margin:0}.playing .resource-card>strong{font-size:18px;margin:0}.playing .hand-entry{min-height:44px;height:44px;min-width:57px;padding:7px;background:#f8f2dc;border:1px solid #d6cfae;pointer-events:auto}dialog{max-height:calc(var(--visual-height) - 24px);overscroll-behavior:contain}#stage-dialog{position:fixed;top:calc(var(--visual-top) + var(--visual-height)/2);bottom:auto;left:0;right:0;transform:translateY(-50%);width:min(520px,calc(100vw - 24px));max-width:none;max-height:calc(var(--visual-height) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:0;margin:0 auto;overflow:hidden;border:1px solid #d1d9c6;border-radius:18px;box-shadow:0 14px 70px #123c3d45;background:var(--paper)}#stage-dialog[open]{display:flex;flex-direction:column}#stage-dialog::backdrop{background:#123a3b30}#stage-dialog>.dialog-heading{flex:none;padding:12px 16px;margin:0;border-bottom:1px solid #dce1d1}#stage-dialog-title{font-size:17px}#stage-dialog .square{min-width:44px;min-height:44px}#stage-dialog-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 20px;scroll-padding:12px}#stage-dialog-content .choice-panel{margin:0;max-width:none}#stage-dialog-content .choice-panel>.panel-heading{display:none}#stage-dialog-content .choice-panel>h2{display:none}#stage-dialog-content .choice-panel p{margin:0 0 12px}#stage-dialog-content .players{display:flex;flex-direction:column}#stage-dialog-content .player{padding:12px 8px}#stage-dialog-content .player-info strong{font-size:14px}#stage-dialog-content .player-info>span{font-size:12px;white-space:normal}#stage-dialog-content .score small{display:inline}#stage-dialog-content .awards{flex-direction:column;gap:10px}#stage-dialog-content .awards b{max-width:200px}#stage-dialog-content .chat-section{margin:0;display:flex;flex-direction:column;gap:12px}#stage-dialog-content .chat-log{max-height:min(46dvh,380px);overflow-y:auto;margin:0}#stage-dialog-content .chat-log p,#stage-dialog-content .activity-log p{font-size:13px}#stage-dialog-content .activity-log{max-height:none;overflow:visible}#stage-dialog-content #chat-form{position:sticky;bottom:-1px;padding:4px 0;background:var(--paper);flex:none}#stage-dialog-content input,#stage-dialog-content select{font-size:16px;min-height:44px}#stage-dialog-content #chat-message{font-size:16px}#stage-dialog-content #chat-form button{min-width:44px}#stage-dialog-content .development-hand{max-height:none;justify-content:flex-start;margin:0 0 16px}#stage-dialog-content .development-hand button{min-height:44px}#stage-dialog-content .trade-offer{margin:0;padding:12px}#stage-dialog-content .resource-input input{width:64px}#decision-panel:focus{outline:none}#stage-dialog-content .bank-row{gap:8px}#stage-dialog-content .bank-row select{padding:8px}#stage-dialog-content .offer-columns{gap:22px}#stage-dialog-content .settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.settings-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:12px}.settings-lobby{display:flex;justify-content:space-between;align-items:center;min-height:44px;margin-top:12px}.bank-stock{display:flex;gap:14px;margin-top:18px}.bank-stock>span{display:flex;align-items:center;gap:4px}.bank-stock .icon{color:var(--resource)}#stage-dialog-content .room-navigation{display:flex;flex-wrap:wrap;flex-direction:row}#stage-dialog-content .room-navigation button{flex:1;min-width:120px}.at-table #toast{bottom:max(145px,env(safe-area-inset-bottom));z-index:30}@media(max-width:700px){.table.playing{--board-pad-top:116px;--board-pad-bottom:128px}#stage-tools{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right))}.stage-utilities{gap:2px;padding:0}.playing .board-top{top:calc(60px + env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right))}.playing .turn-banner{max-width:390px;min-height:46px;padding:4px 10px}.playing .turn-banner>div:not(.dice-pair){display:flex;align-items:center;justify-content:space-between;gap:7px}.playing .turn-banner strong{font-size:12px}.playing .turn-banner span:not(.turn-dot){font-size:10px}.playing .turn-banner .task-shortcut{min-height:40px}.playing .dice-pair span{width:24px;height:24px}#play-dock{left:max(6px,env(safe-area-inset-left));right:max(6px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));max-width:calc(100% - 12px);gap:4px;padding:4px}#play-dock .build-section{gap:2px}#play-dock .build-button{min-width:44px;width:44px;min-height:48px;font-size:10px;gap:1px}#play-dock .turn-actions{gap:3px}#play-dock .turn-actions button{flex-direction:column;min-width:44px;min-height:48px;padding:4px;font-size:10px;gap:1px}.playing .hand-tray{bottom:calc(69px + max(8px,env(safe-area-inset-bottom)));left:8px;right:8px}.playing .resource-card{width:49px;height:39px;gap:2px;padding:2px}.playing .resource-art,.playing .resource-art .resource-illustration{width:26px;height:26px}.playing .resource-card>strong{font-size:16px}.playing .hand-entry{min-width:44px;height:44px;min-height:44px;padding:5px;gap:3px}#stage-dialog-content{padding:14px}#stage-dialog-content .offer-columns{gap:12px}#stage-dialog-content .resource-input{font-size:12px}#stage-dialog-content .resource-input input{width:54px}.home #board{inset:0 0 56px}.home .tile-hint{bottom:52px}.in-room:not(.playing) #board{inset:0 0 28px}}@media(orientation:landscape)and (max-height:600px){.table.playing{--board-pad-top:64px;--board-pad-bottom:84px}#stage-tools{top:max(6px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right))}.stage-utilities{gap:2px;padding:0}.playing .board-top{top:max(6px,env(safe-area-inset-top));left:calc(62px + env(safe-area-inset-left));right:calc(208px + env(safe-area-inset-right))}.playing .turn-banner{min-height:44px;padding:3px 9px;max-width:330px}.playing .turn-banner>div:not(.dice-pair){display:flex;align-items:center;gap:8px}.playing .turn-banner strong{font-size:12px}.playing .turn-banner span:not(.turn-dot){font-size:10px}.playing .turn-banner .task-shortcut{min-height:40px}#play-dock{left:auto;right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));margin:0;padding:4px;gap:4px}#play-dock .build-section{gap:2px}#play-dock .build-button{width:44px;min-height:48px;padding:3px;gap:1px;font-size:10px}#play-dock .turn-actions{gap:3px}#play-dock .turn-actions button{min-width:44px;min-height:48px;padding:4px;flex-direction:column;gap:1px;font-size:10px}.playing .hand-tray{bottom:max(15px,env(safe-area-inset-bottom));left:max(8px,env(safe-area-inset-left));right:auto;width:auto}.playing .resource-hand{gap:3px}.playing .resource-card{width:45px;height:39px;padding:2px;gap:2px}.playing .resource-art,.playing .resource-art .resource-illustration{width:24px;height:24px}.playing .resource-card>strong{font-size:15px}.playing .hand-entry{min-width:44px;min-height:44px;padding:4px;gap:2px}#stage-dialog-content .chat-log{max-height:calc(var(--visual-height) - 190px)}}@media(max-width:359px){.playing .resource-hand{gap:3px}.playing .resource-card{width:43px}.playing .resource-art,.playing .resource-art .resource-illustration{width:23px;height:23px}#stage-dialog-content .resource-input .icon{width:14px;height:14px}#stage-dialog-content .offer-columns{gap:8px}#stage-dialog-content .resource-input input{width:48px}}#stage-feedback:empty{display:none}#stage-feedback{flex:none;padding:10px 16px;color:#803b21;background:#f8e7cb;border-bottom:1px solid #ddbd87;font-size:13px}@media(orientation:landscape)and (max-height:600px){.table.playing.compact-hud .resource-hand{gap:3px}.table.playing.compact-hud .resource-card{width:36px;gap:1px;padding:2px}.table.playing.compact-hud .resource-art,.table.playing.compact-hud .resource-art .resource-illustration{width:16px;height:20px}.table.playing.compact-hud .resource-card>strong{font-size:13px}.table.playing.stacked-hud{--board-pad-bottom:128px}.playing.stacked-hud #play-dock{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));margin:auto}.playing.stacked-hud .hand-tray{bottom:calc(69px + max(8px,env(safe-area-inset-bottom)));left:8px;right:8px}}.connection-warning{color:#8b3d21!important;font-weight:600}@media(orientation:portrait)and (max-width:700px){.playing .tile-hint{display:block;z-index:2;top:calc(113px + env(safe-area-inset-top));bottom:auto;left:50%;transform:translate(-50%);max-width:calc(100% - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;opacity:.8}}.playing .turn-banner strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playing .turn-banner>div>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-primary{display:flex;align-items:start;gap:8px}#camera-toolbar{display:flex;gap:2px;padding:3px;border:1px solid #fff9;border-radius:12px;background:#f8f7eff2;pointer-events:auto}#camera-toolbar button{min-width:44px;min-height:44px;padding:5px 7px;font-size:11px;background:transparent;white-space:nowrap}#camera-toolbar button[aria-pressed=true]{color:#265f49;background:#e1ead7}#camera-toolbar[data-follow-state=manual] button[data-action=toggleFollow]{color:#785125;background:#f1e4c9}.playing .board-top{left:190px}#action-feedback{position:absolute;z-index:3;top:calc(74px + env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));display:flex;align-items:center;gap:6px;width:max-content;max-width:min(510px,calc(100% - 24px));padding:4px 5px 4px 12px;color:#24473d;background:#faf8ecef;border:1px solid #d4ddc7;border-left:3px solid #70915d;border-radius:10px;box-shadow:0 3px 16px #24473d12}#action-feedback[hidden]{display:none}#action-feedback p{min-width:0;margin:0;font-size:12px;line-height:1.6;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}#action-feedback button{flex:none;min-width:44px;min-height:44px;padding:4px 7px;font-size:12px;color:#285747;background:#e6ecda}#action-feedback button[hidden]{display:none}#action-feedback [data-action=dismissAction]{background:transparent;color:#627a6b;font-size:18px}.action-preferences{display:grid;gap:12px;padding:14px;margin-bottom:16px;border:1px solid #d5deca;border-radius:10px}.action-preferences label{display:flex;align-items:center;gap:8px;font-size:14px}.action-preferences input{width:20px;height:20px;min-height:20px!important}.action-preferences p{margin:0;font-size:12px;color:#566c60;line-height:1.7}.reduced-action-motion *,.reduced-action-motion *:before,.reduced-action-motion *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}@media(max-width:700px){.stage-primary{gap:5px}#camera-toolbar{padding:0}#camera-toolbar button{padding:4px}.playing .board-top{left:max(8px,env(safe-area-inset-left))}#action-feedback{top:calc(116px + env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));max-width:calc(100% - 16px);padding-left:8px;gap:3px}#action-feedback p{font-size:11px}.has-action-feedback .tile-hint{visibility:hidden}}@media(orientation:landscape)and (max-height:600px){.playing .board-top{left:calc(180px + env(safe-area-inset-left))}#action-feedback{top:calc(62px + env(safe-area-inset-top));max-width:min(510px,calc(100% - 24px))}}@media(max-width:359px){.stage-primary{gap:3px}.stage-brand{display:none}.stage-utilities{gap:0}}.chat-report{font:inherit;font-size:.72rem;padding:.15rem .35rem;min-height:24px;background:transparent;color:var(--muted,#657878);border:0;text-decoration:underline;text-underline-offset:3px}#report-dialog{width:min(520px,calc(100vw - 24px));max-height:calc(var(--visual-height,100dvh) - 24px);overflow:auto;box-sizing:border-box}#report-dialog p{line-height:1.65;overflow-wrap:anywhere}#report-dialog a{color:inherit;text-decoration:underline}.report-context{font-weight:600}#camera-toolbar button{flex-direction:column;gap:1px;line-height:1.2;padding:4px 6px}#camera-toolbar button .icon{width:19px;height:19px}#camera-toolbar button span{font-size:10px}.turn-description{display:flex;align-items:center;gap:4px}.turn-description .icon{width:14px;height:14px;flex:none}.dice-pair{align-items:center;gap:4px}.dice-pair>span{display:grid;place-items:center;padding:1px}.die-face{display:block;width:100%;height:100%}.dice-pair>b{font-size:13px;margin-left:2px;font-variant-numeric:tabular-nums;color:#344f43}#stage-dialog-content .game-goal{display:flex;align-items:center;gap:6px;padding:0 0 10px;border-bottom:1px solid #d9dfd1;font-size:12px}.game-goal>.icon{width:24px;height:24px;color:#9a732f}.game-goal>strong{font-size:24px;line-height:1}.game-goal>small{margin-left:auto;color:#5d7263;font-size:11px}.player-stat-legend{display:flex;justify-content:flex-end;align-items:center;gap:5px;margin:10px 4px 0;color:#647769;font-size:10px}.player-stat-legend .icon{width:14px;height:14px}#stage-dialog-content .player-stats{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:4px;color:#57705d}.player-stats>span{display:inline-flex;align-items:center;gap:4px;font-size:12px;line-height:1.4}.player-stats .icon{width:17px;height:17px}.player-stats b{font-weight:600;font-variant-numeric:tabular-nums}.player-stats .player-offline{color:#8c4e30;font-size:10px}.player-stats .player-turn{color:#2b684b;font-size:10px}#stage-dialog-content .player.active{border-radius:10px;background:#e5ecd8;box-shadow:inset 3px 0 #68885a}#stage-dialog-content .player .avatar{border:2px solid #f9f8ec;box-shadow:0 0 0 1px #70836a66}#stage-dialog-content .player .score b{font-size:24px}#stage-dialog-content .awards{margin-top:12px;padding-top:12px;border-top:1px solid #d9dfd1}#stage-dialog-content .awards>span{font-size:12px}.chat-section .chat-footer{display:flex;justify-content:flex-end;margin-top:-8px}.chat-footer .text-button{font-size:11px;min-height:32px;padding:4px}.chat-footer .icon{width:15px;height:15px}#stage-dialog-content .chat-log{padding:2px}#stage-dialog-content .chat-log .chat-bubble{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;margin:0 0 10px;padding:9px 11px;border:1px solid #dce4d4;border-radius:11px 11px 11px 3px;background:#edf1e5}.chat-bubble>strong{font-size:11px;color:#47684d}.chat-bubble>span{grid-column:1/-1;grid-row:2;white-space:pre-wrap;overflow-wrap:anywhere}#stage-dialog-content .chat-bubble .chat-report{grid-column:2;grid-row:1;display:flex;align-items:center;gap:4px;min-height:24px;padding:0;text-decoration:none;color:#60735f}.chat-report .icon{width:13px;height:13px}.chat-report small{font-size:10px;font-variant-numeric:tabular-nums}.chat-empty,.hand-empty{display:grid;justify-items:center;align-content:center;gap:10px;min-height:100px;width:100%;color:#6b806b}.chat-empty>.icon,.hand-empty>.icon{width:40px;height:40px;stroke-width:1.35}#stage-dialog-content .chat-empty p,.hand-empty p{font-size:12px;margin:0}.chat-empty{min-height:125px}#stage-dialog-content .development-hand button{min-width:90px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;position:relative;font-size:12px}#stage-dialog-content .development-hand button>.icon{width:30px;height:30px}#stage-dialog-content .development-hand button>small{position:absolute;top:4px;right:5px;color:#915e24}.piece-stock{display:flex;align-items:center;justify-content:space-around;gap:10px;padding:14px 8px;margin-top:14px;background:#e9eddf;border-radius:10px}.piece-stock>span{display:flex;align-items:center;gap:6px;font-size:16px}.piece-stock .icon{width:25px;height:25px;color:#476a4d}.piece-stock small{font-size:10px;color:#687b65}.bank-stock{flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:13px}.bank-stock>small{font-size:11px;color:#647863}.bank-stock b{font-weight:600;font-variant-numeric:tabular-nums}.action-preferences{gap:10px}.action-preferences label>.icon{width:17px;height:17px}.preference-help{border-top:1px solid #d7e0cc;padding-top:4px}.preference-help summary{min-height:32px;font-size:11px;color:#5f735d;font-weight:400}.settings-grid button{gap:7px;font-size:12px}.settings-grid button>.icon{width:20px;height:20px}.decision-submit{flex:none;display:flex;align-items:center;gap:10px;margin-top:12px;padding:9px 0 2px;background:var(--paper);border-top:1px solid #d9dfcf}.decision-submit>.quantity-summary{flex:1;min-width:0;font-size:12px;color:#7c5d2d;font-variant-numeric:tabular-nums;white-space:nowrap}.decision-submit>.quantity-summary.complete{color:#2d6d48}.decision-submit>button{min-height:44px;flex:1;font-size:12px;padding:8px 12px;white-space:nowrap}#stage-dialog-content:has(.quantity-choice){display:flex;flex-direction:column;overflow:hidden}#decision-panel:has(.quantity-choice),#stage-dialog-content .quantity-choice,.quantity-choice>form{display:flex;flex-direction:column;flex:1;min-height:0}#stage-dialog-content .quantity-choice>p{flex:none}.quantity-fields{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1px 3px 1px 1px;scroll-padding:8px}.quantity-fields .resource-input{margin:7px 0}@media(max-width:359px){.player-stats>span{font-size:11px}.piece-stock{padding:12px 5px;gap:7px}.piece-stock>span{gap:4px;font-size:15px}.piece-stock .icon{width:22px;height:22px}}@media(orientation:landscape)and (max-height:600px){#stage-dialog-content .player{padding:9px 8px}.chat-empty{min-height:70px}}.table.home{grid-template-columns:minmax(310px,360px) minmax(320px,1fr) minmax(220px,270px);align-items:start}.home #left-panel{padding:26px 26px 20px}.home .home-intro h1{font-size:30px;line-height:1.35}.home .home-intro p{margin:6px 0 22px;font-size:12px}.home #entry-form>.join-row{margin:10px 0 22px}.create-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.create-heading h2{font-size:17px}.create-heading select{width:auto;padding:6px 26px 6px 10px;min-height:40px;font-size:12px}.home .create-options{margin-top:12px;padding-top:0;border:0}.count-options{min-width:0;border:0;padding:0;margin:14px 0 0}.count-options legend,.rules-options legend{font-size:12px;font-weight:600;margin-bottom:7px;padding:0}.count-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.count-buttons label{position:relative;margin:0;cursor:pointer}.count-buttons input,.variant-card input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0}.count-buttons label>span{display:flex;align-items:baseline;justify-content:center;gap:4px;min-height:46px;padding:6px;border:1px solid #b8c6bd;border-radius:9px;background:#fdfbf3;font-size:11px}.count-buttons b{font-size:20px}.count-buttons input:checked+span{background:#234d4b;border-color:#234d4b;color:#fff9df}.count-buttons input:focus-visible+span,.variant-card:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.rule-match{font-size:11px;color:#496158;line-height:1.6;margin:8px 0 13px;overflow-wrap:anywhere}.rules-options{padding:0}.rules-options legend small{font-size:10px;font-weight:400;color:var(--muted);margin-left:5px}.variant-cards{display:grid;gap:7px}.variant-card{position:relative;display:flex;align-items:center;gap:10px;min-height:54px;padding:9px 11px;margin:0;border:1px solid #c3cfc4;border-radius:9px;background:#fffdf5;font-weight:400;cursor:pointer}.variant-card>span{flex:1;min-width:0}.variant-card b{display:block;font-size:12px}.variant-card small{display:block;color:var(--muted);font-size:10px;line-height:1.6}.variant-card>.icon:first-of-type{width:25px;height:25px;color:#426d63}.variant-card>.icon:last-child{width:18px;height:18px;border:1px solid #c4cfc1;border-radius:5px;padding:2px;color:transparent}.variant-card:has(input:checked){border-color:#386d60;background:#e8f0e2;box-shadow:inset 3px 0 #386d60}.variant-card:has(input:checked)>.icon:last-child{color:#fff;background:#386d60;border-color:#386d60}.rule-compatibility{padding:10px;margin:10px 0;border-radius:8px;font-size:12px;background:#fff0d6;color:#80522b}.home #entry-form .large{margin:14px 0 10px;padding:11px 14px}.home .practice-entry{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px;margin:0}.practice-entry>span{color:var(--muted);font-size:10px}.home .home-bottom{margin-top:14px;padding-top:12px;font-size:10px}.home .resume-button{margin-top:10px}.home .board-area{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto minmax(280px,1fr) auto;gap:0;padding:20px 16px 16px;height:clamp(480px,calc(100dvh - 76px),900px);min-height:0;max-height:none}.home #board{position:relative;inset:auto;grid-row:2;grid-column:1/-1;height:100%;min-height:0;min-width:0}.home #island-caption{position:static;grid-row:1;grid-column:1/-1;padding:0 0 12px;text-align:center}.home #island-caption strong{font-size:25px;letter-spacing:.12em;line-height:1.4;margin:0}.home #island-caption>span{display:block;font-size:10px;margin-top:4px}.home .board-controls{position:static;grid-row:3;grid-column:2;align-self:center;gap:6px;margin-top:10px}.home .board-controls button{min-height:44px;width:44px}.home .tile-hint{position:static;transform:none;grid-row:3;grid-column:1;align-self:center;padding:10px 10px 0 0;font-size:11px;white-space:normal;line-height:1.6;overflow-wrap:anywhere}.home #hand,.home #turn-banner{display:none}.home #right-panel{max-height:none;overflow:visible;padding:26px 20px}.home .public-rooms h2{font-size:17px}.home .list-message{padding:16px 0}.room-settings .panel-heading{margin-bottom:10px}.room-settings .panel-heading .square{min-height:44px;width:44px}#practice-dialog{width:min(420px,calc(100vw - 24px));padding:22px;max-height:calc(100dvh - 24px);overflow-y:auto}#practice-dialog .dialog-heading{margin-bottom:8px}#practice-title{font-size:21px}#practice-start{width:100%;margin-top:12px}#practice-feedback:not(:empty){color:#914631;font-size:12px;margin-top:10px}.practice-seats{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:18px;padding:13px 8px;background:#e7ecdf;border-radius:10px}.practice-seats>span{display:inline-flex;align-items:center;gap:7px;font-size:13px}.practice-seats b{font-size:20px}@media(max-width:1250px){.table.home{grid-template-columns:minmax(300px,340px) minmax(0,1fr)}.home #right-panel{grid-column:1/-1;display:block;padding:22px 26px}.home .public-rooms #public-room-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 22px}.home .board-area{height:clamp(460px,calc(100dvh - 76px),760px)}}@media(max-width:760px){.table.home{display:grid;grid-template-columns:minmax(0,1fr)}.home .board-area{order:0;grid-row:1;width:100%;height:clamp(300px,53vw,430px);min-height:0;grid-template-rows:auto minmax(180px,1fr) auto;padding:12px 14px}.home #left-panel{order:1;grid-row:2;width:100%;padding:24px max(20px,calc((100% - 440px)/2))}.home #right-panel{order:2;grid-row:3;padding:24px max(20px,calc((100% - 440px)/2))}.home #island-caption{padding-bottom:0}.home #island-caption strong{font-size:21px}.home #island-caption>span{display:none}.home .tile-hint{font-size:10px;padding-top:5px}.home .board-controls{margin-top:4px}.home .home-intro h1{font-size:28px}.home .public-rooms #public-room-results{display:block}.home .topbar{min-width:0}}@media(max-width:380px){.topbar{gap:6px;padding-left:10px;padding-right:10px}.brand{font-size:17px}.topbar nav{gap:0}.topbar nav button{padding:7px;font-size:11px}}@media(max-height:560px){#practice-dialog{padding:14px 18px}#practice-dialog .variant-card{min-height:44px;padding:5px 10px}#practice-dialog .practice-seats{margin-top:10px;padding:7px}}@media(min-width:600px)and (max-height:560px){#practice-dialog{width:min(720px,calc(100vw - 24px))}#practice-form{display:grid;grid-template-columns:1fr 1fr;column-gap:18px;align-items:center}#practice-options{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:18px;align-items:start}#practice-options .count-options{grid-column:1;grid-row:1;margin-top:0}#practice-options .rule-match{grid-column:1;grid-row:2;margin-bottom:0}#practice-options .rules-options{grid-column:2;grid-row:1/3}#practice-options .rule-compatibility{grid-column:1/-1}#practice-dialog .practice-seats,#practice-start{margin-top:10px;min-height:44px}#practice-feedback:empty{display:none}#practice-feedback:not(:empty){grid-column:1/-1}}body.at-home{position:fixed;inset:0;overflow:hidden;overscroll-behavior:none}.at-home #app{height:100%;min-height:0;overflow:hidden}.at-home .topbar{position:fixed;z-index:4;inset:0 0 auto;height:76px;min-height:0;display:flex;padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));background:transparent;border:0}.at-home .topbar .brand{padding:5px 10px 5px 5px;border-radius:14px;background:#f8f7efeb;font-size:21px}.at-home .topbar nav{display:flex;gap:5px;padding:3px;border-radius:12px;background:#f8f7efed}.at-home .topbar nav button,.at-home .topbar nav a{min-width:44px;min-height:44px;padding:10px;margin:0}.at-home .topbar nav button>span,.at-home #room-meta{display:none}.table.home{position:fixed;inset:0;display:block;width:100%;height:100dvh;min-height:0;overflow:hidden;background:var(--ocean)}.table.home>#left-panel,.table.home>#right-panel{display:none}.home .board-area{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;max-height:none;padding:0}.home #board{position:absolute;inset:0;width:100%;height:100%;min-height:0}.home #island-caption,.home .tile-hint{display:none}.home .board-controls{position:absolute;z-index:4;top:auto;bottom:max(14px,env(safe-area-inset-bottom));right:max(14px,env(safe-area-inset-right));display:flex;margin:0;padding:3px;border-radius:12px;background:#f8f7efed}.home .board-controls button{width:44px;min-height:44px;background:transparent}#home-dock{position:absolute;z-index:4;bottom:max(14px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;gap:6px;width:max-content;max-width:calc(100% - 24px);padding:5px;border-radius:14px;border:1px solid #fff9;background:#f8f7efed;box-shadow:0 4px 24px #173b3b20}#home-dock button{min-height:48px;padding:10px 16px;white-space:nowrap;font-size:13px}#home-dock[hidden],#player-orbit:empty{display:none}#entry-dialog,#rooms-dialog{position:fixed;top:calc(var(--visual-top) + var(--visual-height)/2);transform:translateY(-50%);margin:0 auto;width:min(460px,calc(100vw - 24px));max-height:calc(var(--visual-height) - 24px);padding:0;overflow:hidden}#entry-dialog[open],#rooms-dialog[open]{display:flex;flex-direction:column}#entry-dialog>.dialog-heading,#rooms-dialog>.dialog-heading{flex:none;padding:12px 18px;margin:0;border-bottom:1px solid #dce1d1}#entry-dialog .dialog-heading h2,#rooms-dialog .dialog-heading h2{font-size:18px}#entry-dialog .square,#rooms-dialog .square{width:44px;min-height:44px}#entry-content,#rooms-content{padding:18px 22px;min-height:0;overflow-y:auto;overscroll-behavior:contain}#entry-content .home-intro{display:none}#entry-content .home-bottom{margin-top:15px;padding-top:8px;font-size:10px}#entry-content .create-heading{margin-top:16px}#entry-content .create-heading select{margin:0}#entry-content #create-room{width:100%;min-height:44px;margin-top:14px}#entry-content input,#entry-content select{font-size:16px;min-height:44px}#entry-content .join-row{margin-top:9px}#entry-content .practice-entry{margin-top:10px}#rooms-content .public-rooms>.panel-heading h2{display:none}#rooms-content .public-rooms>.panel-heading{justify-content:flex-end;margin:0}#player-orbit{position:absolute;z-index:4;top:max(78px,calc(66px + env(safe-area-inset-top)));right:max(14px,env(safe-area-inset-right));display:flex;align-items:center;gap:8px;padding:5px 3px 9px;pointer-events:none}.player-circle{position:relative;width:44px;height:44px;min-height:44px;flex:none;display:grid;place-items:center;padding:3px;border:3px solid var(--player);border-radius:50%;background:#f9f5e9;box-shadow:0 2px 9px #173b3b20;pointer-events:auto}.player-circle .circle-face{display:grid;place-items:center;font-size:17px;font-weight:700;color:#244c48}.player-circle .circle-face>.icon{width:24px;height:24px}.circle-score{position:absolute;right:-5px;bottom:-5px;min-width:20px;height:20px;display:grid;place-items:center;padding:1px 4px;border:1px solid #bccab9;border-radius:10px;background:#fff9e9;color:#244c48;font-size:11px;line-height:1}.circle-turn{position:absolute;top:-14px;left:50%;transform:translate(-50%) rotate(90deg);width:19px;height:19px;border-radius:50%;background:#244c48;color:#fff9e9}.circle-turn>.icon{width:17px;height:17px}.player-circle[aria-current=true]{outline:2px solid #fff9e9;outline-offset:2px}.circle-self{position:absolute;left:-7px;bottom:-5px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#244c48;color:#fff9e9;font-size:10px}.circle-offline{position:absolute;top:-6px;right:-7px;width:18px;height:18px;border-radius:50%;background:#faf8ec;color:#633d29}.circle-offline .icon{width:16px;height:16px}.player-detail{text-align:center}.detail-avatar{margin:0 auto 12px;width:64px;height:64px;display:grid;place-items:center;border:4px solid var(--player);border-radius:50%;font-size:26px}.detail-avatar .icon{width:34px;height:34px}.player-detail h3{margin:0;font-size:19px;overflow-wrap:anywhere}.player-detail h3 small{font-size:12px}.player-detail p{font-size:12px;margin-top:7px}.public-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px 0}.public-stats>span{display:flex;align-items:center;justify-content:center;gap:5px;padding:10px;background:#e9eddf;border-radius:10px;font-size:12px}.public-stats .icon{width:22px;height:22px}.public-stats b{font-size:20px}#action-feedback{top:0;left:0;max-width:min(230px,70vw);min-height:0;width:max-content;padding:7px 11px;gap:0;transform:translate(-50%,calc(-100% - 14px));pointer-events:none;border:1px solid #fff9;border-radius:10px;background:#244c48f2;color:#fff9e9;box-shadow:0 3px 14px #123b3d30}#action-feedback:after{content:"";position:absolute;left:50%;bottom:-7px;transform:translate(-50%);border:7px solid transparent;border-top-color:#244c48;border-bottom:0}#action-feedback p{font-size:12px;line-height:1.45;-webkit-line-clamp:2}#action-feedback button{display:none}.playing.has-action-feedback .tile-hint{visibility:visible}.playing .tile-hint{display:none}@media(max-width:700px){.at-home .topbar{height:calc(66px + env(safe-area-inset-top));padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) 8px max(8px,env(safe-area-inset-left))}.at-home .topbar .brand{font-size:18px;gap:6px}.at-home .topbar .brand small{display:none}.at-home .topbar nav{gap:0}.at-home .topbar nav a{font-size:11px;max-width:88px;padding:6px}#home-dock{bottom:max(12px,env(safe-area-inset-bottom));gap:3px;padding:4px}#home-dock button{font-size:12px;padding:8px 10px;gap:5px}.home .board-controls{top:calc(76px + env(safe-area-inset-top));bottom:auto;right:max(8px,env(safe-area-inset-right));flex-direction:column;gap:0;padding:1px}#player-orbit{top:calc(66px + env(safe-area-inset-top));right:0;left:0;justify-content:center;gap:8px}.playing .board-top{top:calc(128px + env(safe-area-inset-top));left:8px;right:8px}.playing .turn-banner{max-width:390px;margin:auto}.table.playing{--board-pad-top:186px}#entry-content,#rooms-content{padding:14px 18px}}@media(orientation:landscape)and (max-height:600px){#player-orbit{top:calc(10px + env(safe-area-inset-top));left:50%;right:auto;transform:translate(-50%);gap:4px}.player-circle{width:40px;height:40px;min-height:40px}.playing #camera-toolbar{display:none}.playing .stage-utilities{gap:0}.playing .board-top{top:calc(8px + env(safe-area-inset-top));left:60px;right:auto;width:132px}.playing .turn-banner{min-height:44px;max-width:132px;padding:4px 6px;gap:4px}.playing .turn-banner>div:not(.dice-pair){display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:1px}.playing .turn-banner strong{max-width:72px;font-size:11px}.playing .turn-banner .turn-description{max-width:72px;font-size:9px}.playing .turn-dot{display:none}.playing .turn-banner .dice-pair{gap:2px;margin-left:auto}.playing .dice-pair span{width:18px;height:18px}.playing .dice-pair>b{font-size:11px;margin:0}.playing .turn-banner .task-shortcut{padding:4px;min-width:40px;font-size:10px}.table.playing{--board-pad-top:78px}.playing.compact-hud .stage-brand{display:none}.playing.compact-hud .board-top{left:max(8px,env(safe-area-inset-left));width:106px}.playing.compact-hud #player-orbit{left:calc(max(8px,env(safe-area-inset-left)) + 112px);transform:none;padding-left:0;padding-right:0}.playing.compact-hud .stage-utilities button{width:40px;min-width:40px;padding:8px}.home .board-controls{top:8px;bottom:auto;right:8px;flex-direction:row}.at-home .topbar{right:112px}.at-home .topbar nav a{max-width:78px}#entry-dialog{width:min(600px,calc(100vw - 24px))}#entry-content #entry-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;align-items:start}#entry-content #entry-form>label{grid-column:1}#entry-content #entry-form>#nickname{grid-column:1}#entry-content #entry-form>.join-row{grid-column:1}#entry-content #entry-form>.create-heading{grid-column:2;grid-row:1/3;margin:0}#entry-content #entry-form>.create-options{grid-column:2;grid-row:3/6;margin:0}#entry-content #create-room{grid-column:1}}@media(max-width:359px){#home-dock button{width:86px;padding:6px;font-size:11px;flex-direction:column;gap:2px}#home-dock .icon{width:18px;height:18px}#player-orbit{gap:6px}.at-home .topbar .brand{font-size:16px}}.table.waiting{--board-pad-top:172px;--board-pad-bottom:88px}.waiting .board-top{top:max(18px,env(safe-area-inset-top));left:230px;right:230px;display:flex;justify-content:center}.waiting-banner{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:440px;padding:10px 18px;background:#f8f7eff2;border:1px solid #fff9;border-radius:13px;text-align:center;color:#244c48}.waiting-banner>strong{font-size:16px;letter-spacing:.03em}.waiting-banner>strong small{font-size:10px;font-weight:400}.waiting-banner>span{font-size:12px}.waiting-banner>small{font-size:10px;line-height:1.5}.waiting #player-orbit{top:112px;left:0;right:0;justify-content:center}.waiting .circle-score>.icon{width:13px;height:13px}.waiting .circle-turn{display:none}.waiting-actions{display:flex;gap:6px;align-items:center}.waiting-actions button{min-height:46px;padding:10px 16px;font-size:12px;white-space:nowrap}.waiting-actions .primary{min-width:140px}.waiting #play-dock{bottom:max(16px,env(safe-area-inset-bottom))}.pause-control.is-paused{color:#fff9e9;background:#385f50}.stage-utilities .pause-control.is-paused:hover{background:#244c48}.room-settings{margin:0;padding:0;border:0}.room-settings>.panel-heading h2{font-size:16px}.room-settings .rule-match{padding:9px 10px;background:#e8edde;border-radius:8px}.rules-copy{min-height:0;overflow:auto;overscroll-behavior:contain}#rules-dialog{overflow:hidden;padding:0}#rules-dialog[open]{display:flex;flex-direction:column}#rules-dialog .dialog-heading{flex:none;padding:14px 20px;margin:0;border-bottom:1px solid #dce1d1}#rules-dialog .dialog-heading h2{font-size:19px}#rules-dialog .rules-copy{padding:0 20px 20px}#practice-dialog,#report-dialog{overflow-y:auto}#practice-dialog .dialog-heading,#report-dialog .dialog-heading{position:sticky;top:0;z-index:2;background:var(--paper)}#action-feedback{transform:none;z-index:3}#action-feedback:after{display:none}#action-feedback-leader{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:hidden}#action-feedback-leader[hidden]{display:none}#action-feedback-leader path{fill:none;stroke:#36594a;stroke-width:1.2;stroke-linecap:round}#board [data-id]:focus{outline:none}@media(max-width:700px){.waiting .board-top{top:calc(62px + env(safe-area-inset-top));left:8px;right:8px}.waiting-banner{padding:6px 13px;max-width:calc(100vw - 32px)}.waiting-banner>strong{font-size:13px}.waiting-banner>span{font-size:11px}.waiting #player-orbit{top:calc(152px + env(safe-area-inset-top));gap:8px}.table.waiting{--board-pad-top:218px;--board-pad-bottom:84px}.waiting-actions{gap:3px}.waiting-actions button{padding:7px 10px;gap:4px;font-size:11px}.waiting-actions .primary{min-width:110px}.waiting-actions button .icon{width:18px;height:18px}}@media(orientation:landscape)and (max-height:600px){.table.waiting{--board-pad-top:74px;--board-pad-bottom:70px}.playing.waiting .board-top,.playing.waiting.compact-hud .board-top{top:max(8px,env(safe-area-inset-top));left:58px;right:auto;width:134px}.waiting-banner{width:134px;max-width:134px;padding:5px 8px;gap:2px}.waiting-banner>strong{font-size:11px}.waiting-banner>span{font-size:10px}.waiting-banner>small{display:none}.waiting #player-orbit{top:10px;left:50%;right:auto;transform:translate(-50%);gap:6px}.waiting #play-dock{left:50%;right:auto;transform:translate(-50%);bottom:max(8px,env(safe-area-inset-bottom))}.waiting-actions button{min-height:44px;padding:7px 12px}}@media(max-width:359px){.waiting-actions button{padding:6px}.waiting-actions .primary{min-width:100px}.waiting-actions button:not(.primary){flex-direction:column;gap:1px}}.at-home{--entry-ink:#173b3d;--entry-muted:#48665d;--entry-paper:#f7f8f2;--entry-line:#b8c9bf;--entry-focus:#9a4c26}.at-home .topbar{gap:12px}.at-home .topbar .brand{background:var(--entry-paper);border-radius:14px;padding:6px 12px 6px 6px}.at-home .brand-mark{width:40px;height:44px;border-radius:10px}.entry-server{display:none}.at-home .entry-server{display:block;position:absolute;left:max(20px,env(safe-area-inset-left));top:82px;color:#244f4c;font-size:12px;line-height:1.6}.at-home .entry-server:before{content:"";display:inline-block;width:6px;height:6px;margin:0 7px 1px 0;background:#31735c;border-radius:50%}.at-home .topbar nav{background:var(--entry-paper);border-radius:12px;gap:4px}.at-home .topbar nav a{display:inline-flex;align-items:center;justify-content:center;font-size:13px}.at-home .topbar nav button{border-radius:10px}#home-welcome{position:absolute;z-index:1;top:100px;left:50%;transform:translate(-50%);width:max-content;max-width:calc(100% - 40px);text-align:center;pointer-events:none;color:var(--entry-ink)}#home-welcome h1{font-family:"Noto Serif SC",Songti SC,SimSun,serif;font-size:32px;font-weight:600;line-height:1.45;letter-spacing:.03em}#home-welcome p{margin-top:8px;font-size:14px;line-height:1.7;color:var(--entry-muted)}body:not(.at-home) #home-welcome{display:none}#home-dock{gap:8px;padding:6px;border:1px solid #fff;border-radius:18px;background:var(--entry-paper);box-shadow:0 6px 24px #173b3d1a}#home-dock button{min-height:48px;padding:12px 18px;border-radius:12px;font-size:14px;font-weight:600;background:#e4ece4;color:var(--entry-ink)}#home-dock .primary{background:var(--entry-ink);color:#f7faf2}#home-dock button:hover:not(:disabled){background:#d0dfd3;color:var(--entry-ink)}#home-dock .primary:hover:not(:disabled){background:#285c56;color:#fff}.at-home .board-controls{background:var(--entry-paper);border-radius:12px}.at-home .board-controls button{border-radius:10px}.at-home :is(button,a,input,select):focus-visible{outline:3px solid var(--entry-focus);outline-offset:3px}.at-home :is(#entry-dialog,#rooms-dialog,#practice-dialog,#rules-dialog,#report-dialog){border:1px solid var(--entry-line);border-radius:18px;background:var(--entry-paper);color:var(--entry-ink);box-shadow:0 20px 70px #103a3b30}.at-home :is(#entry-dialog,#rooms-dialog,#practice-dialog)::backdrop{background:#173b3d66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.at-home :is(#entry-dialog,#rooms-dialog)>.dialog-heading{padding:16px 20px;border-color:#d1ddd3}.at-home :is(#entry-dialog,#rooms-dialog) .dialog-heading h2{font-size:20px;font-weight:700}.at-home :is(#entry-content,#rooms-content){padding:20px 24px 24px}.at-home :is(#entry-dialog,#practice-dialog,#rooms-dialog) button{min-height:44px;border-radius:10px;background:#e4ece4;color:var(--entry-ink);font-size:14px}.at-home :is(#entry-dialog,#practice-dialog,#rooms-dialog) button:hover:not(:disabled){background:#d0dfd3;color:var(--entry-ink)}.at-home :is(#entry-dialog,#practice-dialog,#rooms-dialog) button.primary{background:var(--entry-ink);color:#f7faf2}.at-home :is(#entry-dialog,#practice-dialog,#rooms-dialog) button.primary:hover:not(:disabled){background:#285c56;color:#fff}.at-home :is(#entry-dialog,#practice-dialog,#rooms-dialog) button:disabled{background:#dce5de;color:#52675d;opacity:1;cursor:not-allowed}.at-home :is(#entry-dialog,#practice-dialog) :is(input:not([type=checkbox]):not([type=radio]),select){min-height:48px;border-color:var(--entry-line);border-radius:10px;background:#fff;color:var(--entry-ink)}.at-home :is(#entry-dialog,#practice-dialog) input::placeholder{color:#61796d;opacity:1}.at-home #entry-form>label{font-size:13px;margin-bottom:8px}.at-home #entry-content .create-heading{margin-top:24px;gap:16px}.at-home .create-heading h2{font-size:18px}.at-home #entry-content .create-heading select{font-size:14px}.at-home :is(#entry-dialog,#practice-dialog) .rule-match{color:#496557;font-size:12px;line-height:1.75;margin-bottom:16px}.at-home :is(#entry-dialog,#practice-dialog) .rules-options legend{font-size:13px;margin-bottom:10px}.at-home :is(#entry-dialog,#practice-dialog) .rules-options legend small{color:#526e5e;font-size:12px}.at-home :is(#entry-dialog,#practice-dialog) .variant-cards{gap:10px}.at-home :is(#entry-dialog,#practice-dialog) .variant-card{padding:12px;min-height:66px;background:#fff;border-color:#c1d0c5;border-radius:12px}.at-home :is(#entry-dialog,#practice-dialog) .variant-card b{font-size:14px}.at-home :is(#entry-dialog,#practice-dialog) .variant-card small{color:#526e5e;font-size:12px}.at-home :is(#entry-dialog,#practice-dialog) .variant-card:has(input:checked){border-color:#386d60;background:#e8f0e2}.at-home #entry-content #create-room{margin-top:20px;min-height:48px}.at-home #entry-content .practice-entry{margin-top:16px;gap:10px}.at-home .practice-entry>span{font-size:12px;color:#526e5e}.at-home #entry-content .home-bottom{margin-top:20px;color:#526e5e;font-size:11px}.at-home #rooms-content :is(.list-message,.small){font-size:13px;color:#496557}.at-home #practice-title{font-size:20px}.at-home #practice-dialog .dialog-heading{background:var(--entry-paper)}.at-home #practice-dialog .count-buttons label>span{border-radius:10px;background:#fff}.at-home #practice-dialog .count-buttons input:checked+span{background:var(--entry-ink);color:#f7faf2}@media(max-width:700px){.at-home .topbar{gap:8px}.at-home .topbar .brand{font-size:18px;padding:5px 10px 5px 5px}.at-home .brand-mark{width:32px;height:36px}.at-home .entry-server{top:72px;left:max(14px,env(safe-area-inset-left));font-size:11px}.at-home .topbar nav{gap:0}.at-home .topbar nav a{font-size:11px;max-width:86px}#home-welcome{top:113px}#home-welcome h1{font-size:25px}#home-welcome p{font-size:12px;margin-top:6px}#home-dock{gap:5px;border-radius:16px;padding:5px}#home-dock button{font-size:13px;padding:11px 12px;gap:6px}.at-home :is(#entry-content,#rooms-content){padding:16px 18px 22px}.at-home :is(#entry-dialog,#rooms-dialog)>.dialog-heading{padding:12px 16px}.at-home .home-bottom{flex-wrap:wrap}}@media(max-height:740px){#home-welcome{display:none}}@media(orientation:landscape)and (max-height:600px){.at-home .entry-server{top:72px;font-size:11px;max-width:130px}.at-home #entry-content #entry-form{gap:8px 20px}.at-home #entry-content .create-heading{margin-top:0}.at-home #entry-content .variant-card{padding:8px 10px;min-height:54px}.at-home #entry-content #create-room{margin-top:4px}.at-home #entry-content .rule-match{margin-top:0;margin-bottom:10px}}@media(max-width:359px){#home-dock button{width:87px;padding:8px 6px;font-size:12px}.at-home .topbar .brand{font-size:16px;gap:4px}}@media(prefers-reduced-motion:reduce){.at-home :is(button,input,select,a){transition:none}}@media(orientation:landscape)and (max-height:600px){.at-home #entry-content #entry-form>.create-heading{grid-row:1}.at-home #entry-content #entry-form>.create-options{grid-row:2/6}.at-home #entry-content .create-options .variant-card{min-height:48px;padding:6px 10px}.at-home #entry-content .create-options .variant-card b{font-size:13px}.at-home #entry-content .create-options .variant-card small{font-size:11px}}.at-home .topbar{right:0;height:calc(76px + env(safe-area-inset-top));padding-top:calc(12px + env(safe-area-inset-top))}.at-home .entry-server{top:calc(82px + env(safe-area-inset-top))}.at-home .topbar nav{margin-left:auto}.at-home #home-welcome{display:block;top:calc(105px + env(safe-area-inset-top))}.home .board-controls{gap:2px}.home .board-controls #home-motion{width:auto;gap:6px;padding:8px 12px;font-size:12px;white-space:nowrap;flex-shrink:0}#home-motion[hidden]{display:none}#home-safe-area{position:absolute;visibility:hidden;pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}@media(max-width:1050px){.home .board-controls{top:auto;bottom:calc(84px + env(safe-area-inset-bottom));left:50%;right:auto;transform:translate(-50%);flex-direction:row;gap:2px;padding:3px}}@media(max-width:700px){.at-home .topbar{height:calc(66px + env(safe-area-inset-top));padding-top:calc(8px + env(safe-area-inset-top))}.at-home .entry-server{top:calc(72px + env(safe-area-inset-top))}.at-home #home-welcome{top:calc(106px + env(safe-area-inset-top))}}@media(max-height:620px){.at-home #home-welcome p{display:none}.at-home #home-welcome h1{font-size:22px}}@media(orientation:landscape)and (max-height:600px){.at-home .topbar{height:calc(58px + env(safe-area-inset-top));padding-top:calc(6px + env(safe-area-inset-top));padding-bottom:6px}.at-home .entry-server{top:calc(64px + env(safe-area-inset-top));font-size:10px;max-width:155px}.at-home #home-welcome{top:calc(105px + env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));transform:none;width:150px;max-width:none;text-align:left}.at-home #home-welcome h1{font-size:21px;line-height:1.6}.at-home #home-welcome h1 span{display:block;white-space:nowrap}.home #home-dock{left:auto;right:max(14px,env(safe-area-inset-right));transform:none;flex-direction:column;width:158px}.home #home-dock button{min-height:44px;justify-content:flex-start;padding:8px 10px}.home .board-controls{top:auto;bottom:max(14px,env(safe-area-inset-bottom));right:auto;left:max(14px,env(safe-area-inset-left));transform:none;flex-direction:row}.home .board-controls #home-motion{width:44px;padding:8px}.home .board-controls #home-motion span{display:none}}.home .board-controls #home-motion{width:44px;padding:8px}.at-home #home-welcome h1{font-size:30px}.at-home #entry-content .create-heading{margin-top:18px}.at-home :is(#entry-dialog,#practice-dialog) .variant-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.at-home :is(#entry-dialog,#practice-dialog) .variant-card{min-height:76px;padding:10px 8px;flex-wrap:wrap;gap:6px}.at-home :is(#entry-dialog,#practice-dialog) .variant-card>span{flex-basis:calc(100% - 36px)}.at-home :is(#entry-dialog,#practice-dialog) .variant-card>.icon:first-of-type{width:24px;height:24px}.at-home :is(#entry-dialog,#practice-dialog) .variant-card>.icon:last-child{margin-left:auto}.at-home :is(#entry-dialog,#practice-dialog) .variant-card b{font-size:14px;white-space:nowrap}.at-home #entry-content .practice-entry{margin-top:10px}.public-rooms #public-room-results{display:flex;flex-direction:column}.public-room{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:16px 0}.public-room>.room-identity{grid-column:1;justify-content:flex-start;gap:8px}.public-room .room-status{font-size:12px;line-height:1.5}.public-room>.room-facts{grid-column:1;display:flex;justify-content:flex-start;flex-wrap:nowrap;gap:12px;min-width:0;font-size:14px}.room-facts>span{display:flex;align-items:center;gap:5px;min-width:0}.room-facts .icon{flex:none;width:18px;height:18px}.room-host{flex:1}.room-host>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-count{flex:none}.room-count b{font-size:14px;font-weight:600}.public-room>.room-variants{grid-column:1/-1;justify-content:flex-start;gap:6px;color:#365b50;font-size:12px}.room-variants>span{display:inline-flex;align-items:center;gap:4px}.room-variants .icon{width:16px;height:16px}.public-room>button{grid-column:2;grid-row:1/3;width:auto;min-width:66px;min-height:44px;padding:10px 12px;font-size:14px}.public-rooms button:focus-visible,.room-settings button:focus-visible{outline:3px solid #9a4c26;outline-offset:3px}.player-circle{width:44px;height:44px;min-height:44px}@media(max-width:359px){.at-home :is(#entry-dialog,#practice-dialog) .variant-card{padding:10px 6px;gap:4px}.public-room{gap:8px}}@media(orientation:landscape)and (max-height:600px){.at-home #home-welcome h1{font-size:23px;white-space:normal}.at-home :is(#entry-dialog,#practice-dialog) .variant-card{min-height:76px}.waiting #player-orbit{gap:4px}.playing .board-top,.playing.waiting .board-top{width:128px}.waiting-banner{width:128px;max-width:128px}}@media(orientation:landscape)and (max-height:360px){.at-home #entry-dialog>.dialog-heading{padding:8px 16px}.at-home #entry-content{padding:12px 16px}.at-home #entry-content #entry-form{gap:6px 14px}.at-home #entry-content #entry-form>label{margin-bottom:0}.at-home #entry-content #entry-form>.create-heading{grid-row:1/3;align-self:start}.at-home #entry-content #entry-form>.create-options{grid-row:3/5}.at-home #entry-content .variant-card{min-height:60px;padding:8px 6px}.at-home #entry-content #create-room{margin:0;min-height:44px}.at-home #entry-dialog :is(input:not([type=checkbox]):not([type=radio]),select){min-height:44px}}
