@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{color-scheme:dark;font-family:Space Grotesk,sans-serif;color:#edf0df;background:#0e1716}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;-webkit-user-select:none;user-select:none}#scene{position:absolute;inset:0;cursor:crosshair}#scene canvas{display:block;width:100%;height:100%}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(3,9,9,.48) 100%)}.hud{position:absolute;top:28px;left:34px;display:flex;gap:12px;align-items:flex-start;pointer-events:none}.brand{width:194px;padding:10px 4px 0 0;font-size:11px;font-weight:700;letter-spacing:.16em;color:#f0f2db}.brand-mark{display:inline-block;margin-right:7px;color:#e4b657;font-size:16px;transform:translateY(1px)}.brand small{display:block;margin:8px 0 0 24px;color:#778980;font:9px DM Mono,monospace;letter-spacing:.11em}.resource-card{min-width:134px;padding:11px 13px 10px;border:1px solid rgba(184,208,190,.15);border-radius:4px;background:#0d1f1dab;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.resource-row{display:flex;align-items:center;gap:7px;height:20px}.resource-icon{font-size:15px;line-height:1}.water-icon{color:#69cbd1}.sugar-icon{color:#e8ba58}.resource-label{color:#8ea299;font:10px DM Mono,monospace;letter-spacing:.12em}.resource-card strong{margin-left:auto;color:#fff9dc;font:500 17px DM Mono,monospace}.trend{font:18px DM Mono,monospace}.trend.up{color:#cddc90}.trend.down{color:#ef9d6e}.resource-track{width:100%;height:3px;margin-top:9px;border-radius:2px;background:#68c2cb24;overflow:hidden}.resource-track i{display:block;width:48%;height:100%;border-radius:inherit;background:#62c5cd;transition:width .35s,background .35s}.water-rate{display:block;margin-top:5px;color:#7fa8a0;font:8px DM Mono,monospace;letter-spacing:.01em}.resource-card.critical{animation:water-warning 1.35s infinite}.sugar-track{background:#eab95326}.sugar-track i{background:#e2b85b;width:76%}.top-note{position:absolute;top:32px;right:34px;display:flex;align-items:center;gap:8px;color:#92a89a;font:10px DM Mono,monospace;letter-spacing:.09em;text-transform:uppercase}.pulse-dot{width:6px;height:6px;border-radius:50%;background:#74d4c0;box-shadow:0 0 0 5px #74d4c01a;animation:pulse 2s infinite}.drought-status{position:absolute;top:68px;right:34px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:#e8bd68;font:10px DM Mono,monospace;letter-spacing:.08em;text-align:right;animation:drought-pulse 2.8s infinite}.drought-status span{color:#a08c68;font-size:9px;letter-spacing:.03em}.drought-status.stable{color:#89c4a2;animation:none}.drought-status.stable span{color:#769b88}.drought-status.approaching{color:#e8bd68}.drought-status.active{color:#ed9d6f}.drought-status.hidden{display:none}.day-cycle{position:absolute;top:106px;right:34px;display:flex;align-items:center;gap:7px;color:#e6c678;font:10px DM Mono,monospace;letter-spacing:.1em}.day-cycle span:first-child{color:#f1ca69;font-size:15px;line-height:1}.objective-panel{position:absolute;left:34px;top:150px;display:flex;flex-direction:column;gap:6px;width:214px;padding:14px;border:1px solid rgba(220,188,101,.35);border-radius:4px;background:#0e1d19c7;box-shadow:0 10px 30px #0000002e}.objective-panel.hidden{display:none}.objective-kicker{color:#9caa80;font:9px DM Mono,monospace;letter-spacing:.08em}.objective-panel strong{color:#f0ce75;font-size:19px;letter-spacing:.08em}.objective-panel>span:nth-child(3){min-height:29px;color:#9baca0;font:10px/1.35 DM Mono,monospace}.objective-panel button.hidden{display:none}.objective-panel button,.success-card button{padding:9px 8px;border:1px solid rgba(222,188,101,.42);border-radius:3px;background:#c7993f24;color:#f0cd76;font:10px DM Mono,monospace;letter-spacing:.04em;cursor:pointer}.objective-panel button:hover,.success-card button:hover{background:#e4b34b40}.objective-panel button:disabled{border-color:#a0a68c33;background:transparent;color:#74857b;cursor:not-allowed}.journey-steps{display:flex;flex-direction:column;gap:4px;margin:2px 0 5px}.journey-steps span{display:flex;align-items:center;gap:7px;color:#637a70;font:9px DM Mono,monospace;letter-spacing:.04em}.journey-steps i{display:inline-grid;place-items:center;width:17px;height:17px;border:1px solid rgba(135,157,139,.22);border-radius:50%;color:#6d8378;font-style:normal;font-size:8px}.journey-steps span.current{color:#e6c66f}.journey-steps span.current i{border-color:#e6c66f;color:#f1d47b;box-shadow:0 0 0 3px #e6c66f1a}.journey-steps span.done{color:#9ec08d}.journey-steps span.done i{border-color:#91bd80;color:#b5d79c;background:#6b9b5529}.journey-steps span.available{color:#e4c36c}.journey-steps span.available i{border-color:#dcb966;color:#e4c36c}.preview{position:absolute;min-width:106px;padding:10px 12px;border:1px solid rgba(221,190,102,.42);border-radius:4px;background:#0e1c18e0;box-shadow:0 9px 24px #0003;transform:translate(14px,-50%);pointer-events:none;transition:opacity .15s,border-color .15s}.preview.invalid{border-color:#f06a5c9e}.preview.hidden{opacity:0}.preview-line{display:flex;gap:13px;align-items:center;font:500 15px DM Mono,monospace}.preview-line span:first-child{color:#f0c95f}.preview-line span:nth-child(2){color:#86d5bd;font-size:16px}.preview-line span:nth-child(3){color:#e69c71;font-size:16px}.invalid .preview-line span:nth-child(2){color:#ed7e69}.preview-hint{margin-top:5px;color:#89a198;font:9px DM Mono,monospace;letter-spacing:.03em}.invalid .preview-hint{color:#e88972}.legend{position:absolute;bottom:29px;left:34px;display:flex;align-items:center;gap:8px;color:#799087;font:9px DM Mono,monospace;letter-spacing:.08em}.legend-swatch{width:10px;height:10px;border:1px solid #69d3c2;border-radius:2px}.legend-swatch.moisture{margin-left:12px;border-radius:50%;border-color:#63c8cf;box-shadow:0 0 9px #63c8cf}.instructions{position:absolute;right:34px;bottom:30px;color:#71877e;font:9px DM Mono,monospace;letter-spacing:.05em}.key{margin-left:14px;margin-right:4px;padding:3px 5px;border:1px solid rgba(151,186,168,.26);border-radius:2px;color:#b3c5af}.time-controls{position:absolute;right:34px;bottom:69px;display:flex;align-items:center;gap:5px;color:#7d9589;font:9px DM Mono,monospace}.time-label{margin-right:4px;color:#a9bbaa;letter-spacing:.1em}.time-controls>span:nth-child(2){min-width:20px;color:#e1c36f}.time-controls button{min-width:27px;padding:5px 4px;border:1px solid rgba(151,186,168,.22);border-radius:2px;background:#0d1f1d99;color:#82978a;font:9px DM Mono,monospace;cursor:pointer}.time-controls button:hover,.time-controls button.active{border-color:#e1c36f9e;color:#f1d47b;background:#c2943d26}.time-controls small{margin-left:5px;color:#647c72;font:8px DM Mono,monospace}.cancel-growth-button{position:absolute;right:34px;bottom:108px;padding:7px 11px;border:1px solid rgba(235,132,103,.48);border-radius:3px;background:#4d241eb8;color:#eea080;font:10px DM Mono,monospace;cursor:pointer}.cancel-growth-button:hover{border-color:#f0a88d;color:#ffd0b3}.cancel-growth-button.hidden{display:none}.reset-button{position:absolute;right:34px;bottom:69px;padding:7px 10px;border:1px solid rgba(151,186,168,.2);border-radius:3px;background:#0d1f1d99;color:#7f988c;font:10px DM Mono,monospace;cursor:pointer}.reset-button:hover{border-color:#8fc3ad;color:#d2e2c8}.success-screen{position:absolute;inset:0;display:grid;place-items:center;background:#081411b8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.success-screen.hidden{display:none}.success-card{display:flex;flex-direction:column;align-items:center;min-width:280px;padding:38px 48px 34px;border:1px solid rgba(226,193,106,.5);border-radius:5px;background:#122821eb;box-shadow:0 18px 60px #00000059;text-align:center}.success-mark{color:#f0cd76;font-size:28px;animation:success-glow 2s infinite}.success-kicker{margin-top:14px;color:#91b69e;font:10px DM Mono,monospace;letter-spacing:.15em}.success-card h1{margin:9px 0 3px;color:#f4d984;font-size:36px;letter-spacing:.12em}.success-card p{margin:0 0 22px;color:#a6b8a7;font:11px DM Mono,monospace}.success-card button{padding-inline:18px}.failure-screen{position:absolute;inset:0;display:grid;place-items:center;background:#140c0ac2;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.failure-screen.hidden{display:none}.failure-card{display:flex;flex-direction:column;align-items:center;min-width:280px;padding:38px 48px 34px;border:1px solid rgba(214,125,91,.48);border-radius:5px;background:#2a1b18ed;box-shadow:0 18px 60px #00000059;text-align:center}.failure-mark{color:#e68e70;font-size:28px}.failure-card .success-kicker{color:#b98d80}.failure-card h1{margin:9px 0 3px;color:#ec9d7a;font-size:36px;letter-spacing:.12em}.failure-card p{margin:0 0 22px;color:#c2a49b;font:11px DM Mono,monospace}.failure-card button{padding-inline:18px;border-color:#d67d5b6b;background:#b4594324;color:#ecaa88}.brand{width:214px;font-size:13px}.brand-mark{font-size:18px}.brand small{font-size:11px}.resource-card{min-width:148px;padding:13px 15px 12px}.resource-icon{font-size:17px}.resource-label,.resource-card strong{font-size:12px}.resource-card strong{font-size:19px}.water-rate{font-size:10px}.top-note,.drought-status,.day-cycle{font-size:12px}.drought-status span{font-size:11px}.day-cycle span:first-child{font-size:17px}.objective-panel{width:260px;padding:16px;gap:8px}.objective-kicker{font-size:11px}.objective-panel strong{font-size:21px}.objective-panel>span:nth-child(3){min-height:48px;font-size:12px}.objective-panel button,.success-card button{padding:11px 10px;font-size:12px}.journey-steps{gap:5px}.journey-steps span{font-size:11px}.journey-steps i{width:19px;height:19px;font-size:10px}.preview{min-width:128px;padding:12px 14px}.preview-line{font-size:17px}.preview-line span:nth-child(2),.preview-line span:nth-child(3){font-size:18px}.preview-hint,.legend,.instructions,.time-controls{font-size:11px}.time-controls button{min-width:31px;padding:6px 5px;font-size:11px}.time-controls small{font-size:10px}.cancel-growth-button,.reset-button{padding:9px 12px;font-size:12px}.success-kicker{font-size:12px}.success-card h1,.failure-card h1{font-size:38px}.success-card p,.failure-card p{font-size:13px}.intro-modal{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#06100fa3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.intro-modal.hidden{display:none}.intro-card{width:min(700px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:30px 34px 28px;border:1px solid rgba(222,188,101,.5);border-radius:6px;background:#0e1f1bf5;box-shadow:0 24px 90px #0000006b}.intro-kicker{color:#9bb895;font:11px DM Mono,monospace;letter-spacing:.12em}.intro-card h1{margin:12px 0 10px;color:#f0ce75;font-size:31px;letter-spacing:.05em}.intro-lead{max-width:610px;margin:0 0 22px;color:#d0d9c5;font:14px/1.55 DM Mono,monospace}.intro-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.intro-block{min-height:106px;padding:13px;border:1px solid rgba(145,181,151,.18);border-radius:4px;background:#1f3b3061}.intro-block strong{display:block;margin-bottom:7px;color:#e4c875;font:12px DM Mono,monospace;letter-spacing:.06em}.intro-block span{display:block;color:#aebfae;font:12px/1.45 DM Mono,monospace}.intro-controls{margin:20px 0 17px;color:#8da89a;font:11px DM Mono,monospace}.intro-controls span{color:#e9cb75}.intro-start{width:100%;padding:13px 16px;border:1px solid rgba(233,201,117,.65);border-radius:3px;background:#c7993f33;color:#f3d680;font:12px DM Mono,monospace;letter-spacing:.1em;cursor:pointer}.intro-start:hover{background:#e4b34b4d}@keyframes pulse{50%{opacity:.45;transform:scale(.8)}}@keyframes drought-pulse{50%{opacity:.56}}@keyframes success-glow{50%{transform:scale(1.14);text-shadow:0 0 20px rgba(240,205,118,.8)}}@keyframes water-warning{50%{box-shadow:0 0 0 3px #ec725b2b}}@media(max-width:700px){.hud{top:14px;left:14px;gap:6px}.brand{width:120px;font-size:9px}.brand small{margin-left:0;font-size:7px}.resource-card{min-width:94px;padding:8px}.resource-label{font-size:8px}.top-note{top:17px;right:14px;font-size:8px}.drought-status{top:48px;right:14px;font-size:8px}.day-cycle{top:81px;right:14px;font-size:8px}.day-cycle span:first-child{font-size:13px}.objective-panel{top:118px;left:14px;width:190px;padding:11px}.instructions{display:none}.time-controls{right:14px;bottom:48px}.time-controls small{display:none}.cancel-growth-button{right:14px;bottom:84px}.legend{bottom:15px;left:14px;font-size:8px}.reset-button{right:14px;bottom:14px}.success-card{min-width:240px;padding-inline:30px}}@media(max-width:700px){.hud{gap:6px}.brand{width:94px;font-size:11px}.brand-mark{font-size:16px}.brand small{font-size:9px}.resource-card{min-width:98px;padding:10px}.resource-label{font-size:10px}.resource-card strong{font-size:17px}.water-rate{font-size:9px}.top-note,.drought-status,.day-cycle{font-size:10px}.drought-status span{font-size:9px}.day-cycle span:first-child{font-size:15px}.objective-panel{width:236px;padding:13px}.objective-kicker{font-size:10px}.objective-panel strong{font-size:19px}.objective-panel>span:nth-child(3){min-height:44px;font-size:11px}.journey-steps span{font-size:10px}.journey-steps i{width:18px;height:18px;font-size:9px}.legend{font-size:10px}}@media(max-width:700px){.intro-modal{padding:14px}.intro-card{max-height:calc(100vh - 28px);padding:23px 19px 20px}.intro-kicker{font-size:9px}.intro-card h1{font-size:24px}.intro-lead{font-size:12px;line-height:1.45}.intro-columns{grid-template-columns:1fr;gap:8px}.intro-block{min-height:0;padding:11px}.intro-block strong,.intro-block span{font-size:11px}.intro-controls{font-size:10px;line-height:1.6}.intro-start{font-size:11px}}
