/* Sustainable Endowments Institute
   Concept: the specimen and the ledger. A tree ring for every year of work,
   measured and annotated like a specimen plate, set beside the pale green of
   an accountant's ledger. One drawing language (fine concentric linework),
   large flat fields of colour, hairline rules, and a double rule to close a total.

   Layout: 12-column grid, 1440px measure. Sections alternate between a
   heading rail (4 columns) with content (8 columns) and full-bleed fields. */

@font-face{font-family:"Spectral";src:url("fonts/spectral-latin-200-normal.woff2") format("woff2");font-weight:200;font-display:swap}
@font-face{font-family:"Spectral";src:url("fonts/spectral-latin-300-normal.woff2") format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:"Spectral";src:url("fonts/spectral-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Spectral";src:url("fonts/spectral-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Spectral";src:url("fonts/spectral-latin-300-italic.woff2") format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Spectral";src:url("fonts/spectral-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url("fonts/libre-franklin-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-display:swap}

:root{
  color-scheme:light;
  /* Colour */
  --pine:#0E3A2F;
  --pine-deep:#082A22;
  --pine-mid:#2F6B57;
  --indigo:#1D2A78;
  --indigo-deep:#151F5E;
  --link:#2136B4;
  --celadon:#DCE7D8;
  --lichen:#EEF2E6;
  --paper:#FBFCF8;
  --ink:#13221C;
  --muted:#4A5D54;
  --sprout:#CBE894;
  --rule:rgba(14,58,47,.2);
  --rule-strong:rgba(14,58,47,.72);
  --on-dark:#F3F7EF;
  --on-dark-2:rgba(243,247,239,.78);
  --rule-dark:rgba(243,247,239,.24);
  /* Era colours, used on the home and history pages */
  --e1:var(--pine);--e2:var(--pine-mid);--e3:var(--indigo);--e4:var(--sprout);
  /* Type */
  --serif:"Spectral",Georgia,"Times New Roman",serif;
  --sans:"Libre Franklin",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  /* Space */
  --gutter:clamp(18px,4vw,64px);
  --col-gap:clamp(16px,2vw,32px);
  --section:clamp(72px,9.5vw,152px);
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:104px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:clamp(18px,1.2vw,19.5px);line-height:1.62;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-variant-numeric:lining-nums}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,table,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
img,svg{display:block;max-width:100%}
/* Images carry width and height attributes so the browser reserves their space before they load; keep their proportions wherever CSS sets only the width */
img{height:auto}
/* Visually hidden, still read by screen readers, search engines and AI agents */
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
/* Anchored sections (redirect targets and in-page links) clear the sticky header */
#billion-dollar-green-challenge,#funding,.year[id],#team h3[id]{scroll-margin-top:120px}
a{color:inherit}
::selection{background:var(--sprout);color:var(--pine-deep)}
:focus-visible{outline:2px solid var(--link);outline-offset:3px;border-radius:2px}
.on-dark :focus-visible,.on-indigo :focus-visible{outline-color:var(--sprout)}
.skip{position:absolute;left:-9999px;top:12px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;font-family:var(--sans);font-size:15px}
.skip:focus{left:16px}
.tbd{background:#FFE9A8;color:#3B2A00;border-bottom:1.5px dashed #B98000;padding:0 .25em}

.wrap{width:100%;max-width:1568px;margin-inline:auto;padding-inline:var(--gutter)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}

/* ---------- Type ---------- */
.display{font-weight:200;font-size:clamp(44px,6.5vw,104px);line-height:1.01;letter-spacing:-.026em;text-wrap:balance}
.title{font-weight:300;font-size:clamp(31px,3.5vw,54px);line-height:1.08;letter-spacing:-.018em;text-wrap:balance}
.subtitle{font-weight:400;font-size:clamp(23px,1.9vw,29px);line-height:1.22;letter-spacing:-.008em}
.lead{font-weight:300;font-size:clamp(21px,1.75vw,27px);line-height:1.4;letter-spacing:-.006em;max-width:31em;text-wrap:pretty}
.prose p{max-width:34em;text-wrap:pretty}
.prose p+p{margin-top:1em}
.prose a:not(.btn),.link{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);transition:text-decoration-color .15s ease}
.prose a:not(.btn):hover,.link:hover{text-decoration-color:currentColor}
.on-dark .prose a:not(.btn),.on-dark .link{color:var(--sprout)}
.on-indigo .link,.on-indigo .prose a:not(.btn){color:#fff}
.sans{font-family:var(--sans)}
.small{font-family:var(--sans);font-size:15px;line-height:1.5}
.note{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--muted);max-width:44em}
.on-dark .note,.on-indigo .note{color:var(--on-dark-2)}
cite,.work{font-style:italic}
/* A short sans label. Used only where it tells the reader something the heading does not. */
.kicker{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:14px;font-weight:500;line-height:1.3;letter-spacing:.01em;margin-bottom:clamp(16px,1.6vw,24px)}
.kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pine-mid);flex:none}
.on-dark .kicker::before,.on-indigo .kicker::before{background:var(--sprout)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:10px 26px;border-radius:999px;font-family:var(--sans);font-weight:500;font-size:15.5px;line-height:1.2;letter-spacing:.004em;text-decoration:none;background:var(--pine);color:var(--on-dark);border:1px solid var(--pine);transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.btn:hover{background:var(--pine-deep);border-color:var(--pine-deep)}
.btn.ghost{background:transparent;color:var(--pine);border-color:var(--rule-strong)}
.btn.ghost:hover{background:var(--pine);color:var(--on-dark);border-color:var(--pine)}
.on-dark .btn,.on-indigo .btn{background:var(--on-dark);color:var(--pine);border-color:var(--on-dark);white-space:nowrap}
.on-dark .btn:hover,.on-indigo .btn:hover{background:var(--sprout);border-color:var(--sprout);color:var(--pine-deep)}
.on-dark .btn.ghost,.on-indigo .btn.ghost{background:transparent;color:var(--on-dark);border-color:rgba(243,247,239,.46)}
.on-dark .btn.ghost:hover,.on-indigo .btn.ghost:hover{background:var(--on-dark);color:var(--pine);border-color:var(--on-dark)}
.on-indigo .btn{color:var(--indigo-deep)}
/* An arrow marks only the links that leave this site. */
.btn[href^="http"]::after,.ext::after{content:"";width:.62em;height:.62em;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1.5 8.5l7-7M3 1.5h5.5V7' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1.5 8.5l7-7M3 1.5h5.5V7' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .2s var(--ease)}
.btn[href^="http"]:hover::after,.ext:hover::after{transform:translate(2px,-2px)}
.ext{display:inline-flex;align-items:center;gap:.45em}
.actions{display:flex;flex-wrap:wrap;gap:12px 14px;margin-top:clamp(28px,3vw,44px)}

/* ---------- Fields of colour ---------- */
.on-dark{background:var(--pine);color:var(--on-dark)}
.on-indigo{background:var(--indigo);color:#fff}
.on-celadon{background:var(--celadon)}
.on-lichen{background:var(--lichen)}
.on-paper{background:var(--paper)}

/* ---------- Top bar ---------- */
.topbar{background:var(--pine-deep);color:var(--on-dark);font-family:var(--sans);font-size:13.5px;line-height:1.35}
.topbar-in{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:10px}
.topbar a{text-decoration:none}
.topbar a:hover{text-decoration:underline;text-underline-offset:.22em}
.topbar-l{display:flex;align-items:baseline;gap:10px;font-weight:650;font-size:14.5px;letter-spacing:.004em}
.topbar-l::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sprout);flex:none;transform:translateY(-1px)}
.topbar-r{white-space:nowrap}

/* ---------- Header ---------- */
.head{position:sticky;top:0;z-index:40;background:var(--paper);box-shadow:0 1px 0 var(--rule);transition:box-shadow .25s ease}
.head.is-stuck{box-shadow:0 1px 0 var(--rule),0 18px 30px -26px rgba(8,42,34,.55)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:88px;transition:min-height .25s var(--ease)}
.head.is-stuck .head-in{min-height:70px}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--pine);font-family:var(--sans);font-weight:500;font-size:17px;line-height:1.08;letter-spacing:-.012em;flex:none}
.brand .seed{fill:#4F9A3C}
.on-dark .brand .seed{fill:var(--sprout)}
.brand svg{width:56px;height:56px;flex:none}
.menu-btn{display:none;font-family:var(--sans);font-size:15px;font-weight:500;background:none;border:1px solid var(--rule-strong);color:var(--pine);border-radius:999px;padding:10px 20px;cursor:pointer}
.nav-list{display:flex;align-items:center;gap:clamp(20px,2.6vw,44px)}
.nav .nav-top{position:relative;display:inline-flex;align-items:center;gap:7px;background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:15.5px;font-weight:500;letter-spacing:.004em;color:var(--ink);text-decoration:none;padding:12px 0;white-space:nowrap}
.nav .nav-top svg{width:11px;height:11px;transition:transform .2s var(--ease)}
.nav .nav-top::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1.5px;background:var(--pine);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.nav .nav-top:hover::after,.nav .nav-top[aria-current=page]::after,.nav .nav-top.is-current::after,.has-menu.open>.nav-top::after{transform:scaleX(1)}
.nav .btn.nav-cta{min-height:44px;padding:8px 22px;font-size:15px;color:var(--on-dark)}
.nav .btn.nav-cta:hover{background:var(--indigo);border-color:var(--indigo)}
.has-menu .menu-panel{display:none}
.panel-item{display:block;text-decoration:none;color:var(--ink)}
.panel-item strong{display:block;font-weight:400;font-size:22px;line-height:1.18;letter-spacing:-.008em;transition:color .15s ease}
.panel-item small{display:block;font-family:var(--sans);font-size:14px;line-height:1.4;color:var(--muted);margin-top:5px}
.nav .panel-item:hover strong,.nav .panel-item[aria-current=page] strong{color:var(--link)}
@media (min-width:1001px){
  .has-menu.open .nav-top svg{transform:rotate(180deg)}
  .has-menu.open .menu-panel,.has-menu:focus-within .menu-panel{display:block;position:absolute;left:0;right:0;top:100%;background:var(--paper);box-shadow:inset 0 1px 0 var(--rule),0 1px 0 var(--rule),0 34px 48px -30px rgba(8,42,34,.4);padding-block:32px 40px}
  .menu-panel::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:34px}
  .panel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--col-gap)}
  .panel-grid.plain .panel-item{border-top:1px solid var(--rule-strong);padding-top:16px}
  .panel-art{display:block;aspect-ratio:16/9;overflow:hidden;position:relative;margin-bottom:16px}
  .panel-art img{position:absolute;right:-12%;top:-34%;width:72%;max-width:none;transition:transform .7s var(--ease)}
  .panel-item:nth-child(3) .panel-art img{right:0;top:auto;bottom:0;width:190%}
  .panel-item:hover .panel-art img{transform:scale(1.05)}
}
@media (prefers-reduced-motion:no-preference) and (min-width:1001px){
  .has-menu.open .menu-panel{animation:panel .22s var(--ease) both}
}
@keyframes panel{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (max-width:1000px){
  .head-in{min-height:72px}
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);box-shadow:inset 0 1px 0 var(--rule),0 1px 0 var(--rule),0 30px 40px -30px rgba(8,42,34,.4);padding:4px var(--gutter) 24px;max-height:calc(100vh - 110px);overflow-y:auto}
  .nav.open{display:block}
  .nav-list{flex-direction:column;align-items:stretch;gap:0}
  .panel-art{display:none}
  .nav .nav-top{width:100%;justify-content:space-between;font-size:18px;padding:15px 0;border-bottom:1px solid var(--rule)}
  .nav .nav-top::after{display:none}
  .nav .nav-top svg{display:none}
  .has-menu>.nav-top{pointer-events:none;color:var(--muted);font-size:14px;border-bottom:0;padding-bottom:2px;padding-top:22px}
  .has-menu .menu-panel{display:block}
  .has-menu .wrap{padding:0}
  .nav .panel-item{padding:11px 0;border-bottom:1px solid var(--rule)}
  .panel-item strong{font-size:21px}
  .panel-item small{display:none}
  .nav .btn.nav-cta{margin-top:20px;justify-content:center;min-height:50px;font-size:16px}
}
@media (max-width:380px){
  .head-in{gap:10px}
  .brand{font-size:14px;gap:10px}
  .brand svg{width:46px;height:46px}
  .menu-btn{padding:8px 14px}
}

