/* Foresight Institute · 40th Year Impact Report 2026
   Everything is scoped to #fi-impact so it cannot leak into the site theme,
   and every selector starts with #fi-impact so theme/prose rules cannot leak in. */

/* Fallback copies of the brand fonts. The site already loads "ABC Arizona Text"
   and "Neue Haas Unica Pro"; these are only downloaded if those are missing. */
@font-face{font-family:"FI26 Arizona";src:url("fonts/ABCArizonaText-Light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"FI26 Arizona";src:url("fonts/ABCArizonaText-LightItalic.woff2") format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"FI26 Unica";src:url("fonts/NeueHaasUnicaPro-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"FI26 Unica";src:url("fonts/NeueHaasUnicaPro-Medium.woff2") format("woff2");font-weight:500 700;font-display:swap}

#fi-impact{
  --fi-top:56px;                 /* height of the site's fixed header (JS keeps this in sync) */
  --serif:"ABC Arizona Text","FI26 Arizona",Georgia,serif;
  --sans:"Neue Haas Unica Pro","FI26 Unica",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --ink:#1f2328; --body:#2d333b; --muted:#66707c; --line:rgba(31,35,40,.12);
  --paper:#f2f7fd; --hope:#e7e7f4; --card:#fff; --night:#000;
  --blue:#c8dcf2; --blue2:#d5e4f5; --aqua:#dcf1f1; --mint:#daf2e3; --lav:#eadff7; --pink:#fae3e6; --lime:#eef7d5;
  --mintbtn:#bfeed3; --btnink:#364153;
  --pad:clamp(16px,4.5vw,56px);
  --ease:cubic-bezier(.2,.7,.1,1);
  position:relative;
  width:var(--fi-vw,100vw);
  left:50%; margin-left:calc(var(--fi-vw,100vw) / -2); margin-right:0; margin-top:0; margin-bottom:0;
  max-width:none;
  background:var(--paper); color:var(--body);
  font:400 17px/1.55 var(--sans);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip;
}
#fi-impact *,#fi-impact *::before,#fi-impact *::after{box-sizing:border-box}
#fi-impact :where(p,li,dd,dt,span,a,figcaption,blockquote,em,i,b,strong,sup,button,ol,ul,dl,div,figure){font-family:inherit;letter-spacing:inherit;font-size:inherit;line-height:inherit;color:inherit;font-weight:inherit;text-transform:none}
#fi-impact :where(h1,h2,h3,h4,p,ul,ol,dl,dd,dt,figure,blockquote){margin:0;padding:0;border:0}
#fi-impact ul,#fi-impact ol,#fi-impact li{list-style:none;margin-left:0;padding-left:0}
#fi-impact li::marker{content:none}
#fi-impact ol > li::before{content:none}
#fi-impact li{counter-increment:none}
#fi-impact img{display:block;max-width:100%;height:auto}
#fi-impact a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:currentColor;transition:color .2s,text-decoration-color .2s}
#fi-impact a:hover{text-decoration-color:transparent}
#fi-impact b,#fi-impact strong{font-weight:500;color:var(--ink)}
#fi-impact i,#fi-impact em{font-style:italic}
#fi-impact button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
#fi-impact :focus-visible{outline:2px solid #5d60be;outline-offset:3px;border-radius:6px}
#fi-impact sup{font-size:.65em;vertical-align:super;line-height:0}

/* ---------- layout ---------- */
#fi-impact .fi-wrap{max-width:1200px;margin:0 auto;padding:0 var(--pad)}
#fi-impact .fi-sec{position:relative;padding:clamp(72px,11vw,150px) 0;scroll-margin-top:calc(var(--fi-top) + 48px)}
#fi-impact .fi-sec + .fi-sec:not(.fi-dark):not(.fi-hope):not(.fi-next):not(.fi-pictures){padding-top:clamp(24px,5vw,72px)}
#fi-impact [id]{scroll-margin-top:calc(var(--fi-top) + 64px)}
#fi-impact .fi-measure{max-width:820px}

