@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&display=swap";:root{color-scheme:light;font-family:DM Sans,Segoe UI,sans-serif;color:#20363c;background:#f7f7ef;font-synthesis:none;font-weight:400;--navy: #143b51;--paper: #fff9ec;--line: #dbe1d7;--muted: #708084;--gold: #e9b95e;--sea: #b8d5df}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,svg [role=button]:focus-visible{outline:3px solid #d09122;outline-offset:4px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2{font-family:Fraunces,Georgia,serif;font-weight:500}h1{font-size:52px;letter-spacing:-2px;line-height:1.12}h2{font-size:28px;letter-spacing:-.7px}h3{font-size:16px;font-weight:700}h4{font-size:12px;text-transform:uppercase;letter-spacing:1.2px;margin:24px 0 13px}p{line-height:1.65}label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600}input,select{width:100%;min-width:0;border:1px solid #cfd9d2;border-radius:8px;padding:12px 13px;background:#fffef7;color:#20363c;font-size:14px;min-height:44px}input:disabled,select:disabled{color:#718080;background:#eef0e8}button{min-height:40px}button.primary,button.secondary,button.quiet,.file-button{border-radius:8px;padding:11px 17px;font-size:13px;font-weight:700;transition:background .15s,transform .15s}.primary{background:var(--navy);color:#fff9ec}.primary:hover:not(:disabled){background:#24566b;transform:translateY(-1px)}.secondary{color:#254551;background:#e8ede5;border:1px solid #d3ded5!important}.secondary:hover:not(:disabled){background:#dbe6dd}.quiet{background:transparent;color:var(--navy)}.quiet:hover{background:#e7eee7}.large{min-height:50px;font-size:14px!important}.text-button{background:none;padding:8px 0;color:#45606a;font-size:12px;text-decoration:underline;text-underline-offset:4px}.button-row{display:flex;gap:9px;flex-wrap:wrap}.full{width:100%}.form-row{display:flex;gap:12px}.form-row>label{flex:1;min-width:0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.1px;color:#637d82}.fine-print{font-size:11px;line-height:1.65;color:var(--muted)}.site-header{height:100px;max-width:1500px;padding:0 52px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;font-family:Fraunces,Georgia,serif;font-size:25px;letter-spacing:-.6px}.brand em{font-size:20px;font-weight:400;color:#8c9b83}.brand small{display:block;font-family:DM Sans,sans-serif;font-size:8px;letter-spacing:2.7px;font-weight:700;margin-top:5px}.brand-mark{display:grid;place-items:center;width:42px;height:46px;background:#143b51;color:#e9b95e;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);font-size:33px}.header-right{display:flex;align-items:center;gap:20px}.help-button{border:1px solid #cdd8cf;background:transparent;width:34px;min-height:34px;border-radius:50%;font-family:Georgia,serif;font-size:18px}.connection{font-size:11px;color:#8c7668;display:flex;align-items:center;gap:6px}.connection:before{content:"";width:6px;height:6px;background:#cb9672;border-radius:50%}.connection.online{color:#64816b}.connection.online:before{background:#6a996c}.site-footer{max-width:1400px;border-top:1px solid var(--line);padding:23px 0;margin:36px auto 0;display:flex;align-items:center;justify-content:space-between;color:#7c8b88;font-size:11px}.site-footer>span:first-child{font-size:9px;font-weight:700;letter-spacing:2px}.welcome{max-width:1400px;margin:0 auto;padding:62px 42px 28px;display:grid;grid-template-columns:.9fr 1.2fr;gap:55px;align-items:center;min-height:calc(100vh - 192px)}.welcome h1{font-size:clamp(44px,4.4vw,68px);margin:21px 0 23px;letter-spacing:-2.7px}.welcome h1 em{font-weight:400;color:#4e796a}.intro{max-width:340px;font-size:15px;color:#6e7e7d}.four-dots{display:flex;align-items:center;gap:5px;margin:26px 0}.four-dots>span{width:24px;height:24px;color:#fff;display:grid;place-items:center;border-radius:50%;font-size:10px;font-weight:700;border:2px solid #f7f7ef}.four-dots p{font-size:10px;line-height:1.55;color:#7b8984;margin-left:10px}.create-form{max-width:425px}.create-form>.primary{width:100%;display:flex;justify-content:space-between;margin-top:15px}.join-details{font-size:12px;color:#708080;margin-top:19px;max-width:425px}.join-details summary{cursor:pointer}.join-details form{display:flex;gap:9px;margin-top:10px}.welcome-board{transform:rotate(-1deg)}.board-caption{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.6px;color:#6b8489;padding:0 12px 14px}.welcome-board .board{border:9px solid #ebeee1;box-shadow:0 20px 50px #143b5112;border-radius:40px}.welcome-note{margin:23px 0 0 38px;display:flex;gap:18px;align-items:center;transform:rotate(1deg);color:#7a8b80}.welcome-note p{font-size:12px;line-height:1.8}.welcome-note strong{font-weight:500;color:#3e625d}.note-star{color:#c39b50;font-size:29px}.board{display:block;width:100%;height:auto;max-height:610px;border-radius:25px;-webkit-user-select:none;user-select:none;touch-action:manipulation}.token{font-family:DM Sans,sans-serif;font-weight:700;font-size:19px;fill:#394742}.token.red{fill:#b34d39}.pips{font-size:6px;letter-spacing:1px;fill:#7a7865}.port-label{font-size:9px;fill:#4b676b;font-family:DM Sans,sans-serif;font-weight:700}.selectable{cursor:pointer}.selectable:hover>polygon{stroke:#fff;stroke-width:6;filter:brightness(1.04)}.selectable:hover>circle{fill:#e9b95e}.selectable:hover>line:last-child{stroke:#e9b95e}.tile{touch-action:manipulation}.error-banner{max-width:1380px;margin:14px auto 0;padding:13px 18px;background:#f7e3d8;border:1px solid #deb3a1;color:#894633;border-radius:8px;display:flex;justify-content:space-between;align-items:center;font-size:13px}.error-banner button{background:none;font-size:22px;color:inherit;min-height:24px}.toast{position:fixed;z-index:100;bottom:24px;left:50%;transform:translate(-50%);padding:14px 24px;background:#143b51;color:#fff;border-radius:10px;font-size:13px;box-shadow:0 8px 24px #143b512a;max-width:90vw;overflow-wrap:anywhere}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.page-heading h1{font-size:43px;margin:12px 0}.page-heading p:not(.eyebrow){color:#7b8983;font-size:13px}.lobby{max-width:1350px;margin:40px auto;padding:0 32px}.room-code{padding:16px 22px;background:#e8ede4;border-radius:12px;font-size:9px;letter-spacing:2px;color:#7b8b81}.room-code strong{display:block;margin-top:6px;font-family:monospace;font-size:19px;letter-spacing:1px;color:#3b5a56}.lobby-grid{display:grid;grid-template-columns:1fr 290px;gap:35px}.seats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.seat-card{border:1px solid #d6e0d3;border-top:3px solid var(--player);border-radius:10px;padding:15px;background:#fffff8;min-height:180px}.seat-card-top{display:flex;align-items:center;gap:7px;position:relative}.seat-piece{color:var(--player);font-size:30px;line-height:1}.seat-number{font-size:8px;letter-spacing:1.3px;color:#9ba69b}.host-badge{font-size:7px;position:absolute;right:0;top:0;color:#829278}.seat-card h3{margin:12px 0 6px}.seat-card p{font-size:10px;color:#7c8a82}.seat-controls{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}.seat-controls select{padding:5px;font-size:11px;min-height:34px}.seat-controls .secondary{font-size:10px;min-height:30px;padding:7px 12px}.ready-tag{font-size:10px;color:#608569}.waiting-tag{font-size:10px;color:#a08b62}.lobby-board-heading{display:flex;align-items:center;justify-content:space-between;margin:25px 0 14px}.lobby-board-heading h2{font-size:23px}.lobby-main .board{max-height:460px;background:var(--sea)}.start-row{display:flex;gap:12px;margin:21px 0 11px}.start-row>.primary{flex:1}.settings-panel{border-left:1px solid #d8e0d5;padding-left:30px}.settings-panel h2{font-size:23px;margin-bottom:24px}.settings-form{display:flex;flex-direction:column;gap:17px}.settings-form label{font-size:11px}.settings-form input,.settings-form select{font-size:12px;padding:10px}.checkbox-label{flex-direction:row;align-items:center;font-weight:400;line-height:1.5}.checkbox-label input{width:16px;min-height:16px;accent-color:#143b51;flex-shrink:0}.table-rule{display:flex;align-items:center;gap:12px;border-top:1px solid #d8e0d5;margin-top:24px;padding-top:20px}.table-rule>span{font-size:35px;color:#82977b}.table-rule p{font-size:10px;color:#7a897e}.history-row{width:100%;display:flex;justify-content:space-between;padding:10px 0;font-size:11px;background:none;border-bottom:1px solid #d8e0d5;color:#4e6e6b}.recovery-button{margin-top:15px}.map-notice{font-size:12px;background:#f2e7c9;padding:12px;border-radius:8px;margin-top:12px}.invitation{max-width:850px;margin:80px auto;text-align:center;padding:0 25px;min-height:65vh}.invitation h1{margin:18px 0}.invitation>p{color:#76867f}.name-entry{max-width:300px;text-align:left;margin:25px auto}.invite-seats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:26px}.invite-seats button{background:#fffef5;border:1px solid #d6e0d3;border-top:4px solid var(--player);border-radius:12px;padding:25px 10px;display:flex;flex-direction:column;align-items:center;gap:15px}.invite-seats small{font-size:10px;color:#7e8a81}.invite-seats .seat-piece{font-size:40px}.invitation details{font-size:12px;margin:20px auto;max-width:370px}.invitation details form{display:grid;gap:12px;margin-top:18px;text-align:left}.game-page{max-width:1460px;margin:0 auto;padding:0 38px}.game-topline{display:flex;justify-content:space-between;align-items:center;padding:18px 0 15px;font-size:9px;letter-spacing:1.4px;color:#7a8a86}.game-topline>div{display:flex;gap:20px}.game-topline .text-button{font-size:10px;min-height:20px;padding:0}.player-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:25px}.player-summary{position:relative;display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid #dce3d9;border-radius:10px;background:#fffef8;min-width:0}.player-summary.active{border-color:var(--player);box-shadow:inset 0 -3px var(--player)}.player-avatar{flex-shrink:0;background:var(--player);color:#fff9ec;font-size:19px;font-family:Georgia,serif;border-radius:50%;width:35px;height:35px;display:grid;place-items:center}.player-info{flex:1;min-width:0}.player-info strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-info strong small{font-size:9px;font-weight:400;color:#87938d;margin-left:3px}.player-info>span{display:block;font-size:9px;color:#8a948d;margin-top:6px;white-space:nowrap}.player-info .awards{font-size:8px;color:var(--player);margin-top:3px;min-height:9px}.score{font-family:Fraunces,Georgia,serif;font-size:27px;text-align:center;line-height:1}.score small{display:block;font:6px DM Sans,sans-serif;letter-spacing:1.3px;margin-top:5px;color:#96a094}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:30px}.play-area{min-width:0}.turn-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 17px}.turn-heading h2{font-size:28px;margin-top:7px}.turn-heading .eyebrow{font-size:9px}.dice{display:flex;gap:5px}.dice>span{font-family:Segoe UI Symbol,sans-serif;display:grid;place-items:center;background:#fffdf3;color:#344e56;border:1px solid #d5ded3;border-radius:9px;width:43px;height:43px;font-size:39px;line-height:1;box-shadow:0 3px #dce2d5}.board-wrap{position:relative}.board-wrap>.board{max-height:550px;background:var(--sea)}.board-hint{position:absolute;bottom:11px;left:50%;transform:translate(-50%);background:#fffdf0ed;color:#456461;box-shadow:0 3px 10px #143b5110;padding:8px 15px;border-radius:20px;white-space:nowrap;font-size:11px;pointer-events:none}.choosing{outline:2px solid #e4b25b;outline-offset:4px;border-radius:25px}.confirm-bar{display:flex;align-items:center;gap:10px;background:#fff0c9;border:1px solid #e6cf92;border-radius:9px;padding:11px 16px;margin-top:14px;font-size:13px}.confirm-bar>span{flex:1}.paused-banner{background:#efe6c9;border:1px solid #dfd2a8;padding:13px 16px;border-radius:8px;font-size:12px;margin-bottom:17px}.hand-area{margin-top:20px}.hand-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.hand-heading h3{font-size:13px}.hand-heading>span{font-size:10px;color:#8b9489}.resource-hand{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.resource-card{display:grid;grid-template-columns:32px 1fr;align-items:center;position:relative;padding:14px 16px;border-radius:9px;background:#fffef8;border:1px solid #dbe1d5;border-bottom:3px solid var(--resource);gap:4px}.resource-symbol{font-size:28px;color:var(--resource);grid-row:span 2}.resource-card>strong{text-align:right;font-family:Fraunces,Georgia,serif;font-size:25px}.resource-card>span:last-child{text-align:right;font-size:9px;color:#7d8c7f}.action-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:17px}.build-actions{display:flex;gap:7px;flex:1}.build-button{flex:1;min-width:0;padding:9px 11px;background:#e8ede4;border:1px solid transparent;border-radius:8px;color:#36575a;text-align:left}.build-button strong{display:block;font-size:11px}.build-button small{font-size:10px;color:#859176;display:block;margin-top:4px;letter-spacing:2px}.build-button.selected{background:#e9dfbd;border-color:#d2ae55}.action-row>.primary{flex-shrink:0;font-size:12px}.roll-button{width:100%;display:flex;justify-content:space-between}.waiting-message{font-size:11px;color:#849082}.dev-hand{display:flex;gap:9px;margin-top:15px;flex-wrap:wrap}.dev-card{background:#e8ebdf;border:1px solid #d4dece;border-radius:8px;padding:10px 14px;text-align:left;min-width:105px}.dev-card>span{font-size:23px;color:#779371}.dev-card strong{display:block;font-size:10px;color:#506d58;margin:4px 0}.dev-card small{font-size:8px;color:#89977e}.dev-card.vp{background:#f3e9c5;opacity:1}.activity-panel{border:1px solid #dce3d8;border-radius:13px;background:#fffef8;align-self:start;overflow:hidden;position:sticky;top:20px}.tabs{display:flex;border-bottom:1px solid #dce3d8}.tabs button{flex:1;background:none;padding:14px 5px;font-size:10px;color:#839182;border-bottom:2px solid transparent;position:relative}.tabs button.current{color:#264f56;border-bottom-color:#264f56;font-weight:700}.badge{display:inline-grid;place-items:center;width:15px;height:15px;background:#d18c54;color:#fff;border-radius:50%;margin-left:3px;font-size:8px}.panel-heading{padding:23px 21px 18px}.panel-heading h3{font-size:13px}.panel-heading p{font-size:10px;color:#92a08f;margin-top:4px}.event-log{max-height:490px;overflow:auto;padding:0 21px 15px}.event{display:flex;gap:13px;align-items:flex-start;border-bottom:1px solid #edf0e5;padding:12px 0}.event>span{font-family:monospace;font-size:9px;color:#b1bba7;padding-top:4px;min-width:17px}.event p{font-size:11px;line-height:1.7;color:#6d7e71}.event:first-child p{color:#355a57}.bank-summary{background:#edf0e5;padding:15px 21px}.bank-summary h4{margin:0 0 13px;font-size:9px}.bank-summary>div{display:flex;justify-content:space-between;font-size:14px;color:#7b9176}.bank-summary strong{color:#385950;font-size:11px}.bank-summary small{font-size:9px;color:#86967e;display:block;margin-top:13px}.timer{padding:14px 20px;font-size:11px;display:flex;justify-content:space-between;border-top:1px solid #dce3d8}.timer strong{color:#b5773b}.disconnect-controls{padding:14px 21px;font-size:10px;color:#91a08d}.disconnect-controls p{font-size:10px;margin-top:10px}.disconnect-controls .text-button{display:block}.trade-panel,.stats-panel{padding:21px}.trade-panel>h3,.stats-panel>h3{font-size:14px;margin-bottom:22px}.trade-panel .form-row{gap:8px}.trade-panel .secondary.full{font-size:10px;padding:12px 5px;margin-top:12px}.trade-panel label,.stats-panel label{font-size:10px}.trade-panel select,.stats-panel select{font-size:11px;padding:9px}.trade-panel .fine-print{font-size:10px;margin-top:13px}.trade-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:8px;align-items:center;margin:16px 0}.trade-grid>span{font-size:9px;color:#90a087}.trade-grid label{font-size:10px;font-weight:400}.trade-grid input{font-size:12px;min-height:33px;padding:7px 5px}.offer-card{background:#eff0df;border:1px solid #d9dfc8;padding:13px;border-radius:8px;margin:13px 0}.offer-card>strong{font-size:10px}.offer-card>p{font-size:10px;color:#76826b;margin:9px 0}.offer-card button{font-size:9px;padding:8px 11px;min-height:31px}.histogram{display:flex;align-items:flex-end;height:210px;gap:5px;padding:15px 0;margin-top:10px;border-bottom:1px solid #dce3d8}.bar-column{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1}.bar-column>div{width:100%;border-radius:4px 4px 0 0}.bar-column>span{font-size:8px;color:#8c9b86}.bar-column>strong{font-size:9px;color:#6b806e}.stats-panel>.fine-print{font-size:10px;margin-top:14px}.stat-player{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf0e5;font-size:10px}.stat-player>span{font-size:9px;color:#82917b}.chat-log{padding:0 21px;height:360px;overflow:auto}.chat-log>p{font-size:12px;line-height:1.7;margin-bottom:16px}.chat-log strong{display:block;font-size:10px;color:#819174}.chat-log span{overflow-wrap:anywhere}.empty-copy{color:#96a18c;font-size:11px!important}.chat-form{display:flex;gap:6px;padding:16px}.chat-form input{font-size:11px}.chat-form button{padding:8px 14px}.decision-box{margin:16px 0;padding:20px;background:#eeedda;border:1px solid #d5d9be;border-radius:10px}.decision-box h3{font-size:13px;margin-bottom:16px}.resource-pickers{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:17px}.resource-pickers label{font-size:10px}.resource-pickers label>div{display:flex;align-items:center;justify-content:space-between;border:1px solid #ced6bf;border-radius:7px;overflow:hidden;background:#fffdef}.resource-pickers button{background:none;padding:5px 12px;color:#678565;min-height:36px}.resource-pickers strong{font-size:13px}.modal{max-width:850px;width:calc(100vw - 40px);max-height:90vh;overflow:auto;border:1px solid #d0dbcf;border-radius:18px;padding:28px;background:#f7f7ef;color:#20363c;box-shadow:0 20px 100px #143b5140}.modal::backdrop{background:#143b5180;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.modal-heading .quiet{font-size:28px}.modal>p{font-size:13px;color:#6d8073;margin:14px 0}.modal>h3{margin:24px 0 10px}.rules-costs p{display:flex;justify-content:space-between;border-bottom:1px solid #dce3d8;padding:10px 0;font-size:12px}.rules-costs strong{text-transform:capitalize}.rules-costs span{color:#7a8c76}.recovery-code{display:block;font-size:16px;background:#e7ede0;overflow-wrap:anywhere;padding:20px;border-radius:8px;margin:20px 0}.winner-box{text-align:center;padding:30px;background:#f2ebcc;border:1px solid #e4d8a9;border-radius:12px;margin-top:20px}.winner-box>span{font-size:40px;color:#b78b38}.winner-box h2{margin:10px 0}.winner-box p{font-size:13px;color:#8d865f}.winner-box .button-row{justify-content:center;margin-top:20px}.replay-controls{display:flex;align-items:center;gap:10px;background:#e7eddf;padding:16px;border-radius:10px;margin-top:18px}.replay-controls label{flex:1;font-size:10px}.replay-controls input{padding:0;min-height:25px;accent-color:#143b51}.editor-layout{display:grid;grid-template-columns:1fr 210px;gap:23px;margin-top:20px}.editor-layout .board{max-height:430px;touch-action:none}.editor-layout label{margin:12px 0}.editor-layout h3{margin-top:16px}.editor-layout input,.editor-layout select{font-size:12px;padding:9px}.editor-ports{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.editor-ports label{font-size:9px}.editor-ports select{font-size:10px;min-height:35px;padding:6px}.editor-ports>.form-row{align-items:center}.file-button{display:inline-flex;justify-content:center;cursor:pointer;align-items:center}.file-button input{display:none}.editor-error{color:#ae5138!important}@media(min-width:1600px){.welcome{padding-top:85px;padding-bottom:65px}.welcome-board .board{max-height:700px}}@media(max-width:1100px){.site-header{padding:0 28px;height:86px}.welcome{padding:40px 30px;gap:30px;grid-template-columns:.9fr 1fr}.welcome h1{font-size:49px}.game-page{padding:0 24px}.game-layout{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.player-summary{padding:12px 10px;gap:8px}.player-avatar{width:27px;height:27px;font-size:16px}.player-info strong{font-size:11px}.player-info>span{font-size:8px}.resource-card{padding:10px;grid-template-columns:22px 1fr}.resource-symbol{font-size:21px}.resource-card>strong{font-size:21px}.build-button{padding:8px}.build-button strong{font-size:10px}.site-footer{margin:30px 25px 0}.lobby-grid{grid-template-columns:1fr 250px;gap:22px}.settings-panel{padding-left:22px}.seat-card{padding:11px}.seat-number{display:none}.game-layout .board{max-height:470px}.turn-heading h2{font-size:24px}}@media(max-width:800px){.welcome{grid-template-columns:1fr;gap:38px;max-width:620px}.welcome h1{font-size:58px}.welcome-copy{padding:0 10px}.welcome .intro{max-width:390px}.welcome-board{grid-row:2}.welcome-board .board{max-height:520px}.welcome-note{margin-left:20px}.create-form{max-width:none}.lobby-grid{grid-template-columns:1fr}.settings-panel{border-left:0;border-top:1px solid #d8e0d5;padding:25px 0 0}.settings-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.settings-panel .form-row{grid-column:span 2}.lobby{padding:0 22px;margin:28px auto}.page-heading h1{font-size:36px}.room-code{padding:12px}.game-layout{grid-template-columns:1fr}.activity-panel{position:static}.event-log{max-height:250px}.player-strip{gap:7px}.player-summary{display:grid;grid-template-columns:24px 1fr;gap:6px;padding:10px}.player-info{grid-column:span 2;grid-row:2}.score{grid-column:2;grid-row:1;text-align:right;font-size:23px;display:flex;align-items:center;gap:4px;justify-content:flex-end}.score small{font-size:5px;letter-spacing:0}.player-info>span{font-size:8px}.game-layout .board{max-height:560px}.action-row>.primary{font-size:11px}.site-header{height:80px}.header-right{gap:8px}.connection{font-size:9px}.header-right .quiet{font-size:11px;padding:8px}.brand{font-size:21px}.brand small{font-size:7px}.brand-mark{width:33px;height:37px}.site-footer>span:nth-child(2){display:none}.invitation{margin-top:45px}.invite-seats{gap:9px}.invite-seats button{padding:20px 6px}.invite-seats strong{font-size:11px}.game-topline{font-size:8px;letter-spacing:.7px}.game-topline>div{gap:12px}.bank-summary>div{max-width:360px}.chat-log{height:220px}.editor-layout{grid-template-columns:1fr}.editor-layout>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.editor-layout>div>h3{grid-column:span 2}.editor-layout label{margin:5px 0}.editor-layout>div .form-row{grid-column:span 2}.stats-panel .histogram{max-width:450px}}@media(max-width:480px){.site-header{padding:0 16px;height:74px}.brand{font-size:19px;gap:9px}.brand small{letter-spacing:2px;font-size:6px}.connection{display:none}.help-button{width:30px;min-height:30px}.header-right .quiet{font-size:10px}.welcome{padding:34px 18px;gap:28px}.welcome h1{font-size:49px;letter-spacing:-2px}.welcome .eyebrow{font-size:8px}.intro{font-size:14px}.welcome-copy{padding:0 3px}.welcome .form-row{flex-direction:column;gap:13px}.board-caption{font-size:7px;letter-spacing:1px}.welcome-board .board{border-width:5px;border-radius:25px}.welcome-note p{font-size:11px}.page-heading{gap:15px}.page-heading .eyebrow{font-size:8px;letter-spacing:1px}.page-heading h1{font-size:30px;letter-spacing:-1px}.page-heading p:not(.eyebrow){font-size:11px}.room-code{font-size:7px;padding:10px}.room-code strong{font-size:12px}.seats-grid{grid-template-columns:1fr 1fr}.seat-card{min-height:153px}.seat-number{display:block}.start-row{flex-direction:column}.game-page{padding:0 12px}.game-topline{font-size:7px;letter-spacing:.4px;gap:8px;flex-wrap:wrap}.game-topline .text-button{font-size:8px}.player-summary{padding:8px 6px;gap:4px}.player-avatar{width:23px;height:23px;font-size:12px}.player-info strong{font-size:10px}.player-info>span{font-size:7px;white-space:normal;line-height:1.5}.player-info .awards{font-size:7px}.score{font-size:21px}.score small{display:none}.player-strip{margin-bottom:20px;gap:5px}.turn-heading h2{font-size:23px;letter-spacing:-.6px;max-width:250px}.turn-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.dice>span{width:31px;height:32px;font-size:29px}.board-wrap .board{border-radius:16px}.board-hint{font-size:9px;padding:7px 10px;bottom:5px}.resource-hand{gap:6px}.resource-card{padding:10px 7px;grid-template-columns:1fr;gap:5px;justify-items:center}.resource-symbol{grid-row:auto;font-size:24px}.resource-card>strong{font-size:25px}.resource-card>span:last-child{font-size:8px}.action-row{flex-wrap:wrap;gap:10px}.build-actions{width:100%;flex-basis:100%;gap:5px}.build-button{padding:10px 8px}.build-button small{font-size:9px;letter-spacing:1px}.action-row>.primary{width:100%;min-height:44px}.hand-heading>span{font-size:9px}.confirm-bar{gap:5px;padding:10px;font-size:10px}.confirm-bar button{font-size:10px;padding:10px}.resource-pickers{grid-template-columns:repeat(3,1fr)}.decision-box{padding:15px}.resource-pickers label>div button{padding:5px 9px}.invite-seats{grid-template-columns:1fr 1fr}.invitation h1{font-size:36px}.modal{width:calc(100vw - 20px);padding:20px 16px}.modal-heading h2{font-size:25px}.modal>p{font-size:12px}.rules-costs p{flex-direction:column;gap:6px}.editor-ports{grid-template-columns:1fr}.settings-form{gap:14px}.settings-form>label{font-size:10px}.settings-form select{font-size:11px;padding:9px 7px}.replay-controls{flex-wrap:wrap;padding:12px}.replay-controls>.primary{width:100%}.winner-box{padding:22px 15px}.winner-box h2{font-size:24px}.site-footer{margin:25px 16px 0}.error-banner{margin:10px 12px;font-size:12px}.dev-card{min-width:95px;padding:9px 11px}}.board-tools{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin:-5px 0 9px;font-size:10px;color:#83927f}.board-tools>span{margin-right:auto}.board-tools .quiet{padding:0;width:32px;min-height:32px;font-size:18px;border:1px solid #d8e0d3}.board-tools .text-button{min-height:30px;font-size:10px}.board-scroll{overflow:auto;max-height:550px;border-radius:25px;overscroll-behavior:contain}.board-scaled.zoomed .board{max-height:none;border-radius:25px}.return-options{display:flex;gap:17px;margin:18px 0 0;flex-wrap:wrap;font-size:11px;color:#708080}.restore-link{font-size:11px;font-weight:400;cursor:pointer;text-decoration:underline}.restore-link input{display:none}@media(max-width:480px){.board-scroll{max-height:420px}.board-tools>span{font-size:8px}.board-tools .text-button{font-size:9px}.board-tools{gap:7px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.quantity{display:grid;grid-template-columns:20px 1fr 20px;align-items:center;border:1px solid #d5dece;border-radius:7px;overflow:hidden;min-width:0}.quantity input{border:0;text-align:center;padding:7px 0;appearance:textfield;min-width:0;background:transparent}.quantity input::-webkit-inner-spin-button{appearance:none}.quantity button{padding:0;min-height:36px;background:#edf0e5;color:#426d5b;font-size:14px}.replay-resources{margin-top:16px}.theme-toggle{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent;color:inherit}.theme-toggle:hover{background:#8aada51a}.map-description{font-weight:400;font-size:11px;line-height:1.65;color:var(--muted)}.port-sign{cursor:pointer}.port-sign:hover .port-paper,.port-sign:focus-visible .port-paper{fill:#fffdf0}.port-name{font:700 10px DM Sans,sans-serif;fill:#34493e}.port-ratio{font:700 14px DM Sans,sans-serif;fill:#34493e}.port-dialog{max-width:460px}.port-trade-example{display:flex;align-items:center;justify-content:space-evenly;gap:15px;padding:18px 10px;background:#e7eddf;border-radius:10px;text-align:center;font-size:12px}.port-trade-example span{flex:1}.port-trade-example span:nth-child(2){flex:0;font-size:26px}.port-trade-example strong{display:block;font:40px Fraunces,Georgia,serif;margin-bottom:5px}:root[data-theme=dark]{color-scheme:dark;color:#e2eae5;background:#12232d;--navy: #b5d9da;--paper: #1b303b;--line: #36505a;--muted: #a6b9b9;--sea: #294b5a}[data-theme=dark] :is(input,select,.seat-card,.invite-seats button,.player-summary,.resource-card,.activity-panel,.resource-pickers label>div){background:#1b303b;color:#e2eae5;border-color:#36505a}[data-theme=dark] :is(input:disabled,select:disabled){background:#20333c;color:#a6b9b9}[data-theme=dark] :is(.primary,.primary:hover:not(:disabled)){background:#dbbb7b;color:#182d35}[data-theme=dark] :is(.secondary,.secondary:hover:not(:disabled),.room-code,.build-button,.dev-card,.bank-summary,.offer-card,.decision-box,.replay-controls,.recovery-code,.quantity button,.port-trade-example){background:#29424c;color:#dfebe6;border-color:#48636a!important}[data-theme=dark] :is(.quiet:hover,.build-button.selected){background:#36505a}[data-theme=dark] :is(.help-button,.text-button,.history-row,.tabs button.current,.resource-pickers button){color:#b5d9da;border-color:#48636a}[data-theme=dark] :is(.eyebrow,.intro,.four-dots p,.join-details,.return-options,.board-caption,.welcome-note,.site-footer,.connection,.page-heading p:not(.eyebrow),.room-code,.seat-number,.host-badge,.seat-card p,.waiting-tag,.table-rule p,.invitation>p,.invite-seats small,.game-topline,.player-info strong small,.player-info>span,.score small,.hand-heading>span,.resource-card>span:last-child,.build-button small,.waiting-message,.dev-card small,.tabs button,.panel-heading p,.event>span,.event p,.bank-summary small,.disconnect-controls,.trade-grid>span,.offer-card>p,.bar-column>span,.bar-column>strong,.stat-player>span,.chat-log strong,.empty-copy,.modal>p,.rules-costs span,.board-tools){color:#a6b9b9}[data-theme=dark] :is(.welcome h1 em,.welcome-note strong,.connection.online,.ready-tag,.room-code strong,.dev-card strong,.event:first-child p,.bank-summary strong){color:#b3d6bd}[data-theme=dark] :is(.map-notice,.confirm-bar,.paused-banner,.dev-card.vp,.winner-box){background:#454133;color:#f0dfb4;border-color:#7b704f}[data-theme=dark] .winner-box p{color:#d8c994}[data-theme=dark] .modal{background:#1b303b;color:#e2eae5;border-color:#48636a}[data-theme=dark] .modal::backdrop{background:#07151dbf}[data-theme=dark] .error-banner{background:#4e3531;color:#ffd0bd;border-color:#8c5a4d}[data-theme=dark] .editor-error{color:#ffb89e!important}[data-theme=dark] .board-hint{background:#1b303bee;color:#dbe8e0}[data-theme=dark] .welcome-board .board{border-color:#2d424c;box-shadow:0 20px 50px #07131d55}[data-theme=dark] .four-dots>span{border-color:#12232d}[data-theme=dark] :is(.settings-panel,.table-rule,.history-row,.tabs,.event,.timer,.histogram,.stat-player,.rules-costs p,.quantity,.board-tools .quiet){border-color:#36505a}[data-theme=dark] .player-summary.active{border-color:var(--player)}[data-theme=dark] .seat-card,[data-theme=dark] .invite-seats button{border-top-color:var(--player)}[data-theme=dark] .resource-card{border-bottom-color:var(--resource)}[data-theme=dark] .tabs button.current{border-bottom-color:#b5d9da}[data-theme=dark] :is(.checkbox-label input,.replay-controls input){accent-color:#dbbb7b}@media(max-width:480px){.site-header{flex-wrap:wrap;height:auto;min-height:74px;gap:8px;padding-top:12px;padding-bottom:12px}.header-right{margin-left:auto;gap:6px}.theme-toggle{width:34px;height:34px;min-height:34px}.header-right .quiet{padding:6px}}.replay-resources>label{max-width:260px;margin-bottom:15px}.replay-resources>.fine-print{margin-top:12px}@media(max-width:480px){.quantity{grid-template-columns:27px 1fr 27px}.quantity button{min-height:42px}.trade-grid{grid-template-columns:1fr 1.1fr 1.1fr}}.in-game .site-header{height:54px;max-width:none;padding:0 20px}.in-game .brand{font-size:19px;gap:9px}.in-game .brand-mark{width:29px;height:32px;font-size:24px}.in-game .brand small,.in-game .site-footer{display:none}.in-game .error-banner{position:fixed;top:50px;left:16px;right:16px;z-index:20;margin:0;max-width:none}.in-game .game-page{max-width:none;padding:0 16px 12px}.in-game .game-topline{padding:8px 0;min-height:32px}.in-game .turn-heading{margin:0 0 7px}.in-game .turn-heading h2{margin-top:3px;font-size:24px}.in-game .turn-heading .eyebrow{font-size:8px}.in-game .board-tools{margin:0 0 7px}.in-game .board-tools .quiet{width:28px;min-height:26px}.in-game .board-tools .text-button{min-height:26px}.in-game .dice>span{width:34px;height:34px;font-size:31px}.in-game .player-strip{gap:6px;margin:0}.in-game .player-summary{padding:9px 10px;gap:9px}.in-game .player-avatar{width:28px;height:28px;font-size:16px}.in-game .score{font-size:25px}.in-game .player-info .awards:empty{display:none}.in-game .paused-banner{margin:0 0 8px;padding:8px 12px}.in-game .resource-hand{display:flex;align-items:flex-end;gap:8px;padding:4px 5px 5px 2px}.in-game .resource-hand .resource-card{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:0;flex:0 0 64px;width:64px;height:92px;padding:5px 4px 7px;border:2px solid #f4e8c5;border-radius:6px;background:linear-gradient(140deg,#ffffff38,transparent 65%),var(--resource);color:#172e33;position:relative;box-shadow:0 2px 3px #12232d50,inset 0 0 0 2px #233c392e;isolation:isolate}.in-game .resource-card.stacked{box-shadow:2px 2px #dbccaa,4px 4px #8c826e,5px 6px 4px #12232d44,inset 0 0 0 2px #233c392e}.in-game .resource-card.empty{filter:saturate(.35);opacity:.78;box-shadow:none}.in-game .resource-card .card-art{width:52px;height:58px;margin-top:6px}.in-game .resource-card .card-name{display:block;color:#142f32;font-size:10px;font-weight:700;text-align:center;margin-top:1px}.in-game .resource-hand .resource-card .card-name{color:#142f32}[data-theme=dark] .in-game .dev-card{background:#dfd0a6;border-color:#b5a16b}[data-theme=dark] .in-game .dev-card strong{color:#244b43}[data-theme=dark] .in-game .dev-card small{color:#435747}.in-game .card-count{position:absolute;top:-3px;right:-3px;z-index:1;display:grid;place-items:center;min-width:24px;height:25px;padding:0 4px;border-radius:0 5px 0 9px;background:#234e66;color:#fff7df;font-size:17px;font-weight:700;line-height:1;box-shadow:-1px 1px #ffffff4a}.in-game .hand-heading{margin:0;gap:12px}.in-game .hand-heading h3{font-size:10px}.in-game .hand-heading>span{font-size:10px}.in-game .hand-area{background:#eeeee2;border:1px solid #c5d1c5;border-radius:12px;padding:9px 12px;box-shadow:0 -3px 18px #18374915}[data-theme=dark] .in-game .hand-area{background:#20343e;border-color:#48616a}.in-game .action-row{margin:0;gap:9px}.in-game .build-actions{flex:none;gap:6px}.in-game .build-button{position:relative;width:74px;flex:0 0 74px;height:86px;padding:5px;border:1px solid #a9bdbb;background:#d2e5e3;color:#48747d;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px}.in-game .build-button .card-art{width:40px;height:42px}.in-game .build-button strong{font-size:9px}.in-game .build-button small{margin-top:3px;font-size:9px;letter-spacing:1px;color:#3e6258}.in-game .piece-count{position:absolute;top:3px;right:5px;color:#31595f;font-size:12px;font-weight:700}[data-theme=dark] .in-game .build-button{color:#94bcc0}[data-theme=dark] .in-game .build-button small,[data-theme=dark] .in-game .piece-count{color:#c0d8d2}.in-game .build-button.selected{outline:2px solid #d0a958;outline-offset:1px}.in-game .dev-hand{margin:0;display:flex;flex-wrap:nowrap;gap:7px;overflow-x:auto;padding:4px 3px 5px;align-self:end}.in-game .dev-card{flex:0 0 78px;min-width:78px;height:96px;padding:4px;border:2px solid #c5b47f;border-radius:6px;text-align:center;background:#eee1bc}.in-game .dev-card .card-art{width:42px;height:46px;display:block;margin:0 auto}.in-game .dev-card strong{margin:2px 0;font-size:9px}.in-game .dev-card small{font-size:8px;line-height:1.3;display:block}.in-game .dev-card:disabled{opacity:.72}.in-game .dev-card.vp{opacity:1}@media(min-width:901px)and (min-height:620px){.in-game .site-header{height:44px}.in-game .game-topline{min-height:24px;padding:4px 0}.in-game .turn-heading{min-height:38px;margin-bottom:8px}.in-game .turn-heading h2{font-size:21px}.in-game .board-tools{position:absolute;right:90px;top:3px;z-index:2}.in-game .board-tools>span{display:none}.in-game .paused-banner{position:absolute;top:56px;left:12px;right:12px;z-index:3;box-shadow:0 2px 8px #12232d25}.in-game .game-page{display:grid;grid-template-columns:minmax(0,1fr) 260px;grid-template-rows:24px auto minmax(0,1fr);column-gap:14px;row-gap:8px;height:calc(100dvh - 188px)}.in-game .game-topline{grid-column:1 / -1;grid-row:1}.in-game .game-layout{display:contents}.in-game .player-strip{grid-column:2;grid-row:2;display:grid;grid-template-columns:1fr}.in-game .play-area{grid-column:1;grid-row:2 / 4;min-height:0;display:flex;flex-direction:column;position:relative}.in-game .activity-panel{grid-column:2;grid-row:3;position:static;align-self:stretch;min-height:0;overflow:auto}.in-game .event-log{max-height:260px}.in-game .board-wrap{flex:1;min-height:0;background:var(--sea);border-radius:20px}.in-game .board-scroll{height:100%;max-height:none;border-radius:20px}.in-game .board-scaled{height:100%}.in-game .board-wrap .board{width:100%;height:100%;max-height:none;border-radius:20px}.in-game .board-scaled.zoomed{height:auto}.in-game .board-scaled.zoomed .board{height:auto;max-height:none}.in-game .hand-area{position:fixed;bottom:10px;left:16px;right:16px;z-index:5;height:134px;margin:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:15px 1fr;column-gap:15px}.in-game .hand-heading{grid-column:1 / -1;grid-row:1}.in-game .hand-area .resource-hand{grid-column:1;grid-row:2}.in-game .hand-area .dev-hand{grid-column:2;grid-row:2}.in-game .hand-area .action-row{grid-column:3;grid-row:2;align-self:center}.in-game .hand-area .waiting-message{max-width:290px;font-size:11px}.in-game .roll-button{min-width:170px;min-height:60px;align-items:center;gap:25px}.in-game .confirm-bar,.in-game .play-area>.decision-box{position:absolute;z-index:4;bottom:8px;left:12px;right:12px;margin:0;box-shadow:0 5px 25px #142c3540}.in-game .reviewing-game{height:auto;min-height:calc(100dvh - 54px);grid-template-rows:32px auto auto}.in-game .reviewing-game .board-wrap{flex:none;height:calc(100dvh - 220px);min-height:400px}.in-game .reviewing-game .activity-panel{max-height:60vh}}@media(max-width:900px),(max-height:619px){.in-game .game-layout{grid-template-columns:1fr;gap:16px}.in-game .player-strip{grid-template-columns:repeat(4,minmax(0,1fr));margin:4px 0 12px}.in-game .activity-panel{position:static}.in-game .board-wrap .board{max-height:none}.in-game .board-scroll{max-height:65dvh}.in-game .hand-area{margin-top:12px}.in-game .hand-heading{margin-bottom:3px}.in-game .action-row{margin-top:10px;flex-wrap:wrap}.in-game .action-row>.primary{flex:1}.in-game .build-actions{flex:1}.in-game .build-button{flex:1;width:auto}.in-game .dev-hand{margin-top:8px}}@media(min-width:901px)and (max-width:1100px)and (min-height:620px){.in-game .resource-hand .resource-card{flex-basis:56px;width:56px}.in-game .resource-card .card-art{width:46px}.in-game .build-button{width:62px;flex-basis:62px}.in-game .turn-heading>div:first-child{max-width:calc(100% - 250px)}.in-game .turn-heading h2{font-size:18px}}@media(max-width:480px){.in-game .site-header{min-height:50px;height:auto;padding:7px 10px}.in-game .brand{font-size:16px;gap:6px}.in-game .brand-mark{width:24px;height:28px;font-size:23px}.in-game .game-page{padding:0 8px 12px}.in-game .player-summary{padding:6px;gap:3px}.in-game .player-avatar{width:21px;height:21px;font-size:12px}.in-game .player-info strong{font-size:9px}.in-game .player-info>span{font-size:7px;margin-top:3px}.in-game .score{font-size:20px}.in-game .turn-heading h2{font-size:21px;max-width:280px}.in-game .hand-area{padding:8px}.in-game .resource-hand{gap:7px;justify-content:flex-start}.in-game .resource-hand .resource-card{flex-basis:calc((100% - 28px)/5);max-width:64px;min-width:0;height:86px}.in-game .resource-card .card-art{width:100%;height:52px}.in-game .build-button{min-width:0;height:78px}.in-game .build-button .card-art{width:35px;height:35px}}.in-game .board-scroll.ocean-viewport{background-color:var(--sea);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='58' height='44' viewBox='0 0 58 44'%3E%3Cpath d='M5 12q9 6 18 0m10 21q9 6 18 0' fill='none' stroke='white' stroke-width='1.4' opacity='.23'/%3E%3C/svg%3E");background-repeat:repeat;height:100%;width:100%;max-height:none;overflow:auto;position:relative}.in-game .ocean-viewport .board-stage{display:grid;place-items:center;min-width:100%;min-height:100%}.in-game .ocean-viewport .board-scaled{min-width:0;min-height:0}.in-game .ocean-viewport .board{width:100%;height:100%;max-height:none;background:transparent}.in-game .ocean-viewport.can-pan,.in-game .ocean-viewport.can-pan .board{cursor:grab}.in-game .ocean-viewport.panning,.in-game .ocean-viewport.panning *{cursor:grabbing}.ocean-viewport:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.in-game .brand{font-size:23px}.in-game .header-right .quiet{font-size:14px}.in-game .connection{font-size:12px}.in-game .game-topline{font-size:12px;letter-spacing:.6px}.in-game .game-topline .text-button{font-size:13px}.in-game .turn-heading h2{font-size:27px}.in-game .turn-heading .eyebrow{font-size:11px;letter-spacing:1px}.in-game .board-tools{gap:8px;align-items:center}.in-game .board-tools .quiet{width:38px;min-height:36px;font-size:22px}.in-game .board-tools .text-button{font-size:13px;min-height:36px}.in-game .zoom-level{min-width:45px;font-size:14px;font-weight:700;color:var(--navy);text-align:center;font-variant-numeric:tabular-nums}.in-game .board-hint{font-size:13px;padding:9px 16px}.in-game .player-info strong{font-size:16px}.in-game .player-info strong small{font-size:12px}.in-game .player-info>span{font-size:12px;white-space:normal;line-height:1.4}.in-game .player-info .awards{font-size:11px}.in-game .score{font-size:30px}.in-game .score small{font-size:9px}.in-game .player-avatar{width:34px;height:34px;font-size:20px}.in-game .tabs button{font-size:14px;padding:13px 6px}.in-game .panel-heading{padding:18px 18px 12px}.in-game .panel-heading h3{font-size:17px}.in-game .panel-heading p{font-size:13px}.in-game .event-log{padding:0 18px 12px}.in-game .event{gap:10px}.in-game .event p{font-size:15px;line-height:1.55}.in-game .event>span{font-size:11px}.in-game .bank-summary{padding:16px 18px}.in-game .bank-summary h4{font-size:12px}.in-game .bank-summary strong{font-size:15px}.in-game .bank-summary small{font-size:12px}.in-game .disconnect-controls,.in-game .disconnect-controls p,.in-game .disconnect-controls .text-button{font-size:13px}.in-game .trade-panel,.in-game .stats-panel{padding:18px}.in-game .trade-panel>h3,.in-game .stats-panel>h3{font-size:17px}.in-game .trade-panel :is(label,select,input,.fine-print,.secondary.full),.in-game .stats-panel :is(label,select,.fine-print),.in-game .trade-grid>span,.in-game .offer-card :is(strong,p,button){font-size:13px}.in-game .stat-player{font-size:14px}.in-game .stat-player>span{font-size:12px}.in-game .bar-column>span,.in-game .bar-column>strong{font-size:12px}.in-game .chat-log>p{font-size:15px}.in-game .chat-log strong{font-size:13px}.in-game .chat-form input{font-size:14px}.in-game .hand-heading h3,.in-game .hand-heading>span{font-size:14px}.in-game .hand-area .waiting-message{font-size:14px;line-height:1.5;max-width:350px}.in-game .resource-hand .resource-card{flex-basis:72px;width:72px;height:106px}.in-game .resource-card .card-art{width:58px;height:65px}.in-game .resource-hand .resource-card .card-name{font-size:13px}.in-game .card-count{font-size:20px;min-width:28px;height:29px}.in-game .build-button{width:86px;flex-basis:86px;height:99px}.in-game .build-button strong{font-size:11px;white-space:nowrap}.in-game .build-button small{font-size:11px}.in-game .piece-count{font-size:14px}.in-game .dev-card{flex-basis:91px;min-width:91px;height:110px}.in-game .dev-card strong{font-size:12px}.in-game .dev-card small{font-size:10px}.in-game .action-row>.primary{font-size:14px}.in-game .confirm-bar{font-size:15px}.in-game .decision-box h3{font-size:17px}.in-game .resource-pickers label{font-size:14px}.in-game .paused-banner{font-size:14px;position:static;margin-bottom:8px}@media(min-width:901px)and (min-height:620px){.in-game .site-header{height:52px}.in-game .game-page{grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:30px auto minmax(0,1fr);height:calc(100dvh - 220px)}.in-game .hand-area{height:158px;grid-template-rows:21px 1fr}.in-game .turn-heading>div:first-child{max-width:calc(100% - 310px)}.in-game .turn-heading{min-height:46px}.in-game .reviewing-game{height:auto}.in-game .reviewing-game .board-wrap{min-height:400px}}@media(min-width:901px)and (max-width:1200px)and (min-height:620px){.in-game .game-page{grid-template-columns:minmax(0,1fr) 290px}.in-game .board-tools{position:static;align-self:flex-end;margin-bottom:8px}.in-game .turn-heading>div:first-child{max-width:calc(100% - 85px)}.in-game .turn-heading h2{font-size:24px}.in-game .resource-hand .resource-card{flex-basis:58px;width:58px}.in-game .resource-card .card-art{width:48px}.in-game .build-button{width:78px;flex-basis:78px}.in-game .build-button strong{font-size:10px}}@media(max-width:900px),(max-height:619px){.in-game .board-scroll.ocean-viewport{height:auto;max-height:65dvh}.in-game .player-info strong{font-size:13px}.in-game .player-info>span{font-size:11px}.in-game .player-info strong small{font-size:10px}.in-game .board-tools>span{font-size:12px}.in-game .build-button{width:auto;flex:1}}@media(max-width:480px){.in-game .build-actions{flex:1 0 100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.in-game .action-row>.primary{min-height:44px}.in-game .site-header{padding:8px}.in-game .brand{font-size:18px}.in-game .header-right .quiet{font-size:12px}.in-game .game-topline{font-size:10px;gap:5px}.in-game .game-topline .text-button,.in-game .player-info strong{font-size:12px}.in-game .player-info>span{font-size:10px}.in-game .score{font-size:24px}.in-game .player-avatar{width:25px;height:25px;font-size:14px}.in-game .turn-heading h2{font-size:24px}.in-game .board-tools>span{display:none}.in-game .board-tools .quiet{width:40px;min-height:40px}.in-game .resource-hand .resource-card{flex-basis:calc((100% - 28px)/5);width:auto;height:96px}.in-game .resource-card .card-art{width:100%;height:58px}.in-game .resource-hand .resource-card .card-name{font-size:12px}.in-game .build-button{height:90px}.in-game .build-button strong{font-size:10px}.in-game .board-hint{white-space:normal;text-align:center;width:max-content;max-width:90%;font-size:12px}}@media(max-width:360px){.in-game .build-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.in-game .hand-area .game-controls{display:grid;grid-template-columns:repeat(6,88px);gap:7px;margin:0;align-self:center}.in-game .game-controls .dock-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;height:110px;padding:8px 3px 7px;border:2px solid #f6faf2;border-radius:11px;background:#b5d9dc;box-shadow:inset 0 -5px #628e9c44,0 0 0 1px #5a8790;color:#294f60}.in-game .game-controls .dock-button .card-art{width:60px;height:66px}.in-game .game-controls .piece-button .card-art{color:var(--piece-color)}.in-game .game-controls .dock-button strong{font-size:12px;line-height:1.2;white-space:nowrap}.in-game .game-controls .dock-count{position:absolute;top:2px;right:3px;min-width:22px;padding:1px 3px;border-radius:0 5px;background:#406b79;color:#fff9df;font-size:17px;line-height:1.1;font-weight:700}.in-game .game-controls .dock-button:disabled{opacity:.6;cursor:default;filter:saturate(.65)}.in-game .game-controls .dock-button:not(:disabled):hover{background:#d1edef}.in-game .game-controls .dock-button.selected{outline:3px solid #d8af55;outline-offset:2px}.in-game .game-controls .turn-control.ready{background:#e1be71;box-shadow:inset 0 -5px #916c3344,0 0 0 1px #b48948;color:#4c442f}.in-game .game-controls .turn-control.ready:hover{background:#f1d397}[data-theme=dark] .in-game .game-controls .dock-button{background:#497988;border-color:#c5e7e6;color:#f0f6e9}[data-theme=dark] .in-game .game-controls .dock-button:not(:disabled):hover{background:#608f9c}[data-theme=dark] .in-game .game-controls .turn-control.ready{background:#d9b667;color:#3d3c2b}.in-game .modal .trade-panel{padding:0}.in-game .trade-modal{max-width:620px}.in-game .modal .trade-panel>h3{display:none}.in-game .modal .trade-panel label,.in-game .modal .trade-panel select,.in-game .modal .trade-panel .quantity input{font-size:15px}@media(min-width:901px)and (max-width:1200px)and (min-height:620px){.in-game .hand-area .game-controls{grid-template-columns:repeat(6,76px);gap:6px}.in-game .game-controls .dock-button strong{font-size:11px}}@media(max-width:900px),(max-height:619px){.in-game .hand-area .game-controls{grid-template-columns:repeat(6,minmax(0,1fr));width:100%;margin-top:12px}}@media(max-width:600px){.in-game .hand-area .game-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.in-game .game-controls .dock-button{height:92px}.in-game .game-controls .dock-button .card-art{width:48px;height:53px}}.header-turn{display:flex;flex-direction:column;min-width:0;margin:0 24px;line-height:1.25}.map-gallery{margin:24px 0}.map-gallery>p{font-size:14px;margin:8px 0 16px}.map-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.map-choice{display:flex;flex-direction:column;text-align:left;border:2px solid #819b9d66;border-radius:12px;padding:10px;background:var(--paper);color:var(--ink);gap:6px}.map-choice:disabled{opacity:1;cursor:default}.map-choice.chosen{border-color:#c59532;box-shadow:0 0 0 2px #c5953233}.map-choice svg{width:100%;height:115px;background:var(--sea);border-radius:7px;padding:5px}.map-choice strong{font-size:15px}.map-choice span{font-size:12px;line-height:1.45}@media(max-width:600px){.map-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-choice{padding:7px}}.header-turn strong{font-size:17px}.header-turn span{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-color{display:inline-flex;gap:7px;align-items:center;white-space:nowrap}.my-color i{width:16px;height:16px;border-radius:50%;border:1px solid #fff8}.color-palette{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.color-palette button{display:flex;align-items:center;flex-direction:column;gap:7px;padding:12px;border:2px solid transparent;border-radius:12px;background:#82949a20;color:inherit}.color-palette button[aria-pressed=true]{border-color:#d5ae62}.color-palette i{display:block;width:42px;height:42px;border-radius:50%;box-shadow:inset 0 0 0 2px #fff6}.in-game .sidebar-tools{display:flex;justify-content:space-between;align-items:center;gap:6px}.in-game .sidebar-tools .board-tools{position:static;margin:0;display:flex;gap:5px}.in-game .sidebar-tools .board-tools>span{display:none}.in-game .sidebar-tools .board-tools .quiet{width:32px;min-height:32px;height:32px}.in-game .sidebar-tools .dice{gap:4px}.in-game .sidebar-tools .dice span{width:29px;height:29px;font-size:24px}.turn-clock{padding:10px 12px;border:1px solid #72929366;background:#8cabad18;border-radius:10px}.turn-clock>div{display:flex;justify-content:space-between;align-items:center;gap:10px}.turn-clock span{font-size:13px;font-weight:700}.turn-clock strong{font-size:25px;font-variant-numeric:tabular-nums}.turn-clock progress{width:100%;height:7px;accent-color:#c69b45;display:block;margin:5px 0}.turn-clock small{font-size:11px}.turn-clock.urgent{color:#e1845c;border-color:currentColor}.clock-settings{display:grid;gap:10px;margin-top:14px}.clock-settings label{font-size:13px}.in-game .hand-area .hand-cards{display:flex;align-items:stretch;gap:16px;min-width:0;overflow-x:auto;padding:3px 2px}.in-game .hand-area .resource-hand{display:flex;flex-wrap:nowrap;flex:0 0 auto;gap:9px;align-items:center}.in-game .hand-area .resource-hand .resource-card{flex:0 0 88px;min-width:88px;max-width:none;width:88px;height:136px;padding:6px 3px 4px;cursor:pointer}.in-game .hand-area .resource-hand .resource-card .card-art{width:72px;height:88px}.in-game .hand-area .resource-hand .resource-card .card-name{font-size:15px}.in-game .hand-area .resource-hand .resource-card:disabled{opacity:1;cursor:default;filter:none}.in-game .hand-area .resource-hand .resource-card:not(:disabled):hover{transform:translateY(-3px);outline:2px solid #e5be6a}.in-game .hand-area .empty-hand{font-size:15px;opacity:.7;padding:24px 12px}.in-game .hand-area .dev-hand{border-left:2px solid #839693;padding:0 5px 0 17px;display:flex;flex:0 0 auto;gap:9px;align-self:stretch;overflow:visible}.in-game .hand-area .dev-card,.in-game .hand-area .dev-card:disabled{width:108px;min-width:108px;height:136px;background:#eadbb6;color:#293d43;border:2px solid #b99d59;opacity:1;filter:none}.in-game .hand-area .dev-card:disabled{background:#d9d3c1;border-color:#9c9e91;cursor:default}.in-game .hand-area .dev-card .card-art{width:54px;height:62px}.in-game .hand-area .dev-card strong{font-size:14px;color:#293d43}[data-theme] .in-game .hand-area .dev-card{background:#eadbb6;color:#293d43}[data-theme] .in-game .hand-area .dev-card:disabled{background:#d9d3c1}[data-theme] .in-game .hand-area .dev-card strong{color:#293d43}[data-theme] .in-game .hand-area .dev-card small{color:#3b5057}.in-game .hand-area .dev-card small{color:#3b5057;font-size:12px}.in-game .game-controls .dock-button:disabled{opacity:1;filter:none;background:#9aadae;color:#435b63;border-color:#b6c8c8}[data-theme=dark] .in-game .game-controls .dock-button:disabled{opacity:1;background:#314b56;color:#b6c9cc;border-color:#647e86;filter:none}.incoming-trades{position:absolute;right:12px;top:12px;width:300px;max-width:calc(100% - 24px);max-height:75%;overflow:auto;z-index:8}.board-notifications{position:absolute;right:12px;top:12px;width:320px;max-width:calc(100% - 24px);max-height:75%;overflow:auto;z-index:12;pointer-events:none}.board-notifications .incoming-trades{position:static;width:auto;max-width:none;max-height:none;overflow:visible}.board-notifications .incoming-trade{pointer-events:auto}.game-notice{display:flex;align-items:flex-start;gap:10px;border-left:5px solid var(--player)}.game-notice>.card-art{flex:0 0 35px;width:35px;height:44px;color:var(--player)}.game-notice>div{min-width:0;flex:1}.game-notice strong{font-size:17px}.game-notice p{margin-bottom:0;line-height:1.4}.game-notice>button{padding:0;min-width:32px;min-height:32px;font-size:20px}.moving-robber{transition:transform .75s cubic-bezier(.22,.61,.36,1);filter:drop-shadow(0 3px 2px #122b3c55)}.bank-cards{flex:0 0 auto;padding:12px;border-bottom:1px solid var(--line)}.bank-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.bank-heading small{font-size:11px}.player-info .road-length .card-art{display:inline-block;width:16px;height:18px;vertical-align:middle;color:var(--player)}.player-info .road-length>span{white-space:nowrap;margin-left:5px}.bank-cards .resource-bundle{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.bank-cards .mini-resource{width:100%;min-width:0;height:67px}.bank-cards .mini-resource .card-art{width:100%;height:39px}.bank-cards .mini-resource b{font-size:16px}.bank-cards .mini-resource small{font-size:10px}.trade-confirm-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.trade-confirm-options p{font-size:13px;line-height:1.5;margin:8px 0 0}.trade-confirm-options button{min-height:48px;display:flex;align-items:center;justify-content:center;gap:7px}.trade-confirm-options button .card-art{width:30px;height:32px;flex:0 0 30px}.trade-confirm-options button:disabled{background:#53666b;border-color:#71858a;color:#e0e6e6;opacity:1;filter:grayscale(1)}.trade-choice .bank-set:disabled{opacity:1;color:var(--muted);background:transparent;border-style:dashed}.trade-choice .bank-set{width:100%;margin-top:7px;padding:7px 3px;min-height:36px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:inherit}.bank-set small{display:inline;opacity:.8}.sound-control{display:flex;align-items:center;gap:5px;font-size:23px}.sound-control span{font-size:12px}.sound-toggle{display:flex;gap:10px;align-items:center;margin:16px 0}.sound-volume{display:flex;flex-direction:column;gap:10px;margin:18px 0}.sound-volume input{width:100%}@media(max-width:600px){.sound-control span{display:none}.sound-control{padding:4px;min-width:32px}.board-notifications{top:8px;right:8px;max-width:calc(100% - 16px);max-height:65%;width:270px}.game-notice{padding:10px}.game-notice strong{font-size:15px}.trade-confirm-options{gap:9px}.trade-confirm-options button{padding:8px;font-size:13px}.trade-choice .bank-set{min-height:40px}}@media(prefers-reduced-motion:reduce){.moving-robber{transition:none}}.incoming-trade{padding:15px;background:#f7f3df;color:#263f48;border:2px solid #b99852;border-radius:12px;margin-bottom:8px;box-shadow:0 5px 22px #102c3e44}.incoming-trade p{font-size:14px;line-height:1.7;margin:8px 0}.incoming-trade .button-row{gap:7px;margin-top:8px}.incoming-trade button{font-size:13px;padding:8px 10px}[data-theme=dark] .incoming-trade{background:#203a48;color:#f3eed7}.trade-people{border:0;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 20px}.trade-people legend{font-size:14px;font-weight:700;margin-bottom:10px}.trade-people button{border:1px solid #819ba0;background:transparent;color:inherit;border-radius:8px;padding:9px 12px}.trade-people i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:7px;background:var(--player)}.trade-people .selected{background:#b7934b33;border:2px solid #c6a159;padding:8px 11px}.trade-card-section h3{font-size:17px;margin:18px 0 9px}.trade-resource-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.trade-choice{position:relative}.trade-choice>button:first-child{width:100%;min-height:111px;border:2px solid #8b9d9b;border-radius:8px;background:#849b8e22;color:inherit;display:flex;flex-direction:column;align-items:center;padding:6px 3px}.trade-choice .card-art{width:56px;height:69px}.trade-choice strong{font-size:13px}.trade-choice.chosen>button:first-child{border-color:#dfb654;background:#c8a35b33}.trade-amount{position:absolute;top:3px;right:5px;background:#385c70;color:#fff;padding:1px 5px;font-weight:700;border-radius:4px}.trade-minus{position:absolute;bottom:-7px;right:-3px;width:26px;height:26px;min-height:26px;padding:0;border-radius:50%;background:#f6efd6;color:#304b54;border:1px solid #718987}.trade-instruction{font-size:13px;line-height:1.5;margin:18px 0}.quick-trade>.primary{min-height:44px}.open-trade{border-top:1px solid #80949266;margin-top:16px;padding-top:12px;font-size:13px}.open-trade button{margin-right:10px}.activity-panel .quick-trade{padding:12px}.activity-panel .trade-resource-row{gap:4px}.activity-panel .trade-choice .card-art{width:34px;height:40px}.activity-panel .trade-choice>button:first-child{min-height:77px}.activity-panel .trade-choice strong{font-size:10px}.in-game .chat-log strong{font-weight:800}.in-game .activity-panel .tabs{position:sticky;top:0;z-index:3;background:#fffef8}[data-theme=dark] .in-game .activity-panel .tabs{background:#1b323e}@media(min-width:901px)and (min-height:620px){.in-game .game-page{height:calc(100dvh - 62px);grid-template-columns:minmax(0,1fr) 320px;grid-template-rows:28px auto minmax(0,1fr)}.in-game .play-area{gap:8px}.in-game .hand-area{position:static;flex:0 0 300px;height:300px;width:100%;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:20px 142px 104px;gap:5px;margin:0;overflow:visible;padding:9px 12px}.in-game .hand-area .hand-heading{grid-column:1;grid-row:1}.in-game .hand-area .hand-cards{grid-column:1;grid-row:2}.in-game .hand-area .game-controls{grid-column:1;grid-row:3;display:grid;grid-template-columns:repeat(6,108px);justify-content:end;gap:7px;align-self:end}.in-game .game-controls .dock-button{height:70px;padding:4px;gap:0}.in-game .game-controls .dock-button .card-art{height:43px;width:44px}.in-game .game-controls .dock-button strong{font-size:11px}.in-game .game-controls .dock-count{font-size:14px}.in-game .confirm-bar,.in-game .play-area>.decision-box{bottom:318px}.in-game .player-strip{gap:6px}.in-game .player-summary{min-height:59px;padding:8px 10px}.in-game .activity-panel{border-radius:12px}.in-game .event-log{max-height:none;flex:1}}@media(min-width:901px)and (max-width:1200px){.in-game .header-turn{margin:0 12px;max-width:280px}.in-game .header-turn span{font-size:12px}.in-game .connection{display:none}.in-game .hand-area .resource-hand .resource-card{width:78px;min-width:78px;flex-basis:78px}.in-game .hand-area .resource-hand .resource-card .card-art{width:64px}.in-game .hand-area .game-controls{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:900px),(max-height:619px){.in-game .header-turn{margin:0;max-width:45%}.in-game .header-turn strong{font-size:14px}.in-game .header-turn span{font-size:11px}.in-game .hand-area{height:auto}.in-game .player-strip .turn-clock,.in-game .player-strip .sidebar-tools{grid-column:1 / -1}.in-game .hand-area .hand-cards{padding-bottom:8px}.in-game .hand-area .game-controls{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:8px}.in-game .game-controls .dock-button{height:74px;padding:3px 1px}.in-game .game-controls .dock-button .card-art{width:38px;height:43px}.in-game .game-controls .dock-button strong{font-size:10px}}@media(max-width:600px){.in-game .header-right .quiet.my-color{font-size:0;gap:0}.in-game .header-right .my-color i{width:21px;height:21px}.in-game .turn-clock small{display:none}.in-game .site-header{flex-wrap:wrap;height:auto;padding:9px;gap:8px}.in-game .header-turn{order:3;max-width:none;width:100%;flex-direction:row;justify-content:space-between;gap:8px}.in-game .header-right{margin-left:auto;gap:5px}.in-game .header-right .quiet{padding:4px;font-size:11px}.in-game .brand{font-size:17px}.in-game .hand-area .game-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.in-game .hand-area .resource-hand .resource-card{width:80px;min-width:80px;flex-basis:80px}.in-game .game-controls .dock-button strong{font-size:12px}.color-palette{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.trade-resource-row{gap:5px}.trade-choice .card-art{width:42px;height:58px}.trade-choice>button:first-child{min-height:93px}.trade-choice strong{font-size:11px}.incoming-trades{max-height:80%}}.in-game .game-controls .dock-button{width:100%;height:100px;padding:6px 3px}.in-game .game-controls .dock-button .card-art{width:62px;height:62px}.in-game .game-controls .dock-button strong{font-size:14px}.in-game .game-controls .dock-count{font-size:18px}.in-game .game-controls .dock-button:disabled .card-art{filter:grayscale(1);opacity:.4}.in-game .game-controls .dock-button:disabled{cursor:not-allowed;box-shadow:none}.dock-slot{position:relative;min-width:0}.cost-preview{display:none;position:absolute;bottom:calc(100% + 10px);right:0;padding:12px;width:max-content;max-width:min(310px,calc(100vw - 32px));background:#183744;color:#fff4d7;border:1px solid #c6aa70;border-radius:10px;box-shadow:0 5px 18px #0005;z-index:35;pointer-events:none}.cost-preview p{margin:10px 0 0;max-width:280px;font-size:14px;line-height:1.4}.cost-help{position:absolute;left:3px;top:3px;width:30px;height:30px;min-height:30px;padding:0;border-radius:50%;background:#183744;color:#fff4d7;border:1px solid #9bc4cc;font-size:17px;z-index:2}.ability-description{display:flex;align-items:center;gap:20px}.ability-description>.card-art{width:100px;height:120px;flex:0 0 100px}.ability-dialog p{line-height:1.6}.modal.ability-dialog,.modal.cost-dialog{max-width:560px;font-size:16px}.cost-dialog .mini-resource{width:64px;min-height:90px}.cost-dialog .mini-resource .card-art{width:54px;height:58px}.cost-dialog>.secondary{margin-top:16px}.in-game .hand-area .dev-card.unavailable{background:#ede6d4;border-color:#a69f8c}.in-game .hand-area .dev-card.unavailable .card-art{filter:grayscale(.6)}[data-theme=dark] .in-game .hand-area .dev-card.unavailable{background:#344b56}[data-theme=dark] .in-game .hand-area .dev-card.unavailable strong{color:#fff4d7}[data-theme=dark] .in-game .hand-area .dev-card.unavailable small{color:#e0e9e9}.trade-validation{padding:12px;border-radius:8px;background:var(--paper);border:1px solid var(--line);font-size:15px;line-height:1.4}.trade-choice small{display:block;font-size:12px}.illustrated-choice{max-width:640px}.illustrated-choice>p{margin:4px 0 12px}.illustrated-choice>.primary{margin-top:14px}.victim-choice{display:flex;align-items:center;gap:10px;text-align:left}.victim-choice .player-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff}.victim-choice small{display:block;margin-top:3px}@media(max-width:600px){.cost-help{width:36px;height:36px}.illustrated-choice .trade-resource-row{gap:5px}.illustrated-choice .trade-choice>button:first-child{min-height:104px;padding:4px}.illustrated-choice .trade-choice strong{font-size:12px}.illustrated-choice .trade-choice small{font-size:10px}}.cost-preview>strong{display:block;margin-bottom:8px;font-size:15px}.dock-slot:hover .cost-preview,.dock-slot:focus-within .cost-preview{display:block}.dock-slot:focus-visible{outline:2px solid #e0b75e;outline-offset:3px;border-radius:10px}.resource-bundle{display:flex;flex-wrap:wrap;gap:5px}.mini-resource{display:flex;flex:0 0 48px;width:48px;flex-direction:column;align-items:center;position:relative;background:var(--resource);border:2px solid #f0dfb5;border-radius:4px;color:#152f3b;padding:3px 0}.mini-resource b{position:absolute;right:1px;top:0;background:#234656;color:#fff;padding:0 3px;font-size:14px}.mini-resource .card-art{width:44px;height:48px}.mini-resource small{font-size:11px;font-weight:700}.trade-exchange{display:flex;align-items:center;gap:10px;margin:12px 0}.trade-exchange>div{flex:1;min-width:0}.trade-exchange>div>small{display:block;margin-bottom:5px}.in-game .player-info .road-length{font-size:12px;color:var(--ink);margin-top:3px}.in-game .hand-area{position:relative;left:auto;right:auto;bottom:auto}.discard-selection{position:absolute;bottom:calc(100% + 8px);left:0;width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px;background:#203b48;color:#fff3d7;border:2px solid #d2ad5d;border-radius:10px;z-index:10}.discard-selection p{margin:4px 0 0;max-width:300px;font-size:13px}.discard-list{display:flex;gap:5px;flex:1;flex-wrap:wrap}.discard-list>button{padding:0;background:none;border:0}.discard-count{position:absolute;bottom:25px;background:#163743;color:#fff;padding:2px 5px;border-radius:4px;font-size:12px}.in-game .hand-area .resource-card[aria-pressed=true]{outline:3px solid #e5b951;outline-offset:-3px}.in-game .hand-area.discarding .resource-card:disabled{opacity:.65;cursor:not-allowed}@media(max-width:600px){.dock-slot:nth-child(2) .cost-preview{right:auto;left:-30px}.dock-slot:nth-child(4) .cost-preview{right:auto;left:0}.discard-selection{position:static;margin-bottom:10px}}.roll-effects{position:fixed;inset:0;z-index:30;pointer-events:none}.board .robber-target{cursor:pointer;outline:none!important}.board .robber-target>polygon{fill:transparent;stroke:transparent;stroke-width:5;pointer-events:all;stroke-linejoin:round}.board .robber-target:hover>polygon,.board .robber-target:focus-visible>polygon{fill:#fff5ce20;stroke:#fff5cf}.board .robber-target.chosen>polygon{fill:#e7b74930;stroke:#f2c45e;stroke-width:6}.turn-notice{position:absolute;top:12px;left:12px;z-index:9;display:flex;align-items:center;gap:10px;background:#173642ee;color:#fff4d7;border:2px solid var(--player);border-radius:12px;padding:12px 16px;pointer-events:none;box-shadow:0 4px 15px #0003}.turn-notice i{font-style:normal;background:var(--player);border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:21px}.turn-notice strong{font-size:20px;display:block}.turn-notice small{font-size:12px;display:block}.trade-responses{display:flex;gap:8px}.incoming-trade .trade-response{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;background:transparent;border:1px solid #8b9e9e88;color:inherit;border-radius:8px}.incoming-trade .trade-response:disabled{opacity:1;cursor:default}.trade-response i{display:grid;place-items:center;font-style:normal;font-size:23px;font-weight:700;width:35px;height:35px;background:var(--player);border:2px solid #fff5d5;border-radius:50%;color:#fff}.trade-response.accepted{background:#5e9b6425!important;border-color:#76aa7c!important}.trade-response.accepted i{background:#3f8050}.trade-response.declined i{background:#687d83}.trade-response span{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:12px}.trade-response small{font-size:11px}.incoming-trade .trade-status{font-size:12px;line-height:1.4}.player-card-total{position:relative;display:flex;flex-direction:column;align-items:center;flex:0 0 43px;padding-top:1px;color:var(--ink)}.player-card-total .card-art{position:absolute;top:0;width:43px;height:42px;opacity:.2}.player-card-total strong{font-size:27px;line-height:36px;z-index:1;font-variant-numeric:tabular-nums}.player-card-total small{font-size:9px;letter-spacing:.6px}.theft-effect{position:fixed;inset:0;z-index:35;pointer-events:none}.theft-notice{position:absolute;bottom:320px;left:50%;transform:translate(-50%);max-width:90vw;padding:15px 20px;border:2px solid #d2975c;background:#173642;color:#fff4d7;border-radius:12px;font-size:18px;box-shadow:0 4px 20px #0004}.theft-effect .stolen-card{animation-duration:1.3s;animation-delay:.2s}@media(max-width:600px){.turn-notice{padding:8px;max-width:calc(100% - 24px)}.turn-notice strong{font-size:16px}.in-game .player-summary .player-card-total{grid-column:1 / -1;flex-direction:row;justify-content:center;gap:5px;flex:auto;width:100%}.player-card-total .card-art{display:none;position:static;width:20px;height:28px;opacity:.7}.player-card-total strong{font-size:22px;line-height:28px}.player-card-total small{font-size:8px}.theft-notice{top:100px;bottom:auto;font-size:15px}}.dice-stage{position:absolute;left:calc(50% - 220px);top:35%;display:flex;gap:24px;perspective:700px}.die-drop{width:58px;height:58px;animation:die-bounce 1.1s both;animation-delay:var(--delay)}.die-cube{position:relative;width:58px;height:58px;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));animation:die-tumble 1.1s cubic-bezier(.2,.65,.3,1) both;animation-delay:var(--delay)}.die-face{position:absolute;inset:0;background:#fff5db;border:2px solid #c7b58b;border-radius:10px;padding:9px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;backface-visibility:hidden;box-shadow:inset 0 0 9px #ba9d5a44}.die-face .pip{background:#244651;border-radius:50%}.face-1{transform:translateZ(29px)}.face-2{transform:rotateY(90deg) translateZ(29px)}.face-3{transform:rotateX(90deg) translateZ(29px)}.face-4{transform:rotateX(-90deg) translateZ(29px)}.face-5{transform:rotateY(-90deg) translateZ(29px)}.face-6{transform:rotateY(180deg) translateZ(29px)}.roll-total{font-size:40px;color:#fff4cf;text-shadow:0 2px 6px #143846;align-self:center;margin-left:10px;animation:roll-reveal 1.2s both}.roll-caption{position:absolute;top:calc(35% + 92px);left:calc(50% - 200px);background:#163443ed;color:#fff6d5;padding:8px 18px;border-radius:20px;font-weight:700;animation:roll-reveal 1.2s both}.flying-card{position:fixed;width:40px;height:56px;margin:-28px -20px;border:2px solid #fff1cd;border-radius:5px;background:#d9d8b5;box-shadow:0 2px 10px #0005;animation:resource-flight 1.45s cubic-bezier(.4,.05,.4,1) both}.flying-card .card-art{width:100%;height:100%}.flying-card b{position:absolute;right:0;top:0;background:#284d5e;color:#fff;font-size:13px;padding:0 3px}.board .tile.producing>polygon{stroke:#fffbd4;stroke-width:7px;filter:drop-shadow(0 0 9px #ffe391);animation:tile-production 1.2s ease-in-out 2}@keyframes die-bounce{0%{transform:translate(-90px,-130px) scale(.7);opacity:0}25%{opacity:1}65%{transform:translate(5px,20px)}82%{transform:translateY(-10px)}to{transform:none}}@keyframes die-tumble{0%{transform:rotateX(620deg) rotateY(520deg) rotate(140deg)}to{transform:rotateX(var(--rx)) rotateY(var(--ry))}}@keyframes roll-reveal{0%,80%{opacity:0}to{opacity:1}}@keyframes resource-flight{0%{transform:translate(0) scale(.35);opacity:0}18%{opacity:1;transform:translateY(-25px) scale(1)}85%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.6);opacity:0}}@keyframes tile-production{50%{filter:drop-shadow(0 0 15px #fff0ab)}}.roll-effects.reduced .dice-stage{display:none}.roll-effects.reduced .roll-caption{animation:none}@media(min-width:901px)and (max-height:900px){.in-game .player-strip{gap:6px}.in-game .player-summary{min-height:60px;padding:6px 10px}.in-game .player-info strong{font-size:15px;line-height:1.2}.in-game .player-info>span{font-size:11px;line-height:1.25}.in-game .player-info .road-length{margin-top:3px}.in-game .player-info .awards:empty{display:none}.in-game .turn-clock{padding:6px 10px}.in-game .turn-clock strong{font-size:23px}.in-game .bank-cards{padding:9px 12px}.in-game .activity-panel .panel-heading{padding:10px 14px 8px}.in-game .activity-panel .panel-heading p{display:none}}@media(max-width:900px){.dice-stage{left:calc(50% - 110px)}.roll-caption{left:calc(50% - 80px)}}@media(prefers-reduced-motion:reduce){.board .tile.producing>polygon{animation:none}.resource-card{transition:none}}.event-message{min-width:0}.event-message p{margin:0;line-height:1.9}.event-picture{display:inline-flex;align-items:center;gap:3px;vertical-align:middle;white-space:nowrap}.event-picture svg{width:21px;height:29px;flex:none}.event-payout{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.event-payout>strong{font-size:.8rem}.event-payout .resource-bundle{gap:4px}.event-payout .mini-resource{flex-basis:34px;width:34px;height:45px}.event-payout .mini-resource .card-art{width:30px;height:39px}.event-payout .mini-resource small{display:none}.host-recovery{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.seat-code-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:14px 0;border-bottom:1px solid var(--line)}.seat-code-row strong{grid-column:1 / -1}.seat-code-row code{align-self:center;overflow-wrap:anywhere;font-size:.82rem;min-width:0;-webkit-user-select:all;user-select:all}.finished-summary{display:flex;align-items:center;justify-content:center;gap:24px;padding:18px;flex-wrap:wrap}.winner-dialog{width:min(560px,calc(100vw - 24px))}.winner-celebration{text-align:center;padding:16px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--winner-color) 14%,transparent),transparent 70%)}.winner-celebration>svg{width:82px;height:104px;transform:rotate(-7deg)}.winner-celebration>p{margin:10px 0 4px}.winner-celebration h3{color:var(--winner-color);font-size:2.5rem;margin:0}.winning-score{display:block;font:3.7rem Georgia,serif;margin:8px 0 20px}.winning-score span{display:block;font:.9rem system-ui,sans-serif}.winner-record{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}.winner-record span{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.winner-record svg{width:25px;height:34px}.winner-actions{justify-content:center}.winner-dialog>.fine-print{text-align:center}.host-account-link{text-decoration:none;white-space:nowrap}.host-signin{padding:20px 0}.host-signin .primary{display:inline-flex;text-decoration:none}.host-dashboard{margin:24px 0}.host-table-list{max-height:440px;overflow-y:auto;display:grid;gap:12px;padding-right:6px}.host-table-row{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.host-table-row h3,.host-table-row p{margin:0 0 4px}.host-table-row .button-row{margin-top:12px}.host-table-row small{overflow-wrap:anywhere}.host-table-filters{margin:12px 0 16px;flex-wrap:wrap}.archived-table-message{max-width:620px;margin:12vh auto;padding:24px}.archived-table-message .primary{display:inline-block;margin-top:16px}.home-screen{min-height:100svh;display:flex;flex-direction:column}.home-screen>.site-header{width:100%;height:72px;flex-shrink:0;padding-inline:32px}.home-screen .welcome{flex:1;width:100%;max-width:1280px;min-height:0;padding:24px 32px;gap:48px;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}.home-screen .welcome h1{font-size:clamp(38px,3.5vw,52px);margin:12px 0 16px;letter-spacing:-1.8px}.home-screen .welcome .intro{max-width:425px}.home-screen .four-dots{margin:18px 0}.home-screen .host-signin>.primary{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;padding:12px 20px;border-radius:8px;text-decoration:none;font-weight:700}.home-screen .welcome-board .board{max-height:min(510px,calc(100svh - 240px))}.home-screen .welcome-note{margin-top:12px}.home-screen .welcome-host{align-items:start;align-content:center}.welcome-host .create-form{margin-top:24px}.welcome-host .host-dashboard{margin:0;min-width:0;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel, #fff9ec)}.welcome-host .host-table-list{max-height:clamp(160px,calc(100svh - 330px),420px);overscroll-behavior:contain}[data-theme=dark] .welcome-host .host-dashboard{background:#1b303a}.welcome-host .host-table-row{padding:14px}.home-screen>.site-footer{width:calc(100% - 64px);max-width:1216px;margin:0 auto;padding:12px 0;gap:16px}@media(max-width:800px){.home-screen>.site-header{height:auto;min-height:76px;padding:12px 20px}.home-screen .welcome{grid-template-columns:minmax(0,1fr);align-content:start;max-width:600px;gap:24px;padding:22px 20px}.home-screen .welcome-copy{padding:0}.home-screen .welcome h1{font-size:36px;margin:8px 0 12px}.welcome-host .create-form{margin-top:18px}.home-screen .welcome .form-row{flex-direction:row;gap:12px}.home-screen .welcome .form-row>label{min-width:0}.home-screen .welcome-board{display:none}.welcome-host .host-dashboard{padding:16px}.welcome-host .host-dashboard h2{font-size:24px}.welcome-host .host-table-list{max-height:230px}.home-screen>.site-footer{width:calc(100% - 40px);font-size:10px}}