/* ---------- Home hero: the specimen ---------- */
.hero{--H:clamp(620px,82vh,840px);position:relative;overflow:hidden;min-height:var(--H);display:flex;align-items:flex-end}
.hero-art{position:absolute;width:calc(var(--H)*1.3);aspect-ratio:1;top:calc(var(--H)*-.207);right:calc(clamp(400px,31vw,560px) - var(--H)*.588);pointer-events:none}
.hero-slab{position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,transparent 8%,#000 46%);mask-image:linear-gradient(90deg,transparent 8%,#000 46%)}
.hero-slab>img{position:absolute;inset:0;width:100%;height:100%}
.hero-rings{position:absolute;inset:0;width:100%;height:100%}
.hero-rings path{stroke:var(--celadon);stroke-opacity:.14}
.hero-rings .now{stroke:var(--sprout);stroke-opacity:1;stroke-width:2}
.hero-rings .next{stroke-opacity:.6;stroke-dasharray:2 7}
/* The measuring radius: one tick for each ring, a label where the work changed. */
.hero-scale{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hero-scale .radius{stroke:var(--on-dark);stroke-opacity:.5;stroke-width:1}
.hero-scale .tick{stroke:var(--on-dark);stroke-opacity:.6;stroke-width:1}
.hero-scale .leader{stroke:var(--on-dark);stroke-opacity:.75;stroke-width:1}
.hero-scale .pin{fill:var(--sprout)}
.hero-scale line{vector-effect:non-scaling-stroke}
.hero-marks{position:absolute;inset:0;font-family:var(--sans);font-size:13px;line-height:1.25;color:var(--on-dark)}
.hero-marks li{position:absolute;transform:translateY(-50%);white-space:nowrap;margin-left:6px;padding:4px 10px 4px 8px;border-radius:3px;background:rgba(8,42,34,.74)}
.hero-marks b{font-weight:600;font-variant-numeric:tabular-nums;margin-right:.6em}
.hero-in{position:relative;z-index:2;padding-block:clamp(72px,9vw,128px) clamp(44px,5vw,68px)}
.hero h1{max-width:9.4em}
.hero .lead{margin-top:clamp(22px,2.4vw,34px);max-width:25.5em;color:var(--on-dark)}
.hero-key{display:flex;align-items:center;gap:12px;font-family:var(--sans);font-size:13.5px;color:var(--on-dark-2);margin-top:clamp(28px,3vw,44px);line-height:1.4}
.hero-key::before{content:"";width:28px;height:0;border-top:2px solid var(--sprout);flex:none}
@media (max-width:1240px){
  .hero-scale,.hero-marks{display:none}
  .hero-art{right:calc(clamp(240px,29vw,400px) - var(--H)*.588)}
}
@media (max-width:860px){
  .hero{min-height:0;display:block}
  .hero-art{width:118vw;top:-14vw;right:-46vw}
  .hero-slab{-webkit-mask-image:linear-gradient(180deg,#000 62%,transparent 96%);mask-image:linear-gradient(180deg,#000 62%,transparent 96%)}
  .hero-scale,.hero-marks{display:none}
  .hero-in{padding-top:74vw}
}
@media (prefers-reduced-motion:no-preference){
  .hero-rings path{animation:ring 1s var(--ease) both;animation-delay:calc(var(--i)*50ms);transform-origin:54.8% 46.7%;transform-box:view-box}
  .hero-scale,.hero-marks{animation:fade .8s ease 1.15s both}
}
@keyframes ring{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* ---------- Home: our work. Full-bleed fields of unequal width. ---------- */
.fields{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.tile{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:clamp(48px,7vw,112px);min-height:clamp(440px,38vw,600px);padding:clamp(32px,4.2vw,68px) clamp(28px,4.2vw,68px);text-decoration:none;grid-column:span 7}
/* Row one: GRITS 7, funds 5. Row two: BPS, technical assistance and resources, 4 each. */
.tile:nth-child(2){grid-column:span 5}
.tile:nth-child(n+3){grid-column:span 4}
.tile:nth-child(1),.tile:nth-child(3){padding-left:max(var(--gutter),calc((100vw - 1568px)/2 + var(--gutter)))}
.tile:nth-child(2),.tile:nth-child(5){padding-right:max(var(--gutter),calc((100vw - 1568px)/2 + var(--gutter)))}
@media (min-width:1181px){.tile:nth-child(n+3) .field-title{font-size:clamp(34px,3.25vw,52px)}}
.tile>div{position:relative;z-index:1}
.field-title{font-weight:300;font-size:clamp(34px,3.9vw,60px);line-height:1.04;letter-spacing:-.02em;text-wrap:balance;max-width:9em}
.field-logo img{display:block;height:clamp(46px,5vw,78px);width:auto;max-width:100%;margin-bottom:6px}
.page-logo img{display:block;height:clamp(54px,6vw,92px);width:auto;max-width:100%;margin-block:.08em .12em}
.field-text{max-width:25em;margin-top:clamp(14px,1.4vw,22px);text-wrap:pretty}
.tile.on-dark .field-text,.tile.on-indigo .field-text{max-width:21em}
.tile.on-lichen .field-text{max-width:29em}
.field-foot{font-family:var(--sans);font-size:15.5px;font-weight:500;letter-spacing:.004em}
.field-foot .go{display:inline-block;padding-bottom:5px;background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;transition:background-size .3s var(--ease)}
.tile:hover .go{background-size:100% 2px}
.tile-art{position:absolute;pointer-events:none;transition:transform 1.1s var(--ease)}
.tile:hover .tile-art{transform:scale(1.04)}
.t-dots{width:62%;max-width:660px;right:-16%;bottom:-34%}
.t-spiral{width:56%;right:-15%;bottom:-17%}
.t-skyline{left:0;bottom:0;width:100%;height:40%;object-fit:cover;object-position:right bottom;opacity:.7;transform-origin:bottom}
.t-rosette{width:48%;right:-11%;bottom:-22%}
.tile:nth-child(n+3) .t-rosette{width:64%;right:-20%;bottom:-24%}
.t-shelf{width:52%;right:-3%;bottom:0;transform-origin:right bottom}
/* Tablet: BPS 5 and technical assistance 7, then resources across the full width */
@media (max-width:1180px){
  .tile:nth-child(3){grid-column:span 5}
  .tile:nth-child(4){grid-column:span 7;padding-right:var(--gutter)}
  .tile:nth-child(5){grid-column:1/-1;padding-left:var(--gutter)}
  .tile:nth-child(n+3) .t-rosette{width:48%;right:-11%;bottom:-22%}
  .t-shelf{width:min(42%,420px);right:0}
}
@media (max-width:1100px){.t-dots,.t-rosette{opacity:.5}.t-spiral{opacity:.55}}
@media (max-width:860px){
  .tile:nth-child(n){grid-column:1/-1;min-height:0;padding:44px var(--gutter) 48px}
  .tile:nth-child(n+3) .t-rosette{width:70%;right:-26%;bottom:-24%}
  .tile:has(.t-shelf){padding-bottom:170px}
  .t-shelf{width:auto;height:150px;right:-60px}
  .t-dots{width:80%;right:-26%;bottom:-36%;opacity:.3}
  .t-spiral{width:70%;right:-22%;bottom:-20%;opacity:.4}
  .t-rosette{width:70%;right:-26%;bottom:-24%;opacity:.3}
  .tile.on-indigo{padding-bottom:170px}
  .t-skyline{height:150px}
}

/* ---------- Sections ---------- */
.section{padding-block:var(--section)}
.split>.side{grid-column:1/span 4;align-self:start;position:sticky;top:124px}
.split>.main{grid-column:5/span 8}
.side-text{margin-top:20px;max-width:23em}
@media (max-width:1000px){
  .split>.side{grid-column:1/span 5}
  .split>.main{grid-column:6/span 7}
}
@media (max-width:860px){
  .split>.side,.split>.main{grid-column:1/-1}
  .split>.side{position:static}
  .split>.main{margin-top:32px}
}
.stack>*+*{margin-top:clamp(40px,4vw,64px)}
/* A heading with a way onward at the far end of the same line */
.sec-top{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px 32px;margin-bottom:clamp(36px,4.4vw,68px)}
.more{font-family:var(--sans);font-size:15.5px;font-weight:500;text-decoration:none;color:var(--pine);padding-bottom:5px;background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat}
.more:hover{background-size:100% 2px}

/* ---------- Summit ---------- */
.summit-head{grid-column:1/-1;margin-bottom:clamp(18px,2vw,28px)}
/* Paragraph and dates share a row: the date list stretches to the paragraph's height,
   and the time line sits level with the buttons below. */
.summit-lead{grid-column:1/span 6;grid-row:2}
.summit-actions{grid-column:1/span 6;grid-row:3}
.summit-when{grid-column:8/span 5;grid-row:2;display:flex}
.summit-when .when{flex:1;display:flex;flex-direction:column}
.summit-when .when li{flex:1 1 auto;align-content:center;padding-block:clamp(10px,1vw,16px)}
.summit-when~.when-time{grid-column:8/span 5;grid-row:3;align-self:center;margin-top:clamp(28px,3vw,40px)}
.when{border-bottom:3px double var(--rule-strong)}
.when li:first-child{border-top-color:var(--rule-strong)}
.when li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);column-gap:24px;align-items:baseline;border-top:1px solid var(--rule);padding-block:clamp(18px,1.8vw,26px)}
.when b{font-weight:200;font-size:clamp(44px,4.8vw,76px);line-height:1;letter-spacing:-.026em;white-space:nowrap}
.when span{font-family:var(--sans);font-size:15px;line-height:1.45}
.when span i{display:block;font-style:normal;color:var(--muted)}
@media (max-width:1000px){
  .summit-lead,.summit-actions,.summit-when,.summit-when~.when-time{grid-column:1/-1;grid-row:auto}
  .summit-when{margin-top:44px}
  .summit-when~.when-time{margin-top:18px}
  .summit-when .when li{padding-block:18px}
}
@media (max-width:480px){.when li{grid-template-columns:1fr;row-gap:8px}}

/* ---------- Page heads ---------- */
.page-head{padding-block:clamp(28px,3vw,44px) clamp(56px,6.5vw,96px);position:relative;overflow:hidden}
.page-head .display{max-width:11em}
.page-head .lead{margin-top:clamp(20px,2.4vw,36px)}
.crumbs{display:flex;flex-wrap:wrap;gap:9px;font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:.01em;margin-bottom:clamp(48px,6.4vw,104px)}
.crumbs a{text-decoration:none;opacity:.72}
.crumbs a:hover{opacity:1;text-decoration:underline;text-underline-offset:.22em}
.crumbs span{opacity:.4}
.has-art .wrap,.has-skyline .wrap{position:relative;z-index:1}
.page-head.has-art{min-height:clamp(520px,43vw,680px)}
.page-head.has-art.short{min-height:clamp(380px,31vw,500px)}
.head-art{position:absolute;pointer-events:none}
.art-dots{width:min(50vw,720px);right:-8vw;top:50%;transform:translateY(-50%)}
.art-spiral{width:min(46vw,620px);right:-5vw;top:50%;transform:translateY(-50%)}
.art-rosette{width:min(44vw,640px);right:-6vw;top:50%;transform:translateY(-50%)}
.art-slab{width:min(60vw,880px);right:-11vw;top:50%;transform:translateY(-50%)}
.art-note{display:flex;gap:12px;font-family:var(--sans);font-size:13.5px;line-height:1.45;color:var(--muted);margin-top:22px;max-width:30em}
.page-head .art-note::before{content:"";width:28px;height:0;border-top:1.5px solid currentColor;flex:none;margin-top:.68em}
.on-dark .art-note,.on-indigo .art-note{color:var(--on-dark-2)}
.has-skyline{padding-bottom:clamp(220px,22vw,330px)}
.art-skyline{left:0;right:0;bottom:0;width:100%;height:clamp(200px,21vw,310px);object-fit:cover;object-position:center bottom;opacity:.8}
@media (min-width:861px){
  .has-art .wrap>.display{max-width:min(6.6em,56%)}
  .has-art .wrap>.lead,.has-art .wrap>.art-note{max-width:min(24em,46%)}
}
@media (max-width:860px){
  .page-head.has-art,.page-head.has-art.short{min-height:0}
  .has-art .head-art{width:86vw;right:-26vw;top:6px;transform:none;opacity:.55}
  .has-art .head-art.art-slab{width:72vw;right:-16vw;top:8px}
  .has-art .crumbs{margin-bottom:58vw}
  .has-skyline .crumbs,.has-shelf .crumbs{margin-bottom:40px}
}

/* ---------- Ledger: figures set like an accountant's page, closed with a double rule ---------- */
.ledger{width:100%;border-collapse:collapse}
.ledger caption{text-align:left;caption-side:bottom;padding-top:14px}
.ledger th,.ledger td{border-top:1px solid var(--rule);padding:clamp(16px,1.6vw,24px) 0;text-align:left;vertical-align:baseline;font-weight:400;font-size:1em;line-height:1.42}
.ledger thead th{border-top:0;font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:.01em;color:var(--muted);padding-block:0 12px}
.ledger tbody td{vertical-align:middle}
.ledger tbody tr:first-child>*{border-top-color:var(--rule-strong)}
.ledger tbody tr:last-child>*{border-bottom:3px double var(--rule-strong)}
.ledger .fig{font-weight:200;font-size:clamp(36px,3.9vw,62px);line-height:1;letter-spacing:-.026em;text-align:right;white-space:nowrap;padding-right:clamp(22px,3vw,52px);width:1%;font-variant-numeric:lining-nums tabular-nums}
.ledger thead .fig{font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:.01em}
.ledger .src{font-family:var(--sans);color:var(--muted);font-size:14px;line-height:1.45;padding-left:28px;width:26%}
.ledger .src a{color:inherit}
@media (max-width:700px){
  .ledger thead{display:none}
  .ledger tr{display:grid;grid-template-columns:1fr;border-top:1px solid var(--rule);padding-block:18px}
  .ledger tbody tr:first-child{border-top-color:var(--rule-strong)}
  .ledger tbody tr:last-child{border-bottom:3px double var(--rule-strong)}
  .ledger th,.ledger td,.ledger tbody tr:last-child>*{border:0;padding:0;width:auto}
  .ledger .fig{text-align:left;margin-bottom:8px;padding:0}
  .ledger .src{padding:6px 0 0;width:auto}
}

/* ---------- Publications ---------- */
.pubs{border-bottom:3px double var(--rule-strong)}
.pub{display:grid;grid-template-columns:6em minmax(0,1fr) auto;column-gap:var(--col-gap);border-top:1px solid var(--rule);padding-block:clamp(20px,2vw,30px);align-items:baseline;scroll-margin-top:120px}
.pub:first-child{border-top-color:var(--rule-strong)}
.pub .yr{font-family:var(--sans);font-size:14.5px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}
.pub h2{font-weight:400;font-size:clamp(21px,1.75vw,26px);line-height:1.22;letter-spacing:-.008em;max-width:30em;text-wrap:balance}
.pub p{font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--muted);margin-top:8px;max-width:44em}
.pub .act{font-family:var(--sans);font-size:15px;font-weight:500;white-space:nowrap}
.pub:target{background:var(--lichen);box-shadow:-14px 0 0 var(--lichen),14px 0 0 var(--lichen)}
@media (max-width:700px){
  .pub{grid-template-columns:1fr}
  .pub .act{margin-top:12px}
}

/* Covers: three publications set as book fronts on the home page */
.covers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.4vw,56px) var(--col-gap)}
.cover-link{display:block;text-decoration:none}
.cover{position:relative;overflow:hidden;display:block;aspect-ratio:17/22;padding:clamp(22px,2.4vw,36px);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.cover::before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;background:rgba(0,0,0,.14)}
.cover-link:hover .cover{transform:translateY(-6px);box-shadow:0 26px 34px -26px rgba(8,42,34,.6)}
.cover-h{position:relative;z-index:1;display:block;padding-left:8px}
.cover-y{display:block;font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.01em;margin-bottom:clamp(14px,1.6vw,24px)}
.cover-t{display:block;font-weight:300;font-size:clamp(24px,2.5vw,38px);line-height:1.08;letter-spacing:-.018em;text-wrap:balance;max-width:10em}
.cover img{position:absolute;pointer-events:none;max-width:none}
.cv-1 img{left:0;bottom:0;width:230%;opacity:.65}
.cv-photo{padding:0;background:#fff;outline:1px solid rgba(8,42,34,.1);outline-offset:-1px}
.cv-photo::before{z-index:1;width:14px;background:linear-gradient(90deg,rgba(0,0,0,.2),rgba(0,0,0,0))}
.cv-photo img{inset:0;width:100%;height:100%;object-fit:cover}
.cover-d{font-family:var(--sans);font-size:15px;line-height:1.5;color:var(--muted);margin-top:18px;max-width:30em}
.cover-a{display:inline-block;font-family:var(--sans);font-size:15px;font-weight:500;color:var(--pine);margin-top:12px;padding-bottom:4px;background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat}
.cover-link:hover .cover-a{background-size:100% 2px}
@media (max-width:860px){
  .covers{grid-template-columns:1fr}
  .cover{aspect-ratio:auto;min-height:340px;max-width:440px}
  .cv-photo{aspect-ratio:17/22;min-height:0}
  .cover-t{font-size:clamp(26px,6vw,34px)}
}

/* ---------- Sequence: how a fund revolves ---------- */
.loop{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:center}
.loop svg{width:100%;max-width:520px}
.steps{counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.4em minmax(0,1fr);padding-block:clamp(18px,1.8vw,26px);border-top:1px solid var(--rule)}
.steps li:last-child{border-bottom:1px solid var(--rule)}
.steps li::before{content:counter(s);font-weight:200;font-size:clamp(30px,2.6vw,40px);line-height:1}
.steps h3{font-weight:400;font-size:clamp(21px,1.75vw,26px);line-height:1.22;letter-spacing:-.008em}
.steps p{margin-top:5px}
.on-dark .steps li,.on-dark .steps li:last-child{border-color:var(--rule-dark)}
.loop-token{transform-origin:260px 260px;fill:var(--sprout)}
@media (prefers-reduced-motion:no-preference){.loop-token{animation:revolve 14s linear infinite}}
@keyframes revolve{to{transform:rotate(360deg)}}
@media (max-width:860px){.loop{grid-template-columns:1fr}.loop svg{max-width:360px}}

/* ---------- Text columns ---------- */
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,3.6vw,60px) var(--col-gap)}
.cols.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols>*{border-top:1px solid var(--rule-strong);padding-top:clamp(16px,1.5vw,22px)}
.cols h3{font-weight:400;font-size:clamp(21px,1.75vw,26px);line-height:1.22;letter-spacing:-.008em;margin-bottom:10px}
.cols p{font-size:.95em;line-height:1.56;max-width:28em}
@media (max-width:980px){.cols.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.cols,.cols.three{grid-template-columns:1fr}}

