:root{color:var(--ink);background:var(--paper);--brand-hue: 238;--brand: hsl(var(--brand-hue) 85% 18%);--brand-strong: hsl(var(--brand-hue) 70% 24%);--brand-mid: hsl(var(--brand-hue) 58% 38%);--brand-soft: hsl(var(--brand-hue) 65% 96%);--brand-line: hsl(var(--brand-hue) 48% 86%);--paper: hsl(48 45% 96%);--surface: hsl(0 0% 100%);--ink: hsl(var(--brand-hue) 86% 14%);--muted: hsl(var(--brand-hue) 22% 42%);--interaction: hsl(var(--brand-hue) 58% 38%);--interaction-hover: hsl(var(--brand-hue) 66% 29%);--interaction-active: hsl(var(--brand-hue) 85% 18%);--interaction-soft: hsl(var(--brand-hue) 70% 93%);--focus: hsl(var(--brand-hue) 85% 18%);--energy: hsl(58 76% 44%);--energy-soft: hsl(58 88% 86%);--accent: var(--energy);--accent-soft: var(--energy-soft);--solar: var(--energy);--solar-soft: var(--energy-soft);--danger: hsl(3 78% 52%);--danger-dark: hsl(0 72% 28%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;min-height:100dvh;margin:0}button{font:inherit}button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.boot-error,.error-boundary{display:grid;min-height:100vh;min-height:100dvh;padding:24px;place-items:center;color:var(--ink);background:linear-gradient(180deg,var(--paper),var(--brand-soft))}.boot-error,.error-boundary-card{width:min(420px,100%);padding:22px;border:2px solid var(--interaction);border-radius:8px;background:var(--surface);box-shadow:8px 8px 0 var(--energy),0 16px 36px #14234b29}.boot-error strong,.error-boundary-card strong{display:block;margin-bottom:8px;color:var(--brand);font-size:22px;line-height:1.1}.boot-error p,.error-boundary-card p{margin:0 0 16px;color:var(--muted);line-height:1.45}.error-boundary-card button{min-height:42px;padding:0 14px;color:var(--surface);cursor:pointer;border:2px solid var(--interaction-active);border-radius:8px;background:var(--interaction);font-weight:900}.app-shell{position:relative;display:grid;grid-template-areas:"header controls" "main main" "bottom bottom";grid-template-columns:430px minmax(0,1fr);grid-template-rows:124px minmax(0,1fr) 72px;gap:10px 14px;width:min(1440px,100%);height:100vh;height:100dvh;min-height:0;overflow:hidden;margin:0 auto;padding:12px 18px;background:linear-gradient(180deg,var(--paper) 0%,var(--brand-soft) 58%,hsl(var(--brand-hue) 50% 94%) 100%);transition:background .52s ease}.app-shell.is-night{background:linear-gradient(180deg,hsl(var(--brand-hue) 42% 92%),hsl(var(--brand-hue) 54% 89%))}.app-shell.is-dawn{background:linear-gradient(180deg,var(--paper) 0%,hsl(var(--brand-hue) 65% 96%) 100%)}.app-shell.is-day{background:linear-gradient(180deg,var(--paper) 0%,var(--brand-soft) 62%,hsl(var(--brand-hue) 50% 94%) 100%)}.app-shell.is-evening{background:linear-gradient(180deg,hsl(58 80% 92%) 0%,var(--brand-soft) 60%,hsl(var(--brand-hue) 46% 91%) 100%)}.app-header{position:relative;grid-area:header;display:flex;align-items:flex-start;gap:10px;min-height:0;overflow:visible}.brand-help{position:relative;z-index:12;flex:0 0 auto}.brand-mark{position:relative;display:grid;flex:0 0 auto;width:54px;height:54px;padding:0;place-items:center;color:var(--brand);border:2px solid var(--interaction);border-radius:8px;background:linear-gradient(180deg,#fffffffa,hsl(var(--brand-hue) 65% 97% / 98%));box-shadow:inset 0 -4px hsl(var(--brand-hue) 38% 82%),0 0 0 1px hsl(var(--brand-hue) 70% 92%),0 8px 18px #14234b14;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}.brand-mark:hover,.brand-mark:focus-visible{transform:translateY(-1px);border-color:var(--interaction-active);background:linear-gradient(180deg,hsl(0 0% 100% / 98%),var(--interaction-soft));box-shadow:inset 0 -4px 0 var(--interaction),0 0 0 3px hsl(var(--brand-hue) 70% 90%),0 12px 24px #14234b24}.brand-mark svg:last-child{position:absolute;bottom:8px;color:var(--accent)}.guide-tooltip{position:absolute;z-index:30;top:calc(100% + 8px);left:0;display:grid;width:254px;gap:4px;padding:12px 14px;color:var(--ink);border:2px solid var(--interaction-active);border-radius:8px;background:#fffffffa;box-shadow:6px 6px 0 var(--energy),0 16px 36px #14234b29;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .16s ease,transform .16s ease}.brand-help:hover .guide-tooltip,.brand-help:focus-within .guide-tooltip{opacity:1;transform:translateY(0)}.guide-tooltip strong{color:var(--interaction-active);font-size:13px;font-weight:1000;text-transform:uppercase}.guide-tooltip p{color:var(--ink);font-size:14px;font-weight:900}.guide-tooltip span{color:var(--muted);font-size:12px;font-weight:800;line-height:1.2}h1,h2,p{margin:0}h1{width:fit-content;max-width:210px;padding:6px 10px 8px;color:var(--surface);border-radius:8px;background:var(--brand);box-shadow:6px 6px 0 var(--accent);font-family:Comic Sans MS,Trebuchet MS,ui-sans-serif,system-ui,sans-serif;font-size:23px;line-height:.92;letter-spacing:0}.app-header p{display:none;margin-top:8px;color:var(--muted);font-size:15px;font-weight:800}.simulation-console{position:absolute;left:0;bottom:0;display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%;margin-top:0}.simulation-action{display:inline-flex;align-items:center;justify-content:center;min-height:38px;gap:6px;color:var(--ink);border:2px solid var(--interaction);border-radius:8px;background:linear-gradient(180deg,#fffffffa,hsl(var(--brand-hue) 65% 97% / 98%));box-shadow:inset 0 -4px hsl(var(--brand-hue) 38% 82%),0 0 0 1px hsl(var(--brand-hue) 70% 92%),0 8px 18px #14234b14}.simulation-action{position:relative;padding:0 8px;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.simulation-action:hover{transform:translateY(-1px);border-color:var(--interaction-active);color:var(--interaction-active);background:linear-gradient(180deg,hsl(0 0% 100% / 98%),var(--interaction-soft));box-shadow:inset 0 -4px 0 var(--interaction),0 0 0 3px hsl(var(--brand-hue) 70% 90%),0 12px 24px #14234b24}.simulation-action.is-active{color:var(--surface);border-color:var(--interaction-active);background:radial-gradient(circle at 70% 20%,hsl(0 0% 100% / 12%),transparent 34%),linear-gradient(145deg,var(--interaction-hover),var(--interaction-active));box-shadow:inset 0 -4px #ffffff42,0 12px 24px #15214933}.simulation-action.catastrophe-action{border-color:var(--interaction);color:var(--danger-dark)}.simulation-action.catastrophe-action.is-active{color:var(--surface);border-color:var(--danger);background:var(--danger-dark);box-shadow:0 0 0 3px #e42f252e,0 10px 22px #7f1d1d2e}.simulation-action.is-icon-only{width:38px;padding:0}.simulation-action:not(.catastrophe-action):not(.is-icon-only){min-width:38px;padding:0 10px}.guide-panel{position:absolute;top:0;right:0;align-self:flex-start;width:156px;margin-left:0;padding:8px 30px 8px 10px;color:var(--ink);border:2px solid var(--brand);border-radius:8px;background:var(--surface);box-shadow:5px 5px 0 var(--accent)}.guide-panel strong{display:block;color:var(--brand);font-size:11px;font-weight:1000;text-transform:uppercase}.guide-panel ol{display:grid;gap:2px;margin:5px 0 0;padding-left:14px}.guide-panel li{color:var(--muted);font-size:10px;font-weight:800;line-height:1.15;white-space:nowrap}.guide-close{position:absolute;top:6px;right:6px;display:grid;width:22px;height:22px;place-items:center;color:var(--interaction-active);border:1px solid hsl(var(--brand-hue) 54% 76%);border-radius:6px;background:var(--interaction-soft);cursor:pointer}.control-row{grid-area:controls;display:grid;grid-template-columns:repeat(4,minmax(126px,1fr));gap:12px;min-height:0;margin:0}.weather-button{position:relative;display:grid;min-height:0;height:100%;padding:24px 16px 14px;place-items:center;gap:5px;color:var(--ink);border:2px solid var(--interaction);border-radius:8px;background:linear-gradient(180deg,#fffffffa,hsl(var(--brand-hue) 65% 97% / 98%));box-shadow:inset 0 -4px hsl(var(--brand-hue) 38% 82%),0 0 0 1px hsl(var(--brand-hue) 70% 92%),0 8px 18px #14234b14;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.weather-button:hover{transform:translateY(-1px);border-color:var(--interaction-active);background:linear-gradient(180deg,hsl(0 0% 100% / 98%),var(--interaction-soft));box-shadow:inset 0 -4px 0 var(--interaction),0 0 0 3px hsl(var(--brand-hue) 70% 90%),0 12px 24px #14234b24}.weather-button span{font-size:18px;font-weight:900}.weather-button b{color:var(--muted);font-size:10px;font-weight:900;line-height:1;text-transform:uppercase}.weather-button small{position:absolute;top:8px;right:8px;display:block;max-width:calc(100% - 16px);padding:3px 7px;color:var(--interaction-active);border:1px solid hsl(var(--brand-hue) 58% 70%);border-radius:999px;background:#ffffffe0;font-size:10px;font-weight:1000;font-variant-numeric:tabular-nums;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase}.weather-button svg{width:42px;height:42px;filter:drop-shadow(0 7px 6px rgb(15 33 67 / 12%))}.weather-button.is-active{color:var(--surface);border-color:var(--interaction-active);background:radial-gradient(circle at 70% 20%,hsl(0 0% 100% / 12%),transparent 34%),linear-gradient(145deg,var(--interaction-hover),var(--interaction-active));box-shadow:inset 0 -4px #ffffff42,0 12px 24px #15214933}.weather-button.is-active small{color:var(--interaction-active);border-color:#ffffffd1;background:#ffffffeb}.weather-button.is-active b{color:#ffffffd1}.weather-detail{position:absolute;right:8px;bottom:8px;display:block;width:auto;min-width:42px;padding:4px 7px;overflow:hidden;color:var(--interaction-active);border:1px solid hsl(var(--brand-hue) 58% 74%);border-radius:999px;background:#ffffffe0;font-size:10px;font-style:normal;font-weight:1000;line-height:1;text-align:center}.weather-detail:before,.weather-detail:after{display:none}.weather-button.is-active .weather-detail{color:var(--interaction-active);border-color:#ffffffd1;background:#ffffffeb}.dashboard-grid{grid-area:main;display:grid;grid-template-columns:minmax(0,1fr) 330px;min-height:0;gap:14px;align-items:stretch}.energy-world{position:relative;min-height:0;height:100%;overflow:hidden;border:1px solid var(--brand-line);border-radius:8px;background:linear-gradient(135deg,var(--surface) 0%,var(--brand-soft) 100%);background:radial-gradient(circle at 74% 16%,hsl(var(--brand-hue) 58% 38% / 12%),transparent 28%),radial-gradient(circle at 28% 78%,color-mix(in srgb,var(--energy) 12%,transparent),transparent 30%),linear-gradient(135deg,var(--surface) 0%,var(--brand-soft) 100%);box-shadow:0 18px 50px #0f21431a}.energy-world:after{position:absolute;z-index:5;inset:0;pointer-events:none;content:"";background:radial-gradient(circle at 50% 42%,transparent 0 30%,rgb(7 19 63 / 10%) 74%),linear-gradient(180deg,#07133f00,#07133f00);opacity:0;transition:opacity .34s ease}.energy-world.is-catastrophe:after{opacity:1;background:radial-gradient(circle at 50% 42%,transparent 0 26%,rgb(7 19 63 / 28%) 76%),linear-gradient(180deg,#7f1d1d1a,#07133f47)}.fossil-smog{position:absolute;z-index:6;inset:-14%;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 90% 82%,rgb(2 6 23 / 64%),transparent 28%),repeating-linear-gradient(104deg,rgb(2 6 23 / 26%) 0 34px,rgb(15 23 42 / 10%) 34px 74px,transparent 74px 124px),linear-gradient(118deg,#02061761,#0f172a1a 46%,#0206177a);filter:blur(11px);mix-blend-mode:multiply;transform:translate(-4%);transform-origin:90% 82%;transition:opacity 2.8s ease;animation:smogDrift 9s ease-in-out infinite}.energy-world.is-fossil-active .fossil-smog{opacity:var(--fossil-smog-opacity, .45)}.world-svg{position:absolute;inset:0;display:block;width:100%;height:100%}.scene-clock{position:absolute;z-index:8;top:18px;right:18px;display:inline-flex;min-height:42px;padding:0 12px;align-items:center;justify-content:center;gap:8px;color:var(--ink);border:1px solid hsl(var(--brand-hue) 54% 76%);border-radius:8px;background:#ffffffe5;box-shadow:0 10px 22px #14234b1f;pointer-events:none}.scene-clock strong{min-width:54px;color:var(--ink);font-size:20px;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:0}.island-cliff{fill:url(#cliff)}.island-grass{fill:url(#grass)}.road{fill:none;stroke:#ffffff73;stroke-linecap:round}.road-main{stroke-width:20}.road-solar{stroke-width:14}.cloud-shape{transition:opacity .18s ease}.cloud-white{fill:#fffffff5;stroke:#b2c3e161;stroke-width:2;filter:drop-shadow(0 16px 18px rgb(31 54 89 / 18%)) drop-shadow(0 0 18px rgb(255 255 255 / 72%))}.cloud-storm{fill:#303949;filter:drop-shadow(0 18px 24px rgb(10 20 38 / 32%))}.white-clouds{opacity:0;transform:translate(-360px);transform-box:view-box;transform-origin:center;pointer-events:none}.white-clouds.is-entering{opacity:1;animation:cloudEnter .85s cubic-bezier(.17,.84,.36,1) both}.white-clouds.is-active{opacity:1;transform:translate(0);animation:cloudFloat 6s ease-in-out infinite}.white-clouds.is-leaving{opacity:1;animation:cloudLeave .85s cubic-bezier(.7,0,.84,0) both}.cloud-ground-shadow{fill:#0f235024;filter:blur(5px)}.storm-system{opacity:0;pointer-events:none;transform:translate(-390px);transform-box:view-box;transform-origin:center}.storm-system.is-entering{opacity:1;animation:stormEnter .9s cubic-bezier(.17,.84,.36,1) both}.storm-system.is-active,.storm-system.is-rain-stopping{opacity:1;transform:translate(0)}.storm-system.is-leaving{opacity:1;animation:stormLeave .9s cubic-bezier(.7,0,.84,0) both}.storm-bolt{fill:#fff3a0;filter:drop-shadow(0 0 14px #ffffff);opacity:1;transition:opacity .24s ease}.storm-system.is-rain-stopping .storm-bolt,.storm-system.is-leaving .storm-bolt{opacity:0}.storm-rain line{stroke:#45a7ff;stroke-linecap:round;stroke-width:5;opacity:var(--rain-opacity, .72);transform-box:fill-box;animation:rainFall .76s linear infinite;animation-delay:var(--rain-delay, 0s)}.storm-rain{opacity:1;transition:opacity .52s ease}.storm-system.is-rain-stopping .storm-rain,.storm-system.is-leaving .storm-rain{opacity:0}.storm-extra-weather{opacity:0;transition:opacity .22s ease}.energy-world.is-cloudy.is-storm-visible .storm-extra-weather{opacity:.86;animation:stormExtraEnter .85s cubic-bezier(.17,.84,.36,1) both}.storm-extra-rain line{stroke:#45a7ff;stroke-linecap:round;stroke-width:4;opacity:var(--rain-opacity, .58);transform-box:fill-box;animation:rainFall .72s linear infinite;animation-delay:var(--rain-delay, 0s)}.storm-system.is-rain-stopping .storm-extra-weather,.storm-system.is-leaving .storm-extra-weather{opacity:0}.wind-ribbon-layer{opacity:0;pointer-events:none;transition:opacity .22s ease}.energy-world.is-windy .wind-ribbon-layer{opacity:var(--wind-ribbon-layer-opacity, 1)}.wind-ribbon{fill:none;stroke:#b8fbff;stroke-dasharray:60 28;stroke-linecap:round;stroke-linejoin:round;stroke-width:calc(var(--wind-ribbon-width, 5) * 1px);filter:drop-shadow(0 0 12px rgb(34 211 238 / 72%));opacity:var(--wind-ribbon-opacity, .7);animation:windRibbonDash 1.25s linear infinite,windRibbonDrift 4s ease-in-out infinite;animation-delay:var(--wind-ribbon-delay, 0s),var(--wind-ribbon-delay, 0s)}.wind-ribbon:nth-child(2n){stroke:#ffffffeb}.energy-world.is-wind-extreme .wind-ribbon{stroke:#fb923c;filter:drop-shadow(0 0 14px rgb(249 115 22 / 72%))}.energy-world.is-wind-extreme .wind-ribbon:nth-child(2n){stroke:#fee2e2}.river{fill:url(#water);stroke:#ffffff6b;stroke-width:8}.water-surface{transform-box:fill-box;transform-origin:center;transition:opacity .22s ease,transform .22s ease}.energy-world.is-warm-water .water-surface{transform:scale(var(--water-surface-scale, .92))}.energy-world.is-warm-water .river{fill:url(#water);opacity:.9}.water-ripple{fill:none;stroke:#ffffff7f;stroke-width:4}.water-temperature-flag{filter:drop-shadow(0 8px 10px rgb(8 47 73 / 18%))}.temperature-flag-head{transform-box:view-box;transform-origin:0 0;transform:translateY(0);will-change:transform}.water-temperature-flag.is-changing .temperature-flag-head{animation:temperatureFlagSwap .98s cubic-bezier(.17,.84,.36,1) both}.temperature-flag-shape{fill:#16a6d6;stroke:#ffffffe0;stroke-linejoin:round;stroke-width:4}.water-temperature-flag.is-hot .temperature-flag-shape{fill:#fb923c}.water-temperature-flag.is-critical .temperature-flag-shape{fill:#ef4444}.water-temperature-flag text{fill:#fff;font-size:18px;font-weight:900;paint-order:stroke;stroke:#07133f5c;stroke-width:3px;stroke-linejoin:round;text-anchor:middle}.water-temperature-flag.is-changing text{animation:temperatureFlagTextSwap .98s ease both}.scene-tree rect{fill:#6b4a2e}.scene-tree circle{fill:#267b42;filter:drop-shadow(0 4px 2px rgb(15 77 39 / 15%))}.object-shadow{fill:#15335424}.turbine-shadow{fill:#1533541f;filter:blur(1px)}.turbine-mast{fill:#f8fbff;stroke:#d5dfeb;stroke-width:2}.turbine-hub{fill:#fff;stroke:#d5dfeb;stroke-width:2}.turbine-rotor{fill:#fff;stroke:#d5dfeb;stroke-width:1.2}.energy-world.is-wind-extreme .turbine-rotor{fill:#fff7ed;stroke:#ef4444}.scene-turbine.is-locked .turbine-hub{fill:#fee2e2;stroke:#ef4444;stroke-width:3}.scene-turbine.is-locked .turbine-rotor{filter:drop-shadow(0 0 8px rgb(239 68 68 / 26%))}.scene-solar{opacity:calc(.42 + var(--solar-intensity, .5) * .58);filter:drop-shadow(0 12px 12px rgb(9 60 120 / 16%))}.scene-solar rect{fill:var(--brand-strong);stroke:var(--solar-soft);stroke-width:2}.scene-solar path{stroke:#fef08aad;stroke:color-mix(in srgb,var(--energy-soft) 68%,transparent);stroke-width:1}.energy-world:not(.is-cloudy):not(.is-stormy) .scene-solar{filter:drop-shadow(0 0 16px rgb(217 197 27 / 28%));filter:drop-shadow(0 0 16px color-mix(in srgb,var(--energy) 28%,transparent))}.energy-world.is-catastrophe .scene-solar{opacity:.24;filter:grayscale(.8)}.tower-steam{opacity:var(--steam-opacity, .8);transform-box:fill-box;transform-origin:center;animation:steamFloat var(--steam-speed, 4s) ease-in-out infinite}.steam-cloud{fill:#ffffffc2;filter:drop-shadow(0 10px 10px rgb(31 54 89 / 10%))}.steam-left{opacity:.52;animation:steamPuff 4.8s ease-in-out infinite}.steam-right{opacity:.6;animation:steamPuff 5.4s ease-in-out infinite reverse}.scene-nuclear .cooling-tower{position:static;fill:url(#tower);stroke:#c3c9d0;stroke-width:2;clip-path:none}.atom-mark{fill:none;stroke:var(--brand);stroke-width:5}.atom-dot{fill:var(--brand)}.plant-building{fill:#f8fbff;stroke:#cad4e2;stroke-width:3}.chimney{fill:#e6ebf2}.chimney-top{fill:#ef4444}.scene-thermal{opacity:.82;transition:opacity .26s ease,filter .26s ease}.scene-thermal.is-active{opacity:1;filter:drop-shadow(0 14px 16px rgb(17 24 39 / 22%))}.thermal-pad{fill:#d7dde5;stroke:#ffffffb8;stroke-width:3}.thermal-pad-edge{fill:#9aa4b2;opacity:.72}.thermal-building{fill:#eef2f7;stroke:#8f9aaa;stroke-width:3}.thermal-roof{fill:#475569;stroke:#334155;stroke-linejoin:round;stroke-width:3}.thermal-door{fill:#64748b}.thermal-windows rect{fill:#cbd5e1;transition:fill .24s ease,filter .24s ease}.scene-thermal.is-active .thermal-windows rect{fill:#fbbf24;filter:drop-shadow(0 0 6px rgb(251 191 36 / 72%))}.thermal-chimney{fill:#7f5539;stroke:#513321;stroke-width:3}.thermal-chimney-top{fill:#3f2a1d}.thermal-smoke{opacity:var(--thermal-smoke-opacity, 0);transition:opacity 1.4s ease}.thermal-smoke-puff{fill:#0f172a9e;transform-box:fill-box;transform-origin:center;animation:thermalSmokePuff 4.2s ease-in-out infinite}.thermal-smoke-puff.smoke-b{animation-delay:-1.2s}.thermal-smoke-puff.smoke-c{animation-delay:-2.4s}.thermal-label{fill:#475569;font-size:14px;font-weight:1000;paint-order:stroke;stroke:#ffffffdb;stroke-linejoin:round;stroke-width:4px;text-anchor:middle}.scene-thermal.is-active .thermal-label{fill:#823c0d}.scene-fuel-truck{opacity:0;pointer-events:none;transform:translate(360px);transform-box:view-box;transform-origin:center;filter:drop-shadow(0 10px 10px rgb(17 24 39 / 20%))}.scene-fuel-truck.is-delivering{animation:fuelTruckEnter var(--fuel-truck-delivery-duration, 2.6s) cubic-bezier(.17,.84,.36,1) both}.scene-fuel-truck.is-departing{animation:fuelTruckLeave var(--fuel-truck-departure-duration, 2.2s) cubic-bezier(.7,0,.84,0) both}.fuel-truck-body{transform-box:fill-box;transform-origin:center}.fuel-truck-shadow{fill:#0f172a2e}.fuel-truck-chassis{fill:none;stroke:#334155;stroke-linecap:round;stroke-width:7}.fuel-truck-tank{fill:#fef3c7;stroke:#9e4810;stroke-width:3}.fuel-truck-tank-shine{fill:none;stroke:#ffffffc2;stroke-linecap:round;stroke-width:4}.fuel-truck-cab{fill:#9e4810;stroke:#fff;stroke-linejoin:round;stroke-width:3}.fuel-truck-hood{fill:#823c0d;stroke:#fff;stroke-linejoin:round;stroke-width:3}.fuel-truck-window{fill:#c7f0ff}.fuel-truck-grille{fill:#334155}.fuel-truck-pipe{fill:#4b5563}.fuel-truck-cap{fill:#cc5e14;stroke:#fff;stroke-width:3}.fuel-truck-wheel{fill:#111827}.fuel-truck-wheel-core{fill:#e5e7eb}.fuel-truck-hose{fill:none;stroke:#111827;stroke-linecap:round;stroke-width:4}.fuel-truck-label{fill:#7c2d12;font-size:15px;font-weight:1000;paint-order:stroke;stroke:#ffffffdb;stroke-linejoin:round;stroke-width:3px;text-anchor:middle}.fuel-truck-drop{fill:#f6741e;opacity:.92}.energy-world.is-fossil-delivering .fuel-truck-wheel,.energy-world.is-fossil-truck-departing .fuel-truck-wheel,.energy-world.is-fossil-delivering .fuel-truck-wheel-core,.energy-world.is-fossil-truck-departing .fuel-truck-wheel-core{transform-box:fill-box;transform-origin:center;animation:fuelWheelSpin .34s linear infinite}.scene-battery .battery-shell{fill:#ffffffeb;stroke:#ffffffb8;stroke-width:5;filter:drop-shadow(0 16px 18px rgb(21 33 73 / 22%))}.scene-battery .battery-fill-bg{fill:hsl(var(--brand-hue) 42% 91%)}.scene-battery .battery-fill{fill:var(--brand-mid);transition:fill .24s ease,height .24s ease,y .24s ease}.scene-battery.is-low .battery-fill{fill:var(--solar)}.scene-battery.is-critical .battery-fill{fill:var(--danger)}.scene-battery .battery-cap{fill:var(--brand-line)}.scene-battery .battery-bolt{fill:#fff;filter:drop-shadow(0 4px 5px rgb(7 19 63 / 22%))}.scene-battery .battery-value{fill:var(--brand);font-size:17px;font-weight:900;paint-order:stroke;stroke:#ffffffdb;stroke-linejoin:round;stroke-width:4px;text-anchor:middle}.energy-world.is-catastrophe .scene-battery .battery-shell{fill:#475569;filter:drop-shadow(0 12px 18px rgb(15 23 42 / 24%))}.energy-world.is-catastrophe .scene-battery .battery-fill-bg{fill:#94a3b8}.energy-world.is-catastrophe .scene-battery .battery-fill,.energy-world.is-catastrophe .scene-battery .battery-bolt{fill:#ef4444}.energy-world.is-catastrophe .scene-battery .battery-value{fill:#fee2e2;stroke:#450a0ab8}.scene-city rect{fill:#3f7fba;stroke:#b7d2ec;stroke-width:2;filter:drop-shadow(0 12px 12px rgb(21 46 80 / 22%))}.scene-city line{stroke:#ffeaa6;stroke-linecap:round;stroke-width:2}.puddle-layer{opacity:0;pointer-events:none;transition:opacity .42s ease}.energy-world.is-storm-visible .puddle-layer{opacity:.72}.energy-world.is-cloudy.is-storm-visible .puddle-layer{opacity:.88}.energy-world.is-storm-leaving .puddle-layer{opacity:.38;transition-duration:.9s}.puddle{fill:#34d3eb7a;stroke:#ffffff6b;stroke-width:2;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 4px 6px rgb(8 89 128 / 16%))}.energy-world.is-storm-visible .puddle{animation:puddleGrow 2.4s ease-in-out infinite;animation-delay:var(--puddle-delay, 0s)}.scene-flow{fill:none;stroke-linecap:round;stroke-width:10;stroke-dasharray:18 14;animation:flowSvg 1.25s linear infinite}.flow-wind{opacity:var(--wind-flow-opacity, .6);stroke:var(--brand-mid)}.flow-solar{opacity:var(--solar-flow-opacity, .6);stroke:var(--solar)}.flow-nuclear{opacity:var(--nuclear-flow-opacity, .8);stroke:var(--brand)}.flow-fossil{opacity:var(--fossil-flow-opacity, 0);stroke:#823c0d;transition:opacity .7s ease}.energy-world.is-catastrophe .scene-flow{opacity:.82;stroke:#ef4444;stroke-dasharray:8 16;animation:none}.energy-world.is-catastrophe .scene-flow.flow-fossil{opacity:var(--fossil-flow-opacity, 0);stroke:#662f0a;stroke-dasharray:18 14;animation:flowSvg 1.25s linear infinite}.flow-city{opacity:.85;stroke:var(--brand-strong)}.lab-map{position:absolute;inset:0;padding:28px 34px 28px 232px}.lab-map:before{position:absolute;inset:34px 42px 32px 220px;content:"";border:1px solid rgb(15 35 80 / 8%);border-radius:8px;background:linear-gradient(90deg,rgb(15 35 80 / 5%) 1px,transparent 1px),linear-gradient(180deg,rgb(15 35 80 / 5%) 1px,transparent 1px),#ffffff61;background-size:42px 42px}.lab-map:after{position:absolute;right:58px;bottom:38px;left:252px;height:28px;content:"";border-radius:50%;background:#152e501a;filter:blur(10px)}.energy-node{position:absolute;z-index:4;display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;min-width:148px;padding:12px 14px;color:#07133f;border:1px solid rgb(255 255 255 / 80%);border-radius:8px;background:linear-gradient(180deg,#ffffffe5,#f7fbffc7);box-shadow:0 16px 32px #14234b21;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.energy-node.is-featured{grid-template-columns:58px 1fr;min-width:174px;padding:16px;background:radial-gradient(circle at 82% 12%,rgb(255 255 255 / 35%),transparent 36%),linear-gradient(145deg,#21c86d,#0c9150);color:#fff;box-shadow:0 22px 42px #126f4042}.node-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:50%;background:#ffffffc7}.energy-node.is-featured .node-icon{width:58px;height:58px;color:var(--brand)}.energy-node span{display:block;color:#07133fb3;font-size:13px;font-weight:900}.energy-node strong{display:block;margin-top:2px;font-size:26px;line-height:1}.energy-node.is-featured span{color:#ffffffd1}.tone-cyan .node-icon{color:var(--brand-mid)}.tone-amber .node-icon{color:var(--accent)}.tone-violet .node-icon{color:var(--brand)}.tone-blue .node-icon{color:var(--brand-mid)}.tone-red .node-icon{color:#ef4444}.tone-navy .node-icon{color:var(--brand)}.node-wind{top:62px;left:260px}.node-solar{top:214px;left:300px}.node-nuclear{top:82px;right:72px}.node-water{right:94px;bottom:58px}.node-battery{left:50%;top:50%;transform:translate(-34%,-38%)}.node-city{right:260px;bottom:46px}.flow-path{position:absolute;z-index:2;height:8px;border-radius:999px;background-size:28px 8px;filter:drop-shadow(0 0 9px currentColor);animation:flow 1.2s linear infinite}.flow-path-wind{top:148px;left:380px;width:230px;color:var(--brand-mid);background-image:repeating-linear-gradient(90deg,var(--brand-mid) 0 16px,transparent 16px 28px);opacity:var(--wind-flow-opacity, .6);transform:rotate(18deg)}.flow-path-solar{top:246px;left:418px;width:170px;color:var(--solar);background-image:repeating-linear-gradient(90deg,var(--solar) 0 16px,transparent 16px 28px);opacity:var(--solar-flow-opacity, .6);transform:rotate(-22deg)}.flow-path-nuclear{top:168px;right:230px;width:200px;color:var(--brand);background-image:repeating-linear-gradient(90deg,var(--brand) 0 16px,transparent 16px 28px);opacity:var(--nuclear-flow-opacity, .8);transform:rotate(152deg)}.flow-path-city{right:320px;bottom:112px;width:170px;color:var(--brand-strong);background-image:repeating-linear-gradient(90deg,var(--brand-strong) 0 16px,transparent 16px 28px);opacity:.78;transform:rotate(22deg)}.weather-badge{position:absolute;z-index:5;display:grid;width:78px;height:78px;place-items:center;border:1px solid rgb(255 255 255 / 70%);border-radius:8px;background:#ffffffc7;box-shadow:0 16px 30px #14234b24;opacity:0;transform:translateY(-8px);transition:opacity .16s ease,transform .16s ease}.cloud-badge{top:44px;left:50%;color:#64748b}.storm-badge{top:38px;left:50%;color:#fbbf24;background:#10254c}.wind-badge{top:116px;left:390px;color:#0ea5c6}.energy-world.is-cloudy .cloud-badge,.energy-world.is-stormy .storm-badge,.energy-world.is-windy .wind-badge,.energy-world.is-stormy .wind-badge{opacity:1;transform:translateY(0)}.world-status{position:absolute;z-index:9;top:18px;left:18px;display:grid;grid-template-columns:246px 260px;gap:8px;width:max-content;max-width:calc(100% - 36px)}.status-info-column,.status-control-card{min-width:0;padding:10px;border:1px solid var(--brand-line);border-radius:8px;background:#fffffff0;box-shadow:0 12px 30px #14234b1f}.world-status span{display:block;color:var(--muted);font-size:13px;font-weight:800}.world-status strong{color:var(--ink);font-size:28px;line-height:1.05}.status-info-column{grid-column:1;display:grid;gap:8px}.status-control-card{grid-column:2;display:grid;gap:8px;align-self:start}.status-main{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;min-width:0}.status-copy small{display:block;margin-top:2px;color:var(--muted);font-size:11px;font-weight:800}.status-icon{display:grid;width:44px;height:44px;place-items:center;color:#fff;border-radius:50%;background:var(--brand)}.mini-bars{grid-column:1 / -1;display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.mini-bars i{height:22px;border-radius:3px;background:var(--brand-line)}.demand-bars i.is-filled:nth-child(-n+3){background:var(--brand-mid)}.demand-bars i.is-filled:nth-child(n+4):nth-child(-n+6){background:var(--brand-mid)}.demand-bars i.is-filled:nth-child(7){background:var(--accent)}.demand-bars i.is-filled:nth-child(n+8){background:var(--accent)}.coverage-line,.deficit-line{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between}.coverage-line strong,.deficit-line strong{font-size:18px}.coverage-bars i.is-filled{background:var(--brand)}.energy-world.is-catastrophe .coverage-bars i.is-filled{background:#ef4444}.deficit-line{padding:6px 8px;border-radius:6px;background:#ef44441f}.deficit-line span,.deficit-line strong{color:#991b1b}.battery-line{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between}.battery-line strong{font-size:18px}.battery-bars i.is-filled{background:var(--brand-mid)}.battery-bars.is-low i.is-filled{background:var(--solar)}.battery-bars.is-critical i.is-filled{background:var(--danger)}.drain-line,.load-summary{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding:5px 7px;border-radius:6px;background:var(--brand-soft)}.drain-line strong,.load-summary strong{color:var(--interaction-active);font-size:15px;font-variant-numeric:tabular-nums;line-height:1}.drain-line.is-draining{background:#ef44441f}.drain-line.is-draining span,.drain-line.is-draining strong{color:#991b1b}.drain-line.is-charging{background:#22c55e21}.drain-line.is-charging span,.drain-line.is-charging strong{color:#166534}.drain-line.is-stable{background:var(--brand-soft)}.load-sectors{grid-column:1 / -1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.load-sector{position:relative;display:grid;min-width:0;min-height:54px;padding:7px 3px;overflow:hidden;place-items:center;color:var(--interaction-active);border:2px solid var(--interaction);border-radius:8px;background:linear-gradient(180deg,#fffffffa,hsl(var(--brand-hue) 65% 97% / 98%));box-shadow:inset 0 -4px hsl(var(--brand-hue) 38% 82%),0 0 0 1px hsl(var(--brand-hue) 70% 92%),0 8px 18px #14234b14;cursor:pointer;transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.load-sector:before{position:absolute;right:0;bottom:0;left:0;height:var(--load-fill, 0%);content:"";background:linear-gradient(180deg,var(--interaction-soft),hsl(var(--brand-hue) 64% 85%));transition:height .18s ease}.load-sector:hover{transform:translateY(-1px);border-color:var(--interaction-active);background:linear-gradient(180deg,hsl(0 0% 100% / 98%),var(--interaction-soft));box-shadow:inset 0 -4px 0 var(--interaction),0 0 0 3px hsl(var(--brand-hue) 70% 90%),0 12px 24px #14234b24}.load-sector span{position:relative;z-index:1;max-width:100%;overflow:hidden;color:inherit;font-size:10px;font-weight:1000;line-height:1;text-overflow:ellipsis;white-space:nowrap}.load-sector small{position:relative;z-index:1;margin-top:3px;color:inherit;font-size:8.5px;font-weight:1000;line-height:1}.load-sector.is-off{color:hsl(var(--brand-hue) 16% 46%);border-color:hsl(var(--brand-hue) 35% 68%);background:linear-gradient(180deg,#fffffff0,hsl(var(--brand-hue) 18% 91% / 94%));box-shadow:inset 0 -4px hsl(var(--brand-hue) 18% 78%),0 0 0 1px hsl(var(--brand-hue) 30% 88%),0 8px 18px #14234b0f}.load-sector.is-off small{color:#991b1b}.load-sector.is-locked,.load-sector:disabled{cursor:not-allowed;opacity:.58;transform:none}.load-sector.is-locked:hover,.load-sector:disabled:hover{border-color:hsl(var(--brand-hue) 24% 74%);background:linear-gradient(180deg,#ffffffeb,hsl(var(--brand-hue) 18% 94% / 86%));box-shadow:inset 0 -4px hsl(var(--brand-hue) 18% 78%),0 0 0 1px hsl(var(--brand-hue) 30% 88%),0 8px 18px #14234b0f}.load-sector.is-locked small{color:var(--muted)}.status-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;align-self:start}.status-action{display:grid;min-height:52px;padding:6px 8px;place-items:center;color:var(--interaction-active);border:2px solid var(--interaction);border-radius:8px;background:linear-gradient(180deg,#fffffffa,hsl(var(--brand-hue) 65% 97% / 98%));box-shadow:inset 0 -4px hsl(var(--brand-hue) 38% 82%),0 0 0 1px hsl(var(--brand-hue) 70% 92%),0 8px 18px #14234b14;cursor:pointer;transition:transform .14s ease,border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease}.status-action:hover{transform:translateY(-1px);border-color:var(--interaction-active);background:linear-gradient(180deg,hsl(0 0% 100% / 98%),var(--interaction-soft));box-shadow:inset 0 -4px 0 var(--interaction),0 0 0 3px hsl(var(--brand-hue) 70% 90%),0 12px 24px #14234b24}.status-action.is-active{color:#fff;border-color:var(--interaction-active);background:radial-gradient(circle at 70% 20%,hsl(0 0% 100% / 12%),transparent 34%),linear-gradient(145deg,var(--interaction-hover),var(--interaction-active));box-shadow:inset 0 -4px #ffffff42,0 12px 24px #15214933}.status-action span,.status-action strong,.status-action small{color:inherit;line-height:1;text-align:center}.status-action span{font-size:10px;font-weight:900;text-transform:uppercase}.status-action strong{margin-top:3px;font-size:12px;font-weight:1000}.status-action small{margin-top:3px;max-width:100%;overflow:hidden;font-size:9px;font-weight:900;opacity:.78;text-overflow:ellipsis;white-space:nowrap}.fossil-action{border-color:var(--interaction);color:#8b400e}.fossil-action:hover{border-color:var(--interaction-active);background:linear-gradient(180deg,#fffffffa,#fde4d3)}.fossil-action.is-delivering{border-color:var(--interaction-active);background:linear-gradient(180deg,#fffffffa,#fde4d3);box-shadow:inset 0 -4px #ed8845,0 0 0 3px #fb923c2e,0 12px 24px #14234b24}.fossil-action.is-delivering strong{color:#823c0d}.fossil-action.is-active{border-color:#1f2937;background:linear-gradient(145deg,#3f2a1d,#111827);box-shadow:0 0 0 3px #11182729}.status-metrics{grid-column:1 / -1;display:flex;gap:6px;align-items:center;justify-content:space-between}.status-metrics span{padding:4px 6px;color:var(--brand);border-radius:5px;background:var(--brand-soft);font-size:11px}.blackout-alert{position:absolute;z-index:10;top:22px;left:50%;display:grid;min-width:220px;padding:10px 16px;color:#fff;border:1px solid rgb(248 113 113 / 72%);border-radius:8px;background:linear-gradient(145deg,#991b1b,#450a0a);box-shadow:0 18px 36px #7f1d1d47;text-align:center;transform:translate(-50%)}.blackout-alert strong{font-size:24px;line-height:1;text-transform:uppercase}.blackout-alert span{margin-top:4px;color:#fee2e2;font-size:13px;font-weight:800}.island{position:absolute;right:3%;bottom:7%;left:6%;height:68%;border-radius:42% 46% 22% 26%;background:radial-gradient(circle at 24% 25%,#cce978 0 7%,transparent 8%),radial-gradient(circle at 54% 42%,#d6ee89 0 10%,transparent 11%),linear-gradient(135deg,#89cf5f,#68b957 55%,#4b9f53);box-shadow:inset 0 -20px #5f46282e,0 28px #8a6747,0 36px 30px #24304b2e}.water-zone{position:absolute;right:-5%;top:10%;width:34%;height:58%;border-radius:48% 52% 42% 46%;background:radial-gradient(circle at 70% 60%,rgb(255 255 255 / 32%) 0 4%,transparent 5%),linear-gradient(145deg,#3bb6e7,#1678bf);box-shadow:inset 0 0 0 8px #ffffff38}.energy-world.is-warm-water .water-zone{background:radial-gradient(circle at 70% 60%,rgb(255 255 255 / 32%) 0 4%,transparent 5%),linear-gradient(145deg,#f59e0b,#ef4444)}.water-temp{position:absolute;right:18%;bottom:22%;display:grid;width:76px;height:76px;place-items:center;color:#fff;border:4px solid rgb(255 255 255 / 65%);border-radius:50%;background:#14b8d6;font-size:20px;font-weight:900;box-shadow:0 12px 28px #08598047}.wind-farm{position:absolute;top:20%;left:6%;display:flex;gap:42px;align-items:end}.turbine{position:relative;width:58px;height:132px}.turbine-tower{position:absolute;bottom:0;left:26px;width:8px;height:94px;border-radius:99px 99px 0 0;background:linear-gradient(90deg,#dce6ee,#fff);box-shadow:0 8px 14px #0000001f}.turbine-blades{position:absolute;z-index:2;top:16px;left:15px;width:30px;height:30px;border-radius:50%;background:#f8fbff;animation:spin var(--wind-speed, 5s) linear infinite}.turbine-blades span{position:absolute;top:13px;left:14px;width:54px;height:5px;border-radius:99px;transform-origin:0 50%;background:#f8fbff;box-shadow:0 0 0 1px #d4ddea}.turbine-blades span:nth-child(2){transform:rotate(120deg)}.turbine-blades span:nth-child(3){transform:rotate(240deg)}.solar-field{position:absolute;top:44%;left:32%;display:grid;grid-template-columns:repeat(7,32px);gap:7px;transform:rotate(-7deg) skew(-12deg);opacity:calc(.35 + var(--solar-intensity, .5) * .65)}.solar-field i{width:32px;height:22px;border:2px solid var(--solar-soft);border-radius:3px;background:linear-gradient(90deg,rgb(255 255 255 / 20%) 1px,transparent 1px),linear-gradient(180deg,rgb(255 255 255 / 20%) 1px,transparent 1px),var(--brand-strong);background-size:8px 8px;box-shadow:0 10px 16px #0d3f822e}.nuclear-plant{position:absolute;top:12%;right:22%;width:172px;height:196px}.cooling-tower{position:absolute;right:34px;bottom:34px;width:98px;height:146px;border-radius:34% 34% 12% 12%;background:linear-gradient(90deg,#d4d2cb,#fff 48%,#c4c0b7);clip-path:polygon(24% 0,76% 0,96% 100%,4% 100%);box-shadow:0 16px 22px #2d325029}.cooling-tower span{position:absolute;top:-22px;left:12px;width:74px;height:44px;border-radius:50%;background:#ffffffc7;box-shadow:-28px 8px #ffffff94,26px 6px #ffffff9e}.reactor{position:absolute;right:14px;bottom:8px;width:144px;height:66px;border:3px solid #cad2df;border-radius:8px;background:linear-gradient(180deg,#fff,#e7edf6)}.battery-hub{position:absolute;bottom:10%;left:48%;width:82px;height:98px;border:4px solid rgb(255 255 255 / 70%);border-radius:8px;background:linear-gradient(180deg,#53e587,#12a65d);box-shadow:0 18px 28px #176f454d}.battery-core{display:grid;width:100%;height:100%;place-items:center;color:#fff;font-size:38px}.city{position:absolute;right:33%;bottom:8%;display:flex;gap:5px;align-items:end}.city i{width:26px;border:2px solid #b9c9df;border-radius:5px 5px 0 0;background:linear-gradient(90deg,transparent 40%,rgb(255 255 255 / 40%) 40% 60%,transparent 60%),linear-gradient(180deg,#6aa5d8,#2c5c93)}.city i:nth-child(1){height:62px}.city i:nth-child(2){height:92px}.city i:nth-child(3){height:74px}.city i:nth-child(4){height:112px}.city i:nth-child(5){height:86px}.city i:nth-child(6){height:58px}.energy-flow{position:absolute;height:8px;border-radius:99px;background-size:24px 8px;animation:flow 1.4s linear infinite}.flow-wind{bottom:24%;left:14%;width:38%;background-image:repeating-linear-gradient(90deg,var(--brand-mid) 0 14px,transparent 14px 24px);transform:rotate(14deg);opacity:var(--wind-flow-opacity, .6)}.flow-solar{bottom:34%;left:44%;width:18%;background-image:repeating-linear-gradient(90deg,var(--solar) 0 14px,transparent 14px 24px);transform:rotate(78deg);opacity:var(--solar-flow-opacity, .6)}.flow-nuclear{right:35%;bottom:28%;width:30%;background-image:repeating-linear-gradient(90deg,var(--brand) 0 14px,transparent 14px 24px);transform:rotate(-8deg);opacity:var(--nuclear-flow-opacity, .8)}.wind-stream{position:absolute;z-index:6;left:12%;width:260px;height:4px;border-radius:99px;background:#8af2ff;box-shadow:0 0 14px #14b8d68c;opacity:0;transition:opacity .18s ease}.wind-stream:after{position:absolute;right:-8px;top:-6px;width:16px;height:16px;content:"";border-top:4px solid #8af2ff;border-right:4px solid #8af2ff;transform:rotate(45deg)}.energy-world.is-windy .wind-stream,.energy-world.is-stormy .wind-stream{opacity:var(--wind-flow-opacity, .8)}.wind-stream-a{top:28%;transform:rotate(8deg)}.wind-stream-b{top:38%;left:15%;transform:rotate(-8deg)}.wind-stream-c{top:47%;left:17%;transform:rotate(6deg)}.cloud{position:absolute;z-index:5;width:170px;height:60px;border-radius:99px;background:#fff;box-shadow:38px -16px 0 16px #ffffffe0,82px -8px 0 20px #ffffffc2}.cloud-left{top:14%;left:24%;opacity:0;transition:opacity .18s ease}.energy-world.is-cloudy .cloud-left{opacity:.8}.cloud-storm{top:18%;left:38%;width:210px;background:#344052;box-shadow:46px -18px 0 20px #515a6b,106px -10px 0 26px #273143;opacity:0;transition:opacity .18s ease}.energy-world.is-stormy .cloud-storm{opacity:1}.cloud-storm span{position:absolute;left:76px;top:54px;width:22px;height:92px;background:#fff;clip-path:polygon(38% 0,100% 0,58% 38%,88% 38%,18% 100%,42% 48%,0 48%);filter:drop-shadow(0 0 14px #ffffff)}.rain-layer{position:absolute;z-index:4;top:31%;left:40%;width:220px;height:156px;opacity:0;background-image:repeating-linear-gradient(110deg,transparent 0 12px,rgb(59 130 246 / 65%) 12px 14px,transparent 14px 24px);transition:opacity .18s ease}.energy-world.is-stormy .rain-layer{opacity:.65}.metrics-column{display:grid;grid-template-rows:repeat(3,minmax(0,1fr));min-height:0;gap:10px}.energy-gauge{display:grid;grid-template-columns:1fr 132px;align-items:center;min-height:0;height:100%;padding:12px 16px;border:1px solid var(--brand-line);border-radius:8px;background:linear-gradient(180deg,var(--surface),var(--brand-soft));background:radial-gradient(circle at 88% 18%,color-mix(in srgb,var(--gauge-color) 16%,transparent),transparent 34%),linear-gradient(180deg,var(--surface),var(--brand-soft));box-shadow:0 10px 24px #14234b17}.gauge-heading{display:grid;gap:8px;color:var(--gauge-color)}.gauge-heading h2{color:var(--ink);font-size:20px}.gauge-heading p{width:fit-content;margin:-2px 0 0;padding:4px 7px;color:var(--gauge-color);border:1px solid var(--brand-line);border:1px solid color-mix(in srgb,var(--gauge-color) 34%,white);border-radius:6px;background:#ffffffb8;font-size:12px;font-weight:1000;line-height:1}.gauge-meter{position:relative;display:grid;width:132px;height:88px;place-items:end center;overflow:hidden;border-radius:126px 126px 14px 14px;background:transparent;box-shadow:0 10px 20px #14234b1f;box-shadow:0 10px 20px color-mix(in srgb,var(--gauge-color) 22%,transparent)}.gauge-meter:after{display:none;position:absolute;right:17px;bottom:-58px;left:17px;height:116px;content:"";border-radius:96px 96px 0 0;background:linear-gradient(180deg,#fff,#f7faff)}.gauge-svg{position:absolute;inset:0;z-index:1;width:100%;height:100%}.gauge-arc{fill:none;stroke-linecap:round;stroke-width:16}.gauge-arc-bg{stroke:var(--brand-line)}.gauge-arc-value{stroke:var(--gauge-color);transition:stroke-dasharray .22s ease}.gauge-svg-needle{opacity:.58;transition:transform .22s ease}.gauge-svg-needle line{stroke:var(--brand);stroke-linecap:round;stroke-width:3}.gauge-svg-needle circle{fill:var(--brand);stroke:#ffffffd1;stroke-width:3}.gauge-needle{position:absolute;z-index:2;bottom:0;left:50%;width:5px;height:76px;border-radius:999px;background:#10254c;box-shadow:0 0 0 2px #fffc;transform:translate(-50%) rotate(var(--needle-rotation));transform-origin:50% 100%;transition:transform .22s ease}.gauge-needle:after{position:absolute;bottom:-7px;left:50%;width:15px;height:15px;content:"";border-radius:50%;background:#10254c;transform:translate(-50%)}.gauge-meter span{position:relative;z-index:4;margin-bottom:9px;min-width:70px;padding:4px 8px;color:var(--brand);border:1px solid hsl(var(--brand-hue) 48% 86%);border-radius:8px;background:#fffffff0;box-shadow:0 8px 16px #14234b1f;font-size:27px;font-weight:900;line-height:1;text-align:center}.bottom-row{grid-area:bottom;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;min-height:0;margin-top:0}.timeline-panel,.credits-card{min-height:0;height:100%;border:1px solid var(--brand-line);border-radius:8px;background:var(--surface);box-shadow:0 10px 24px #14234b17}.timeline-panel{display:grid;grid-template-columns:86px 1fr;gap:10px;align-items:center;padding:8px 14px}.timeline-title{display:flex;align-items:center;gap:8px;font-size:18px}.clock-icon{width:30px;height:30px;border:3px solid var(--interaction-active);border-radius:50%}.timeline-track{display:grid;grid-template-columns:repeat(24,minmax(10px,1fr));gap:4px;align-items:center}.timeline-slot{position:relative;height:22px;padding:0;border:1px solid hsl(0 0% 100% / 66%);border-radius:5px;background:linear-gradient(180deg,rgb(255 255 255 / 22%),transparent),var(--slot-color);cursor:pointer;box-shadow:inset 0 -2px #0000001a;transition:transform .14s ease,box-shadow .14s ease}.timeline-slot:hover{transform:translateY(-1px);box-shadow:inset 0 -2px #0000001a,0 6px 12px #0f214324}.timeline-slot.is-selected:after{position:absolute;left:50%;bottom:29px;width:14px;height:14px;content:"";border-radius:50% 50% 50% 0;background:var(--interaction-active);box-shadow:0 6px 12px #10254c3d;transform:translate(-50%) rotate(-45deg)}.timeline-labels{grid-column:2;display:grid;grid-template-columns:repeat(7,1fr);margin-top:-10px;color:var(--muted);font-size:11px}.credits-card{display:grid;align-content:center;gap:5px;min-width:0;padding:9px 12px;overflow:hidden;border-color:var(--brand-line);background:var(--brand)}.credits-card__header{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:8px}.credits-card__header span{min-width:0;overflow:hidden;color:var(--accent);font-size:10.5px;font-weight:1000;line-height:1.05;text-align:right;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.credits-card__header strong{flex:1 1 auto;min-width:0;overflow:hidden;color:var(--surface);font-size:13px;line-height:1;text-overflow:ellipsis;white-space:nowrap}.credits-card p{min-width:0;margin:0;overflow:hidden;font-weight:800;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.credits-card p{color:#ffffffd1;font-size:10.5px}.credits-card__source{display:inline-flex;width:max-content;max-width:100%;min-width:0;align-items:center;justify-content:center;padding:3px 7px;overflow:hidden;border:1px solid hsl(var(--accent-hue) 89% 70% / 52%);border-radius:6px;background:#ffffff17;color:var(--accent);font-size:10px;font-weight:1000;line-height:1;text-decoration:none;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.credits-card__source:hover{border-color:var(--accent);background:#ffffff29}@keyframes spin{to{transform:rotate(360deg)}}@keyframes cloudFloat{0%,to{transform:translate(-8px) translateY(0)}50%{transform:translate(12px) translateY(-6px)}}@keyframes cloudEnter{0%{opacity:0;transform:translate(-380px) translateY(4px) scale(.96)}72%{opacity:1;transform:translate(18px) translateY(0) scale(1)}to{opacity:1;transform:translate(0) translateY(0) scale(1)}}@keyframes cloudLeave{0%{opacity:1;transform:translate(0) translateY(0) scale(1)}to{opacity:0;transform:translate(390px) translateY(-6px) scale(.98)}}@keyframes stormEnter{0%{opacity:0;transform:translate(-430px) translateY(-16px) scale(.96)}72%{opacity:1;transform:translate(18px) translateY(0) scale(1)}to{opacity:1;transform:translate(0) translateY(0) scale(1)}}@keyframes stormLeave{0%{opacity:1;transform:translate(0) translateY(0) scale(1)}to{opacity:0;transform:translate(430px) translateY(-18px) scale(.98)}}@keyframes stormExtraEnter{0%{opacity:0;transform:translate(-360px) translateY(4px) scale(.96)}72%{opacity:.86;transform:translate(16px) translateY(0) scale(1)}to{opacity:.86;transform:translate(0) translateY(0) scale(1)}}@keyframes rainFall{0%{opacity:0;transform:translateY(-34px)}18%{opacity:var(--rain-opacity, .72)}to{opacity:0;transform:translate(calc(var(--rain-drift, 18px) * -1),64px)}}@keyframes puddleGrow{0%,to{transform:scale(.92)}50%{transform:scale(1.08)}}@keyframes temperatureFlagSwap{0%,to{transform:translateY(0)}42%,58%{transform:translateY(86px)}}@keyframes temperatureFlagTextSwap{0%,34%,64%,to{opacity:1}46%,54%{opacity:0}}@keyframes steamFloat{0%,to{opacity:calc(var(--steam-opacity, .8) * .78);transform:translate(-4px,8px) scale(.96)}45%{opacity:var(--steam-opacity, .8);transform:translate(5px,-8px) scale(1.04)}70%{opacity:calc(var(--steam-opacity, .8) * .9);transform:translate(-2px,-14px) scale(1.08)}}@keyframes steamPuff{0%,to{transform:translateY(6px) scale(.94)}50%{transform:translateY(-8px) scale(1.06)}}@keyframes windRibbonDash{to{stroke-dashoffset:-88}}@keyframes windRibbonDrift{0%,to{transform:translate(-18px)}50%{transform:translate(16px)}}@keyframes flow{to{background-position:24px 0}}@keyframes flowSvg{to{stroke-dashoffset:-28}}@keyframes smogDrift{0%,to{transform:translate(-5%) translateY(0) scale(1)}50%{transform:translate(3%) translateY(-2%) scale(1.04)}}@keyframes thermalSmokePuff{0%{opacity:0;transform:translateY(12px) scale(.72)}24%{opacity:.72}to{opacity:0;transform:translate(-22px,-48px) scale(1.34)}}@keyframes fuelTruckEnter{0%{opacity:0;transform:translate(390px) translateY(4px) scale(.98)}76%{opacity:1;transform:translate(-10px) translateY(0) scale(1)}to{opacity:1;transform:translate(0) translateY(0) scale(1)}}@keyframes fuelTruckLeave{0%{opacity:1;transform:translate(0) translateY(0) scale(1)}to{opacity:0;transform:translate(-960px) translateY(4px) scale(.98)}}@keyframes fuelWheelSpin{to{transform:rotate(360deg)}}.scene-flow.flow-wind,.scene-flow.flow-solar,.scene-flow.flow-nuclear,.scene-flow.flow-fossil,.scene-flow.flow-city{position:static;width:auto;height:auto;border-radius:0;background-image:none;transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}@media(max-width:1040px){.app-shell{grid-template-areas:"header" "controls" "main" "bottom";grid-template-columns:1fr;grid-template-rows:auto;height:auto;min-height:100vh;min-height:100dvh;overflow:visible;padding:16px}.app-header{min-height:auto}.app-header p{display:block}.simulation-console{position:static;margin-top:12px}.simulation-action:not(.catastrophe-action) span{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal}.guide-panel{position:relative;width:min(318px,100%);margin-left:auto;padding:14px 42px 14px 16px}.guide-panel strong{font-size:15px}.guide-panel ol{gap:6px;margin:8px 0 0;padding-left:18px}.guide-panel li{font-size:13px;line-height:1.25}.dashboard-grid,.bottom-row{grid-template-columns:1fr}.metrics-column{grid-template-columns:repeat(3,1fr)}.energy-gauge{grid-template-columns:1fr;justify-items:center;min-height:190px}}@media(max-width:760px){.app-shell{padding:16px}.app-header{align-items:flex-start}h1{font-size:32px}.control-row{grid-template-columns:repeat(2,1fr)}.dashboard-grid{gap:16px}.energy-world{min-height:520px}.metrics-column,.timeline-panel{grid-template-columns:1fr}.timeline-labels{grid-column:1}.bottom-row{gap:16px}}@media(max-width:520px){.brand-mark{width:54px;height:54px}h1{font-size:26px}.app-header p{font-size:15px}.weather-button{min-height:98px}.weather-button span{font-size:16px}.world-status{grid-template-columns:1fr;width:calc(100% - 24px);padding:0}.status-info-column,.status-control-card,.status-actions,.demand-bars{grid-column:1}.status-actions{grid-row:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.island{left:-12%;right:-18%;transform:scale(.84);transform-origin:bottom center}}
