:root{color-scheme:dark;--ink:#e8eaed;--muted:#a8adb4;--accent:#e34843;--line:#8b919b20;--panel:#17191d;--accent-soft:#ff7974;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#0b0c0e;color:var(--ink);overflow:hidden}button,a,select,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#25282e;border-radius:5px;min-height:44px;transition:background .15s,border-color .15s}button:hover:not(:disabled){background:#343940;border-color:#e3484377}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400}.eyebrow{font-size:9px;letter-spacing:1.7px;color:var(--muted)}#app{display:grid;height:100dvh;grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:64px 56px minmax(0,1fr) 108px}.topbar{grid-column:1/-1;display:flex;align-items:center;padding:0 26px;border-bottom:1px solid var(--line);background:#101114;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:2px;flex-shrink:0}.brand-mark{font-size:33px;color:var(--accent)}.brand b{display:block;font-family:Georgia,serif;font-size:21px;font-weight:400;letter-spacing:3px;margin-top:3px}.top-center{display:flex;align-items:center;gap:9px;margin:auto;font-size:9px;letter-spacing:2px;color:#a8adb4}.live-dot{width:5px;height:5px;border-radius:50%;background:#cc4540;box-shadow:0 0 10px #cc454066}.top-actions{display:flex;gap:7px}.top-actions button{padding:0 13px;font-size:10px;letter-spacing:1px;background:transparent}.resource-strip{grid-column:1/-1;display:flex;align-items:center;justify-content:space-around;padding:0 20px;background:#1a1c20;border-bottom:1px solid #8b919b25;z-index:2}.resource{display:grid;grid-template-columns:15px auto;gap:1px 9px;align-items:center;padding:0 12px;border-right:1px solid var(--line)}.resource:last-child{border:0}.resource i{grid-row:span 2;color:var(--accent-soft);font-style:normal;font-size:17px}.resource span{font-size:8px;letter-spacing:1px;color:#afafaf}.resource strong{font-weight:500;font-size:16px;letter-spacing:.3px}.resource.low strong{color:#ff8c87}.world-wrap{position:relative;overflow:hidden;background:linear-gradient(155deg,#cecece,#979797)}#world{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-3px}.world-shade{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #36363622}.world-title{position:absolute;left:30px;top:27px;pointer-events:none;color:#f0f1f3;text-shadow:0 2px 12px #32323288}.world-title .eyebrow{color:#d6d9de;letter-spacing:2px}.world-title h1{font-size:34px;line-height:1.15;margin:10px 0}.world-title p{font-size:11px;line-height:1.5;margin:0;color:#d6d9de}.map-controls{position:absolute;right:20px;top:22px;display:flex;flex-direction:column;gap:6px}.map-controls button{width:44px;min-height:44px;background:#323232dd;border-color:#e2e2e244;font-size:20px;backdrop-filter:blur(6px)}.map-caption{position:absolute;left:26px;right:26px;bottom:18px;display:flex;justify-content:space-between;gap:12px;font-size:8px;letter-spacing:1.2px;color:#c9cdd3;pointer-events:none}.welcome{position:absolute;left:40px;bottom:58px;background:#2d2d2dee;max-width:380px;padding:30px;border:1px solid #d7d7d766;box-shadow:0 15px 60px #35353566;backdrop-filter:blur(10px)}.welcome h2{font-size:33px;line-height:1.1;margin:15px 0}.welcome p{font-size:12px;line-height:1.7;color:#d0d0d0}.welcome small{display:block;margin-top:12px;font-size:10px;color:#b2b2b2}.primary{background:var(--accent);color:#f2f3f5;border-color:#50555e;min-height:45px;padding:12px 16px;font-size:11px;font-weight:600;letter-spacing:.6px}.primary:hover:not(:disabled){background:#cb3933;color:#f2f3f5}.primary span{float:right;margin-left:28px}.secondary{padding:10px 15px;background:#303030;font-size:11px}.sidebar{min-height:0;overflow-y:auto;background:linear-gradient(155deg,#2f2f2f,#262626);padding:24px 20px 12px;border-left:1px solid #d5d5d533;scrollbar-width:thin}.town-summary{display:flex;justify-content:space-between;align-items:center;gap:10px}.town-summary h2{font-size:24px;margin:9px 0 19px}.town-summary>span{font-size:8px;letter-spacing:1.2px;border:1px solid #d0d0d04d;padding:7px;color:#d8dbe0;border-radius:3px}.civic-stats{display:flex;justify-content:space-between;gap:12px;padding:0 0 20px;border-bottom:1px solid var(--line)}.civic-stats div{display:flex;flex-direction:column;gap:8px}.civic-stats span{font-size:8px;letter-spacing:1.2px;color:var(--muted)}.civic-stats strong{font-size:22px;font-family:Georgia,serif;font-weight:400;color:#e8eaed}.milestone{padding:17px 0}.milestone .eyebrow{color:var(--accent)}.milestone p{font-size:11px;line-height:1.7;margin:7px 0;color:#cdcdcd}.progress{height:4px;background:#b5b5b522;margin:10px 0}.progress i{height:100%;display:block;background:#c73d38;transition:width .3s}.tabs{display:flex;border-bottom:1px solid var(--line);gap:1px;margin-bottom:16px}.tabs button{flex:1;font-size:9px;letter-spacing:.4px;padding:7px 2px;background:transparent;border:0;border-radius:0;border-bottom:2px solid transparent}.tabs button[aria-pressed=true]{color:var(--accent-soft);border-bottom-color:var(--accent)}.panel{min-height:180px}.panel h3{font-size:21px;margin:0 0 8px}.panel p{font-size:11px;line-height:1.7;color:#c7c7c7}.panel .section-note{font-size:10px;color:#a4a4a4;margin-bottom:15px}.build-card{display:grid;grid-template-columns:66px minmax(0,1fr);gap:12px;text-align:left;width:100%;padding:10px 9px;margin-bottom:8px;background:#4b4b4b26;border-color:#cbcbcb28;align-items:center}.build-card[aria-pressed=true]{border-color:#e3484399;background:#63636340}.build-card img{width:66px;height:65px;object-fit:contain;filter:drop-shadow(0 3px 3px #18181877)}.build-card b{font-family:Georgia,serif;font-size:17px;font-weight:400;display:block;margin-bottom:6px;color:#e8eaed}.build-card span{font-size:10px;line-height:1.6;color:#bdbdbd;display:block}.build-card small{display:block;font-size:10px;color:#c9cdd3;margin-top:5px}.selection{border:1px solid #747a8366;background:#5e5e5e30;padding:14px;margin:0 0 16px}.selection>img{width:83px;height:82px;object-fit:contain;float:right}.selection .primary{width:100%;margin-top:10px}.selection .readout{font-size:11px;color:#dadada;margin:9px 0}.research-card,.site-card,.governor-card{border:1px solid #cccccc2e;padding:14px;margin-bottom:10px;background:#3838382e}.research-card h3,.site-card h3{font-size:19px}.research-card button,.site-card button,.governor-card button{width:100%;font-size:10px;padding:10px;margin-top:7px}.site-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px}.site-card>img{width:54px;height:70px;object-fit:contain}.site-card p{margin-bottom:5px}.stage-path{display:flex;gap:7px;overflow:auto;margin:10px 0 18px;padding-bottom:7px}.stage-path span{font-size:9px;line-height:1.4;border:1px solid var(--line);padding:8px 10px;white-space:nowrap;color:#aaaaaa}.stage-path .active{color:var(--accent-soft);border-color:#e34843}.policy-row{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px;margin:13px 0}.policy-row select,.policy-row input{max-width:135px;min-height:40px;background:#2d2d2d;border:1px solid #bfbfbf44;color:#e3e3e3;padding:7px;border-radius:3px}.future{opacity:.6;font-size:10px;line-height:1.6;border-top:1px solid var(--line);padding-top:12px}.journal-head{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;margin-top:20px}.journal-head button{background:transparent;border:0;width:40px}.journal{max-height:145px;overflow:auto;scrollbar-width:thin}.journal p{font-size:10px;line-height:1.6;margin:10px 0;color:#b0b0b0}.journal p.good{color:#d8dbe0}.journal p.warning{color:#ff8c87}.journal time{font-size:8px;color:#8b8b8b;display:block;margin-bottom:2px}#storage-status{font-size:9px;color:#bac0c8;line-height:1.5;margin-top:10px}.buildbar{grid-column:1/-1;display:flex;align-items:center;gap:20px;padding:12px 24px;background:#272727;border-top:1px solid #d8d8d83b}.buildbar-intro{width:166px;flex-shrink:0}.buildbar-intro strong{font:400 18px Georgia,serif;display:block;margin-top:8px;color:#e8eaed}.buildbar-intro .eyebrow{font-size:7px;letter-spacing:1px}.tools{display:flex;border-left:1px solid var(--line);padding-left:16px;gap:7px}.tools button{min-width:64px;padding:8px 10px;font-size:22px;background:#3838382e}.tools small{display:block;font-size:7px;letter-spacing:.6px;margin-top:5px}.tools button[aria-pressed=true]{border-color:#e34843;color:var(--accent)}.quick-build{display:flex;gap:10px;overflow-x:auto;padding:4px;min-width:0;scrollbar-width:thin}.quick-build button{flex-shrink:0;width:82px;background:#40404030;border-color:#bebebe2e;padding:3px 8px 7px}.quick-build img{display:block;width:50px;height:49px;object-fit:contain;margin:auto}.quick-build span{font-size:8px;color:#cacaca}.quick-build button[aria-pressed=true]{border-color:var(--accent)}#toast{position:absolute;left:50%;bottom:45px;transform:translateX(-50%);padding:13px 20px;border:1px solid #747a8388;background:#303030ed;color:#e8eaed;max-width:80%;font-size:12px;line-height:1.5;opacity:0;pointer-events:none;transition:opacity .2s;z-index:5}#toast.visible{opacity:1}dialog{max-width:570px;max-height:85dvh;overflow:auto;background:#303030;color:var(--ink);border:1px solid #747a8388;padding:30px;box-shadow:0 25px 90px #171717aa}dialog::backdrop{background:#1a1a1ac9;backdrop-filter:blur(5px)}dialog h2{font-size:30px;margin:12px 0 20px}dialog p,dialog li{font-size:12px;line-height:1.8;color:#cacaca}dialog li{margin-bottom:13px}dialog ol{padding-left:20px}dialog .close{float:right;width:44px;background:transparent;font-size:24px;border:0}.muted{opacity:.7}dialog form{margin:0}dialog form>.primary{width:100%}[hidden]{display:none!important}
@media(max-width:1100px){#app{grid-template-columns:minmax(0,1fr) 320px}.top-center{display:none}.top-actions{margin-left:auto}.sidebar{padding:18px 16px}.buildbar{gap:12px;padding-left:16px}.buildbar-intro{width:135px}.world-title{left:20px}.world-title h1{font-size:28px}.resource{padding:0 7px}}
@media(max-width:740px){body{overflow:auto}#app{height:auto;min-height:100dvh;grid-template-columns:minmax(0,1fr);grid-template-rows:60px 64px 48dvh auto 88px}.topbar{padding:0 13px;gap:7px}.brand{font-size:7px;letter-spacing:1px;gap:7px}.brand-mark{font-size:26px}.brand b{font-size:17px;letter-spacing:2px}.top-actions{gap:4px}.top-actions button{padding:0 9px;min-width:38px;letter-spacing:.3px}.top-actions #save{font-size:8px}.resource-strip{padding:6px 7px;gap:7px;overflow:auto;justify-content:flex-start;scrollbar-width:none}.resource{min-width:68px;flex-shrink:0;grid-template-columns:12px auto;gap:2px 5px;padding:0 6px}.resource span{font-size:7px}.resource strong{font-size:15px}.world-wrap{grid-row:3}.world-title{top:17px;left:17px}.world-title h1{font-size:25px;margin:7px 0}.world-title p{font-size:10px;max-width:230px}.world-title .eyebrow{font-size:8px}.map-controls{top:13px;right:12px;gap:4px}.map-controls button{width:38px;min-height:38px}.map-caption{left:14px;bottom:12px;font-size:7px;right:14px}.map-caption span:last-child{display:none}.welcome{left:16px;right:65px;bottom:40px;padding:19px;max-width:340px}.welcome h2{font-size:26px;margin:11px 0}.welcome p{font-size:11px;line-height:1.5;margin-bottom:12px}.welcome small{font-size:9px}.welcome .eyebrow{font-size:7px}.welcome .primary{font-size:10px}.sidebar{grid-row:4;max-height:49dvh;min-height:290px;border-left:0;border-top:1px solid var(--line);padding:18px}.town-summary h2{font-size:22px;margin-bottom:13px}.civic-stats{padding-bottom:12px}.civic-stats div{gap:5px}.civic-stats strong{font-size:20px}.milestone{padding:13px 0}.milestone p{margin-bottom:0}.tabs{position:sticky;top:-18px;background:#2f2f2f;z-index:3;padding-top:4px}.panel{min-height:0}.build-card{grid-template-columns:58px 1fr}.build-card img{width:58px;height:58px}.buildbar{grid-row:5;position:sticky;bottom:0;z-index:4;padding:8px;gap:8px;overflow:hidden}.buildbar-intro{display:none}.tools{gap:4px;padding-left:0;border:0}.tools button{min-width:47px;padding:7px 5px;font-size:19px}.tools small{font-size:6px;letter-spacing:.1px}.quick-build{gap:5px}.quick-build button{width:62px;padding:1px 4px 5px}.quick-build img{width:43px;height:43px}.quick-build span{font-size:7px}dialog{width:calc(100% - 28px);padding:22px}.journal{max-height:100px}#toast{font-size:11px;padding:10px 13px;max-width:85%;width:max-content;bottom:32px}}
@media(max-height:520px) and (orientation:landscape){#app{height:100dvh;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:48px 48px minmax(0,1fr) 75px}.world-wrap{grid-row:3}.sidebar{grid-column:2;grid-row:3;max-height:none;min-height:0;padding:12px}.buildbar{grid-row:4;grid-column:1/-1}.world-title h1{font-size:22px}.welcome{left:15px;bottom:28px;padding:15px;max-width:300px}.welcome h2{font-size:23px}.welcome p,.welcome small{display:none}.map-controls{flex-direction:row;top:auto;bottom:35px}.tabs{top:-12px}.town-summary h2{font-size:19px}.milestone{padding:8px 0}.civic-stats strong{font-size:17px}.resource-strip{overflow:auto}.topbar{padding:0 14px}.buildbar-intro{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.citizen-portrait{display:block;float:right;width:64px;height:96px;background-image:url('./art/worker-portrait.png');background-size:contain;background-repeat:no-repeat;background-position:center;margin-left:8px;}

@media(pointer:coarse){.top-actions button{min-width:44px}.policy-row input,.policy-row select{min-height:44px}}
@media(max-width:360px){.brand-mark{display:none}.topbar{padding:0 10px}.brand b{font-size:15px}.top-actions button{padding:0 8px}}

.legacy-link{display:inline-block;font-size:10px;margin-top:15px;color:#cecece;border-bottom:1px solid #b2b2b266;padding-bottom:3px}

.brand-mark{object-fit:contain;width:42px;height:38px;flex-shrink:0}
@media(max-width:740px){.brand-mark{width:32px;height:31px}}

.upgrade-benefits{display:grid;gap:7px;padding:12px 0;margin:10px 0;border-top:1px solid #bebebe33;font-size:12px;color:#d8dbe0}.upgrade-benefits b{font-size:9px;letter-spacing:1px;color:var(--accent)}.upgrade-benefits small,.requirement-note{font-size:10px;line-height:1.6;color:#b7bcc4}.requirement-note{margin:10px 0}
@media(pointer:coarse){.map-controls button{min-width:44px;min-height:44px}}

@media(max-width:740px) and (orientation:portrait){.resource-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px 0;overflow:visible;padding:4px 5px}.resource{min-width:0;padding:1px 5px;grid-template-columns:12px minmax(0,1fr);gap:0 4px}.resource span{font-size:6.5px;letter-spacing:.45px}.resource strong{font-size:14px;line-height:16px}.resource i{font-size:14px}.resource:nth-child(4){border-right:0}}

.city-toolbar{position:absolute;left:18px;bottom:44px;display:flex;gap:7px;z-index:4}.city-toolbar button{padding:8px 12px;background:#323232ed;font-size:9px;letter-spacing:.7px}.city-toolbar button[aria-pressed=true]{border-color:var(--accent-soft);color:var(--accent)}.walk-hint{position:absolute;left:18px;top:130px;font-size:9px;letter-spacing:1px;background:#323232df;padding:9px 12px;pointer-events:none;color:#d8dbe0}.walk-controls{display:none;position:absolute;left:16px;bottom:100px;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:4px;z-index:4;touch-action:none}.walk-controls button{touch-action:none;background:#323232e8;border-color:#747a8399;color:var(--accent)}.walk-controls button:first-child{grid-column:2}.walk-controls button:nth-child(2){grid-column:1;grid-row:2}.walk-controls button:nth-child(3){grid-column:2;grid-row:2}.walk-controls button:nth-child(4){grid-column:3;grid-row:2}.people-filters,.person-actions{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.people-filters button,.person-actions button{font-size:9px;padding:8px}.people-filters button[aria-pressed=true]{border-color:var(--accent-soft);color:var(--accent)}.people-roster{display:grid;gap:7px;margin-top:18px}.people-roster button{display:flex;align-items:center;text-align:left;gap:10px;padding:10px}.people-roster button>span:nth-child(2){flex:1}.people-roster b{display:block;font-size:12px}.people-roster small{display:block;font-size:10px;color:#c3c3c3;line-height:1.6}.mini-person{width:26px;height:39px;flex-shrink:0;background:url('./art/worker-portrait.png') center/contain no-repeat}.jobs-title{font-size:20px;margin:20px 0 8px}.job-options{display:grid;gap:8px}.job-options article>button{width:100%;display:flex;align-items:center;text-align:left;padding:8px;gap:9px}.job-options img{width:48px;height:48px;object-fit:contain}.job-options b{font-size:9px;display:block;line-height:1.6}.job-options small{font-size:10px;display:block;color:#c5c5c5;line-height:1.6}.connection-help{padding:12px;background:#7f7f7f16;border:1px solid #747a8355;margin:12px 0}.connection-help>b{font-size:9px;letter-spacing:1px;color:var(--accent)}.connection-help p{font-size:11px;line-height:1.7}.connection-help button{display:block;width:100%;margin-top:7px;padding:9px;font-size:9px}.connection-help small{display:block;font-size:9px;line-height:1.6;margin-top:6px;color:#c2c2c2}
@media(pointer:coarse){.walk-controls:not([hidden]){display:grid}}@media(max-width:740px){.city-toolbar{left:12px;bottom:32px;gap:5px}.city-toolbar button{padding:7px 9px;font-size:8px}.walk-hint{top:105px;left:12px;font-size:8px}.tabs button{font-size:8px;letter-spacing:0}.walk-controls{bottom:86px}}
@media(max-height:520px) and (orientation:landscape){.city-toolbar{bottom:10px;left:10px}.map-controls{bottom:61px}.walk-controls{bottom:58px;left:10px}.walk-hint{top:8px;left:10px;font-size:7px}.world-title{top:33px}.world-title p{display:none}}

.workboard-intro{display:flex;align-items:center;gap:12px}.workboard-intro img{width:66px;height:66px;object-fit:contain}.workboard-intro h3{margin:0}.panel>[data-staffing]{width:100%;padding:10px;font-size:9px;margin:10px 0;border-color:#747a8377}

.job-options .show-job{font-size:9px;padding:8px 10px;width:100%;margin:4px 0 8px;color:#d8dbe0}.person-actions button{flex:1;min-width:90px}

#toast{left:auto;right:18px;bottom:44px;transform:none;max-width:40%;width:max-content}@media(max-width:740px){#toast{right:12px;bottom:86px;max-width:55%;width:max-content}}@media(max-height:520px) and (orientation:landscape){#toast{top:42px;bottom:auto;right:12px;max-width:180px;font-size:9px}}

/* Progression and multiple scales share the same live simulation. */
#world-atlas{position:absolute;inset:0;width:100%;height:100%;z-index:2;touch-action:manipulation}#world-atlas[hidden]{display:none}.atlas-view .world-title{display:none}.city-toolbar{flex-wrap:wrap;max-width:calc(100% - 28px);z-index:6}.city-toolbar button{min-height:44px}.close-view .world-title{opacity:0;pointer-events:none}.unlock{display:flex;align-items:center;gap:10px;padding:8px 0}.unlock img{width:60px;height:64px;object-fit:contain}.unlock span{font-size:10px}.unlock b{font-size:13px}.unlock button{margin-left:auto}.research-branch h4{font-size:12px;letter-spacing:.18em;color:var(--accent-soft,#ff7974);margin:24px 0 10px}.research-card.discovered{border-color:#747a83}.prerequisites{display:block;line-height:1.7;color:#c1c1c1}.career{border-bottom:1px solid #ffffff24;padding:14px 0;margin-bottom:18px}.talent{padding:14px 0;border-bottom:1px solid #ffffff15}.talent p{margin:6px 0}.fleet-readout{padding:16px;border:1px solid #818181;border-radius:8px;margin:16px 0}.ocean-site.selected{outline:2px solid #e34843}.ocean-site small{display:block;line-height:1.6}.voyage{color:#d8dbe0}.maritime{padding-bottom:20px;border-bottom:1px solid #ffffff30;margin-bottom:24px}.atlas-view .map-controls{display:none}.atlas-view .map-caption{z-index:4}.atlas-view .city-toolbar{background:#313131dd}.close-view .map-caption{font-size:9px}@media(max-width:740px){.city-toolbar{gap:3px;left:8px;bottom:34px}.city-toolbar button{font-size:8px;padding:8px 6px}.unlock{gap:6px}.unlock img{width:48px}.unlock button{font-size:9px}.atlas-view .world-shade{display:none}}

/* Resident details are a separate view with an explicit, always reachable exit. */
.people-detail-nav{position:sticky;top:0;z-index:8;display:flex;gap:6px;padding:8px 0 12px;background:var(--panel,#2f2f2f);border-bottom:1px solid #747a8366}.people-detail-nav button{min-height:44px;padding:9px 10px;font-size:10px}.people-detail-nav [data-people-back]{flex:1;text-align:left;color:var(--accent-soft);border-color:#747a83aa;font-weight:700}.people-detail-nav [data-people-filter]{font-size:9px}.people-detail-nav+.person-selection{margin-top:14px}.people-list-heading:focus,#people-list-heading:focus{outline:none}
@media(max-width:740px),(max-height:520px) and (orientation:landscape){.city-toolbar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;width:max-content;max-width:calc(100% - 16px);min-height:44px;scrollbar-width:thin;scrollbar-color:#7d828b transparent;overscroll-behavior-x:contain}.city-toolbar button{flex:0 0 auto;white-space:nowrap;min-height:44px}.walk-controls{bottom:100px;z-index:7}}
@media(max-height:520px) and (orientation:landscape){.walk-controls{bottom:68px}}

/* Industrial interface: physical steel bezels, recessed charcoal housings and red state accents.
   ui-frame.png is a shared nine-slice material; center remains the panel fill below. */
:root{--ink:#e8eaed;--muted:#a8adb4;--accent:#e34843;--accent-soft:#ff7974;--line:#747a8355;--panel:#17191d;--housing:#101114;--steel:#343940;--frame-image:url('./art/ui-frame.png')}
body{background:#090a0c}
h1,h2,h3,.brand b,.build-card b,.buildbar-intro strong,.civic-stats strong{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:600}
.brand b{font-weight:700;letter-spacing:2px}.brand{color:#e8eaed}
button{border:6px solid #343940;border-image-source:var(--frame-image);border-image-slice:24;border-image-width:6px;border-image-outset:0;border-image-repeat:stretch;border-radius:2px;background:linear-gradient(#30343a,#202328);box-shadow:inset 0 1px 0 #ffffff16,inset 0 -2px 3px #00000080,0 2px 2px #00000060;color:#e8eaed;text-shadow:0 1px 1px #000000;transition:background .12s,box-shadow .12s}
button:hover:not(:disabled){background:linear-gradient(#41464e,#2d3137);box-shadow:inset 0 1px 0 #ffffff26,inset 0 -2px 3px #00000090,0 2px 2px #00000070}
button:active:not(:disabled){background:linear-gradient(#17191d,#282b31);box-shadow:inset 0 3px 5px #000000c0,0 1px 0 #ffffff12;transform:translateY(1px)}
button[aria-pressed=true],button[aria-current=true]{background:linear-gradient(#4b2929,#292124);box-shadow:inset 0 0 0 2px #d7433e,inset 0 2px 4px #00000080,0 2px 2px #00000060;color:#ffaaa5}
button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #ff7974;outline-offset:2px}
button:disabled{opacity:.48;box-shadow:inset 0 2px 4px #00000080;transform:none}
.topbar,.resource-strip,.buildbar{background:linear-gradient(#202328,#111317);border-color:#5b616b;box-shadow:inset 0 1px 0 #ffffff12,0 2px 8px #00000070}
.topbar{border-bottom-width:4px}.resource-strip{border-bottom-width:3px}.buildbar{border-top-width:5px}
.sidebar{background:linear-gradient(120deg,#1b1e23,#111317);border-left:7px solid #343940;border-image-source:var(--frame-image);border-image-slice:24;border-image-width:7px;border-image-repeat:stretch;box-shadow:inset 5px 0 12px #00000090}
.top-actions button,.map-controls button{border-width:4px;border-image-width:4px;background:linear-gradient(#30343adf,#15171bea);box-shadow:inset 0 1px 0 #ffffff20,inset 0 -2px 3px #00000090,0 2px 3px #00000080}
.top-actions button{min-height:44px}.live-dot{background:#d9433d;box-shadow:none;border:1px solid #f37a75;border-radius:1px}
.tabs{background:#17191d;border-bottom:3px solid #343940;padding:5px 0;gap:3px}.tabs button{border:4px solid #343940;border-image-source:var(--frame-image);border-image-slice:24;border-image-width:4px;border-image-repeat:stretch;border-radius:1px;min-height:44px;background:linear-gradient(#2d3036,#1b1e23);font-size:9px}.tabs button[aria-pressed=true]{border-bottom-color:#343940;color:#ffaaa5;box-shadow:inset 0 -3px 0 #d7433e,inset 0 1px 0 #ffffff16;background:linear-gradient(#482827,#262125)}
.primary,.governor-card .primary{color:#ffffff;background:linear-gradient(#bf3934,#872521);border-color:#454a52;text-shadow:0 1px 1px #400000;box-shadow:inset 0 1px 0 #ffb2ac40,inset 0 -3px 5px #47000090,0 2px 4px #00000090}
.primary:hover:not(:disabled){background:linear-gradient(#d24640,#9e2c27);color:#ffffff}
.secondary,.tools button,.quick-build button,.build-card,.people-roster button,.job-options article>button{background:linear-gradient(#2b2e34,#1a1d22);border-width:6px;border-image-width:6px}
.build-card[aria-pressed=true],.quick-build button[aria-pressed=true],.tools button[aria-pressed=true]{background:linear-gradient(#432728,#252126);box-shadow:inset 0 0 0 2px #d7433e,inset 0 -2px 4px #00000080;color:#ffaaa5}
.selection,.research-card,.site-card,.governor-card,.fleet-readout,.connection-help,.welcome,dialog{border:8px solid #343940;border-image-source:var(--frame-image);border-image-slice:24;border-image-width:8px;border-image-outset:0;border-image-repeat:stretch;border-radius:2px;background:linear-gradient(130deg,#25282eea,#131519f2);box-shadow:inset 0 2px 8px #00000080,0 4px 12px #00000060}
.research-card.discovered{border-color:#747a83;box-shadow:inset 3px 0 0 #b83b37,inset 0 2px 8px #00000080,0 4px 12px #00000060}
.ocean-site.selected{outline:2px solid #e34843;outline-offset:2px}
.policy-row select,.policy-row input{background:#101216;border:3px inset #4c525c;border-radius:1px;color:#e8eaed;min-height:44px;accent-color:#c83b35}
.progress{background:#08090b;border:1px solid #454a53;height:7px;box-shadow:inset 0 2px 3px #000000}.progress i{background:linear-gradient(#e0524b,#9f2b26)}
.people-detail-nav{background:#17191d;border-bottom:4px solid #3c414a;padding:8px 0 12px;box-shadow:0 4px 8px #00000070}.people-detail-nav [data-people-back]{color:#f0f1f3;border-color:#343940;box-shadow:inset 3px 0 0 #d7433e,inset 0 1px 0 #ffffff16,inset 0 -2px 3px #00000080,0 2px 2px #00000060}
.city-toolbar{padding:4px;background:linear-gradient(#25282edb,#111317ed);border:4px solid #343940;border-image-source:var(--frame-image);border-image-slice:24;border-image-width:4px;border-image-repeat:stretch;box-shadow:inset 0 1px 0 #ffffff14,0 4px 8px #00000080}
.city-toolbar button,.walk-controls button{border-width:4px;border-image-width:4px;background:linear-gradient(#353940ed,#191c21f2);color:#e8eaed}.city-toolbar button[aria-pressed=true]{color:#ffaaa5;background:linear-gradient(#4b2929,#292124);box-shadow:inset 0 -3px 0 #d7433e,inset 0 1px 0 #ffffff16}
.walk-controls button{color:#f0f1f3;min-width:44px;min-height:44px;box-shadow:inset 0 1px 0 #ffffff24,inset 0 -3px 3px #00000090,0 2px 3px #00000090}.walk-controls button:active{background:#512a2a;box-shadow:inset 0 3px 4px #00000090,inset 0 -2px 0 #cc403a}
.walk-hint{color:#d3d7dd;background:#111317e8;border-left:3px solid #d7433e}.map-caption{color:#d3d7dd;background:#101216d9;border-top:2px solid #505660;padding:7px 9px;left:12px;right:12px;bottom:8px;letter-spacing:.7px}
.world-wrap{background:#2a2d32}.world-shade{box-shadow:inset 0 0 80px #00000033}.world-title{color:#f0f1f3;text-shadow:0 2px 5px #000000c0}.world-title .eyebrow,.world-title p{color:#d3d7dd}.world-title h1{font-weight:650;letter-spacing:-.6px}
#toast{border:5px solid #343940;border-image-source:var(--frame-image);border-image-slice:24;border-image-width:5px;border-image-repeat:stretch;background:#101216f5;color:#e8eaed;box-shadow:inset 3px 0 0 #d7433e,0 4px 12px #00000090}
.town-summary>span,.stage-path span{background:#101216;border:2px solid #515761;color:#c9cdd3}.stage-path .active{color:#ffaaa5;border-color:#bd3b36;background:#322123}
.panel p,.panel .section-note,.build-card span,.build-card small,.job-options small,.people-roster small,.prerequisites,.connection-help small,.requirement-note,.upgrade-benefits small,.journal p,.legacy-link{color:#b7bdc6}.build-card b,.selection .readout,.upgrade-benefits,.civic-stats strong,.quick-build span{color:#e0e3e8}.journal p.good{color:#d3d7dd}.journal p.warning,.resource.low strong{color:#ff8c87}.journal time{color:#969da8}.legacy-link{border-color:#666d77}.build-card img{filter:drop-shadow(0 3px 3px #00000088)}
.future{opacity:1;color:#969da8!important}.research-branch h4,.milestone .eyebrow,.upgrade-benefits b,.connection-help>b{color:#d7dbe1}.voyage{color:#f09a95}.fleet-readout b{color:#e0e3e8}.career,.talent,.maritime{border-color:#595f694d}.atlas-view .city-toolbar{background:#111317ed}
.welcome,.map-controls button{backdrop-filter:none}dialog::backdrop{background:#000000c9;backdrop-filter:none}
@media(max-width:740px){.sidebar{border-left:0;border-top:7px solid #343940;border-image-width:7px 0 0}.tabs{background:#17191d}.tabs button{font-size:8px}.city-toolbar{padding:3px;max-width:calc(100% - 16px)}.city-toolbar button{padding:6px;font-size:8px}.people-detail-nav button{font-size:9px}.map-controls button{min-width:44px;min-height:44px}.map-caption{font-size:7px;padding:5px 7px}.world-title h1{font-weight:650}.top-actions button{border-width:3px;border-image-width:3px}}
@media(max-height:520px) and (orientation:landscape){.sidebar{border-left:7px solid #343940;border-top:0;border-image-width:0 0 0 7px}.city-toolbar{padding:2px}.tabs{padding:3px 0}.map-caption{display:none}}
/* Framed controls retain complete touch targets even in a narrow landscape sidebar. */
.top-actions button{min-width:44px}.tabs button{min-width:44px;flex:1 1 0}
@media(max-height:520px) and (orientation:landscape){.tabs button{font-size:8px;letter-spacing:0}}

/* The food counter opens a concrete supply breakdown without another overlay. */
.resource.food-control{min-height:44px;text-align:left;letter-spacing:inherit;padding:2px 8px;border-width:4px;color:var(--ink);font:inherit;cursor:pointer}.food-budget{display:grid;gap:9px;margin:14px 0}.food-budget>span{display:flex;justify-content:space-between;gap:12px;font-size:10px}.food-budget b{text-align:right;color:#e0e3e8}.food-workplace{margin-top:14px}.food-workplace button{width:100%}
@media(max-width:740px) and (orientation:portrait){.resource.food-control{grid-row:span 2;align-content:center;min-height:44px;padding:2px 5px}.resource-strip .resource:nth-child(4){border-right:1px solid var(--line)}.resource-strip .resource:nth-child(7){border-right:0}}
