/* ==========================================================
   Ventree A+ — interaction layer
   ========================================================== */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body.is-loading{overflow:hidden}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:500;background:radial-gradient(70% 60% at 50% 45%,#0b1a0f,#030503);display:grid;place-items:center}
.loader__in{display:flex;flex-direction:column;align-items:center;gap:18px}
.loader__tree{width:110px;filter:drop-shadow(0 0 30px rgba(104,214,92,.5));animation:ltree 2.4s ease-in-out infinite}
@keyframes ltree{50%{transform:scale(1.06);filter:drop-shadow(0 0 50px rgba(104,214,92,.8))}}
.loader__bar{width:180px;height:2px;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden}
.loader__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--blue));transform-origin:0;transform:scaleX(0)}
.loader__n{font:600 44px/1 var(--f-d);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.loader__t{font:600 11px/1 var(--f-d);letter-spacing:.34em;text-transform:uppercase;color:var(--muted)}

/* ---------- cursor ---------- */
.cursor{display:none}
.has-cursor .cursor{display:block;position:fixed;inset:0;z-index:400;pointer-events:none;opacity:0;transition:opacity .3s}
.has-cursor .cursor.on{opacity:1}
.cursor__dot,.cursor__ring{position:fixed;left:0;top:0;border-radius:50%}
.cursor__dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--green)}
.cursor__ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1.5px solid rgba(104,214,92,.6);display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .3s,border-color .3s}
.cursor__ring em{font:700 11px/1 var(--f-d);letter-spacing:.12em;text-transform:uppercase;font-style:normal;color:#032;opacity:0;transition:opacity .2s}
.cursor.hover .cursor__ring{width:58px;height:58px;margin:-29px 0 0 -29px;background:rgba(104,214,92,.12)}
.cursor.label .cursor__ring{width:78px;height:78px;margin:-39px 0 0 -39px;background:var(--green);border-color:var(--green)}
.cursor.label .cursor__ring em{opacity:1}
.cursor.label .cursor__dot{opacity:0}
.cursor.down .cursor__ring{transform-origin:center;scale:.85}
@media (pointer:fine){.has-cursor,.has-cursor a,.has-cursor button,.has-cursor [role=button]{cursor:none}.has-cursor input[type=range]{cursor:none}}

/* ---------- grain ---------- */
.grain{position:fixed;inset:-50%;z-index:300;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}}

/* ---------- nav ---------- */
.nav{transition:background .4s,border-color .4s,transform .5s var(--ease)}
.nav.is-hidden{transform:translateY(-100%)}
.nav__present{margin-left:8px}
.nav__present svg{width:16px;height:16px}
@media (max-width:1060px){.nav__present{display:none}}
.btn{will-change:transform}

/* ---------- split words ---------- */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .wi{display:inline-block;transform-origin:0 100%}

