:root{color-scheme:dark;font-family:Trebuchet MS,Segoe UI,sans-serif;--bg: #17110c;--panel: #24180f;--panel-2: #2e1f14;--ink: #f3e6c8;--muted: #cbb892;--accent: #d7a13b;--line: #3d2b1c;--board-max: 1480px;--board-max-side: 1760px;--map-art-w: 3840;--map-art-h: 2160}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;min-height:100%;background:radial-gradient(circle at top,#3a2718 0%,transparent 45%),var(--bg);color:var(--ink)}#root{height:100dvh;min-height:100dvh;display:flex;flex-direction:column}.app{flex:1;min-height:0;display:flex;flex-direction:column}button{font:inherit;color:inherit;background:var(--accent);color:#24180f;border:0;border-radius:8px;padding:.55rem .8rem;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.app-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:.4rem 1.25rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,black);position:sticky;top:0;z-index:20}.app-tabs,.app-actions{display:flex;align-items:center;gap:.4rem}.app-tabs{flex-wrap:wrap}.app-tabs .tab{background:transparent;color:var(--muted);border:1px solid var(--line);padding:.35rem .75rem;font-size:.9rem}.app-tabs .tab.active,.app-tabs .developer-tools-current[aria-expanded=true]{color:var(--ink);border-color:var(--accent);background:#d7a13b1f}.language-picker,.developer-tools{position:relative}.language-current,.language-menu button,.developer-tools-menu button{display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem}.language-current,.developer-tools-current{position:relative;padding-right:1.55rem}.language-current:after,.developer-tools-current:after{content:"";position:absolute;right:.55rem;top:50%;width:.35rem;height:.35rem;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg)}.developer-tools-current[aria-expanded=true]:after{transform:translateY(-30%) rotate(225deg)}.language-flag{display:block;width:1.2rem;height:.8rem;flex-shrink:0;object-fit:cover;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 70%,black);border-radius:2px}.language-menu,.developer-tools-menu{position:absolute;top:calc(100% + .3rem);z-index:40;margin:0;padding:.28rem;list-style:none;display:flex;flex-direction:column;gap:.2rem;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px #0006}.language-menu{right:0;min-width:100%}.developer-tools-menu{left:0;min-width:15rem;max-width:calc(100vw - 2rem)}.language-menu button,.developer-tools-menu button{width:100%;justify-content:flex-start;background:transparent;color:var(--muted);border:0;border-radius:6px;padding:.4rem .65rem}.language-menu button:hover,.language-menu button:focus-visible,.language-menu button.active,.developer-tools-menu button:hover,.developer-tools-menu button:focus-visible,.developer-tools-menu button[aria-pressed=true]{color:var(--ink);background:#d7a13b1f}.about h1{margin:0;font-size:1.6rem}.about .lead{margin:.85rem 0 .6rem;font-size:1.05rem}.about p{margin:.5rem 0 0;max-width:62ch;color:var(--muted);line-height:1.45}.account-modes{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0 .75rem}.account-modes .tab{background:transparent;color:var(--muted);border:1px solid var(--line);padding:.35rem .75rem;font-size:.9rem}.account-modes .tab.active{color:var(--ink);border-color:var(--accent);background:#d7a13b1f}.account-form{display:grid;gap:.85rem;margin:.75rem 0 0;max-width:28rem}.field{display:grid;gap:.3rem;color:var(--ink)}.field span{font-size:.85rem;color:var(--muted)}.field em{font-style:normal;font-size:.8rem;color:var(--muted)}.field input,.account-form input{width:100%;padding:.5rem .65rem;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);color:var(--ink);font:inherit}.field input:focus{outline:none;border-color:var(--accent)}.account-actions{display:flex;flex-wrap:wrap;gap:.5rem}.account-error{color:#e8a07a!important}.account-ok{color:#c5d48a!important}.account-note,.leaderboard-me,.account-email{max-width:62ch}.account-email{margin:.35rem 0 0;color:var(--muted)}.app-actions .tab-like.active{color:var(--ink);border-color:var(--accent);background:#d7a13b1f}.leaderboard-page{max-width:72ch}.leaderboard-table{width:100%;margin:1rem 0 0;border-collapse:collapse;font-size:.95rem}.leaderboard-table th,.leaderboard-table td{padding:.45rem .55rem;border-bottom:1px solid var(--line);text-align:left}.leaderboard-table th:first-child,.leaderboard-table td:first-child,.leaderboard-table th:last-child,.leaderboard-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.leaderboard-table tr.me{background:#d7a13b1f}.leaderboard-table tr.me td{color:var(--ink)}.shell{width:100%;max-width:var(--board-max);margin:0 auto;padding:1.25rem}.shell.with-side{max-width:var(--board-max-side)}.shell.with-map{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;width:100%;max-width:none;padding:0}.shell.with-map .topbar{display:none}.app:has(.shell.with-map) .app-bar{display:none}.app:has(.shell.with-map) .app-bar:has(.developer-tools){display:flex}.topbar{display:flex;align-items:center;gap:1rem;justify-content:space-between;margin-bottom:1rem}.eyebrow{margin:0;letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;color:var(--accent)}.title{min-width:0;flex:1}.settlement-name{display:block;width:min(32ch,100%);margin:.1rem 0 0;padding:.1rem .15rem .1rem 0;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--ink);font:inherit;font-size:1.85rem;font-weight:700;line-height:1.15}.settlement-name::placeholder{color:var(--muted);opacity:.7}.settlement-name:hover,.settlement-name:focus{border-bottom-color:var(--accent);outline:none}h2,h3{margin:.1rem 0 0;font-weight:700}.layout{display:grid;width:100%;grid-template-columns:minmax(0,.85fr) minmax(0,.9fr) minmax(0,1.2fr);grid-template-rows:4.25rem auto;grid-template-areas:"people people people" "terrain warehouse buildings";gap:1rem;align-items:stretch}.layout.with-side{grid-template-columns:minmax(0,.8fr) minmax(0,.85fr) minmax(0,1.1fr) minmax(0,.95fr);grid-template-areas:"people people people side" "terrain warehouse buildings side"}.layout>*{min-width:0}.layout>.people-bar{grid-area:people}.layout>.gather{grid-area:terrain}.layout>.warehouse{grid-area:warehouse}.layout>.buildings-panel{grid-area:buildings}.layout>.forge-panel,.layout>.upgrade-panel,.layout>.work-preview-panel{grid-area:side}.panel{background:linear-gradient(180deg,var(--panel) 0%,#1b120c 100%);border:1px solid var(--line);border-radius:16px;padding:1rem;min-height:28rem}.panel.people-bar{height:4.25rem;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:.6rem;padding:.45rem .65rem}.people-glyph{width:1.7rem;height:1.7rem;display:block;flex-shrink:0;object-fit:contain}.labor-card{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;min-width:0;padding:.4rem .6rem;background:linear-gradient(180deg,var(--panel-2) 0%,#1a120c 100%);border:1px solid var(--line);border-radius:12px}.labor-id{display:flex;align-items:center;gap:.5rem;min-width:0}.labor-card strong{font-size:1.15rem;line-height:1;min-width:1.25rem;text-align:right}.labor-name{color:var(--muted);font-size:.85rem;line-height:1;padding:0 .35rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labor-headcount{display:block;margin-top:.2rem;font-size:.75rem;line-height:1}.labor-card>.labor-name{flex:1;text-align:center}.labor-tool{display:flex;align-items:center;justify-content:center;width:1.25rem;color:var(--muted);font-size:.95rem;line-height:1}.labor-tool .village-icon{width:1.25rem;height:1.25rem}.labor-stepper{display:flex;align-items:center;justify-content:center;gap:.55rem;min-width:0;flex:1}.labor-stepper button{width:1.65rem;height:1.65rem;padding:0;font-size:1.05rem;line-height:1;border-radius:6px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.forge-note{margin:.75rem 0 0;color:var(--muted);line-height:1.4}.order-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.65rem}.order-row{display:grid;gap:.3rem;padding:.7rem;background:#0000002e;border-radius:10px}.order-row-head{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.building p,.fact-row,.rates,.workers small{color:var(--muted)}.resource-glyph{position:relative;display:inline-grid;place-items:center;line-height:1;-webkit-user-select:none;user-select:none}.resource-glyph-art{display:block;width:1em;height:1em;object-fit:contain}.village-icon{display:block;width:1.15rem;height:1.15rem;object-fit:contain;flex-shrink:0;pointer-events:none}.rate-item{display:inline-flex;align-items:center;gap:.25rem}.rate-item .people-glyph{width:1.15rem;height:1.15rem}.resource-glyph.xl{font-size:4.5rem}.resource-glyph.sm{font-size:1.7rem}.resource-glyph-empty,.resource-glyph-fill{grid-area:1 / 1}.resource-glyph-empty{opacity:.22;filter:grayscale(.35)}.resource-glyph-fill{clip-path:inset(calc((1 - var(--fill, 0)) * 100%) 0 0 0)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon{width:4rem;height:4rem;flex-shrink:0}.icon .village-icon{width:4rem;height:4rem}.resource-name{display:flex;align-items:center;gap:.55rem}.panel.gather{display:flex;flex-direction:column;height:100%}.gather-stack{display:grid;grid-template-columns:1fr;gap:.85rem;margin-top:1rem}.gather-footer{flex:0 0 auto;min-height:0;margin-top:1rem;padding-top:1.35rem;border-top:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));display:flex;flex-direction:column;align-items:center}.feature-launchers{width:min(100%,18rem);display:grid;gap:.45rem}.feature-launcher{position:relative;display:block;width:100%;padding:0;background:transparent;color:var(--ink);border:0}.feature-launcher-art{display:block;width:100%;height:auto}.feature-launcher-label{position:absolute;left:15%;right:15%;top:74%;height:16%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:clamp(.68rem,1vw,1rem);letter-spacing:.03em;pointer-events:none}.feature-launcher:hover{background:transparent}.feature-launcher:active{transform:scale(.98)}.gather-btn{display:grid;justify-items:center;align-content:center;gap:.25rem;aspect-ratio:2 / 1;min-height:0;padding:1.15rem 1.6rem 1.35rem;background:var(--bg);color:var(--ink);border:0}.gather-btn:hover{border-color:var(--accent)}.gather-btn:active{transform:scale(.98)}.resources,.buildings{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.65rem}.panel-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0 0}.panel-tabs .tab{display:flex;flex-direction:column;align-items:center;gap:.15rem;flex:1 1 0;padding:.4rem .35rem;font-size:.75rem;background:transparent;color:var(--muted);border:1px solid var(--line)}.panel-tabs .tab-icon{width:1.15rem;height:1.15rem;line-height:1}.panel-tabs .tab-icon .village-icon{width:1.15rem;height:1.15rem}.panel-tabs .tab.active{color:var(--ink);border-color:var(--accent);background:#d7a13b1f}.resource-row,.building{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem;background:#0000002e;border-radius:10px}.building{flex-direction:column;align-items:stretch}.building-head{display:flex;align-items:center;gap:.9rem}.building-copy{flex:1;min-width:0}.building-actions{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}.side-toggle{flex-shrink:0;align-self:center;background:#d7a13b38;color:var(--ink);border:1px solid var(--accent);font-weight:700;padding:.4rem .7rem;white-space:nowrap}.side-toggle.open{background:var(--accent);color:#24180f}.building-head h3{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.building-head em{color:var(--accent);font-style:normal}.tool-alert{display:inline-grid;place-items:center;width:1.15rem;height:1.15rem;border-radius:50%;background:#b33a22;color:#fff8ee;font-size:.75rem;font-weight:800;line-height:1;cursor:help;flex-shrink:0}.fact-row,.rates{display:flex;align-items:center;flex-wrap:wrap;margin:0;font-size:.9rem}.fact-row{gap:.45rem}.fact-row strong{font-weight:600;color:var(--muted)}.fact-row.short{color:#e08a6a}.fact-row.short strong{color:inherit}.rates{gap:.75rem}.good-chip,.birth-rate{display:inline-flex;align-items:center}.good-chip{gap:.3rem}.birth-rate{gap:.25rem}.good-chip .people-glyph,.birth-rate .people-glyph{width:1.15rem;height:1.15rem}.workers{display:grid;gap:.25rem;font-size:.9rem}.construction{display:grid;gap:.4rem}.construction-bar{position:relative;display:flex;align-items:center;min-height:2.55rem;padding:.35rem .55rem;border-radius:10px;border:1px solid var(--line);background:#00000047;overflow:hidden}.construction-fill{position:absolute;inset:0 auto 0 0;width:var(--progress, 0%);background:color-mix(in srgb,var(--accent) 42%,transparent);pointer-events:none}.construction-copy{position:relative;z-index:1;display:flex;align-items:center;gap:.55rem;min-width:0}.construction-copy span{display:grid;gap:.05rem;min-width:0}.construction-copy strong{font-size:.92rem}.construction-copy small{color:var(--muted);font-size:.8rem}.construction-tool{width:2rem;height:2rem;display:grid;place-items:center;flex-shrink:0;line-height:1;-webkit-user-select:none;user-select:none;transform-origin:50% 88%;animation:construction-swing .7s ease-in-out infinite;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45))}.construction-tool .village-icon{width:2rem;height:2rem}.construction.paused .construction-tool{animation:none;opacity:.45}@keyframes construction-swing{0%,to{transform:rotate(-22deg)}50%{transform:rotate(18deg)}}@media(prefers-reduced-motion:reduce){.construction-tool{animation:none}}.construction-cancel{justify-self:start;padding:.3rem .7rem;font-size:.85rem}.upgrade-hint{margin:.75rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.4}.upgrade-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.5rem}.upgrade-row{display:grid;gap:.3rem;padding:.65rem;background:#0000002e;border-radius:10px}.upgrade-row p{margin:0;color:var(--muted);font-size:.9rem}.upgrade-row-head{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.work-preview-panel{display:flex;flex-direction:column;gap:.85rem}.work-preview-list,.work-preview-card{display:grid;gap:.75rem}.work-preview-card{padding:.75rem;border:1px solid var(--line);border-radius:12px;background:#00000021}.work-preview-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.work-preview-card-head h3{margin:0}.work-preview-scene-frame{position:relative;overflow:hidden;aspect-ratio:8 / 5;border:1px solid var(--line);border-radius:12px;background:#18241c;box-shadow:inset 0 0 0 1px #f3e6c80a,inset 0 -2rem 3rem #17110c80}.work-preview-scene-frame:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:radial-gradient(circle at 46% 40%,transparent 35%,rgba(14,10,7,.12) 76%,rgba(14,10,7,.42))}.work-preview-scene-background{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}.work-preview-worker-shadow{position:absolute;z-index:1;left:18%;bottom:13%;width:20%;height:5%;border-radius:50%;background:#180f096b;filter:blur(5px)}.work-preview-worker-sprite{position:absolute;z-index:2;left:10%;bottom:16%;width:35%;aspect-ratio:1;background-repeat:no-repeat;background-position:0 0;background-size:400% 300%;filter:drop-shadow(0 3px 2px rgba(22,13,8,.28))}.work-preview-scene-frame[data-frames="24"] .work-preview-worker-sprite{background-size:800% 300%}.work-preview-scene-frame[data-building=stonemason] .work-preview-worker-shadow{left:67%;bottom:22%}.work-preview-scene-frame[data-building=stonemason] .work-preview-worker-sprite{left:50%;bottom:23%;width:42%}.work-preview-scene-frame[data-building=sawmill] .work-preview-worker-shadow{left:61%;bottom:11%}.work-preview-scene-frame[data-building=sawmill] .work-preview-worker-sprite{left:43%;bottom:12%;width:42%}.work-preview-scene-frame[data-building=house] .work-preview-worker-shadow{left:62%;bottom:13%}.work-preview-scene-frame[data-building=house] .work-preview-worker-sprite{left:52%;bottom:14%;width:32%}.work-preview-scene-frame[data-building=farm] .work-preview-worker-shadow{left:29%;bottom:14%;width:22%}.work-preview-scene-frame[data-building=farm] .work-preview-worker-sprite{left:17%;bottom:16%;width:35%}.work-preview-scene-frame[data-building=waterworks] .work-preview-worker-shadow{left:54%;bottom:19%}.work-preview-scene-frame[data-building=waterworks] .work-preview-worker-sprite{left:42%;bottom:21%;width:34%}.work-preview-scene-frame[data-building=mill] .work-preview-worker-shadow{left:64%;bottom:10%}.work-preview-scene-frame[data-building=mill] .work-preview-worker-sprite{left:51%;bottom:12%;width:36%}.work-preview-scene-frame[data-building=bakery] .work-preview-worker-shadow{left:43%;bottom:9%;width:19%}.work-preview-scene-frame[data-building=bakery] .work-preview-worker-sprite{left:34%;bottom:11%;width:32%}.work-preview-scene-frame[data-building=pigFarm] .work-preview-worker-shadow{left:21%;bottom:11%}.work-preview-scene-frame[data-building=pigFarm] .work-preview-worker-sprite{left:7%;bottom:13%;width:38%}.work-preview-scene-frame[data-building=slaughterhouse] .work-preview-worker-shadow{left:43%;bottom:19%}.work-preview-scene-frame[data-building=slaughterhouse] .work-preview-worker-sprite{left:31%;bottom:21%;width:35%}.work-preview-scene-frame[data-building=druidHut] .work-preview-worker-shadow,.work-preview-scene-frame[data-building=temple] .work-preview-worker-shadow{display:none}.work-preview-scene-frame[data-building=druidHut] .work-preview-worker-sprite,.work-preview-scene-frame[data-building=temple] .work-preview-worker-sprite{left:35%;bottom:24%;width:31%;clip-path:inset(0 0 25% 0)}.work-preview-scene-frame[data-building=fisherman] .work-preview-worker-shadow{left:39%;bottom:44%;width:18%}.work-preview-scene-frame[data-building=fisherman] .work-preview-worker-sprite{left:25%;bottom:46%;width:30%}.work-preview-scene-frame[data-building=ironMine] .work-preview-worker-shadow{left:17%;bottom:10%}.work-preview-scene-frame[data-building=ironMine] .work-preview-worker-sprite{left:4%;bottom:12%;width:37%}.work-preview-scene-frame[data-building=coalMine] .work-preview-worker-shadow{left:31%;bottom:10%}.work-preview-scene-frame[data-building=coalMine] .work-preview-worker-sprite{left:18%;bottom:12%;width:39%}.work-preview-scene-frame[data-building=goldMine] .work-preview-worker-shadow{left:54%;bottom:7%}.work-preview-scene-frame[data-building=goldMine] .work-preview-worker-sprite{left:42%;bottom:8%;width:36%}.work-preview-scene-frame[data-building=ironSmelter] .work-preview-worker-shadow{left:48%;bottom:11%}.work-preview-scene-frame[data-building=ironSmelter] .work-preview-worker-sprite{left:35%;bottom:13%;width:36%}.work-preview-scene-frame[data-building=goldSmelter] .work-preview-worker-shadow{left:43%;bottom:11%}.work-preview-scene-frame[data-building=goldSmelter] .work-preview-worker-sprite{left:30%;bottom:13%;width:36%}.work-preview-scene-frame[data-building=forge] .work-preview-worker-shadow,.work-preview-scene-frame[data-building=weaponSmith] .work-preview-worker-shadow{left:39%;bottom:9%}.work-preview-scene-frame[data-building=forge] .work-preview-worker-sprite,.work-preview-scene-frame[data-building=weaponSmith] .work-preview-worker-sprite{left:26%;bottom:11%;width:36%}.work-preview-scene-frame[data-building=armorer] .work-preview-worker-shadow{left:18%;bottom:10%}.work-preview-scene-frame[data-building=armorer] .work-preview-worker-sprite{left:5%;bottom:12%;width:36%}.work-preview-scene-frame[data-building=barracks] .work-preview-worker-shadow{left:47%;bottom:9%;width:24%}.work-preview-scene-frame[data-building=barracks] .work-preview-worker-sprite{left:28%;bottom:11%;width:55%}.work-preview-impact-debris{position:absolute;z-index:3;left:13%;top:49%;width:8%;height:18%;opacity:0}.work-preview-impact-debris i{position:absolute;width:24%;height:8%;border-radius:70% 20%;background:#d6a152;box-shadow:0 0 1px #3d2414}.work-preview-impact-debris i:nth-child(1){left:30%;top:25%;transform:rotate(-32deg)}.work-preview-impact-debris i:nth-child(2){left:52%;top:42%;transform:rotate(18deg)}.work-preview-impact-debris i:nth-child(3){left:18%;top:58%;transform:rotate(38deg)}.work-preview-impact-debris i:nth-child(4){left:66%;top:67%;transform:rotate(-18deg)}.work-preview-scene-frame[data-building=stonemason] .work-preview-impact-debris i{background:#b8afa0;border-radius:45%}.work-preview-scene-frame[data-building=stonemason] .work-preview-impact-debris{left:49%;top:57%}.work-preview-scene-frame[data-building=sawmill] .work-preview-impact-debris{left:52%;top:54%}.work-preview-scene-frame[data-working=true] .work-preview-worker-sprite{animation:work-preview-sprite-cycle var(--work-preview-cycle-duration) step-end infinite}.work-preview-scene-frame[data-working=true][data-frames="24"] .work-preview-worker-sprite{animation-name:work-preview-sprite-cycle-24}.work-preview-scene-frame[data-working=true] .work-preview-impact-debris{animation:work-preview-impact-debris var(--work-preview-cycle-duration) ease-out infinite}.work-preview-progress{display:grid;gap:.55rem;padding:.75rem;border-radius:10px;background:#0000002e}.work-preview-progress-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.work-preview-bar{height:.7rem;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:#00000059}.work-preview-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8e5b20,var(--accent),#f2cf65);box-shadow:0 0 .7rem #d7a13b52;transition:width .1s linear}.work-preview-status{display:flex;align-items:center;gap:.45rem;margin:0;color:var(--muted);font-size:.85rem}.work-preview-status>span{width:.55rem;height:.55rem;border-radius:50%;background:#8a5840;box-shadow:0 0 0 3px #8a584024}.work-preview-status.working>span{background:#789347;box-shadow:0 0 0 3px #78934729}.work-preview-ambient{padding:.75rem;border-radius:10px;background:#0000002e}@keyframes work-preview-sprite-cycle{0%{background-position:0 0}8.33%{background-position:33.333% 0}16.67%{background-position:66.667% 0}25%{background-position:100% 0}33.33%{background-position:0 50%}41.67%{background-position:33.333% 50%}50%{background-position:66.667% 50%}58.33%{background-position:100% 50%}66.67%{background-position:0 100%}75%{background-position:33.333% 100%}83.33%{background-position:66.667% 100%}91.67%,to{background-position:100% 100%}}@keyframes work-preview-sprite-cycle-24{0%{background-position:0 0}4.1667%{background-position:14.2857% 0}8.3333%{background-position:28.5714% 0}12.5%{background-position:42.8571% 0}16.6667%{background-position:57.1429% 0}20.8333%{background-position:71.4286% 0}25%{background-position:85.7143% 0}29.1667%{background-position:100% 0}33.3333%{background-position:0 50%}37.5%{background-position:14.2857% 50%}41.6667%{background-position:28.5714% 50%}45.8333%{background-position:42.8571% 50%}50%{background-position:57.1429% 50%}54.1667%{background-position:71.4286% 50%}58.3333%{background-position:85.7143% 50%}62.5%{background-position:100% 50%}66.6667%{background-position:0 100%}70.8333%{background-position:14.2857% 100%}75%{background-position:28.5714% 100%}79.1667%{background-position:42.8571% 100%}83.3333%{background-position:57.1429% 100%}87.5%{background-position:71.4286% 100%}91.6667%{background-position:85.7143% 100%}95.8333%,to{background-position:100% 100%}}@keyframes work-preview-impact-debris{0%,73%,to{opacity:0;transform:translate(0) scale(.7)}78%{opacity:1}92%{opacity:0;transform:translate(18%,-20%) scale(1)}}@media(prefers-reduced-motion:reduce){.work-preview-worker-sprite,.work-preview-impact-debris{animation:none!important}.work-preview-fill{transition:none}}input[type=range]{width:100%}@media(max-width:900px){.layout,.layout.with-side,.topbar{grid-template-columns:minmax(0,1fr);display:grid}.layout,.layout.with-side{grid-template-rows:auto;grid-template-areas:"people" "terrain" "warehouse" "buildings" "side"}.topbar{align-items:start}.panel.people-bar{height:auto;grid-template-columns:1fr 1fr}}.world-hint{margin:.7rem 0 0;color:var(--muted);line-height:1.4}.world-map-screen{flex:1;display:flex;flex-direction:column;min-height:0;padding:0}.world-canvas{position:relative;z-index:0;flex:1;width:100%;min-height:0;margin:0;border:0;border-radius:0;background:#1b140d;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.world-settlement,.world-raid-event{position:absolute;z-index:3}.world-settlement{transform:none;background:transparent;border:2px dashed color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:none;padding:0;border-radius:12px}.world-settlement:hover,.world-settlement:focus-visible{border-color:var(--accent)}.world-raid-event{width:1.55rem;height:1.55rem;display:grid;place-items:center;border-radius:50%;background:#d7a13b;color:#24180f;font-size:1.05rem;font-weight:800;line-height:1;padding:0;border:2px solid #f3e6c8;box-shadow:0 2px 8px #00000073;animation:raid-event-pulse 1.4s ease-in-out infinite}@keyframes raid-event-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.world-canvas.panning{cursor:grabbing}.world-terrain{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:auto}.world-terrain-art-label{fill:#f3e6c8;font-size:26px;font-weight:700;letter-spacing:.12em;text-anchor:middle;dominant-baseline:middle;text-transform:uppercase;paint-order:stroke;stroke:#1b140d;stroke-width:5px;stroke-linejoin:round}.world-terrain-world-label{fill:#f3e6c8;font-weight:700;letter-spacing:.004;text-anchor:middle;text-transform:uppercase;paint-order:stroke;stroke:#1b140d;stroke-width:.012;stroke-linejoin:round}.world-compass{position:absolute;top:.7rem;right:.7rem;z-index:4;width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;background:#24180f;color:#f3e6c8;border:1px solid #d7a13b;font-size:.75rem;font-weight:700;pointer-events:none}.world-hud-left{position:absolute;top:.7rem;left:.7rem;z-index:4;display:flex;flex-wrap:wrap;align-items:flex-start;gap:.4rem}.world-camp-layout-status{max-width:22rem}.world-camp-layout-hint{margin:0;width:100%;font-size:.72rem;line-height:1.3;color:#f3e6c8;text-shadow:0 1px 2px #1b140d}.world-recenter,.world-leave{padding:.25rem .55rem;font-size:.75rem}.world-camp{position:absolute;z-index:2;transform:none;background:transparent;border:2px solid transparent;box-shadow:none;color:var(--ink);display:grid;place-items:center;padding:0;font-size:.7rem;line-height:1}.world-canvas.layout-edit .world-camp{pointer-events:none}.world-canvas.placing-camps{cursor:crosshair;-webkit-user-select:none;user-select:none}.world-canvas.placing-camps .world-camp{cursor:pointer}.world-camp em{font-style:normal;font-weight:700;font-size:.68rem;background:#1b140dc7;border-radius:999px;padding:.05rem .4rem}.world-camp.selected,.world-camp:hover{border-color:var(--accent)}.world-camp.layout-pick,.world-camp.layout-moved{border-color:transparent}.world-camp.layout-pick em{box-shadow:0 0 0 2px #f3d27a}.world-camp.cleared em{color:var(--muted)}.world-army{position:absolute;z-index:3;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(27,20,13,.55));animation:army-step .9s ease-in-out infinite}@keyframes army-step{0%,50%,to{transform:translate(0)}25%{transform:translate(-.7%,-4.5%)}75%{transform:translate(.7%,-4.5%)}}@media(prefers-reduced-motion:reduce){.world-army{animation:none}}.building-status{min-height:2.15rem;margin:.15rem 0 0;padding:.4rem .7rem;display:flex;align-items:center;justify-content:center;gap:.55rem;color:var(--muted);background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:8px;font-size:.78rem;font-weight:700;letter-spacing:.055em}.building-status:before{content:"";width:.45rem;height:.45rem;flex:0 0 auto;background:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 65%,var(--ink));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent);transform:rotate(45deg)}.world-soldiers{display:grid;gap:.35rem;margin:.85rem 0 0}.world-soldiers strong{color:var(--ink)}.soldier-glyph{width:4.4rem;height:5.4rem;display:block;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}.camp-menu{position:absolute;z-index:6;width:17rem;padding:.75rem .85rem .9rem;background:linear-gradient(180deg,#2f2116,#1c140e);border:1px solid var(--accent);border-radius:12px;box-shadow:0 12px 28px #00000080,inset 0 1px #d7a13b2e;pointer-events:auto}.camp-menu-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.45rem}.camp-menu-head h3{margin:0;font-size:.95rem}.camp-menu-garrison{margin:.2rem 0 0;color:var(--accent);font-weight:700;font-size:.92rem}.camp-menu .world-hint{margin:.35rem 0 0}.camp-menu-soldiers{margin-top:.55rem}.camp-menu-loot{display:grid;gap:.2rem;margin:.45rem 0 0;color:var(--muted);font-size:.82rem;line-height:1.35}.camp-menu-pool{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.camp-menu-pool .village-icon{width:1.25rem;height:1.25rem}.camp-menu button{width:100%;margin-top:.7rem}html[data-theme=dark-woodland]{--dw-page: #120c08;--dw-page-lift: #17110c;--dw-app-bar: #0b0705;--dw-panel: #24180f;--dw-panel-raised: #2e1f14;--dw-inset: #160e09;--dw-ink: #f3e6c8;--dw-muted: #cbb892;--dw-brass: #d7a13b;--dw-brass-soft: #dfbd76;--dw-line: #3d2b1c;--dw-line-raised: #51331a;--dw-focus: #e2b85a;--dw-shadow: #050302;--dw-danger: #b33a22;--dw-danger-ink: #fff8ee;--dw-button-face: #2a1b12;--dw-button-edge: #b7812f;--dw-button-hover-face: #4a3018;--dw-button-hover-edge: #e0b14e;--dw-button-pressed-face: #1a100a;--dw-button-pressed-edge: #8b6428;--dw-button-disabled-face: #18110c;--dw-button-disabled-edge: #493018;--dw-button-disabled-ink: #8b795d;--dw-tab-face: #1b120c;--dw-tab-edge: #59391c;--dw-tab-active-face: #3b2817;--dw-tab-active-rule: #e1b655;--dw-radius-panel: 16px;--dw-radius-card: 10px;--dw-radius-control: 8px;--dw-shadow-panel: 0 7px 16px rgb(5 3 2 / 72%);--dw-focus-ring: 0 0 0 3px rgb(18 12 8 / 95%), 0 0 0 5px #e2b85a;--bg: var(--dw-page-lift);--panel: var(--dw-panel);--panel-2: var(--dw-panel-raised);--ink: var(--dw-ink);--muted: var(--dw-muted);--accent: var(--dw-brass);--line: var(--dw-line);color-scheme:dark}html[data-theme=dark-woodland],html[data-theme=dark-woodland] body{background-color:var(--dw-page);color:var(--dw-ink)}html[data-theme=dark-woodland] body{background-image:var(--dw-art-page);background-size:cover;background-position:center top;background-repeat:no-repeat}html[data-theme=dark-woodland] #root{background:transparent}html[data-theme=dark-woodland] .app-bar{background-color:var(--dw-app-bar);background-image:var(--dw-art-app-bar);background-size:cover;background-position:center;border-bottom-color:var(--dw-line)}html[data-theme=dark-woodland] .panel,html[data-theme=dark-woodland] .labor-card,html[data-theme=dark-woodland] .resource-row,html[data-theme=dark-woodland] .building,html[data-theme=dark-woodland] .order-row,html[data-theme=dark-woodland] .upgrade-row,html[data-theme=dark-woodland] .language-menu,html[data-theme=dark-woodland] .developer-tools-menu,html[data-theme=dark-woodland] .camp-menu,html[data-theme=dark-woodland] .construction-bar{position:relative;isolation:isolate}html[data-theme=dark-woodland] .panel{background:linear-gradient(180deg,var(--dw-panel) 0%,var(--dw-inset) 100%);border-color:var(--dw-line);border-radius:var(--dw-radius-panel);box-shadow:var(--dw-shadow-panel)}html[data-theme=dark-woodland] .panel:before,html[data-theme=dark-woodland] .labor-card:before,html[data-theme=dark-woodland] .resource-row:before,html[data-theme=dark-woodland] .building:before,html[data-theme=dark-woodland] .order-row:before,html[data-theme=dark-woodland] .upgrade-row:before,html[data-theme=dark-woodland] .language-menu:before,html[data-theme=dark-woodland] .developer-tools-menu:before,html[data-theme=dark-woodland] .camp-menu:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background-position:center;background-repeat:no-repeat}html[data-theme=dark-woodland] .panel:before{background-image:var(--dw-art-panel);background-size:165% 165%;opacity:.22}html[data-theme=dark-woodland] .labor-card,html[data-theme=dark-woodland] .resource-row,html[data-theme=dark-woodland] .order-row,html[data-theme=dark-woodland] .upgrade-row,html[data-theme=dark-woodland] .building{background:var(--dw-inset);border:1px solid var(--dw-line-raised);border-radius:var(--dw-radius-card)}html[data-theme=dark-woodland] .labor-card:before,html[data-theme=dark-woodland] .resource-row:before{background-image:var(--dw-art-row);background-size:130% 220%;opacity:.28}html[data-theme=dark-woodland] .building:before,html[data-theme=dark-woodland] .order-row:before,html[data-theme=dark-woodland] .upgrade-row:before{background-image:var(--dw-art-card);background-size:145% 160%;opacity:.22}html[data-theme=dark-woodland] .labor-card{background:linear-gradient(180deg,var(--dw-panel-raised) 0%,var(--dw-inset) 100%)}html[data-theme=dark-woodland] .gather-footer{border-top-color:transparent;background-image:var(--dw-art-divider);background-repeat:no-repeat;background-position:center top;background-size:min(100%,32rem) .55rem}html[data-theme=dark-woodland] .fact-row strong{color:var(--dw-brass-soft)}html[data-theme=dark-woodland] .tool-alert{background:var(--dw-danger);color:var(--dw-danger-ink)}html[data-theme=dark-woodland] button{background-color:var(--dw-button-face);background-image:var(--dw-art-button-default);background-size:145% 210%;background-position:center;background-repeat:no-repeat;color:var(--dw-ink);border:1px solid var(--dw-button-edge);border-radius:var(--dw-radius-control)}html[data-theme=dark-woodland] button:hover{background-color:var(--dw-button-hover-face);background-image:var(--dw-art-button-hover);border-color:var(--dw-button-hover-edge)}html[data-theme=dark-woodland] button:active{background-color:var(--dw-button-pressed-face);background-image:var(--dw-art-button-pressed);border-color:var(--dw-button-pressed-edge);box-shadow:inset 0 2px 6px #050302a6}html[data-theme=dark-woodland] button:disabled{opacity:1;cursor:not-allowed;color:var(--dw-button-disabled-ink);background-color:var(--dw-button-disabled-face);background-image:var(--dw-art-button-disabled);border-color:var(--dw-button-disabled-edge)}html[data-theme=dark-woodland] button.ghost,html[data-theme=dark-woodland] .labor-stepper button,html[data-theme=dark-woodland] .language-current,html[data-theme=dark-woodland] .language-menu button,html[data-theme=dark-woodland] .developer-tools-menu button,html[data-theme=dark-woodland] .tab,html[data-theme=dark-woodland] .world-recenter,html[data-theme=dark-woodland] .dev-cheat{background-image:none}html[data-theme=dark-woodland] .world-camp,html[data-theme=dark-woodland] .world-camp:hover,html[data-theme=dark-woodland] .world-camp:active,html[data-theme=dark-woodland] .world-settlement,html[data-theme=dark-woodland] .world-settlement:hover,html[data-theme=dark-woodland] .world-settlement:active{background-color:transparent;background-image:none;box-shadow:none;filter:none}html[data-theme=dark-woodland] .world-camp,html[data-theme=dark-woodland] .world-camp:hover,html[data-theme=dark-woodland] .world-camp:active{border:2px solid transparent;border-radius:0}html[data-theme=dark-woodland] .world-camp.selected,html[data-theme=dark-woodland] .world-camp:hover,html[data-theme=dark-woodland] .world-camp:focus-visible{border-color:var(--dw-brass)}html[data-theme=dark-woodland] .world-settlement,html[data-theme=dark-woodland] .world-settlement:hover,html[data-theme=dark-woodland] .world-settlement:active{border:2px dashed color-mix(in srgb,var(--dw-brass) 55%,transparent);border-radius:12px}html[data-theme=dark-woodland] .world-settlement:hover,html[data-theme=dark-woodland] .world-settlement:focus-visible{border-color:var(--dw-brass)}html[data-theme=dark-woodland] .world-raid-event,html[data-theme=dark-woodland] .world-raid-event:hover,html[data-theme=dark-woodland] .world-raid-event:active{background-color:#d7a13b;background-image:none;color:#24180f;border:2px solid #f3e6c8;border-radius:50%;box-shadow:0 2px 8px #00000073}html[data-theme=dark-woodland] button.ghost,html[data-theme=dark-woodland] .language-current,html[data-theme=dark-woodland] .world-recenter,html[data-theme=dark-woodland] .dev-cheat,html[data-theme=dark-woodland] .construction-cancel{background-color:transparent;color:var(--dw-muted);border:1px solid var(--dw-line);box-shadow:none}html[data-theme=dark-woodland] button.ghost:hover,html[data-theme=dark-woodland] .language-current:hover,html[data-theme=dark-woodland] .world-recenter:hover{color:var(--dw-ink);border-color:var(--dw-brass);background-color:#d7a13b1a}html[data-theme=dark-woodland] button.ghost:disabled,html[data-theme=dark-woodland] .labor-stepper button:disabled,html[data-theme=dark-woodland] .dev-cheat:disabled{opacity:1;color:var(--dw-button-disabled-ink);background-image:none;background-color:transparent;border-color:var(--dw-button-disabled-edge)}html[data-theme=dark-woodland] .labor-stepper button{background-color:var(--dw-button-face);color:var(--dw-ink);border:1px solid var(--dw-button-edge)}html[data-theme=dark-woodland] .labor-stepper button.ghost{background-color:transparent;color:var(--dw-muted);border-color:var(--dw-line)}html[data-theme=dark-woodland] .app-tabs .tab,html[data-theme=dark-woodland] .panel-tabs .tab{background-color:var(--dw-tab-face);background-image:var(--dw-art-tab-default);background-size:160% 200%;background-position:center;background-repeat:no-repeat;color:var(--dw-muted);border:1px solid var(--dw-tab-edge)}html[data-theme=dark-woodland] .app-tabs .tab.active,html[data-theme=dark-woodland] .app-tabs .developer-tools-current[aria-expanded=true],html[data-theme=dark-woodland] .panel-tabs .tab.active{color:var(--dw-ink);background-color:var(--dw-tab-active-face);background-image:var(--dw-art-tab-active);border-color:var(--dw-brass);box-shadow:inset 0 -2px 0 var(--dw-tab-active-rule)}html[data-theme=dark-woodland] .gather-btn,html[data-theme=dark-woodland] .gather-btn:hover,html[data-theme=dark-woodland] .gather-btn:active{background-color:transparent;background-image:var(--dw-art-raised-brass-plate);background-size:100% 100%;background-position:center;background-repeat:no-repeat;border:0;box-shadow:none}html[data-theme=dark-woodland] .gather-btn{color:var(--dw-ink)}html[data-theme=dark-woodland] .feature-launcher,html[data-theme=dark-woodland] .feature-launcher:hover,html[data-theme=dark-woodland] .feature-launcher:active{background-color:transparent;background-image:none;border:0;box-shadow:none}html[data-theme=dark-woodland] .gather-btn:hover,html[data-theme=dark-woodland] .feature-launcher:hover{filter:brightness(1.08)}html[data-theme=dark-woodland] .gather-btn:active,html[data-theme=dark-woodland] .feature-launcher:active{transform:none;filter:brightness(.94)}html[data-theme=dark-woodland] .side-toggle{background-color:#d7a13b38;background-image:none;color:var(--dw-ink);border:1px solid var(--dw-brass)}html[data-theme=dark-woodland] .side-toggle.open{background-color:var(--dw-brass);color:var(--dw-page)}html[data-theme=dark-woodland] .language-menu,html[data-theme=dark-woodland] .developer-tools-menu{background:var(--dw-panel);border-color:var(--dw-line);box-shadow:var(--dw-shadow-panel)}html[data-theme=dark-woodland] .language-menu:before,html[data-theme=dark-woodland] .developer-tools-menu:before{background-image:var(--dw-art-panel);background-size:180% 180%;opacity:.2}html[data-theme=dark-woodland] .language-menu button,html[data-theme=dark-woodland] .developer-tools-menu button{background-color:transparent;color:var(--dw-muted);border:0}html[data-theme=dark-woodland] .language-menu button:hover,html[data-theme=dark-woodland] .language-menu button:focus-visible,html[data-theme=dark-woodland] .language-menu button.active,html[data-theme=dark-woodland] .developer-tools-menu button:hover,html[data-theme=dark-woodland] .developer-tools-menu button:focus-visible,html[data-theme=dark-woodland] .developer-tools-menu button[aria-pressed=true]{color:var(--dw-ink);background:#d7a13b1f}html[data-theme=dark-woodland] .camp-menu{background:linear-gradient(180deg,var(--dw-panel-raised) 0%,var(--dw-inset) 100%);border-color:var(--dw-brass);box-shadow:var(--dw-shadow-panel),inset 0 1px #d7a13b2e}html[data-theme=dark-woodland] .camp-menu:before{background-image:var(--dw-art-panel);background-size:170% 170%;opacity:.18}html[data-theme=dark-woodland] .construction-bar{background:#0503026b;border-color:var(--dw-line)}html[data-theme=dark-woodland] input[type=range]{accent-color:var(--dw-brass)}html[data-theme=dark-woodland] button:focus-visible,html[data-theme=dark-woodland] .tab:focus-visible,html[data-theme=dark-woodland] input[type=range]:focus-visible,html[data-theme=dark-woodland] .settlement-name:focus-visible,html[data-theme=dark-woodland] .world-camp:focus-visible,html[data-theme=dark-woodland] .world-settlement:focus-visible,html[data-theme=dark-woodland] .language-menu button:focus-visible,html[data-theme=dark-woodland] .developer-tools-menu button:focus-visible{outline:none;box-shadow:var(--dw-focus-ring)}html[data-theme=dark-woodland] .app-tabs .tab.active:focus-visible,html[data-theme=dark-woodland] .panel-tabs .tab.active:focus-visible{box-shadow:inset 0 -2px 0 var(--dw-tab-active-rule),var(--dw-focus-ring)}html[data-theme=dark-woodland] .settlement-name:focus{outline:none}@media(prefers-reduced-motion:reduce){html[data-theme=dark-woodland] button,html[data-theme=dark-woodland] .tab,html[data-theme=dark-woodland] .gather-btn,html[data-theme=dark-woodland] .feature-launcher,html[data-theme=dark-woodland] .world-raid-event{transition:none;animation:none}html[data-theme=dark-woodland] .gather-btn:active,html[data-theme=dark-woodland] .feature-launcher:active{transform:none}}@media(forced-colors:active){html[data-theme=dark-woodland] .panel:before,html[data-theme=dark-woodland] .labor-card:before,html[data-theme=dark-woodland] .resource-row:before,html[data-theme=dark-woodland] .building:before,html[data-theme=dark-woodland] .order-row:before,html[data-theme=dark-woodland] .upgrade-row:before,html[data-theme=dark-woodland] .language-menu:before,html[data-theme=dark-woodland] .developer-tools-menu:before,html[data-theme=dark-woodland] .camp-menu:before,html[data-theme=dark-woodland] button,html[data-theme=dark-woodland] .tab,html[data-theme=dark-woodland] .gather-btn,html[data-theme=dark-woodland] .feature-launcher,html[data-theme=dark-woodland] .app-bar,html[data-theme=dark-woodland] body{background-image:none}html[data-theme=dark-woodland] .panel,html[data-theme=dark-woodland] button,html[data-theme=dark-woodland] .tab{border:1px solid ButtonText}}