/* ---------- Names set as lists ---------- */
.names{columns:2;column-gap:var(--col-gap);font-size:.98em}
.names li{break-inside:avoid;padding-block:9px;border-top:1px solid var(--rule)}
@media (max-width:560px){.names{columns:1}}

/* ---------- Team ---------- */
.team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(48px,5vw,80px) clamp(24px,5vw,88px)}
.person{display:grid;grid-template-columns:clamp(84px,9vw,132px) minmax(0,1fr);gap:clamp(18px,2vw,32px);align-items:start;border-top:1px solid var(--rule-strong);padding-top:clamp(22px,2.2vw,32px)}
.person svg{width:100%;height:auto}
.person .headshot{display:block;width:calc(100% - 12px);margin:6px;aspect-ratio:1;object-fit:cover;border-radius:50%;outline:1px solid var(--rule-strong);outline-offset:5px;background:var(--rule)}
.person svg path{stroke:var(--pine);stroke-opacity:.55}
.person svg text{font-family:var(--serif);font-weight:300;font-size:250px;fill:var(--pine)}
.person h3{font-weight:400;font-size:clamp(25px,2.2vw,34px);line-height:1.14;letter-spacing:-.014em}
.person .role{font-family:var(--sans);font-size:15px;color:var(--muted);margin-top:6px}
.person .bio{margin-top:14px;font-size:.95em;line-height:1.56}
@media (max-width:860px){.team{grid-template-columns:1fr}}

