@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("/static/catan/assets/vazirmatn-arabic-wght-normal-Cafbb7Zc.05d9ce2a23d3.woff2") format("woff2-variations");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("/static/catan/assets/vazirmatn-latin-ext-wght-normal-tDTa1Fj6.2b9f461883fd.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("/static/catan/assets/vazirmatn-latin-wght-normal-BFexNX-K.e7eada615dc3.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Vazirmatn Variable,Vazirmatn,Arial,sans-serif;color:#203d39;background:#f5f2e9;font-synthesis:none;--ink:#203d39;--muted:#718079;--line:#e2dccd;--paper:#fbf9f2;--deep:#15494c;--accent:#cc673f;--gold:#c5a13c;--shadow:0 18px 60px #16424714}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f5f2e9}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #d69a37;outline-offset:3px}.app{min-height:100vh}.site-header{height:72px;display:flex;align-items:center;padding:0 clamp(20px,5vw,84px);border-bottom:1px solid #e4dfd3;background:#f7f5ef;gap:48px}.brand{display:flex;align-items:center;gap:10px;text-align:right}.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent);color:#fff7df;box-shadow:0 4px 8px #c25b391f}.brand b{display:block;font-size:19px;line-height:1}.brand small{color:#718079;letter-spacing:.08em;font-size:9px;font-weight:700}.site-header nav{display:flex;align-self:stretch;gap:30px}.site-header nav button{position:relative;color:#81908a;font-size:13px;font-weight:650}.site-header nav button.active{color:var(--ink)}.site-header nav button.active:after{content:"";height:3px;position:absolute;bottom:0;right:0;left:0;background:var(--accent);border-radius:3px 3px 0 0}.nav-dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-left:8px;vertical-align:middle}.header-actions{margin-right:auto;display:flex;align-items:center;gap:13px}.edition{font-size:11px;color:#86918d;border:1px solid #dddcd0;padding:6px 11px;border-radius:99px}.icon-button{width:37px;height:37px;border-radius:10px;display:grid;place-items:center;color:#687873}.icon-button:hover{background:#eae9e1;color:var(--ink)}.home-screen{min-height:calc(100vh - 72px);max-width:1500px;margin:auto;padding:clamp(32px,6vw,86px) clamp(22px,7vw,110px) 23px;display:grid;grid-template-columns:minmax(340px,.83fr) minmax(520px,1.17fr);grid-template-rows:1fr auto;column-gap:clamp(40px,8vw,132px);position:relative}.home-copy{align-self:center;max-width:510px}.eyebrow{display:flex;align-items:center;gap:9px;color:#a9a797;font-size:11px;letter-spacing:.08em;font-weight:750}.eyebrow span{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #cc673f1c}.home-copy h1{font-size:clamp(48px,6vw,78px);line-height:1.18;letter-spacing:-.07em;margin:23px 0 18px;color:var(--ink);font-weight:850}.home-copy h1 em{font-style:normal;color:var(--accent)}.home-description{color:#77857d;line-height:2;font-size:15px;margin:0 0 27px}.home-buttons{display:flex;align-items:center;gap:15px}.button{min-height:43px;padding:0 17px;border-radius:10px;display:inline-flex;gap:9px;align-items:center;justify-content:center;font-weight:750;font-size:13px;transition:transform .16s,background .16s;white-space:nowrap}.button:hover:not(:disabled){transform:translateY(-1px)}.button.primary{background:var(--accent);color:#fffaf0;box-shadow:0 8px 18px #cc673f25}.button.primary:hover:not(:disabled){background:#b95335}.button.secondary{background:#f0eee6;border:1px solid #e3ddcd}.button.text-button{padding:0 7px;color:#718079}.button.full{width:100%;margin-top:18px}.new-link{color:#a27058;font-size:11px;margin-top:16px;text-decoration:underline;text-underline-offset:4px}.home-facts{display:flex;gap:25px;margin-top:64px;color:#7d8984;font-size:11px}.home-facts span{display:flex;align-items:center;gap:7px}.home-facts svg{color:#9caaa2}.home-facts b{color:var(--ink);font-size:17px}.home-note{display:flex;align-items:center;gap:10px;font-size:10px;color:#a0a7a0;margin-top:34px}.tiny-avatars{display:flex;direction:ltr}.tiny-avatars .avatar{margin-right:-7px;border:2px solid #f5f2e9}.avatar{background:var(--player);color:#fff4dc;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 auto;font-size:15px;font-weight:850;border:2px solid color-mix(in srgb,var(--player),#fff 20%);box-shadow:0 2px 4px #244d4630}.home-island{position:relative;min-height:600px;display:grid;place-items:center}.home-island:before{content:"";position:absolute;inset:9% 0 5%;background:#dce8de;border-radius:46% 54% 45% 55%/47% 48% 52% 53%;filter:blur(1px);transform:rotate(5deg)}.home-island .board-wrap{width:min(100%,690px);z-index:1}.board-wrap{position:relative;width:100%;overflow:hidden}.island{display:block;width:100%;height:auto;overflow:visible}.home-island .island{filter:drop-shadow(0 18px 13px #23545123)}.island-caption{position:absolute;right:2%;top:1%;display:flex;flex-direction:column;gap:3px;z-index:2;color:#849485;font-size:10px}.island-caption b{color:#bbc2ac;letter-spacing:.17em;font-size:8px;font-family:Georgia,serif}.floating-note{position:absolute;left:0;bottom:5%;z-index:2;background:#fffdf7e6;border:1px solid #ded8ca;border-radius:12px;padding:11px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 10px 26px #234c4018;max-width:270px}.note-icon{width:43px;height:43px;border-radius:10px;background:#e5f0e0;display:grid;place-items:center}.floating-note strong{display:block;font-size:11px}.floating-note span:not(.note-icon){display:block;color:#8a958c;font-size:9px;margin-top:5px}.home-footer{grid-column:1/-1;border-top:1px solid #e1ddd2;padding-top:16px;color:#adb1a5;font-size:10px;display:flex;justify-content:space-between;letter-spacing:.04em}.game-layout{display:grid;grid-template-columns:345px 1fr;min-height:calc(100vh - 72px);background:#f0eee7}.sidebar{background:#fbfaf5;border-left:1px solid #e2ded3;padding:28px 24px 15px;display:flex;flex-direction:column;min-width:0}.table-title{display:flex;align-items:flex-start;justify-content:space-between}.table-title .eyebrow{font-size:10px}.table-title h1{font-size:24px;letter-spacing:-.04em;margin:6px 0 0}.goal-banner{margin:25px 0 24px;background:#f8ecda;border:1px solid #ead9be;border-radius:11px;padding:13px;display:flex;align-items:center;gap:9px}.goal-icon{width:36px;height:36px;border-radius:9px;background:#eac882;display:grid;place-items:center;color:#8d633a}.goal-banner strong{display:block;font-size:11px}.goal-banner span:not(.goal-icon):not(.goal-ten){display:block;color:#a18e7d;font-size:9px;margin-top:3px}.goal-ten{margin-right:auto;font-size:23px;color:#c18a4e;font-weight:850}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.section-heading h2{font-size:12px;margin:0;display:flex;align-items:center;gap:7px}.section-heading>span{color:#a0aaa2;font-size:10px}.players-list{display:flex;flex-direction:column;gap:5px}.player-row{min-height:67px;border:1px solid transparent;border-radius:11px;padding:9px;display:flex;align-items:center;gap:9px}.player-row.current{background:#f3f2e9;border-color:#e6e3d7}.player-row.current:before{content:"";width:3px;background:var(--player);height:31px;border-radius:3px;margin-right:-5px}.player-info{min-width:0;flex:1}.player-info>div:first-child{display:flex;align-items:center;gap:6px}.player-info strong{font-size:12px}.player-info small{background:#e9eee6;color:#6b806f;border-radius:4px;padding:2px 4px;font-size:8px}.player-info>span{color:#9aa39d;font-size:9px;white-space:nowrap}.turn-light{width:6px;height:6px;border-radius:50%;background:var(--player);display:inline-block}.player-meta{display:flex;gap:9px;color:#8c9890;font-size:9px;margin-top:5px}.player-meta span{display:flex;align-items:center;gap:2px}.player-points{text-align:center;min-width:29px}.player-points b{display:block;font-size:20px;color:var(--player)}.player-points small{font-size:8px;color:#a2aaa5}.awards{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:19px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0}.awards>div{display:flex;gap:7px;align-items:flex-start;color:#b59349}.awards span{font-size:9px;color:#718079;font-weight:700;line-height:1.4;flex:1}.awards span small{display:block;color:#a3aaa2;font-size:8px;font-weight:500;margin-top:3px}.awards b{font-size:12px;color:#c3a256}.log-toggle{width:100%;cursor:pointer;margin-top:0;padding:7px 0}.log-toggle h2{color:#718079}.log-toggle .flipped{transform:rotate(180deg)}.game-log{overflow:auto;max-height:260px;margin:0 -8px;padding:3px 8px 8px}.game-log>div{display:flex;align-items:flex-start;gap:8px;min-height:28px;position:relative}.game-log>div:not(:last-child):after{content:"";position:absolute;right:3px;top:13px;height:100%;border-right:1px dashed #dbdcd0}.log-dot{width:7px;height:7px;background:#aab2a9;border-radius:50%;margin-top:6px;flex:0 0 auto;z-index:1}.game-log p{margin:0;color:#8c9690;font-size:9px;line-height:1.65;flex:1}.game-log small{font-size:8px;color:#c0c3bb}.game-log .latest p{color:var(--ink);font-weight:650}.sidebar-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:17px;color:#9ca79f;font-size:9px;border-top:1px solid var(--line)}.sidebar-footer>span{display:flex;align-items:center;gap:6px}.status-dot{width:6px;height:6px;background:#62a376;border-radius:50%;box-shadow:0 0 0 3px #62a37620}.save-failed .status-dot{background:#bd684a}.sidebar-footer button{color:#a2aaa4}.play-area{min-width:0;display:flex;flex-direction:column;background:#f3f1ea}.board-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4vw,68px);border-bottom:1px solid #e1ddd2;color:#77857d;font-size:10px}.board-header>div:first-child{display:flex;align-items:center;gap:8px}.live-dot{width:7px;height:7px;background:#67a17b;border-radius:50%;box-shadow:0 0 0 4px #67a17b18}.board-header-divider{width:1px;height:14px;background:#d8d8cc;margin:0 5px}.board-header button{display:inline-flex;align-items:center;gap:6px;color:#8c9992;margin-right:19px;font-size:10px}.map-stage{position:relative;min-height:510px;flex:1;display:grid;place-items:center;padding:22px clamp(15px,4vw,70px) 8px;overflow:hidden;background:radial-gradient(ellipse at center,#f7f5ee 0,#f3f1ea 58%,#efede6)}.map-stage:before,.map-stage:after{content:"";position:absolute;width:300px;height:300px;border:1px solid #d5ded6;border-radius:50%;opacity:.6}.map-stage:before{left:-170px;top:22%}.map-stage:after{right:-170px;bottom:13%}.map-stage .board-wrap{width:min(790px,87vw);z-index:1}.map-topline{position:absolute;top:17px;right:clamp(26px,5vw,75px);left:clamp(26px,5vw,75px);display:flex;justify-content:space-between;color:#a9afa5;font-size:9px;letter-spacing:.05em}.map-topline span:last-child{font-family:Georgia,serif;color:#c0c6b7;letter-spacing:.18em}.map-zoom{position:absolute;left:clamp(28px,4vw,72px);bottom:57px;display:flex;background:#fffdf7;border:1px solid #deddd2;border-radius:8px;overflow:hidden;z-index:4;box-shadow:0 3px 10px #35544912}.map-zoom button{width:30px;height:28px;display:grid;place-items:center;color:#7e8b84;border-left:1px solid #e7e4da}.map-zoom button:last-child{border-left:0}.terrain-hover{position:absolute;right:clamp(28px,4vw,72px);bottom:57px;color:#a9afa5;font-size:9px;z-index:2}.hex{transition:filter .15s}.hex.selectable{cursor:pointer}.hex.selectable:hover{filter:brightness(1.08) saturate(1.1)}.hex.producing .number-token circle:nth-child(2){stroke:#bd6b45;stroke-width:3}.number-token{transition:transform .2s}.hex.producing .number-token{transform:scale(1.1)}.hex-outline{pointer-events:none}.legal-node,.legal-road,.legal-city{cursor:pointer}.legal-node circle:last-child{animation:pulse 1.8s ease-in-out infinite}.legal-city circle{stroke:#fff0c8;stroke-width:2;stroke-dasharray:3 4;animation:pulse 1.8s ease-in-out infinite}.legal-road line:last-child{animation:roadPulse 1.2s ease-in-out infinite}.port{pointer-events:none}.die{width:39px;height:39px}.die.rolling{animation:dieRoll .42s ease-out}.dice-dock{z-index:2;position:absolute;bottom:13px;right:50%;transform:translate(50%);background:#fffdf8e8;border:1px solid #e2ddd0;border-radius:13px;padding:8px 10px;display:flex;align-items:center;gap:10px;min-width:300px;box-shadow:0 8px 20px #3b594b14}.dice-pair{display:flex;gap:3px;direction:ltr}.dice-dock strong{display:block;color:var(--ink);font-size:11px}.dice-dock small{display:block;color:#9ba29b;font-size:8px;margin-top:2px}.roll-button{margin-right:auto;background:var(--deep);color:#fff7e4;border-radius:8px;padding:9px 12px;font-size:11px;font-weight:750;display:flex;align-items:center;gap:6px}.roll-button:hover:not(:disabled){background:#0d3c3e}.turn-message{position:absolute;top:47px;z-index:2;display:flex;align-items:center;gap:7px;color:#7b8880;font-size:10px;background:#ffffffa6;border:1px solid #e1dfd7;border-radius:99px;padding:7px 12px;box-shadow:0 3px 12px #40574d0c}.turn-indicator{width:7px;height:7px;border-radius:50%}.turn-indicator.thinking{animation:blink 1s ease-in-out infinite}.cancel-build{margin-right:4px;display:grid;place-items:center;color:#9a7b63}.hand-panel{background:#fbfaf5;border-top:1px solid #e0ddd4;padding:18px clamp(23px,4vw,68px) 16px}.hand-header{display:flex;align-items:center;justify-content:space-between}.hand-header h2{margin:0;font-size:14px}.hand-header span{font-size:9px;color:#9ca59f}.dev-hand-button{display:flex;align-items:center;gap:7px;color:#7d897f;font-size:10px}.dev-hand-button span{background:#e8eee5;padding:3px 6px;color:#6d856f;border-radius:5px;font-weight:800}.hand-resources{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:13px}.resource-card{height:94px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f4f2ea;border:1px solid #e6e2d7;border-radius:9px;overflow:hidden}.resource-card:before{content:"";position:absolute;top:0;right:0;left:0;height:3px;background:var(--resource);opacity:.8}.resource-card.has-resource{background:#f8f5ea;border-color:#e1d7bd}.resource-card-corner{position:absolute;top:7px;right:8px;font-size:12px;color:var(--ink);font-weight:850}.resource-card strong{font-size:9px}.resource-bank{font-size:8px;color:#a6ada3;margin-top:3px}.action-bar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e4e1d8;margin-top:17px;padding-top:13px}.build-actions{display:flex;gap:6px}.build-button{min-width:85px;height:48px;border:1px solid #e3dfd3;border-radius:8px;display:flex;align-items:center;gap:6px;padding:5px 7px;color:#728077;background:#f4f2ea;text-align:right}.build-button:not(:disabled):hover,.build-button.chosen{border-color:#c98b62;background:#f8ecdb;color:#9b583e}.build-button>span:nth-child(2){display:flex;flex-direction:column;font-size:9px;line-height:1.5}.build-button small{font-size:8px;color:#a3aaa1}.mini-cost{display:flex!important;gap:2px;align-self:flex-start!important;margin-top:4px}.mini-cost i{width:5px;height:5px;border-radius:50%}.turn-actions{display:flex;gap:8px}.trade-button{background:#f0eee7;border:1px solid #dedbd0;color:#718078}.end-button{background:var(--accent);color:#fff9eb}.build-hint{margin-top:10px;padding:8px 12px;background:#f8ecda;color:#98745c;border-radius:6px;text-align:center;font-size:10px}.build-hint button{color:#b65f42;text-decoration:underline;margin-right:5px}.game-footer{display:flex;justify-content:space-between;padding:10px clamp(24px,4vw,68px);font-size:9px;color:#a5aca4}.game-footer span:first-child{display:flex;align-items:center;gap:5px}.modal{border:1px solid #ded9ca;border-radius:15px;background:#fbfaf5;color:var(--ink);padding:0;max-width:min(510px,calc(100vw - 28px));width:100%;box-shadow:0 24px 100px #193f3f39;max-height:calc(100vh - 35px);overflow:auto}.modal.wide{max-width:min(760px,calc(100vw - 28px))}.modal::backdrop{background:#163b3d73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-heading{position:sticky;top:0;z-index:2;background:#fbfaf5;border-bottom:1px solid #ebe6d9;padding:19px 22px 14px;display:flex;justify-content:space-between;align-items:center}.modal-heading h2{font-size:18px;margin:0}.modal>p,.modal>label,.modal>.segmented,.modal>details,.modal>.rules-grid,.modal>.rules-intro,.modal>.notice,.modal>.roll-chart,.modal>.empty-state,.modal>.victim-list,.modal>.privacy-screen,.modal>.winner,.modal>.ranking,.modal>.button,.modal>.button-row{margin-right:22px;margin-left:22px}.modal>.muted{margin-top:17px}.muted,.field-help{font-size:11px;color:#8c9890;line-height:1.9}.segmented{display:flex;background:#f0eee7;padding:3px;border-radius:8px;gap:2px}.segmented button{flex:1;padding:8px 10px;border-radius:6px;color:#87918a;font-size:10px;font-weight:650}.segmented button.selected{background:#fffdf7;color:var(--ink);box-shadow:0 2px 5px #304b4012}.field-label{display:block;font-size:11px;font-weight:750;margin-top:17px;margin-bottom:6px}.form-inline{display:flex;align-items:center;justify-content:space-between;margin:18px 22px 10px;font-size:11px;font-weight:750}.segmented.compact{width:210px;margin:0}.player-inputs{display:flex;flex-direction:column;gap:8px;margin:15px 22px}.player-inputs>div{display:flex;align-items:center;gap:8px}.player-inputs input,.player-inputs select,.modal select{background:#f3f1ea;border:1px solid #e1ddd1;border-radius:7px;padding:8px 9px;color:var(--ink);min-width:0}.player-inputs input{flex:1;font-size:11px}.player-inputs select{font-size:10px;width:85px}.player-inputs small{font-size:9px;color:#9ba49c;width:50px}.checkbox-label{display:flex!important;align-items:center;gap:7px;font-size:10px;color:#77857d;margin-top:13px!important}.checkbox-label input{accent-color:var(--accent)}.notice{font-size:10px;color:#9b775e;background:#faf0df;border:1px solid #eedcc1;padding:9px 11px;border-radius:7px;line-height:1.7}.modal>.notice{margin-top:16px}.modal>.button{margin-bottom:22px}.bank-trade{display:flex;align-items:center;justify-content:center;gap:14px;margin:24px 22px}.bank-trade label{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;color:#87918a}.bank-trade select{width:120px}.bank-trade b{font-size:10px;color:var(--ink)}.trade-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:15px 22px}.trade-columns h3{font-size:11px;margin:0 0 8px}.resource-picker{display:flex;flex-direction:column;gap:6px}.picker-row{display:flex;align-items:center;gap:4px;background:#f5f3ec;border:1px solid #e5e1d8;border-radius:7px;padding:4px 5px;min-height:39px}.picker-row svg{width:22px;height:22px}.picker-row>span{font-size:9px;flex:1}.picker-row small{display:none;color:#a5aba2;font-size:8px}.stepper{display:flex;align-items:center;gap:4px;direction:ltr}.stepper button{width:21px;height:21px;border:1px solid #dbd9cf;background:#fbfaf5;border-radius:4px;font-size:17px;line-height:1}.stepper b{font-size:11px;min-width:13px;text-align:center}.stock-summary{display:flex;flex-wrap:wrap;gap:5px}.stock-summary span{display:flex;align-items:center;gap:3px;background:#f1efe7;border-radius:5px;padding:4px 6px;font-size:9px}.offer-summary{margin:15px 22px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.offer-summary h3{font-size:10px;grid-column:span 1}.button-row{display:flex;gap:8px;margin-bottom:22px}.button-row .button{flex:1}.victim-list{display:flex;flex-direction:column;gap:6px;margin-bottom:22px}.victim-list button{display:flex;align-items:center;gap:9px;background:#f5f3ec;border:1px solid #e3dfd5;border-radius:9px;padding:9px;text-align:right}.victim-list button b{font-size:11px}.victim-list button span{font-size:9px;color:#9da59f;margin-right:auto}.selection-count{text-align:center;color:#8b958d;font-size:10px;margin:13px}.resource-options{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:18px 22px}.resource-options button{border:1px solid #e2ded3;border-radius:8px;padding:8px 2px;font-size:9px;display:flex;flex-direction:column;align-items:center;gap:4px}.resource-options button.selected{border-color:#be7d5b;background:#f7ecdd}.dev-list{display:flex;flex-direction:column;gap:8px;margin:16px 22px 22px}.dev-list>div{display:flex;align-items:center;gap:10px;padding:10px;background:#f5f3ec;border-radius:9px;border:1px solid #e6e1d5}.dev-symbol{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:#e2ebdf;color:#567c66}.dev-symbol.victory{background:#f8ecd5;color:#ba8c3a}.dev-list h3{font-size:11px;margin:0}.dev-list p{font-size:9px;color:#8b968e;line-height:1.7;margin:3px 0}.dev-list small{font-size:8px;color:#ba795d}.dev-list>div>div:nth-child(2){flex:1}.button.small{min-height:30px;padding:0 9px;font-size:9px}.empty-state{text-align:center;padding:25px 0;color:#a2aaa1}.empty-state svg{color:#c7a45a}.empty-state h3{font-size:12px;color:var(--ink);margin:11px 0 4px}.empty-state p{font-size:10px}.rules-intro{font-size:12px;line-height:2.1;margin-top:19px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}.rules-grid section{background:#f5f3ec;padding:13px;border-radius:9px}.rules-grid h3{font-size:11px;margin:0 0 7px;color:#4e7463}.rules-grid p{font-size:10px;line-height:1.95;color:#7f8b84;margin:0}.rule-costs{display:flex;flex-direction:column;gap:4px;margin-top:9px}.rule-costs>div{display:flex;align-items:center;gap:6px;font-size:9px}.rule-costs .stock-summary{margin-right:auto}.modal details{border-top:1px solid #e7e3d8;padding:12px 0;font-size:10px;color:#77857d}.modal details p{font-size:10px;line-height:1.9}.fine-print{color:#a8afa7;font-size:9px!important;margin-bottom:20px!important}.settings-actions{display:flex;flex-direction:column;gap:8px;margin:16px 22px 22px}.settings-actions .button{width:100%;justify-content:flex-start}.upload-button{position:relative;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.roll-chart{height:190px;display:flex;align-items:end;justify-content:space-around;gap:6px;border-bottom:1px solid #dddacf;padding-top:20px;margin-top:10px;margin-bottom:24px}.roll-chart>div{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:5px;flex:1}.roll-chart i{width:100%;max-width:25px;background:#8db19b;border-radius:4px 4px 0 0;min-height:3px}.roll-chart i.seven{background:#cb7652}.roll-chart span{font-size:8px;color:#a4aaa1}.roll-chart b{font-size:9px}.winner{text-align:center;padding-top:24px}.winner-crown{width:74px;height:74px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#f9edcf;color:#c79b44}.winner>.avatar{margin-top:-8px;border:4px solid #fbfaf5}.winner h3{font-size:18px;margin:11px 0 3px}.winner p{color:#9a8d76;font-size:11px;margin:0}.ranking{margin-top:20px;border-top:1px solid #e5e1d6}.ranking>div{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #eeeae1}.ranking>div>span{width:18px;color:#aaafa6;font-size:10px}.ranking b{font-size:10px;flex:1}.ranking strong{font-size:10px;color:#68806f}.privacy-screen{text-align:center;padding:24px 0 22px}.privacy-screen>svg{color:#8da18e}.privacy-screen>.avatar{margin:13px auto 0}.privacy-screen h3{font-size:14px;margin:12px 0 4px}.privacy-screen p{font-size:10px;color:#8c9890;margin:0}.toast,.bot-error{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:12;background:#203f3e;color:#fff8e9;border-radius:9px;padding:11px 14px;font-size:11px;box-shadow:0 12px 30px #1c444647;display:flex;align-items:center;gap:14px}.toast button{color:#c5ded0}.bot-error{bottom:74px;background:#b86448}.bot-error button{background:#fff2dc;color:#8f4d38;padding:5px 10px;border-radius:5px;font-size:10px}.error-page{display:grid;place-items:center;align-content:center;min-height:100vh;gap:10px;color:var(--ink)}.error-page button{background:var(--accent);color:#fff;padding:10px 17px;border-radius:8px}@keyframes pulse{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}@keyframes roadPulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes dieRoll{0%{transform:rotate(0) scale(1)}40%{transform:rotate(18deg) scale(.86)}to{transform:rotate(0) scale(1)}}@keyframes blink{0%,to{opacity:.3}50%{opacity:1}}@media(max-width:1100px){.home-screen{grid-template-columns:1fr 1fr;column-gap:30px}.home-copy h1{font-size:clamp(45px,6vw,66px)}.game-layout{grid-template-columns:290px 1fr}.sidebar{padding:24px 16px 12px}.build-button{min-width:69px}.build-button>span:nth-child(2){font-size:8px}.player-row{padding:7px 4px}}@media(max-width:760px){.site-header{height:58px;padding:0 16px;gap:18px}.brand-mark{width:34px;height:34px;border-radius:9px}.brand b{font-size:16px}.brand small,.edition,.site-header nav button:not(.active){display:none}.site-header nav{margin-right:0}.site-header nav button{font-size:11px}.header-actions{gap:3px}.icon-button{width:33px;height:33px}.home-screen{display:flex;flex-direction:column;padding:38px 20px 18px;min-height:calc(100vh - 58px)}.home-copy{max-width:none}.home-copy h1{font-size:52px;margin:18px 0 13px}.home-description{font-size:13px;margin-bottom:21px}.home-facts{margin-top:30px;justify-content:space-between;gap:6px}.home-note{margin-top:23px}.home-island{min-height:365px;margin-top:15px;order:2}.home-island .board-wrap{width:125%;margin-right:-12.5%}.floating-note{left:3%;bottom:1%;padding:8px;max-width:205px}.note-icon{width:35px;height:35px}.floating-note strong{font-size:9px}.floating-note span:not(.note-icon){font-size:8px}.island-caption{top:2%;right:0}.home-footer{order:3;margin-top:auto;font-size:8px;padding-top:12px;gap:10px}.home-footer span:last-child{display:none}.game-layout{display:flex;flex-direction:column;min-height:calc(100vh - 58px)}.sidebar{order:2;border-left:0;border-top:1px solid #e2ded3;padding:17px 15px;max-height:480px}.table-title h1{font-size:20px}.goal-banner{margin:15px 0}.awards{margin:14px 0}.game-log{max-height:150px}.play-area{order:1}.board-header{height:49px;padding:0 15px}.board-header button{margin-right:10px}.map-stage{min-height:430px;padding:30px 7px 8px}.map-stage .board-wrap{width:125%;margin-right:-12.5%}.map-topline{top:10px;right:15px;left:15px}.turn-message{top:35px;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dice-dock{bottom:9px;min-width:275px;padding:6px 8px}.die{width:34px;height:34px}.terrain-hover,.map-zoom{display:none}.hand-panel{padding:14px 15px}.hand-resources{gap:4px}.resource-card{height:75px}.resource-card svg{width:29px;height:29px}.resource-card strong{font-size:8px}.resource-bank{font-size:7px}.resource-card-corner{top:4px;right:5px;font-size:10px}.action-bar{display:block}.build-actions{justify-content:space-between}.build-button{min-width:0;flex:1;height:44px;padding:4px}.build-button svg{width:18px}.mini-cost{display:none!important}.turn-actions{margin-top:8px}.turn-actions .button{flex:1}.game-footer{padding:8px 15px;font-size:8px}.rules-grid{grid-template-columns:1fr}.modal{max-height:calc(100vh - 18px)}.trade-columns{grid-template-columns:1fr}.trade-columns .resource-picker{display:grid;grid-template-columns:1fr 1fr}.picker-row small{display:none}.home-buttons .button.primary{flex:1}.home-buttons .text-button{font-size:11px}.resource-options{grid-template-columns:repeat(3,1fr)}.modal-heading{padding:15px 17px 12px}.modal>p,.modal>label,.modal>.segmented,.modal>details,.modal>.rules-grid,.modal>.rules-intro,.modal>.notice,.modal>.roll-chart,.modal>.empty-state,.modal>.victim-list,.modal>.privacy-screen,.modal>.winner,.modal>.ranking,.modal>.button,.modal>.button-row{margin-right:17px;margin-left:17px}}html,body,.modal{overflow-x:hidden}.modal>*{max-width:100%}.modal select{max-width:100%}.score-setting{margin-top:15px!important}.score-setting .compact{width:270px}.score-setting .compact button{padding:7px 5px}@media(max-width:760px){.modal{width:calc(100vw - 20px);max-width:calc(100vw - 20px);margin:9px auto}.score-setting{display:block}.score-setting>label{display:block;margin-bottom:7px}.score-setting .compact{width:100%}.score-setting .compact button{font-size:9px;padding:7px 3px}}.modal>.button.full{width:auto}.session-card{margin:14px 22px 0;padding:11px;border:1px solid #e2ddd0;background:#f5f3ec;border-radius:8px;display:flex;flex-direction:column;gap:5px}.session-card strong{font-size:11px}.session-card span,.session-card small{font-size:9px;color:#8c9890}.session-card code{font-size:9px;color:#68806f;direction:ltr;display:inline-block}.session-list{margin:10px 22px 0;display:flex;flex-direction:column;gap:5px}.session-list>strong{font-size:10px}.session-list button{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;border:1px solid #e4dfd4;border-radius:6px;background:#f7f5ee;text-align:right}.session-list button span{font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-list button small{font-size:8px;color:#9a8e78;white-space:nowrap}.saved-games{margin-top:20px;width:min(100%,480px);border-top:1px solid #e1ddd2;padding-top:13px}.saved-games-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;color:#718079;font-size:10px}.saved-games-heading span{color:#a2aaa2;font-size:9px}.saved-game{width:100%;display:flex;align-items:center;gap:8px;padding:7px 6px;border:1px solid transparent;border-radius:8px;text-align:right}.saved-game:hover{background:#f0eee7;border-color:#e2ddd1}.saved-game-avatars{display:flex;direction:ltr;min-width:54px}.saved-game-avatars .avatar{margin-right:-5px;border:2px solid #f5f2e9}.saved-game-info{display:flex;flex-direction:column;min-width:0;flex:1}.saved-game-info b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saved-game-info small{font-size:8px;color:#a0aaa2;margin-top:2px}.saved-game-id{direction:ltr;color:#b0b4aa;font-size:7px;max-width:85px;overflow:hidden;text-overflow:ellipsis}.saved-game>svg{color:#9ba69d;flex:0 0 auto}@media(max-width:760px){.saved-games{width:100%;margin-top:16px}.saved-game-id{display:none}}.waiting-room{margin:14px 22px 0;padding:11px;border:1px solid #d8e2d7;background:#edf3ec;border-radius:9px}.waiting-room>div:first-child{display:flex;justify-content:space-between;align-items:center}.waiting-room strong{font-size:11px}.waiting-room span{font-size:9px;color:#819187}.waiting-room .button{min-height:30px;margin-top:8px;font-size:9px}.waiting-room code{display:block;direction:ltr;text-align:left;background:#f8faf5;padding:6px;border-radius:5px;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:6px}.waiting-slots{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:9px}.waiting-slots span{display:flex;align-items:center;gap:5px;background:#f7f8f2;border-radius:5px;padding:4px;font-size:8px}.waiting-slots span:not(:first-child){color:#a0aaa2}@media(max-width:760px){.waiting-room{margin-right:17px;margin-left:17px}}.range-players{display:flex;align-items:end;gap:10px;margin:17px 22px 10px}.range-players>div{flex:1}.range-players label{display:block;font-size:10px;font-weight:700;margin-bottom:6px}.range-players select{width:100%;background:#f3f1ea;border:1px solid #e1ddd1;border-radius:7px;padding:8px;color:var(--ink);font-size:10px}.range-players>span{padding-bottom:8px;color:#9ba49c;font-size:10px}@media(max-width:760px){.range-players{margin-right:17px;margin-left:17px}}.local-capacity{margin:16px 22px 10px;padding:10px 12px;background:#f5f3ec;border:1px solid #e4dfd3;border-radius:8px}.local-capacity strong{display:block;font-size:11px}.local-capacity span{display:block;color:#5e7a69;font-size:10px;margin-top:3px}.local-capacity small{display:block;color:#9aa49c;font-size:8px;margin-top:4px}@media(max-width:760px){.local-capacity{margin-right:17px;margin-left:17px}}.invite-join{text-align:center;padding:24px 22px}.invite-join>svg{color:#6d9278}.invite-join h3{font-size:15px;margin:12px 0 5px}.invite-join p{font-size:10px;color:#8c9890}.invite-join input{width:100%;margin-top:12px;background:#f3f1ea;border:1px solid #e1ddd1;border-radius:7px;padding:10px;text-align:right}.invite-join .button{margin-right:0;margin-left:0}.room-page{min-height:calc(100vh - 72px);padding:40px 20px;display:grid;place-items:center}.room-panel{width:min(100%,580px);background:#fbfaf5;border:1px solid #e2dccd;border-radius:16px;padding:26px;box-shadow:var(--shadow)}.room-panel h1{font-size:26px;margin:12px 0}.room-eyebrow,.room-details{display:flex;align-items:center;gap:10px;color:#66856c;font-size:12px}.room-details{justify-content:space-between;margin:20px 0}.room-roster{display:flex;flex-direction:column;gap:8px}.room-roster>div{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;border:1px solid #e5e0d4;min-height:58px}.room-roster strong{font-size:13px;flex:1}.room-roster span{font-size:11px;color:#788f80}.room-roster .empty{background:#f2f1e9;border-style:dashed}.empty-seat{width:40px;text-align:center}.join-form{display:grid;gap:10px;margin:18px 0}.join-form label,.host-name-field label{font-size:12px;font-weight:700}.join-form input,.host-name-field input,.invite-link-row input{font:inherit;min-width:0;background:#f5f2e9;border:1px solid #d6d7c9;padding:10px;border-radius:8px}.invite-link-row{display:flex;gap:8px}.invite-link-row input{flex:1;font-size:11px}.room-id{display:block;overflow-wrap:anywhere;direction:ltr;text-align:center;font-size:10px;color:#8d9c90;margin-top:14px}.host-name-field{display:grid;gap:7px;margin:15px 22px}.modal>.button.full{width:calc(100% - 44px)}.modal .button:disabled{transform:none}.saved-games{max-height:400px;overflow-y:auto}.home-screen{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.map-stage .board-wrap{max-width:100%}.map-topline,.turn-message{pointer-events:none}.turn-message button{pointer-events:auto}.board-wrap .island{touch-action:manipulation}.modal .resource-picker{margin-inline:22px}.trade-columns .resource-picker{margin:0}.modal select.full{margin-inline:22px;width:calc(100% - 44px)}.offer-summary{display:flex;flex-direction:column}.modal details:last-of-type{margin-bottom:12px}@media(max-width:760px){.room-page{padding:18px 12px}.room-panel{padding:18px}.map-stage .board-wrap{width:100%;margin:0;max-width:100%}.home-island .board-wrap{width:100%;margin:0}.map-stage{padding:70px 0 68px;min-height:400px}.map-zoom{display:flex;left:8px;bottom:4px}.map-topline{top:9px}.turn-message{top:30px;font-size:9px;white-space:normal;max-width:95%}.terrain-hover{display:none}.modal>.button.full{width:calc(100% - 34px)}.home-screen{overflow:hidden}.room-roster>div{min-height:54px}.dice-dock{max-width:calc(100% - 20px);min-width:0;width:300px}.invite-link-row{flex-wrap:wrap}.invite-link-row input{min-width:0}.modal .resource-picker{margin-inline:17px}.trade-columns .resource-picker{margin:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.variant-selector{min-width:0;border:0;border-top:1px solid var(--line);margin:20px 22px 10px;padding:12px 0 0}.variant-selector legend{padding:0 0 0 12px;font-size:12px;font-weight:750}.variant-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.variant-option{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px solid var(--line);background:#f5f3eb;border-radius:10px;padding:12px 8px;cursor:pointer}.variant-option input{position:absolute;top:8px;right:8px;margin:0;accent-color:var(--accent);width:13px;height:13px}.variant-option strong{font-size:12px}.variant-option.selected{background:#f9ecd7;border-color:#bf8760;box-shadow:inset 0 0 0 1px #bf876044}.variant-option:focus-within{outline:2px solid #bc873c;outline-offset:2px}.variant-description{margin:12px 0 6px;font-size:11px;color:#60786a;line-height:1.8}.variant-resources,.room-variant-resources{display:flex;flex-wrap:wrap;gap:6px}.variant-resources>span,.room-variant-resources>span{display:flex;align-items:center;gap:4px;border:1px solid #e2ded3;border-radius:6px;background:#fffdf7;padding:4px 6px;font-size:9px;white-space:nowrap}.variant-rules{font-size:10px;line-height:1.8;color:#687d70;margin:8px 0 0}.room-variant-resources{margin:8px 0 18px}.rules-variant{margin:16px 22px;background:#f0f3e9;padding:12px;border-radius:8px}.rules-variant>strong{display:block;font-size:12px;margin-bottom:8px}.rules-variant>p{font-size:10px;line-height:1.8;color:#6c8073}.app[data-variant=energy]{--accent:#438078}.app[data-variant=energy] .map-stage{background:radial-gradient(ellipse at center,#f3f6e9,#e5eee5)}.app[data-variant=space]{--accent:#617796}.app[data-variant=space] .map-stage{background:radial-gradient(ellipse at center,#e9edf0,#dce4e9)}.app[data-variant=space] .goal-banner{background:#e9eaf1;border-color:#d5dce6}.app[data-variant=space] .turn-message{color:#435875}.resource-card strong{padding-inline:4px;text-align:center}.resource-card svg{flex-shrink:0}.app[data-variant=energy] .edition,.app[data-variant=space] .edition{color:var(--accent);border-color:var(--accent)}@media(max-width:760px){.variant-selector{margin-inline:17px}.variant-option{padding:12px 6px}.variant-option input{top:5px;right:5px}.variant-resources{gap:4px}.variant-resources>span{font-size:8px;padding:3px 5px}.resource-card strong{font-size:8px;line-height:1.3}.app[data-variant=energy] .resource-card{height:88px}.rules-variant{margin-inline:17px}.edition{display:inline-block;font-size:9px;padding:4px 6px}.header-actions{gap:1px}.site-header{gap:10px}}.playrooms-link{align-self:center;color:#61766a;font-size:12px;text-decoration:none}.playrooms-link:hover{text-decoration:underline}@media(max-width:760px){.site-header nav{gap:10px}.playrooms-link{font-size:10px}.edition{display:none}}.home-import{margin-top:14px;font-size:11px}.home-buttons{flex-wrap:wrap}