/* ---------- type ---------- */
#fi-impact .fi-h2{font:300 clamp(40px,6.4vw,92px)/1.02 var(--serif);letter-spacing:-.025em;color:var(--ink);margin-bottom:clamp(28px,4vw,48px)}
#fi-impact .fi-h2--sub{font-size:clamp(34px,4.6vw,64px);margin-top:clamp(72px,9vw,128px)}
#fi-impact .fi-h3{font:300 clamp(24px,2.4vw,32px)/1.15 var(--serif);letter-spacing:-.01em;color:var(--ink);margin-bottom:14px}
#fi-impact .fi-h3--lg{font-size:clamp(28px,3.2vw,42px);margin:clamp(48px,6vw,80px) 0 24px}
#fi-impact .fi-h3 a{text-decoration:none}
#fi-impact .fi-kicker{font:500 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:22px}
#fi-impact .fi-eyebrow{font:500 13px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:28px}
#fi-impact .fi-eyebrow--ink{color:var(--muted)}
#fi-impact .fi-prose p{margin-bottom:1.1em}
#fi-impact .fi-prose--lg{font-size:clamp(17px,1.45vw,20px);line-height:1.6;color:var(--body)}
#fi-impact .fi-p{font-size:clamp(16px,1.3vw,18px)}
#fi-impact .fi-note{font-size:14px;color:var(--muted);margin:28px 0 12px}
#fi-impact .fi-footnote{font-size:12.5px;color:var(--muted);margin-top:28px;max-width:820px}
#fi-impact .fi-pull{font:300 clamp(28px,3.6vw,50px)/1.12 var(--serif);letter-spacing:-.015em;color:var(--ink);margin:clamp(40px,6vw,72px) 0 clamp(24px,3vw,36px);max-width:960px}
#fi-impact .fi-pull b{font-weight:300;background:linear-gradient(rgba(191,238,211,.9),rgba(191,238,211,.9));background-repeat:no-repeat;background-size:0% 100%;padding:0 .12em;margin:0 -.12em;border-radius:.12em;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size 1.2s var(--ease) .3s}
#fi-impact .fi-pull.is-in b{background-size:100% 100%}
#fi-impact .fi-signature{font:300 clamp(24px,2.4vw,30px)/1.2 var(--serif);color:var(--ink);margin-top:8px}

/* ---------- buttons (match foresight.org pill buttons) ---------- */
#fi-impact .fi-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 22px;border-radius:999px;font:300 18px/1.2 var(--serif);text-decoration:none;transition:background .25s,color .25s,transform .25s var(--ease)}
#fi-impact .fi-btn:hover{transform:translateY(-1px)}
#fi-impact .fi-btn--mint{background:var(--mintbtn);color:var(--btnink)}
#fi-impact .fi-btn--mint:hover{background:linear-gradient(110deg,#bfeed3,#c5def5)}
#fi-impact .fi-btn--ghost{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
#fi-impact .fi-btn--ghost:hover{background:#fff;color:#000}
#fi-impact .fi-arrow{width:11px;height:9px;fill:currentColor;transition:transform .25s var(--ease)}
#fi-impact .fi-btn:hover .fi-arrow{transform:translateX(3px)}

/* ---------- cover ---------- */
#fi-impact .fi-cover{position:relative;background:var(--night);color:#fff;min-height:max(560px,calc(100svh - var(--fi-top) - var(--fi-gap,0px)));display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
#fi-impact .fi-torus{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
#fi-impact .fi-cover__inner{width:100%;max-width:1200px;margin:0 auto;padding:max(300px,44vh) var(--pad) clamp(40px,6vh,80px)}
#fi-impact .fi-cover__eyebrow{font:500 12px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.62);margin-bottom:22px}
#fi-impact .fi-cover__title{font:300 clamp(64px,11vw,160px)/.92 var(--serif);letter-spacing:-.035em;color:#fff}
#fi-impact .fi-cover__sub{font:300 clamp(24px,3.2vw,44px)/1.2 var(--serif);color:rgba(255,255,255,.9);margin-top:14px}
#fi-impact .fi-cover__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(28px,4vw,44px)}
#fi-impact .fi-scrollcue{position:absolute;right:var(--pad);bottom:clamp(40px,6vh,80px);width:1px;height:72px;background:rgba(255,255,255,.18);overflow:hidden}
#fi-impact .fi-scrollcue span{position:absolute;left:0;top:0;width:1px;height:28px;background:#fff;animation:fi-cue 2.2s var(--ease) infinite}
@keyframes fi-cue{0%{transform:translateY(-30px)}100%{transform:translateY(80px)}}

