/* Institute of Goodness — v2 design system
   Tokens mirror weforum.org (colours, type scale, radii, elevation, spacing) + IoG greens */
:root{
  --accent:#3E7B36;--accent-hover:#2E5F2A;--accent-pressed:#1C3F1D;--accent-subtle:#EAF3DA;--accent-10:#D6E6B8;--accent-40:#6DA83A;
  --blue-darker:#2E5F2A;--blue-darkest:#1C3F1D;
  --n0:#fff;--n5:#F4F9EC;--n10:#E4EEDA;--n20:#C9D9BC;--n30:#AFC2A0;--n40:#8FA681;--n50:#6F8A63;--n60:#557347;--n70:#3F5E36;--n80:#2E4C29;--n90:#1C3F1D;--n95:#17351A;--n100:#123016;
  --text:#123016;--text-2:#557347;--text-3:#2E4C29;--border:rgba(85,115,71,.11);--border-hover:rgba(85,115,71,.19);--relief:rgba(85,115,71,.06);--raised:rgba(85,115,71,.11);
  --positive:#8CBE44;--warning:#F0BE43;--negative:#B07A1A;
  --iog-deep:#1C3F1D;--iog-green:#4E8C31;--iog-mid:#4e8c31;--iog-leaf:#a9c93c;--iog-sun:#f0be43;--iog-tint:#EAF3DA;--iog-mid2:#8cbe44;
  --grad-hero:linear-gradient(160deg,#1C3F1D 0%,#4E8C31 48%,#4e8c31 100%);
  --grad-blue:linear-gradient(160deg,#2E5F2A 0%,#3E7B36 60%,#6DA83A 100%);
  --font:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --lh-short:1.2;--lh-base:1.388;--lh-regular:1.5;--lh-tall:1.6;
  --r-100:8px;--r-150:12px;--r-full:999px;
  --el-1:0 4px 12px rgba(18,48,22,.08),0 1px 2px rgba(18,48,22,.04);--el-2:0 8px 24px rgba(18,48,22,.08),0 2px 4px rgba(18,48,22,.04);
  --sp-100:8px;--sp-150:12px;--sp-200:16px;--sp-250:20px;--sp-300:24px;--sp-400:32px;--sp-500:40px;--sp-600:48px;--sp-800:64px;--sp-1000:80px;--sp-1200:96px;--sp-1400:112px;--sp-1600:128px;
  --hdr:64px;--wrap:1440px;--gutter:clamp(20px,3vw,48px);--ease:cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--font);font-size:1rem;line-height:var(--lh-regular);color:var(--text);background:var(--n0);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,video,iframe{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
ul{list-style:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
::selection{background:var(--accent);color:#fff}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.wrap-md{max-width:1200px}
.wrap-sm{max-width:880px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- type ---- */
h1,h2,h3,h4,.h1,.h2,.h3,.h4{font-weight:700;line-height:var(--lh-short);letter-spacing:-.02em;color:inherit}
.h1{font-size:clamp(2.5rem,5vw,4rem);letter-spacing:-.03em;line-height:1.08}
.h2{font-size:clamp(2rem,3.6vw,3rem);letter-spacing:-.025em;line-height:1.12}
.h3{font-size:clamp(1.5rem,2.2vw,2rem)}
.h4{font-size:1.5rem}
.h5{font-size:1.125rem;font-weight:700}
.lead{font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:var(--lh-tall);color:var(--text-3)}
.lead-b{font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:var(--lh-tall);font-weight:600}
.muted{color:var(--text-2)}
.small{font-size:.875rem}
.xs{font-size:.75rem}
.overline{font-size:.8125rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2)}
.section{padding:clamp(56px,7vw,112px) 0}
.section-tight{padding:clamp(40px,5vw,72px) 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-300);margin-bottom:clamp(28px,3.5vw,48px);flex-wrap:wrap}
.section-head p{max-width:60ch;margin-top:var(--sp-150)}
.grid{display:grid;gap:var(--sp-300)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1024px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* ---- buttons (WEF pill) ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 26px;border-radius:var(--r-full);font-weight:600;font-size:1rem;line-height:1;white-space:nowrap;border:2px solid transparent;transition:background .2s var(--ease),color .2s,border-color .2s,transform .2s}
.btn svg{width:18px;height:18px;flex:none}
.btn:active{transform:scale(.98)}
.btn-accent{background:var(--accent);color:#fff}
.btn-accent:hover{background:var(--accent-hover)}
.btn-outline{border-color:var(--accent);color:var(--accent);background:transparent}
.btn-outline:hover{background:var(--accent-subtle)}
.btn-dark{background:var(--n90);color:#fff}
.btn-dark:hover{background:#123016}
.btn-light{background:rgba(255,255,255,.85);color:var(--n90);backdrop-filter:blur(8px)}
.btn-light:hover{background:#fff}
.btn-glass{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.35)}
.btn-glass:hover{background:rgba(255,255,255,.3)}
.btn-white{background:#fff;color:var(--n90)}
.btn-white:hover{background:var(--n5)}
.btn-green{background:var(--iog-green);color:#fff}
.btn-green:hover{background:var(--iog-deep)}
.btn-sm{height:40px;padding:0 20px;font-size:.9375rem}
.btn-lg{height:56px;padding:0 32px;font-size:1.0625rem}
.link{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--accent)}
.link svg{width:18px;height:18px;transition:transform .2s}
.link:hover svg{transform:translateX(3px)}
.link-dark{color:var(--n90)}

/* ---- header ---- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--hdr);display:flex;align-items:center;background:#fff;color:var(--n90);transition:background .3s var(--ease),color .3s,box-shadow .3s}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-200);position:relative}
.site-header.on-dark:not(.scrolled){background:linear-gradient(180deg,rgba(18,48,22,.35),rgba(18,48,22,0));color:#fff}
.site-header.on-dark:not(.scrolled) .brand .mark{filter:none}
.site-header.scrolled{box-shadow:0 1px 0 var(--n10)}
.hdr-left,.hdr-right{display:flex;align-items:center;gap:var(--sp-150);flex:1}
.hdr-right{justify-content:flex-end}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-full);color:inherit;transition:background .2s}
.icon-btn:hover{background:rgba(85,115,71,.14)}
.icon-btn svg{width:28px;height:28px}
.brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:10px;color:inherit}
.brand .mark{width:40px;height:40px;flex:none}
.brand .wm{display:flex;flex-direction:column;line-height:1;font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.brand .wm span{display:block}
.brand .wm .sub{font-size:.52rem;font-weight:600;letter-spacing:.24em;margin-top:5px;opacity:.75}
.site-header.on-dark:not(.scrolled) .btn-accent{background:var(--accent)}
.site-header.on-dark:not(.scrolled) .btn-outline{border-color:rgba(255,255,255,.7);color:#fff}
.site-header.on-dark:not(.scrolled) .btn-outline:hover{background:rgba(255,255,255,.14)}
@media(max-width:900px){
  .hdr-right .btn-outline{display:none}
  .hdr-right .btn-accent{height:40px;padding:0 16px;font-size:.875rem}
  .brand .wm{display:none}
}
@media(max-width:480px){.hdr-right .btn-accent span{display:none}.hdr-right .btn-accent{width:40px;padding:0}}

/* ---- mega menu ---- */
.menu{position:fixed;inset:0;z-index:220;background:#fff;color:var(--n90);transform:translateY(-100%);opacity:0;transition:transform .45s var(--ease),opacity .3s;overflow:auto;visibility:hidden}
.menu.open{transform:none;opacity:1;visibility:visible}
.menu-top{height:var(--hdr);display:flex;align-items:center;border-bottom:1px solid var(--n10)}
.menu-top .wrap{display:flex;align-items:center;justify-content:space-between}
.menu-search{display:flex;align-items:center;gap:12px;border-bottom:2px solid var(--n90);padding:20px 0;margin:clamp(24px,4vw,48px) 0 clamp(24px,4vw,40px);max-width:760px}
.menu-search svg{width:26px;height:26px;flex:none}
.menu-search input{flex:1;border:0;outline:0;font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:600;background:transparent}
.menu-search input::placeholder{color:var(--n40)}
.menu-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-500);padding-bottom:var(--sp-800)}
.menu-grid h4{font-size:.8125rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--n50);margin-bottom:var(--sp-200)}
.menu-grid li{margin-bottom:12px}
.menu-grid a{font-size:1.0625rem;font-weight:500;transition:color .2s}
.menu-grid a:hover{color:var(--accent)}
.menu-primary a{font-size:clamp(1.5rem,2.6vw,2.125rem);font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:14px}
.menu-primary a svg{width:24px;height:24px;opacity:0;transform:translateX(-8px);transition:.25s}
.menu-primary a:hover svg{opacity:1;transform:none}
.menu-primary li{margin-bottom:18px}
.menu-foot{border-top:1px solid var(--n10);padding:var(--sp-300) 0 var(--sp-600);display:flex;gap:var(--sp-300);flex-wrap:wrap;color:var(--n60);font-size:.875rem}
@media(max-width:900px){.menu-grid{grid-template-columns:1fr 1fr}.menu-primary{grid-column:1/-1}}
@media(max-width:560px){.menu-grid{grid-template-columns:1fr}}
.no-scroll{overflow:hidden}

/* ---- ticker (below header, hideable) ---- */
.ticker{margin-top:var(--hdr);background:var(--n90);color:#fff;display:flex;align-items:stretch;height:44px;overflow:hidden;position:relative}
.ticker.hidden{height:0;visibility:hidden}
body.hero-page .ticker.hidden{display:none}
.ticker .ttag{display:flex;align-items:center;gap:8px;padding:0 18px;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:var(--accent);flex:none}
.ticker .ttag i{width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.3}}
.ticker .track-wrap{flex:1;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#123016 4%,#123016 96%,transparent)}
.ticker .track{display:flex;align-items:center;gap:0;width:max-content;height:100%;animation:tick 70s linear infinite}
.ticker:hover .track{animation-play-state:paused}
.ticker .item{display:inline-flex;align-items:center;gap:12px;padding:0 28px;font-size:.875rem;font-weight:500;color:#E4EEDA;white-space:nowrap;border-right:1px solid rgba(255,255,255,.12);height:100%}
.ticker .item b{color:#fff;font-weight:700}
.ticker .item .dot{width:8px;height:8px;border-radius:50%;flex:none}
.ticker .item:hover{color:#fff;background:rgba(255,255,255,.06)}
.ticker .close{width:44px;flex:none;display:flex;align-items:center;justify-content:center;color:#C9D9BC;border-left:1px solid rgba(255,255,255,.12)}
.ticker .close:hover{color:#fff;background:rgba(255,255,255,.08)}
.ticker .close svg{width:18px;height:18px}
@keyframes tick{to{transform:translateX(-50%)}}
body.hero-page .ticker{margin-top:0;position:absolute;top:var(--hdr);left:0;right:0;z-index:90;background:rgba(18,48,22,.42);backdrop-filter:blur(10px)}
body.hero-page .ticker .ttag{background:rgba(240,190,67,.9)}
@media(max-width:640px){.ticker .ttag span{display:none}.ticker .ttag{padding:0 14px}}

/* ---- home hero (WEF) ---- */
.hero-home{position:relative;color:#fff;background:var(--grad-hero);padding-top:calc(var(--hdr) + clamp(48px,7vw,112px));overflow:hidden;isolation:isolate}
.hero-home::before{content:"";position:absolute;inset:0;background:linear-gradient(200deg,rgba(166,195,63,.28),transparent 45%);clip-path:polygon(62% 0,100% 0,100% 100%,38% 100%);z-index:-1}
.hero-home::after{content:"";position:absolute;left:0;right:0;bottom:0;height:min(42vw,480px);background:linear-gradient(180deg,rgba(255,255,255,0),#EAF3DA 68%,#fff);z-index:-1}
.hero-grid{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);gap:clamp(32px,5vw,88px);align-items:center}
.hero-grid h1{font-size:clamp(2.25rem,4.4vw,4rem);font-weight:700;letter-spacing:-.03em;line-height:1.08;max-width:14ch}
.hero-grid .btn{margin-top:clamp(28px,3.5vw,48px)}
.hero-copy{opacity:0;transform:translateY(18px);animation:rise .9s var(--ease) .15s forwards}
.hero-video{opacity:0;transform:translateY(18px);animation:rise .9s var(--ease) .35s forwards}
@keyframes rise{to{opacity:1;transform:none}}
.video-card{position:relative;aspect-ratio:16/9;border-radius:var(--r-100);overflow:hidden;background:#123016 center/cover no-repeat;box-shadow:0 30px 70px -30px rgba(18,48,22,.6)}
.video-card .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.yt-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.yt-bg iframe{position:absolute;top:50%;left:50%;width:150%;height:150%;transform:translate(-50%,-50%);border:0;opacity:0;transition:opacity 1.2s}
.yt-bg.ready iframe{opacity:1}
.watch-pill{position:absolute;left:24px;bottom:24px;display:inline-flex;align-items:center;gap:16px;color:#fff;font-weight:600;font-size:1.0625rem;z-index:2}
.watch-pill .pl{width:56px;height:56px;border-radius:50%;border:2px solid rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;background:rgba(18,48,22,.25);backdrop-filter:blur(6px);transition:.25s}
.watch-pill .pl svg{width:22px;height:22px;margin-left:3px}
.watch-pill:hover .pl{background:#fff;color:#123016;border-color:#fff}
@media(max-width:960px){.hero-grid{grid-template-columns:1fr}.hero-grid h1{max-width:none}}

/* ---- impact tabs (inside hero) ---- */
.impact{position:relative;margin-top:clamp(56px,7vw,104px);padding-bottom:clamp(64px,8vw,120px)}
.impact-head{display:flex;align-items:center;justify-content:center;gap:clamp(20px,3vw,48px);flex-wrap:wrap;margin-bottom:clamp(32px,4vw,52px)}
.impact-head h2{font-size:clamp(1.75rem,2.8vw,2.375rem);font-weight:700;letter-spacing:-.02em}
.tabs{display:inline-flex;background:rgba(255,255,255,.22);backdrop-filter:blur(10px);border-radius:var(--r-full);padding:6px;gap:2px}
.tabs button{height:56px;padding:0 clamp(22px,2.8vw,44px);border-radius:var(--r-full);font-weight:600;font-size:clamp(.9375rem,1.2vw,1.25rem);color:#fff;transition:.25s}
.tabs button[aria-selected=true]{background:#fff;color:var(--n90);box-shadow:var(--el-1)}
.tabs.dark{background:var(--n5)}
.tabs.dark button{color:var(--n70);height:48px;font-size:1rem}
.tabs.dark button[aria-selected=true]{background:var(--n90);color:#fff}
.impact-panel{display:none}
.impact-panel.on{display:block}
.impact-row{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,2.15fr);gap:var(--sp-300);align-items:stretch}
.info-card{background:#fff;color:var(--n90);border-radius:var(--r-100);padding:clamp(28px,3vw,44px);display:flex;flex-direction:column;box-shadow:var(--el-2)}
.info-card .overline{margin-bottom:var(--sp-300)}
.info-card h3{font-size:clamp(1.5rem,2.2vw,2rem);letter-spacing:-.02em}
.info-card p{color:var(--text-2);margin:var(--sp-300) 0;font-size:1.0625rem;line-height:var(--lh-tall)}
.info-card .btn{margin-top:auto;align-self:flex-start;background:var(--n5);color:var(--n90)}
.info-card .btn:hover{background:var(--n10)}
.scroller{position:relative}
.scroller .rail{display:flex;gap:var(--sp-300);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px;margin-right:calc(-1*var(--gutter));padding-right:var(--gutter)}
.scroller .rail::-webkit-scrollbar{display:none}
.scroller .rail>*{flex:0 0 clamp(280px,25vw,440px);scroll-snap-align:start}
.rail-nav{display:flex;justify-content:flex-end;gap:12px;margin-top:var(--sp-200)}
.rail-nav button{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:inherit;transition:.2s}
.rail-nav button svg{width:26px;height:26px}
.rail-nav button:disabled{opacity:.3}
.rail-nav button:not(:disabled):hover{background:rgba(85,115,71,.15)}
.photo-card{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--r-100);overflow:hidden;background:var(--n90);color:#fff;isolation:isolate}
.photo-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),opacity .4s;opacity:.92}
.photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,48,22,0) 40%,rgba(18,48,22,.85));z-index:1}
.photo-card:hover img{transform:scale(1.04);opacity:1}
.photo-card h3{position:absolute;left:24px;right:24px;bottom:24px;z-index:2;font-size:clamp(1.25rem,1.9vw,1.75rem);font-weight:700;letter-spacing:-.02em}
.photo-card .meta{position:absolute;left:24px;right:24px;bottom:24px;z-index:2;font-size:.875rem;font-weight:500;display:flex;gap:8px;align-items:center;opacity:.9}
.photo-card.wide{aspect-ratio:16/10}
.photo-card.story h3{bottom:56px;font-size:clamp(1.0625rem,1.35vw,1.25rem)}
.photo-card .meta svg{width:16px;height:16px}
@media(max-width:960px){.impact-row{grid-template-columns:1fr}}

/* ---- section: generic light on white ---- */
.eyebrow-row{display:flex;gap:var(--sp-200);align-items:center;flex-wrap:wrap}

/* ---- latest analysis (WEF) ---- */
.analysis{position:relative;color:#fff;padding:clamp(56px,7vw,104px) 0;isolation:isolate;overflow:hidden}
.analysis .bg{position:absolute;inset:0;z-index:-2}
.analysis .bg img{width:100%;height:100%;object-fit:cover}
.analysis::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,48,22,.55),rgba(18,48,22,.7));z-index:-1}
.analysis h2{font-size:clamp(2rem,3.6vw,3rem);letter-spacing:-.025em;margin-bottom:clamp(28px,3.5vw,52px);max-width:22ch}
.analysis .scroller .rail>*{flex-basis:clamp(300px,30vw,560px)}

/* ---- coloured bands (WHR-style) ---- */
.band{position:relative;padding:clamp(40px,5vw,64px) 0;color:var(--n90)}
.band-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--sp-400);align-items:stretch}
.band-card{background:#fff;border-radius:var(--r-100);padding:clamp(28px,3.5vw,48px);display:flex;flex-direction:column;box-shadow:var(--el-2)}
.band-card h2{font-size:clamp(1.5rem,2.4vw,2.125rem);letter-spacing:-.02em;line-height:1.2}
.band-card p{margin:var(--sp-300) 0;color:var(--n80);font-size:1.0625rem;line-height:var(--lh-tall);max-width:58ch}
.band-card .links{margin-top:auto;display:flex;gap:var(--sp-300);flex-wrap:wrap}
.band-card .links a{font-weight:600;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1.5px}
.band-img{border-radius:var(--r-100);overflow:hidden;min-height:300px;position:relative}
.band-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.band-img.tint::after{content:"";position:absolute;inset:0;mix-blend-mode:multiply;opacity:.55}
.band-green{background:linear-gradient(120deg,#F0BE43 0%,#A9C93C 55%,#4E8C31 100%)}
.band-green .band-card h2{color:var(--iog-green)}
.band-green .band-card .links a{color:var(--iog-green)}
.band-green .band-img.tint::after{background:#4E8C31}
.band-blue{background:linear-gradient(120deg,#f3006b 0%,#DDAF3E 50%,#2E5F2A 100%)}
.band-blue .band-card h2{color:#DDAF3E}
.band-blue .band-card .links a{color:#DDAF3E}
.band-blue .band-img.tint::after{background:#3E7B36}
@media(max-width:900px){.band-grid{grid-template-columns:1fr}.band-img{min-height:240px}}

/* ---- foundation tiles ---- */
.found{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--sp-200)}
.found a{position:relative;aspect-ratio:3/4;border-radius:var(--r-100);overflow:hidden;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:22px;isolation:isolate}
.found a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s var(--ease)}
.found a::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.82;mix-blend-mode:multiply;transition:opacity .3s}
.found a::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 40%,rgba(18,48,22,.55))}
.found a:hover img{transform:scale(1.05)}
.found a:hover::before{opacity:.7}
.found .no{font-size:.875rem;font-weight:700;letter-spacing:.08em;opacity:.85;margin-bottom:auto}
.found svg{width:44px;height:44px;stroke:#fff;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin-bottom:14px}
.found h3{font-size:clamp(1.0625rem,1.5vw,1.375rem);letter-spacing:-.01em}
.found .f1::before{background:#3E7B36}.found .f2::before{background:#4E8C31}.found .f3::before{background:#F0BE43}.found .f4::before{background:#DDAF3E}.found .f5::before{background:#A9C93C}
@media(max-width:1024px){.found{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.found{grid-template-columns:repeat(2,1fr)}}

/* ---- watch & listen ---- */
.videos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-400) var(--sp-300)}
.video-tile{display:block}
.video-tile .thumb{position:relative;aspect-ratio:16/9;border-radius:var(--r-100);overflow:hidden;background:var(--n90);isolation:isolate}
.video-tile .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.video-tile .thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(47,107,42,.55),rgba(240,190,67,.35));mix-blend-mode:multiply}
.video-tile .thumb .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:52px;border-radius:12px;background:rgba(123,43,142,.9);display:flex;align-items:center;justify-content:center;z-index:2;transition:.25s}
.video-tile .thumb .play svg{width:26px;height:26px;fill:#fff;margin-left:3px}
.video-tile:hover .thumb img{transform:scale(1.04)}
.video-tile:hover .play{background:var(--accent)}
.video-tile h3{font-size:1.125rem;line-height:1.3;margin-top:var(--sp-200);max-width:32ch}
.video-tile .sub{color:var(--text-2);font-size:.875rem;margin-top:6px}
@media(max-width:900px){.videos{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.videos{grid-template-columns:1fr}}

/* ---- founder ---- */
.founder-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.founder-split .portrait{border-radius:var(--r-100);overflow:hidden;aspect-ratio:4/5;position:relative;background:var(--n90)}
.founder-split .portrait img{width:100%;height:100%;object-fit:cover;object-position:top}
.founder-split blockquote{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.375rem,2vw,1.75rem);line-height:1.35;color:var(--iog-green);margin:var(--sp-400) 0}
.founder-split .roles{display:grid;gap:12px;margin:var(--sp-400) 0}
.founder-split .roles li{display:flex;gap:14px;align-items:flex-start;font-size:1rem;color:var(--n80);padding:14px 0;border-top:1px solid var(--n10)}
.founder-split .roles svg{width:22px;height:22px;flex:none;stroke:var(--accent);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.founder-split .roles a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:4px}
@media(max-width:860px){.founder-split{grid-template-columns:1fr}.founder-split .portrait{max-width:420px}}

/* ---- stats ---- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-300)}
.stat{padding:var(--sp-400) 0 0;border-top:3px solid var(--iog-leaf)}
.stat .n{font-size:clamp(2.75rem,4.5vw,4rem);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--iog-green)}
.stat .l{margin-top:12px;color:var(--text-2);font-size:1rem;max-width:22ch}
.stat:nth-child(2){border-color:var(--accent)}.stat:nth-child(3){border-color:var(--iog-sun)}.stat:nth-child(4){border-color:#DDAF3E}
@media(max-width:860px){.stats{grid-template-columns:1fr 1fr}}
.timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:clamp(40px,5vw,72px);border-top:2px solid var(--n10)}
.tl{padding:var(--sp-300) var(--sp-300) 0 0;position:relative}
.tl::before{content:"";position:absolute;top:-8px;left:0;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--accent)}
.tl.done::before{background:var(--accent)}
.tl .yr{font-weight:700;color:var(--accent);font-size:.9375rem}
.tl h4{font-size:1.125rem;margin:8px 0 6px}
.tl p{color:var(--text-2);font-size:.9375rem;line-height:1.55}
@media(max-width:960px){.timeline{grid-template-columns:1fr;border-top:0;border-left:2px solid var(--n10)}.tl{padding:0 0 var(--sp-300) var(--sp-300)}.tl::before{top:4px;left:-8px}}

/* ---- insights list ---- */
.ins-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-400) var(--sp-300)}
.ins-card{display:flex;flex-direction:column}
.ins-card .thumb{aspect-ratio:16/9;border-radius:var(--r-100);overflow:hidden;background:var(--n5)}
.ins-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ins-card:hover .thumb img{transform:scale(1.04)}
.ins-card .src{font-size:.8125rem;color:var(--text-2);font-weight:500;margin-top:var(--sp-200)}
.ins-card h3{font-size:1.25rem;line-height:1.3;margin-top:8px}
.ins-card p{color:var(--text-2);margin-top:8px;font-size:.9375rem;line-height:1.55}
.ins-card.feature{grid-column:span 2}
.ins-card.feature .thumb{aspect-ratio:16/8}
.ins-card.feature h3{font-size:clamp(1.5rem,2.4vw,2rem)}
@media(max-width:900px){.ins-grid{grid-template-columns:1fr 1fr}.ins-card.feature{grid-column:span 2}}
@media(max-width:600px){.ins-grid{grid-template-columns:1fr}.ins-card.feature{grid-column:span 1}}

/* ---- subscribe band (WHR orange) ---- */
.subscribe{background:linear-gradient(90deg,#F0BE43,#DDAF3E 60%,#C99A2E);color:#fff;padding:clamp(28px,3vw,40px) 0}
.subscribe .wrap{display:flex;align-items:center;justify-content:center;gap:var(--sp-400);flex-wrap:wrap}
.subscribe h2{font-size:clamp(1.25rem,2.2vw,1.875rem);font-weight:700;letter-spacing:-.015em;text-align:center}
.subscribe form{display:flex;gap:10px}
.subscribe input{height:48px;border-radius:var(--r-100);border:0;padding:0 18px;min-width:260px;background:#fff;color:var(--n90)}
.subscribe .btn{background:#DDAF3E;color:#fff;text-transform:uppercase;letter-spacing:.06em;font-size:.9375rem;border-radius:var(--r-100)}
.subscribe .btn:hover{background:#C99A2E}
.subscribe .ok{width:100%;text-align:center;font-weight:600;display:none}

/* ---- footer (WEF) ---- */
.cta-band{background:#1C3F1D;color:#fff;text-align:center;padding:clamp(56px,7vw,88px) 0}
.cta-band h2{font-size:clamp(2rem,3.6vw,3rem);letter-spacing:-.025em}
.cta-band p{max-width:64ch;margin:var(--sp-300) auto var(--sp-400);font-size:1.0625rem;color:#E4EEDA;line-height:var(--lh-tall)}
footer.site-footer{background:#123016;color:#fff;padding:clamp(48px,6vw,72px) 0 var(--sp-500)}
.foot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-400);max-width:1400px;margin:0 auto}
.foot-grid h4{font-size:1rem;font-weight:700;color:#8FA681;margin-bottom:var(--sp-250)}
.foot-grid li{margin-bottom:16px}
.foot-grid a{font-size:1.0625rem;font-weight:500;transition:opacity .2s}
.foot-grid a:hover{opacity:.7}
.foot-grid .langs{margin-top:var(--sp-500)}
.foot-grid .langs p{font-size:1.0625rem}
.foot-social{display:flex;justify-content:center;gap:clamp(22px,3vw,44px);margin:clamp(40px,5vw,64px) 0 var(--sp-500)}
.foot-social a{width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:opacity .2s}
.foot-social a:hover{opacity:.7}
.foot-social svg{width:26px;height:26px;fill:#fff}
.foot-legal{text-align:center;font-size:1rem;display:grid;gap:16px}
.foot-legal a{font-weight:500}
.foot-legal .cr{color:#8FA681;font-size:.9375rem}
.foot-legal button{font-weight:500}
@media(max-width:960px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* ---- page hero (WEF sub pages) ---- */
.page-hero{position:relative;color:#fff;min-height:min(78vh,760px);display:flex;align-items:flex-end;padding:calc(var(--hdr) + 80px) 0 clamp(48px,6vw,80px);isolation:isolate;overflow:hidden}
.page-hero .bg{position:absolute;inset:0;z-index:-2}
.page-hero .bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.03);animation:kenburns 14s var(--ease) forwards}
@keyframes kenburns{to{transform:scale(1)}}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(18,48,22,.35) 0%,rgba(18,48,22,.25) 40%,rgba(18,48,22,.72) 100%)}
.page-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--sp-400);align-items:end}
.page-hero h1{font-size:clamp(2.75rem,6vw,5rem);letter-spacing:-.035em;line-height:1;margin-bottom:clamp(20px,3vw,40px);max-width:16ch}
.page-hero .lead-b{max-width:56ch;font-weight:600;font-size:clamp(1.0625rem,1.4vw,1.25rem)}
.page-hero .lead{color:rgba(255,255,255,.85);max-width:56ch;margin-top:var(--sp-250);font-size:clamp(1rem,1.3vw,1.125rem)}
.page-hero .btn{margin-top:clamp(24px,3vw,40px)}
.share{display:flex;flex-direction:column;gap:12px;font-weight:700;font-size:1rem}
.share .icons{display:flex;gap:18px}
.share .icons a{width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:opacity .2s}
.share .icons a:hover{opacity:.7}
.share svg{width:28px;height:28px;fill:#fff}
.page-hero.short{min-height:min(56vh,560px)}
@media(max-width:800px){.page-hero .wrap{grid-template-columns:1fr}.share{flex-direction:row;align-items:center}}

/* ---- prose / article ---- */
.prose{max-width:720px;font-size:1.125rem;line-height:1.75;color:var(--n80)}
.prose h2{font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.02em;margin:var(--sp-600) 0 var(--sp-200);color:var(--n90)}
.prose h3{font-size:1.375rem;margin:var(--sp-400) 0 var(--sp-150);color:var(--n90)}
.prose p{margin-bottom:var(--sp-250)}
.prose ul,.prose ol{margin:0 0 var(--sp-300) 22px}
.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose li{margin-bottom:10px}
.prose blockquote{border-left:4px solid var(--iog-leaf);padding:8px 0 8px 24px;margin:var(--sp-400) 0;font-family:var(--serif);font-style:italic;font-size:1.375rem;line-height:1.4;color:var(--iog-green)}
.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.prose .note{background:var(--n5);border-radius:var(--r-100);padding:var(--sp-300);font-size:.9375rem;color:var(--n70)}
.article-meta{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;color:var(--text-2);font-size:.9375rem;font-weight:500;padding:var(--sp-300) 0;border-top:1px solid var(--n10);border-bottom:1px solid var(--n10);margin-bottom:var(--sp-500)}
.article-meta .av{width:40px;height:40px;border-radius:50%;object-fit:cover}
.article-meta .by{display:flex;align-items:center;gap:12px;color:var(--n90);font-weight:600}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(40px,6vw,96px);align-items:start}
.aside-card{background:var(--n5);border-radius:var(--r-100);padding:var(--sp-300);position:sticky;top:calc(var(--hdr) + 24px)}
.aside-card h4{font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em;color:var(--n60);margin-bottom:var(--sp-200)}
.aside-card li{padding:12px 0;border-top:1px solid var(--n10);font-size:.9375rem;font-weight:500;line-height:1.35}
.aside-card li a:hover{color:var(--accent)}
@media(max-width:960px){.article-layout{grid-template-columns:1fr}.aside-card{position:static}}
.tag{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:var(--r-full);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--accent-subtle);color:var(--accent)}
.tag.green{background:var(--iog-tint);color:var(--iog-green)}
.tag.sun{background:#FBF1D2;color:#8A6A1E}
.tag.plum{background:#FBF1D2;color:#DDAF3E}

/* ---- cards (generic) ---- */
.card{background:#fff;border:1px solid var(--n10);border-radius:var(--r-100);padding:var(--sp-400);display:flex;flex-direction:column;transition:box-shadow .25s,transform .25s}
.card:hover{box-shadow:var(--el-2)}
.card .ic{width:52px;height:52px;border-radius:var(--r-100);background:var(--accent-subtle);display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-300)}
.card .ic svg{width:26px;height:26px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.card h3{font-size:1.375rem;letter-spacing:-.015em}
.card p{color:var(--text-2);margin:var(--sp-150) 0 var(--sp-300);line-height:var(--lh-tall)}
.card .link{margin-top:auto}
.card ul.checks{margin:0 0 var(--sp-300)}
.card ul.checks li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--n10);font-size:.9375rem;color:var(--n80)}
.card ul.checks svg{width:18px;height:18px;flex:none;stroke:var(--positive);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;margin-top:3px}
.card.dark{background:var(--n90);color:#fff;border-color:transparent}
.card.dark p{color:#C9D9BC}
.card.green{background:var(--iog-green);color:#fff;border-color:transparent}
.card.green p{color:#D6E6B8}
.card.green .ic{background:rgba(255,255,255,.15)}.card.green .ic svg{stroke:#fff}

/* team */
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-400) var(--sp-300)}
.member img{width:100%;aspect-ratio:1;object-fit:cover;object-position:top;border-radius:var(--r-100);background:var(--n5)}
.member h3{font-size:1.125rem;margin-top:var(--sp-200)}
.member .role{color:var(--text-2);font-size:.9375rem;margin-top:4px;line-height:1.45}
@media(max-width:900px){.team{grid-template-columns:repeat(2,1fr)}}
.logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-200)}
.logos div{background:#fff;border:1px solid var(--n10);border-radius:var(--r-100);display:flex;align-items:center;justify-content:center;padding:28px 20px;min-height:130px}
.logos img{max-height:72px;width:auto;max-width:100%}
@media(max-width:800px){.logos{grid-template-columns:repeat(2,1fr)}}
.faq details{border-top:1px solid var(--n10)}
.faq details:last-child{border-bottom:1px solid var(--n10)}
.faq summary{list-style:none;cursor:pointer;padding:22px 0;font-weight:600;font-size:1.125rem;display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.75rem;font-weight:300;color:var(--accent);transition:.25s;line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 0 24px;color:var(--n70);line-height:1.7;max-width:72ch}
.form{display:grid;gap:var(--sp-200)}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-200)}
.form input,.form select,.form textarea{width:100%;height:52px;border:1.5px solid var(--n20);border-radius:var(--r-100);padding:0 16px;background:#fff;transition:border-color .2s,box-shadow .2s}
.form textarea{height:150px;padding:14px 16px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.form label{font-size:.875rem;font-weight:600;color:var(--n70);display:block;margin-bottom:6px}
.form .ok{display:none;background:#EAF3DA;color:#3E7B36;padding:14px 18px;border-radius:var(--r-100);font-weight:600}
@media(max-width:640px){.form .row{grid-template-columns:1fr}}
.dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-300)}
@media(max-width:800px){.dl{grid-template-columns:1fr}}
.dl a{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid var(--n10);border-radius:var(--r-100);font-weight:600;transition:border-color .2s,box-shadow .2s}
.dl a:hover{border-color:var(--accent);box-shadow:var(--el-1)}
.dl svg{width:28px;height:28px;stroke:var(--accent);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.dl small{display:block;font-weight:500;color:var(--text-2);font-size:.8125rem}

/* ---- calculator ---- */
.calc{max-width:820px;margin:0 auto}
.calc-card{background:#fff;border:1px solid var(--n10);border-radius:var(--r-150);padding:clamp(28px,4vw,52px);box-shadow:var(--el-2)}
.notice{display:flex;gap:14px;background:var(--iog-tint);color:var(--iog-deep);border-radius:var(--r-100);padding:16px 18px;font-size:.9375rem;line-height:1.6;margin:var(--sp-300) 0}
.notice svg{width:22px;height:22px;flex:none;stroke:var(--iog-green);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.qprog{display:flex;align-items:center;gap:14px;margin-bottom:var(--sp-400)}
.qprog .ct{font-weight:700;font-size:.875rem;color:var(--accent);white-space:nowrap}
.qprog .bar{flex:1;height:6px;border-radius:3px;background:var(--n5);overflow:hidden}
.qprog .bar i{display:block;height:100%;background:var(--accent);width:0;transition:width .4s}
.qfound{display:inline-flex;height:28px;align-items:center;padding:0 12px;border-radius:var(--r-full);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-bottom:var(--sp-200)}
.qtext{font-weight:700;font-size:clamp(1.375rem,2.4vw,1.75rem);letter-spacing:-.02em;line-height:1.25;margin-bottom:var(--sp-400);min-height:2.4em}
.opt{display:flex;gap:14px;align-items:center;width:100%;text-align:left;font-size:1rem;font-weight:500;border:1.5px solid var(--n20);border-radius:var(--r-100);padding:16px 18px;margin-bottom:12px;transition:.18s;background:#fff}
.opt::before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid var(--n30);flex:none;transition:.18s}
.opt:hover{border-color:var(--accent);background:var(--accent-subtle)}
.opt:hover::before{border-color:var(--accent);background:var(--accent)}
.cfoot{display:flex;justify-content:space-between;gap:12px;margin-top:var(--sp-200);font-size:.8125rem;color:var(--text-2)}
.linkb{color:var(--accent);font-weight:600;font-size:.875rem}
.reswrap{text-align:center}
.ring{width:min(280px,70vw);margin:8px auto;position:relative}
.ring .abs{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .big{font-size:clamp(3.5rem,7vw,5rem);font-weight:700;letter-spacing:-.05em;line-height:1}
.ring .of{font-size:.75rem;font-weight:600;letter-spacing:.2em;color:var(--text-2);text-transform:uppercase;margin-top:6px}
.fbars{max-width:460px;margin:var(--sp-400) auto 0;text-align:left}
.fbar{margin-bottom:14px}
.fbar .t{display:flex;justify-content:space-between;font-size:.9375rem;font-weight:500;margin-bottom:6px}
.fbar .b{height:8px;border-radius:4px;background:var(--n5);overflow:hidden}
.fbar .b i{display:block;height:100%;width:0;border-radius:4px;transition:width 1.1s .3s}
.insight{max-width:58ch;margin:var(--sp-300) auto 0;font-size:1.0625rem;line-height:1.7;color:var(--n80)}
.growb{background:#FBF1D2;border-left:4px solid var(--iog-sun);border-radius:0 var(--r-100) var(--r-100) 0;padding:22px 24px;margin-top:var(--sp-400);text-align:left}
.growb h3{font-size:1.0625rem;margin-bottom:8px}
.growb p{color:var(--n70);font-size:.9375rem;line-height:1.6}
.shrow{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:var(--sp-400)}
.name-inp{width:100%;max-width:400px;height:52px;padding:0 18px;border:1.5px solid var(--n20);border-radius:var(--r-100);margin-top:8px;background:#fff}
.name-inp:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}

/* ---- share modal (Peerlist-style) ---- */
.share-modal{position:fixed;inset:0;z-index:300;background:rgba(18,48,22,.72);display:none;align-items:center;justify-content:center;padding:20px}
.share-modal.on{display:flex}
.share-box{width:min(680px,100%);max-height:94vh;overflow:auto;border-radius:var(--r-150);background:#1C3F1D;color:#fff;position:relative;box-shadow:0 60px 120px -30px rgba(18,48,22,.8)}
.share-box .x{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:12px;background:rgba(18,48,22,.6);display:flex;align-items:center;justify-content:center;z-index:5}
.share-box .x svg{width:20px;height:20px;stroke:#fff;stroke-width:2.2;fill:none;stroke-linecap:round}
.share-space{position:relative;aspect-ratio:1234/548;background:radial-gradient(120% 80% at 50% 120%,#8CBE44 0%,#2E5F2A 40%,#123016 75%);overflow:hidden}
.share-space canvas{position:absolute;inset:0;width:100%;height:100%}
.share-space .badge{position:absolute;left:50%;top:14%;transform:translateX(-50%);width:clamp(140px,22%,190px)}
.share-space .cap{position:absolute;left:0;right:0;bottom:12%;text-align:center;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(2rem,6vw,3.5rem);letter-spacing:-.01em;text-shadow:0 4px 30px rgba(18,48,22,.5)}
.share-body{padding:clamp(24px,4vw,40px) clamp(20px,4vw,40px) clamp(24px,4vw,36px);text-align:center}
.share-body h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.75rem,3.6vw,2.75rem);line-height:1.15;letter-spacing:-.01em}
.share-body h2 em{font-style:italic}
.share-body p{color:#C9D9BC;font-size:1.0625rem;line-height:1.55;margin:var(--sp-250) auto var(--sp-400);max-width:60ch}
.share-body .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.share-body .hint{margin-top:var(--sp-250);color:#8FA681;font-size:.875rem}
.share-previews{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:var(--sp-300)}
.share-previews img{width:clamp(110px,20%,150px);border-radius:8px;border:1px solid rgba(255,255,255,.15);cursor:pointer;transition:transform .2s}
.share-previews img:hover{transform:translateY(-3px)}

/* ---- translation fab ---- */
.lang-fab{position:fixed;left:20px;bottom:20px;z-index:150;display:flex;align-items:center;background:#fff;color:var(--n90);border-radius:var(--r-full);box-shadow:0 10px 30px rgba(18,48,22,.18),0 0 0 1px rgba(18,48,22,.05);height:60px;padding:0 6px 0 4px;transition:width .3s var(--ease);overflow:hidden;max-width:calc(100vw - 40px)}
.lang-fab .globe{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.lang-fab .globe svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8}
.lang-fab .opts{display:none;align-items:center;gap:6px;padding-right:4px}
.lang-fab.open .opts{display:flex}
.lang-fab .opts button{height:40px;padding:0 12px;border-radius:var(--r-full);font-weight:700;font-size:1.0625rem;color:var(--n40);letter-spacing:.02em;transition:.2s}
.lang-fab .opts button[aria-pressed=true]{color:var(--n90)}
.lang-fab .opts button:hover{background:var(--n5);color:var(--n90)}
.lang-fab .opts .xx{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;color:var(--n90);margin-left:4px}
.lang-fab .opts .xx svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round}
.lang-toast{position:fixed;left:20px;bottom:92px;z-index:150;background:var(--n90);color:#fff;padding:12px 16px;border-radius:var(--r-100);font-size:.875rem;font-weight:500;box-shadow:var(--el-2);display:none;max-width:320px}
.lang-toast.on{display:block;animation:rise .4s var(--ease)}
@media(max-width:640px){.lang-fab{height:52px}.lang-fab .globe{width:44px;height:44px}.lang-fab .opts button{padding:0 8px;font-size:.9375rem}}

/* ---- video modal ---- */
.vmodal{position:fixed;inset:0;z-index:250;background:rgba(18,48,22,.9);display:none;align-items:center;justify-content:center;padding:20px}
.vmodal.on{display:flex}
.vmodal .frame{width:min(1200px,100%);aspect-ratio:16/9;border-radius:var(--r-100);overflow:hidden;background:#123016}
.vmodal iframe{width:100%;height:100%;border:0}
.vmodal .x{position:absolute;top:20px;right:20px;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center}
.vmodal .x svg{width:22px;height:22px;stroke:#fff;stroke-width:2.2;fill:none;stroke-linecap:round}

/* ---- cookie ---- */
.cookie{position:fixed;right:20px;bottom:20px;z-index:200;max-width:420px;background:#fff;border-radius:var(--r-150);padding:24px;box-shadow:0 30px 70px -20px rgba(18,48,22,.35),0 0 0 1px rgba(18,48,22,.05);display:none}
.cookie.on{display:block;animation:rise .5s var(--ease)}
.cookie h4{font-size:1.0625rem;margin-bottom:8px}
.cookie p{font-size:.875rem;color:var(--n70);line-height:1.55}
.cookie .row{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.cookie .btn{height:40px;padding:0 18px;font-size:.875rem}
@media(max-width:640px){.cookie{left:20px;right:20px;bottom:88px;max-width:none}}

/* ---- reveal (subtle, section-level) ---- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}html{scroll-behavior:auto}.rv{opacity:1;transform:none}}


/* ---- report dashboard (WHR-style) ---- */
.rep-top{background:linear-gradient(90deg,#1C3F1D 0%,#4E8C31 45%,#3E7B36 100%);color:#fff;padding:22px 0}
.rep-top .wrap{display:flex;align-items:center;gap:var(--sp-400);flex-wrap:wrap}
.rep-top .lg{display:flex;align-items:center;gap:14px;font-weight:800;font-size:.8rem;letter-spacing:.12em;line-height:1.05;text-transform:uppercase}
.rep-top .lg img{width:56px}
.rep-top h1{font-size:clamp(1.125rem,2vw,1.5rem);font-weight:700;letter-spacing:-.01em}
.rep-top h1 a{text-decoration:underline;text-underline-offset:4px}
.rep-top .btn{background:rgba(255,255,255,.22);color:#fff;height:44px}
.rep-top .btn:hover{background:rgba(255,255,255,.35)}
.rep-tabs{display:flex;justify-content:flex-end;gap:0;padding:var(--sp-200) 0 0;flex-wrap:wrap}
.rep-tabs button{display:inline-flex;align-items:center;gap:12px;height:64px;padding:0 clamp(18px,2.4vw,36px);font-weight:700;font-size:1.0625rem;text-transform:uppercase;letter-spacing:.02em;color:var(--n90);border-bottom:3px solid var(--iog-green);margin-left:6px}
.rep-tabs button svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rep-tabs button[aria-selected=true]{background:var(--iog-green);color:#fff}
.rep-scope{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:var(--sp-300) 0 0}
.rep-scope span{font-weight:600;color:var(--n60);margin-right:8px;font-size:.9375rem}
.rep-scope button{height:38px;padding:0 16px;border-radius:var(--r-full);border:1.5px solid var(--n20);font-weight:600;font-size:.9375rem;transition:.2s}
.rep-scope button[aria-pressed=true]{background:var(--n90);color:#fff;border-color:var(--n90)}
.rep-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:clamp(24px,3vw,48px);padding:var(--sp-400) 0 var(--sp-800)}
.rep-side h3{font-size:1.0625rem;font-weight:500;margin-bottom:var(--sp-200)}
.vgroup{border-radius:6px;overflow:hidden;margin-bottom:12px;box-shadow:var(--el-1)}
.vgroup .gh{display:flex;align-items:center;gap:14px;width:100%;padding:0 20px;height:62px;color:#fff;font-weight:600;font-size:1.0625rem;text-align:left}
.vgroup .gh .i{width:26px;height:26px;border-radius:50%;border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex:none}
.vgroup .gh .car{margin-left:auto;width:20px;height:20px;stroke:#fff;fill:none;stroke-width:2.2;transition:.25s}
.vgroup.open .gh .car{transform:rotate(180deg)}
.vgroup .gl{display:none;background:#fff}
.vgroup.open .gl{display:block}
.vgroup .gl button{display:flex;align-items:center;gap:14px;width:100%;padding:0 20px;height:54px;text-align:left;font-size:1.0625rem;color:var(--n90);transition:.2s}
.vgroup .gl button .i{width:24px;height:24px;border-radius:50%;border:2px solid var(--n90);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex:none}
.vgroup .gl button[aria-pressed=true]{background:#EAF3DA}
.vgroup .gl button:hover{background:var(--n5)}
.vg-gi .gh{background:#DDAF3E}.vg-ff .gh{background:#8CBE44}.vg-em .gh{background:#F0BE43}.vg-be .gh{background:#4E8C31}
.rep-main{min-width:0}
.rep-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--sp-400);align-items:end;margin-bottom:var(--sp-300)}
.rep-filters label{display:block;font-size:1rem;color:var(--n70);margin-bottom:12px}
.rep-filters select,.rep-filters input{width:100%;height:46px;border:0;border-bottom:2px solid var(--n90);font-weight:700;font-size:1.25rem;background:transparent;padding:0 4px}
.rep-filters .dl{display:flex;align-items:center;gap:12px;font-weight:500;color:var(--n90);height:46px;grid-template-columns:none}
.rep-filters .dl svg{width:24px;height:24px}
.rep-view{display:none}.rep-view.on{display:block}
.map-wrap{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--sp-300);align-items:start}
.legend label{display:flex;align-items:center;gap:12px;font-size:1.0625rem;padding:6px 0;cursor:pointer}
.legend input{width:20px;height:20px;accent-color:#3E7B36}
.legend .sw{width:20px;height:20px;border-radius:3px;flex:none}
.map-box{position:relative;background:#fff;min-height:420px}
.map-box svg{width:100%;height:auto;display:block}
.map-box path{stroke:#3F5E36;stroke-width:.6;transition:opacity .2s}
.map-box path:hover{stroke:#123016;stroke-width:1.2;cursor:pointer}
.map-zoom{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px}
.map-zoom button{width:44px;height:44px;border:1.5px solid #3E7B36;background:#fff;color:#3E7B36;font-size:1.25rem;font-weight:600;border-radius:4px}
.tip{position:fixed;z-index:400;background:#1C3F1D;color:#fff;padding:10px 14px;border-radius:6px;font-size:.875rem;pointer-events:none;display:none;max-width:260px;box-shadow:var(--el-2)}
.tip b{display:block;font-size:1rem;margin-bottom:2px}
.chart-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--sp-400)}
.chart-box svg{width:100%;height:auto}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.chip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 8px 0 14px;border-radius:var(--r-full);background:var(--n5);font-weight:500;font-size:.9375rem}
.chip button{width:22px;height:22px;border-radius:50%;background:var(--n30);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem}
.chart-legend{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin-top:var(--sp-300)}
.chart-legend div{display:flex;align-items:center;gap:10px;font-size:.9375rem}
.chart-legend i{width:28px;height:5px;border-radius:3px;flex:none}
.rank-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9375rem}
.rank-table th{color:#fff;font-weight:700;padding:14px 8px;text-align:center;font-size:.8125rem;line-height:1.25;vertical-align:middle;border-right:1px solid rgba(255,255,255,.3)}
.rank-table th.c-gi{background:#DDAF3E}.rank-table th.c-ff{background:#8CBE44}.rank-table th.c-em{background:#F0BE43}.rank-table th.c-be{background:#4E8C31}
.rank-table td{padding:16px 8px;text-align:center;border-bottom:1px solid var(--n10)}
.rank-table tbody tr:nth-child(odd){background:#F4F9EC}
.rank-table td.nm{text-align:left;font-weight:700;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.rank-table td.nm span.fl{font-size:1.5rem;margin-right:10px;vertical-align:middle}
.rank-table td.sc{font-weight:700}
.rank-table td.neg{color:#B07A1A}
.rank-table td.pos{color:#3E7B36}
.table-scroll{overflow:auto;max-height:70vh;border:1px solid var(--n10)}
.profile{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-400)}
.profile .big{font-size:clamp(4rem,8vw,7rem);font-weight:700;letter-spacing:-.05em;line-height:1;color:#DDAF3E}
.profile .kv{display:grid;grid-template-columns:1fr auto;gap:10px 20px;font-size:1rem;margin-top:var(--sp-300)}
.profile .kv dt{color:var(--n60)}.profile .kv dd{font-weight:700;text-align:right}
.disclaimer{background:#FBF1D2;color:#6B4F12;padding:12px var(--gutter);font-size:.875rem;font-weight:500;text-align:center}
@media(max-width:1100px){.rep-layout{grid-template-columns:1fr}.map-wrap{grid-template-columns:1fr}.chart-wrap{grid-template-columns:1fr}.profile{grid-template-columns:1fr}}
.rep-foot{text-align:right;font-size:.9375rem;color:var(--n70);padding:var(--sp-200) 0 var(--sp-600)}

/* ---- min-content safety + mobile polish ---- */
.impact-row>*,.grid>*,.band-grid>*,.founder-split>*,.article-layout>*,.chart-wrap>*,.map-wrap>*,.rep-layout>*,.hero-grid>*,.scroller,.scroller .rail,.rep-main{min-width:0}
@media(max-width:640px){
  .tabs{max-width:100%}.tabs button{height:44px;padding:0 14px;font-size:.9375rem}
  .impact-head h2{font-size:1.5rem}
  .scroller .rail>*{flex-basis:78vw}
  .analysis .scroller .rail>*{flex-basis:82vw}
  .page-hero h1{font-size:2.5rem}
  .found{grid-template-columns:repeat(2,1fr)}.found a:last-child{grid-column:span 2;aspect-ratio:16/8}
  .stats{grid-template-columns:1fr 1fr}.stat .n{font-size:2.5rem}
  .subscribe form{width:100%;flex-wrap:wrap}.subscribe input{flex:1;min-width:0}
  .rep-tabs{justify-content:flex-start}.rep-tabs button{height:52px;padding:0 14px;font-size:.875rem}.rep-tabs button svg{width:20px;height:20px}
  .hero-home{padding-top:calc(var(--hdr) + 44px + 40px)}
  .share-space .cap{font-size:2rem}
}

/* ---- v4: article presentation + fixes ---- */
.prose a.btn,.prose a.btn:hover{color:#fff;text-decoration:none}
.prose a.btn-outline,.prose a.btn-outline:hover{color:var(--accent)}
.prose>p:first-of-type::first-letter{float:left;font-family:var(--serif);font-size:4.6em;line-height:.82;padding:6px 12px 0 0;color:var(--iog-green)}
.prose h2{padding-top:var(--sp-200);border-top:1px solid var(--n10)}
.prose figure.pull{margin:var(--sp-500) 0;padding:var(--sp-400);background:var(--iog-tint);border-radius:var(--r-100)}
.prose figure.pull blockquote{border:0;padding:0;margin:0;font-size:1.5rem}
.prose figure.pull figcaption{margin-top:12px;font-size:.875rem;color:var(--n60);font-weight:600}
.key-ideas{background:var(--n5);border-left:4px solid var(--accent);border-radius:0 var(--r-100) var(--r-100) 0;padding:var(--sp-300) var(--sp-400);margin:0 0 var(--sp-500)}
.key-ideas h4{font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:var(--n60);margin-bottom:12px}
.key-ideas li{position:relative;padding-left:22px;margin-bottom:10px;font-size:1.0625rem;line-height:1.5;color:var(--n80)}
.key-ideas li::before{content:"";position:absolute;left:0;top:10px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.source-box{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--n10);border-radius:var(--r-100);padding:var(--sp-300);margin:var(--sp-500) 0}
.source-box .lbl{flex:1;min-width:220px;font-size:.9375rem;color:var(--n70)}
.source-box .lbl b{display:block;color:var(--n90);font-size:1.0625rem;margin-bottom:4px}
.author-card{display:grid;grid-template-columns:96px 1fr;gap:var(--sp-300);align-items:center;background:var(--n90);color:#fff;border-radius:var(--r-100);padding:var(--sp-400);margin-top:var(--sp-600)}
.author-card img{width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:top}
.author-card h4{font-size:1.25rem}
.author-card p{color:#C9D9BC;font-size:.9375rem;line-height:1.55;margin:6px 0 12px}
.author-card .links{display:flex;gap:16px;flex-wrap:wrap}
.author-card .links a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.share-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:var(--sp-500);padding-top:var(--sp-300);border-top:1px solid var(--n10)}
.share-row span{font-weight:700}
.share-row a,.share-row button{width:44px;height:44px;border-radius:50%;background:var(--n5);display:flex;align-items:center;justify-content:center;transition:.2s}
.share-row a:hover,.share-row button:hover{background:var(--accent);color:#fff}
.share-row svg{width:20px;height:20px;fill:currentColor}
.share-row button.txt{width:auto;padding:0 18px;border-radius:var(--r-full);font-weight:600;font-size:.9375rem}
.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-300);margin-top:var(--sp-600)}
.prevnext a{border:1px solid var(--n10);border-radius:var(--r-100);padding:var(--sp-300);display:flex;flex-direction:column;gap:6px;transition:.2s}
.prevnext a:hover{border-color:var(--accent);box-shadow:var(--el-1)}
.prevnext a small{font-size:.8125rem;color:var(--n60);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.prevnext a b{font-size:1.0625rem;line-height:1.3}
.prevnext a.next{text-align:right;align-items:flex-end}
.read-prog{position:fixed;top:0;left:0;height:3px;background:var(--accent);z-index:130;width:0;transition:width .1s linear}
.toc li{padding:8px 0;border-top:1px solid var(--n10);font-size:.9375rem}
.toc a:hover{color:var(--accent)}
.timeline.cols6{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:960px){.timeline.cols6{grid-template-columns:1fr}}
@media(max-width:640px){.prevnext{grid-template-columns:1fr}.author-card{grid-template-columns:1fr}.prose{font-size:1.0625rem}}

/* ---- v4.1: cta band photo, cookie v2, legal pages, footer credit, responsive polish, safe areas ---- */
.cta-band{position:relative;isolation:isolate;overflow:hidden}
.cta-band .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(1.05)}
.cta-band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,rgba(15,58,32,.92) 0%,rgba(47,107,42,.82) 45%,rgba(62,123,54,.72) 100%)}
.cta-band p{color:#EAF3DA}
.foot-legal .credit{color:#a9c93c;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.foot-legal .credit:hover{color:#fff}
.cookie{max-width:460px;padding:22px 24px 24px;bottom:max(20px,env(safe-area-inset-bottom))}
.cookie .ck-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.cookie .ck-head .mark{width:34px;height:34px}
.cookie .ck-links{display:flex;gap:16px;margin-top:10px;font-size:.8125rem}
.cookie .ck-links a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.cookie .row{align-items:center}
.cookie .linkb{font-size:.875rem}
.cmodal{position:fixed;inset:0;z-index:260;background:rgba(18,48,22,.55);display:none;align-items:center;justify-content:center;padding:20px}
.cmodal.on{display:flex}
.cbox{background:#fff;border-radius:var(--r-150);max-width:560px;width:100%;padding:28px;max-height:88vh;overflow:auto;box-shadow:var(--el-2)}
.cbox-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.crow{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--n10)}
.crow b{font-size:1rem}.crow p{font-size:.8125rem;color:var(--n60);margin-top:3px;line-height:1.5}
.tog{position:relative;width:46px;height:26px;border-radius:999px;background:var(--n20);transition:.2s;flex:none;cursor:pointer}
.tog.on{background:var(--positive)}
.tog::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(18,48,22,.25)}
.tog.on::after{left:23px}
.tog.lock{opacity:.55;cursor:not-allowed}
.lang-fab{bottom:max(20px,env(safe-area-inset-bottom));left:max(20px,env(safe-area-inset-left))}
.legal .prose{max-width:800px}
.legal .prose h2{font-size:1.5rem}
.legal table{width:100%;border-collapse:collapse;font-size:.9375rem;margin:var(--sp-300) 0}
.legal th,.legal td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--n10);vertical-align:top}
.legal th{background:var(--n5);font-weight:700}
/* large screens */
@media(min-width:1920px){:root{--wrap:1600px}html{font-size:17px}}
@media(min-width:2400px){:root{--wrap:1800px}html{font-size:18px}}
/* tablets */
@media(max-width:1024px){.page-hero h1{font-size:clamp(2.5rem,7vw,4rem)}.hero-grid h1{font-size:clamp(2rem,5.2vw,3.5rem)}.videos{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}
/* small phones */
@media(max-width:360px){.hdr-right .btn-accent{width:40px;padding:0}.hdr-right .btn-accent span{display:none}.brand .mark{width:34px;height:34px}.h1{font-size:2rem}.hero-grid h1{font-size:1.85rem}.page-hero h1{font-size:2.1rem}.btn{padding:0 18px;font-size:.9375rem}.tabs button{padding:0 10px;font-size:.875rem}.found{grid-template-columns:1fr 1fr}.impact-head{gap:12px}}
/* landscape phones */
@media(max-height:480px) and (orientation:landscape){.page-hero{min-height:auto;padding-top:calc(var(--hdr) + 60px)}.hero-home{padding-top:calc(var(--hdr) + 56px)}.cookie{max-height:70vh;overflow:auto}}
/* hover-capable only */
@media(hover:none){.photo-card:hover img,.ins-card:hover .thumb img,.video-tile:hover .thumb img{transform:none}}
/* print */
@media print{.site-header,.ticker,.lang-fab,.cookie,.cta-band,.site-footer,.subscribe,.share-row,.prevnext,.read-prog{display:none!important}.page-hero{min-height:auto;color:#123016}.page-hero::before,.page-hero .bg{display:none}body{color:#123016}.prose{max-width:none}}

.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--sp-300) 0}.tbl-wrap table{min-width:640px;margin:0}

/* =========================================================
   v5 — logo palette (greens + golds + white, no black), effects & scroll
   Logo: #3E7B36 #4E8C31 #8CBE44 #A9C93C · #F0BE43 #DDAF3E
   ========================================================= */
:root{
  --g950:#123016;--g900:#1C3F1D;--g800:#2E5F2A;--g700:#3E7B36;--g600:#4E8C31;--g500:#6DA83A;--g400:#8CBE44;--g300:#A9C93C;--g200:#D6E6B8;--g100:#EAF3DA;--g50:#F4F9EC;
  --gold:#F0BE43;--gold-deep:#DDAF3E;--gold-dark:#C99A2E;--gold-100:#FBF1D2;--gold-50:#FDF8E9;
  --accent:var(--g700);--accent-hover:var(--g800);--accent-pressed:var(--g900);--accent-subtle:var(--g100);--accent-10:var(--g200);--accent-40:var(--g500);
  --blue-darker:var(--g800);--blue-darkest:var(--g900);
  --n5:var(--g50);--n10:#E4EEDA;--n20:#C9D9BC;--n30:#AFC2A0;--n40:#8FA681;--n50:#6F8A63;--n60:#557347;--n70:#3F5E36;--n80:#2E4C29;--n90:var(--g900);--n95:#17351A;--n100:var(--g950);
  --text:var(--g900);--text-2:#557347;--text-3:#2E4C29;
  --border:rgba(62,123,54,.14);--border-hover:rgba(62,123,54,.28);--relief:rgba(62,123,54,.06);--raised:rgba(62,123,54,.12);
  --positive:var(--g600);--warning:var(--gold);--negative:#B07A1A;
  --iog-deep:var(--g900);--iog-green:var(--g700);--iog-mid:var(--g600);--iog-leaf:var(--g300);--iog-sun:var(--gold);--iog-tint:var(--g100);--iog-mid2:var(--g400);
  --grad-hero:linear-gradient(160deg,#1C3F1D 0%,#3E7B36 46%,#4E8C31 100%);
  --grad-blue:linear-gradient(160deg,#2E5F2A 0%,#3E7B36 55%,#8CBE44 100%);
  --grad-gold:linear-gradient(135deg,#F0BE43 0%,#DDAF3E 100%);
  --el-1:0 4px 12px rgba(28,63,29,.10),0 1px 2px rgba(28,63,29,.05);--el-2:0 10px 28px rgba(28,63,29,.12),0 2px 4px rgba(28,63,29,.05);--el-3:0 24px 60px -20px rgba(28,63,29,.35);
  --ease-out:cubic-bezier(.16,1,.3,1);
}
html{scroll-padding-top:calc(var(--hdr) + 20px);overscroll-behavior-y:none}
body{background:#fff;color:var(--text)}
::selection{background:var(--gold);color:var(--g900)}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}

/* type accents */
.h1,.h2,.hero-grid h1,.page-hero h1,.analysis h2,.cta-band h2{font-feature-settings:"ss01","cv11"}
.overline{color:var(--g600)}
.lead{color:var(--text-3)}

/* buttons */
.btn{transition:background .25s var(--ease),color .2s,border-color .2s,transform .25s var(--ease-out),box-shadow .3s var(--ease-out)}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn-accent{background:var(--g700);color:#fff;box-shadow:0 6px 18px -8px rgba(62,123,54,.7)}
.btn-accent:hover{background:var(--g800);box-shadow:0 12px 26px -10px rgba(62,123,54,.75)}
.btn-gold,.cta-band .btn-accent,.hero-grid .btn-light{background:var(--grad-gold);color:var(--g900);border-color:transparent;box-shadow:0 8px 24px -10px rgba(221,175,62,.9)}
.btn-gold:hover,.cta-band .btn-accent:hover,.hero-grid .btn-light:hover{background:linear-gradient(135deg,#F6CB5E,#F0BE43);color:var(--g900);box-shadow:0 14px 32px -12px rgba(221,175,62,1)}
.btn-dark{background:var(--g900)}.btn-dark:hover{background:var(--g950)}
.btn-outline{border-color:var(--g700);color:var(--g700)}.btn-outline:hover{background:var(--g100)}
.btn-green{background:var(--g700)}.btn-green:hover{background:var(--g900)}
.link{color:var(--g700)}.link:hover{color:var(--g900)}
.link-dark{color:var(--g900)}

/* header: white glass with green hairline */
.site-header{background:rgba(255,255,255,.86);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);color:var(--g900)}
.site-header.scrolled{box-shadow:0 1px 0 rgba(62,123,54,.14),0 8px 24px -16px rgba(28,63,29,.25)}
.site-header.on-dark:not(.scrolled){background:linear-gradient(180deg,rgba(18,48,22,.45),rgba(18,48,22,0));backdrop-filter:none;-webkit-backdrop-filter:none}
.site-header .hdr-right .btn-accent{background:var(--grad-gold);color:var(--g900);box-shadow:none}
.site-header .hdr-right .btn-accent:hover{background:linear-gradient(135deg,#F6CB5E,#F0BE43)}
.icon-btn:hover{background:var(--g100)}
.site-header.on-dark:not(.scrolled) .icon-btn:hover{background:rgba(255,255,255,.16)}
.menu{background:#fff}
.menu-search{border-bottom-color:var(--g700)}
.menu-primary a:hover{color:var(--g700)}
.menu-grid a:hover{color:var(--g600)}

/* ticker: deep green with gold tag */
.ticker{background:var(--g900)}
.ticker .ttag{background:var(--gold);color:var(--g900)}
.ticker .ttag i{background:var(--g900)}
.ticker .item{color:var(--g200)}
.ticker .item:hover{background:rgba(255,255,255,.07)}
body.hero-page .ticker{background:rgba(18,48,22,.55)}
body.hero-page .ticker .ttag{background:var(--gold)}

/* hero: living light — the one memorable motion on the page */
.hero-home{background:var(--grad-hero)}
.hero-home::before{content:"";position:absolute;inset:-20%;z-index:-1;clip-path:none;pointer-events:none;
  background:
    radial-gradient(38% 42% at 18% 22%,rgba(169,201,60,.55),transparent 70%),
    radial-gradient(30% 34% at 82% 18%,rgba(240,190,67,.42),transparent 70%),
    radial-gradient(42% 40% at 70% 80%,rgba(140,190,68,.45),transparent 70%);
  filter:blur(40px);animation:drift 22s ease-in-out infinite alternate;will-change:transform}
@keyframes drift{0%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(3%,-4%,0) rotate(4deg)}100%{transform:translate3d(-3%,3%,0) rotate(-3deg)}}
.hero-home::after{background:linear-gradient(180deg,rgba(255,255,255,0),#EAF3DA 68%,#fff)}
.hero-grid h1{text-shadow:0 2px 24px rgba(18,48,22,.25)}
.video-card{border-radius:14px;box-shadow:0 40px 90px -30px rgba(18,48,22,.7),0 0 0 1px rgba(255,255,255,.12)}
.watch-pill .pl{border-color:rgba(240,190,67,.85);background:rgba(18,48,22,.3)}
.watch-pill:hover .pl{background:var(--gold);color:var(--g900);border-color:var(--gold)}
.tabs{background:rgba(255,255,255,.18)}
.tabs button[aria-selected=true]{color:var(--g900)}
.tabs.dark{background:var(--g100)}
.tabs.dark button[aria-selected=true]{background:var(--g900);color:#fff}
.info-card .btn{background:var(--g100);color:var(--g900)}.info-card .btn:hover{background:var(--g200)}
.info-card .overline{color:var(--gold-dark)}

/* photo cards: green ink overlay + gold hairline on hover */
.photo-card{background:var(--g900)}
.photo-card::after{background:linear-gradient(180deg,rgba(18,48,22,0) 38%,rgba(18,48,22,.88))}
.photo-card::before{content:"";position:absolute;left:24px;right:24px;bottom:16px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out);z-index:3}
.photo-card:hover::before{transform:scaleX(1)}
.photo-card.story::before{bottom:48px}
.photo-card:hover img{transform:scale(1.05)}

/* analysis (dark green photo band) */
.analysis::before{background:linear-gradient(180deg,rgba(18,48,22,.6),rgba(18,48,22,.78))}

/* coloured bands: gold→lime→green, and deep green→leaf */
.band-green{background:linear-gradient(120deg,#F0BE43 0%,#A9C93C 46%,#4E8C31 100%)}
.band-green .band-card h2,.band-green .band-card .links a{color:var(--g700)}
.band-green .band-img.tint::after{background:#3E7B36}
.band-blue{background:linear-gradient(120deg,#1C3F1D 0%,#3E7B36 52%,#8CBE44 100%)}
.band-blue .band-card h2,.band-blue .band-card .links a{color:var(--g700)}
.band-blue .band-img.tint::after{background:#3E7B36}
.band-card{box-shadow:var(--el-3)}

/* foundations: five logo shades */
.found .f1::before{background:#3E7B36}.found .f2::before{background:#8CBE44}.found .f3::before{background:#F0BE43}.found .f4::before{background:#4E8C31}.found .f5::before{background:#A9C93C}
.found .f3,.found .f5{color:var(--g900)}
.found .f3 svg,.found .f5 svg{stroke:var(--g900)}
.found .f3::after,.found .f5::after{background:linear-gradient(180deg,transparent 40%,rgba(255,255,255,.35))}
.found a::after{background:linear-gradient(180deg,transparent 40%,rgba(18,48,22,.5))}
.found a{transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.found a:hover{transform:translateY(-6px);box-shadow:var(--el-3)}

/* videos */
.video-tile .thumb{background:var(--g900);border-radius:12px}
.video-tile .thumb::after{background:linear-gradient(160deg,rgba(62,123,54,.55),rgba(240,190,67,.25))}
.video-tile .thumb .play{background:rgba(240,190,67,.95);border-radius:14px;transition:transform .35s var(--ease-out),background .25s}
.video-tile .thumb .play svg{fill:var(--g900)}
.video-tile:hover .play{background:#fff;transform:translate(-50%,-50%) scale(1.08)}

/* founder, stats, timeline */
.founder-split blockquote{color:var(--g700)}
.founder-split blockquote::before{content:"“";display:block;font-size:3.5em;line-height:.5;color:var(--gold);margin-bottom:.15em;font-style:normal}
.founder-split .roles svg{stroke:var(--g600)}
.founder-split .roles a{color:var(--g700)}
.stat{border-top-color:var(--g300)}
.stat .n{background:linear-gradient(120deg,var(--g700),var(--g500));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat:nth-child(2){border-color:var(--g600)}.stat:nth-child(3){border-color:var(--gold)}.stat:nth-child(4){border-color:var(--gold-deep)}
.tl::before{border-color:var(--g600)}.tl.done::before{background:var(--g600)}
.tl .yr{color:var(--g600)}
.timeline{border-top-color:var(--g200)}

/* insights + prose */
.ins-card .thumb{border-radius:12px}
.ins-card h3{transition:color .2s}.ins-card:hover h3{color:var(--g700)}
.prose a{color:var(--g700);text-decoration-color:var(--g300)}
.prose blockquote{border-left-color:var(--gold);color:var(--g700)}
.prose>p:first-of-type::first-letter{color:var(--g700)}
.prose h2{border-top-color:var(--g200)}
.key-ideas{background:var(--g50);border-left-color:var(--gold)}
.key-ideas li::before{background:var(--g600)}
.aside-card{background:var(--g50)}
.aside-card li a:hover,.toc a:hover{color:var(--g700)}
.tag{background:var(--g100);color:var(--g700)}
.tag.green{background:var(--g100);color:var(--g700)}
.tag.sun{background:var(--gold-100);color:#8A6A1E}
.tag.plum{background:var(--gold-100);color:#8A6A1E}
.author-card{background:var(--g900)}
.author-card p{color:var(--g200)}
.share-row a:hover,.share-row button:hover{background:var(--g700)}
.read-prog{background:var(--grad-gold);height:3px}

/* subscribe: gold band, green button */
.subscribe{background:linear-gradient(90deg,#F0BE43 0%,#DDAF3E 60%,#C99A2E 100%);color:var(--g900)}
.subscribe input{color:var(--g900)}
.subscribe .btn{background:var(--g900);color:#fff}.subscribe .btn:hover{background:var(--g950)}

/* cta + footer: deep green, no black */
.cta-band::before{background:linear-gradient(120deg,rgba(18,48,22,.94) 0%,rgba(46,95,42,.86) 45%,rgba(62,123,54,.72) 100%)}
.cta-band p{color:var(--g200)}
footer.site-footer{background:var(--g950);color:#fff;position:relative;isolation:isolate}
footer.site-footer::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--g300) 70%,transparent);z-index:-1}
.foot-grid h4{color:var(--g300)}
.foot-grid a:hover{opacity:1;color:var(--gold)}
.foot-social a:hover{opacity:1;transform:translateY(-2px)}
.foot-social a{transition:transform .3s var(--ease-out),opacity .2s}
.foot-social svg{fill:#fff}
.foot-legal .cr{color:var(--g400)}
.foot-legal .credit{color:var(--g300)}.foot-legal .credit:hover{color:var(--gold)}

/* page hero: green scrim instead of black */
.page-hero::before{background:linear-gradient(180deg,rgba(18,48,22,.38) 0%,rgba(18,48,22,.22) 40%,rgba(18,48,22,.82) 100%)}
.page-hero .lead{color:var(--g100)}
.page-hero.short::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--grad-gold);z-index:0}

/* cards, forms, faq, downloads */
.card{border-color:var(--g200);transition:box-shadow .35s var(--ease-out),transform .35s var(--ease-out),border-color .25s}
.card:hover{box-shadow:var(--el-2);transform:translateY(-3px);border-color:var(--g300)}
.card .ic{background:var(--g100)}.card .ic svg{stroke:var(--g700)}
.card.dark{background:var(--g900)}.card.dark p{color:var(--g200)}
.card.green{background:var(--g700)}.card.green p{color:var(--g100)}
.card ul.checks svg{stroke:var(--g600)}
.faq details{border-top-color:var(--g200)}.faq details:last-child{border-bottom-color:var(--g200)}
.faq summary::after{color:var(--gold-deep)}
.faq summary:hover{color:var(--g700)}
.form input,.form select,.form textarea,.name-inp{border-color:var(--g200)}
.form input:focus,.form select:focus,.form textarea:focus,.name-inp:focus{border-color:var(--g600);box-shadow:0 0 0 4px rgba(140,190,68,.25)}
.form .ok{background:var(--g100);color:var(--g700)}
.dl a{border-color:var(--g200)}.dl a:hover{border-color:var(--g600)}
.dl svg{stroke:var(--g700)}
.logos div{border-color:var(--g200)}
.member img{background:var(--g50)}
.member{transition:transform .4s var(--ease-out)}.member:hover{transform:translateY(-4px)}
.member:hover img{box-shadow:0 0 0 3px var(--gold)}
.member img{transition:box-shadow .3s}

/* calculator */
.notice{background:var(--g100);color:var(--g900)}.notice svg{stroke:var(--g700)}
.qprog .ct{color:var(--g700)}.qprog .bar{background:var(--g100)}.qprog .bar i{background:var(--grad-gold)}
.opt{border-color:var(--g200)}.opt:hover{border-color:var(--g600);background:var(--g50)}
.opt::before{border-color:var(--g300)}.opt:hover::before{border-color:var(--g600);background:var(--g600)}
.linkb{color:var(--g700)}
.fbar .b{background:var(--g100)}
.growb{background:var(--gold-50);border-left-color:var(--gold)}
.ring .of{color:var(--g600)}
.share-box{background:var(--g900)}
.share-space{background:radial-gradient(120% 80% at 50% 120%,#8CBE44 0%,#3E7B36 40%,#123016 75%)}
.share-body p{color:var(--g200)}.share-body .hint{color:var(--g400)}
.share-modal{background:rgba(18,48,22,.78)}
.vmodal{background:rgba(18,48,22,.92)}
.vmodal .frame{background:var(--g950)}

/* fab, toast, cookie, tip */
.lang-fab{box-shadow:0 10px 30px rgba(28,63,29,.22),0 0 0 1px rgba(62,123,54,.12)}
.lang-fab .opts button{color:var(--g500)}.lang-fab .opts button[aria-pressed=true],.lang-fab .opts button:hover{color:var(--g900)}
.lang-fab .opts button:hover{background:var(--g100)}
.lang-toast{background:var(--g900)}
.cookie{box-shadow:0 30px 70px -20px rgba(28,63,29,.4),0 0 0 1px rgba(62,123,54,.12)}
.cookie .ck-links a{color:var(--g700)}
.tog{background:var(--g200)}.tog.on{background:var(--g600)}
.tip{background:var(--g900)}
.cmodal{background:rgba(18,48,22,.6)}

/* report dashboard */
.rep-top{background:linear-gradient(90deg,#1C3F1D 0%,#3E7B36 50%,#8CBE44 100%)}
.rep-tabs button{border-bottom-color:var(--g700)}
.rep-tabs button[aria-selected=true]{background:var(--g700)}
.rep-scope button{border-color:var(--g200)}
.rep-scope button[aria-pressed=true]{background:var(--g900);border-color:var(--g900)}
.vg-gi .gh{background:#3E7B36}.vg-ff .gh{background:#8CBE44}.vg-em .gh{background:#DDAF3E}.vg-be .gh{background:#4E8C31}
.vg-ff .gh,.vg-em .gh{color:var(--g900)}.vg-ff .gh .i,.vg-em .gh .i,.vg-ff .gh .car,.vg-em .gh .car{border-color:var(--g900);stroke:var(--g900)}
.vgroup .gl button[aria-pressed=true]{background:var(--g100)}
.rank-table th.c-gi{background:#3E7B36}.rank-table th.c-ff{background:#4E8C31}.rank-table th.c-em{background:#DDAF3E;color:var(--g900)}.rank-table th.c-be{background:#8CBE44;color:var(--g900)}
.rank-table tbody tr:nth-child(odd){background:var(--g50)}
.rank-table td{border-bottom-color:var(--g200)}
.rank-table td.neg{color:#B07A1A}.rank-table td.pos{color:var(--g700)}
.map-box path{stroke:var(--g700)}.map-box path:hover{stroke:var(--g900)}
.map-zoom button{border-color:var(--g700);color:var(--g700)}
.legend input{accent-color:var(--g700)}
.profile .big{color:var(--g700)}
.disclaimer{background:var(--gold-100);color:#6B4F12}
.rep-filters select,.rep-filters input{border-bottom-color:var(--g700)}
.chip{background:var(--g100)}.chip button{background:var(--g400)}

/* ---- scrolling experience ---- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:var(--d,0ms)}
.rv.in{opacity:1;transform:none}
img[loading=lazy]{transition:opacity .6s var(--ease-out)}
img[loading=lazy]:not(.ld){opacity:0}
img[loading=lazy].ld{opacity:1}
.photo-card img[loading=lazy].ld{opacity:.92}.photo-card:hover img{opacity:1}
.scroller .rail{scroll-snap-type:x proximity;scroll-behavior:smooth;cursor:grab}
.scroller .rail.drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.scroller .rail.drag>*{pointer-events:none}
.rail-nav button{border:1.5px solid var(--g200);background:#fff}
.rail-nav button:not(:disabled):hover{background:var(--g900);color:#fff;border-color:var(--g900)}
.analysis .rail-nav button{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.35);color:#fff}
.analysis .rail-nav button:not(:disabled):hover{background:var(--gold);color:var(--g900);border-color:var(--gold)}
/* scroll-driven parallax (progressive; CSS-only) */
@supports (animation-timeline:scroll()){
  .hero-video{animation:rise .9s var(--ease) .35s forwards,hero-parallax linear both;animation-timeline:auto,scroll();animation-range:normal,0 100vh}
  .page-hero .bg img{animation:kenburns 14s var(--ease) forwards,hero-parallax linear both;animation-timeline:auto,scroll();animation-range:normal,0 90vh}
  .cta-band .bg{animation:cta-parallax linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
}
@keyframes hero-parallax{to{transform:translateY(12vh) scale(1.02)}}
@keyframes cta-parallax{from{transform:translateY(-8%) scale(1.12)}to{transform:translateY(8%) scale(1.12)}}
/* global page progress + back to top */
.page-prog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad-gold);z-index:130;pointer-events:none;transition:width .08s linear}
.to-top{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:149;width:48px;height:48px;border-radius:50%;background:var(--g900);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--el-2);opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .35s var(--ease-out),transform .35s var(--ease-out),background .2s}
.to-top.on{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{background:var(--g700)}
.to-top svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:640px){.to-top{right:14px;width:44px;height:44px}}
/* section rhythm: soft green wash alternates */
.section.wash{background:linear-gradient(180deg,#fff,var(--g50) 30%,var(--g50) 70%,#fff)}
/* heading underline accent on section heads (gold hairline) */
.section-head>div>.h2::after,.section-head>.h2::after,.section-head>.h3::after{content:"";display:block;width:56px;height:3px;border-radius:2px;background:var(--grad-gold);margin-top:14px}
/* performance */
/* content-visibility intentionally not used: it breaks IntersectionObserver reveals in Chromium */
@media(prefers-reduced-motion:reduce){.hero-home::before{animation:none}.hero-video,.page-hero .bg img,.cta-band .bg{animation:none!important}.rv{transition-delay:0ms}img[loading=lazy]{opacity:1!important}}
@media print{.page-prog,.to-top{display:none!important}}

/* =========================================================
   v4.2 — live pulse, daily act, media hub, funnels, trust, teams, data tools
   ========================================================= */

/* honeypot: present for bots, gone for everyone else */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}

/* ---- hero: live pulse ---- */
.pulse{margin-top:clamp(24px,3vw,36px);opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.pulse.ready{opacity:1;transform:none}
.pulse-row{display:flex;flex-wrap:wrap;gap:clamp(18px,3vw,40px)}
.pulse .pu{display:flex;flex-direction:column;gap:2px;min-width:0}
.pulse .pu b{font-size:clamp(1.5rem,3vw,2.25rem);font-weight:700;letter-spacing:-.03em;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.pulse .pu b.lit{animation:pulse-in .5s var(--ease-out)}
@keyframes pulse-in{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
.pulse .pu span{font-size:.8125rem;color:var(--g200);max-width:20ch;line-height:1.35}
.pulse-note{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:.75rem;color:var(--g200)}
.pulse-note i{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none;animation:pulse 1.8s infinite}
.pulse.offline .pulse-note i{background:var(--g300);animation:none}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(24px,3vw,36px)}
.hero-grid .hero-cta .btn{margin-top:0}
@media(max-width:640px){.pulse .pu span{font-size:.75rem}.pulse-row{gap:16px 24px}}

/* ---- daily act ---- */
.act-band{background:linear-gradient(120deg,var(--g50),var(--gold-50))}
.act{display:flex;align-items:center;gap:clamp(20px,4vw,48px);flex-wrap:wrap;justify-content:space-between;
  background:#fff;border:1px solid var(--g200);border-left:5px solid var(--gold);border-radius:var(--r-150);
  padding:clamp(20px,3vw,32px);box-shadow:var(--el-1);opacity:0;transform:translateY(8px);transition:.5s var(--ease-out)}
.act.ready{opacity:1;transform:none}
.act-left{flex:1 1 460px;min-width:0}
.act-left h2{margin:12px 0 8px;max-width:34ch}
.act-right{display:flex;gap:10px;flex-wrap:wrap}
.act-right .is-done{background:var(--g600);color:#fff;opacity:1}
.qfound{color:#fff}

/* ---- share link row (score, teams) ---- */
.share-link{display:flex;gap:10px;align-items:center;margin:20px auto 0;max-width:520px}
.share-link input{flex:1;min-width:0;height:44px;border:1.5px solid var(--g200);border-radius:var(--r-100);padding:0 14px;background:var(--g50);font-size:.875rem;color:var(--g800)}
.share-link .btn{flex:none}

/* ---- form status ---- */
.form-status{margin-top:12px;font-size:.9375rem;font-weight:600}
.form-status.good{color:var(--g700)}
.form-status.bad{color:#B07A1A}
.form-status:empty{display:none}

/* ---- talks / media hub ---- */
.talk-search{margin-bottom:clamp(28px,4vw,44px)}
.talk-search .menu-search{border-bottom-color:var(--g600)}
.talk{border-top:1px solid var(--g200);padding:clamp(24px,3.5vw,40px) 0}
.talk:first-of-type{border-top:0;padding-top:0}
.talk.cued{scroll-margin-top:calc(var(--hdr) + 24px)}
.talk-head{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(18px,3vw,36px);align-items:start}
.talk-thumb{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--g900);aspect-ratio:16/9}
.talk-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}
.talk-thumb:hover img{transform:scale(1.05)}
.talk-thumb .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:62px;height:44px;border-radius:12px;background:rgba(240,190,67,.95);display:flex;align-items:center;justify-content:center}
.talk-thumb .play svg{width:22px;height:22px;fill:var(--g900);margin-left:3px}
.talk-meta h3{font-size:clamp(1.25rem,2vw,1.625rem);letter-spacing:-.02em;margin-bottom:6px}
.talk-meta p{margin-bottom:8px;max-width:62ch;color:var(--text-2)}
.talk-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.talk-body{margin-top:20px}
.talk-body>summary{cursor:pointer;font-weight:600;color:var(--g700);padding:10px 0;list-style:none;display:flex;align-items:center;gap:8px}
.talk-body>summary::-webkit-details-marker{display:none}
.talk-body>summary::before{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .25s}
.talk-body[open]>summary::before{transform:rotate(-135deg)}
.chapters{counter-reset:ch;margin:8px 0 24px;display:grid;gap:4px}
.chapters .ch{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;padding:10px 12px;border-radius:var(--r-100);transition:background .2s}
.chapters .ch:hover{background:var(--g50)}
.chapters .ts{font-variant-numeric:tabular-nums;font-weight:700;color:var(--g700);font-size:.875rem;min-width:52px;padding-top:2px}
.chapters .ch b{display:block;font-size:1rem;line-height:1.35}
.chapters .sum{display:block;font-size:.875rem;color:var(--text-2);line-height:1.5;margin-top:2px;max-width:70ch}
.transcript{border-left:3px solid var(--g200);padding:4px 0 4px 20px;max-width:72ch}
.transcript h4{font-size:1rem;margin-bottom:6px}
.transcript p{font-size:.9375rem;line-height:1.7;color:var(--n80);margin-bottom:10px}
.transcript p b{color:var(--g800)}
.transcript mark{background:var(--gold-100);color:var(--g900)}
@media(max-width:760px){.talk-head{grid-template-columns:1fr}.talk-thumb{max-width:420px}}

/* ---- press list + partner wall (trust) ---- */
.press-list{display:grid;gap:2px}
.press-list a{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr) auto auto;gap:16px;align-items:center;
  padding:16px 12px;border-bottom:1px solid var(--g200);transition:background .2s,padding-left .2s}
.press-list a:hover{background:var(--g50);padding-left:18px}
.press-list .outlet{font-weight:700;color:var(--g700);font-size:.9375rem}
.press-list .hl{font-size:1.0625rem;line-height:1.35}
.press-list .meta{color:var(--text-2);font-size:.8125rem;white-space:nowrap}
.press-list svg{width:18px;height:18px;stroke:var(--g600);fill:none;stroke-width:2;opacity:0;transition:opacity .2s,transform .2s}
.press-list a:hover svg{opacity:1;transform:translateX(3px)}
@media(max-width:760px){.press-list a{grid-template-columns:1fr auto;gap:4px 12px}.press-list .meta{grid-column:1/-1}}
.partner-wall div{flex-direction:column;gap:8px;text-align:center;padding:24px 18px;transition:border-color .25s,box-shadow .25s,transform .25s}
.partner-wall div:hover{border-color:var(--g300);box-shadow:var(--el-1);transform:translateY(-3px)}
.partner-wall img{max-height:56px}
.partner-wall .pl-kind{font-size:.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-dark)}
.partner-wall .pl-note{font-size:.8125rem;color:var(--text-2);line-height:1.45;max-width:28ch}

/* ---- citations ---- */
pre.cite{background:var(--g50);border:1px solid var(--g200);border-radius:var(--r-100);padding:14px 16px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;margin:6px 0 18px;color:var(--n80)}

/* ---- report: data tools + embed ---- */
.data-tools{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);
  background:var(--g50);border:1px solid var(--g200);border-radius:var(--r-150);padding:clamp(20px,3vw,32px);margin-top:var(--sp-500)}
.data-tools code{background:#fff;border:1px solid var(--g200);border-radius:4px;padding:1px 5px;font-size:.8125rem}
.data-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;align-items:center}
.data-row label.btn{cursor:pointer}
.data-status{margin-top:12px;font-size:.875rem;font-weight:500;line-height:1.5}
.data-status.good{color:var(--g700)}.data-status.bad{color:#B07A1A}
.data-status:empty{display:none}
.embed-box textarea{width:100%;border:1.5px solid var(--g200);border-radius:var(--r-100);padding:12px 14px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;line-height:1.55;background:#fff;resize:vertical}
body.data-imported .disclaimer{display:none}
@media(max-width:900px){.data-tools{grid-template-columns:1fr}}

/* ---- language switcher as real links ---- */
.lang-fab .opts a{display:inline-flex;align-items:center;height:40px;padding:0 14px;border-radius:var(--r-full);
  font-weight:700;font-size:1rem;color:var(--g500);transition:.2s}
.lang-fab .opts a:hover{background:var(--g100);color:var(--g900)}
.lang-fab .opts a.on{color:var(--g900);background:var(--g100)}

/* ---- section wash used by the new pages ---- */
.section.wash{background:linear-gradient(180deg,#fff,var(--g50) 30%,var(--g50) 70%,#fff)}

/* ---- Devanagari sets slightly taller ---- */
html[lang=hi] body{font-family:'Plus Jakarta Sans','Noto Sans Devanagari',system-ui,sans-serif;line-height:1.62}
html[lang=hi] .h1,html[lang=hi] .h2,html[lang=hi] h1,html[lang=hi] h2,html[lang=hi] h3{letter-spacing:0;line-height:1.28}
html[lang=hi] .hero-grid h1{line-height:1.24}
html[lang=hi] .prose{font-size:1.0625rem;line-height:1.85}

/* ---- v4.2: static compose panel (forms without a backend) ---- */
.compose{margin-top:20px;border:1px solid var(--g200);border-radius:var(--r-100);padding:18px;background:var(--g50)}
.compose-head{font-weight:700;margin-bottom:10px}
.compose textarea{width:100%;border:1px solid var(--g200);border-radius:var(--r-100);padding:12px 14px;font:inherit;font-size:.875rem;line-height:1.6;background:#fff;color:var(--n80);resize:vertical}
.compose-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.compose-note{margin-top:12px;font-size:.8125rem;color:var(--n60);line-height:1.5}
.subscribe .compose{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.6);width:100%;max-width:640px;margin-inline:auto}
.subscribe .compose-note{color:var(--n70)}
#groupCodeRow input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}
picture{display:contents}
.transcript mark,.ch mark{background:var(--gold-100);color:var(--g900);border-radius:3px;padding:0 2px}

/* ---- v4.2: Devanagari fitting + contrast ----
   Devanagari carries matras above and below the baseline, so headings and the
   pulse numbers need more room than the Latin scale allows. */
html[lang=hi] .h1,html[lang=hi] .h2,html[lang=hi] .hero-grid h1,html[lang=hi] .page-hero h1,
html[lang=hi] .analysis h2,html[lang=hi] .cta-band h2,html[lang=hi] .band-card h2{line-height:1.35;letter-spacing:0}
html[lang=hi] .h3,html[lang=hi] .h4,html[lang=hi] h3,html[lang=hi] .qtext{line-height:1.45;letter-spacing:0}
html[lang=hi] .prose,html[lang=hi] .lead,html[lang=hi] .lead-b{line-height:1.85}
html[lang=hi] .pulse .pu b{line-height:1.3}
html[lang=hi] .pulse .pu{gap:4px}
html[lang=hi] .pulse .pu span{font-size:.875rem}
html[lang=hi] .btn{line-height:1.5;height:auto;min-height:48px;padding-top:8px;padding-bottom:8px}
html[lang=hi] .btn-sm{min-height:40px}html[lang=hi] .btn-lg{min-height:56px}
html[lang=hi] .tabs button,html[lang=hi] .rep-tabs button{height:auto;min-height:52px;padding-top:10px;padding-bottom:10px}
html[lang=hi] .overline,html[lang=hi] .tag,html[lang=hi] .qfound{letter-spacing:.04em}
/* glass button on the bright part of the hero gradient needs a real edge */
.btn-glass{background:rgba(18,48,22,.28);border-color:rgba(255,255,255,.6);backdrop-filter:blur(6px)}
.btn-glass:hover{background:rgba(18,48,22,.45);border-color:#fff}

/* checklists inside the dark green pricing card were inheriting the light-surface
   border and body colour, which left them unreadable on green */
.card.green ul.checks li{color:#fff;border-top-color:rgba(255,255,255,.22)}
.card.green ul.checks svg{stroke:var(--gold)}
.card.green .link,.card.green a{color:var(--gold)}
.card.green .overline{color:var(--g200)}

/* =========================================================
   v5.1 — legibility pass (contrast audited across all 33 pages)
   Every text/background pair below was measured; targets are
   WCAG AA (4.5:1 body, 3:1 for 24px+ or bold 19px+).
   ========================================================= */
:root{
  --gold-ink:#7A5C10;      /* gold family, but legible as text on white (6.2:1) */
  --gold-ink-2:#8A6A1E;    /* 5.0:1 on white — for bold/small-caps labels */
}

/* --- focus: gold was invisible on white; green ring + gold halo reads on both --- */
:focus-visible{outline:3px solid var(--g700);outline-offset:2px;box-shadow:0 0 0 6px rgba(240,190,67,.45)}
.site-header.on-dark:not(.scrolled) :focus-visible,.page-hero :focus-visible,.hero-home :focus-visible,
footer.site-footer :focus-visible,.cta-band :focus-visible,.ticker :focus-visible,.analysis :focus-visible{outline-color:var(--gold);box-shadow:0 0 0 6px rgba(18,48,22,.6)}

/* --- ticker: was 2.6:1 over the hero. Solid ink, brighter items --- */
.ticker{background:var(--g950)}
.ticker .item{color:#EAF3DA}
.ticker .item b{color:#fff}
body.hero-page .ticker{background:rgba(18,48,22,.9);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2)}
.ticker .close{color:#D6E6B8}

/* --- small green/gold labels: 4.1 and 2.6 → 5.1 and 6.2 --- */
.overline{color:var(--g700)}
.info-card .overline,.partner-wall .pl-kind,.growb h3{color:var(--gold-ink)}
.tl .yr,.qprog .ct,.linkb,.card ul.checks li b{color:var(--g700)}
.tag,.tag.green{background:var(--g100);color:var(--g800)}
.tag.sun,.tag.plum{background:var(--gold-100);color:var(--gold-ink)}
.src,.ins-card .src,.video-tile .sub,.article-meta,.prevnext a small,.stat .l{color:var(--text-2)}

/* --- white on mid-green was 4.1; move those surfaces one step darker --- */
.qfound,.vg-be .gh,.rank-table th.c-be{background:var(--g700)}
.rank-table th.c-be{color:#fff}
.card.green p,.section[style*="--iog-deep"] p,.cta-band p{color:#EDF5E1}
.contact-card p,.card.green li{color:#fff}

/* --- form placeholders were 3.3:1 --- */
::placeholder{color:var(--n60);opacity:1}
.menu-search input::placeholder{color:var(--n50)}

/* --- photo overlays: guarantee legibility no matter what the image is --- */
.page-hero::before{background:linear-gradient(180deg,rgba(18,48,22,.5) 0%,rgba(18,48,22,.35) 35%,rgba(18,48,22,.88) 100%)}
.page-hero h1,.page-hero .lead-b,.page-hero .lead,.page-hero .share,.page-hero .btn-glass{text-shadow:0 1px 14px rgba(18,48,22,.6)}
.page-hero .lead{color:#EDF5E1}
.analysis::before{background:linear-gradient(180deg,rgba(18,48,22,.66),rgba(18,48,22,.84))}
.photo-card::after{background:linear-gradient(180deg,rgba(18,48,22,0) 30%,rgba(18,48,22,.55) 58%,rgba(18,48,22,.92))}
.btn-glass{background:rgba(18,48,22,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-color:rgba(255,255,255,.6)}
.btn-glass:hover{background:rgba(18,48,22,.62);border-color:#fff}

/* --- foundation tiles: gold and lime tints left their labels faint.
       All five now carry white type over a green floor; the tint reads as hue. --- */
.found a::before{opacity:.7}
.found a::after{background:linear-gradient(180deg,rgba(18,48,22,.15) 0%,rgba(18,48,22,.25) 40%,rgba(18,48,22,.86) 100%)}
.found .f3,.found .f5{color:#fff}
.found .f3 svg,.found .f5 svg{stroke:#fff}
.found .f3::after,.found .f5::after{background:linear-gradient(180deg,rgba(18,48,22,.2) 0%,rgba(18,48,22,.35) 40%,rgba(18,48,22,.9) 100%)}
.found h3,.found .no{text-shadow:0 1px 10px rgba(18,48,22,.7)}
.found .no{opacity:1;color:#EAF3DA}

/* --- hero: heading over a moving gradient needs a floor --- */
.hero-grid h1{text-shadow:0 2px 28px rgba(18,48,22,.45)}
.hero-home .lead,.impact-head h2{color:#fff}
.tabs button{color:#EDF5E1}
.tabs button[aria-selected=true]{color:var(--g900)}

/* --- header wordmark: it inherits colour, so it faded to grey mid-transition --- */
.brand .wm .sub{opacity:1;color:inherit}
.site-header:not(.on-dark) .brand,.site-header.scrolled .brand{color:var(--g900)}
.site-header:not(.on-dark) .brand .wm .sub,.site-header.scrolled .brand .wm .sub{color:var(--n60)}
.site-header.on-dark:not(.scrolled) .brand{color:#fff;text-shadow:0 1px 10px rgba(18,48,22,.6)}
.site-header.on-dark:not(.scrolled) .btn-outline{border-color:#fff;color:#fff;text-shadow:0 1px 8px rgba(18,48,22,.5)}
.site-header{transition:background .3s var(--ease),color .3s,box-shadow .3s,transform .3s var(--ease-out)}

/* --- report dashboard: legend/table/labels --- */
.rep-scope span,.rep-filters label,.legend label{color:var(--n70)}
.disclaimer{background:var(--gold-100);color:#5C4310;font-weight:600}
.rep-foot,.chart-legend div{color:var(--n70)}
.map-box path{stroke:#2E5F2A;stroke-width:.7}

/* --- footer + dark surfaces --- */
.foot-grid h4{color:var(--g300)}
.foot-grid a,.foot-legal a{color:#fff}
.foot-legal .cr{color:#B7CFA4}
.author-card p{color:#E4EEDA}
.share-body p{color:#E4EEDA}.share-body .hint{color:#B7CFA4}
.ticker .ttag{color:var(--g950)}

/* --- min touch targets & underlines for non-obvious links --- */
.btn,.icon-btn,.rail-nav button,.to-top{min-height:44px}
.prose a,.band-card .links a,.foot-legal a{text-underline-offset:4px;text-decoration-thickness:1.5px}
.link:focus-visible,.prose a:focus-visible{border-radius:3px}

/* --- gold buttons: declare the solid colour too, so the label never sits on
       a green fallback if the gradient is overridden or fails to paint --- */
.btn-gold,.site-header .hdr-right .btn-accent,.cta-band .btn-accent,.hero-grid .btn-light,.subscribe .btn-gold{
  background-color:#F0BE43;background-image:linear-gradient(135deg,#F0BE43,#DDAF3E);color:var(--g900)}
.btn-gold:hover,.site-header .hdr-right .btn-accent:hover,.cta-band .btn-accent:hover,.hero-grid .btn-light:hover{
  background-color:#F6CB5E;background-image:linear-gradient(135deg,#F6CB5E,#F0BE43);color:var(--g900)}
.btn-gold svg,.site-header .hdr-right .btn-accent svg,.cta-band .btn-accent svg{color:var(--g900)}

/* --- calculator foundation pill: the hue is set inline per foundation, so
       darken whatever lands there rather than hard-coding five values --- */
.qfound{box-shadow:inset 0 0 0 999px rgba(18,48,22,.55);color:#fff}

/* --- overlines on dark surfaces --- */
.card.green .overline,.card.dark .overline,.cta-band .overline,.author-card .overline,
.analysis .overline,section[style*="iog-deep"] .overline{color:#fff}
.info-card .overline,.card:not(.green):not(.dark) .overline,.band-card .overline{color:var(--gold-ink)}

/* --- the transparent header kept a solid-green CTA at scroll-top, which put
       dark green type on mid green (2.3:1). Gold there too. --- */
.site-header.on-dark:not(.scrolled) .btn-accent,
.site-header.on-dark:not(.scrolled) .hdr-right .btn-accent{
  background-color:#F0BE43;background-image:linear-gradient(135deg,#F0BE43,#DDAF3E);color:var(--g900)}
.site-header.on-dark:not(.scrolled) .btn-accent:hover{background-color:#F6CB5E;background-image:linear-gradient(135deg,#F6CB5E,#F0BE43)}

/* --- hero micro-copy sat at ~4.3:1 on the gradient; lift it clear --- */
.hero-home .hstat .l,.hero-home .hstat span,.hero-home .lit,.hero-home small,.hero-home .note,
.hero-home .hero-copy p,.hero-home .verified,.hero-home .meta{color:#EDF5E1}
.hero-home .hero-copy b,.hero-home .hstat b,.hero-home .n{color:#fff}

/* --- touch targets: text links were 19–24px tall on phones --- */
@media(pointer:coarse){
  .foot-grid a,.band-card .links a,.aside-card li a,.toc a,.menu-grid a,.linkb,.cookie .ck-links a,.foot-legal a{display:inline-flex;align-items:center;min-height:44px}
  .foot-grid li{margin-bottom:2px}
  .aside-card li,.toc li{padding:2px 0}
}

/* --- `hidden` was being overridden by class-level display rules, so the
       group-invite banner rendered with an empty name on every visit --- */
[hidden]{display:none!important}

/* --- score bars: gold on white is 1.7:1 as a shape; give every bar an edge --- */
.fbar .b i,.qprog .bar i{box-shadow:inset 0 0 0 1px rgba(18,48,22,.28)}

/* --- hero: a short line from the founder's columns carries the page,
       with the claim underneath it rather than inside it --- */
.hero-quote{font-size:clamp(2.4rem,5.2vw,4.4rem);line-height:1.04;letter-spacing:-.035em;max-width:16ch;text-wrap:balance}
.hero-cite{margin-top:18px;font-size:.8125rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:12px}
.hero-cite::before{content:"";width:34px;height:2px;background:var(--gold);flex:none}
.hero-line{margin-top:14px;font-size:clamp(1.0625rem,1.5vw,1.3125rem);line-height:1.45;color:#EDF5E1;max-width:34ch}
@media(max-width:640px){.hero-quote br{display:none}.hero-quote{max-width:none}}

/* --- hero alignment: the copy column is much taller than the video, so
       centring the grid left the video floating low against a four-line
       heading. Both columns now hang from the same top line. --- */
.hero-grid{align-items:start;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)}
.hero-quote{max-width:20ch;font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.06;margin-bottom:0}
.hero-video{margin-top:clamp(8px,1.2vw,18px)}
.hero-copy{display:flex;flex-direction:column}
.hero-copy .pulse{margin-top:clamp(24px,3vw,40px)}
@media(max-width:960px){.hero-grid{align-items:stretch}.hero-video{margin-top:28px}.hero-quote{max-width:none}}

/* =========================================================
   v4.5 — hero composition
   On wide screens the quote scaled past the point of being
   readable and the figures wrapped into a ragged five-up.
   ========================================================= */
.hero-quote{font-size:clamp(2.25rem,4.4vw,3.75rem);max-width:15ch}
.hero-line{max-width:38ch}
.hero-copy{max-width:640px}
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);align-items:center;gap:clamp(32px,5vw,80px)}
@media(min-width:1600px){.hero-grid{gap:clamp(64px,6vw,120px)}.hero-copy{max-width:700px}}

/* figures: a fixed four-up on one baseline, each under a gold rule */
.pulse-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.6vw,24px);max-width:600px}
.pulse .pu{gap:6px;padding-top:14px;border-top:2px solid rgba(240,190,67,.65)}
.pulse .pu b{font-size:clamp(1.5rem,2.4vw,2.125rem)}
.pulse .pu span{font-size:.8125rem;max-width:none;color:#EDF5E1}
.pulse-note{flex-wrap:wrap;gap:6px 10px;color:#DCEBC6;max-width:600px}
.pulse-note em{font-style:normal;color:#B7CFA4}
.pulse-note em::before{content:"·";margin-right:10px}
.pulse-note em b{font-weight:700;color:#EDF5E1;font-variant-numeric:tabular-nums}
@media(max-width:620px){.pulse-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.pulse-row{gap:12px}.pulse .pu span{font-size:.75rem}}

/* the language button sat on top of the hero buttons on short viewports */
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(24px,3vw,36px)}
@media(min-width:901px){.lang-fab{bottom:max(24px,env(safe-area-inset-bottom))}}

/* the two-column hero must still collapse — this restates the breakpoint
   after the wide-screen rule above, which otherwise wins by source order */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr}
  .hero-copy{max-width:none}
  .hero-quote{max-width:18ch}
}
@media(max-width:640px){
  .hero-quote{font-size:2.05rem;line-height:1.08;max-width:none}
  .hero-cite{font-size:.75rem;letter-spacing:.1em;gap:10px}
  .hero-cite::before{width:24px}
  .hero-line{font-size:1.0625rem;max-width:none}
  .pulse-row{max-width:none}
  .pulse-note{margin-bottom:8px}
}

/* =========================================================
   v4.5 — hero composition and the impact strip
   The headline, the film and the numbers were three stacked
   objects in one column; they are now a two-column lockup with
   the numbers as a full-width band beneath both.
   ========================================================= */
.hero-home{padding-bottom:clamp(28px,4vw,56px)}
.hero-grid{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);align-items:center;gap:clamp(32px,4.5vw,72px)}
.hero-copy{display:flex;flex-direction:column;align-items:flex-start}

/* headline: stop the vw scaling before it becomes a poster.
   15ch keeps it to two lines at every width above 720px. */
.hero-quote{font-size:clamp(2.35rem,3.9vw,3.6rem);line-height:1.06;letter-spacing:-.032em;max-width:15ch;margin:0}
.hero-cite{margin-top:20px}
.hero-line{margin-top:16px;max-width:38ch}
.hero-cta{margin-top:clamp(26px,3vw,38px)}

/* film: cap it so it never outgrows the text column it sits beside */
.hero-video{width:100%;max-width:760px;margin-left:auto}
.video-card{box-shadow:0 40px 90px -34px rgba(18,48,22,.75),0 0 0 1px rgba(255,255,255,.14)}

/* ---- impact strip ---- */
.pulse{margin-top:clamp(44px,5.5vw,76px);padding-top:clamp(22px,2.6vw,30px);border-top:1px solid rgba(255,255,255,.22);position:relative}
.pulse::before{content:"";position:absolute;top:-1px;left:0;width:clamp(90px,14%,190px);height:2px;background:var(--gold);border-radius:2px}
.pulse-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;flex-wrap:nowrap}
.pulse .pu{position:relative;display:block;padding:clamp(6px,1vw,10px) clamp(20px,2.4vw,36px) 4px;transition:transform .45s var(--ease-out)}
.pulse .pu:first-child{padding-left:0}
.pulse .pu+.pu::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:1px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.3) 22%,rgba(255,255,255,.3) 78%,transparent)}
.pulse .pu b{display:block;font-size:clamp(2.25rem,3.6vw,3.35rem);font-weight:700;letter-spacing:-.04em;line-height:.95;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 2px 20px rgba(18,48,22,.35)}
.pulse .pu span{display:block;margin-top:10px;max-width:22ch;font-size:.875rem;font-weight:500;line-height:1.35;color:#EDF5E1}
.pulse .pu::after{content:"";display:block;width:28px;height:2px;margin-top:12px;border-radius:2px;background:var(--gold);opacity:.5;transform-origin:left;transform:scaleX(.55);transition:transform .5s var(--ease-out),opacity .5s}
.pulse .pu:hover::after{transform:scaleX(1);opacity:1}
.pulse .pu:hover{transform:translateY(-3px)}
.pulse-note{display:flex;align-items:center;gap:10px;margin-top:clamp(20px,2.4vw,28px);font-size:.75rem;letter-spacing:.02em;color:#D6E6B8;flex-wrap:wrap}
.pulse-note em{font-style:normal;color:#B7CFA4;display:inline-flex;align-items:center;gap:6px}
.pulse-note em::before{content:"";width:3px;height:3px;border-radius:50%;background:currentColor;margin-right:4px}
.pulse-note em b{color:#EDF5E1;font-variant-numeric:tabular-nums}
@media(max-width:900px){
  .pulse-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:clamp(20px,4vw,30px)}
  .pulse .pu:nth-child(odd){padding-left:0}
  .pulse .pu:nth-child(3)::before,.pulse .pu:nth-child(odd)::before{display:none}
  .pulse .pu:nth-child(3),.pulse .pu:nth-child(4){padding-top:clamp(18px,3vw,24px);border-top:1px solid rgba(255,255,255,.14)}
}
@media(max-width:520px){.pulse .pu b{font-size:2rem}.pulse .pu span{font-size:.8125rem}}
/* the language button lives bottom-left; keep the strip clear of it */
@media(max-width:900px){.hero-home{padding-bottom:96px}}
@media(max-width:960px){.hero-video{max-width:none;margin-left:0}.hero-quote{max-width:18ch}}
@media(min-width:1600px){.hero-quote{font-size:3.5rem}.hero-video{max-width:820px}}

/* supersede the earlier four-up (it was sized for the text column, and the
   strip now spans the full width beneath both columns) */
.pulse-row{max-width:none;gap:0}
.pulse-note{max-width:none}
.pulse .pu{padding-top:clamp(6px,1vw,10px);border-top:0;gap:0}
.pulse-note em::before{content:"";width:3px;height:3px;border-radius:50%;background:currentColor;margin-right:4px;display:inline-block}

/* restate the collapse after the v4.5 block, which otherwise wins on source order */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:clamp(28px,5vw,40px)}
  .hero-copy{max-width:none}
  .hero-quote{max-width:18ch}
  .hero-video{max-width:none;margin-left:0}
}
@media(max-width:640px){.hero-quote{font-size:2.05rem;line-height:1.08;max-width:none}}
/* the metadata line sits opposite the strip on desktop, clear of the language button */
@media(min-width:901px){.pulse-note{justify-content:flex-end;text-align:right}}
@media(max-width:900px){.pulse{padding-bottom:60px}}

/* =========================================================
   LIGHT EDITION (v4.6-light)
   Same structure, same logo palette — white carries the page and
   the greens and golds appear as type, rules, tints and photography.
   Everything below this line is the only difference from v4.5.
   ========================================================= */
body{background:#fff;color:var(--g900)}

/* ---------- header + ticker ---------- */
.site-header,.site-header.on-dark:not(.scrolled){background:rgba(255,255,255,.9);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);color:var(--g900)}
.site-header.on-dark:not(.scrolled){box-shadow:0 1px 0 rgba(62,123,54,.1)}
.site-header.on-dark:not(.scrolled) .brand{color:var(--g900);text-shadow:none}
.site-header.on-dark:not(.scrolled) .brand .wm .sub{color:var(--n60)}
.site-header.on-dark:not(.scrolled) .btn-outline{border-color:var(--g700);color:var(--g700);text-shadow:none}
.site-header.on-dark:not(.scrolled) .btn-outline:hover{background:var(--g100)}
.site-header.on-dark:not(.scrolled) .icon-btn:hover{background:var(--g100)}
.site-header.on-dark:not(.scrolled) :focus-visible{outline-color:var(--g700);box-shadow:0 0 0 6px rgba(240,190,67,.45)}
.ticker,body.hero-page .ticker{background:var(--g50);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--g200)}
.ticker .item{color:var(--text-3)}
.ticker .item b{color:var(--g800)}
.ticker .item:hover{background:#fff}
.ticker .close{color:var(--n60)}
.ticker .ttag{background:var(--gold);color:var(--g950)}
.ticker .ttag i{background:var(--g950)}

/* ---------- hero ---------- */
.hero-home{background:#fff;color:var(--g900)}
.hero-home::before{inset:-28% -10% auto -10%;height:120%;
  background:
    radial-gradient(34% 40% at 14% 12%,rgba(169,201,60,.30),transparent 70%),
    radial-gradient(28% 32% at 88% 6%,rgba(240,190,67,.30),transparent 70%),
    radial-gradient(40% 38% at 74% 78%,rgba(140,190,68,.24),transparent 70%);
  filter:blur(60px)}
.hero-home::after{background:linear-gradient(180deg,rgba(255,255,255,0),#fff 70%)}
.hero-quote{color:var(--g900);text-shadow:none}
.hero-cite{color:var(--gold-ink)}
.hero-cite::before{background:var(--gold-deep)}
.hero-line{color:var(--text-3)}
.hero-home .lead,.hero-home .hero-copy p{color:var(--text-3)}
.btn-glass{background:#fff;border-color:var(--g300);color:var(--g800);backdrop-filter:none}
.btn-glass:hover{background:var(--g50);border-color:var(--g600);color:var(--g900)}
.pulse{border-top-color:var(--g200)}
.pulse .pu b{color:var(--g800);text-shadow:none}
.pulse .pu span{color:var(--text-2)}
.pulse .pu+.pu::before{background:linear-gradient(180deg,transparent,var(--g200) 22%,var(--g200) 78%,transparent)}
.pulse-note{color:var(--text-2)}
.pulse-note em{color:var(--n50)}
.pulse-note em b{color:var(--g800)}
.impact-head h2,.hero-home .impact h2{color:var(--g900)}
.tabs{background:var(--g100)}
.tabs button{color:var(--text-3)}
.tabs button[aria-selected=true]{background:#fff;color:var(--g900);box-shadow:var(--el-1)}
.info-card{border:1px solid var(--g200);box-shadow:var(--el-1)}

/* ---------- sub-page heroes: white, with the photograph as a panel ---------- */
.page-hero{background:#fff;color:var(--g900);min-height:auto;padding-bottom:clamp(32px,4vw,56px)}
.page-hero::before{display:none}
.page-hero h1,.page-hero .lead,.page-hero .lead-b,.page-hero .share,.page-hero .btn-glass{text-shadow:none}
.page-hero h1{color:var(--g900)}
.page-hero .lead,.page-hero .lead-b{color:var(--text-3)}
.page-hero .overline{color:var(--gold-ink)}
.page-hero .share a{color:var(--g700);border-color:var(--g200)}
.page-hero .share a:hover{background:var(--g100)}
.page-hero.short::after{display:none}
@media(min-width:961px){
  .page-hero .bg{left:auto;right:var(--gutter);width:min(42%,620px);top:calc(var(--hdr) + 28px);bottom:28px;border-radius:var(--r-150);overflow:hidden;box-shadow:var(--el-3)}
  .page-hero .wrap>*{max-width:52%}
}
@media(max-width:960px){
  .page-hero .bg{position:relative;inset:auto;height:min(46vw,280px);border-radius:var(--r-150);overflow:hidden;margin-top:24px}
  .page-hero .bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
}

/* ---------- bands that were dark or gradient ---------- */
.analysis{background:var(--g50);color:var(--g900)}
.analysis::before,.analysis .bg{display:none}
.analysis h2{color:var(--g900)}
.analysis .rail-nav button{background:#fff;border-color:var(--g200);color:var(--g800)}
.analysis .rail-nav button:not(:disabled):hover{background:var(--g900);color:#fff;border-color:var(--g900)}
.band-green,.band-blue{background:#fff;border-top:1px solid var(--g200)}
.band-green .band-card,.band-blue .band-card{background:var(--g50);border:1px solid var(--g200);box-shadow:none}
.band-green .band-img.tint::after,.band-blue .band-img.tint::after{opacity:.12}
.cta-band{background:linear-gradient(120deg,var(--gold-50),var(--g50) 60%,#fff);color:var(--g900)}
.cta-band::before,.cta-band .bg{display:none}
.cta-band h2{color:var(--g900)}
.cta-band p{color:var(--text-3)}
.cta-band .overline{color:var(--gold-ink)}
.subscribe{background:var(--gold-50);color:var(--g900);border-top:2px solid var(--gold);border-bottom:1px solid var(--g200)}
.subscribe input{background:#fff;border:1px solid var(--g200);color:var(--g900)}
.subscribe .btn,.subscribe .btn-gold{background:var(--g700);background-image:none;color:#fff}
.subscribe .btn:hover{background:var(--g900)}

/* ---------- foundations: tint cards rather than photo tiles ---------- */
.found a::before{opacity:.14}
.found a::after{background:linear-gradient(180deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.86) 45%,#fff 100%)}
.found a{background:#fff;border:1px solid var(--g200);color:var(--g900)}
.found .f3,.found .f5,.found h3,.found .no{color:var(--g900);text-shadow:none}
.found .f3 svg,.found .f5 svg,.found svg{stroke:var(--g700)}
.found .no{color:var(--gold-ink);opacity:1}
.found .f1{border-color:#3E7B36}.found .f2{border-color:#8CBE44}.found .f3{border-color:#F0BE43}.found .f4{border-color:#4E8C31}.found .f5{border-color:#A9C93C}
.found a:hover{box-shadow:var(--el-2)}

/* ---------- dark cards and surfaces ---------- */
.card.dark,.card.green{background:var(--g50);border:1px solid var(--g200);color:var(--g900)}
.card.dark p,.card.green p,.card.green li{color:var(--text-3)}
.card.dark .overline,.card.green .overline{color:var(--gold-ink)}
.author-card{background:var(--g50);color:var(--g900);border:1px solid var(--g200)}
.author-card p{color:var(--text-3)}
.author-card .overline{color:var(--gold-ink)}
.share-row a,.share-row button{border:1px solid var(--g200);color:var(--g700)}
.share-row a:hover,.share-row button:hover{background:var(--g700);color:#fff}
.video-tile .thumb::after{background:linear-gradient(160deg,rgba(62,123,54,.25),rgba(240,190,67,.12))}

/* ---------- footer ---------- */
footer.site-footer{background:var(--g50);color:var(--g900);border-top:1px solid var(--g200)}
footer.site-footer::before{background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--g500) 70%,transparent)}
.foot-grid h4{color:var(--gold-ink)}
.foot-grid a,.foot-legal a{color:var(--text-3)}
.foot-grid a:hover,.foot-legal a:hover{color:var(--g700)}
.foot-social svg{fill:var(--g800)}
.foot-legal .cr{color:var(--n50)}
.foot-legal .credit{color:var(--g700)}
.foot-legal .credit:hover{color:var(--gold-ink)}

/* ---------- report dashboard + score ---------- */
.rep-top{background:linear-gradient(90deg,var(--g50),var(--gold-50));color:var(--g900);border-bottom:1px solid var(--g200)}
.rep-top a{color:var(--g700)}
.rep-top .btn{background:var(--g700);color:#fff}
.share-box{background:var(--g50);color:var(--g900);border:1px solid var(--g200)}
.share-body p{color:var(--text-3)}.share-body .hint{color:var(--n50)}
.notice{background:var(--gold-50);border:1px solid var(--gold-100)}
.act{background:#fff}
.act-band{background:linear-gradient(120deg,var(--g50),var(--gold-50))}

/* ---------- focus stays green-on-white everywhere now ---------- */
.page-hero :focus-visible,.hero-home :focus-visible,footer.site-footer :focus-visible,.cta-band :focus-visible,.ticker :focus-visible,.analysis :focus-visible{outline-color:var(--g700);box-shadow:0 0 0 6px rgba(240,190,67,.45)}

/* the gold and lime tiles carry their own scrim from the dark edition */
.found .f3::after,.found .f5::after{background:linear-gradient(180deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.86) 45%,#fff 100%)}
.found a::before{opacity:.24}
/* sections that were painted deep green by an inline style */
.section[style*="--iog-deep"]{background:var(--g50)!important;color:var(--g900)!important;border-top:1px solid var(--g200);border-bottom:1px solid var(--g200)}
.section[style*="--iog-deep"] h2,.section[style*="--iog-deep"] h3{color:var(--g900)}
.section[style*="--iog-deep"] p,.section[style*="--iog-deep"] li{color:var(--text-3)}
.section[style*="--iog-deep"] .overline{color:var(--gold-ink)}
.section[style*="--iog-deep"] .qcard,.section[style*="--iog-deep"] .demo{background:#fff;border:1px solid var(--g200)}
.section[style*="--iog-deep"] .opt{background:#fff;border-color:var(--g200);color:var(--g900)}
.section[style*="--iog-deep"] .btn-light,.section[style*="--iog-deep"] .btn-accent{background-color:var(--g700);background-image:none;color:#fff}

/* inline colours written for the dark edition need overriding here */
.card .overline,.card.green .overline,.card.dark .overline{color:var(--gold-ink)!important}
.card.green p,.card.green li,.card.green li span,.card.dark p,.card.dark li,.card p.lead{color:var(--text-3)!important}
.card.green .link,.card.green a:not(.btn),.card.dark a:not(.btn){color:var(--g700)!important}
.card.green .btn,.card.dark .btn{background-color:var(--g700);background-image:none;color:#fff!important}
.pulse-note em{color:var(--text-2)}
.pulse-note em b{color:var(--g800)}
.foot-legal .cr{color:var(--text-2)}
/* any remaining inline light-on-dark colour from the dark edition */
[style*="color:#EAF3DA"],[style*="color:#D6E6B8"],[style*="color:#EDF5E1"],[style*="color:#fff"]:not(.btn):not(.rep-top):not([class*=band]){color:var(--text-3)!important}
/* the share row sat over the photo panel; it belongs with the text now */
@media(min-width:961px){.page-hero .share{position:static;max-width:52%;margin-top:26px;justify-content:flex-start}}
.page-hero .share span{color:var(--text-2)}

/* =========================================================
   v4.8 — lighter greens · green-and-white buttons · flat surfaces
   + Goodness Score app, share cards modal, ask-AI, rotating hero quote.
   Everything below is the only difference from v4.7-light.
   Rule of thumb: leaf green (#8CBE44 / #A9C93C) and white carry the page;
   deep green (#1C3F1D) is kept for headings and fine print only.
   ========================================================= */
:root{
  --leaf:#8CBE44;--leaf-hi:#A9C93C;--leaf-ink:#123016;
  --text-3:#3F5E36;                         /* body copy a step lighter than v4.7 */
  --gold-ink:#3E7B36;                       /* overlines and small labels move from gold-brown to green */
  --grad-gold:linear-gradient(#8CBE44,#8CBE44);   /* every former gold gradient is now flat leaf green */
  --accent:var(--g600);--accent-hover:var(--g700);--accent-pressed:var(--g800);
  --el-1:0 1px 2px rgba(62,123,54,.08),0 2px 8px -2px rgba(62,123,54,.10);
  --el-2:0 2px 4px rgba(62,123,54,.06),0 12px 32px -12px rgba(62,123,54,.22);
  --el-3:0 4px 8px rgba(62,123,54,.06),0 24px 56px -20px rgba(62,123,54,.28);
}

/* ---------- 2. buttons: light green + white, never yellow ---------- */
.btn-accent,.btn-gold,.btn-light,.hero-grid .btn-light,.cta-band .btn-accent,
.site-header .hdr-right .btn-accent,.site-header.on-dark:not(.scrolled) .btn-accent,.site-header.on-dark:not(.scrolled) .hdr-right .btn-accent,
.subscribe .btn,.subscribe .btn-gold,.rep-top .btn,.card.green .btn-accent,.card.dark .btn-accent,.card.green .btn:not(.btn-outline),.card.dark .btn:not(.btn-outline),
.section[style*="--iog-deep"] .btn-light,.section[style*="--iog-deep"] .btn-accent,.cookie .btn-accent,.cmodal .btn-accent{
  background-color:var(--leaf)!important;background-image:none!important;color:var(--leaf-ink)!important;border-color:transparent!important;
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 6px 16px -8px rgba(78,140,49,.55)!important;text-shadow:none!important}
.btn-accent:hover,.btn-gold:hover,.btn-light:hover,.hero-grid .btn-light:hover,.cta-band .btn-accent:hover,
.site-header .hdr-right .btn-accent:hover,.site-header.on-dark:not(.scrolled) .btn-accent:hover,
.subscribe .btn:hover,.rep-top .btn:hover,.card.green .btn:not(.btn-outline):hover,.card.dark .btn:not(.btn-outline):hover,.cookie .btn-accent:hover,.cmodal .btn-accent:hover{
  background-color:var(--leaf-hi)!important;background-image:none!important;color:var(--leaf-ink)!important;transform:translateY(-1px);
  box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 12px 24px -10px rgba(78,140,49,.6)!important}
.btn-accent svg,.btn-gold svg,.btn-light svg,.site-header .hdr-right .btn-accent svg,.cta-band .btn-accent svg{color:var(--leaf-ink)!important;stroke:currentColor}
.btn-outline,.btn-glass,.btn-white,.site-header.on-dark:not(.scrolled) .btn-outline,.info-card .btn{
  background:#fff!important;background-image:none!important;color:var(--g800)!important;border:2px solid var(--g200)!important;box-shadow:none!important;backdrop-filter:none!important;text-shadow:none!important}
.btn-outline:hover,.btn-glass:hover,.btn-white:hover,.site-header.on-dark:not(.scrolled) .btn-outline:hover,.info-card .btn:hover{
  background:var(--g50)!important;border-color:var(--leaf)!important;color:var(--g900)!important}
.subscribe .btn{text-transform:none;letter-spacing:0;border-radius:var(--r-full)}
.linkb{color:var(--g700)}
/* header CTA: full keyword label on wide screens, short label on small ones */
.hdr-right .btn-accent .cta-s{display:none}
@media(max-width:1180px){.hdr-right .btn-outline{display:none}}
@media(max-width:760px){.hdr-right .btn-accent .cta-l{display:none}.hdr-right .btn-accent .cta-s{display:inline}}
@media(max-width:480px){.hdr-right .btn-accent{width:auto!important;padding:0 12px!important}.hdr-right .btn-accent span.cta-s{display:inline!important;font-size:.75rem}.hdr-right .btn-accent svg{display:none}}
@media(max-width:360px){.hdr-right .btn-accent span.cta-s{display:inline!important}}

/* ---------- 1. less deep green: surfaces, chips, hovers ---------- */
.photo-card,.video-tile .thumb,.founder-split .portrait,.band-img,.video-card,.ins-card .img,.story-card,.team .ph,.page-hero .bg{background-color:var(--g100)}
.video-card{box-shadow:var(--el-3)}
.ticker .ttag{background:var(--leaf);color:var(--leaf-ink)}.ticker .ttag i{background:var(--leaf-ink)}
.page-prog{background:var(--leaf)}
.to-top{background:#fff;color:var(--g700);border:2px solid var(--g200);box-shadow:var(--el-2)}.to-top:hover{background:var(--g50);border-color:var(--leaf)}
.analysis .rail-nav button:not(:disabled):hover,.rail-nav button:not(:disabled):hover{background:var(--leaf);color:var(--leaf-ink);border-color:var(--leaf)}
.share-row a:hover,.share-row button:hover,.page-hero .share a:hover{background:var(--g100);color:var(--g800)}
.qfound{box-shadow:none;background:var(--g100)!important;color:var(--g800)}
.video-tile .play,.watch-pill .pl{background:var(--leaf)!important;color:var(--leaf-ink)!important}
.video-tile .play svg,.watch-pill .pl svg{fill:var(--leaf-ink);color:var(--leaf-ink)}
.tog.on{background:var(--leaf)}
.lang-fab .globe{background:#fff;color:var(--g700);border:2px solid var(--g200)}
.tl.done .yr,.tl .yr{color:var(--g700)}
.share-modal{background:rgba(244,249,236,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.tip{background:#fff;color:var(--g900);border:1px solid var(--g200);box-shadow:var(--el-2)}
a.link,.link{color:var(--g700)}
.card .ic{background:var(--g100);color:var(--g700)}
blockquote{color:var(--g700)}

/* ---------- 3. no gradients in the hero, on headings or on bands ---------- */
.hero-home{background:#fff!important}
.hero-home::before,.hero-home::after{display:none!important}
.stat .n{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--g600)}
.cta-band{background:var(--g50)!important;border-top:1px solid var(--g200)}
.rep-top{background:var(--g50)!important}
.act-band{background:#fff!important}
.act{background:var(--g50)!important;border:1px solid var(--g200)}
footer.site-footer::before{background:var(--g200)!important;height:1px}
.subscribe{background:#fff!important;border-top:1px solid var(--g200)!important;border-bottom:0!important}
.pulse .pu+.pu::before{background:var(--g200)!important}
.pulse::before,.pulse-row::before{background:var(--leaf)!important}
.video-tile .thumb::after{background:none!important}
.found a::after,.found .f3::after,.found .f5::after{background:rgba(255,255,255,.84)!important}
.band-green .band-img.tint::after,.band-blue .band-img.tint::after{display:none}
.hero-cite::before{background:var(--leaf)}
.notice{background:var(--g50)!important;border:1px solid var(--g200)!important;color:var(--text-3)}
.growb{background:var(--g50)!important;border-left-color:var(--leaf)!important}
.growb h3{color:var(--g800)}
h1,h2,h3,.h1,.h2,.h3{background-image:none;-webkit-text-fill-color:currentColor}

/* ---------- hero: rotating founder quote, fixed H1 underneath ---------- */
.hero-eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--g600);margin-bottom:18px}
.hq{margin:0;padding:0;border:0;color:var(--g900);font-family:inherit;font-style:normal}
.hq::before{display:none!important}
.hq p{font-weight:700;font-size:clamp(2.2rem,3.9vw,3.55rem);line-height:1.07;letter-spacing:-.032em;max-width:16ch;text-wrap:balance;color:var(--g900);margin:0;min-height:3.2em;display:flex;align-items:flex-end}
.hq.long p{font-size:clamp(1.85rem,3.1vw,2.8rem);max-width:20ch;line-height:1.1}
.hq.xlong p{font-size:clamp(1.55rem,2.5vw,2.2rem);max-width:26ch;line-height:1.16;letter-spacing:-.02em}
.hq p{opacity:1;transition:opacity .5s var(--ease-out,ease)}
.hero-cite{color:var(--g700)!important;flex-wrap:wrap}
.hero-cite span{font-weight:600;letter-spacing:.04em;text-transform:none;color:var(--text-2)}
h1.hero-line{font-size:clamp(1.0625rem,1.45vw,1.28rem);font-weight:500;line-height:1.5;letter-spacing:0;color:var(--text-3);max-width:40ch;margin-top:18px}
.hero-fine{margin-top:14px;font-size:.8125rem;font-weight:600;color:var(--text-2);letter-spacing:.02em}
.hero-cta .btn{margin-top:0!important}
@media(max-width:960px){.hq p{min-height:0;max-width:none}.hq.long p,.hq.xlong p{max-width:none}}
@media(max-width:640px){.hq p{font-size:2rem}.hq.long p{font-size:1.7rem}.hq.xlong p{font-size:1.4rem}.hero-cta .btn{width:100%}}

/* ---------- what is goodness (home) + the four-step chain ---------- */
.whatis{background:var(--g50);border-top:1px solid var(--g200);border-bottom:1px solid var(--g200)}
.whatis-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,80px);align-items:center}
.whatis .h2{margin:12px 0 20px;max-width:22ch}
.whatis .link{margin-top:24px;display:inline-flex}
.chain{list-style:none;margin:0;padding:0;counter-reset:ch;display:grid;gap:10px}
.chain li{counter-increment:ch;background:#fff;border:1px solid var(--g200);border-radius:var(--r-100);padding:16px 18px 16px 56px;position:relative;font-size:1.0625rem;line-height:1.4;color:var(--text-3)}
.chain li b{color:var(--g900)}
.chain li::before{content:counter(ch);position:absolute;left:16px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:var(--leaf);color:var(--leaf-ink);font-weight:800;font-size:.8125rem;display:flex;align-items:center;justify-content:center}
.chain li.src{background:none;border:0;padding:4px 2px;font-size:.8125rem;color:var(--text-2)}.chain li.src::before{display:none}.chain li.src a{text-decoration:underline;color:var(--g700)}
.gp .chain{margin:20px 0 24px;max-width:560px}
@media(max-width:860px){.whatis-grid{grid-template-columns:1fr}}

/* ---------- score band (home) ---------- */
.score-band{background:#fff}
.ticks{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:10px}
.ticks li{display:flex;gap:10px;align-items:center;font-weight:500;color:var(--text-3)}
.ticks svg{width:20px;height:20px;flex:none;stroke:var(--g600);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;background:var(--g100);border-radius:50%;padding:3px}
.demo-q{background:var(--g50)!important;border:1px solid var(--g200)!important;box-shadow:var(--el-2)}
.demo-yn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.demo-yn .btn{height:56px;font-size:1.0625rem}

/* ---------- prose pages (what-is-goodness) ---------- */
.gp-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,5vw,72px);align-items:start}
.gp{max-width:70ch}.gp h2{margin:40px 0 16px}.gp h2:first-child{margin-top:0}
.gp p{margin:0 0 16px;line-height:1.75;color:var(--text-3);font-size:1.0625rem}.gp p.lead{font-size:1.25rem;line-height:1.55;color:var(--g800)}
.gp a{color:var(--g700);text-decoration:underline;text-underline-offset:3px}
.gp ul.checks{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:10px}
.gp ul.checks li{display:flex;gap:12px;align-items:flex-start;color:var(--text-3);line-height:1.55}
.gp ul.checks svg{width:20px;height:20px;flex:none;margin-top:3px;stroke:var(--g600);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.gp-aside{position:sticky;top:calc(var(--hdr) + 24px)}
.linklist{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:2px}.linklist a{display:block;padding:10px 0;border-bottom:1px solid var(--g200);font-weight:600;color:var(--g800)}.linklist a:hover{color:var(--g600)}
.section.alt{background:var(--g50);border-top:1px solid var(--g200);border-bottom:1px solid var(--g200)}
@media(max-width:900px){.gp-grid{grid-template-columns:1fr}.gp-aside{position:static}}

/* ---------- ask an AI + social rows ---------- */
.ask-ai{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ask-ai-l{font-size:.8125rem;font-weight:700;color:var(--text-2);letter-spacing:.02em}
.ask-ai-b{display:flex;gap:8px;flex-wrap:wrap}
.ai-btn{display:inline-flex;align-items:center;gap:10px;height:44px;min-width:44px;padding:0 11px;border-radius:var(--r-full);background:#fff;border:2px solid var(--g200);color:#111;font-weight:600;font-size:.9375rem;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s}
.ai-btn svg{width:20px;height:20px;flex:none}
.ai-btn span{color:var(--g900);padding-right:6px}
.ai-btn:hover{border-color:var(--leaf);transform:translateY(-2px);box-shadow:var(--el-2)}
.askai{background:#fff;padding-top:0}
.askai-box{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,64px);align-items:center;background:var(--g50);border:1px solid var(--g200);border-radius:var(--r-150);padding:clamp(24px,4vw,48px)}
.askai-box .muted{margin-top:12px;color:var(--text-2);line-height:1.6}
.ask-ai-q{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.ask-ai-q button{border:2px solid var(--g200);background:#fff;border-radius:var(--r-full);padding:9px 16px;font-size:.875rem;font-weight:600;color:var(--g800);cursor:pointer;text-align:left;transition:.2s}
.ask-ai-q button:hover{border-color:var(--leaf)}
.ask-ai-q button[aria-checked=true]{background:var(--leaf);border-color:var(--leaf);color:var(--leaf-ink)}
.ai-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#fff;color:var(--g900);border:2px solid var(--leaf);border-radius:var(--r-100);padding:14px 20px;font-size:.9375rem;font-weight:600;box-shadow:var(--el-3);opacity:0;pointer-events:none;transition:.3s;z-index:400;max-width:min(560px,92vw);text-align:center}
.ai-toast.on{opacity:1;transform:translate(-50%,0)}
.foot-connect{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;flex-wrap:wrap;padding:28px 0;border-top:1px solid var(--g200);margin-top:32px}
.foot-connect .foot-social{margin:0;padding:0;border:0}
.foot-social a{width:44px;height:44px;border-radius:50%;border:2px solid var(--g200);background:#fff;display:inline-flex;align-items:center;justify-content:center;transition:.2s}
.foot-social a:hover{border-color:var(--leaf);background:var(--g50);transform:translateY(-2px)}
.foot-social svg{width:18px;height:18px;fill:var(--g700)!important}
.menu-connect{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;flex-wrap:wrap;padding:24px 0;border-top:1px solid var(--g200);margin-top:32px}
.menu-social{display:flex;gap:10px;margin:0}
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.cta-band .cta-row .btn{margin-top:0}
@media(max-width:860px){.askai-box{grid-template-columns:1fr}}

/* =========================================================
   Goodness Score app
   ========================================================= */
.gs-section{padding-top:clamp(24px,3vw,40px)}
.calc{max-width:860px}
.gs-step[hidden]{display:none!important}
.calc-card{border-color:var(--g200);box-shadow:var(--el-2)}
.gs-h{margin:12px 0 16px}
.gs-facts{list-style:none;padding:0;margin:24px 0 4px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gs-facts li{background:var(--g50);border:1px solid var(--g200);border-radius:var(--r-100);padding:14px 14px 12px;font-size:.8125rem;line-height:1.35;color:var(--text-2);font-weight:500}
.gs-facts b{display:block;font-size:1.625rem;line-height:1.1;font-weight:800;color:var(--g700);letter-spacing:-.02em;margin-bottom:4px}
.gs-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.gs-last{display:flex;align-items:center;gap:16px;background:var(--g50);border:1px solid var(--g200);border-radius:var(--r-100);padding:16px 20px;margin:4px 0 20px}
.gs-last .gs-logo{width:44px;height:44px;flex:none}
.gs-last b{display:block;font-size:2rem;line-height:1;font-weight:800;color:var(--g800);letter-spacing:-.03em}
.gs-last span{font-size:.8125rem;color:var(--text-2);font-weight:600}
.gs-resume{background:var(--g100);border-radius:var(--r-100);padding:12px 16px;margin-bottom:20px;font-size:.9375rem;font-weight:500;color:var(--g800)}
.gs-resume .linkb{font-weight:700;text-decoration:underline}
/* quiz */
.gs-prog{display:flex;align-items:center;gap:14px;margin-bottom:28px}
.gs-prog .ct{font-weight:700;font-size:.8125rem;color:var(--g700);white-space:nowrap;min-width:9.5em}
.gs-prog .pc{font-weight:700;font-size:.8125rem;color:var(--text-2);min-width:2.6em;text-align:right}
.gs-prog .bar{flex:1;height:8px;border-radius:4px;background:var(--g100);overflow:hidden}
.gs-prog .bar i{display:block;height:100%;width:0;background:var(--leaf);border-radius:4px;transition:width .45s cubic-bezier(.2,.7,.2,1)}
.gs-q{min-height:340px}
.gs-q.in-r{opacity:0;transform:translateX(18px)}.gs-q.in-l{opacity:0;transform:translateX(-18px)}
.gs-q.go{opacity:1;transform:none;transition:opacity .28s ease,transform .32s cubic-bezier(.2,.7,.2,1)}
.gs-found{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 12px 0 10px;border-radius:var(--r-full);background:var(--g50);border:1px solid var(--g200);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--g800);margin-bottom:16px}
.gs-found i{width:10px;height:10px;border-radius:50%;background:var(--fc)}
.gs-ctx{font-size:.9375rem;line-height:1.5;color:var(--text-2);margin:0 0 10px;padding-left:12px;border-left:3px solid var(--g200)}
.gs-ctx b{display:inline-block;margin-left:6px;padding:1px 9px;border-radius:var(--r-full);background:var(--g100);color:var(--g800);font-size:.75rem}
.gs-text{font-weight:700;font-size:clamp(1.3rem,2.3vw,1.7rem);letter-spacing:-.02em;line-height:1.28;color:var(--g900);margin:0 0 24px;text-wrap:pretty}
.gs-hint{margin:-12px 0 20px;font-size:.9375rem;color:var(--text-2)}
.gs-opts{display:grid;gap:10px}
.gs-opts.yn{grid-template-columns:1fr 1fr;gap:14px}
.gs-opts.freq{grid-template-columns:repeat(5,1fr);gap:8px}
.gs-opt{display:flex;gap:14px;align-items:center;width:100%;text-align:left;font-size:1rem;font-weight:500;line-height:1.4;color:var(--g900);border:2px solid var(--g200);border-radius:var(--r-100);padding:15px 18px;background:#fff;cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
.gs-opt kbd{font:700 .72rem/1 inherit;font-family:inherit;width:24px;height:24px;flex:none;border-radius:7px;background:var(--g50);border:1px solid var(--g200);color:var(--text-2);display:flex;align-items:center;justify-content:center;transition:.16s}
.gs-opt:hover{border-color:var(--leaf);background:var(--g50)}
.gs-opt:hover kbd,.gs-opt.sel kbd{background:var(--leaf);border-color:var(--leaf);color:var(--leaf-ink)}
.gs-opt.sel{border-color:var(--leaf);background:var(--g100);transform:scale(.985)}
.gs-opts.yn .gs-opt{justify-content:center;height:84px;font-size:1.25rem;font-weight:700}
.gs-opts.freq .gs-opt{flex-direction:column;gap:10px;text-align:center;padding:16px 6px;font-size:.875rem;font-weight:600;justify-content:flex-start}
.gs-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid var(--g100);font-size:.8125rem;color:var(--text-2)}
.gs-foot .linkb{font-weight:700}
@media(hover:none){.gs-opt kbd{display:none}.gs-opts.freq .gs-opt{padding:14px 4px}}
@media(max-width:640px){.gs-facts{grid-template-columns:1fr 1fr}.gs-opts.freq{grid-template-columns:1fr}.gs-opts.freq .gs-opt{flex-direction:row;text-align:left;padding:14px 18px;font-size:1rem}.gs-q{min-height:400px}.gs-foot span{display:none}.gs-cta .btn{width:100%;white-space:normal;height:auto;min-height:52px;padding:12px 20px;line-height:1.3}.gs-prog .ct{min-width:0}}
/* result card */
.gs-card{position:relative;background:#fff;border:1px solid var(--g200);border-radius:28px;padding:clamp(22px,3.4vw,40px);text-align:center;box-shadow:var(--el-3);overflow:hidden;margin-bottom:20px}
.gs-card::after{content:"";position:absolute;inset:10px;border:1px solid var(--g100);border-radius:20px;pointer-events:none}
.gs-card-top{display:flex;align-items:center;gap:12px;text-align:left;position:relative;z-index:1}
.gs-card-top .gs-logo{width:46px;height:46px;flex:none}
.gs-card-top b{display:block;font-size:.8125rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--g900)}
.gs-card-top span{font-size:.8125rem;font-weight:600;color:var(--g600)}
.gs-card-top time{margin-left:auto;font-size:.8125rem;font-weight:600;color:var(--text-2)}
.gs-title{font-family:var(--serif,Fraunces,Georgia,serif);font-weight:400;font-size:clamp(1.6rem,3.2vw,2.35rem);letter-spacing:-.01em;color:var(--g900);margin:22px 0 10px}
.gs-ring{width:min(300px,72vw);margin:6px auto 0;position:relative}
.gs-ring svg{display:block;width:100%;height:auto}
.gs-ring .abs{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.gs-ring .big{font-size:clamp(3.6rem,8vw,5.2rem);font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--g900)}
.gs-ring .of{font-size:.72rem;font-weight:700;letter-spacing:.2em;color:var(--g600);text-transform:uppercase;margin-top:6px}
.gs-stage{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.gs-stage .pill{display:inline-flex;align-items:center;height:36px;padding:0 18px;border-radius:var(--r-full);background:var(--leaf);color:var(--leaf-ink);font-weight:700;font-size:.9375rem}
.gs-stage .delta{display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:var(--r-full);border:2px solid var(--g200);font-weight:700;font-size:.875rem;color:var(--text-2);background:#fff}
.gs-stage .delta.up{color:var(--g700);border-color:var(--leaf)}.gs-stage .delta.down{color:#8A5A12;border-color:var(--gold)}
.gs-stage-line{margin:12px auto 0;max-width:46ch;color:var(--text-3);font-size:1rem;line-height:1.5}
.gs-bars{max-width:520px;margin:26px auto 4px;text-align:left;display:grid;gap:14px;position:relative;z-index:1}
.gs-bar .t{display:flex;justify-content:space-between;align-items:baseline;font-size:.9375rem;font-weight:600;color:var(--g900);margin-bottom:6px}
.gs-bar .t span{display:inline-flex;align-items:center;gap:8px}.gs-bar .t i{width:10px;height:10px;border-radius:50%}
.gs-bar .t b{font-weight:800}
.gs-bar em{font-style:normal;font-size:.75rem;font-weight:700;margin-left:8px;padding:2px 7px;border-radius:var(--r-full);background:var(--g50);color:var(--text-2)}
.gs-bar em.up{background:var(--g100);color:var(--g700)}.gs-bar em.down{background:var(--gold-50);color:#8A5A12}
.gs-bar .b{height:10px;border-radius:5px;background:var(--g100);overflow:hidden}
.gs-bar .b u{display:block;height:100%;width:0;border-radius:5px;transition:width 1.1s .35s cubic-bezier(.2,.7,.2,1);text-decoration:none}
.gs-after{text-align:center}
.gs-after .insight{margin-top:0}
.gs-improved{background:var(--g50);border:1px solid var(--g200);border-radius:var(--r-100);padding:20px 22px;margin:24px 0 0;text-align:left}
.gs-improved h3{font-size:1.0625rem;color:var(--g900);margin-bottom:10px}
.gs-improved ul{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:8px}
.gs-improved li{font-size:.9375rem;color:var(--text-3);line-height:1.5}
.gs-improved li b{display:inline-block;min-width:8.2em;color:var(--g800)}
.gs-improved li.up b{color:var(--g600)}.gs-improved li.down b{color:#8A5A12}
.gs-improved em{font-style:normal;font-weight:700}
.gs-improved .small{color:var(--text-2);margin:0}
.gs-trend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:20px;font-size:.8125rem;color:var(--text-2);font-weight:600}
.gs-trend svg{width:220px;height:48px;overflow:visible}.gs-trend b{color:var(--g800)}
.gs-candour{background:var(--gold-50);border:1px solid var(--gold-100);border-radius:var(--r-100);padding:14px 18px;margin-top:20px;font-size:.9375rem;line-height:1.55;color:#5E4A12;text-align:left}
.gs-shrow2{margin-top:12px}.gs-shrow2 .btn{height:42px;padding:0 18px;font-size:.9375rem}
.gs-note{max-width:560px;margin:14px auto 0;color:var(--text-2);line-height:1.55}
.gs-note .linkb{text-decoration:underline;font-weight:600}
.gs-how{margin-top:0}.gs-how-sec{background:var(--g50);border-top:1px solid var(--g200);border-bottom:1px solid var(--g200)}
.faq details p,.faq details .a{color:var(--text-3)}
/* share modal */
.share-box.gs-modal{width:min(920px,100%);background:#fff!important;border:1px solid var(--g200);border-radius:24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:auto;box-shadow:0 40px 100px -30px rgba(62,123,54,.45);color:var(--g900)}
.gs-modal .x{background:#fff!important;border:2px solid var(--g200);border-radius:50%}.gs-modal .x svg{stroke:var(--g800)!important}
.gs-m-prev{background:var(--g50);display:flex;align-items:center;justify-content:center;padding:28px;min-height:420px}
.gs-m-prev img{max-width:100%;max-height:68vh;border-radius:14px;box-shadow:var(--el-3);background:#fff}
.gs-m-prev[data-fmt=story] img{max-height:72vh}
.gs-m-side{padding:clamp(24px,3vw,40px);display:flex;flex-direction:column;gap:16px;justify-content:center}
.gs-m-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:var(--g700)}
.gs-m-brand .gs-logo{width:34px;height:34px}
.gs-m-side h2{font-family:var(--serif,Fraunces,Georgia,serif);font-weight:400;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.15;color:var(--g900)}
.gs-m-side p{color:var(--text-3);line-height:1.6;font-size:.9375rem;margin:0}
.gs-m-side .hint{font-size:.8125rem;color:var(--text-2)}
.gs-tabs{display:flex;gap:4px;background:var(--g100);padding:4px;border-radius:var(--r-full);align-self:flex-start}
.gs-tabs button{border:0;background:none;padding:8px 14px;border-radius:var(--r-full);font-size:.8125rem;font-weight:700;color:var(--text-3);cursor:pointer}
.gs-tabs button[aria-selected=true]{background:#fff;color:var(--g900);box-shadow:var(--el-1)}
.gs-m-act{display:flex;gap:10px;flex-wrap:wrap}.gs-m-act .btn{flex:1 1 auto}
.gs-m-act .btn svg{width:18px;height:18px}
.gs-m-links{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.share-box.gs-modal{grid-template-columns:1fr}.gs-m-prev{min-height:0;padding:20px}.gs-m-prev img{max-height:46vh}}
/* shared-score page keeps the old ring: recolour it to match */
#sharedScore .ring circle:first-child{stroke:var(--g100)}#sharedScore .ring circle+circle{stroke:var(--leaf)}
/* v4.8 fixes after visual QA */
.ticker .ttag{background:var(--leaf)!important;color:var(--leaf-ink)!important}.ticker .ttag i{background:var(--leaf-ink)!important}
.hero-home .hero-copy .hq p{color:var(--g900)!important}
.hero-home .hero-copy h1.hero-line{color:var(--text-3)}
/* foundations: clean tint cards, one colour cue each, no washed-out photographs */
.found a img,.found a picture{display:none!important}
.found a::before,.found a::after{display:none!important}
.found a{background:var(--g50)!important;border:1px solid var(--g200)!important;border-top:5px solid var(--fc,#8CBE44)!important;min-height:200px}
.found .f1{--fc:#3E7B36}.found .f2{--fc:#8CBE44}.found .f3{--fc:#F0BE43}.found .f4{--fc:#4E8C31}.found .f5{--fc:#A9C93C}
.found a:hover{background:#fff!important;transform:translateY(-3px)}
/* score page: compact, centred hero so the first question is on screen straight away */
main:has(#calcApp) .page-hero{padding-bottom:0!important;text-align:center}
main:has(#calcApp) .page-hero .bg,main:has(#calcApp) .page-hero .share{display:none!important}
main:has(#calcApp) .page-hero .wrap>*{max-width:760px!important;margin-left:auto;margin-right:auto}
main:has(#calcApp) .page-hero h1{font-size:clamp(2.1rem,4.4vw,3.4rem)}
main:has(#calcApp) .page-hero .lead-b{font-size:1.0625rem}
/* focus halo follows the palette: green ring, leaf halo */
:focus-visible{outline-color:var(--g700)!important;box-shadow:0 0 0 5px rgba(140,190,68,.38)!important}
.menu-search input:focus,.menu-search input:focus-visible{box-shadow:none!important;outline:0!important}
.menu-search:focus-within{border-color:var(--leaf)}
/* contrast audit (v4.8): cards that carry white type over a photograph keep a mid-green floor */
.photo-card,.story-card,.video-card,.analysis .story-card{background-color:var(--g700)!important}
.author-card .links a{color:var(--g700)!important;text-decoration:underline;text-underline-offset:3px}
.pulse-note em b,.pulse-note em b.lit{color:var(--g800)!important}
/* page hero: the share row belongs under the copy, never on top of the photograph */
@media(min-width:961px){.page-hero .wrap{display:flex;flex-direction:column;align-items:flex-start!important;justify-content:center}
  .page-hero .share{position:static!important;margin:26px 0 0!important;justify-content:flex-start!important;align-self:flex-start}}
.page-hero .share{flex-direction:row;align-items:center;gap:12px}
.page-hero .share a{background:#fff;border:2px solid var(--g200)!important;border-radius:50%}
.page-hero .share a svg{fill:var(--g700)!important;width:16px;height:16px}
.page-hero .share a:hover{border-color:var(--leaf)!important}

/* =========================================================
   v4.9 — founder journey, press kit, events, native-language
   introductions, language offer, and the fixes from review
   ========================================================= */
/* 7. buttons never outgrow their box: long labels wrap instead of pushing through the padding */
.btn{max-width:100%}
.gp-aside .btn,.card .btn{white-space:normal;height:auto;min-height:48px;padding:12px 20px;line-height:1.25;text-align:center;justify-content:center}
.gp-aside .btn{width:100%;font-size:.9375rem}
.gp-aside .btn svg{flex:none}
/* founder */
.glance{list-style:none;margin:clamp(28px,4vw,48px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.glance li{display:flex;gap:14px;align-items:flex-start;background:var(--g50);border:1px solid var(--g200);border-radius:var(--r-100);padding:18px}
.glance svg{width:36px;height:36px;flex:none;padding:8px;border-radius:10px;background:#fff;border:1px solid var(--g200);stroke:var(--g700);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.glance b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--g700);margin-bottom:4px}
.glance span{font-weight:600;color:var(--g900);line-height:1.4;font-size:.9375rem}
.journey{list-style:none;margin:8px 0 0;padding:0;position:relative;max-width:920px}
.journey::before{content:"";position:absolute;left:27px;top:12px;bottom:12px;width:2px;background:var(--g200)}
[dir=rtl] .journey::before{left:auto;right:27px}
.jr{position:relative;display:grid;grid-template-columns:56px 1fr;gap:clamp(16px,2.4vw,28px);padding:0 0 clamp(20px,3vw,32px)}
.jr:last-child{padding-bottom:0}
.jr .n{width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid var(--leaf);color:var(--g800);font-weight:800;font-size:1rem;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}
.jr:last-child .n{background:var(--leaf);color:var(--leaf-ink)}
.jr .c{background:#fff;border:1px solid var(--g200);border-radius:var(--r-100);padding:clamp(18px,2.4vw,26px);box-shadow:var(--el-1);transition:transform .25s,box-shadow .25s}
.jr .c:hover{transform:translateY(-2px);box-shadow:var(--el-2)}
.jr .k{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--g600)}
.jr h3{font-size:clamp(1.15rem,1.8vw,1.4rem);color:var(--g900);margin:6px 0 8px;letter-spacing:-.01em}
.jr p{color:var(--text-3);line-height:1.65;margin:0}
.founder-contact{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:center;margin-top:clamp(28px,4vw,48px);padding:20px 24px;border-radius:var(--r-100);background:var(--g50);border:1px solid var(--g200)}
.founder-contact span{font-weight:700;color:var(--g900)}.founder-contact a{color:var(--g700);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.founder-split p{color:var(--text-3);line-height:1.65}
@media(max-width:860px){.glance{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.glance{grid-template-columns:1fr}.jr{grid-template-columns:44px 1fr}.jr .n{width:44px;height:44px;font-size:.875rem}.journey::before{left:21px}}
/* press kit */
.gp ul.quotes{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:10px}
.gp ul.quotes li{font-family:var(--serif,Fraunces,Georgia,serif);font-size:1.2rem;line-height:1.45;color:var(--g800);padding:14px 18px;border-left:3px solid var(--leaf);background:var(--g50);border-radius:0 var(--r-100) var(--r-100) 0}
.gp code{background:var(--g100);padding:2px 6px;border-radius:6px;font-size:.9em;color:var(--g900)}
.gp .linklist .muted{font-weight:500;color:var(--text-2);font-size:.875rem}
.gp .share-link{margin:8px 0 0}
.swatches{display:flex;gap:6px;margin:16px 0 10px}.swatches i{flex:1;height:34px;border-radius:8px;border:1px solid rgba(0,0,0,.06)}
/* events */
.ev-list{display:grid;gap:12px}
.ev{display:grid;grid-template-columns:110px 1fr auto;gap:clamp(16px,2.5vw,32px);align-items:center;background:#fff;border:1px solid var(--g200);border-radius:var(--r-100);padding:20px 24px;color:inherit;transition:.2s}
.ev:hover{border-color:var(--leaf);transform:translateY(-2px);box-shadow:var(--el-2)}
.ev .when{text-align:center;color:var(--g700);font-weight:700;font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase}.ev .when b{display:block;font-size:2rem;line-height:1;color:var(--g900);letter-spacing:-.03em}
.ev .k{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--g600)}.ev h3{font-size:1.15rem;color:var(--g900);margin:4px 0}.ev p{margin:0;color:var(--text-3);font-size:.9375rem}
.ev .go{font-weight:700;color:var(--g700);white-space:nowrap;font-size:.875rem}
.ev-empty{background:var(--g50);border:1px dashed var(--g300,#A9C93C);border-radius:var(--r-100);padding:28px;text-align:center;color:var(--text-3)}.ev-empty a{color:var(--g700);font-weight:700;text-decoration:underline}
@media(max-width:640px){.ev{grid-template-columns:1fr;text-align:left}.ev .when{text-align:left}}
/* talks: full transcript rows */
.tx-h{margin-top:20px}.tx{line-height:1.7;color:var(--text-3)}.ch-t{font:700 .75rem/1 inherit;color:var(--g700);background:var(--g100);border:0;border-radius:6px;padding:4px 7px;margin-inline-end:6px;cursor:pointer}
/* language offer */
.lang-hint{position:fixed;left:50%;bottom:20px;transform:translate(-50%,24px);opacity:0;transition:.35s;z-index:180;display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;background:#fff;border:2px solid var(--leaf);border-radius:var(--r-150,20px);padding:12px 16px;box-shadow:var(--el-3);max-width:min(680px,94vw);font-weight:600;color:var(--g900)}
.lang-hint.on{opacity:1;transform:translate(-50%,0)}
.lang-hint .x{border:0;background:none;color:var(--text-2);font-weight:600;font-size:.8125rem;cursor:pointer;padding:8px}
.lang-hint .btn{height:38px;min-height:38px;padding:0 16px}
.cookie.on~.lang-hint{bottom:auto;top:calc(var(--hdr,72px) + 12px)}
.lang-fab .opts{flex-wrap:wrap;max-width:min(560px,86vw)}
.site-footer .langs a{text-decoration:underline;text-underline-offset:3px}
/* native-language introductions */
body.ed{background:#fff;color:var(--text-3)}
.ed-hdr{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;padding:12px clamp(16px,4vw,40px);background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--g200)}
.ed-brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--g900);letter-spacing:.02em;margin-inline-end:auto}.ed-brand svg{width:38px;height:38px}
.ed-lang{position:relative}.ed-lang summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:700;color:var(--g800);border:2px solid var(--g200);border-radius:var(--r-full);padding:8px 14px;background:#fff}
.ed-lang summary::-webkit-details-marker{display:none}.ed-lang svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.ed-lang div{position:absolute;inset-inline-end:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--g200);border-radius:var(--r-100);box-shadow:var(--el-3);padding:8px;display:grid;min-width:180px}
.ed-lang div a{padding:9px 12px;border-radius:8px;font-weight:600;color:var(--g900)}.ed-lang div a:hover,.ed-lang div a[aria-current]{background:var(--g100)}
.ed-hero{padding:clamp(48px,8vw,112px) 0 clamp(40px,6vw,80px)}
.ed-hero h1{font-size:clamp(1.9rem,4.2vw,3.4rem);line-height:1.18;letter-spacing:-.02em;color:var(--g900);max-width:24ch;text-wrap:balance}
.ed-hero .lead{margin-top:20px;max-width:60ch;font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.65;color:var(--text-3)}
.ed-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.ed-narrow{max-width:820px}.ed .h2{margin-bottom:24px;color:var(--g900)}
.ed-found{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.ed-found li{background:var(--g50);border:1px solid var(--g200);border-top:5px solid var(--fc);border-radius:var(--r-100);padding:18px;min-height:120px;display:flex;flex-direction:column;justify-content:space-between}
.ed-found b{font-size:.75rem;color:var(--text-2)}.ed-found span{font-weight:700;font-size:1.1rem;color:var(--g900);line-height:1.3}
.ed-p{margin-top:24px;max-width:64ch}
.ed-progs .card h3{color:var(--g900);margin-bottom:8px}.ed-progs .card p{line-height:1.65}
.ed-quote{text-align:center}.ed-quote blockquote{font-family:var(--serif,Fraunces,Georgia,serif);font-size:clamp(1.4rem,3vw,2.2rem);line-height:1.35;color:var(--g800);margin:0 0 12px;border:0;padding:0}
.ed-quote p{font-weight:700;color:var(--text-2);margin-bottom:28px}
.ed-foot{background:var(--g50);border-top:1px solid var(--g200);padding:40px 0;text-align:center;color:var(--text-3)}
.ed-foot nav{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin:16px 0}.ed-foot a{font-weight:600;color:var(--g700);text-decoration:underline;text-underline-offset:3px}
.ed .btn{white-space:normal;height:auto;min-height:48px;padding:12px 22px;line-height:1.3;text-align:center}
.ed-hdr .btn{min-height:42px;padding:9px 16px;font-size:.875rem}
@media(max-width:860px){.ed-found{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ed-hdr .btn{display:none}.ed-brand span{font-size:.875rem}}
/* right-to-left: the chain's number sits at the start of the line */
[dir=rtl] .chain li{padding:16px 56px 16px 18px}[dir=rtl] .chain li::before{left:auto;right:16px}
[dir=rtl] .ed-found li,[dir=rtl] .ed-progs .card{text-align:right}
/* contrast: small green labels use the 5.3:1 green, not the 4.1:1 one */
.hero-eyebrow,.ev .k,.jr .k,.glance b{color:var(--g700)}