/* ---------- hero layers ---------- */
.hero__earth img{position:absolute;inset:0}
.hero__burn{opacity:calc(1 - var(--cool,0))}
.hero__cool{opacity:var(--cool,0)}
.hero__earth img{filter:none!important}
.hero__glow{background:radial-gradient(55% 50% at 78% 50%,rgba(255,96,24,calc(.26 - var(--cool,0)*.26)),transparent 70%),radial-gradient(55% 50% at 78% 50%,rgba(60,220,180,calc(var(--cool,0)*.28)),transparent 70%)}
.hero__earth-cool{box-shadow:0 0 140px 30px rgba(60,220,170,calc(var(--cool,0)*.35))}
.thermo{position:absolute;left:var(--gut);bottom:34px;display:flex;align-items:center;gap:12px;font:600 11px/1 var(--f-d);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.thermo__bar{position:relative;width:140px;height:4px;border-radius:4px;background:linear-gradient(90deg,#ff5a1f,#f0a23c 40%,#3cb7f2 70%,#68d65c)}
.thermo__bar i{position:absolute;top:50%;left:calc(var(--cool,0)*100%);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.15),0 0 20px rgba(255,255,255,.6)}
.thermo__l{color:#ff8a4c;opacity:calc(1 - var(--cool,0)*.6)}.thermo__r{color:var(--green);opacity:calc(.4 + var(--cool,0)*.6)}
@media (max-width:760px){.thermo{display:none}}

/* ---------- problem/solution pinned ---------- */
.ps__stage{position:relative}
.ps__heat,.ps__cool,.ps__step{display:none}
.ps.is-pinned{padding:0}
.ps.is-pinned .ps__stage{height:100vh;display:flex;align-items:center;overflow:hidden}
.ps.is-pinned .ps__heat,.ps.is-pinned .ps__cool{display:block;position:absolute;inset:0;pointer-events:none}
.ps__heat{background:radial-gradient(60% 70% at 30% 50%,rgba(208,21,28,.35),transparent 70%);opacity:calc(1 - var(--p,0))}
.ps__cool{background:radial-gradient(60% 70% at 70% 50%,rgba(63,174,59,.32),transparent 70%);opacity:var(--p,0)}
.ps.is-pinned .ps__step{display:block;position:absolute;right:var(--gut);bottom:40px;font:600 13px/1 var(--f-d);letter-spacing:.2em;color:var(--muted)}
.ps.is-pinned .ps__step span{color:var(--ink)}
.ps.is-pinned .ps__grid{width:100%}
.ps.is-pinned .ps__card--problem{opacity:1!important;transform:translateX(calc((1 - clamp(0, var(--p,0)*1.6, 1)) * 52%)) scale(calc(1.06 - clamp(0, var(--p,0)*1.6, 1)*.06))!important;transition:none}
.ps.is-pinned .ps__card--solution{opacity:clamp(0, calc(var(--p,0)*2 - .4), 1)!important;transform:translateX(calc((1 - clamp(0, var(--p,0)*1.6, 1)) * 40%)) scale(calc(.94 + clamp(0, var(--p,0)*1.6, 1)*.06))!important;transition:none}
.ps.is-pinned .ps__arrow{opacity:clamp(0, calc(var(--p,0)*2 - .5), 1)!important;transform:scale(calc(.5 + clamp(0,var(--p,0),1)*.5))!important;transition:none}
.ps.is-pinned .chips li{transition:transform .5s var(--ease)}

/* ---------- spotlight on cards ---------- */
.pillar,.kpi,.product{--mx:50%;--my:0%}
.pillar>header::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(400px circle at var(--mx) var(--my),rgba(255,255,255,.08),transparent 40%);z-index:0}
.pillar{transition:transform .25s ease-out,border-color .4s}
.kpi{position:relative;overflow:hidden}
.kpi::after{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx) var(--my),rgba(104,214,92,.16),transparent 60%);opacity:0;transition:opacity .3s}
.kpi:hover::after{opacity:1}

