:root{--dark:#171717;--paper:#FAFAFA;--green:#098B6B;--ink-green:#076B53;--muted:#616161;--line:#dedede;--soft:#EEF5F2}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:70px}
html:has(body.brief){scroll-padding-top:60px}
body{margin:0;background:var(--paper);color:var(--dark);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:'DM Serif Display',serif;font-weight:400;line-height:1.08;margin:0}
h1{font-size:clamp(44px,6vw,72px);letter-spacing:-.025em;margin:18px 0 22px}
h2{font-size:clamp(28px,3.4vw,40px);margin:8px 0 14px;max-width:820px}
h3{font-size:24px;margin:0 0 14px}
p{margin:0 0 12px}
a{color:var(--ink-green)}
.shell{max-width:1240px;margin:auto;padding-left:36px;padding-right:36px}
.skip{position:absolute;left:-999px;top:0;background:var(--dark);color:#fff;padding:8px 12px}.skip:focus{left:8px;top:8px;z-index:20}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.print-logo{display:none}
.masthead{background:var(--dark);border-bottom:4px solid var(--green);color:#fafafa}
.masthead .shell{display:flex;align-items:center;justify-content:space-between;padding-top:18px;padding-bottom:18px;gap:28px}
.masthead span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;text-align:right;line-height:1.5}
.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:700;color:var(--ink-green);margin:0 0 10px}
.hero{padding-top:44px;padding-bottom:36px}
.lede{font-size:20px;max-width:820px;margin-bottom:26px}
.decision{display:grid;grid-template-columns:1fr 1fr;gap:28px;border-top:2px solid var(--green);padding-top:20px;max-width:1000px}
.decision strong{display:block;color:var(--ink-green);margin-bottom:4px}
.decision p{margin:0;font-size:15px}
.section-nav{position:sticky;top:0;z-index:5;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-nav .shell{display:flex;gap:26px;overflow:auto;white-space:nowrap;padding-top:13px;padding-bottom:13px}
.section-nav a{color:var(--dark);text-decoration:none;font-size:14px}
.section-nav a:hover{color:var(--ink-green)}
.section{padding-top:48px;padding-bottom:40px}
.section-heading{margin-bottom:26px}
.section-heading p:last-child{max-width:760px;color:var(--muted)}

/* model layout */
.model-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:44px;align-items:start}
.model-side{position:sticky;top:64px;max-height:calc(100vh - 76px);overflow:auto}
.block{padding:30px 0;border-top:1px solid var(--line)}
.block:first-child{border-top:0;padding-top:0}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tile{background:#fff;border:1px solid var(--line);border-top:4px solid var(--c);padding:16px 16px 12px;display:flex;flex-direction:column}
.tile h3{font-size:21px;margin-bottom:6px}
.tile .when{font-size:13px;color:var(--muted);min-height:40px;margin-bottom:10px}
.tile dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 8px}
.tile dt{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.tile dd{margin:0;font-weight:600;font-size:15px}
.tile dl>div:first-child{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid var(--line)}
.tile dl>div:first-child dd{font-size:19px}
.tile .not-included{font-size:12px;color:var(--muted);margin:12px 0 0;line-height:1.4}
.note{font-size:14px;margin:16px 0 0;max-width:820px}
.chart{background:#fff;border:1px solid var(--line);padding:12px 8px 6px;margin-bottom:14px}
.chart svg{width:100%;height:auto;display:block;font-family:'DM Sans',sans-serif}
.chart .grid{stroke:#ececec;stroke-width:1}
.chart .marker{stroke:#9a9a9a;stroke-width:1;stroke-dasharray:3 4}
.chart .tick{font-size:11px;fill:var(--muted)}
.chart .label{font-size:12px;font-weight:600;fill:var(--dark)}
.chart .gap{fill:rgba(9,139,107,.14)}
.read{font-size:15px;max-width:820px}
.read .small,.small{font-size:13px;color:var(--muted)}
.big{font-size:19px;max-width:820px}
.scale{position:relative;height:56px;margin:18px 0 34px;border-bottom:2px solid var(--dark)}
.scale .band{position:absolute;bottom:0;height:22px;background:var(--green);opacity:.85}
.scale .band b{position:absolute;top:4px;left:8px;font-size:11px;white-space:nowrap;color:#fff;font-weight:600}
.scale .fee{position:absolute;bottom:-2px;width:3px;height:36px;background:var(--dark);transform:translateX(-50%)}
.scale .fee b{position:absolute;top:-20px;left:6px;font-size:12px;white-space:nowrap;background:var(--paper);padding:0 4px}
.scale em{position:absolute;top:100%;margin-top:5px;font-size:11px;font-style:normal;color:var(--muted);transform:translateX(-50%);white-space:nowrap}
.scale em:first-of-type{transform:none}.scale em:last-of-type{transform:translateX(-100%)}
.timing-legend{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:14px 0 6px}
.timing-row{display:grid;grid-template-columns:200px 1fr 80px;gap:16px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.timing-row div:first-child strong{display:block;font-weight:600}
.timing-row div:first-child span{font-size:12px;color:var(--muted)}
.track{position:relative;height:16px;background:#ececec}
.track span{position:absolute;top:0;height:100%;background:var(--c)}
.track i{position:absolute;top:-5px;width:2px;height:26px;background:var(--dark)}
.timing-row b{text-align:right;font-weight:600}

/* assumptions panel */
.panel{background:#fff;border:1px solid var(--line);border-top:4px solid var(--green)}
.panel>summary{list-style:none;cursor:default;padding:16px 18px 10px}
.panel>summary::-webkit-details-marker{display:none}
.panel>summary span{font-family:'DM Serif Display',serif;font-size:22px;display:block}
.panel>summary small{font-size:12px;color:var(--muted)}
.controls{padding:0 18px 16px}
.control{padding:12px 0;border-top:1px solid var(--line)}
.control label{display:flex;justify-content:space-between;font-size:13px;font-weight:600;margin-bottom:6px}
.control output{font-weight:400;color:var(--ink-green)}
.control small{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.4}
.control select,.control input[type=number]{width:100%;font:inherit;font-size:14px;padding:7px 8px;border:1px solid #c9c9c9;background:#fff;color:var(--dark)}
.control input[type=range]{width:100%;accent-color:var(--green);margin:4px 0 0}
.presets{display:flex;gap:6px;margin-bottom:6px}
.presets button{flex:1;font:inherit;font-size:13px;padding:5px 0;border:1px solid #c9c9c9;background:#fff;cursor:pointer}
.presets button[aria-pressed=true]{background:var(--dark);color:#fff;border-color:var(--dark)}
.fee-row{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.fee-row input{flex:1;min-width:0}
.more{border-top:1px solid var(--line);padding:10px 0 0}
.more summary{font-size:13px;font-weight:600;cursor:pointer;color:var(--ink-green)}
.button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line);margin-top:10px;font-size:12px;color:var(--muted)}
.button-row button,#print{font:inherit;font-size:13px;padding:7px 14px;border:1px solid var(--dark);background:var(--dark);color:#fff;cursor:pointer}
.button-row button#copy{background:#fff;color:var(--dark)}

/* next steps and appendix */
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-bottom:26px}
.two-column h3{font-size:22px}
.actions{list-style:none;padding:0;margin:0;counter-reset:n;border-top:1px solid var(--line)}
.actions li{display:grid;grid-template-columns:36px 240px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);counter-increment:n}
.actions li::before{content:counter(n,decimal-leading-zero);color:var(--ink-green);font-weight:700;font-size:14px}
.actions strong{font-weight:600}
.actions span{font-size:14px;color:#333}
.appendix{padding-top:20px}
.appendix details{border-top:1px solid var(--line)}
.appendix details:last-child{border-bottom:1px solid var(--line)}
.appendix summary{cursor:pointer;padding:16px 0;display:flex;justify-content:space-between;gap:20px;align-items:baseline}
.appendix summary span{font-family:'DM Serif Display',serif;font-size:22px}
.appendix summary small{font-size:13px;color:var(--muted)}
.appendix details>*:not(summary){padding-bottom:20px}
.three-column{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px}
.three-column h3{font-size:20px}
.three-column p{font-size:14px}
.table-scroll{overflow:auto;margin-bottom:16px}
table{border-collapse:collapse;width:100%;font-size:13px}
caption{text-align:left;font-weight:600;padding:6px 0}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:#f1f1f1;font-size:12px}
.source-list article{padding:10px 0;border-bottom:1px solid var(--line)}
.source-list h4{margin:0 0 4px;font-size:15px}
.source-list p{font-size:13px;margin:0 0 4px;color:#333}
.close{padding:40px 36px;font-size:19px;max-width:1240px}
.close p{max-width:820px}
footer{padding-top:20px;padding-bottom:40px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
footer p{margin:0 0 4px}

@media(max-width:1100px){.tiles{grid-template-columns:repeat(2,1fr)}.tile .when{min-height:0}}
@media(max-width:960px){.model-grid{grid-template-columns:1fr}.model-side{position:static;order:-1;max-height:none;overflow:visible}.panel>summary{cursor:pointer}.panel>summary::after{content:'Show';float:right;font-size:13px;color:var(--ink-green);font-family:'DM Sans',sans-serif}.panel[open]>summary::after{content:'Hide'}.actions li{grid-template-columns:36px 1fr}.actions span{grid-column:2}}
@media(max-width:650px){.shell{padding-left:20px;padding-right:20px}.masthead img{width:128px}.masthead span{font-size:9px}.hero{padding-top:30px}.lede{font-size:17px}.decision{grid-template-columns:1fr;gap:16px}.tiles{grid-template-columns:1fr}.two-column,.three-column{grid-template-columns:1fr;gap:18px}.timing-row{grid-template-columns:1fr 60px;row-gap:6px}.timing-row .track{grid-column:1/-1}.timing-row b{grid-row:1;grid-column:2}.close{padding:30px 20px;font-size:17px}.scale .fee b{left:auto;right:6px}}

@media print{
  @page{size:A4;margin:12mm}
  body{background:#fff;font-size:9.5pt;line-height:1.4}
  .shell{max-width:none;padding-left:0;padding-right:0}
  .masthead{background:#fff;color:#171717;border-bottom:2px solid #171717}.masthead img{display:none}.masthead .print-logo{display:block;width:130px}
  .section-nav,.model-side,.appendix,#print,.skip,footer{display:none}
  .close{break-inside:avoid;border-top:1px solid #dedede;padding-top:10px}
  .model-grid{display:block}
  .hero{padding-top:14px;padding-bottom:14px}h1{font-size:30pt;margin:8px 0 10px}.lede{font-size:11pt;margin-bottom:12px}
  .section{padding-top:14px;padding-bottom:8px}h2{font-size:18pt}h3{font-size:14pt}
  .block{padding:10px 0}.tiles,.chart,.timing-row,.actions li,.decision{break-inside:avoid}h2,h3{break-after:avoid}
  .tiles{grid-template-columns:repeat(4,1fr);gap:8px}.tile{padding:8px 10px;border-top-width:3px}.tile h3{font-size:11pt}.tile .when{min-height:0;font-size:7.5pt;margin-bottom:6px}.tile dl{grid-template-columns:1fr;gap:4px}.tile dl>div:first-child{padding-bottom:4px}.tile dt{font-size:7pt}.tile dd{font-size:9pt}.tile dl>div:first-child dd{font-size:11pt}.tile .not-included{font-size:7pt;margin-top:6px}
  .chart{border:0;padding:0}.chart svg{max-height:200px}
  .read,.big{font-size:9.5pt}
  .actions li{padding:6px 0;grid-template-columns:28px 190px 1fr;gap:10px}.actions span{grid-column:auto;font-size:9pt}.two-column{gap:20px;margin-bottom:12px}.two-column h3{font-size:12pt}
  .close{padding:16px 0;font-size:11pt}
  .chart .gap{fill:#dfeeea}
}

/* shared page nav, findings, checklist, exec slides */
.page-nav{background:#fff;border-bottom:1px solid var(--line)}
.page-nav .shell{display:flex;gap:24px;padding-top:10px;padding-bottom:10px;font-size:13px;overflow:auto;white-space:nowrap}
.page-nav a{color:var(--muted);text-decoration:none;padding-bottom:2px}
.page-nav a[aria-current]{color:var(--dark);font-weight:600;border-bottom:2px solid var(--green)}
.findings{list-style:none;padding:0;margin:0;counter-reset:f;max-width:900px}
.findings li{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:16px 0;border-top:1px solid var(--line);counter-increment:f;font-size:15px}
.findings li::before{content:counter(f,decimal-leading-zero);font-family:'DM Serif Display',serif;font-size:26px;color:var(--ink-green);line-height:1}
.findings strong{display:block;font-size:17px;margin-bottom:4px}
.checklist{list-style:none;padding:0;margin:0;max-width:820px}
.checklist li{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.checklist li::before{content:'';width:16px;height:16px;border:2px solid var(--dark);margin-top:3px}
.checklist strong{display:block;grid-column:2}.checklist span{font-size:14px;color:#333;grid-column:2}
.inline-fee{display:flex;align-items:center;gap:8px;margin:16px 0 18px;font-size:14px;color:var(--muted);flex-wrap:wrap}
.inline-fee label{font-weight:600;color:var(--dark)}
.inline-fee input{width:150px;font:inherit;font-size:16px;padding:8px;border:1px solid #c9c9c9}
.answer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;margin:8px 0 10px}
.answer article{border-top:2px solid var(--green);padding-top:14px}
.answer h3{font-size:21px}.answer p{font-size:15px}
.slide{min-height:calc(100vh - 110px);display:flex;flex-direction:column;justify-content:center;padding-top:44px;padding-bottom:44px;border-top:1px solid var(--line)}
.slide:first-of-type{border-top:0}
.slide h2{font-size:clamp(32px,4.2vw,52px);max-width:900px}
.slide .lede{font-size:clamp(18px,1.8vw,22px)}
.slide .big{font-size:clamp(20px,2vw,26px)}
.slide-pair{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.slide .count{font-size:12px;color:var(--muted);letter-spacing:.1em;margin-top:28px}
.slide .tiles{margin-top:6px}
@media(max-width:960px){.slide-pair,.answer{grid-template-columns:1fr}.slide{min-height:0}}
@media print{.page-nav{display:none}.slide{min-height:0;display:block;break-after:page;padding:10px 0}.slide:last-of-type{break-after:auto}.slide-pair{gap:20px}.answer{gap:14px}}

.verdicts table{font-size:14px}
.verdicts th,.verdicts td{padding:12px 12px 12px 0;vertical-align:top}
.verdicts thead th{background:none;border-bottom:2px solid var(--dark);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.verdicts tbody th{font-weight:600;width:19%}
.verdicts td:nth-child(2),.verdicts td:nth-child(3){white-space:nowrap;color:#333}
.verdicts td strong{display:block;color:var(--ink-green);margin-bottom:2px}
.verdicts td:nth-child(5){color:var(--muted)}
@media print{.verdicts table{font-size:8.5pt}.verdicts th,.verdicts td{padding:6px 8px 6px 0}}

.situation{font-size:17px;max-width:820px;margin:0 0 20px;padding:14px 18px;background:#fff;border-left:4px solid var(--green)}
.analogy{font-size:16px;color:var(--muted);font-style:italic;max-width:820px}
.tile .term{font-size:11px;color:var(--muted);margin:0 0 10px;letter-spacing:.02em}
.caption{font-size:13px;color:var(--muted);margin:0 6px 10px}
.glossary{margin:22px 0 0;max-width:900px;border-top:1px solid var(--line)}
.glossary summary{cursor:pointer;padding:12px 0;font-weight:600;color:var(--ink-green)}
.glossary dl{margin:0 0 10px;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}
.glossary dt{font-weight:600;font-size:14px}.glossary dd{margin:0;font-size:13px;color:#333}
@media(max-width:650px){.glossary dl{grid-template-columns:1fr}.situation{font-size:15px}}
@media print{.situation{padding:8px 12px;font-size:10pt;margin-bottom:10px}.analogy{font-size:9.5pt}.glossary{display:none}.tile .term{font-size:7pt}.caption{font-size:8pt}}

/* Scenario grid (findings): pick on its own line, then the empty-desk and flip notes. */
.grid-table td strong,.grid-table td small{display:block}
.grid-table td small{margin-top:4px;color:var(--muted,#5f5f5f);font-size:.82em;line-height:1.35}

/* ---------------------------------------------------------------- One-page brief */
.photo-hero{position:relative;background:var(--dark);color:#fafafa;overflow:hidden}
.photo-hero img{display:block;width:100%;height:min(52vh,520px);object-fit:cover;object-position:center 40%;filter:saturate(.9)}
.photo-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,23,23,.05) 15%,rgba(23,23,23,.55) 50%,rgba(23,23,23,.85) 100%)}
.photo-hero-text{position:absolute;left:0;right:0;bottom:28px;z-index:1}
.photo-hero-text .eyebrow{color:#cfe9e0}
.photo-hero-text h1{color:#fff;max-width:880px;margin:6px 0 0}
.brief-top .situation{margin-top:28px}
.brief-lede{font-family:'DM Serif Display',serif;font-size:clamp(24px,3vw,34px);line-height:1.2;margin:22px 0 12px;max-width:920px}
#brief-answer p:not(.brief-lede){max-width:860px;font-size:17px}
.controls-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 22px;align-items:start;margin-top:26px;padding:18px 20px;background:var(--soft);border-top:3px solid var(--green)}
.controls-bar .controls-title{grid-column:1/-1;margin:0;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-green)}
.controls-bar .control{margin:0}
.controls-bar .status{grid-column:1/-1;margin:0;font-size:13px;color:var(--muted)}
.more-detail{margin-top:18px;border-top:1px solid var(--line);padding-top:12px}
.more-detail>summary{cursor:pointer;font-weight:600;color:var(--ink-green)}
.chart .seg-counted{fill:var(--c)}
.chart .seg-tail{fill:var(--c);opacity:.35}
.chart .seg-est{fill:#B08D57;opacity:.75}
.chart .seg-unpriced{fill:#fff;stroke:#9a9a9a;stroke-dasharray:3 3}
.chart .bar-ok{fill:#cfe3dc}
.chart .bar-late{fill:#f2c9bd}
.chart .bar-min{fill:var(--c);opacity:.85}
.chart .buffer-band{fill:#f6e7c9;opacity:.7}
.chart .deal-end{stroke:var(--dark);stroke-width:2}
.caption .key{display:inline-block;width:12px;height:12px;vertical-align:-1px;margin:0 4px 0 10px;border:1px solid transparent}
.caption .key:first-child{margin-left:0}
.seg-counted-key{background:var(--dark)}.seg-tail-key{background:#bdbdbd}.seg-est-key{background:#B08D57}.seg-unpriced-key{background:#fff;border-color:#9a9a9a!important;border-style:dashed!important}
.scorecard{font-size:14px;min-width:760px}
.scorecard th small,.scorecard td small{display:block;font-weight:400;color:var(--muted);font-size:12px;line-height:1.35;margin-top:3px}
.scorecard thead th{border-bottom:3px solid var(--c,var(--dark));vertical-align:bottom}
.scorecard td{vertical-align:top}
.scorecard .dots{font-size:13px;letter-spacing:1px;color:var(--green)}
.scorecard .s1 .dots,.scorecard .s2 .dots{color:#C2562E}
.scorecard tr.total td,.scorecard tr.total th{border-top:2px solid var(--dark);padding-top:10px}
.place{margin:34px 0 0}
.place img{width:100%;height:auto;display:block}
.place figcaption{max-width:860px;margin-top:10px;font-size:14px;color:var(--muted)}
.place figcaption strong{color:var(--dark)}
@media (max-width:959px){.controls-bar{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.controls-bar{grid-template-columns:1fr}.photo-hero img{height:300px}}
@media print{.brief .controls-bar,.brief .more-detail>summary{display:none}.brief .more-detail{display:block}.photo-hero img{height:220px}.place{break-inside:avoid}}

/* Mobile chart pass: charts keep a legible minimum width and scroll inside their own box; chart text steps up. */
@media (max-width:640px){
  .chart{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .chart svg{min-width:600px}
  .chart .tick{font-size:13px}
  .chart .label{font-size:14px}
  .chart .caption{min-width:0}
  .chart::after{content:"Swipe to see the whole chart";display:block;font-size:12px;color:var(--muted);margin-top:6px}
}
/* 29 Sep: the scenario panel sits in the page; once scrolled past, a slim bar pinned to the top shows the scenario and opens the panel as an overlay (no layout shift). */
.controls-bar .controls-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.controls-bar .controls-title span{text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted)}
.panel-close{margin-left:auto;font:inherit;font-size:12px;font-weight:600;text-transform:none;letter-spacing:0;background:var(--dark);color:#fff;border:0;padding:6px 12px;cursor:pointer}
.panel-close[hidden]{display:none}
.controls-dock .shell{padding-left:36px;padding-right:36px}
.scenario-mini{position:fixed;top:0;left:0;right:0;z-index:30;background:var(--dark);color:#fafafa;border-bottom:3px solid var(--green)}
.scenario-mini[hidden]{display:none}
.scenario-mini .shell{display:flex;align-items:center;gap:14px;padding-top:7px;padding-bottom:7px;font-size:13px}
.mini-title{text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:700;color:#cfe9e0;white-space:nowrap}
#scenario-summary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#scenario-toggle{font:inherit;font-weight:600;background:var(--green);color:#fff;border:0;padding:6px 12px;cursor:pointer;white-space:nowrap}
#scenario-toggle:focus-visible,.panel-close:focus-visible{outline:2px solid #cfe9e0;outline-offset:2px}
.scenario-floating.scenario-open .controls-bar{position:fixed;top:44px;left:50%;transform:translateX(-50%);width:min(1168px,calc(100% - 32px));z-index:29;margin:0;max-height:calc(100vh - 60px);overflow:auto;box-shadow:0 18px 40px -18px rgba(23,23,23,.6)}
.grid-table td.current{background:var(--soft);box-shadow:inset 0 0 0 2px var(--green)}
.grid-table .yours{display:block;font-style:normal;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-green);margin-bottom:4px}
.glance{padding-top:36px}
@media (max-width:650px){.controls-dock .shell{padding-left:20px;padding-right:20px}.mini-title{display:none}.scenario-mini .shell{font-size:12px}}
@media print{.scenario-mini,.panel-close{display:none}}
.controls-dock{padding-top:26px}.controls-dock .controls-bar{margin-top:0}
.controls-dock .status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* 29 Sep: fit each section to a laptop screen. Wide screens: heading in a left column, chart and detail beside it; charts capped to the viewport. */
.brief .section{padding-top:40px;padding-bottom:32px}
.brief .chart svg{max-height:max(280px,calc(100vh - 300px))}
.brief .place img{max-height:min(52vh,460px);object-fit:cover;object-position:center 70%}
@media (min-width:1100px){
  .brief .section.split{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);column-gap:44px;align-items:start}
  .brief .section.split>*{grid-column:2;min-width:0}
  .brief .section.split>.section-heading{grid-column:1;grid-row:1/span 8;margin-bottom:0;position:sticky;top:64px}
  .brief .section.split h2{font-size:clamp(26px,2.3vw,32px)}
  .brief .section.split .section-heading p:last-child{font-size:15px}
  .brief .section.split .read{max-width:none}
  .brief .chart svg{max-height:max(280px,calc(100vh - 230px))}
  .brief #beyond .place{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:32px;align-items:end}
  .brief #beyond .place figcaption{margin-top:0}
}
@media print{.brief .section.split{display:block}.brief .section.split>.section-heading{position:static}}
.photo-hero img[src*="london-aerial"]{object-position:center 12%}