/* ---------- History: the ring stays put while the years pass ---------- */
.history{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(24px,5vw,88px)}
.history>div{min-width:0}
.history-ring{position:sticky;top:clamp(112px,14vh,168px);align-self:start;max-width:540px}
.history-art{position:relative}
.history-art img{width:100%;height:auto;display:block}
.history-art svg{position:absolute;inset:0;width:100%;height:auto}
.history-ring path{stroke-opacity:0;transition:stroke .25s ease,stroke-opacity .25s ease}
.history-ring path.past{stroke:var(--pine);stroke-opacity:.5;stroke-width:1.1}
.history-ring path.on{stroke:var(--indigo);stroke-opacity:1;stroke-width:3.5}
.history-year{font-weight:200;font-size:clamp(56px,6vw,96px);line-height:1;letter-spacing:-.026em;margin-top:18px;font-variant-numeric:lining-nums tabular-nums}
.era{padding-block:clamp(48px,5vw,76px) clamp(20px,2vw,28px)}
.era:first-child{padding-top:0}
.era h2{display:inline-block;font-weight:300;font-size:clamp(34px,3.8vw,58px);line-height:1.04;letter-spacing:-.018em;box-shadow:inset 0 -.12em 0 var(--e)}
.era p{margin-top:14px;max-width:32em;color:var(--muted)}
.e1{--e:var(--e1);--eon:#fff}.e2{--e:var(--e2);--eon:#fff}.e3{--e:var(--e3);--eon:#fff}.e4{--e:var(--e4);--eon:var(--ink)}
.year{display:grid;grid-template-columns:5.2em minmax(0,1fr);column-gap:16px;padding-block:clamp(22px,2.4vw,34px);border-top:1px solid var(--rule)}
.year:last-child,.year:has(+ .era){border-bottom:3px double var(--rule-strong)}
.year h3{font-family:var(--sans);font-weight:500;font-size:15px;line-height:1.75;letter-spacing:.01em;color:var(--pine);font-variant-numeric:tabular-nums}
.year li+li{margin-top:.7em}
.year li{max-width:33em}
@media (max-width:860px){
  .history{grid-template-columns:1fr}
  .history-ring{display:none}
}
@media (max-width:520px){.year{grid-template-columns:1fr;row-gap:6px}}

/* Eras, to scale */
.era-wrap{margin-top:clamp(56px,7vw,104px)}
.eras{display:flex;height:56px}
.era-seg{display:flex;align-items:flex-end;padding:8px 12px;font-family:var(--sans);font-size:13.5px;font-weight:500;font-variant-numeric:tabular-nums;background:var(--e);color:var(--eon)}
.era-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,48px) var(--col-gap);margin-top:30px}
.era-cols h3{display:flex;align-items:center;gap:10px;font-weight:400;font-size:clamp(21px,1.8vw,26px);line-height:1.2;letter-spacing:-.008em;margin-bottom:8px}
.era-cols h3 i{width:12px;height:12px;border-radius:50%;background:var(--e);flex:none}
.era-cols p{font-size:.92em;line-height:1.52;max-width:22em}
@media (max-width:900px){.era-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.era-cols{grid-template-columns:1fr}}

