@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--forest:#172c26;--ink:#172720;--paper:#f4f2e9;--muted:#64736a;--acid:#e9fc82;--line:#b7beb0;--blue:#90acba;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,summary,select{cursor:pointer}button{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #c2a33c;outline-offset:5px}.skip{position:absolute;left:12px;top:-100px;z-index:20;padding:16px;background:var(--acid)}.skip:focus{top:12px}header{position:absolute;z-index:5;top:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:25px 3.5%;color:var(--paper);font-size:16px}header:after{content:'';height:1px;background:#ffffff40;position:absolute;bottom:0;left:3.5%;right:3.5%}.brand{letter-spacing:.22em;font-size:19px;font-weight:500}header button{border:0;background:none;color:inherit;display:flex;gap:20px;align-items:center}header button b{font-size:24px;font-weight:400}nav{position:absolute;right:3.5%;top:76px;width:290px;padding:24px;background:var(--paper);color:var(--ink);box-shadow:0 20px 40px #0003}nav a{display:block;padding:15px 0;border-bottom:1px solid var(--line)}.hero{position:relative;min-height:750px;height:100svh;max-height:1100px;background:#263a31;color:var(--paper);overflow:hidden}.hero-map{position:absolute;inset:0}.hero-map svg{width:100%;height:100%;object-fit:cover;filter:saturate(.55)}.hero-map:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0e221d88,transparent 70%),linear-gradient(0deg,#0b1d18dd,transparent 55%)}.hero-copy{position:absolute;left:3.5%;bottom:12%;z-index:1}.eyebrow,.mono{font-family:'IBM Plex Mono',monospace;font-size:15px;letter-spacing:.12em}.eyebrow{text-transform:uppercase;margin:0 0 30px}.hero h1{font-size:clamp(44px,5.3vw,84px);line-height:1.01;font-weight:400;letter-spacing:-.055em;margin:0 0 28px}.button{display:inline-flex;gap:36px;justify-content:space-between;align-items:center;padding:17px 23px;background:var(--acid);color:var(--ink);font:15px 'IBM Plex Mono',monospace;text-transform:uppercase;letter-spacing:.06em;clip-path:polygon(0 0,100% 0,100% 75%,94% 100%,0 100%);transition:background .2s,transform .2s}.button:hover{background:#f4ffa8;transform:translateY(-2px)}.map-label{position:absolute;left:3.5%;top:140px;line-height:1.8}.hero-note{position:absolute;right:3.5%;bottom:12%;font-size:15px;line-height:1.6;text-align:right}.imagery-credit{position:absolute;bottom:12px;left:3.5%;font-size:13px;opacity:.7;max-width:85%}.intro-strip{padding:25px 3.5%;display:flex;justify-content:space-between;gap:20px;align-items:center;background:var(--forest);color:var(--paper);font-size:15px}.intro-strip b{display:block;font-weight:400;font-size:25px;margin-bottom:5px}.intro-strip a{border-bottom:1px solid #ffffff80;padding:8px 0}.section{padding:85px 5%}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:50px}.section-heading>p{max-width:310px;font-size:18px;line-height:1.7;margin:0 0 5px}h2{font-size:clamp(44px,5.5vw,80px);font-weight:400;line-height:1.02;letter-spacing:-.06em;margin:0}h3{font-size:25px;letter-spacing:-.03em;font-weight:400;margin:0}.impact{display:grid;grid-template-columns:1fr 1fr;margin:60px 0 45px}.impact>div+div{padding-left:6%;border-left:1px solid var(--line)}.big{font-size:clamp(42px,6vw,80px);letter-spacing:-.06em;line-height:1}.big small{font-size:.45em}.impact p{font-size:17px}.info{border:0;background:none;padding:0 4px}.detail{padding:24px;border-left:2px solid var(--forest);background:#e9eade;line-height:1.7;font-size:17px;margin-bottom:25px}.chart-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:30px 0 20px}.tariff-chart{height:180px;display:flex;gap:12px;border-bottom:1px solid var(--line);align-items:flex-end;padding:0 10px 25px}.month-bar{flex:1;height:100%;display:flex;justify-content:flex-end;flex-direction:column;position:relative}.billed{background:var(--forest);position:relative;min-height:1px;transition:height .3s}.month-bar:last-child .billed{background:var(--blue)}.actual-line{position:absolute;width:100%;border-top:2px dotted #d3bd55;z-index:1}.month-number{position:absolute;bottom:-20px;font:14px 'IBM Plex Mono',monospace;width:100%;text-align:center}.bar-value{display:block;text-align:center;font-size:14px;position:absolute;top:-18px;width:100%}.chart-legend{display:flex;gap:24px;font-size:14px;margin:16px 0 35px}.chart-legend i{display:inline-block;background:var(--forest);width:9px;height:9px;margin-right:5px}.chart-legend i.actual-key{background:#b29b36}.controls{display:grid;gap:30px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.tariff-controls{grid-template-columns:1fr 1fr 1fr 1fr}label{font-size:16px;display:block}output{float:right;font-family:'IBM Plex Mono',monospace}input[type=range]{accent-color:var(--forest);width:100%;margin:22px 0 10px;height:3px;cursor:pointer}select{display:block;border:0;border-bottom:1px solid var(--line);padding:12px 28px 12px 0;background:transparent;color:inherit;width:100%;border-radius:0}.check{position:relative;padding-right:28px}.check input{position:absolute;right:0;top:0;accent-color:var(--forest);width:18px;height:18px}.check span{display:block;font-size:14px;color:var(--muted);margin-top:16px;line-height:1.6}.fine{font-size:15px;color:var(--muted);line-height:1.7;margin:22px 0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;font-size:17px;line-height:1.8}details{border-top:1px solid var(--line);margin-top:35px;padding-top:20px}summary{font-size:17px;padding:0 0 10px}.text-link{font-size:16px;border-bottom:1px solid;padding-bottom:6px;display:inline-block}.landscape{background:linear-gradient(90deg,#11241ee8,#11241e66),url('assets/ohio-aerial.jpg') center 60%/cover;color:var(--paper);position:relative;min-height:470px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.landscape h2{font-size:clamp(42px,5vw,68px)}.hedge-stats{display:flex;align-items:center;gap:20px;margin:28px 0}.hedge-stats strong{font-size:45px;font-weight:400;letter-spacing:-.05em}.hedge-stats span{font-size:16px;border-left:1px solid #ffffff80;padding-left:20px;line-height:1.5}.landscape-note{position:absolute;right:5%;bottom:45px;font-size:15px;text-align:right;line-height:1.6}.market-select{min-width:140px}.contract-results{display:grid;grid-template-columns:repeat(3,1fr);margin:50px 0 25px}.contract-result{border-left:1px solid var(--line);padding:0 30px}.contract-result:first-child{border:0;padding-left:0}.contract-result h3{font-size:20px}.contract-result strong{font-size:clamp(35px,5vw,64px);font-weight:400;letter-spacing:-.06em;display:block;margin:12px 0}.contract-result small{font-size:15px;color:var(--muted);display:block;margin:7px 0}.stress-controls{grid-template-columns:1.3fr 1.3fr 1fr}.range-ends{display:flex;justify-content:space-between;font:14px 'IBM Plex Mono',monospace;margin-top:8px}.compact{margin:60px 0 25px;align-items:center}.compact label{width:190px}.tornado-row{display:grid;grid-template-columns:160px 1fr 1fr;align-items:center;margin:17px 0;gap:0;font-size:15px}.tornado-side{height:26px;position:relative;border-right:1px dashed var(--muted);display:flex;justify-content:flex-end;padding-right:5px}.tornado-side.positive{justify-content:flex-start;padding-left:5px;border:0}.tornado-bar{background:var(--forest);min-width:0;position:relative;height:100%;color:white;font:14px 'IBM Plex Mono',monospace;display:flex;align-items:center;justify-content:center;white-space:nowrap}.tornado-row:nth-child(2) .tornado-bar{background:#6a8795}.tornado-row:nth-child(3) .tornado-bar{background:#8d986b}.table-scroll{overflow-x:auto;margin-bottom:20px}table{border-collapse:collapse;width:100%;font-size:15px}td,th{padding:13px 12px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}td:first-child,th:first-child,td:nth-child(2),th:nth-child(2){text-align:left}.dark{background:var(--forest);color:var(--paper)}.dark .fine{color:#aabbb1}.dark .section-heading p{color:#bbc9bf}.dark details{border-color:#ffffff40}.market-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:65px 0}.market-stats>div{border-left:1px solid #ffffff40;padding:0 25px}.market-stats>div:first-child{padding-left:0;border:0}.market-stats>div>span{font:14px 'IBM Plex Mono',monospace;letter-spacing:.06em}.market-stats strong{display:block;font-size:54px;font-weight:400;letter-spacing:-.055em;margin:20px 0 10px}.market-stats strong span{font-size:17px;letter-spacing:0}.market-stats small{color:#bbc9bf;font-size:15px}.monthly-chart svg{width:100%;height:auto;display:block}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 7px 0 20px}.pjm{background:var(--acid)}.miso{background:var(--blue)}.monte{width:100%;background:var(--paper);margin-top:20px}.evidence-tools{display:flex;gap:30px;justify-content:space-between;align-items:flex-end;margin-top:50px}.evidence-tools label{width:50%}input[type=search]{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:16px 0;font-size:17px;border-radius:0}.assumption{margin:0;padding:16px 0;border-top:1px solid var(--line)}.assumption summary{display:flex;justify-content:space-between;gap:24px;padding:0}.assumption summary strong{font:16px 'IBM Plex Mono',monospace;overflow-wrap:anywhere;max-width:55%}.assumption summary span{font-size:15px;text-align:right}.assumption p{font-size:16px;line-height:1.7;max-width:850px}.assumption .tag{display:inline-block;background:#e3e8d9;padding:5px 9px;font:14px 'IBM Plex Mono',monospace;margin-top:16px}.assumption a{text-decoration:underline;overflow-wrap:anywhere}.recommendation{margin-top:80px;padding:40px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:25px}.recommendation .eyebrow{grid-column:1/-1}.recommendation h3{font-size:50px;line-height:1.05;letter-spacing:-.055em;grid-row:2/4}.recommendation p:not(.eyebrow){font-size:18px;line-height:1.8;max-width:420px}.recommendation a{justify-self:start}.downloads{display:flex;flex-wrap:wrap;gap:25px;padding-top:25px;border-top:1px solid var(--line);font-size:16px}footer{background:var(--forest);color:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:30px;padding:40px 5%}footer p{font-size:14px;line-height:1.7;color:#b9c6bd}footer>a:last-child{font-size:16px}#error{position:fixed;bottom:20px;left:20px;right:20px;background:var(--acid);padding:20px;z-index:10}[hidden]{display:none!important}
@media(min-width:1600px){.section{padding-left:max(5%,calc((100% - 1440px)/2));padding-right:max(5%,calc((100% - 1440px)/2))}}
@media(max-width:800px){header>span{display:none}.hero{min-height:730px;height:94svh}.hero-map{inset:20px -35% 50px -20%}.hero-copy{bottom:17%;right:5%;left:5%}.hero h1{font-size:52px}.hero-copy .eyebrow{max-width:270px;font-size:13px;line-height:1.7}.map-label{top:100px;left:5%;font-size:13px}.hero-note{bottom:7%;left:5%;right:auto;text-align:left}.intro-strip{flex-wrap:wrap;padding:25px 5%;gap:25px}.intro-strip span{width:40%}.intro-strip a{width:40%}.section{padding:60px 6%}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:25px;max-width:100%;font-size:17px}h2{font-size:48px}.impact{grid-template-columns:1fr;gap:25px;margin:35px 0}.impact>div+div{padding:25px 0 0;border-left:0;border-top:1px solid var(--line)}.big{font-size:58px}.tariff-controls{grid-template-columns:1fr 1fr;gap:25px}.chart-top{font-size:13px}.tariff-chart{gap:7px;padding-left:0;padding-right:0;height:155px}.bar-value{font-size:12px}.chart-legend{font-size:13px}.detail-grid{grid-template-columns:1fr;gap:0}.landscape{min-height:470px}.landscape h2{font-size:43px}.landscape-note{position:static;margin-top:30px;text-align:left}.contract-results{margin-top:30px}.contract-result{padding:0 12px}.contract-result h3{font-size:18px}.contract-result strong{font-size:32px}.contract-result small{font-size:13px}.stress-controls{grid-template-columns:1fr 1fr}.stress-controls .check{grid-column:1/-1}.market-select{display:inline-block;margin-top:25px;width:130px}.compact{display:flex;gap:20px;margin-top:40px}.compact h3{font-size:21px}.compact label{width:160px}.tornado-row{grid-template-columns:90px 1fr 1fr;font-size:14px}.tornado-bar{font-size:12px}.market-stats{grid-template-columns:1fr;gap:25px;margin:35px 0}.market-stats>div{border-left:0!important;border-top:1px solid #ffffff40;padding:25px 0 0!important}.market-stats strong{font-size:55px;margin:12px 0}.dark .chart-top{display:block}.dark .chart-top .mono{display:block;margin-top:20px}.dot:first-child{margin-left:0}.evidence-tools{display:block;margin-top:30px}.evidence-tools label{width:100%;margin-bottom:25px}.evidence-tools .button{font-size:14px}.assumption summary{display:block}.assumption summary strong{max-width:100%;font-size:15px}.assumption summary span{display:block;text-align:left;margin-top:10px;line-height:1.6}.recommendation{display:block;margin-top:50px}.recommendation h3{font-size:43px}.recommendation .eyebrow{margin-bottom:25px}.downloads{gap:20px}footer{flex-wrap:wrap}.imagery-credit{font-size:11px}.brand{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Keep Cleveland and the full state visible at narrow widths. */
@media(max-width:800px){.hero{background:linear-gradient(#172c2688,#172c26),url('assets/ohio-aerial.jpg') center/cover}.hero-map{inset:80px 0 auto;height:auto}.hero-map svg{height:auto;aspect-ratio:1000/800;display:block}.hero-map:after{background:linear-gradient(0deg,#142b26bb,transparent 70%)}.map-label{top:100px;font-size:12px;max-width:120px}.hero-copy{bottom:17%}.hero h1{font-size:48px}.hero-note{bottom:6%}}

/* Theme tokens keep data, controls and explanatory text readable in both modes. */
:root{color-scheme:light;--surface:#e6e9de;--data-bar:#284b3b;--bar-text:#fff;--chart-grid:#17272022;--chart-text:#3d5145;--chart-pjm:#446536;--chart-miso:#42677f;font-size:18px}
:root[data-theme=dark]{color-scheme:dark;--paper:#14241e;--ink:#f2f0e5;--muted:#b7c6ba;--line:#526458;--surface:#243a2f;--data-bar:#bed49e;--bar-text:#13221a;--chart-grid:#ffffff26;--chart-text:#c4d0c6;--chart-pjm:#e9fc82;--chart-miso:#a5c5df}
body{font-size:18px;line-height:1.5}
.header-actions{position:fixed;right:20px;top:16px;z-index:15;display:flex;gap:20px;align-items:center;padding:7px 16px;background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 3px 18px #0002}
.header-actions button{font-size:15px;min-height:35px;gap:10px}
#theme-toggle{border-left:1px solid var(--line);padding-left:16px}
#theme-icon{font-size:23px;line-height:1}
nav{position:fixed;top:80px;right:20px}
.hero,.landscape,header{color:#f4f2e9}
.intro-strip,footer{color:#f4f2e9}
.button{background:#e9fc82;color:#172720}
.dark{background:var(--paper);color:var(--ink);border-top:1px solid var(--line)}
.dark .fine,.dark .section-heading p,.market-stats small{color:var(--muted)}
.dark details,.market-stats>div{border-color:var(--line)}
.market-stats>div>span{font-size:14px}
.market-stats small{font-size:15px}
.detail,.assumption .tag{background:var(--surface)}
.detail{border-color:var(--data-bar)}
.billed,.chart-legend i,.tornado-bar{background:var(--data-bar)}
.tornado-bar{color:var(--bar-text)}
.tornado-row:nth-child(2) .tornado-bar{background:#7393a2;color:#0f241a}
.tornado-row:nth-child(3) .tornado-bar{background:#a5b77d;color:#0f241a}
.pjm{background:var(--chart-pjm)}.miso{background:var(--chart-miso)}
select,input[type=search]{color:var(--ink)}
select option{background:var(--paper);color:var(--ink)}
input[type=range],.check input{accent-color:var(--data-bar)}
.info{font-size:19px}
.fine,.chart-legend,.check span{font-size:15px}
label,summary,.impact p,.text-link,.downloads{font-size:16px}
.assumption p{font-size:16px}.assumption summary strong{font-size:14px}.assumption summary span{font-size:15px;overflow-wrap:anywhere}
.section-heading>p,.detail-grid,.recommendation p:not(.eyebrow){font-size:18px}
.contract-result small{font-size:15px;line-height:1.6}.contract-result h3{font-size:23px}
table{font-size:15px}
.chart-top{flex-wrap:wrap;line-height:1.6}
.chart-top.mono,.range-ends,.month-number,.bar-value{font-size:13px}
.chart-legend{flex-wrap:wrap}
.bar-value{top:-24px}.tariff-chart{height:205px}
.tornado-row{grid-template-columns:180px 1fr 1fr;font-size:15px}.tornado-bar{font-size:13px}
.market-stats strong{font-size:clamp(42px,4vw,60px)}
.hero-copy .eyebrow{max-width:700px;font-size:14px;line-height:1.6}
.hero-note,.landscape-note{font-size:14px;max-width:290px}
.imagery-credit{font-size:11px}
@media(max-width:800px){
 header{padding:24px 14px}.brand{font-size:15px}
 .header-actions{right:12px;top:14px;gap:12px;padding:6px 10px}
 #menu{font-size:0;gap:0}#menu b{font-size:24px}#theme-toggle{font-size:14px;padding-left:12px}
 nav{right:12px;top:75px;max-width:calc(100vw - 24px)}
 .hero-copy .eyebrow{font-size:12px;max-width:300px}
 .hero-note{font-size:12px;max-width:270px}
 .map-label{font-size:10px;max-width:150px}
 .imagery-credit{font-size:10px;line-height:1.5;max-width:94%;bottom:5px}
 .hero{min-height:800px}
 .hero h1{font-size:46px}
 .hero-copy{bottom:19%}
 .hero-note{bottom:8%}
 .impact p,.chart-legend,.fine,.check span{font-size:14px}
 .tariff-controls,.stress-controls{grid-template-columns:1fr}
 .stress-controls .check{grid-column:auto}.check{min-height:65px}
 .contract-results{grid-template-columns:1fr;gap:24px}
 .contract-result,.contract-result:first-child{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}
 .contract-result strong{font-size:52px;display:inline-block;margin-right:20px}.contract-result small{font-size:15px}
 .tornado-row{grid-template-columns:96px 1fr 1fr;font-size:13px}.tornado-bar{font-size:11px}
 .chart-top.mono,.month-number,.bar-value{font-size:11px}
 .tariff-chart{gap:5px}.bar-value{font-size:10px}
 .section-heading>p,.detail-grid{font-size:17px}
 .market-stats>div{border-top-color:var(--line)}
 .market-stats strong{font-size:52px}
 .market-stats small{font-size:15px}
 .assumption summary strong{font-size:14px}.assumption summary span,.assumption p{font-size:15px}
 .dark .chart-top .mono{font-size:14px}
 .intro-strip{font-size:14px}.intro-strip span{width:44%}.intro-strip a{width:44%}
 .section-heading.compact{display:block}.compact label{width:100%;margin-top:20px}
 .downloads{font-size:15px}
}

.recommendation-specifics{grid-column:1/-1;margin-top:28px;padding-top:32px;border-top:1px solid var(--line)}
.recommendation-specifics h4{font-size:24px;font-weight:500;letter-spacing:-.025em;margin:0 0 12px}
.recommendation p.recommendation-next{max-width:none;font-size:17px;margin:0 0 28px}
.recommendation-list{list-style:none;counter-reset:recommendation;display:grid;grid-template-columns:1fr 1fr;gap:30px 48px;margin:0;padding:0}
.recommendation-list li{counter-increment:recommendation;border-top:1px solid var(--line);padding-top:18px}
.recommendation-list h5{font-size:18px;font-weight:500;margin:0 0 12px;line-height:1.5}
.recommendation-list h5:before{content:counter(recommendation,decimal-leading-zero) ' / ';font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--muted)}
.recommendation .recommendation-list p{font-size:16px;line-height:1.7;max-width:none;margin:0}
.recommendation p.recommendation-scope{font-size:14px;max-width:none;margin:26px 0 0}
@media(max-width:800px){.recommendation-list{grid-template-columns:1fr;gap:24px}.recommendation-specifics{margin-top:35px}.recommendation-specifics h4{font-size:23px}.recommendation p.recommendation-next{font-size:16px}}