/* ---------- chapter bar ---------- */
#fi-impact .fi-bar{position:sticky;top:var(--fi-top);z-index:40;background:rgba(242,247,253,.86);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
#fi-impact .fi-bar__in{max-width:1200px;margin:0 auto;padding:0 var(--pad);height:48px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px}
#fi-impact .fi-bar__brand{font:300 17px/1 var(--serif);color:var(--ink);white-space:nowrap}
#fi-impact .fi-bar__brand em{font-style:normal!important;color:var(--muted)}
#fi-impact .fi-bar__now{flex:1;min-width:0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
#fi-impact .fi-bar__num{font-variant-numeric:tabular-nums;color:var(--muted);margin-right:6px}
#fi-impact .fi-bar__label{display:inline-block}
#fi-impact .fi-bar__label.is-swap{animation:fi-swap .45s var(--ease)}
@keyframes fi-swap{from{opacity:0;transform:translateY(6px)}}
#fi-impact .fi-bar__toggle{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);font:300 16px/1 var(--serif);color:var(--ink);white-space:nowrap}
#fi-impact .fi-bar__icon{position:relative;width:12px;height:8px}
#fi-impact .fi-bar__icon::before,#fi-impact .fi-bar__icon::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;transition:transform .3s var(--ease),top .3s}
#fi-impact .fi-bar__icon::before{top:1px}#fi-impact .fi-bar__icon::after{top:6px}
#fi-impact .fi-bar__toggle[aria-expanded="true"] .fi-bar__icon::before{top:3.5px;transform:rotate(45deg)}
#fi-impact .fi-bar__toggle[aria-expanded="true"] .fi-bar__icon::after{top:3.5px;transform:rotate(-45deg)}
#fi-impact .fi-bar__progress{position:absolute;left:0;right:0;bottom:-1px;height:2px}
#fi-impact .fi-bar__progress span{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#9bd9b5,#8fb8e6,#b9a3e8)}
#fi-impact .fi-menu{position:absolute;left:0;right:0;top:100%;background:#f2f7fd;box-shadow:0 24px 40px -24px rgba(31,35,40,.25);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);max-height:calc(100svh - var(--fi-top) - 48px);overflow:auto}
#fi-impact .fi-menu ol{max-width:1200px;margin:0 auto;padding:20px var(--pad) 28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 24px}
#fi-impact .fi-menu a{display:flex;gap:14px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;font:300 22px/1.2 var(--serif);color:var(--ink)}
#fi-impact .fi-menu a span{font:400 12px/1 var(--sans);color:var(--muted);font-variant-numeric:tabular-nums}
#fi-impact .fi-menu a:hover,#fi-impact .fi-menu a.is-current{color:#5d60be}

/* ---------- contents ---------- */
#fi-impact .fi-contents{background:#fff}
#fi-impact .fi-toc{max-width:980px}
#fi-impact .fi-toc a{display:flex;align-items:baseline;gap:16px;padding:14px 0;text-decoration:none;font:400 clamp(18px,1.8vw,24px)/1.3 var(--sans);color:#3f4a56;transition:color .25s,padding .35s var(--ease)}
#fi-impact .fi-toc i{flex:1;border-bottom:1px dotted rgba(31,35,40,.3);transform:translateY(-6px)}
#fi-impact .fi-toc__n{font:300 20px/1 var(--serif);color:var(--muted);font-variant-numeric:tabular-nums}
#fi-impact .fi-toc a:hover{color:var(--ink);padding-left:12px}
#fi-impact .fi-toc a:hover .fi-toc__n{color:var(--ink)}

/* ---------- letter ---------- */
#fi-impact .fi-letter__grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:end}
#fi-impact .fi-letter__portrait{position:sticky;bottom:0;align-self:end;max-width:440px;margin-bottom:calc(-1 * clamp(72px,11vw,150px))}
#fi-impact .fi-letter__portrait img{width:100%;filter:grayscale(1) contrast(1.02)}
#fi-impact .fi-letter__close{font:300 clamp(22px,2.4vw,32px)/1.25 var(--serif);color:var(--ink);margin:clamp(20px,2.5vw,32px) 0 clamp(28px,3.5vw,44px)}