/* ---------- Institutions ---------- */
.buildings-band{background:var(--paper)}
.buildings{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:clamp(18px,2.6vw,44px);margin-top:clamp(40px,5vw,76px)}
.buildings li{text-align:center}
.buildings img{display:block;width:100%;max-width:150px;height:auto;margin-inline:auto}
.buildings span{display:block;font-family:var(--sans);font-size:14.5px;font-weight:500;line-height:1.3;padding:12px 0 0}
@media (max-width:1040px){.buildings{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:36px}}
@media (max-width:560px){.buildings{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:16px;row-gap:28px}.buildings span{font-size:13px}}

/* ---------- Quote ---------- */
.quote{position:relative;overflow:hidden}
.quote blockquote{position:relative;padding-block:var(--section);max-width:960px}
.quote blockquote p{font-weight:200;font-size:clamp(24px,3vw,47px);line-height:1.14;letter-spacing:-.024em;text-wrap:balance}
.quote blockquote p::before{content:"\201C";position:absolute;transform:translateX(-105%);color:var(--sprout)}
.quote blockquote p::after{content:"\201D"}
.nowrap{white-space:nowrap}
.quote footer{display:flex;align-items:center;gap:14px;font-family:var(--sans);font-size:15.5px;margin-top:clamp(26px,3vw,44px);color:var(--on-dark-2)}
.quote footer::before{content:"";width:36px;border-top:1px solid currentColor;flex:none}
@media (max-width:1240px){.quote blockquote p::before{position:static;transform:none}}
/* Quote flourish: energy use falls as financial savings rise, year by year */
.quote-art{display:none}
@media (min-width:1080px){
  .quote .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);align-items:center;column-gap:clamp(40px,5vw,96px)}
  .quote-art{display:block;width:100%;max-width:540px;justify-self:end;overflow:visible}
}
.payback{fill:none}
.pb-grid path{stroke:var(--on-dark);stroke-opacity:.16;stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:0}
.pb-years text,.pb-axis-t{fill:var(--on-dark-2);font-family:var(--sans);font-weight:500}
.pb-years text{font-size:15px;text-anchor:middle;font-variant-numeric:tabular-nums}
.pb-axis-t{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase}
.pb-line{fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.pb-line-cost{stroke:var(--on-dark);stroke-opacity:.92;stroke-width:4}
.pb-line-gain{stroke:var(--sprout);stroke-width:4.5}
.pb-head-cost{fill:var(--on-dark);fill-opacity:.92}
.pb-head-gain{fill:var(--sprout)}
.pb-labels text{font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.pb-label-cost{fill:var(--on-dark)}
.pb-label-gain{fill:var(--sprout)}
@media (prefers-reduced-motion:no-preference){
  .payback.pre .pb-line,.payback.pre .pb-grid path{stroke-dashoffset:1}
  .payback.pre .pb-head,.payback.pre .pb-labels,.payback.pre .pb-years,.payback.pre .pb-axis-t{opacity:0}
  .payback.pre.is-drawn .pb-grid path{stroke-dashoffset:0;transition:stroke-dashoffset .7s var(--ease) calc(var(--i)*60ms)}
  .payback.pre.is-drawn .pb-years,.payback.pre.is-drawn .pb-axis-t{opacity:1;transition:opacity .6s ease .15s}
  .payback.pre.is-drawn .pb-line-cost{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s var(--ease) .6s}
  .payback.pre.is-drawn .pb-head-cost{opacity:1;transition:opacity .3s ease 1.5s}
  .payback.pre.is-drawn .pb-line-gain{stroke-dashoffset:0;transition:stroke-dashoffset 1.3s var(--ease) 1.2s}
  .payback.pre.is-drawn .pb-head-gain{opacity:1;transition:opacity .3s ease 2.3s}
  .payback.pre.is-drawn .pb-labels{opacity:1;transition:opacity .8s ease 1.9s}
}

/* ---------- Charts ---------- */
.hbars{margin-bottom:clamp(36px,4vw,56px)}
.hbar+.hbar{margin-top:20px}
.hbar-l{display:block;font-family:var(--sans);font-size:14.5px;font-weight:500;margin-bottom:8px}
.hbar-t{display:flex;align-items:center;gap:16px}
.hbar-t i{display:block;height:36px;background:#86AD96;border-radius:0 3px 3px 0}
.hbar-t i.on{background:var(--pine)}
.hbar-t b{font-weight:200;font-size:clamp(30px,3vw,46px);line-height:1;letter-spacing:-.022em}
.chart{width:100%;height:auto;display:block}
.chart .axis{stroke:var(--rule-strong);stroke-width:1;fill:none}
.chart .bar{fill:var(--pine)}
.chart g:last-of-type .bar{fill:var(--indigo)}
.chart g:hover .bar{opacity:.85}
.chart .val{font-family:var(--serif);font-weight:300;font-size:30px;fill:var(--ink)}
.chart .lab{font-family:var(--sans);font-size:15px;fill:var(--muted)}
@media (max-width:700px){
  .chart .val{font-size:38px}
  .chart .lab{font-size:24px}
}

/* ---------- Press ---------- */
.press{border-bottom:3px double var(--rule-strong)}
.press li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--col-gap);padding-block:clamp(18px,1.7vw,26px);border-top:1px solid var(--rule);align-items:baseline}
.press li:first-child{border-top-color:var(--rule-strong)}
.press .out{font-weight:400;font-size:clamp(21px,1.75vw,26px);line-height:1.2;letter-spacing:-.008em}
@media (max-width:760px){
  .press li{grid-template-columns:1fr}
  .press .ttl{margin-top:4px}
}
/* Outlets on the home page: names in a ruled grid */
.outlets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule-strong);border-bottom:3px double var(--rule-strong)}
.outlets a{display:flex;align-items:center;justify-content:center;min-height:clamp(96px,9vw,136px);padding:18px clamp(16px,2vw,32px);font-weight:300;font-style:italic;font-size:clamp(22px,2.3vw,34px);line-height:1.12;letter-spacing:-.012em;text-decoration:none;text-wrap:balance;transition:color .15s ease}
.outlets a:nth-child(n+4){border-top:1px solid var(--rule)}
.outlets a:not(:nth-child(3n+1)){border-left:1px solid var(--rule)}
.outlets a:hover{color:var(--link)}
/* Outlet logos: greyscale at rest, full colour on hover or keyboard focus */
.outlets img{display:block;height:calc(var(--h) * var(--ls,1));width:auto;max-width:100%;filter:grayscale(1);opacity:.7;transition:filter .35s ease,opacity .35s ease}
.outlets a:hover img,.outlets a:focus-visible img{filter:none;opacity:1}
@media (max-width:1100px){.outlets{--ls:.88}}
@media (max-width:640px){.outlets{--ls:.74}}
@media (max-width:640px){
  .outlets{grid-template-columns:repeat(2,minmax(0,1fr))}
  .outlets a:nth-child(n){border:0;border-top:1px solid var(--rule);padding-inline:12px}
  .outlets a:nth-child(-n+2){border-top:0}
  .outlets a:nth-child(even){border-left:1px solid var(--rule)}
}

