*{box-sizing:border-box} :root{font-family:Arial,Helvetica,sans-serif;color:#f4f7fb;background:#205983;font-synthesis:none;color-scheme:dark;--line:#143e61;--panel:#18476e;--muted:#aac5dc;--gold:#edb54e}body{margin:0;min-width:360px}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0}button:disabled{cursor:default;opacity:.42}button:not(:disabled):hover{filter:brightness(1.12)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #fff2a4;outline-offset:3px}button{transition:filter .12s,background .12s}a{color:inherit}.topbar{height:64px;background:#173d60;display:flex;align-items:center;padding:0 25px;gap:35px;border-bottom:3px solid #12324d;box-shadow:0 2px 10px #132f4538}.brand{font-weight:900;font-size:24px;letter-spacing:.5px;display:flex;gap:8px;align-items:center;text-decoration:none;text-shadow:1px 2px #0c2b47}.brand-mark{font-size:38px;color:#ffd27b;line-height:1}.prototype{font-size:9px;letter-spacing:1.3px;color:#c0d3e1;border:1px solid #6d889e;padding:4px;border-radius:3px;margin-left:5px;text-shadow:none}.room-label{font-size:13px;color:#c1d5e4;display:flex;align-items:center;gap:9px}.live-dot{width:7px;height:7px;background:#74bd9b;border-radius:50%}.muted{opacity:.4}.topbar nav{margin-left:auto;display:flex;gap:10px}.top-button{background:#234e70;border-radius:5px;padding:8px 11px;color:#cfdfec;font-weight:bold}.top-button span{font-size:12px;margin-left:5px}.game-layout{height:calc(100dvh - 94px);min-height:690px;max-height:1200px;display:grid;grid-template-columns:minmax(0,1fr) 350px;max-width:1900px;margin:auto}.play-area{position:relative;overflow:hidden;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 35%,#377fab 0,#2b6c98 50%,#225c87 100%);border-right:3px solid #163e5f}.board-toolbar{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;z-index:1}.game-type{font-size:12px;font-weight:800;letter-spacing:1.4px}.game-type span{font-size:10px;color:#bad3e7;letter-spacing:.8px;margin-left:13px;font-weight:normal}.small-button{background:#1c4f77;border:1px solid #5286ab;padding:7px 12px;border-radius:4px;font-size:12px}.cost-reference{position:absolute;top:94px;left:20px;z-index:2;width:118px;opacity:.9}.cost-heading{font-size:9px;font-weight:bold;letter-spacing:1.4px;color:#c9dceb;margin-bottom:14px}.cost-row{display:flex;align-items:center;gap:3px;margin-bottom:12px}.cost-row>svg{width:28px;height:25px;margin-right:6px;flex-shrink:0}.mini-resource{width:12px;height:18px;border-radius:2px;border:1px solid #ffffff75;display:inline-flex;justify-content:center;align-items:center;font-size:8px;box-shadow:0 1px 2px #102a40}.cost-reference button{background:none;font-size:18px;padding:14px 0;color:#d2e2ee}.cost-reference button span{font-size:10px;margin-left:4px}#board-container{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;padding:0 15px 0 60px}#board{width:100%;height:100%;max-height:760px;overflow:visible;filter:drop-shadow(0 7px 8px #103a5030)}.tile-outline{stroke:#ead9a6;stroke-width:3;stroke-linejoin:round}.tile-art{pointer-events:none}.number-token{fill:#f4e5bf;stroke:#a98d5c;stroke-width:1.3}.number-text{font-family:Arial,sans-serif;font-weight:800;font-size:25px;text-anchor:middle;fill:#2f3432}.number-text.red{fill:#c8342c}.number-pips{font-size:10px;letter-spacing:1px;text-anchor:middle;fill:#4f4c40}.number-pips.red{fill:#c8342c}.tile-hot .tile-outline{stroke:#fff7a5;stroke-width:5}.tile-target{cursor:pointer}.port-line{stroke:#9cb4b0;stroke-width:3}.port-label{font-size:13px;font-weight:bold;fill:#f8f0d9;text-anchor:middle;paint-order:stroke;stroke:#20577a;stroke-width:3px;stroke-linejoin:round}.build-target{cursor:pointer}.board-bottom{display:flex;justify-content:space-between;padding:4px 24px 12px;font-size:10px;letter-spacing:.3px;color:#c8deec}#bank-status{display:flex;gap:8px;align-items:center}#bank-status .mini-resource{height:14px;width:9px}.bank-resource{display:flex;gap:3px;align-items:center}.instruction{align-self:center;background:#153e62e6;border:1px solid #81afd269;border-radius:5px;min-height:39px;display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 22px;box-shadow:0 3px 8px #15354e38;font-size:13px;z-index:3;margin:0 12px -10px;text-align:center}.instruction strong{color:#ffd887}.instruction .pulse{width:7px;height:7px;display:inline-block;border-radius:50%;background:#ffd47d;box-shadow:0 0 0 4px #ffd47d18}.hand-area{background:#16446788;border-top:1px solid #8db6d13d;min-height:154px;padding:23px 24px 12px;display:flex;align-items:center;justify-content:center;gap:24px}.hand-heading{position:absolute;left:23px;bottom:98px;font-size:11px;color:#c2d9e9;display:flex;flex-direction:column;gap:5px}.hand-heading strong{font-size:12px;color:#e4eff6}#hand{display:flex;gap:8px;justify-content:center}.resource-card{width:62px;height:90px;position:relative;border:2px solid #e7dab3;border-radius:6px;background:var(--resource);box-shadow:0 3px 0 #0e2e47,0 5px 8px #102f4c66;transition:transform .16s;isolation:isolate}.resource-card:hover{transform:translateY(-7px)}.resource-card.zero{opacity:.5}.resource-card>svg{width:48px;height:48px;position:absolute;top:14px;left:5px}.resource-card>img{position:absolute;width:100%;height:100%;object-fit:fill;inset:0;z-index:1;border-radius:4px}.card-label{position:absolute;bottom:6px;width:100%;text-align:center;font-size:9px;font-weight:bold;text-shadow:0 1px 2px #000;z-index:2}.card-count{position:absolute;top:-10px;right:-9px;min-width:25px;height:25px;background:#f4e7c6;color:#2c3b42;border:2px solid #163e5e;border-radius:50%;font-size:14px;display:grid;place-items:center;font-weight:bold;z-index:3}#development-hand{display:flex;gap:6px;max-width:240px;flex-wrap:wrap}.dev-card{background:#644888;border:1px solid #bd9ed4;padding:8px;border-radius:4px;font-size:10px;max-width:85px;min-height:65px}.dev-card .dev-symbol{display:block;font-size:23px;margin-bottom:3px}.dev-card small{display:block;font-size:8px;color:#e3cfee;margin-top:3px}.sidebar{background:#173f62;display:flex;flex-direction:column;min-height:0}.log-panel{flex:1;min-height:180px;display:flex;flex-direction:column;border-bottom:3px solid #102f4c}.panel-tabs{display:flex;align-items:center;gap:2px;background:#163a5b;padding:10px 9px 0;border-bottom:1px solid #3e6687}.panel-tabs button{padding:10px 13px;background:none;font-weight:bold;color:#8facbf;font-size:12px;border-bottom:3px solid transparent}.panel-tabs button.selected{color:#fff;border-color:#e4b351}.chat-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:#779ab4;vertical-align:middle;margin-left:4px}#connection-status{font-size:8px;letter-spacing:1px;color:#8abda8;margin-left:auto;padding-right:8px}#game-log,#chat-log{overflow-y:auto;flex:1;padding:12px 16px;font-size:12px;line-height:1.65;scrollbar-width:thin;scrollbar-color:#5886a5 transparent}.log-line{padding:5px 0;border-bottom:1px solid #ffffff08;color:#d5e2ed}.log-line.system{color:#a7c5da;font-size:11px;font-style:italic}.log-line strong{font-weight:700}.log-turn{font-size:9px;opacity:.35;float:right;margin-left:8px}#chat-form{display:flex;border-top:1px solid #50718e;background:#163a5b;margin:0 10px 10px;border:1px solid #446985;border-radius:4px}#chat-input{width:100%;min-width:0;border:0;background:transparent;padding:10px;color:#e3edf5;font-size:11px}#chat-input::placeholder{color:#96b1c7}#chat-form button{background:transparent;color:#8aadc7;padding:0 13px}#players{padding:6px 9px;display:flex;flex-direction:column;gap:5px;background:#123752}.player-row{border:1px solid #426885;border-left:5px solid var(--player-color);border-radius:4px;display:flex;align-items:center;gap:10px;padding:8px 10px;background:#244f70;position:relative;min-height:64px}.player-row.active{background:#386888;border-color:#f3c569;border-left-color:var(--player-color);box-shadow:0 0 0 1px #f3c56935}.avatar{background:#123c59;border-radius:50%;height:33px;width:33px;display:grid;place-items:center;color:var(--player-color);border:1px solid #7295ad;font-size:19px}.player-info{flex:1;min-width:0}.player-name{font-size:12px;font-weight:bold;color:var(--player-color);text-shadow:0 1px 1px #123}.bot-label{font-size:8px;color:#abc1d1;border:1px solid #7893a6;border-radius:2px;padding:1px 3px;margin-left:6px;text-shadow:none;vertical-align:middle}.player-metrics{display:flex;gap:13px;font-size:11px;margin-top:7px;color:#d3e3ed}.player-metrics span{display:inline-flex;gap:4px;align-items:center}.metric-icon{color:#a2bed3}.score{font-size:23px;font-weight:800;text-align:center;min-width:29px}.score small{display:block;font-size:8px;color:#bdd0dd;letter-spacing:.5px;font-weight:normal}.award{color:#ffce68!important}.action-panel{padding:13px 12px 12px;background:#1b486d}.turn-status{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:12px}.turn-status>span:first-child{font-weight:bold}#phase-label{font-size:9px;color:#afc9dc;text-transform:uppercase;letter-spacing:.8px}.dice-row{display:flex;gap:12px;align-items:center;margin-bottom:14px}#dice{display:flex;gap:6px;min-width:87px}.die{width:39px;height:39px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:3px;padding:6px;background:#f6f0d9;border:1px solid #fff;border-radius:6px;box-shadow:0 3px 0 #12314a}.die.red-die{background:#e7aa68}.pip{border-radius:50%;background:#253644}.pip.off{visibility:hidden}.primary-button{background:linear-gradient(#edb456,#d99434);border:1px solid #ffe2a3;border-bottom:3px solid #9d641d;border-radius:5px;color:#302c23;font-size:14px;font-weight:bold;min-height:43px;flex:1;padding:9px 12px;box-shadow:0 2px 3px #1234}.build-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.build-button{border:1px solid #6b8fa9;border-bottom:3px solid #11314c;border-radius:4px;padding:8px 2px 6px;background:#3c6989;font-size:9px}.build-button.selected{border-color:#ffe2a3;background:#5c8199}.build-button>svg{height:28px;width:34px;display:block;margin:0 auto 5px}.build-button .cost-dots{display:flex;justify-content:center;gap:2px;margin-top:6px}.build-button .mini-resource{height:9px;width:6px;font-size:0}.utility-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.utility-actions button{background:#2b5d80;border:1px solid #65849e;border-radius:4px;padding:7px;font-size:17px}.utility-actions span{font-size:11px;margin-left:4px}footer{height:30px;background:#143753;display:flex;align-items:center;padding:0 24px;gap:14px;font-size:8px;letter-spacing:1px;color:#90aec5}footer>span{font-size:9px;letter-spacing:.1px;color:#789bb6}#save-status{margin-left:auto}#toast{position:fixed;bottom:45px;left:50%;transform:translateX(-50%) translateY(20px);background:#fff0cc;color:#44372b;padding:12px 20px;border-radius:5px;box-shadow:0 4px 20px #0019;max-width:90vw;font-size:13px;z-index:30;opacity:0;pointer-events:none;transition:.2s}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}dialog{background:#1d4b70;color:#eef6fb;border:1px solid #779ab4;border-radius:9px;padding:0;box-shadow:0 20px 100px #0008;width:min(540px,94vw);max-height:88vh}dialog::backdrop{background:#071b2ebd;backdrop-filter:blur(3px)}#modal-content{padding:26px}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal-heading h2{margin:0;font-size:21px}.modal-close{font-size:20px;background:transparent;color:#b4c9da;padding:3px 8px}.modal-copy{font-size:13px;line-height:1.7;color:#c9dce9}.modal-copy strong{color:#ffe0a1}.modal-copy ol{padding-left:20px}.modal-copy li{margin:10px 0}.modal-copy a{color:#ffdb92}.modal-actions{display:flex;gap:10px;margin-top:22px;justify-content:flex-end}.modal-actions button{flex:initial;min-width:110px}.secondary-button{background:#37688a;border:1px solid #7d9db4;border-radius:4px;padding:10px 17px;font-size:13px}.trade-tabs{display:flex;gap:8px;margin-bottom:20px}.trade-tabs button{flex:1;padding:10px;background:#285b80;border-bottom:3px solid transparent;border-radius:4px}.trade-tabs button.selected{border-color:var(--gold);background:#3e7297}.trade-selectors{display:flex;gap:15px;align-items:center;justify-content:space-between;margin:20px 0}.trade-selectors label{display:flex;flex-direction:column;gap:9px;font-size:12px;flex:1}select{background:#173d5c;border:1px solid #7898b0;border-radius:4px;padding:10px;color:#fff;width:100%}.resource-selector{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:16px 0}.resource-choice{padding:10px 3px;border:1px solid #678ba6;border-radius:5px;background:#285b80;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:10px}.resource-choice svg{height:35px;width:35px}.counter{display:flex;align-items:center;gap:5px}.counter button{background:#173d5c;border-radius:3px;width:20px;height:22px;font-size:15px}.counter output{font-size:14px;min-width:14px;text-align:center}.modal-status{font-size:12px;color:#f8ce87;min-height:20px}.trade-player{display:flex;align-items:center;justify-content:space-between;padding:10px;background:#164264;border-radius:4px;margin:7px 0;font-size:13px}.trade-player button{background:#44856b;padding:7px 14px;border-radius:4px;font-size:12px}.stats-chart{display:flex;gap:8px;height:160px;align-items:end;margin:25px 0}.stats-column{flex:1;text-align:center;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:11px;gap:6px}.stats-bar{background:#e4b25b;width:100%;min-height:2px;border-radius:3px 3px 0 0}.settings-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;padding:12px 0;gap:20px}.settings-row select{width:180px}.winner-emblem{font-size:64px;text-align:center;color:#ffcf69}.winner-title{text-align:center;font-size:26px}.final-scores{display:flex;justify-content:space-around;margin:25px 0;font-size:13px}.final-scores strong{display:block;text-align:center;font-size:24px;margin-top:9px}[hidden]{display:none!important}
@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,1fr) 390px}.resource-card{width:70px;height:100px}.resource-card>svg{left:9px;top:20px}.hand-area{min-height:167px}.cost-reference{left:30px;top:110px}.player-row{min-height:72px}.log-panel{font-size:13px}}
@media(max-width:1100px){.game-layout{grid-template-columns:minmax(0,1fr) 310px}.room-label{display:none}.cost-reference{width:90px;left:12px;top:80px}.cost-row>svg{width:20px;margin-right:3px}.mini-resource{width:9px;height:14px}.cost-row{gap:2px}#board-container{padding-left:28px}.hand-heading{display:none}.hand-area{gap:10px;padding-left:10px;padding-right:10px}.resource-card{width:53px;height:80px}.resource-card>svg{width:39px;height:39px}.game-type span{display:none}#development-hand{max-width:100px}.dev-card{min-height:40px;font-size:8px;padding:4px}.dev-card .dev-symbol{font-size:15px;display:inline-block}.dev-card small{font-size:7px}.board-toolbar{padding:16px}}
@media(max-width:760px){.topbar{height:54px;padding:0 12px}.brand{font-size:18px}.brand-mark{font-size:30px}.prototype{font-size:7px}.topbar nav{gap:4px}.top-button span{display:none}.game-layout{height:auto;min-height:0;display:flex;flex-direction:column}.play-area{border-right:0;height:690px;min-height:580px}.board-toolbar{padding:12px 15px}.cost-reference{top:63px;left:10px;opacity:.65;transform:scale(.85);transform-origin:top left}#board-container{padding:0 8px;min-height:360px}.board-bottom{padding:4px 12px 12px;font-size:9px}.hand-area{min-height:130px}.instruction{font-size:12px;padding:8px 14px;min-height:36px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:0}.log-panel{height:260px;grid-column:1/-1;grid-row:2}#players{padding:8px 5px}.player-row{min-height:57px;padding:5px;gap:5px}.avatar{width:25px;height:25px;font-size:15px}.player-name{font-size:10px}.bot-label{font-size:6px;margin-left:3px}.player-metrics{gap:8px;font-size:9px}.score{font-size:19px}.action-panel{padding:12px 8px}.dice-row{gap:5px;flex-wrap:wrap}#dice{min-width:0}.die{width:28px;height:28px;padding:4px;gap:2px}.primary-button{font-size:11px;padding:8px 5px;min-height:34px}.turn-status{font-size:11px;flex-wrap:wrap;gap:6px}.build-actions{grid-template-columns:repeat(2,1fr)}.build-button{padding:4px}.build-button>svg{height:20px;margin-bottom:2px}.build-button .cost-dots{display:none}.utility-actions span{font-size:9px}.utility-actions button{padding:5px;font-size:14px}.log-panel{min-height:0}.room-label{display:none}footer{padding:0 10px;font-size:7px;gap:7px}footer>span{font-size:8px}.resource-card{width:52px;height:76px}#hand{gap:6px}#development-hand{max-width:85px}.resource-selector{gap:4px}.resource-choice{font-size:8px}.counter{gap:3px}.counter button{width:17px}.settings-row select{width:140px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Downloaded Colonist artwork, served locally. */
@font-face{font-family:Open Sans;src:url('assets/OpenSans-Regular-webfont.ab6e9d5d7db5dfffc24d.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Open Sans;src:url('assets/OpenSans-Semibold-webfont.cbd0a0ff6bb87d073db2.woff') format('woff');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:Open Sans;src:url('assets/OpenSans-Bold-webfont.80e9b54f4fd336ac7ea6.woff') format('woff');font-style:normal;font-weight:700 900;font-display:swap}
:root{font-family:Open Sans,Arial,Helvetica,sans-serif}
.play-area{background:#10699f}
.tile-outline{stroke:transparent;stroke-width:3;stroke-linejoin:round}
.tile-art,.shore-sprite,.number-art,.robber-art,.board-piece{pointer-events:none}
.port-line{stroke:#b3cbd5;stroke-width:1.5;opacity:.55}
.resource-card{background:transparent;border:0;box-shadow:none;border-radius:4px}
.resource-card>img{object-fit:contain;border-radius:0}
.mini-resource{background:none;border:0;box-shadow:none;border-radius:0;overflow:hidden}
.mini-resource img{display:block;width:100%;height:100%;object-fit:contain}
.build-button .mini-resource{height:12px;width:8px}
#bank-status .mini-resource{height:18px;width:12px}
.bank-art{height:22px;width:27px;object-fit:contain;margin-right:2px}
.die-art{width:39px;height:39px;object-fit:contain;filter:drop-shadow(0 2px 1px #1239)}
.avatar img{width:27px;height:27px;object-fit:contain}
.metric-art{width:15px;height:18px;object-fit:contain}
.control-art{width:23px;height:23px;object-fit:contain;vertical-align:middle}
.utility-actions button,.top-button{display:flex;align-items:center;justify-content:center;gap:4px}
#chat-form .control-art{width:17px;height:17px}
#development-hand{max-height:120px;overflow-y:auto;align-items:start;scrollbar-width:thin}
.dev-card{width:63px;max-width:63px;min-height:0;padding:0 2px 5px;background:none;border:0;border-radius:0;position:relative}
.dev-art{display:block;width:56px;height:79px;object-fit:contain;margin:auto}
.dev-label{display:block;font-size:8px;line-height:1.2;margin-top:4px}
.dev-card small{font-size:7px;color:#d8e4ee}
.winner-emblem img{width:86px;height:86px;object-fit:contain}
@media(max-width:1100px){#development-hand{max-width:140px}.dev-card{width:52px}.dev-art{width:46px;height:66px}}
@media(max-width:760px){.die-art{width:28px;height:28px}.avatar img{width:21px;height:21px}.metric-art{width:12px;height:14px}.control-art{width:19px;height:19px}#development-hand{max-width:105px;max-height:102px}.dev-card{width:44px}.dev-art{width:40px;height:57px}.bank-art{width:20px;height:18px}.utility-actions button{gap:1px}}

/* Colonist-style hand bar, trade panel, and board zoom. */
#board-container{touch-action:none;cursor:grab}
#board-container:active{cursor:grabbing}
.hand-area{position:relative;display:block;background:none;border-top:0;min-height:0;padding:0 14px 14px}
.hand-bar{background:#f3ecd8;border-radius:10px;min-height:88px;padding:10px 12px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 10px #0b2c4433;overflow-x:auto;scrollbar-width:thin}
#hand{display:flex;gap:12px;align-items:center}
.card-group{position:relative;height:64px;flex-shrink:0}
.card-group>img{position:absolute;top:0;width:46px;height:64px;object-fit:contain;filter:drop-shadow(0 1px 1px #0003)}
.group-count{position:absolute;top:-7px;right:-8px;min-width:21px;height:21px;padding:0 4px;background:#2e71c5;border:2px solid #f3ecd8;color:#fff;border-radius:50%;font-size:12px;font-weight:800;display:grid;place-items:center;z-index:2}
[data-hand]{cursor:pointer;transition:transform .12s}
[data-hand]:hover,[data-hand]:focus-visible{transform:translateY(-6px)}
.hand-divider{width:2px;align-self:stretch;background:#00000021;border-radius:2px;flex-shrink:0}
#development-hand{display:flex;gap:8px;align-items:center;max-height:none;overflow:visible;max-width:none}
.dev-card{width:48px;padding:0;transition:transform .12s}
.dev-card:hover{transform:translateY(-6px)}
.dev-card.locked{opacity:.55}
.dev-art{width:46px;height:64px;margin:0}
#trade-panel{position:absolute;left:14px;bottom:calc(100% + 2px);width:min(640px,calc(100% - 28px));z-index:6;display:flex;gap:8px;align-items:stretch;color:#3b3a31}
.trade-main{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.trade-strip{background:#f3ecd8;border-radius:10px;padding:8px 12px;box-shadow:0 4px 10px #0b2c4433}
.trade-want{display:flex;align-items:center;gap:8px}
#trade-chips{display:flex;gap:7px}
.trade-chip{width:44px;height:44px;padding:1px;background:none;border-radius:8px;transition:transform .12s}
.trade-chip img{width:100%;height:100%;object-fit:contain}
.trade-chip:hover,.trade-chip:focus-visible{transform:translateY(-3px)}
.trade-bank-mark{margin-left:auto;width:30px;height:24px;object-fit:contain;opacity:.5}
.trade-offer .trade-row{display:flex;align-items:center;gap:12px;min-height:74px;padding:2px 0}
.trade-row-icon{width:30px;height:30px;object-fit:contain;filter:brightness(0) opacity(.62)}
.trade-avatar{width:30px;height:30px;border-radius:50%;background:#E83239;border:2px solid #00000038;display:grid;place-items:center;flex-shrink:0}
.trade-avatar img{width:19px;height:19px;object-fit:contain;filter:brightness(0) invert(1)}
.trade-arrow{width:24px;height:24px;object-fit:contain;transform:rotate(-90deg)}
.trade-cards{display:flex;gap:12px;align-items:center;min-height:64px}
.trade-cards .card-group{cursor:pointer;transition:transform .12s}
.trade-cards .card-group:hover{transform:translateY(-4px)}
.trade-cards .group-count{border-color:#f3ecd8}
.trade-responses{display:flex;gap:14px;align-items:center;font-size:13px}
.trade-response{font-weight:700;color:var(--player-color);display:inline-flex;gap:7px;align-items:center;text-shadow:0 1px 1px #00000073}
.trade-response button{background:#3f9e63;color:#fff;border-radius:6px;width:28px;height:28px;font-size:15px;font-weight:800}
.response-no{color:#c0392b;font-size:15px}
.trade-side{display:flex;flex-direction:column;gap:8px;justify-content:flex-end}
.trade-side button{width:60px;height:60px;border-radius:10px;background:linear-gradient(#a5dcec,#58b0cd);border:2px solid #fff;box-shadow:0 3px 7px #0b2c4433;display:grid;place-items:center}
.trade-side .side-art{width:34px;height:34px;object-fit:contain;filter:brightness(0) invert(1) drop-shadow(0 1px 1px #0004)}
.trade-side .side-art-bank{filter:drop-shadow(0 1px 1px #0004)}
@media(max-width:1100px){.card-group{height:54px}.card-group>img{width:39px;height:54px}.dev-art{width:39px;height:54px}.dev-card{width:41px}.hand-bar{min-height:76px}.trade-chip{width:38px;height:38px}}
@media(max-width:760px){.hand-area{padding:0 8px 8px}#trade-panel{left:8px;width:calc(100% - 16px)}.trade-side button{width:48px;height:48px}.trade-side .side-art{width:27px;height:27px}.trade-offer .trade-row{min-height:60px}}
[hidden]{display:none!important}
#lounge{min-height:calc(100vh - 110px);display:flex;align-items:center;justify-content:center;gap:26px;padding:40px 24px;background:radial-gradient(ellipse at 30% 25%,#3984a9 0,transparent 60%)}
.lobby-card{background:#f7f3e8;color:#263b48;border-radius:18px;padding:34px;width:560px;max-width:100%;box-shadow:0 18px 70px #082d5355;border:1px solid #ffffff80}
.lobby-eyebrow{font-size:11px;font-weight:800;letter-spacing:2.5px;color:#38778c;margin-bottom:16px}
.lobby-card h1{font-size:38px;line-height:1.15;letter-spacing:-1.5px;margin:0 0 12px}.lobby-card h1 span{color:#28789a}.lobby-card h2{font-size:23px;margin:0 0 22px}
.lobby-card p{line-height:1.6}.lobby-note{font-size:12px;color:#65747a}.welcome-card{padding:44px}.welcome-card h1{font-size:48px}
#name-form{display:grid;gap:12px;margin:28px 0 20px}#name-form label{font-size:13px;font-weight:700}#player-name{font:inherit;padding:14px;background:white;border:1px solid #c3cbd0;border-radius:8px;color:#263b48}
.lobby-card .primary-button{min-height:48px;width:100%;font-size:15px}.lobby-seats{display:grid;gap:8px;margin:24px 0}.lobby-seat{display:flex;align-items:center;gap:12px;padding:11px 14px;background:#fff;border:1px solid #dce1df;border-radius:9px}.lobby-seat small{display:block;font-size:11px;color:#74828a;margin-top:3px}.seat-piece{font-size:33px;color:var(--seat-color,#8097a3);text-shadow:0 1px 2px #4446}.seat-online{margin-left:auto;color:#408663;font-size:11px}.bot-seat{background:#edf0ea}
.color-picker{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:20px 0;font-size:13px;font-weight:700}.color-picker>span{margin-right:auto;flex-basis:100%}.color-choice{background:var(--swatch);border:2px solid #7b858755;border-radius:50%;width:32px;height:32px;color:#1c3040;font-weight:900;font-size:18px;cursor:pointer;padding:0}.color-choice.chosen{outline:2px solid #2a6f8c;outline-offset:3px}.color-choice:disabled{opacity:.25;cursor:default}
.lobby-options{border-block:1px solid #d8dfdd;margin:20px 0;padding:4px 0}.lobby-options label{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0}.lobby-options strong{font-size:13px}.lobby-options small{display:block;color:#6e7c83;font-size:11px;margin-top:4px}.lobby-options input{width:22px;height:22px;accent-color:#2a7899}.lobby-options select{background:white;color:#263b48;border:1px solid #c4cece;border-radius:6px;padding:8px;min-width:86px}
.scores-card{width:360px;align-self:center}.profile-scores{width:100%;border-collapse:collapse;font-size:13px}.profile-scores th,.profile-scores td{padding:13px 7px;text-align:right;border-bottom:1px solid #a0b6bf44}.profile-scores th:first-child,.profile-scores td:first-child{text-align:left}.profile-scores th{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:#78909b}
#network-banner{position:fixed;top:60px;left:50%;transform:translateX(-50%);z-index:100;background:#ffe0a3;color:#4c3917;padding:12px 22px;border-radius:8px;box-shadow:0 3px 20px #0003;font-size:13px;max-width:90vw;text-align:center}
#incoming-trade{background:#f7f3e8;color:#263b48;padding:16px;border-radius:10px;margin:6px;font-size:12px}#incoming-trade p{line-height:1.7}#incoming-trade>div{display:flex;gap:8px}#incoming-trade button{padding:9px 15px}#lobby-error{color:#ad3c32}.network-offline .action-panel{opacity:.55;pointer-events:none}
@media(max-width:850px){#lounge{flex-direction:column;padding:24px 14px;align-items:stretch}.lobby-card,.scores-card{width:100%;padding:25px}.lobby-card h1{font-size:34px}.scores-card{align-self:stretch}.topbar .room-label{display:none}#profile-button{max-width:120px;overflow:hidden;text-overflow:ellipsis}.color-picker{gap:8px}}
@media(max-width:600px){.topbar{gap:8px;padding:0 10px}.topbar .brand{font-size:17px;gap:5px;letter-spacing:0}.topbar .brand-mark{font-size:27px}.topbar .prototype{display:none}.topbar nav{gap:5px;min-width:0}.topbar .top-button{padding:7px}.topbar .top-button span{display:none}#profile-button{max-width:78px;font-size:11px}.lobby-options select{width:auto}}

/* Colonist-style placement highlights, bank cards, and flying resource cards. */
.target-mark{pointer-events:none}
.target-circle{transform-box:fill-box;transform-origin:center;animation:target-pulse 1.96s ease-in-out infinite}
@keyframes target-pulse{0%,100%{transform:scale(.92)}50%{transform:scale(1.08)}}
.hl-hover{opacity:0}
.build-target:hover .hl-hover,.build-target:focus-visible .hl-hover,.tile-target:hover .hl-hover,.tile-target:focus-visible .hl-hover{opacity:1}
.build-target:hover .hl-base,.build-target:focus-visible .hl-base,.tile-target:hover .hl-base,.tile-target:focus-visible .hl-base{opacity:0}
.board-bottom{align-items:center;min-height:56px}
#bank-status{gap:10px}
.bank-resource{font-size:13px;font-weight:700;gap:4px}
.bank-card{width:25px;height:35px;object-fit:contain;filter:drop-shadow(0 1px 2px #0005)}
.bank-art{height:26px;width:32px}
#fx-layer{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
.fx-card{position:fixed;left:0;top:0;width:38px;height:53px;object-fit:contain;filter:drop-shadow(0 3px 5px #0007);will-change:transform,opacity}
@media(max-width:760px){.bank-card{width:18px;height:25px}.bank-resource{font-size:11px}.board-bottom{min-height:42px}.fx-card{width:28px;height:39px}}
