:root{--forest: #0e3d25;--forest-deep: #082c1b;--forest-soft: #1f5a3c;--gold: #b58a36;--gold-soft: #d7c397;--paper: #fbfaf4;--paper-strong: #fffdf8;--line: #d8ceb7;--ink: #17201b;--muted: #667168;--blue: #2f7f9f;--shadow: 0 18px 50px rgba(18, 34, 26, .12);--ui-font: Inter, "Avenir Next", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display-font: Georgia, "Times New Roman", serif;font-family:var(--ui-font);color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:linear-gradient(180deg,#fffdf8,#f7f3e9)}button,input{font:inherit}button{cursor:pointer}.app-shell{width:min(1810px,calc(100vw - 44px));margin:0 auto;padding-bottom:30px}.site-header{display:flex;justify-content:space-between;align-items:center;min-height:72px;border-bottom:1px solid var(--gold-soft)}.brand{display:inline-flex;gap:12px;align-items:center;text-decoration:none;color:var(--forest);font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:clamp(1.25rem,1.7vw,1.9rem);letter-spacing:0}.brand-mark{width:52px;height:52px;flex:0 0 auto}.site-header nav a{display:inline-flex;align-items:center;min-height:72px;padding:0 28px;color:var(--forest);font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:clamp(1rem,1.25vw,1.4rem);text-decoration:none;border-bottom:4px solid var(--forest)}.intro-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:clamp(32px,5vw,84px);align-items:center;padding:22px 0 18px}h1{margin:0;color:var(--forest);font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,3.25vw,4.1rem);line-height:1.03;letter-spacing:0}h1 span{display:block;margin-top:3px;font-size:clamp(1.58rem,2.55vw,3.15rem);font-style:italic;font-weight:600}.intro-row p{margin:0;max-width:650px;padding-left:34px;border-left:3px solid var(--gold);color:#303a34;font-size:clamp(1rem,1.1vw,1.22rem);line-height:1.56}.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(148px,1fr));border:1px solid var(--line);background:#fffdf8eb;border-radius:10px;overflow:hidden;box-shadow:0 9px 22px #3e301512}.metric-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;min-height:86px;padding:14px 18px;border-right:1px solid var(--line)}.metric-card:last-child{border-right:0}.metric-card svg{color:var(--gold);stroke-width:1.8}.metric-card span,.metric-card small{display:block}.metric-card span{color:#25352c;font-size:.73rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.metric-card strong{display:block;margin:2px 0;color:var(--forest);font-family:Georgia,Times New Roman,serif;font-size:clamp(1.34rem,1.55vw,1.78rem);line-height:1}.metric-card small{color:var(--muted);font-size:.82rem}.main-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(390px,27vw,470px);gap:clamp(20px,1.6vw,28px);align-items:start;margin-top:20px}.scene-card,.control-panel,.results-panel{border:1px solid var(--line);background:#fffdf8f0;border-radius:9px;box-shadow:var(--shadow)}.scene-card{min-width:0;overflow:hidden}.scene-viewport{position:relative;overflow:hidden;aspect-ratio:16 / 9;min-height:600px;background:#e5eadf;cursor:grab;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none}.scene-viewport.is-panning{cursor:grabbing}.scene-transform{position:absolute;top:50%;left:50%;width:122%;aspect-ratio:1672 / 941;transform-origin:center center;transition:transform .3s cubic-bezier(.25,.46,.45,.94);will-change:transform}.scene-scale{position:relative;width:100%;height:100%;transform-origin:center center;transition:transform .3s cubic-bezier(.25,.46,.45,.94);will-change:transform}.scene-viewport.is-panning .scene-transform,.scene-viewport.is-panning .scene-scale{transition:none}.scene-image{width:100%;height:100%;display:block;object-fit:contain;filter:saturate(.96) contrast(1.02);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.scene-mood{position:absolute;inset:0;pointer-events:none;transition:background .6s cubic-bezier(.4,0,.2,1),opacity .6s cubic-bezier(.4,0,.2,1)}.time-morning .scene-mood{background:linear-gradient(115deg,rgba(240,191,98,.26),transparent 48%)}.time-day .scene-mood{background:linear-gradient(180deg,#ffffff05,#fff9e60a)}.scene-image{transition:filter .6s cubic-bezier(.4,0,.2,1)}.time-evening .scene-image{filter:saturate(.96) contrast(1.04) brightness(.92)}.time-evening .scene-mood{background:radial-gradient(circle at 80% 34%,rgba(255,207,120,.24),transparent 18%),linear-gradient(120deg,#b4673047,#15303b2e)}.time-night .scene-image{filter:saturate(.74) contrast(1.04) brightness(.55)}.time-night .scene-mood{background:radial-gradient(circle at 82% 38%,rgba(240,193,83,.28),transparent 20%),radial-gradient(circle at 36% 52%,rgba(240,193,83,.15),transparent 12%),linear-gradient(180deg,#06172a8f,#05161b75)}.scene-tools{position:absolute;z-index:30;top:14px;left:14px;display:inline-flex;align-items:center;gap:6px;padding:6px;border:1px solid rgba(255,253,248,.62);border-radius:999px;background:#092a1ad1;color:#fffdf8;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);cursor:default}.scene-tool{width:30px;height:30px;border:0;border-radius:999px;display:grid;place-items:center;color:inherit;background:#ffffff1f}.scene-tool{transition:background .2s cubic-bezier(.4,0,.2,1)}.scene-tool:hover,.scene-tool:focus-visible{background:#ffffff3d;outline:none}.zoom-readout{min-width:44px;text-align:center;font-size:.78rem;font-weight:800}.hotspot{position:absolute;z-index:12;display:inline-flex;align-items:center;gap:7px;max-width:230px;min-height:38px;padding:5px 11px 5px 5px;border:1px solid rgba(255,253,248,.86);border-radius:999px;background:#0a3d25ed;color:#fffdf8;box-shadow:0 7px 22px #00000047;transform:translate(var(--hotspot-shift-x, -50%),var(--hotspot-shift-y, -50%));transition:transform .25s cubic-bezier(.4,0,.2,1),background .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)}.hotspot:hover,.hotspot:focus-visible,.hotspot.is-active{background:#0b4d2dfa;box-shadow:0 9px 28px #04241557;transform:translate(var(--hotspot-shift-x, -50%),var(--hotspot-shift-y, -50%)) scale(1.035);outline:none}.hotspot-number{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--forest-deep);color:#f5e5ae;font-weight:900;font-size:.96rem}.hotspot-label{font-size:.86rem;font-weight:800;white-space:nowrap}.analysis-popup{position:absolute;z-index:25;max-width:calc(100% - 24px);min-width:0;padding:15px;border:1px solid rgba(191,170,124,.88);border-radius:8px;background:#fffdf8f5;box-shadow:0 18px 45px #0b201347;color:#16251c;overflow:auto;overscroll-behavior:contain;transform:none;cursor:default;animation:popup-in .25s cubic-bezier(.16,1,.3,1)}@keyframes popup-in{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.analysis-popup header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding-bottom:9px;border-bottom:1px solid #e3d8bf}.popup-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;color:#fffdf8;background:var(--forest)}.analysis-popup header span:not(.popup-icon){display:block;color:var(--forest);font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:1.02rem}.analysis-popup header small{color:var(--muted);font-size:.75rem}.analysis-popup header button{width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:#4d5a52;font-size:1.35rem;line-height:1}.analysis-popup p{margin:11px 0;color:#2c3932;font-size:.88rem;line-height:1.45}.analysis-popup dl{display:grid;grid-template-columns:1.1fr .9fr;gap:8px 14px;margin:0}.analysis-popup dt{color:var(--muted);font-size:.78rem}.analysis-popup dd{margin:0;color:var(--forest);font-weight:800;text-align:right;font-size:.84rem}.smoke-wisp,.traffic-glint{position:absolute;pointer-events:none}.smoke-wisp{width:90px;height:28px;border-radius:999px;background:#fff6;filter:blur(13px);animation:drift 6.5s ease-in-out infinite;opacity:.56}.smoke-wisp-one{left:30%;top:17%}.smoke-wisp-two{left:34%;top:19%;animation-delay:1.8s}.traffic-glint{width:8px;height:8px;border-radius:999px;background:#f9d684f2;box-shadow:0 0 14px #f8c95aeb;opacity:.8;animation:glint 4.5s linear infinite}.traffic-glint-one{left:58%;top:77%}.traffic-glint-two{left:72%;top:72%;animation-delay:1.2s}.traffic-glint-three{left:42%;top:62%;animation-delay:2.1s}@keyframes drift{0%,to{transform:translate(0) scale(1);opacity:.45}50%{transform:translate(28px,-12px) scale(1.2);opacity:.64}}@keyframes glint{0%,to{transform:translate(0);opacity:.35}50%{transform:translate(46px,-18px);opacity:.9}}.time-scrubber{display:grid;grid-template-columns:auto minmax(270px,auto) minmax(360px,1fr);gap:20px;align-items:center;padding:16px 28px 14px;border-top:1px solid var(--line);background:#fffdf8fa}.scrubber-title{display:flex;gap:10px;align-items:center;color:var(--forest);font-weight:900;text-transform:uppercase;white-space:nowrap}.scrubber-title svg{color:var(--gold)}.scrubber-title strong{color:var(--forest);font-family:var(--ui-font);font-size:1rem;font-weight:850;line-height:1;text-transform:none;white-space:nowrap}.playback-controls{display:inline-flex;align-items:center;gap:9px;padding:7px;border:1px solid var(--line);border-radius:9px;background:#faf8efc7}.playback-button,.icon-playback-button,.speed-control select{min-height:38px;border:1px solid var(--line);border-radius:7px;background:#fffdf8;color:var(--forest);font-weight:850}.playback-button{display:inline-flex;align-items:center;gap:7px;padding:0 15px}.icon-playback-button{width:40px;display:grid;place-items:center}.playback-button,.icon-playback-button,.speed-control select{transition:border-color .2s cubic-bezier(.4,0,.2,1),background .2s cubic-bezier(.4,0,.2,1)}.playback-button:hover,.playback-button:focus-visible,.icon-playback-button:hover,.icon-playback-button:focus-visible,.speed-control select:hover,.speed-control select:focus-visible{border-color:var(--forest);outline:none}.speed-control{display:inline-flex;align-items:center;gap:8px;color:#526057;font-size:.72rem;font-weight:800;text-transform:uppercase}.speed-control select{min-width:76px;padding:0 28px 0 11px;appearance:auto}.scrubber-track input{width:100%;height:26px;margin:0;appearance:none;background:linear-gradient(90deg,var(--gold) 0 calc(var(--progress) * (100% - 30px) + 15px),#d9ddd7 calc(var(--progress) * (100% - 30px) + 15px) 100%);border-radius:999px;outline:none;box-shadow:inset 0 0 0 1px #535a5414}.scrubber-track input::-webkit-slider-runnable-track{height:26px;border-radius:999px;background:transparent}.scrubber-track input::-webkit-slider-thumb{appearance:none;width:30px;height:30px;margin-top:-2px;border:5px solid var(--forest);border-radius:999px;background:#fffdf8;box-shadow:0 2px 7px #0b201333}.scrubber-track input::-moz-range-thumb{width:30px;height:30px;border:5px solid var(--forest);border-radius:999px;background:#fffdf8;box-shadow:0 2px 7px #0b201333}.time-labels{display:grid;grid-template-columns:repeat(4,1fr);align-items:start;gap:10px;margin-top:4px;pointer-events:none}.time-labels span{display:flex;flex-direction:column;gap:3px;align-items:center;color:#526057;font-size:.76rem}.time-labels svg{color:#9d8445}.time-labels .selected{color:var(--forest);font-weight:800}.control-panel{position:sticky;top:14px;align-self:start;max-height:calc(100vh - 28px);overflow:auto;padding:24px}.panel-heading,.section-kicker{display:flex;gap:11px;align-items:center}.panel-heading{padding-bottom:12px;border-bottom:1px solid var(--gold-soft);color:var(--forest)}.panel-heading h2,.scenario-section h3,.interpretation-panel h3,.chart-card h3,.section-kicker span{margin:0;color:var(--forest);font-family:var(--display-font);font-weight:700;letter-spacing:.02em;text-transform:uppercase}.panel-heading h2{font-size:1.18rem}.control-stack{display:grid;gap:19px;margin-top:19px}.range-control{display:grid;gap:9px}.range-row{display:flex;justify-content:space-between;gap:16px;align-items:center}.range-label{display:inline-flex;min-width:0;align-items:center;gap:9px;color:#26382e;font-size:.9rem;font-weight:800;line-height:1.2}.range-label svg{color:var(--forest);flex:0 0 auto}.range-row strong{color:var(--forest);white-space:nowrap;font-size:.96rem;font-weight:850}.range-control input{width:100%;height:28px;margin:0;appearance:none;background:linear-gradient(90deg,var(--forest) 0 calc(var(--progress) * (100% - 34px) + 17px),#d4d7d2 calc(var(--progress) * (100% - 34px) + 17px) 100%);border-radius:999px;outline:none;box-shadow:inset 0 0 0 1px #535a5414}.range-control input::-webkit-slider-runnable-track{height:28px;border-radius:999px;background:transparent}.range-control input::-webkit-slider-thumb{appearance:none;width:34px;height:34px;margin-top:-3px;border:6px solid var(--forest);border-radius:999px;background:#fffdf8;box-shadow:0 2px 8px #0b201330}.range-control input::-moz-range-thumb{width:34px;height:34px;border:6px solid var(--forest);border-radius:999px;background:#fffdf8;box-shadow:0 2px 8px #0b201330}.range-limits{display:flex;justify-content:space-between;color:#6e756f;font-size:.76rem}.scenario-section{margin-top:22px}.scenario-section h3,.interpretation-panel h3{font-size:.95rem}.preset-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}.preset-grid button{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;justify-content:start;gap:11px;min-height:48px;padding:10px 14px;border:1px solid var(--line);border-radius:7px;color:#25342b;background:#fffdf8;font-size:.88rem;font-weight:850;text-align:left;transition:background .25s cubic-bezier(.4,0,.2,1),color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1)}.preset-grid button.selected,.preset-grid button:hover,.preset-grid button:focus-visible{border-color:var(--forest);background:var(--forest);color:#fffdf8;outline:none}.interpretation-panel{margin-top:16px;padding:16px 17px;border:1px solid #e1d8c2;border-radius:8px;background:#faf8efc7}.interpretation-panel div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;margin-top:11px}.interpretation-panel svg{color:var(--forest)}.interpretation-panel p{margin:0;color:#334139;font-size:.9rem;line-height:1.52}.results-panel{display:grid;grid-template-columns:minmax(126px,160px) repeat(3,minmax(0,1fr));gap:0;margin-top:22px;overflow:hidden}.daily-results-panel{margin-top:22px;overflow:hidden;border:1px solid var(--line);background:#fffdf8f0;border-radius:9px;box-shadow:var(--shadow)}.daily-results-panel .chart-card{border-right:0}.results-copy,.chart-card{min-width:0;padding:19px 22px 20px;border-right:1px solid var(--line)}.chart-card:last-child{border-right:0}.section-kicker{align-items:flex-start}.section-kicker svg{color:var(--gold);margin-top:2px}.section-kicker span{font-size:1rem;line-height:1.2}.results-copy p{margin:28px 0 0;color:#465249;font-family:Georgia,Times New Roman,serif;font-style:italic;line-height:1.52}.chart-card{position:relative}.chart-card h3{display:flex;gap:10px;align-items:baseline;font-size:.88rem;min-height:28px}.chart-card h3 span{color:#0f1d16}.controlled-chart{width:100%;min-height:300px}.controlled-chart svg{display:block;width:100%;height:300px;outline:none}.daily-trend-chart{min-height:365px}.daily-trend-chart svg{height:320px}.daily-chart-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:10px 0 2px;color:#526057;font-size:.82rem}.daily-chart-toolbar p{max-width:620px;margin:0;line-height:1.45}.daily-chart-toolbar label{display:inline-flex;align-items:center;gap:9px;color:var(--forest);font-weight:800;white-space:nowrap}.daily-chart-toolbar select{min-height:34px;padding:0 28px 0 10px;border:1px solid var(--line);border-radius:7px;background:#fffdf8;color:var(--forest);font-weight:800}.svg-legend{display:flex;flex-wrap:wrap;gap:10px 17px;align-items:center;min-height:30px;margin:2px 0 2px 2px;color:#58645c;font-size:.78rem}.svg-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.svg-legend i{width:15px;height:0;border-top:3px solid currentColor;border-color:currentColor}.svg-axis text{fill:#526057;font-size:12px}.svg-axis .axis-title{fill:#526057;font-size:12px;font-weight:700}.grid-line{stroke:#e2d7bd;stroke-dasharray:4 5;stroke-width:1}.grid-line.subtle{opacity:.58}.axis-line{stroke:#6f7771;stroke-width:1.2}.line-path,.area-path{vector-effect:non-scaling-stroke}.line-path{fill:none;stroke-linecap:round;stroke-linejoin:round}.line-path.baseline{stroke:#7c817e;stroke-width:2.4;stroke-dasharray:8 6}.line-path.current{stroke:var(--forest);stroke-width:3.2}.line-path.target{stroke:var(--gold);stroke-width:2.2;stroke-dasharray:5 5}.line-path.daily-line{stroke-width:3}.area-path{stroke:#fffdf8bd;stroke-width:1.2}.fossil-area{fill:#6e7470c7}.ccs-area{fill:#6fa36ad1}.storage-area{fill:#b68a31c7}.renewable-area{fill:#2f7f9fdb}.hover-guide{stroke:#0e3d255c;stroke-width:1.3;stroke-dasharray:5 4;pointer-events:none}.hover-dot{stroke:#fffdf8;stroke-width:2.4;pointer-events:none}.baseline-dot{fill:#7c817e}.current-dot,.mix-dot{fill:var(--forest)}.target-dot{fill:var(--gold)}.daily-dot,.daily-current-dot{vector-effect:non-scaling-stroke}.summary-bar{transition:opacity .25s cubic-bezier(.4,0,.2,1)}.summary-bar:hover{opacity:.88}.bar-value{fill:var(--forest);font-family:Georgia,Times New Roman,serif;font-size:17px;font-weight:700}.bar-label{fill:#526057;font-size:12.5px;font-weight:700}.svg-tooltip{pointer-events:none}.svg-tooltip rect{fill:#fffdf8f5;stroke:var(--line);filter:drop-shadow(0 8px 16px rgba(20,36,27,.14))}.svg-tooltip text{fill:#26382e;font-size:12.5px}.svg-tooltip .tooltip-title{fill:var(--forest);font-family:Georgia,Times New Roman,serif;font-size:15px;font-weight:700}.chart-tooltip{display:grid;gap:4px;min-width:170px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fffdf8fa;box-shadow:0 9px 24px #14241b29;color:#24332a;font-size:.8rem}.chart-tooltip strong{color:var(--forest)}.chart-callout{position:static;max-width:165px;margin:8px 0 0 auto;padding:12px 14px;border:1px solid var(--forest-soft);border-radius:7px;background:#fffdf8eb;color:var(--forest);font-family:Georgia,Times New Roman,serif;font-size:.82rem;line-height:1.35;text-align:center}.site-footer{display:flex;gap:10px;align-items:center;margin-top:17px;color:#58675c;font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:.9rem}.site-footer svg{color:var(--forest);fill:currentColor}@media(min-width:1620px){.scene-viewport{min-height:660px}.control-panel{padding:24px 26px}}@media(max-width:1560px){.app-shell{width:min(1480px,calc(100vw - 32px))}.main-grid{grid-template-columns:minmax(0,1fr) clamp(370px,28vw,430px)}.scene-viewport{min-height:clamp(550px,40vw,660px)}}@media(max-width:1180px){.app-shell{width:min(1260px,calc(100vw - 32px))}.summary-grid{grid-template-columns:repeat(3,1fr)}.metric-card:nth-child(3n){border-right:0}.metric-card:nth-child(n+4){border-top:1px solid var(--line)}.scene-viewport{aspect-ratio:16 / 7.3}.results-panel{grid-template-columns:1fr}.results-copy,.chart-card{border-right:0;border-bottom:1px solid var(--line)}.chart-card:last-child{border-bottom:0}.results-copy p{margin-top:10px}}@media(max-width:980px){.main-grid{grid-template-columns:1fr}.control-panel{position:static;max-height:none;overflow:visible}}@media(max-width:880px){.app-shell{width:min(100% - 22px,760px)}.site-header{min-height:64px}.brand{font-size:1.05rem}.brand-mark{width:42px;height:42px}.site-header nav a{min-height:64px;padding:0 12px}.intro-row{grid-template-columns:1fr;gap:18px}.intro-row p{padding-left:18px}.summary-grid{grid-template-columns:repeat(2,1fr)}.metric-card{border-right:1px solid var(--line)}.metric-card:nth-child(2n){border-right:0}.metric-card:nth-child(n+3){border-top:1px solid var(--line)}.scene-viewport{min-height:410px}.hotspot{padding-right:7px}.hotspot-label{display:none}.analysis-popup{width:286px;min-width:260px}.time-scrubber,.control-panel{grid-template-columns:1fr}.scenario-section,.interpretation-panel,.panel-heading,.control-stack{grid-column:1}.preset-grid{grid-template-columns:1fr}.chart-callout{position:static;margin:-8px 16px 14px auto}}@media(max-width:560px){.brand span{max-width:205px;line-height:1.08}.summary-grid{grid-template-columns:1fr}.metric-card,.metric-card:nth-child(2n),.metric-card:nth-child(3n){border-right:0}.metric-card:nth-child(n+2){border-top:1px solid var(--line)}.scene-viewport{min-height:360px}.scene-tools{top:10px;left:10px;right:auto}.analysis-popup{max-width:calc(100% - 20px);transform:none}.time-labels span{font-size:.68rem}.results-copy,.chart-card{padding-inline:14px}}