/* ---------- Jurisdictions: figures, map and list (map drawn by BPSsummit.org's tools/build-map.mjs) ---------- */
.jfigs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,48px)}
.jfigs>div{border-top:1px solid var(--rule-strong);padding-top:clamp(16px,1.8vw,24px)}
.jfigs b{display:block;font-weight:200;font-size:clamp(64px,7.4vw,120px);line-height:.9;letter-spacing:-.03em;color:var(--pine)}
.jfigs span{display:block;font-family:var(--sans);font-size:15.5px;line-height:1.4;margin-top:14px;max-width:16em}
.jfigs.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.jfigs.three b{font-size:clamp(56px,6vw,96px)}
@media (max-width:900px){.jfigs.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
.jmap-fig{position:relative;margin:clamp(40px,5vw,72px) 0 clamp(24px,2.6vw,36px);padding-top:clamp(18px,2vw,26px);border-top:1px solid var(--rule-strong);overflow:hidden}
.legend{display:flex;justify-content:flex-end;gap:22px;font-family:var(--sans);font-size:13.5px;color:var(--muted);margin-bottom:8px}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i,.chip i{width:9px;height:9px;border-radius:50%;background:var(--indigo);flex:none}
.legend i.st,.chip.st i{border-radius:2px;background:var(--sprout);box-shadow:inset 0 0 0 1px var(--pine-mid)}
.jmap{display:block;width:100%;height:auto;max-width:1160px;margin-inline:auto;-webkit-mask-image:linear-gradient(transparent,#000 9%,#000 86%,transparent);mask-image:linear-gradient(transparent,#000 9%,#000 86%,transparent)}
.jm-nb path{fill:none;stroke:rgba(14,58,47,.32);stroke-width:1;stroke-linejoin:round}
.jm-ca path{fill:none;stroke:none}
.jm-co-ca{fill:none;stroke:rgba(14,58,47,.32);stroke-width:1;stroke-linejoin:round}
.jm-pb{fill:none;stroke:rgba(14,58,47,.16);stroke-width:1;stroke-linejoin:round}
.jm-st path{fill:var(--paper)}
.jm-bd{fill:none;stroke:var(--celadon);stroke-width:1.1;stroke-linejoin:round}
.jm-hl path{fill:#E4F1C9;stroke:var(--pine-mid);stroke-width:1.2;stroke-linejoin:round}
.jm-sl{font:600 11px var(--sans);fill:var(--pine);letter-spacing:.01em}
.jm-c circle{fill:var(--indigo);stroke:var(--paper);stroke-width:2}
.jm-c .halo{fill:rgba(29,42,120,.16);stroke:none}
.jm-c text{font:500 12px var(--sans);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:4px;stroke-linejoin:round}
.jm-co text{stroke:none}
.jm-c .lead{fill:none;stroke:var(--rule-strong);stroke-width:1}
.jm-c .key{stroke:none}
.jm-c .key-st{fill:var(--sprout);stroke:var(--pine-mid);stroke-width:1}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;border-radius:999px;background:var(--paper);border:1px solid var(--rule);font-family:var(--sans);font-size:15px;font-weight:500;line-height:1.2;color:var(--ink)}
.chip.st{background:#E4F1C9;border-color:rgba(47,107,87,.4)}
.chip.more{background:transparent;border-style:dashed;border-color:var(--rule-strong);color:var(--muted)}
@media (max-width:640px){
  .jfigs{gap:16px}
  .jmap{width:124%;max-width:none}
  .legend{justify-content:flex-start}
  .jm-c text,.jm-sl,.jm-c .lead,.jm-c .key,.jm-c .key-st{display:none}
}

/* ---------- Summit hours, shown in the visitor's time zone by site.js ---------- */
.when-time{display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:15.5px;font-weight:500;line-height:1.4;margin-top:18px}
.when-time svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.8}

/* ---------- Summit dates on the standards page ---------- */
.dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,48px);max-width:1040px}
.date{border-top:1px solid var(--rule-dark);padding-top:clamp(18px,2vw,28px)}
.date b{display:block;font-weight:200;font-size:clamp(48px,6.2vw,100px);line-height:1;letter-spacing:-.028em}
.date span{display:block;font-family:var(--sans);font-size:15.5px;margin-top:12px}
@media (max-width:520px){.dates{grid-template-columns:1fr}}

/* ---------- Contact ---------- */
.reach{border-bottom:3px double var(--rule-strong)}
.reach li{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--col-gap);border-top:1px solid var(--rule);padding-block:clamp(22px,2.2vw,34px);align-items:baseline}
.reach li:first-child{border-top-color:var(--rule-strong)}
.reach h2{font-weight:400;font-size:clamp(22px,1.9vw,28px);line-height:1.2;letter-spacing:-.008em}
.reach p{font-size:.97em;max-width:34em}
@media (max-width:760px){.reach li{grid-template-columns:1fr;row-gap:6px}}
/* Contact page form (HubSpot). The form itself is styled from assets/site.js, inside HubSpot's frame */
.hsform{min-height:120px}
.hsform iframe{display:block;width:100%!important;border:0}
.hsform .hsform-msg{margin:0}

