:root{font-family:Calibri,'Segoe UI',sans-serif;color:#263c3b;background:#e5ebe8;font-synthesis:none;--line:#d6dfd9;--ink:#274c48}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #b58c35;outline-offset:3px}header{height:91px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);background:#f8faf6}.identity{display:flex;align-items:center;gap:13px}.mark{font-size:42px;color:#4d7770}h1{font-family:Georgia,serif;font-size:29px;font-weight:normal;margin:0;letter-spacing:-1px}.identity p{margin:2px 0 0;color:#78877d;font-size:13px}.phase{font-size:14px;color:#3d5c55}.phase span{display:block;font-size:12px;color:#89968b;margin-top:3px}button{border:1px solid #ccd7cd;background:#f9fbf7;color:#36564d;padding:9px 13px;border-radius:5px}button:hover{background:#e5ece3}header button{font-size:13px}main{display:grid;grid-template-columns:280px 1fr;min-height:calc(100vh - 91px)}aside{background:#f5f7f1;padding:27px 23px 18px;border-right:1px solid var(--line)}h2{font-size:17px;margin:0 0 10px;font-weight:600}.intro{font-size:14px;color:#7b887c;line-height:1.5;margin:0 0 24px}label{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin:19px 0 7px}output{font-weight:normal;color:#809080}input:not([type=range]),select{background:#fff;border:1px solid #ccd6c9;border-radius:4px;padding:9px 10px;color:#3b5148;width:100%;font-size:14px}.seedrow{display:flex;gap:5px}.seedrow input{min-width:0}.seedrow button{font-size:20px;padding:3px 10px}input[type=range]{width:100%;accent-color:#52796b;margin:3px 0 6px}.primary{display:flex;justify-content:space-between;width:100%;background:#3c675b;color:white;border:0;margin-top:22px;padding:13px 14px}.primary:hover{background:#2d574c}.small{font-size:11px;line-height:1.5;color:#81907f}.inspector{border-top:1px solid var(--line);margin-top:25px;padding-top:21px}.sectionline{display:flex;flex-direction:column;gap:3px}.sectionline h2{margin:0}.sectionline span{color:#8b9586;font-size:11px}h3{font-family:Georgia,serif;font-weight:normal;font-size:21px;margin:16px 0 6px}#tile-hint{font-size:12px;color:#82907e}dl{margin:13px 0;font-size:13px}dl div{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #e5eae0}dt{color:#758270}dd{margin:0;font-variant-numeric:tabular-nums}footer{font-size:11px;color:#94a08f;line-height:1.7;margin-top:28px}.workspace{padding:24px 28px 12px;min-width:0}nav{display:flex;gap:5px;margin-bottom:17px;flex-wrap:wrap}nav button{border:0;background:transparent;font-size:13px;padding:9px 16px;color:#7b8b7e}nav button.active{color:#fff;background:#54786d}#viewport{height:calc(100vh - 256px);min-height:380px;position:relative;overflow:hidden;border:1px solid #aec2bb;border-radius:8px;background:#173b50;box-shadow:0 10px 30px #324c3d10}canvas{width:100%;height:100%;display:block;cursor:crosshair;touch-action:none;image-rendering:pixelated}.map-title{position:absolute;left:22px;top:19px;pointer-events:none;color:#e7f1df;text-shadow:0 1px 4px #193b46}.map-title span{font-family:Georgia,serif;font-size:25px;display:block}.map-title small{font-size:11px;opacity:.75}.zoomtools{position:absolute;bottom:20px;right:20px;display:flex;gap:4px}.zoomtools button{background:#f7fbefed;border:0;min-width:32px}.map-help{position:absolute;bottom:24px;left:22px;font-size:11px;color:#d1e1d8;text-shadow:0 1px 2px #173d4e;pointer-events:none}.compass{position:absolute;top:22px;right:26px;text-align:center;color:#cfdfd9;font-size:13px;line-height:1.3;pointer-events:none}.map-bottom{display:flex;justify-content:space-between;gap:20px;padding:18px 0 0}#legend{display:flex;gap:9px 15px;flex-wrap:wrap;max-width:750px;font-size:11px;color:#6f8176}#legend span{display:flex;align-items:center;gap:5px}#legend i{width:9px;height:9px;display:inline-block;border-radius:2px}#stats{font-size:12px;color:#577469;white-space:nowrap;text-align:right;line-height:1.7}.status{font-size:11px;color:#849286;margin:10px 0 0}@media(max-width:900px){header{padding:0 18px}.phase{display:none}main{grid-template-columns:230px 1fr}aside{padding:22px 16px}.workspace{padding:20px 15px}.map-help{display:none}.map-bottom{display:block}#stats{text-align:left;margin-top:14px}nav button{padding:8px 10px}}@media(max-width:620px){header{height:78px}header button{max-width:120px}main{display:flex;flex-direction:column}.workspace{order:-1}#viewport{height:56vh;min-height:320px}aside{border-right:0;border-top:1px solid var(--line)}#controls{display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}#controls h2,#controls .intro,#controls .primary,#controls .small{grid-column:1/-1}#controls label{margin-top:10px}#controls .intro{margin-bottom:6px}#controls input[type=range]{align-self:center}.inspector{margin-top:18px}}

.play-panel{border-top:1px solid var(--line);margin-top:20px;padding-top:2px}.play-panel .primary{background:#8a6b3f}.time-row,.playback,.population{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0;font-size:13px}.playback label{margin:0}.playback select{width:70px}.population button{font-size:11px;padding:6px}.time-row #weather{color:#758a76}.play-panel #creation{font-size:12px;width:100%}button:disabled{cursor:default;opacity:.45}#controls fieldset{padding:0;border:0;margin:0}#minimap{position:absolute;left:18px;bottom:48px;width:145px;height:97px;border:2px solid #f2f0d6;box-shadow:0 2px 9px #14342c66;cursor:pointer;background:#204d6e;image-rendering:pixelated;display:none}.playing #minimap{display:block}.playing #viewport{height:calc(100vh - 256px)}.playing #play{display:none}.playing #play-description{display:none}@media(max-width:620px){#minimap{width:105px;height:70px;bottom:14px;left:12px}.playing #viewport{height:56vh}.zoomtools{right:10px;bottom:12px;gap:3px}.zoomtools button{font-size:12px;padding:7px}#controls fieldset{display:contents}}

.playing #controls{display:none}.playing .play-panel{border-top:0;margin-top:0}.playing .compass{top:67px}#play-hud{display:none;position:absolute;right:20px;top:21px;padding:7px 10px;background:#204638b8;color:#f3f1d5;border-radius:4px;font-size:12px;pointer-events:none}.playing #play-hud{display:block}@media(max-width:620px){#play-hud{top:78px;left:18px;right:auto;font-size:10px}.playing .compass{top:22px}}

/* Dedicated game viewport: compact framed HUD over edge-to-edge terrain. */
#game-console,#game-actions,#fullscreen-note{display:none}
.game-window{background:#173c46;color:#ebe9cc;overflow:hidden;--game-bg:#202d27ed;--game-line:#8d8d65;--game-text:#e8e2bb;font-family:'Segoe UI',sans-serif}
.game-window header,.game-window #controls,.game-window .play-panel,.game-window aside footer,.game-window .map-bottom{display:none}
.game-window main{display:block;min-height:0}
.game-window .workspace{padding:0;position:fixed;inset:0}
.game-window #viewport,.game-window.playing #viewport{height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:none}
.game-window canvas{outline-offset:-3px}
.game-window .map-title{top:22px;left:24px;z-index:2}
.game-window .map-title span{font-size:23px;color:#f1e9bd;text-shadow:2px 2px #294534}
.game-window .map-title small{color:#e2dfb8;opacity:.9}
.game-window .compass{top:95px;right:30px;color:#e3e2c0}
.game-window .workspace nav{position:fixed;left:24px;top:85px;z-index:5;display:flex;gap:0;background:var(--game-bg);border:2px solid #6e7858;box-shadow:3px 3px #142c2999;padding:3px;margin:0}
.game-window .workspace nav button{border-radius:0;background:none;color:#c8cfb2;padding:7px 10px;font-size:11px}
.game-window .workspace nav button.active{background:#697855;color:#fff4d1}
.game-window #play-hud{top:22px;left:50%;right:auto;transform:translateX(-50%);font-size:12px;color:#eee7bd;background:var(--game-bg);border:2px solid #7d8761;border-radius:0;padding:11px 16px;box-shadow:3px 3px #142c2999}
.game-window #game-console{display:block;position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:6;background:var(--game-bg);border:2px solid #7d8761;box-shadow:4px 4px #122d2999;padding:8px 12px;min-width:330px}
.game-window #simulation-controls{display:flex!important;align-items:center;gap:12px}
.game-window #simulation-controls .time-row,.game-window #simulation-controls #sim-events,.game-window #creation{display:none}
.game-window .playback,.game-window .population{margin:0;gap:8px;color:#d2d6b8;font-size:11px}
.game-window .population{flex-direction:column;gap:4px}
.game-window .playback label{font-size:11px;color:#cdd2b0}
.game-window #simulation-controls select{width:66px;background:#354638;color:#f0e9bb;border:1px solid #7c8661;padding:7px;border-radius:0}
.game-window button{border:1px solid #87906b;border-bottom:3px solid #667153;border-radius:0;background:#394b3a;color:#e9e3ba;font-size:11px;padding:8px 10px;box-shadow:inset 1px 1px #a5af7744}
.game-window button:hover{background:#536446;color:#fff8d9}
.game-window button:focus-visible,.game-window select:focus-visible{outline:2px solid #f5db80;outline-offset:3px}
.game-window #game-actions{display:flex;position:fixed;right:22px;top:22px;gap:6px;z-index:7}
.game-window #fullscreen-note{display:block;position:fixed;right:22px;top:62px;max-width:280px;margin:0;font-size:10px;text-align:right;z-index:7;color:#f0e6b9;text-shadow:1px 1px #193c36}
.game-window #minimap{width:174px;height:116px;left:23px;bottom:23px;border:3px solid #8e9770;box-shadow:4px 4px #152f2999;z-index:3}
.game-window .zoomtools{bottom:23px;right:23px;gap:4px;z-index:3}
.game-window .zoomtools button{background:#293d2eee;color:#eee8bf;border:1px solid #8e9770;border-bottom:3px solid #5f6e4e;min-width:29px}
.game-window .map-help{left:25px;bottom:147px;color:#e4e1bf;font-size:10px}
.game-window .status{position:fixed;bottom:7px;left:50%;transform:translateX(-50%);margin:0;color:#e1dfc4;font-size:10px;z-index:5;text-shadow:1px 1px #1b352b;white-space:nowrap}
.game-window aside{display:none;position:fixed;right:23px;top:112px;bottom:auto;max-height:calc(100dvh - 220px);overflow:auto;width:252px;background:var(--game-bg);border:2px solid #7d8761;padding:18px;color:#e8e3bc;z-index:8;box-shadow:4px 4px #17342999}
.game-window.inspector-open aside{display:block}
.game-window .inspector{margin:0;padding:0;border:0}
.game-window h2{font-size:13px;color:#f1e9ba}
.game-window h3{font-family:Georgia,serif;font-size:21px;color:#eee5b6}
.game-window dt,.game-window #tile-hint,.game-window .sectionline span{color:#b3c1a4}
.game-window dl div{border-color:#65725266}
@media(max-width:820px){.game-window .map-title{top:18px;left:16px}.game-window #game-actions{right:12px;top:16px}.game-window #play-hud{left:16px;top:76px;transform:none;font-size:10px;padding:8px}.game-window .workspace nav{top:123px;left:16px}.game-window #game-console{bottom:16px;min-width:250px;padding:6px}.game-window #minimap{width:115px;height:77px;left:14px;bottom:98px}.game-window .map-help{display:none}.game-window .zoomtools{bottom:99px;right:14px}.game-window .status{bottom:1px;font-size:8px}.game-window .population{font-size:10px}.game-window #fullscreen-note{top:53px;right:12px}.game-window aside{top:174px;right:14px;max-height:calc(100dvh - 300px)}.game-window .compass{top:85px;right:24px}}

@media(min-width:821px) and (max-width:1200px){.game-window #play-hud{top:72px;left:24px;transform:none}.game-window .workspace nav{top:122px}.game-window .compass{top:88px}}

.game-window .workspace nav{max-width:calc(100vw - 48px);flex-wrap:wrap}.game-window #play-hud{font-size:11px;padding:10px 12px;white-space:nowrap}.game-window.inspector-open aside{width:285px}.game-window #tile-fields{font-size:11px}.game-window #tile-fields dt{max-width:66%}@media(max-width:820px){.game-window #play-hud{font-size:9px;white-space:normal;max-width:calc(100vw - 65px)}.game-window .workspace nav{max-width:calc(100vw - 32px)}.game-window.inspector-open aside{width:265px}}

.game-window #plant-status{color:#cdd5b0;font-size:10px;line-height:1.4;margin:0;max-width:130px}.game-window .population{display:grid;grid-template-columns:1fr 1fr}.game-window .population #population{grid-column:1/-1}.game-window .population button{padding:6px;font-size:10px}.game-window #plant-details,.game-window #tile-details{margin:6px 4px 6px 0}.game-window .inspector #tile-fields dd{max-width:51%;text-align:right}.game-window #game-console{max-width:calc(100vw - 220px)}@media(max-width:820px){.game-window #plant-status{display:none}.game-window #game-console{max-width:calc(100vw - 24px)}.game-window .playback{gap:5px}.game-window .population{gap:4px}}

#planet-panel{margin:.35rem 0}#planet-status{margin:.2rem 0;line-height:1.35}#trend{width:100%;max-width:280px;height:64px;display:block;background:#0f1d1f55;border-radius:4px}

/* Loading overlay (world generation and staged simulation start-up) */
#loading[hidden]{display:none}
#loading{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#173b50cc;backdrop-filter:blur(2px)}
.loading-card{display:grid;justify-items:center;gap:10px;min-width:min(320px,80vw);padding:22px 26px;background:#f8faf6;border:1px solid #aec2bb;border-radius:8px;box-shadow:0 10px 30px #0e2a3340;color:#274c48}
.loading-mark{font-size:30px;color:#4d7770;animation:loading-turn 2.4s linear infinite}
#loading-title{font-family:Georgia,serif;font-weight:normal;font-size:20px}
.loading-track{width:100%;height:8px;background:#e1e8e2;border-radius:4px;overflow:hidden}
#loading-bar{display:block;height:100%;width:0;background:#3c675b;transition:width .25s ease-out}
#loading-stage{font-size:12px;color:#6f8176;min-height:1.4em}
@keyframes loading-turn{to{transform:rotate(360deg)}}
.game-window #loading{background:#10241fd9;backdrop-filter:none}
.game-window .loading-card{background:var(--game-bg);border:2px solid #7d8761;border-radius:0;box-shadow:4px 4px #122d2999;color:#e8e2bb}
.game-window .loading-mark{color:#f1e9bd}
.game-window #loading-title{color:#f1e9bd}
.game-window .loading-track{background:#2b3a2f;border:1px solid #6e7858;border-radius:0;height:12px}
.game-window #loading-bar{background:#8fa36a;transition:width .25s steps(6)}
.game-window #loading-stage{color:#c8cfb2}
@media (prefers-reduced-motion:reduce){.loading-mark{animation:none}#loading-bar{transition:none}}
#dev-panel{position:absolute;right:18px;bottom:150px;z-index:30;width:330px;max-width:calc(100vw - 36px);background:#14251fee;color:#e9e6c8;border:2px solid #c9a24a;padding:8px 10px;font:11px/1.35 ui-monospace,Menlo,Consolas,monospace;box-shadow:3px 3px #0008}#dev-panel[hidden]{display:none}#dev-panel .dev-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;color:#f0c75e}#dev-panel .dev-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:4px 0}#dev-panel .dev-row span{width:46px;color:#a9b59a}#dev-panel button{font:inherit;padding:3px 6px;background:#2c4a3c;color:#f3f1d5;border:1px solid #5e7a5f;border-radius:2px;cursor:pointer}#dev-panel button:hover{background:#3d6450}#dev-panel .dev-head button{padding:0 6px}#dev-panel .dev-progress{height:5px;background:#0c1612;margin:6px 0}#dev-panel .dev-progress i{display:block;height:100%;width:0;background:#f0c75e}#dev-panel p{margin:4px 0 0}#dev-panel .dev-note{color:#a9b59a}
/* Creator: live-only layers appear once a world is playing, not as greyed-out clutter */
.workspace nav button[data-view]:disabled{display:none}

/* Saved worlds in the creator */
.saves-panel{border-top:1px solid var(--line);margin-top:18px;padding-top:4px}.saves-panel h3{font-size:13px;margin:10px 0 6px}.saves-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.save-button{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;font-size:13px;padding:8px 10px}.save-button small{font-size:11px;opacity:.7}
.file-open{display:block;margin-top:10px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.file-open input{display:none}