/* ---------- SDG wheel ---------- */
.sdg__wheel img{display:none}
.wheel{position:relative;width:82%;aspect-ratio:1}
.wheel img{display:block!important;width:100%!important;height:100%;transform:none!important;filter:drop-shadow(0 30px 60px rgba(0,0,0,.6))!important}
.wheel__hit{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.wheel__hit path{fill:transparent;cursor:pointer;transition:fill .3s,transform .4s var(--ease);transform-origin:100px 100px;stroke:transparent}
.wheel__hit.dim path{fill:rgba(4,7,5,.62)}
.wheel__hit.dim path.on{fill:transparent;stroke:#fff;stroke-width:1.2;transform:scale(1.045)}
.wheel__c{position:absolute;inset:27%;border-radius:50%;display:grid;place-items:center;align-content:center;text-align:center;padding:6%;background:#000;opacity:0;transform:scale(.9);transition:opacity .35s,transform .45s var(--ease),box-shadow .4s;pointer-events:none}
.wheel.active .wheel__c{opacity:1;transform:none;box-shadow:inset 0 0 0 3px var(--gc),0 0 60px -10px var(--gc)}
.wheel__c b{font:800 clamp(40px,5vw,72px)/1 var(--f-d);color:var(--gc,#fff)}
.wheel__c span{margin-top:6px;font:600 clamp(11px,1.1vw,15px)/1.2 var(--f-d);text-transform:uppercase;letter-spacing:.04em}
.wheel__hint{position:absolute;bottom:-6px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.sdg__wheel::before,.sdg__wheel::after{pointer-events:none}

/* ---------- nutrition ---------- */
.nutri{padding:30px 26px}
.nchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.nchips button{border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.2);border-radius:999px;padding:8px 12px;font:600 12.5px/1 var(--f-d);transition:.25s}
.nchips button[aria-selected=true]{background:#fff;color:#0a3a14;border-color:#fff}
.ncompare{border-radius:18px;background:rgba(0,0,0,.25);padding:18px;margin-bottom:20px;min-height:150px}
.ncompare__big{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ncompare__big b{font:800 56px/1 var(--f-d);letter-spacing:-.03em}
.ncompare__big span{font:500 17px/1.3 var(--f-d)}
.ncompare__big em{font-style:italic;font-weight:700}
.ncompare__icons{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.ncompare__icons span{width:34px;height:38px;display:grid;place-items:center;opacity:0;transform:translateY(12px) scale(.6)}
.ncompare__icons svg{width:100%;height:100%;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}
.ncompare__icons.go span{animation:pop2 .55s var(--ease) forwards;animation-delay:calc(var(--k)*.08s)}
@keyframes pop2{to{opacity:1;transform:none}}
.nutri__list{display:grid;gap:12px}
.nutri__list li{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto 6px;gap:5px 10px;align-items:center}
.nutri__list .nutri__x{font-size:20px}
.nutri__list .nutri__l{font-size:14px}
.nutri__list i{display:block;height:5px;border-radius:6px;background:rgba(0,0,0,.3);position:relative;overflow:hidden}
.nutri__list i::after{content:"";position:absolute;inset:0;width:calc(var(--v)/7*100%);border-radius:6px;background:linear-gradient(90deg,#b8ff9e,#fff);transform:scaleX(0);transform-origin:0;transition:transform 1.4s var(--ease)}
.nutri.in .nutri__list i::after{transform:scaleX(1)}

/* ---------- farming model ---------- */
.eco__main{position:relative}
.eco__tip{margin-top:20px;text-align:center;font-size:15px;color:var(--muted);transition:color .3s;min-height:1.6em}
.eco.mod-on .eco__tip{color:var(--ink)}
.eco__tip b{color:var(--green)}
.flowdot{fill:#c6ffb8;filter:drop-shadow(0 0 4px #68d65c)}
.eco.mod-on .eco__links path{opacity:1;stroke-width:2.2}
.eco.mod-on .eco__farms li{background:rgba(104,214,92,.14)}


/* ---------- plots ---------- */
.plots{margin-top:18px;padding:14px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--line)}
.plots__grid{display:grid;grid-template-columns:repeat(20,1fr);gap:3px}
.plots__grid i{aspect-ratio:1;border-radius:2px;background:rgba(255,255,255,.07);transition:background .25s,box-shadow .25s}
.plots__grid i.on{background:var(--green);box-shadow:0 0 8px rgba(104,214,92,.6)}
.plots__l{margin-top:10px;font-size:12.5px;color:var(--muted)}

/* ---------- market ---------- */
.mtotal{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:-10px 0 30px}
.mtotal span{font:600 12px/1 var(--f-d);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.mtotal b{font:800 clamp(36px,4.4vw,58px)/1 var(--f-d);letter-spacing:-.03em;color:var(--green);font-variant-numeric:tabular-nums}
.mtotal small{color:var(--muted);font-size:14px}
.market__toggle{margin-right:20px}
.bubble{transition:width 1.1s var(--ease),filter .3s,opacity .3s,translate .6s var(--ease)}
.bubble span{display:flex;flex-direction:column;align-items:center;gap:4px}
.bubble small{font:700 clamp(11px,1.2vw,14px)/1 var(--f-d);color:#eaffdf;opacity:.85}
.mrow .sub{align-items:center}
.mrow .grow{font:700 12px/1 var(--f-d);padding:4px 7px;border-radius:6px;background:rgba(104,214,92,.12);color:var(--green)}

/* ---------- lightbox ---------- */
[data-lightbox]{cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:260;background:rgba(2,4,3,.92);backdrop-filter:blur(10px);display:grid;place-items:center;padding:60px var(--gut);opacity:0;transition:opacity .3s}
.lightbox[hidden]{display:none}
.lightbox.on{opacity:1}
.lightbox img{max-width:100%;max-height:78vh;border-radius:16px;box-shadow:0 40px 100px rgba(0,0,0,.8);transform:scale(.94);transition:transform .45s var(--ease)}
.lightbox.on img{transform:none}
.lightbox p{margin-top:16px;text-align:center;color:var(--muted);font-size:14px}
.lightbox__x,.sheet__x{position:absolute;right:20px;top:20px;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06)}
.lightbox__x svg,.sheet__x svg{width:20px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round}

/* ---------- invest ---------- */
.tier{border:0;font:inherit;color:#fff;cursor:pointer;outline-offset:4px}
.tier.on{filter:brightness(1.18) saturate(1.1);box-shadow:0 0 0 2px rgba(255,255,255,.6) inset}
.alloc__tiers .tier:hover b{transform:scale(1.06)}
.tier b{transition:transform .4s var(--ease)}
.alloc{grid-template-rows:auto auto}
.alloc__read{grid-column:2;display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:22px;padding:16px 20px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.alloc__read span{color:var(--muted);font-size:14px}
.alloc__read b{font:800 clamp(20px,2.4vw,28px)/1 var(--f-d);color:var(--green);font-variant-numeric:tabular-nums}
@media (max-width:900px){.alloc__read{grid-column:1}}

/* ---------- people as buttons ---------- */
.person{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;--mx:50%;--my:50%;overflow:hidden}
.person::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(300px circle at var(--mx) var(--my),rgba(104,214,92,.12),transparent 60%);opacity:0;transition:opacity .3s}
.person:hover::after{opacity:1}
.person__img{display:block}
.person__txt{display:flex;flex-direction:column}
.person__role{display:block}
.person__h{display:block;font:700 19px/1.1 var(--f-d);text-transform:uppercase;letter-spacing:.01em;margin-bottom:10px}
.person__b{font-size:14px;line-height:1.55;color:var(--muted);font-style:italic;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.person__more{margin-top:12px;font:600 13px/1 var(--f-d);color:var(--green);display:inline-flex;gap:6px;align-items:center}
.person__more i{font-style:normal;transition:transform .3s var(--ease)}
.person:hover .person__more i{transform:translateX(5px)}
.people--adv .person__h{font-size:16px;margin-bottom:6px}
.people--adv .person__b{-webkit-line-clamp:2}
.people--adv .person__more{margin-top:8px}

/* ---------- sheet ---------- */
.sheet{position:fixed;inset:0;z-index:250;display:grid;place-items:center;padding:var(--gut)}
.sheet[hidden]{display:none}
.sheet__bg{position:absolute;inset:0;background:rgba(2,4,3,.8);backdrop-filter:blur(10px);opacity:0;transition:opacity .4s}
.sheet.on .sheet__bg{opacity:1}
.sheet__box{position:relative;width:min(860px,100%);display:grid;grid-template-columns:300px 1fr;gap:34px;align-items:center;padding:28px;border-radius:28px;background:linear-gradient(160deg,#0f2416,#07100a);border:1px solid rgba(104,214,92,.3);box-shadow:0 40px 100px rgba(0,0,0,.7);transform:translateY(40px) scale(.97);opacity:0;transition:transform .5s var(--ease),opacity .4s}
.sheet.on .sheet__box{transform:none;opacity:1}
.sheet__img{width:100%;border-radius:20px;filter:grayscale(.2)}
.sheet__r{font:600 13px/1 var(--f-d);letter-spacing:.14em;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.sheet__n{font-size:clamp(30px,4vw,46px);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;margin-bottom:18px}
.sheet__b{font-size:18px;line-height:1.6;color:rgba(255,255,255,.85)}
.sheet__nav{display:flex;align-items:center;gap:14px;margin-top:28px;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.sheet__nav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.04);font-size:18px;transition:.25s}
.sheet__nav button:hover{border-color:var(--green);color:var(--green)}
.sheet__x{right:14px;top:14px}
@media (max-width:700px){.sheet{align-items:end;padding:0}.sheet__box{grid-template-columns:1fr;gap:18px;border-radius:26px 26px 0 0;padding:22px 22px calc(26px + env(safe-area-inset-bottom));max-height:92svh;overflow:auto;transform:translateY(100%)}.sheet__img{width:120px}.sheet__b{font-size:16px}}

/* ---------- roadmap active ---------- */
.timeline li{transition:opacity .4s}
.timeline li p{transition:color .3s}
.timeline li.cur time{text-shadow:0 0 24px rgba(104,214,92,.6)}
.timeline li.cur::before{transform:scale(1.25);transition:transform .3s}
.timeline li:not(.past):not(.cur){opacity:.55}

/* ---------- presentation ---------- */
.present-hud{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:150;display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:rgba(8,14,10,.85);backdrop-filter:blur(14px);border:1px solid var(--line);font:600 14px/1 var(--f-d);font-variant-numeric:tabular-nums}
.present-hud[hidden]{display:none}
.present-hud i{color:var(--dim);font-style:normal}
.present-hud b{margin-left:10px;color:var(--green);font-weight:600}
.present-hud small{margin-left:14px;color:var(--dim);font-weight:500;font-size:12px}
.presenting .dots{right:24px}
.presenting .nav__present{background:var(--green);color:#032;border-color:var(--green)}

/* ---------- toast & share ---------- */
.toast{position:fixed;left:50%;top:86px;z-index:420;transform:translate(-50%,-20px);opacity:0;pointer-events:none;padding:12px 18px;border-radius:12px;background:var(--green);color:#032;font:600 14px/1.2 var(--f-d);box-shadow:0 20px 40px -10px rgba(0,0,0,.6);transition:.35s var(--ease)}
.toast.on{opacity:1;transform:translate(-50%,0)}
.share{margin-top:24px}
.share svg{width:16px;height:16px}

/* ---------- misc polish ---------- */
.hero__title .line{will-change:transform}
.mosaic figure{position:relative}
.mosaic figure::after{content:"";position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.45) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center/16px no-repeat;backdrop-filter:blur(6px);opacity:0;transform:scale(.8);transition:.3s var(--ease)}
.mosaic figure:hover::after,.mosaic figure:focus-visible::after{opacity:1;transform:none}
@media (hover:none){.mosaic figure::after{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.grain{display:none}.loader{display:none}}
.people--adv .person{display:grid}
@media (max-width:620px){.people--team .person{display:block}}

/* staged entrance for hub */
.eco .mod{opacity:0;transform:scale(.88);transition:opacity .6s var(--ease),transform .7s cubic-bezier(.3,1.6,.5,1),border-color .3s,color .3s,background .3s;transition-delay:calc(var(--i,0)*70ms)}
.eco.in .mod{opacity:1;transform:none}
.eco .eco__farms li{opacity:0;translate:30px 0;transition:opacity .6s var(--ease),translate .8s var(--ease),background .4s,box-shadow .4s;transition-delay:calc(.3s + var(--i,0)*90ms)}
.eco.in .eco__farms li{opacity:1;translate:0 0}
.eco.in .mod:hover,.eco.in .mod.is-on{transform:translateY(-2px);transition-delay:0s}

.hero__inner{opacity:calc(1 - var(--cool,0)*1.15);transform:translateY(calc(var(--cool,0)*-60px))}

/* ================= v1.1 polish ================= */
/* grain: static & subtle */
.grain{animation:none;opacity:.035;inset:0}
/* nav: everything vertically centred, no transforms on buttons */
.nav{align-items:center}
.nav .btn{transform:none!important}
.nav__present,.nav__cta{flex:none}
/* in-progress KPI: calm, no pulse */
.kpi--status b{font-style:normal;color:var(--green)}
/* market bubbles: bigger, higher contrast, clear 2020 vs 2030 state */
.bubbles{max-width:700px}
.bubble{background:radial-gradient(circle at 32% 28%,#a6f59a 0%,#4cc843 38%,#1f8a2c 72%,#0d4d18 100%);border:2px solid rgba(214,255,206,.55);box-shadow:inset 0 -24px 40px rgba(0,0,0,.35),inset 0 10px 24px rgba(255,255,255,.18),0 24px 60px -18px rgba(63,174,59,.75);transition:width 1.2s cubic-bezier(.2,.9,.25,1),background .8s,border-color .8s,box-shadow .8s,filter .3s,opacity .3s,translate .6s var(--ease)}
.bubbles[data-y="2020"] .bubble{background:radial-gradient(circle at 32% 28%,#6f8a70 0%,#3f5a42 45%,#223324 80%,#152017 100%);border-color:rgba(255,255,255,.28);box-shadow:inset 0 -20px 36px rgba(0,0,0,.4),0 18px 40px -20px rgba(0,0,0,.6)}
.bubble span{font:700 clamp(12px,1.35vw,16px)/1.15 var(--f-d);color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.55);padding:8%}
.bubble small{font:800 clamp(13px,1.6vw,21px)/1 var(--f-d);color:#fff;opacity:1;letter-spacing:-.01em}
.bubble.dim{opacity:.25}
.bubble.hi{filter:brightness(1.15);z-index:2}
.market__toggle{padding:7px}
.market__toggle button{padding:16px 28px;font-size:16px}
.market__thumb{top:7px;bottom:7px;left:7px;width:calc(50% - 7px);box-shadow:0 10px 30px -10px rgba(104,214,92,.8)}
.mtotal b{transition:color .6s}
.market__grid{align-items:start}
@media (max-width:900px){.bubbles{max-width:520px}.bubble small{font-size:12px}.bubble span{font-size:11px}}
/* presentation HUD */
.present-hud{gap:10px;padding:8px 8px 8px 18px}
.present-hud b{white-space:nowrap;max-width:40vw;overflow:hidden;text-overflow:ellipsis}
.present-hud__x{margin-left:6px;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.06);font:600 13px/1 var(--f-d)}
.present-hud__x:hover{border-color:var(--green);color:var(--green)}
.presenting .nav{transform:none!important}
/* pillar cards: no 3D tilt, gentle lift */
.pillar{transition:transform .5s var(--ease),border-color .4s}
.pillar:hover{transform:translateY(-4px)}

html,html:focus-within{scroll-behavior:auto!important}
/* hard stop on horizontal overflow (mobile layout viewport) */
html,body{overflow-x:clip}
main,.foot{overflow-x:clip;max-width:100%}
.sheet__box>div{min-width:0}
.hero .eyebrow{text-shadow:0 2px 12px rgba(0,0,0,.9)}
/* contact facts (replaces film) */
.cfacts{display:grid;gap:10px;max-width:460px}
.cfacts li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:16px 20px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.cfacts b{font:800 22px/1 var(--f-d);color:var(--green);letter-spacing:-.01em}
.cfacts span{color:var(--muted);font-size:14px;text-align:right}
/* bubbles: small ones show only the value */
.bubble em{font-style:normal}
.bubble.sm em{display:none}
.bubble.sm small{font-size:clamp(10px,1.1vw,13px)}
.bubble{transition:width 1.4s cubic-bezier(.2,.9,.25,1),background .8s,border-color .8s,box-shadow .8s,filter .3s,opacity .3s,translate .6s var(--ease)}
.cfacts b{white-space:nowrap}@media (max-width:480px){.cfacts b{font-size:18px}.cfacts span{font-size:13px}}

/* bigger tap targets for nutrient chips on phones */
@media (max-width:620px){.nchips button{padding:11px 13px;min-height:40px}}
/* scalability on tablet/phone: show the earth + Uganda grid at the top instead of empty space */
@media (max-width:900px){
  .scale{padding-top:46vh;align-items:flex-start}
  .scale__bg{bottom:auto;height:58vh}
  .scale__bg img{height:100%;object-position:74% 88%;transform:none}
  .scale__bg::after{background:linear-gradient(0deg,var(--bg) 0%,rgba(4,7,5,.2) 45%,rgba(4,7,5,.1) 80%,var(--bg) 100%)}
  .scale__years{margin-top:-60px}
}

/* ================= MIX: particle storytelling layer ================= */
#gl{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}
main,.foot{position:relative;z-index:1}
.gl-on .hero__stars,.gl-on .hero__glow,.gl-on .hero__earth,.gl-on .science__bg,.gl-on .scale__bg,.gl-on .comp__hills,.gl-on .roadmap__bg{display:none}
.gl-on body,.gl-on{background:#040705}
.gl-on .model{background:transparent}
.gl-on .hero{background:radial-gradient(60% 60% at 75% 50%,rgba(255,90,20,calc(.12 - var(--cool,0)*.12)),transparent 70%)}
.gl-on .scale__panel{background:rgba(8,14,12,.78)}
.gl-on .scale{min-height:100svh}
.gl-on .roadmap__head .h-xxl,.gl-on .comp blockquote,.gl-on .hero__title{text-shadow:0 4px 30px rgba(0,0,0,.85)}
@media (max-width:900px){.gl-on .scale{padding-top:52vh}.gl-on .scale__years{margin-top:0}}
/* no italics anywhere (the handwritten "cooling" in the hero is kept from the original deck) */
em,i:not(.pulse),.sdg__text h2 em,.person__b,.person p,.nutri__l,.ncompare__big em,.invest__amt small,.kpi--status b,.fact p,.timeline .goal p{font-style:normal!important}
.sdg__text h2 em{color:var(--blue)}
.ncompare__big em{font-weight:800;color:#d9ffcf}