/* ---------- stats ---------- */
#fi-impact .fi-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:clamp(32px,4vw,48px) 0}
#fi-impact .fi-stat{border-radius:16px;padding:clamp(20px,2.2vw,30px);min-height:150px;display:flex;flex-direction:column;gap:12px;transition:transform .5s var(--ease),box-shadow .5s}
#fi-impact .fi-stat:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(31,35,40,.35)}
#fi-impact .fi-stat b{font:300 clamp(40px,4.6vw,64px)/1 var(--serif);letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
#fi-impact .fi-stat--big b{font-size:clamp(40px,5.4vw,76px)}
#fi-impact .fi-stat p{font-size:15px;line-height:1.45;color:#2f3640;max-width:42ch}
#fi-impact .fi-stat--row{flex-direction:row;align-items:center;gap:clamp(20px,3vw,48px);min-height:0}
#fi-impact .fi-stat--row p{max-width:none}
#fi-impact .fi-span-2{grid-column:span 2}#fi-impact .fi-span-3{grid-column:span 3}#fi-impact .fi-span-6{grid-column:span 6}
#fi-impact .fi-c-blue{background:var(--blue)}#fi-impact .fi-c-blue2{background:var(--blue2)}#fi-impact .fi-c-aqua{background:var(--aqua)}
#fi-impact .fi-c-mint{background:var(--mint)}#fi-impact .fi-c-lav{background:var(--lav)}#fi-impact .fi-c-pink{background:var(--pink)}#fi-impact .fi-c-lime{background:var(--lime)}

/* fellowship bars */
#fi-impact .fi-bars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
#fi-impact .fi-bars__item{position:relative;border-radius:16px;padding:22px 20px 56px;overflow:hidden;min-height:180px}
#fi-impact .fi-bars__item b{display:block;font:300 clamp(34px,3.4vw,46px)/1 var(--serif);color:var(--ink);margin-bottom:12px}
#fi-impact .fi-bars__item span{display:block;font-size:15px;line-height:1.35;color:#2f3640}
#fi-impact .fi-bars__item i{position:absolute;left:20px;right:20px;bottom:22px;height:6px;border-radius:6px;background:rgba(31,35,40,.08);overflow:hidden}
#fi-impact .fi-bars__item i::after{content:"";position:absolute;inset:0;width:var(--v);border-radius:6px;background:rgba(31,35,40,.72);transform-origin:0 50%;transform:scaleX(var(--bar,1));transition:transform 1.6s var(--ease) calc(var(--d,0s) + .2s)}
.fi-js #fi-impact .fi-bars__item:not(.is-in) i::after{--bar:0}

/* ---------- quotes ---------- */
#fi-impact .fi-quote{background:var(--card);border-radius:16px;padding:clamp(22px,2.6vw,34px)}
#fi-impact .fi-quote blockquote{font:300 clamp(19px,1.6vw,22px)/1.45 var(--serif);color:#22272e}
#fi-impact .fi-quote figcaption{margin-top:14px;font-size:15px;color:var(--muted)}
#fi-impact .fi-quote figcaption b{color:#55606c}
#fi-impact .fi-quote--xl{margin-top:clamp(40px,5vw,64px)}
#fi-impact .fi-quote--xl blockquote{font-size:clamp(22px,2.3vw,32px);line-height:1.35}
#fi-impact .fi-quotes{display:grid;gap:12px;margin-top:clamp(32px,4vw,48px)}
#fi-impact .fi-quotes:not(.fi-quotes--portrait){grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
#fi-impact .fi-quote--portrait{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 170px;column-gap:24px;align-items:end;padding-bottom:0;overflow:hidden}
#fi-impact .fi-quote--portrait blockquote{grid-column:1;padding-bottom:0;align-self:start}
#fi-impact .fi-quote--portrait figcaption{grid-column:1;padding-bottom:clamp(22px,2.6vw,34px)}
#fi-impact .fi-quote--portrait img{grid-column:2;grid-row:1 / span 2;align-self:end;width:170px;filter:grayscale(1)}
#fi-impact .fi-masonry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch;margin-top:clamp(48px,6vw,80px)}
#fi-impact .fi-masonry .fi-quote{display:flex;flex-direction:column;justify-content:space-between}
#fi-impact .fi-masonry > :last-child:nth-child(3n+1){grid-column:1 / -1}
#fi-impact .fi-masonry > :last-child:nth-child(3n+2){grid-column:span 2}

