@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#eeeede;background:#162b25;font-synthesis:none;--muted:#9bafa0;--gold:#dfbd76;--line:#ffffff12}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,canvas:focus-visible{outline:2px solid #e2c783;outline-offset:3px}button{touch-action:manipulation}#game{height:100dvh;min-height:540px;position:relative;overflow:hidden}#world{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.glass{background:linear-gradient(140deg,#1f332dee,#142720ef);border:1px solid #a9bc8c29;box-shadow:0 12px 35px #071c2433;backdrop-filter:blur(14px);border-radius:9px}.topbar{position:absolute;top:20px;left:24px;right:24px;height:82px;display:flex;align-items:center;padding:0 24px;gap:25px}.brand{display:flex;align-items:center;gap:12px;min-width:260px}.brand-mark{font-size:42px;color:var(--gold)}h1{font-family:Outfit,Arial,sans-serif;font-size:24px;font-weight:500;letter-spacing:4px;margin:0}.brand p{font-size:9px;letter-spacing:3.4px;margin:5px 0 0;color:#b2baa0}.resources{display:flex;justify-content:center;gap:44px;flex:1}.resources>div{display:flex;align-items:center;gap:12px}.resources strong{font-size:20px;font-weight:500;display:block;font-variant-numeric:tabular-nums}.resources small{font-size:9px;letter-spacing:1.4px;color:var(--muted)}.resource-icon{font-size:27px}.wood{color:#cda777}.stone{color:#a5b5b6}.food{color:#e6c779}.people{color:#a3c1b0}.icon-button{height:30px;width:30px;border:1px solid #9aaa8e66;border-radius:50%;background:none;color:#b3c1ad}.left-panel{position:absolute;left:24px;top:122px;width:250px}.season{padding:20px}.eyebrow{font-size:9px;letter-spacing:1.8px;color:var(--gold)}.season-line{display:flex;align-items:center;gap:16px;margin:18px 0}.season-line>span{font-size:34px;color:var(--gold)}h2{font-size:14px;font-weight:500;margin:0}.season-line h2{font-family:Outfit,Arial,sans-serif;font-size:23px}.season p{font-size:11px;color:var(--muted);margin:5px 0 0}.season-track,.health-track{height:4px;background:#ffffff12;border-radius:6px;overflow:hidden}.season-track>div{background:var(--gold);height:100%;width:5%}#season-note{margin-top:11px;font-size:10px}.objectives{padding:19px;margin-top:12px}.panel-heading{display:flex;justify-content:space-between;align-items:center}.panel-heading>span{font-size:11px;color:var(--gold)}.objectives>p{font-size:11px;line-height:1.7;color:var(--muted);margin:12px 0 20px}.objectives ul{padding:0;list-style:none;margin:0}.objectives li{display:flex;align-items:center;gap:8px;margin:17px 0;font-size:10px}.objectives li b{font-size:10px;font-weight:400;margin-left:auto;color:var(--muted)}.check{font-size:16px;color:#b8ae85}.objectives li.done .check{color:#a6d29d}.goal-footer{padding-top:16px;border-top:1px solid var(--line);font-size:9px;color:#a8b39d}.map-label{position:absolute;top:127px;left:50%;transform:translateX(-50%);display:flex;gap:11px;align-items:center;font-size:10px;letter-spacing:1.6px;text-shadow:0 1px 8px #122e22;background:#193d2444;border-radius:20px;padding:8px 14px;white-space:nowrap}.map-label>span:last-child{font-size:10px;letter-spacing:0;color:#e0ead6}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#adc286;box-shadow:0 0 8px #adc28644}.right-panel{position:absolute;right:24px;top:122px;width:220px}.wellbeing,.journal{padding:18px}.happiness{display:flex;align-items:center;gap:12px;margin:22px 0 16px}.happiness>span{font-family:Outfit,Arial,sans-serif;color:#c8d6ac;font-size:29px}.happiness>div{font-size:11px}.happiness small{display:block;margin-top:5px;font-size:9px;color:var(--muted)}.health-track>div{height:100%;background:#b2c58c}.daily{display:flex;justify-content:space-between;font-size:10px;margin-top:18px}.daily b{color:var(--gold);font-weight:500}.wellbeing>p{font-size:9px;color:var(--muted);line-height:1.8;margin-bottom:0}.journal{margin-top:12px}.journal ol{padding:0;margin:15px 0 0;list-style:none}.journal li{display:flex;gap:10px;margin-top:14px}.journal-dot{width:5px;height:5px;flex-shrink:0;background:#b6b996;border-radius:50%;margin-top:5px}.journal p{font-size:10px;line-height:1.5;margin:0;color:#d3dbcc}.journal small{font-size:8px;color:#869e8d;display:block;margin-top:4px}.map-controls{position:absolute;right:24px;bottom:198px;display:flex;flex-direction:column;padding:3px}.map-controls button{background:none;border:0;width:31px;height:31px;font-size:20px;color:#c9d2b9}.map-controls button:hover{background:#ffffff12}footer{position:absolute;bottom:0;left:24px;right:24px}.build-hint{display:flex;gap:7px;align-items:center;justify-content:center;margin:0 0 11px;font-size:10px;text-shadow:0 2px 8px #14271b}.build-hint>span:first-child{margin-right:14px}kbd{font:9px 'DM Sans',Arial,sans-serif;border:1px solid #b7c5a744;border-radius:3px;padding:3px 5px;color:#aebeac}.bottom-row{display:flex;gap:14px;justify-content:center}.build-menu{display:flex;padding:9px;gap:8px}.build-title{width:82px;display:flex;flex-direction:column;justify-content:center;padding-left:10px}.build-title>span{font-size:12px;letter-spacing:2px;color:var(--gold)}.build-title small{font-size:7px;line-height:1.6;color:var(--muted);margin-top:7px;max-width:60px;letter-spacing:1px}#build-options{display:flex;gap:5px}.build-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:91px;height:87px;border-radius:6px;border:1px solid transparent;background:#ffffff04;transition:background .2s}.build-option:hover{background:#ffffff0d;border-color:#d6bd7444}.build-option.active{background:#ceb57620;border-color:#d8b975}.building-symbol{height:32px;font-size:27px;line-height:30px;color:#c9bf99}.build-option strong{font-size:10px;font-weight:500;margin-top:5px}.build-option small{font-size:8px;color:var(--muted);margin-top:5px}.build-option kbd{position:absolute;top:4px;left:5px;font-size:7px;padding:0 3px;border:0;color:#839785}.time-controls{width:154px;display:flex;flex-direction:column;justify-content:center;padding:17px}.time-controls>div:first-child{font-size:9px;color:var(--muted);display:flex;align-items:center;gap:7px}.speeds{display:flex;margin-top:14px;gap:3px}.speeds button{font-size:11px;border:0;background:none;border-radius:4px;padding:7px;color:#a6b39f}.speeds button.active{color:#f4d68a;background:#d1b27320}.bottom-note{height:35px;display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:.8px;color:#e2ebc9aa;text-shadow:0 1px 4px #193921}.bottom-note i{font-style:normal;margin:0 9px}.bottom-note>div{display:flex;align-items:center;gap:16px}.bottom-note button{font-size:9px;border:0;background:none;padding:0;color:#dce6caaa}#toast{position:absolute;left:50%;bottom:190px;transform:translateX(-50%);background:#192d25ef;border:1px solid #c6b17c66;padding:12px 20px;border-radius:7px;font-size:12px;pointer-events:none;max-width:80%;text-align:center}dialog{background:#20392f;color:#ebeede;border:1px solid #d7c48b55;border-radius:14px;max-width:580px;width:calc(100% - 40px);padding:40px;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#0b231c70;backdrop-filter:blur(5px)}dialog h2{font-family:Outfit,Arial,sans-serif;font-size:32px;margin:15px 0}dialog p{font-size:13px;line-height:1.8;color:#b5c5b4}.dialog-close{position:absolute;right:15px;top:10px;background:none;border:0;font-size:26px;color:#b3bfaa}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 25px;margin-top:26px}.guide-grid b{font-size:12px;color:#e0c383}.guide-grid p{font-size:11px}.guide-note{font-size:10px!important;border-top:1px solid var(--line);padding-top:14px}.primary{background:#d7bd80;color:#233529;border:0;border-radius:6px;font-size:12px;font-weight:700;padding:15px 22px;width:100%;margin-top:15px}.primary span{float:right}button:hover{filter:brightness(1.13)}
@media(min-width:1600px){.left-panel{width:270px}.right-panel{width:240px}.topbar{height:90px}.left-panel,.right-panel{top:132px}.build-option{width:110px;height:94px}}
@media(max-width:1100px){.resources{gap:22px}.brand{min-width:220px}.right-panel{width:185px}.left-panel{width:220px}.build-title{display:none}.build-option{width:80px}.time-controls{width:132px}.map-label{top:110px}}
@media(max-width:800px){.topbar{top:10px;left:10px;right:10px;padding:12px;height:105px;flex-wrap:wrap;gap:10px}.brand{min-width:0;flex:1}.brand h1{font-size:18px}.brand p{font-size:7px}.brand-mark{font-size:28px}.resources{order:3;flex-basis:100%;justify-content:space-between;gap:10px}.resources strong{font-size:15px}.resources small{font-size:7px}.resource-icon{font-size:20px}.resources>div{gap:7px}.left-panel{left:10px;top:125px;width:166px}.season{padding:12px}.eyebrow{font-size:7px}.season-line{margin:10px 0;gap:10px}.season-line h2{font-size:18px}.season-line>span{font-size:25px}.season-line p{font-size:9px}.objectives{padding:12px}.objectives h2{font-size:11px}.objectives>p,.goal-footer{display:none}.objectives li{font-size:8px;margin:12px 0;gap:4px}.objectives li b{font-size:8px}.right-panel{right:10px;top:125px;width:145px}.wellbeing{padding:12px}.wellbeing h2{font-size:11px}.happiness{gap:8px;margin:12px 0}.happiness>span{font-size:23px}.happiness>div{font-size:9px}.happiness small{font-size:8px}.daily{font-size:8px}.wellbeing>p,.journal,.map-label{display:none}footer{left:10px;right:10px}.bottom-row{gap:6px}.build-menu{min-width:0;flex:1;padding:5px;overflow:auto}#build-options{width:100%;gap:3px}.build-option{min-width:53px;flex:1;width:auto;height:78px}.build-option strong{font-size:8px}.build-option small{font-size:7px}.building-symbol{font-size:23px}.build-option kbd{display:none}.time-controls{width:92px;flex-shrink:0;padding:8px}.time-controls>div:first-child{font-size:7px}.speeds{gap:0}.speeds button{padding:6px 4px;font-size:9px}.bottom-note>span{display:none}.bottom-note{justify-content:flex-end;height:30px}.build-hint{font-size:8px}.build-hint kbd,.build-hint>span:last-child{display:none}.map-controls{right:10px;bottom:160px}#toast{bottom:160px;font-size:10px}.guide-grid{gap:5px 18px}dialog{padding:25px}dialog h2{font-size:25px}}
@media(max-height:680px){.objectives{margin-top:8px}.objectives>p{display:none}.objectives li{margin:12px 0}.journal{display:none}.goal-footer{display:none}.season{padding:14px}.season-line{margin:10px 0}.build-option{height:76px}}
