/* Core tokens and document defaults */
:root {
  --ink:#203842; --muted:#536971; --accent:#2a665a; --line:#d7dfdf;
  --surface:#f3f6f5; --paper:#fff; --green-wash:#eaf2ed; --warm:#9b5638;
  --font:Arial,Helvetica,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.65 var(--font); }
button,input { font:inherit; }
button { color:inherit; cursor:pointer; }
a { color:inherit; text-underline-offset:4px; }
button,a,summary,input { -webkit-tap-highlight-color:transparent; }
a:hover { color:var(--accent); }
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,.table-scroll:focus-visible,#cash-chart:focus-visible {
  outline:3px solid #ad632d; outline-offset:4px;
}
[hidden] { display:none!important; }
::selection { background:#dceade; }
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3,h4 { line-height:1.25; }
.wrap { width:min(1180px,calc(100% - 96px)); margin-inline:auto; }
.eyebrow { font-size:11px; line-height:1.5; letter-spacing:1.5px; font-weight:700; margin-bottom:16px; color:var(--accent); }
.small,.source { color:var(--muted); font-size:12px; }
.source { font-size:12px; line-height:1.7; margin:16px 0 0; }
.positive { color:#235b48; }
.negative { color:#95492f; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip { position:fixed; z-index:100; top:-100px; left:16px; padding:12px 18px; background:white; border:1px solid var(--ink); }
.skip:focus { top:12px; }
#main:focus { outline:none; }
.arrow-icon { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.5; flex-shrink:0; }

/* Stable navigation and shared controls */
.header { background:#fffffff5; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; backdrop-filter:blur(12px); }
.header-inner { min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:30px; }
.brand { display:flex; gap:12px; align-items:center; text-decoration:none; font-size:14px; font-weight:700; line-height:1.4; flex-shrink:0; }
.brand small { display:block; font-size:11px; font-weight:400; color:var(--muted); margin-top:3px; }
.monogram { display:grid; place-items:center; width:38px; height:38px; color:#fff; background:var(--ink); font:19px Georgia,serif; }
.header nav { display:flex; align-items:center; gap:26px; font-size:12px; }
.header nav a { text-decoration:none; padding:10px 0; white-space:nowrap; }
.header nav a:last-child { font-weight:700; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:44px; padding:11px 17px; background:var(--ink); border:1px solid var(--ink); color:white; font-size:13px; font-weight:600; line-height:1.4; text-decoration:none; border-radius:3px; }
.button:hover { color:white; background:#31525e; }
.button.secondary { color:var(--ink); background:transparent; border-color:#abbcbd; }
.button.secondary:hover { background:#edf2f0; }
.text-link { display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:13px; line-height:1.6; }
.segmented { display:inline-flex; background:#edf1ef; border:1px solid #cbd6d2; padding:3px; gap:3px; border-radius:4px; width:fit-content; max-width:100%; }
.segmented button { background:none; border:0; padding:9px 16px; min-height:40px; font-size:12px; font-weight:600; line-height:1.4; border-radius:2px; white-space:nowrap; }
.segmented button[aria-pressed=true] { color:white; background:var(--ink); box-shadow:0 1px 3px #142c321a; }
.segmented button:not([aria-pressed=true]):hover { background:#dfe8e3; }
.small-tag { color:var(--muted); border:1px solid #c6d6cc; font-size:10px; letter-spacing:.8px; font-weight:600; line-height:1.4; padding:5px 7px; border-radius:3px; white-space:nowrap; }

/* First minute: objective, conclusion and comparable alternatives */
.overview { padding-block:36px 46px; }
.project-meta { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:24px; }
.project-meta .eyebrow { margin:0; }
.project-meta>span { font-size:11px; color:var(--muted); }
.project-meta>span>span { margin:0 9px; color:#82938f; }
.overview-intro { display:grid; grid-template-columns:1.55fr 1fr; gap:70px; align-items:start; }
h1 { font-size:44px; font-weight:600; letter-spacing:-1.8px; line-height:1.12; margin:0 0 18px; }
.lead { font-size:18px; font-weight:500; margin:0 0 8px; }
.intro-description { max-width:570px; color:var(--muted); font-size:15px; line-height:1.8; margin:0 0 23px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.scope-facts { display:flex; gap:40px; margin:26px 0 0; }
.scope-facts dt { color:var(--muted); font-size:11px; }
.scope-facts dd { margin:4px 0 0; font-size:19px; font-weight:500; letter-spacing:-.4px; }
.scope-facts dd span { font-size:12px; font-weight:400; }
.finding-panel { border:1px solid #cdded2; background:#eff5f0; padding:24px 27px; border-radius:4px; }
.finding-panel .eyebrow { margin-bottom:12px; }
.finding-panel h2 { font-size:25px; font-weight:600; letter-spacing:-.6px; margin-bottom:13px; }
.finding-panel>p:not(.eyebrow,.finding-caveat) { font-size:13px; line-height:1.8; color:#49635b; margin-bottom:18px; }
.finding-number { display:flex; align-items:center; gap:15px; padding-block:14px; border-block:1px solid #cbdccf; }
.finding-number strong { font-size:29px; line-height:1.2; font-weight:500; letter-spacing:-1px; color:#235b48; }
.finding-number>span { font-size:11px; line-height:1.6; max-width:115px; color:#466359; }
.finding-caveat { display:flex; align-items:start; gap:8px; font-size:11px; color:#436052; margin:15px 0 9px; }
.status-dot { width:6px; height:6px; background:#527d61; border-radius:50%; flex-shrink:0; margin-top:6px; }
.finding-panel .text-link { font-size:11px; }
.overview-comparison { margin-top:32px; }
.subheading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:14px; }
.subheading h2,.subheading h3 { font-size:16px; font-weight:600; margin:0; }
.subheading>span { font-size:11px; color:var(--muted); }
.option-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.option-card { border:1px solid var(--line); padding:18px 20px; border-radius:4px; background:#fff; }
.option-card.preferred { border-color:#a9c5b4; background:#f5f9f5; }
.option-title { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.option-title h3 { font-size:15px; margin:0; font-weight:600; }
.option-tag { width:25px; height:25px; flex-shrink:0; display:inline-grid; place-items:center; font-size:12px; font-weight:700; border-radius:2px; }
.option-tag.a { color:#536963; background:#edf1ee; }
.option-tag.b { color:#955c3d; background:#f2e6dd; }
.option-tag.c { color:#2a604b; background:#e0eee3; }
.option-title .small-tag { margin-left:auto; font-size:8px; letter-spacing:.5px; padding:3px 5px; }
.option-card>p { color:var(--muted); font-size:11px; margin:10px 0 15px; }
.option-card dl { margin:0; }
.option-card dl>div { display:flex; justify-content:space-between; gap:12px; align-items:baseline; font-size:12px; margin-top:8px; }
.option-card dt { color:var(--muted); }
.option-card dd { margin:0; font-weight:600; text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.option-card dd span { font-weight:400; color:var(--muted); font-size:10px; }
.option-card dl>div:last-child { border-top:1px solid #dce4de; margin-top:12px; padding-top:12px; }

/* Sections and progressive disclosure */
.section { padding-block:52px; scroll-margin-top:18px; }
.soft-section { background:var(--surface); border-block:1px solid var(--line); }
.section-heading { max-width:780px; margin-bottom:28px; }
.section-heading .eyebrow { margin-bottom:12px; }
.section-heading h2,.recommendation-heading h2 { font-size:30px; line-height:1.25; letter-spacing:-.85px; font-weight:600; margin-bottom:14px; }
.section-heading>p:not(.eyebrow) { color:var(--muted); font-size:15px; line-height:1.8; margin-bottom:0; max-width:760px; }
.panel { background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:25px; min-width:0; }
.panel-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; }
.panel-heading h3 { font-size:17px; margin:0; font-weight:600; }
.panel-heading h4 { font-size:15px; margin:0; font-weight:600; }
.panel-heading .chart-caption { margin:6px 0 0; }
.disclosure { background:#fff; border:1px solid var(--line); border-radius:4px; margin-top:14px; min-width:0; }
summary { list-style:none; cursor:pointer; position:relative; padding:18px 48px 18px 21px; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:13px; }
summary::-webkit-details-marker { display:none; }
summary:after { content:'+'; position:absolute; right:20px; top:50%; transform:translateY(-50%); font-size:23px; font-weight:400; color:#4e6b60; }
details[open]>summary:after { content:'−'; }
summary strong { font-size:14px; font-weight:600; }
summary small { display:block; color:var(--muted); font-size:12px; margin-top:3px; font-weight:400; }
.disclosure-badge { font-size:9px; letter-spacing:.8px; font-weight:600; color:#526d60; white-space:nowrap; }
details[open]>summary { border-bottom:1px solid var(--line); }
.disclosure-content { padding:24px; }
.disclosure-content>p { font-size:14px; color:var(--muted); }
.disclosure-content h3 { font-size:17px; font-weight:600; margin-bottom:12px; }
.inline-disclosure { border-top:1px solid var(--line); margin-top:18px; }
.inline-disclosure>summary { padding:15px 25px 15px 0; font-size:12px; font-weight:600; }
.inline-disclosure>summary:after { right:0; font-size:20px; }
.inline-disclosure[open]>summary { border-bottom:0; }
.technical-grid { display:grid; grid-template-columns:1fr 1fr; gap:38px; }
.technical-grid>div { min-width:0; }
.technical-grid p,.detail-list { color:var(--muted); font-size:13px; line-height:1.8; }
code { display:block; padding:12px; background:#f2f5f2; white-space:normal; font:12px/1.7 monospace; color:#325747; }
.detail-list { padding-left:18px; margin:0; }
.detail-list li { padding-left:3px; margin-bottom:13px; }

/* Engineering and the useful primary chart */
.engineering-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:60px; align-items:start; margin-bottom:22px; }
.approach { padding-top:8px; }
.approach h3 { font-size:17px; font-weight:600; margin-bottom:22px; }
.approach-steps { list-style:none; padding:0; margin:0; }
.approach-steps li { display:flex; gap:17px; padding-bottom:20px; }
.approach-steps li>span { width:28px; height:28px; background:#e1eae5; color:#416353; font:11px/28px monospace; text-align:center; border-radius:50%; flex-shrink:0; }
.approach-steps h4 { font-size:14px; font-weight:600; margin:2px 0 6px; }
.approach-steps p { color:var(--muted); font-size:13px; line-height:1.8; margin:0; }
.method-callout { border-left:2px solid #5d8c74; padding:12px 0 12px 18px; margin-top:9px; }
.method-callout>strong { display:block; font-size:12px; color:#2e5e49; margin-bottom:6px; }
.method-callout p { margin:0; color:var(--muted); font-size:13px; line-height:1.8; }
.chart-caption { font-size:12px; color:var(--muted); margin:17px 0; }
.legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px; font-size:11px; color:var(--muted); margin-bottom:24px; }
.legend span { display:flex; gap:6px; align-items:center; }
.legend i { width:10px; height:10px; display:inline-block; border-radius:1px; }
.chiller { background:#274d5b; }.fans { background:#688e84; }.pumps { background:#a6bbb1; }.tower { background:#caa17e; }.other { background:#d6ddda; }
.energy-row { margin-top:21px; }
.energy-row-head { display:flex; justify-content:space-between; gap:15px; align-items:baseline; margin-bottom:8px; font-size:12px; }
.energy-row-head strong { font-size:14px; font-weight:600; font-variant-numeric:tabular-nums; }
.energy-row-head strong small { font-size:10px; font-weight:400; }
.energy-track { height:27px; background:#eff3f0; border-radius:2px; }
.energy-stack { display:flex; height:100%; }
.energy-segment { display:block; height:100%; position:relative; }
.energy-segment:focus-visible,.energy-segment:hover { outline:2px solid var(--ink); outline-offset:2px; z-index:1; }
.energy-row-note { text-align:right; font-size:11px; margin-top:5px; color:var(--muted); }
.chart-note { color:var(--muted); font-size:12px; line-height:1.8; margin:20px 0 0; }
.chart-note strong { color:#2c604e; }
.schematic-grid { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.detail-intro { max-width:850px; margin-bottom:24px; }
.system-diagram { max-width:430px; width:100%; margin:auto; }
.bas { border:1px dashed #94aa9c; padding:12px; text-align:center; background:#eef4ee; font-size:12px; }
.bas span { display:block; font-size:11px; color:#536f60; }
.heat-label { font-size:11px; color:#91583d; text-align:center; padding:15px 0 8px; }
.system-node { width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #a8bdb0; border-radius:2px; background:#f9fbf8; padding:12px 15px; text-align:left; font-size:13px; min-height:48px; }
.system-node.selected { border-color:#47775b; background:#e8f1e7; box-shadow:inset 3px 0 #47775b; }
.system-node small { display:block; color:#4f6a60; font-size:11px; margin-top:2px; }
.node-symbol { color:#48705d; font-size:18px; }
.circuit-line { text-align:center; color:#91583d; font-size:11px; padding:9px; }.circuit-line.blue { color:#3f6d7d; }
.node-pair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.air-line { display:flex; justify-content:space-around; font-size:11px; padding:12px 0; color:#5a7375; }
.office { text-align:center; border:1px solid #bdcdbf; background:#f1f5ef; font-size:13px; padding:11px; }
.office span { display:block; font-size:11px; color:#526a5e; }
#component-detail { border-left:2px solid #5a826b; padding-left:20px; }
#component-detail strong { display:block; font-size:18px; line-height:1.4; }
#component-detail p { color:var(--muted); font-size:14px; margin:13px 0 0; }
.schematic-description .source { margin:25px 0 20px; }
.savings-bridge { margin:16px 0; }
.savings-bridge>div { margin-bottom:18px; }.savings-bridge dt { font-size:12px; color:var(--muted); }.savings-bridge dd { margin:5px 0 0; font-size:13px; }

/* Financial table and optional cash flow */
.finance-intro { display:flex; justify-content:space-between; align-items:center; gap:25px; margin-bottom:18px; }
.finance-intro>p { display:flex; gap:15px; align-items:center; font-size:13px; margin:0; }
.finance-intro>p>span { color:var(--muted); font-size:12px; }
.table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
table { width:100%; border-collapse:collapse; text-align:right; font-size:12px; font-variant-numeric:tabular-nums; }
caption { text-align:left; font-size:12px; color:var(--muted); margin:12px 0; }
th,td { padding:12px 14px; border-bottom:1px solid var(--line); white-space:nowrap; }
th:first-child { text-align:left; }thead { background:#edf2ef; font-size:11px; color:#415f55; }
tbody th { font-weight:400; }tbody td { font-weight:500; }
.financial-table-wrap { border:1px solid var(--line); border-radius:4px; }
.financial-table { font-size:14px; min-width:600px; }
.financial-table th,.financial-table td { padding:15px 22px; }
.financial-table thead { background:#f1f5f2; font-size:13px; }
.financial-table thead span { color:#46675b; margin-right:6px; font-size:11px; }
.financial-table th small { display:block; color:var(--muted); font-size:11px; margin-top:3px; font-weight:400; }
.financial-table .c-column { background:#edf5ee; }
.financial-table .npv-row { font-weight:600; border-block:1px solid #a6bdb0; }
.financial-table .npv-row td,.financial-table .npv-row th { font-weight:600; }
.financial-table tbody tr:last-child>* { border-bottom:0; }
.finance-takeaway { display:flex; gap:14px; align-items:start; background:#f2f6f4; padding:17px 20px; margin-top:18px; border-radius:3px; }
.takeaway-mark { font-size:24px; line-height:1.2; color:#4f7a5d; }
.finance-takeaway p { font-size:13px; color:var(--muted); line-height:1.8; margin:0; }.finance-takeaway strong { color:var(--ink); }
.option-b { background:#a66745; }.option-c { background:#356f5d; }
#cash-chart svg { display:block; width:100%; }
.chart-axis { font-family:var(--font); font-size:12px; fill:#526b70; }
.chart-point { cursor:pointer; }
.chart-point:hover,.chart-point:focus { r:6; stroke:var(--ink); stroke-width:2; outline:none; }
.chart-tooltip { border:1px solid #d2ded5; background:#f2f7f1; color:#355b49; padding:10px 14px; font-size:12px; margin-top:10px; min-height:42px; }

/* Scenarios: clear selection, readable exact values, one shared scale */
.scenario-toolbar { display:flex; justify-content:space-between; gap:25px; align-items:center; padding-bottom:22px; border-bottom:1px solid var(--line); }
.scenario-toolbar h3 { font-size:17px; font-weight:600; margin:0 0 5px; }.scenario-toolbar .small { margin:0; }
.scenario-content { display:grid; grid-template-columns:1.05fr 1fr; gap:40px; margin-top:25px; }
.scenario-chart { min-width:0; }.scenario-chart .panel-heading { margin-bottom:21px; }
.npv-row { margin-bottom:19px; }
.npv-row-head { display:flex; align-items:baseline; justify-content:space-between; gap:20px; font-size:12px; margin-bottom:7px; }
.npv-row-head strong { font-size:15px; font-weight:600; font-variant-numeric:tabular-nums; }
.npv-track { height:25px; position:relative; background:repeating-linear-gradient(to right,#edf1ee 0,#edf1ee 1px,transparent 1px,transparent 20%); }
.npv-track:before { content:''; position:absolute; left:80%; top:-3px; bottom:-3px; border-left:1px solid #779688; z-index:1; }
.npv-bar { position:absolute; top:0; height:100%; border-radius:1px; }
.npv-bar.a { background:#879d91; }.npv-bar.b { background:#c5987a; }.npv-bar.c { background:#5a8b72; }
.npv-axis { position:relative; height:25px; font-size:11px; color:var(--muted); margin-top:-2px; }.npv-axis span { position:absolute; transform:translateX(-50%); }.npv-axis span:first-child { transform:none; }.npv-axis span:last-child { transform:translateX(-100%); }
.scenario-outcome { border-left:1px solid var(--line); padding-left:30px; }
.scenario-outcome .eyebrow { margin-bottom:10px; }
#scenario-verdict { color:var(--muted); font-size:13px; line-height:1.8; }
#scenario-verdict strong { font-weight:600; display:block; color:var(--ink); font-size:18px; line-height:1.35; margin-bottom:8px; }
.scenario-assumptions { display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; margin:20px 0 0; }
.scenario-assumptions dt { font-size:11px; color:var(--muted); }.scenario-assumptions dd { font-size:14px; font-weight:600; margin:2px 0 0; }
.risk-overview { margin:32px 0 22px; scroll-margin-top:100px; }
.risk-heading { display:flex; align-items:start; justify-content:space-between; gap:40px; margin-bottom:20px; }
.risk-heading h3 { font-size:18px; font-weight:600; margin-bottom:0; max-width:320px; }.risk-heading>p { font-size:13px; color:var(--muted); margin:0; max-width:570px; }
.risk-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:27px; }
.risk-grid article { border-top:1px solid #aabfb4; padding-top:16px; }
.risk-index { font:11px monospace; color:#4a6c58; }.risk-grid h4 { font-size:14px; font-weight:600; margin:9px 0; }.risk-grid p { color:var(--muted); font-size:13px; margin:0; line-height:1.8; }
.sensitivity-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.sensitivity-controls label { display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:13px; font-weight:600; margin-bottom:12px; }
.sensitivity-controls output { font-weight:400; font-size:12px; color:#3b6351; }
input[type=range] { width:100%; accent-color:#306d55; height:30px; cursor:pointer; }
.range-ends { display:flex; justify-content:space-between; color:var(--muted); font-size:11px; margin:0 0 23px; }
.sensitivity-controls .button { font-size:12px; }
.sensitivity-result { border-left:1px solid var(--line); padding-left:35px; }
.sensitivity-result .eyebrow { margin-bottom:14px; }.sensitivity-result>strong { font-size:38px; font-weight:500; letter-spacing:-1px; color:#2a6450; line-height:1.2; }.sensitivity-result>strong.negative { color:#95492f; }
.sensitivity-result>p { color:var(--muted); font-size:13px; margin-top:14px; line-height:1.8; }
.sensitivity-result dl { margin:18px 0 0; border-top:1px solid var(--line); padding-top:15px; }.sensitivity-result dl>div { display:flex; justify-content:space-between; align-items:baseline; gap:20px; font-size:12px; margin-top:7px; }.sensitivity-result dt { color:var(--muted); }.sensitivity-result dd { margin:0; font-weight:600; }
.heatmap td.positive { background:#e5f0e4; color:#28553b; }.heatmap td.negative { background:#f3e9e2; color:#82462c; }.heatmap .base-cell { outline:2px solid #577a52; outline-offset:-3px; }
.validation-note { background:#eef4ed; border:1px solid #ccdcca; padding:20px; margin-top:25px; border-radius:3px; }.validation-note>strong { font-size:15px; }.validation-note p { color:var(--muted); font-size:13px; margin:8px 0 14px; }

/* Recommendation is explicit, with a short next-action list */
.recommendation-heading { max-width:850px; }.recommendation-heading .eyebrow { margin-bottom:12px; }.recommendation-heading>p:not(.eyebrow) { color:var(--muted); font-size:15px; max-width:750px; }
.recommendation-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:65px; margin-top:28px; padding-top:25px; border-top:1px solid var(--line); }
.recommendation-grid h3 { font-size:16px; font-weight:600; margin-bottom:17px; }
.recommendation-reasons ul { list-style:none; padding:0; margin:0; }.recommendation-reasons li { display:flex; gap:13px; font-size:13px; }.recommendation-reasons li>span { color:#2c6b50; }.recommendation-reasons p { color:var(--muted); line-height:1.8; margin-bottom:16px; }.recommendation-reasons b { color:var(--ink); }
.next-steps { border-left:1px solid var(--line); padding-left:35px; }.next-steps ol { padding-left:18px; color:var(--muted); font-size:13px; line-height:1.8; margin:0; }.next-steps li { padding-left:5px; margin-bottom:10px; }
.recommendation-boundary { border-left:2px solid #63846c; padding-left:16px; margin:25px 0 0; color:#486454; font-size:12px; max-width:910px; }

/* Small, deliberate document library */
.skills-strip { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:20px; }.skills-strip span { font-size:12px; padding:6px 11px; border:1px solid #bdcfc4; background:#fff; border-radius:3px; color:#3d6350; }
.workflow-details { margin-bottom:28px; }.workflow-list { padding-left:24px; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:20px 45px; }.workflow-list li { font-size:13px; color:#4e6c59; padding-left:6px; }.workflow-list b { color:var(--ink); display:block; font-size:14px; margin-bottom:4px; }.workflow-list span { color:var(--muted); line-height:1.7; }
.library-heading { margin-top:26px; }.document-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.document-card { background:white; border:1px solid #d4dfd8; border-radius:4px; padding:22px; display:flex; flex-direction:column; }
.doc-heading { display:flex; align-items:center; gap:12px; margin-bottom:10px; }.file-icon { display:grid; place-items:center; width:37px; height:42px; background:#eff5ef; border:1px solid #cadacc; border-radius:2px; color:#3a644d; font-size:10px; letter-spacing:.5px; flex-shrink:0; }
.document-card h3 { font-size:16px; margin:0 0 3px; font-weight:600; }.doc-size { font-size:11px; color:var(--muted); }.document-card>p { font-size:13px; color:var(--muted); margin:2px 0 18px; }.doc-actions { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:13px; border-top:1px solid var(--line); margin-top:auto; font-size:12px; }
.doc-actions button { background:none; border:0; padding:6px 0; min-height:32px; font-size:12px; text-decoration:underline; text-underline-offset:4px; display:inline-flex; gap:6px; align-items:center; }.doc-actions>a { padding-block:6px; font-size:12px; font-weight:600; }.doc-actions>span { color:var(--muted); font-size:12px; }
.supporting-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }.supporting-grid .document-card { background:#fafcf9; }
.library-footer { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-top:22px; }.library-footer p { font-size:12px; color:var(--muted); margin:0; }.library-footer a { white-space:nowrap; }
.footer { padding-block:28px; display:flex; justify-content:space-between; align-items:start; gap:30px; }.footer strong { font-size:13px; }.footer p { color:var(--muted); font-size:11px; margin:6px 0 0; }.footer>p { margin:0; }.footer>a { font-size:11px; }

/* Native PDF dialog has usable open/download fallbacks */
dialog { border:1px solid #acbfb1; border-radius:5px; padding:24px; background:#f8faf6; color:var(--ink); width:min(1050px,94vw); max-height:94dvh; }
dialog::backdrop { background:#142d37bb; backdrop-filter:blur(4px); }.dialog-header { display:flex; justify-content:space-between; align-items:center; gap:20px; }.dialog-header .eyebrow { font-size:10px; margin-bottom:5px; }.dialog-header h2 { font-size:23px; margin:0; font-weight:500; }#close-dialog { width:44px; height:44px; border:1px solid #adbeaf; background:none; font-size:25px; flex-shrink:0; border-radius:3px; }#pdf-preview { width:100%; height:56dvh; background:#fff; border:1px solid #bdcdbf; }.dialog-actions { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-top:16px; }.load-error { padding:20px; margin:20px; background:#f6e4d7; color:#77391e; }

@media(min-width:1400px) {
  .overview-intro { grid-template-columns:1.5fr 1fr; gap:80px; }.intro-description { max-width:550px; }
}
@media(max-width:1100px) {
  .wrap { width:calc(100% - 64px); }.header nav { gap:20px; }.overview-intro { gap:40px; grid-template-columns:1.4fr 1fr; }h1 { font-size:39px; }.lead { font-size:17px; }.scope-facts { gap:26px; }.finding-panel { padding:23px; }.option-card { padding:18px; }.option-title .small-tag { display:none; }.option-card dl>div { font-size:11px; }.option-card dd span { display:block; }.engineering-grid { gap:35px; }.scenario-content { gap:26px; }.scenario-outcome { padding-left:24px; }.financial-table th,.financial-table td { padding-inline:18px; }
}
@media(max-width:850px) {
  .wrap { width:calc(100% - 44px); }.header-inner { gap:20px; min-height:76px; }.brand { font-size:12px; gap:10px; }.brand small { font-size:10px; }.monogram { width:34px; height:34px; font-size:17px; }.header nav { gap:15px; font-size:11px; }.overview { padding-top:28px; }.project-meta { padding-bottom:23px; }.project-meta>span { font-size:10px; }.overview-intro { gap:28px; grid-template-columns:1.3fr 1fr; }h1 { font-size:33px; letter-spacing:-1px; }.lead { font-size:16px; }.intro-description { font-size:13px; }.hero-actions { gap:9px; }.hero-actions .button { font-size:12px; gap:9px; padding:10px 12px; }.scope-facts { gap:20px; flex-wrap:wrap; }.scope-facts dt { font-size:10px; }.scope-facts dd { font-size:16px; }.finding-panel { padding:20px; }.finding-panel h2 { font-size:23px; }.finding-panel>p:not(.eyebrow,.finding-caveat) { font-size:12px; }.finding-number { gap:12px; flex-wrap:wrap; }.finding-number strong { font-size:28px; }.finding-number>span { max-width:none; }.option-grid { gap:12px; }.option-card { padding:16px; }.option-title { gap:8px; }.option-title h3 { font-size:13px; }.option-card>p { font-size:11px; min-height:36px; }.option-card dl>div { display:block; margin-top:10px; }.option-card dd { text-align:left; margin-top:3px; font-size:14px; }.option-card dd span { display:inline; font-size:10px; }.section { padding-block:44px; }.section-heading h2,.recommendation-heading h2 { font-size:27px; }.section-heading>p:not(.eyebrow) { font-size:14px; }.engineering-grid { gap:25px; grid-template-columns:.9fr 1.1fr; }.panel { padding:20px; }.panel-heading h3 { font-size:16px; }.energy-row-head { gap:10px; }.energy-row-head strong { font-size:13px; }.legend { font-size:10px; gap:12px; }.approach-steps li { gap:12px; }.approach h3 { font-size:16px; }.approach-steps p { font-size:12px; }.method-callout p { font-size:12px; }.scenario-content { grid-template-columns:1.1fr 1fr; gap:22px; }.scenario-outcome { padding-left:20px; }.scenario-assumptions { gap:12px; }.scenario-assumptions dt { font-size:10px; }.scenario-assumptions dd { font-size:13px; }.npv-row-head { font-size:11px; }.npv-row-head strong { font-size:13px; }.risk-heading { gap:30px; }.risk-heading h3 { font-size:17px; }.risk-heading p { font-size:12px; }.risk-grid { gap:23px; }.risk-grid h4 { font-size:13px; }.risk-grid p { font-size:12px; }.recommendation-grid { gap:30px; }.next-steps { padding-left:25px; }.library-footer { gap:20px; align-items:start; }.library-footer p,.library-footer a { font-size:11px; }.footer { flex-wrap:wrap; gap:20px; }
}
@media(max-width:650px) {
  html { scroll-padding-top:120px; }.wrap { width:calc(100% - 36px); }.header-inner { flex-wrap:wrap; gap:10px; padding-block:13px 9px; }.brand { font-size:13px; }.brand small { font-size:10px; }.header nav { width:100%; justify-content:space-between; gap:12px; font-size:11px; }.header nav a { padding:6px 0; }.header nav a:last-child { font-size:11px; }.overview { padding-block:25px 34px; }.project-meta { flex-wrap:wrap; gap:7px; padding-bottom:22px; }.project-meta>span { font-size:11px; }.project-meta .eyebrow { font-size:10px; }.overview-intro { grid-template-columns:1fr; gap:25px; }h1 { font-size:35px; line-height:1.12; margin-bottom:14px; letter-spacing:-1.2px; }.lead { font-size:17px; line-height:1.5; }.intro-description { font-size:14px; line-height:1.75; margin-bottom:18px; }.hero-actions { gap:10px; }.hero-actions .button { font-size:12px; padding:12px 15px; min-height:44px; }.scope-facts { gap:18px; justify-content:space-between; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); flex-wrap:nowrap; }.scope-facts dd { font-size:17px; }.scope-facts dt { font-size:10px; }.scope-facts dd span { font-size:11px; }.finding-panel { padding:20px; }.finding-panel .eyebrow { font-size:10px; margin-bottom:9px; }.finding-panel h2 { font-size:24px; }.finding-panel h2 br { display:none; }.finding-panel>p:not(.eyebrow,.finding-caveat) { font-size:13px; margin-bottom:13px; }.finding-number { flex-wrap:nowrap; gap:18px; padding-block:12px; }.finding-number strong { font-size:28px; }.finding-number>span { max-width:125px; font-size:11px; }.finding-caveat { font-size:11px; margin:13px 0 7px; }.overview-comparison { margin-top:26px; }.subheading { flex-wrap:wrap; gap:6px; margin-bottom:12px; }.subheading h2,.subheading h3 { font-size:16px; }.subheading>span { font-size:11px; }.option-grid { grid-template-columns:1fr; gap:10px; }.option-card { padding:16px; }.option-title h3 { font-size:15px; }.option-title .small-tag { display:inline; font-size:8px; }.option-card>p { font-size:12px; min-height:0; margin:8px 0 13px; }.option-card dl { display:grid; grid-template-columns:.9fr 1fr 1fr; gap:10px; border-top:1px solid #dce4de; padding-top:12px; }.option-card dl>div,.option-card dl>div:last-child { margin:0; padding:0; border:0; display:flex; flex-direction:column; justify-content:space-between; align-items:start; gap:4px; }.option-card dt { font-size:10px; line-height:1.5; min-height:30px; }.option-card dd { font-size:13px; margin:0; text-align:left; }.option-card dd span { display:none; }.source { font-size:11px; }.section { padding-block:36px; }.section-heading { margin-bottom:23px; }.eyebrow { font-size:10px; letter-spacing:1.25px; }.section-heading h2,.recommendation-heading h2 { font-size:26px; line-height:1.3; letter-spacing:-.7px; margin-bottom:12px; }.section-heading>p:not(.eyebrow) { font-size:14px; line-height:1.8; }.engineering-grid { grid-template-columns:1fr; gap:22px; margin-bottom:20px; }.approach { padding-top:0; }.approach h3 { font-size:16px; margin-bottom:19px; }.approach-steps li { padding-bottom:16px; gap:13px; }.approach-steps p { font-size:13px; }.method-callout { margin-top:0; padding-block:8px; }.method-callout p { font-size:13px; }.panel { padding:19px; }.panel-heading { gap:15px; }.panel-heading h3 { font-size:16px; }.small-tag { font-size:8px; padding-inline:6px; }.segmented button { font-size:12px; min-height:40px; padding:9px 13px; }.chart-caption { font-size:12px; }.legend { font-size:10px; gap:12px; }.energy-row-head { font-size:12px; }.energy-row-head strong { font-size:13px; }.energy-row-note { font-size:11px; }.energy-track { height:28px; }.energy-row { margin-top:19px; }.chart-note { font-size:12px; }.disclosure { margin-top:11px; }.disclosure>summary { padding:17px 38px 17px 16px; gap:10px; }.disclosure>summary:after { right:15px; }.disclosure summary strong { font-size:13px; }.disclosure summary small { font-size:11px; margin-top:4px; }.disclosure-badge { display:none; }.disclosure-content { padding:18px; }.technical-grid,.schematic-grid { grid-template-columns:1fr; gap:25px; }.disclosure-content>p,.technical-grid p,.detail-list { font-size:13px; }.schematic-description .eyebrow { margin-bottom:16px; }#component-detail strong { font-size:17px; }#component-detail p { font-size:13px; }.finance-intro { flex-direction:column; align-items:start; gap:13px; }.finance-intro>p { flex-wrap:wrap; gap:5px 12px; font-size:13px; }.finance-intro>p>span { font-size:11px; }.financial-table { min-width:550px; }.financial-table th,.financial-table td { padding:13px 15px; font-size:13px; }.financial-table th small { font-size:10px; }.financial-table th:first-child { min-width:170px; }.finance-takeaway { padding:16px; gap:12px; }.finance-takeaway p { font-size:13px; }.panel-heading:has([data-cash]) { flex-direction:column; align-items:start; gap:15px; }.chart-tooltip { font-size:11px; padding:10px; line-height:1.7; }.scenario-toolbar { flex-direction:column; align-items:start; gap:18px; padding-bottom:20px; }.scenario-toolbar h3 { font-size:16px; }.scenario-toolbar .small { font-size:12px; }.scenario-toolbar .segmented { display:flex; width:100%; }.scenario-toolbar .segmented>button { flex:1; padding-inline:10px; }.scenario-content { grid-template-columns:1fr; gap:15px; margin-top:21px; }.scenario-chart .panel-heading h4 { font-size:14px; }.scenario-chart .panel-heading .small { font-size:11px; }.npv-row-head { font-size:12px; }.npv-row-head strong { font-size:15px; }.npv-track { height:24px; }.npv-row { margin-bottom:17px; }.npv-axis { font-size:11px; height:22px; }.scenario-outcome { border-left:0; border-top:1px solid var(--line); padding:20px 0 0; }.scenario-outcome .eyebrow { font-size:10px; }#scenario-verdict { font-size:13px; }#scenario-verdict strong { font-size:18px; }.scenario-assumptions { grid-template-columns:1fr 1fr; gap:12px 25px; }.scenario-assumptions dt { font-size:11px; }.scenario-assumptions dd { font-size:14px; }.risk-heading { flex-direction:column; gap:12px; margin-bottom:22px; }.risk-heading h3 { font-size:18px; max-width:none; }.risk-heading>p { font-size:13px; }.risk-grid { grid-template-columns:1fr; gap:19px; }.risk-grid article { position:relative; padding:16px 0 0 33px; }.risk-index { position:absolute; left:0; top:18px; }.risk-grid h4 { font-size:14px; margin:0 0 8px; }.risk-grid p { font-size:13px; }.sensitivity-grid { grid-template-columns:1fr; gap:25px; }.sensitivity-controls label { align-items:start; flex-direction:column; gap:5px; font-size:13px; }.sensitivity-controls output { font-size:12px; }.sensitivity-result { border-left:0; border-top:1px solid var(--line); padding:23px 0 0; }.sensitivity-result>strong { font-size:36px; }.sensitivity-result dl>div { font-size:11px; gap:15px; }.recommendation-heading>p:not(.eyebrow) { font-size:14px; }.recommendation-heading h2 br { display:none; }.recommendation-grid { grid-template-columns:1fr; gap:21px; margin-top:22px; padding-top:22px; }.recommendation-grid h3 { font-size:16px; }.recommendation-reasons p { font-size:13px; }.next-steps { padding:20px 0 0; border-left:0; border-top:1px solid var(--line); }.recommendation-boundary { font-size:12px; margin-top:20px; }.skills-strip { gap:7px; }.skills-strip span { font-size:11px; padding:6px 9px; }.workflow-list { grid-template-columns:1fr; gap:18px; padding-left:21px; }.workflow-list b { font-size:13px; }.workflow-list span { font-size:12px; }.document-grid,.supporting-grid { grid-template-columns:1fr; gap:11px; }.document-card { padding:18px; }.document-card h3 { font-size:15px; }.document-card>p { font-size:13px; margin-bottom:14px; }.doc-actions { padding-top:10px; gap:18px; }.doc-actions button,.doc-actions>a { font-size:12px; min-height:38px; }.library-heading { margin-top:25px; }.library-footer { flex-direction:column; gap:13px; padding-top:20px; }.library-footer p,.library-footer a { font-size:12px; }.footer { flex-direction:column; gap:17px; padding-block:25px; }.footer p { font-size:11px; }.footer>a { font-size:12px; }dialog { padding:17px; }.dialog-header h2 { font-size:19px; }.dialog-header .eyebrow { font-size:9px; }.dialog-actions .button,.dialog-actions .text-link { font-size:11px; }.dialog-actions .button { padding:10px; gap:10px; }#pdf-preview { height:53dvh; }
}
@media(max-width:360px) {
  .wrap { width:calc(100% - 30px); }.header nav { font-size:10px; gap:10px; }.header nav a:last-child { font-size:10px; }h1 { font-size:31px; }.lead { font-size:16px; }.hero-actions .button { font-size:11px; padding-inline:11px; }.scope-facts { gap:11px; }.scope-facts dd { font-size:15px; }.scope-facts dt { font-size:9px; }.finding-panel { padding:18px; }.finding-panel h2 { font-size:22px; }.finding-number strong { font-size:26px; }.option-card { padding:14px; }.option-title h3 { font-size:14px; }.option-title .small-tag { font-size:7px; }.option-card dd { font-size:12px; }.option-card dl { gap:7px; }.panel { padding:16px; }.energy-row-head { font-size:11px; }.energy-row-head strong { font-size:12px; }.legend { gap:9px; font-size:9px; }.panel-heading { gap:10px; }.panel-heading h3 { font-size:15px; }.npv-row-head strong { font-size:14px; }.section-heading h2,.recommendation-heading h2 { font-size:24px; }.sensitivity-result dl>div { flex-direction:column; gap:3px; align-items:start; }.doc-actions { gap:10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }* { animation:none!important; transition:none!important; }
}
@media print {
  .header { position:static; }.header nav,.skip,.segmented,dialog { display:none; }.wrap { width:100%; }.section { padding-block:25px; }.overview { padding-block:15px; }.option-card,.finding-panel,.panel { break-inside:avoid; }.overview-intro { gap:30px; }.finding-panel,.preferred,.soft-section { print-color-adjust:exact; }.source { font-size:10px; }.button { color:var(--ink); background:white; }.footer { font-size:10px; }
}

/* Keep the complete comparison in view on a phone; exact values remain accessible. */
.compact-value,.mobile-table-note { display:none; }
.takeaway-mark { width:22px; height:24px; flex-shrink:0; fill:none; stroke:#4f7a5d; stroke-width:1.5; }
.npv-bar.a { width:2px!important; transform:translateX(-1px); }
@media(max-width:650px) {
 .finding-panel { display:flex; flex-direction:column; }
 .finding-panel>.eyebrow { order:0; }.finding-panel>h2 { order:1; }
 .finding-number { order:2; margin-bottom:13px; }
 .finding-panel>p:not(.eyebrow,.finding-caveat) { order:3; margin-bottom:0; }
 .finding-panel>.finding-caveat { order:4; }.finding-panel>.text-link { order:5; }
 .financial-table { min-width:0; table-layout:fixed; }
 .financial-table th,.financial-table td { white-space:normal; padding:12px 6px; }
 .financial-table th:first-child { width:34%; min-width:0; font-size:12px; }
 .financial-table td,.financial-table thead th { width:22%; font-size:12px; }
 .financial-table thead th span { display:block; margin:0 0 2px; font-size:11px; }
 .financial-table th small { font-size:10px; }
 .financial-table .exact-value { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
 .compact-value { display:inline; white-space:nowrap; font-size:12px; }
 .mobile-table-note { display:block; font-size:11px; color:var(--muted); margin:0 0 10px; }
}
@media(max-width:360px) {
 .financial-table th:first-child { width:31%; font-size:11px; }
 .financial-table td,.financial-table thead th { width:23%; padding-inline:4px; font-size:11px; }
 .compact-value { font-size:11px; }
}