/* ---------- video ---------- */
#fi-impact .fi-video{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:center;margin:clamp(40px,5vw,64px) 0}
#fi-impact .fi-video__frame{position:relative;display:block;width:100%;border-radius:16px;overflow:hidden;aspect-ratio:16/9;background:#111}
#fi-impact .fi-video__frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
#fi-impact .fi-video__frame:hover img{transform:scale(1.04)}
#fi-impact .fi-video__text p{color:var(--muted)}
#fi-impact .fi-video__text .fi-h3{font-size:clamp(28px,3vw,40px)}
#fi-impact .fi-play{position:absolute;left:50%;top:50%;width:74px;height:74px;margin:-37px 0 0 -37px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 10px 30px rgba(0,0,0,.25);transition:transform .35s var(--ease)}
#fi-impact .fi-play::after{content:"";position:absolute;left:30px;top:24px;border-style:solid;border-width:13px 0 13px 21px;border-color:transparent transparent transparent #111}
#fi-impact .fi-play::before{content:"";position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(255,255,255,.7);animation:fi-pulse 2.4s var(--ease) infinite}
@keyframes fi-pulse{0%{transform:scale(.9);opacity:1}100%{transform:scale(1.35);opacity:0}}
#fi-impact .fi-video__frame:hover .fi-play{transform:scale(1.08)}
#fi-impact .fi-video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- timeline ---------- */
#fi-impact .fi-timeline{position:relative;margin-top:clamp(24px,4vw,48px)}
#fi-impact .fi-timeline::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line)}
#fi-impact .fi-timeline::after{content:"";position:absolute;left:0;top:0;width:1px;height:100%;background:var(--ink);transform-origin:0 0;transform:scaleY(var(--line,1))}
#fi-impact .fi-timeline li{position:relative;display:grid;grid-template-columns:clamp(96px,12vw,150px) minmax(0,1fr);gap:16px;align-items:baseline;padding:20px 0 20px clamp(20px,3vw,36px);border-bottom:1px solid var(--line)}
#fi-impact .fi-timeline li::before{content:"";position:absolute;left:-4px;top:31px;width:9px;height:9px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 1px var(--ink);transition:background .4s}
#fi-impact .fi-timeline li.is-in::before{background:var(--ink)}
#fi-impact .fi-year{font:300 clamp(26px,2.6vw,34px)/1 var(--serif);color:var(--ink)}
#fi-impact .fi-timeline p{font-size:16px;color:#3f4a56;max-width:72ch}
#fi-impact .fi-timeline--hope li{grid-template-columns:clamp(96px,12vw,150px) minmax(0,1fr) minmax(80px,22%)}
#fi-impact .fi-ep{position:relative;height:6px;border-radius:6px;background:rgba(93,96,190,.12);align-self:center}
#fi-impact .fi-ep::after{content:"";position:absolute;left:0;top:0;bottom:0;border-radius:6px;width:calc(var(--ep) * 1%);background:#8b8ee0;transform-origin:0 50%;transform:scaleX(var(--bar,1));transition:transform 1.4s var(--ease) .25s}
.fi-js #fi-impact .fi-timeline--hope li:not(.is-in) .fi-ep::after{--bar:0}

/* ---------- dark / early days ---------- */
#fi-impact .fi-dark{background:var(--night);color:rgba(255,255,255,.82)}
#fi-impact .fi-collage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(54px,6.4vw,78px);gap:12px}
#fi-impact .fi-ph{position:relative;border-radius:14px;overflow:hidden;background:#151515}
#fi-impact .fi-ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .6s}
#fi-impact .fi-ph:hover img{transform:scale(1.05)}
#fi-impact .fi-ph__n{position:absolute;left:12px;bottom:10px;font:500 13px/1 var(--sans);color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}
#fi-impact .fi-col-a{grid-column:1;grid-row:1 / span 2}
#fi-impact .fi-col-d{grid-column:1;grid-row:3 / span 3}
#fi-impact .fi-col-f{grid-column:1;grid-row:6 / span 2}
#fi-impact .fi-col-i{grid-column:1;grid-row:8 / span 4}
#fi-impact .fi-col-b{grid-column:2;grid-row:1 / span 3}
#fi-impact .fi-col-e{grid-column:2;grid-row:4 / span 2}
#fi-impact .fi-col-g{grid-column:2;grid-row:6 / span 2}
#fi-impact .fi-col-j{grid-column:2;grid-row:8 / span 4}
#fi-impact .fi-col-c{grid-column:3;grid-row:1 / span 5}
#fi-impact .fi-col-h{grid-column:3;grid-row:6 / span 3}
#fi-impact .fi-col-k{grid-column:3;grid-row:9 / span 3}
#fi-impact .fi-col-e img{object-position:center top}
#fi-impact .fi-captions{counter-reset:cap;columns:2 320px;column-gap:40px;margin-top:40px;font-size:14px;line-height:1.5;color:rgba(255,255,255,.72)}
#fi-impact .fi-captions li{counter-increment:cap;break-inside:avoid;padding-left:24px;position:relative;margin-bottom:10px}
#fi-impact .fi-captions li::before{content:counter(cap) ".";position:absolute;left:0;color:#fff}