/* ---------- Report shelf ---------- */
.has-shelf{padding-bottom:0}
.shelf-scroll{overflow-x:auto;margin-top:clamp(40px,4.4vw,72px);padding-inline:var(--gutter);scrollbar-width:thin}
.shelf{display:flex;align-items:flex-end;gap:3px;height:clamp(280px,27vw,390px);max-width:1440px;margin-inline:auto;min-width:760px;border-bottom:6px solid var(--pine)}
.shelf li{display:flex;align-items:flex-end;height:100%;flex:none;min-width:0}
.shelf li:nth-child(4),.shelf li:nth-child(8){margin-left:clamp(0px,1.2vw,18px)}
.spine{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:16px 4px 12px;text-decoration:none;transition:transform .3s var(--ease);transform-origin:bottom}
.spine:hover,.spine:focus-visible{transform:translateY(-12px)}
.spine-t{writing-mode:vertical-rl;transform:rotate(180deg);font-weight:400;font-size:clamp(15px,1.45vw,21px);line-height:1.05;white-space:nowrap;letter-spacing:-.004em}
.spine-y{font-family:var(--sans);font-size:12px;font-weight:500}
.sp1{background:var(--pine);color:var(--on-dark)}
.sp2{background:var(--paper);color:var(--pine);box-shadow:inset 0 0 0 1px var(--rule-strong)}
.sp3{background:var(--indigo);color:#fff}
.sp4{background:var(--sprout);color:var(--pine)}
.sp5{background:var(--pine-mid);color:#fff}

/* ---------- Next page ---------- */
.next{display:block;background:var(--lichen);text-decoration:none;color:var(--pine);box-shadow:inset 0 1px 0 var(--rule);transition:background-color .3s ease}
.next:hover{background:var(--celadon)}
.next-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:clamp(40px,5vw,76px)}
.next-l{display:block;font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.01em;margin-bottom:8px}
.next-t{display:block;font-weight:200;font-size:clamp(32px,4.6vw,72px);line-height:1.04;letter-spacing:-.024em}
.next svg{width:clamp(56px,8vw,120px);flex:none;transition:transform .4s var(--ease)}
.next:hover svg{transform:translateX(12px)}

/* ---------- Footer ---------- */
.foot{position:relative;overflow:hidden;padding-bottom:clamp(56px,7vw,104px)}
.foot-art{position:absolute;width:min(72vw,1040px);left:60%;top:-10%;pointer-events:none;opacity:.6;-webkit-mask-image:linear-gradient(90deg,transparent,#000 46%);mask-image:linear-gradient(90deg,transparent,#000 46%)}
.foot-wrap{position:relative;z-index:1}
.foot-cta{padding-block:clamp(64px,8vw,128px) clamp(56px,7vw,104px)}
.foot-ask{font-weight:200;font-size:clamp(30px,3.7vw,58px);line-height:1.1;letter-spacing:-.022em;text-wrap:balance;max-width:19em}
.foot-cols{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2.4fr));gap:40px var(--col-gap);padding-top:clamp(36px,4vw,56px);border-top:1px solid var(--rule-dark);font-family:var(--sans);font-size:15px}
.foot-id .brand{color:var(--on-dark);font-size:19px;gap:15px}
.foot-id .brand svg{width:63px;height:63px}
.foot-id p{color:var(--on-dark-2);margin-top:20px;max-width:22em;line-height:1.55}
.foot-id p a{color:var(--on-dark)}
.foot-cols h2{font-family:var(--sans);font-weight:500;font-size:13.5px;letter-spacing:.01em;color:var(--on-dark-2);margin-bottom:14px}
.foot-cols li{padding-block:6px}
.foot-cols li a{text-decoration:none;color:var(--on-dark)}
.foot-updated{font-family:var(--sans);font-size:13px;color:var(--on-dark-2);margin-top:clamp(40px,4.5vw,64px)}
.foot-cols li a:hover{text-decoration:underline;text-underline-offset:.22em}
@media (max-width:900px){
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-id{grid-column:1/-1}
  .foot-art{left:40%;width:110vw;opacity:.3}
}
@media (max-width:440px){.foot-cols{grid-template-columns:1fr}}

/* Chat button (opens the HubSpot chat window; see the end of assets/site.js) */
.chat-btn{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:30;display:inline-flex;align-items:center;gap:9px;min-height:50px;padding:10px 22px 10px 18px;border:1px solid var(--indigo);border-radius:999px;background:var(--indigo);color:var(--on-dark);font-family:var(--sans);font-weight:500;font-size:15.5px;line-height:1.2;letter-spacing:.004em;cursor:pointer;box-shadow:0 14px 28px -12px rgba(8,20,60,.6),0 0 0 1px rgba(243,247,239,.32);transition:background-color .18s ease,border-color .18s ease}
.chat-btn:hover{background:var(--indigo-deep);border-color:var(--indigo-deep)}
.chat-btn svg{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.chat-btn[hidden]{display:none}
.chat-btn:disabled{opacity:.75;cursor:progress}

/* Message shown if the chat can't load */
.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:45;max-width:min(520px,calc(100% - 32px));padding:12px 18px;border-radius:12px;background:var(--ink);color:var(--on-dark);font-family:var(--sans);font-size:15px;line-height:1.4;text-align:center;box-shadow:0 14px 30px -12px rgba(0,0,0,.5)}
.toast[hidden]{display:none}

/* ---------- Print: a clean, paper-white document ---------- */
@media print{
  @page{size:letter;margin:.55in .6in .6in}
  :root{--section:20pt;--gutter:0px;--col-gap:14pt}
  html,body{background:#fff!important}
  body{color:#13221C;font-size:10.5pt;line-height:1.45}

  /* Screen-only furniture and decorative art */
  .topbar,.nav,.menu-btn,.skip,.crumbs,.chat-btn,.toast,#hubspot-messages-iframe-container,
  .hero-art,.hero-key,.head-art,.tile-art,.quote-art,.panel-art,.foot-art,.history-art,.shelf-scroll,
  .next,.go,.field-foot,.more,.cover-a,.foot-cta,.foot-cols>div:not(.foot-id),
  .btn[href$=".html"],.btn[href*=".html#"],.actions:not(:has(a[href^="http"])){display:none!important}

  /* Fields of colour become paper; every text colour becomes ink */
  .on-dark,.on-indigo,.on-celadon,.on-lichen,.on-paper,.hero,.page-head,.section,.fields,.tile,.quote,.summit,.foot,.head,.cover{background:none!important;box-shadow:none!important}
  .on-dark,.on-indigo,.on-celadon,.on-lichen,.on-dark *,.on-indigo *,.on-celadon *,.on-lichen *{color:#13221C!important;border-color:rgba(14,58,47,.35)!important}
  .on-dark .note,.on-indigo .note,.note,.cover-d,.foot-id p{color:#4A5D54!important}
  .brand .seed,.on-dark .brand .seed{fill:#4F9A3C!important}
  a{color:inherit!important}
  .link,.prose a{text-decoration:underline;text-decoration-thickness:.5pt;text-underline-offset:2pt}

  /* Layout: full width of the page, compact rhythm */
  .wrap{max-width:none!important;padding-inline:0!important}
  .section,.page-head,.hero,.summit,.quote{padding-block:14pt!important;min-height:0!important}
  .section+.section,.fields+.section,.section+.quote,.quote+.section{border-top:.75pt solid rgba(14,58,47,.3)}
  .hero-in,.page-head .wrap{padding:0!important;min-height:0!important}

  /* Header: logo and address on the first page only */
  .head{position:static!important;border-bottom:1pt solid #0E3A2F;margin-bottom:6pt}
  .head-in{min-height:0!important;padding:0 0 8pt!important}
  .head-in::after{content:"endowmentinstitute.org";font-family:var(--sans);font-size:9pt;font-weight:500;color:#4A5D54;align-self:flex-end}
  .brand{color:#0E3A2F!important;font-size:11pt!important;gap:8pt!important}
  .brand svg{width:38pt!important;height:38pt!important}

  /* Footer: identity only */
  .foot{border-top:1pt solid #0E3A2F;margin-top:14pt;padding:10pt 0 0!important}
  .foot-wrap,.foot-cols{display:block!important;padding:0!important;margin:0!important}
  .foot-id{display:flex!important;align-items:center;gap:16pt}
  .foot-id .brand{font-size:9.5pt!important}
  .foot-id .brand svg{width:30pt!important;height:30pt!important}
  .foot-id p{margin:0!important;max-width:none!important;font-size:9pt}

  /* Type set in points */
  .display{font-size:24pt!important;line-height:1.1!important;max-width:none!important}
  .lead{font-size:11.5pt!important;max-width:none!important}
  .title,.sec-top h2,main h2{font-size:16pt!important;line-height:1.2!important}
  .field-title{font-size:15pt!important;max-width:none!important}
  .kicker{font-size:8.5pt!important}
  h1,h2,h3,h4,.kicker,.sec-top{break-after:avoid;page-break-after:avoid}
  p,li{orphans:3;widows:3}

  /* Keep each unit on one page */
  .tile,.cover-link,.pub,.person,.year,.ledger,.eras,.era-cols>div,.buildings,.quote blockquote,
  .jfigs,.jmap-fig,.chips,.chart,figure,table,tr,.reach li,.press li,.dates,.summit-when,.names li{break-inside:avoid;page-break-inside:avoid}

  /* Buttons that leave the site print as plain text */
  .btn{background:none!important;border:0!important;padding:0!important;min-height:0!important;font-weight:600;color:#0E3A2F!important;text-decoration:underline;text-decoration-thickness:.5pt}
  .btn[href*="/library/"]::after,.btn[href*="/resources/"]::after,.act a[href^="http"]::after{content:" " attr(href);font-weight:400;font-size:8pt;color:#4A5D54;word-break:break-all;text-decoration:none}
  .actions{gap:14pt!important;margin-top:8pt!important}

  /* Home: the five fields of work as a two-column list */
  .fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:22pt!important;row-gap:0!important}
  .tile{min-height:0!important;padding:10pt 0!important;grid-column:auto!important;gap:0!important;border-top:.75pt solid rgba(14,58,47,.3)}
  .tile:last-child{grid-column:1/-1!important}
  .tile .field-text{max-width:none!important;font-size:10pt}
  .field-logo img{height:24pt!important}
  .page-logo img{height:34pt!important}

  /* Home: who we work with, in one row */
  .buildings{grid-template-columns:repeat(7,minmax(0,1fr))!important;column-gap:8pt!important;row-gap:0!important;margin-top:10pt!important}
  .buildings img{max-width:100%!important}
  .buildings span{font-size:7.5pt!important;padding-top:4pt!important}

  /* Home: quote */
  .quote .wrap{display:block!important}
  .quote blockquote{padding:0!important;max-width:none!important}
  .quote blockquote p{font-size:15pt!important;line-height:1.25!important}
  .quote blockquote p::before{position:static!important;transform:none!important}
  .quote footer{margin-top:6pt!important;font-size:9pt}

  /* Home: featured resources, three across */
  .covers{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14pt!important}
  .cover{aspect-ratio:17/22!important;min-height:0!important;max-width:none!important;padding:12pt!important}
  .cover::before{display:none}
  .cv-1{border:.75pt solid #0E3A2F}
  .cv-1 img{display:none}
  .cover-t{font-size:13pt!important}
  .cv-photo{padding:0!important;outline:.5pt solid rgba(14,58,47,.25)}
  .cover-d{font-size:9pt!important;margin-top:6pt!important}

  /* Data graphics keep their colours */
  .era-seg,.bar,.hbar,.chip,.chip::before,.key,.legend,.jmap,.loop-token,.pin{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .era-seg.e1 span,.era-seg.e2 span,.era-seg.e3 span{color:#fff!important}
  .jmap-fig{max-width:5.2in;margin-inline:auto}

  /* Headings never end a page: each reserves room for what follows */
  main h2,.era h2{break-inside:avoid;page-break-inside:avoid}
  main h2::after{content:"";display:block;height:84pt;margin-bottom:-84pt}
  .era h2::after{display:none}
  .era{break-inside:avoid;break-after:avoid;padding:14pt 0 4pt!important}
  .era h2{font-size:18pt!important}
  .buildings-band{break-inside:avoid;page-break-inside:avoid}
  .art-note,.art-ref{display:none!important}

  /* History: one column of years */
  .history{display:block!important}
  .year{padding-block:8pt!important}

  /* Home: press names compact, covers smaller */
  .outlets{grid-template-columns:repeat(3,minmax(0,1fr))!important;break-inside:avoid}
  .outlets a{min-height:0!important;padding:8pt 10pt 8pt 0!important;font-size:12.5pt!important}
  .outlets{--ls:.62}
  .outlets a:not(:nth-child(3n+1)){padding-left:10pt!important}
  .press li{padding-block:7pt!important}
  .press .out{font-size:12.5pt!important}
  .cover{width:78%}
  .cover-link{display:block}

  /* Resources: the link and its address sit under each description */
  .pub{grid-template-columns:4.4em minmax(0,1fr)!important;padding-block:9pt!important}
  .pub .act{grid-column:2;white-space:normal!important;margin-top:4pt!important;font-size:9pt!important}
  .pub h2{font-size:12.5pt!important;max-width:none!important}
  .pub p{font-size:9.5pt!important;max-width:none!important}
}
@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