/* ---------- strips ---------- */
#fi-impact .fi-strip{display:grid;grid-template-columns:1fr 1.5fr 1.25fr;gap:0;max-width:1300px;margin:clamp(40px,6vw,80px) auto;padding:0 var(--pad);height:clamp(180px,24vw,320px)}
#fi-impact .fi-strip--4{grid-template-columns:repeat(4,minmax(0,1fr))}
#fi-impact .fi-strip img{width:100%;height:115%;object-fit:cover;margin-top:-7.5%}
#fi-impact .fi-strip{overflow:hidden;border-radius:18px;clip-path:inset(0 var(--pad) round 18px)}

/* ---------- AI nodes ---------- */
#fi-impact .fi-cities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px);margin-top:clamp(24px,3vw,40px)}
#fi-impact .fi-city{background:#f8fbfc;border-radius:18px;overflow:hidden;padding-bottom:12px}
#fi-impact .fi-city__img{aspect-ratio:16/8;overflow:hidden;margin-bottom:22px}
#fi-impact .fi-city__img img{width:100%;height:100%;object-fit:cover}
#fi-impact .fi-city .fi-h3,#fi-impact .fi-city .fi-prose{padding:0 clamp(20px,2.4vw,32px)}
#fi-impact .fi-city .fi-h3{font-size:clamp(30px,3vw,40px)}
#fi-impact .fi-city .fi-prose{font-size:16.5px;color:#465260}
#fi-impact .fi-people > div{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(16px,3vw,48px);padding:24px 0;border-top:1px solid var(--line)}
#fi-impact .fi-people dt{font:300 clamp(24px,2.2vw,30px)/1.1 var(--serif);color:var(--ink)}
#fi-impact .fi-people dt span{display:block;font:400 14px/1.4 var(--sans);color:var(--muted);margin-top:6px}
#fi-impact .fi-people dd{font-size:16px;color:#2f3640;max-width:72ch}

/* ---------- lists ---------- */
#fi-impact .fi-list li{position:relative;padding-left:22px;margin-bottom:12px}
#fi-impact .fi-list li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--ink)}
#fi-impact .fi-list--lg{font-size:clamp(16px,1.35vw,18.5px);max-width:880px}
#fi-impact .fi-list--lg li{margin-bottom:18px}

/* ---------- grants stories ---------- */
#fi-impact .fi-stories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:clamp(56px,7vw,96px);align-items:stretch}
#fi-impact .fi-story{display:flex;flex-direction:column}
#fi-impact .fi-story .fi-quote{margin-top:auto}
#fi-impact .fi-story > p{margin-bottom:20px}
#fi-impact .fi-story{background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.9);border-radius:18px;padding:clamp(22px,2.4vw,32px)}
#fi-impact .fi-story > p{font-size:16px;color:#2f3640}
#fi-impact .fi-story .fi-quote{margin-top:auto;padding:20px 22px}
#fi-impact .fi-story .fi-quote blockquote{font-size:18px}

/* ---------- alumni ---------- */
#fi-impact .fi-alumni{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px clamp(24px,4vw,64px)}
#fi-impact .fi-tag{display:inline-block;font:300 20px/1 var(--serif);color:#2d333b;padding:7px 14px 8px;border-radius:999px;background:var(--c);margin-bottom:16px}
#fi-impact .fi-alumni .fi-list{font-size:16px}

/* ---------- existential hope ---------- */
#fi-impact .fi-hope{background:var(--hope)}
#fi-impact .fi-hope__title{display:flex;align-items:center;gap:.2em}
#fi-impact .fi-star{width:.72em;height:.72em;fill:#c9cbf3;animation:fi-spin 24s linear infinite;flex:none}
@keyframes fi-spin{to{transform:rotate(360deg)}}
#fi-impact .fi-hope .fi-timeline li::before{background:var(--hope)}
#fi-impact .fi-hope .fi-timeline li.is-in::before{background:var(--ink)}
#fi-impact .fi-hope__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,4vw,56px) clamp(24px,4vw,64px);margin-top:clamp(56px,7vw,96px)}
#fi-impact .fi-hope__col .fi-list{font-size:16px}
#fi-impact .fi-hope__col .fi-quote{margin-top:18px}
#fi-impact .fi-hope__col .fi-quote blockquote{font-size:18.5px}
#fi-impact .fi-hope__col--wide{grid-column:1 / -1}

/* ---------- prizes ---------- */
#fi-impact .fi-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px);margin-top:clamp(24px,3vw,40px)}
#fi-impact .fi-people--awardees > div{grid-template-columns:minmax(0,300px) minmax(0,1fr)}

/* ---------- channels ---------- */
#fi-impact .fi-watched{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(24px,4vw,56px);align-items:center}
#fi-impact .fi-watched .fi-h3--lg{margin-top:0}

/* ---------- pictures ---------- */
#fi-impact .fi-pictures{background:#fff}
#fi-impact .fi-gallery{columns:3 260px;column-gap:12px}
#fi-impact .fi-gallery figure{break-inside:avoid;margin-bottom:12px;border-radius:14px;overflow:hidden;display:block}
#fi-impact .fi-gallery img{width:100%;transition:transform 1.4s var(--ease)}
#fi-impact .fi-gallery figure:hover img{transform:scale(1.04)}

/* ---------- what's next ---------- */
#fi-impact .fi-next{background:var(--night);color:rgba(255,255,255,.86);overflow:hidden;isolation:isolate}
#fi-impact .fi-next .fi-h2,#fi-impact .fi-next b{color:#fff}
#fi-impact .fi-next .fi-kicker{color:rgba(255,255,255,.5)}
#fi-impact .fi-next .fi-prose--lg{color:rgba(255,255,255,.84)}
#fi-impact .fi-next__mol{position:relative;height:clamp(240px,32vw,440px);margin:0 0 clamp(24px,4vw,56px)}
#fi-impact .fi-next__mol .fi-torus{z-index:0}
#fi-impact .fi-next__photo{border-radius:18px;overflow:hidden;margin:clamp(32px,4vw,56px) 0 clamp(8px,1vw,16px)}
#fi-impact .fi-next__signers{margin:clamp(20px,2.5vw,32px) 0 clamp(36px,4.5vw,56px)}
#fi-impact .fi-next__photo img{width:100%;height:auto;display:block}
#fi-impact .fi-contact{font-size:15px;line-height:1.8;color:rgba(255,255,255,.6);margin-bottom:clamp(48px,6vw,80px)}
#fi-impact .fi-contact ul{list-style:none;margin:6px 0 0;padding:0}
#fi-impact .fi-contact li{padding:0;margin:0}
#fi-impact .fi-contact li::before{content:none}
#fi-impact .fi-contact a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:3px;overflow-wrap:anywhere}
#fi-impact .fi-next__close{font:300 clamp(26px,3vw,42px)/1.2 var(--serif);color:#fff;max-width:900px;margin-top:clamp(24px,3vw,40px)}
#fi-impact .fi-next__actions{margin-bottom:clamp(48px,6vw,80px)}
#fi-impact .fi-signers{display:grid;gap:20px}
#fi-impact .fi-signer{display:flex;align-items:center;gap:clamp(18px,3vw,32px)}
#fi-impact .fi-signer img{width:clamp(80px,9vw,96px);aspect-ratio:92/110;object-fit:cover;border-radius:4px}
#fi-impact .fi-signer__n{font:300 clamp(26px,2.6vw,34px)/1.1 var(--serif);color:#fff;margin-bottom:4px}
#fi-impact .fi-colophon{margin-top:clamp(64px,8vw,110px);padding-top:20px;border-top:1px solid rgba(255,255,255,.14);font-size:13px;color:rgba(255,255,255,.5)}

/* ---------- lightbox ---------- */
#fi-impact .fi-lightbox{position:fixed;inset:0;z-index:100000;background:rgba(0,0,0,.88);display:grid;place-items:center;padding:16px;animation:fi-fade .35s ease}
#fi-impact .fi-lightbox[hidden]{display:none}
#fi-impact .fi-lightbox__frame{position:relative;width:min(1100px,100%);aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden}
#fi-impact .fi-lightbox__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
#fi-impact .fi-lightbox__x{position:absolute;top:14px;right:18px;font-size:40px;line-height:1;color:#fff}
@keyframes fi-fade{from{opacity:0}}

/* ---------- motion (only when JS is running) ---------- */
.fi-js #fi-impact [data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity 1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.fi-js #fi-impact [data-reveal].is-in{opacity:1;transform:none}
/* the wipe lives on the image, never on the observed frame (a fully clipped frame never "intersects") */
.fi-js #fi-impact [data-wipe] img{opacity:0;transition:opacity 1.2s ease var(--d,0s),transform 1.4s var(--ease)}
.fi-js #fi-impact [data-wipe].is-in img{opacity:1}
.fi-js #fi-impact .fi-strip[data-reveal]{transform:none}
.fi-js #fi-impact img.fi-wait{opacity:0!important}
:where(.fi-js #fi-impact img){transition:opacity .8s ease}
.fi-js #fi-impact [data-wipe].is-in:hover img{transform:scale(1.05)}
#fi-impact .fi-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
#fi-impact .fi-w > span{display:inline-block}
.fi-js #fi-impact .fi-w > span{transform:translate3d(0,108%,0);transition:transform 1.1s var(--ease) calc(var(--i,0) * 70ms + var(--d,0s))}
.fi-js #fi-impact .is-in .fi-w > span,.fi-js #fi-impact .fi-w.is-in > span{transform:none}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  #fi-impact .fi-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  #fi-impact .fi-span-2,#fi-impact .fi-span-3{grid-column:span 1}
  #fi-impact .fi-span-6{grid-column:1 / -1}
  #fi-impact .fi-bars{grid-template-columns:repeat(3,minmax(0,1fr))}
  #fi-impact .fi-stories{grid-template-columns:1fr}
  #fi-impact .fi-masonry{grid-template-columns:repeat(2,minmax(0,1fr))}
  #fi-impact .fi-masonry > :last-child:nth-child(3n+1),#fi-impact .fi-masonry > :last-child:nth-child(3n+2){grid-column:auto}
  #fi-impact .fi-masonry > :last-child:nth-child(odd){grid-column:1 / -1}
  #fi-impact .fi-strip--4{grid-template-columns:repeat(2,minmax(0,1fr));height:auto}
  #fi-impact .fi-strip--4 img{aspect-ratio:4/3;height:auto;margin:0}
}
@media (max-width:760px){
  #fi-impact{font-size:16px}
  #fi-impact .fi-bar__brand{display:none}
  #fi-impact .fi-bar__now{text-align:left}
  #fi-impact .fi-letter__grid{grid-template-columns:1fr}
  #fi-impact .fi-letter__portrait{position:relative;max-width:260px;margin:8px auto 0;transform:none!important}
  #fi-impact .fi-stats{grid-template-columns:1fr}
  #fi-impact .fi-stat{min-height:0}
  #fi-impact .fi-masonry{grid-template-columns:1fr}
  #fi-impact .fi-masonry > :last-child:nth-child(odd){grid-column:auto}
  #fi-impact .fi-stat--row{flex-direction:column;align-items:flex-start}
  #fi-impact .fi-stat b{white-space:normal}
  #fi-impact .fi-bars{grid-template-columns:repeat(2,minmax(0,1fr))}
  #fi-impact .fi-bars__item{min-height:150px}
  #fi-impact .fi-quote--portrait{display:block;position:relative;padding-bottom:0}
  #fi-impact .fi-quote--portrait figcaption{padding-right:96px;min-height:96px}
  #fi-impact .fi-quote--portrait img{position:absolute;right:12px;bottom:0;width:92px}
  #fi-impact .fi-video,#fi-impact .fi-watched,#fi-impact .fi-cities,#fi-impact .fi-alumni,#fi-impact .fi-hope__grid,#fi-impact .fi-two{grid-template-columns:1fr}
  #fi-impact .fi-timeline li,#fi-impact .fi-timeline--hope li{grid-template-columns:1fr;gap:6px}
  #fi-impact .fi-timeline li::before{top:26px}
  #fi-impact .fi-ep{max-width:220px;margin-top:6px}
  #fi-impact .fi-people > div,#fi-impact .fi-people--awardees > div{grid-template-columns:1fr;gap:8px}
  #fi-impact .fi-collage{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto}
  #fi-impact .fi-collage .fi-ph{grid-column:auto;grid-row:auto;aspect-ratio:4/5}
  #fi-impact .fi-strip{grid-template-columns:1fr 1fr;height:auto}
  #fi-impact .fi-strip img{aspect-ratio:1;height:auto;margin:0}
  #fi-impact .fi-strip img:first-child{grid-column:1 / -1;aspect-ratio:16/9}
  #fi-impact .fi-strip--4 img:first-child{grid-column:auto;aspect-ratio:1}
  #fi-impact .fi-scrollcue{display:none}
}
@media (prefers-reduced-motion:reduce){
  #fi-impact *,#fi-impact *::before,#fi-impact *::after{animation:none!important;transition:none!important}
  .fi-js #fi-impact [data-reveal],.fi-js #fi-impact [data-wipe] img,.fi-js #fi-impact .fi-w > span{opacity:1;transform:none;clip-path:none}
}
