/* ===== NLS brand tokens (nls_brand_guidelines.md + v3 deck) ===== */
:root{
  --cream:#faf6ee; --cream-2:#f3ecdc; --card:#fdfbf5;
  --forest:#1f4a31; --forest-2:#1a3f2a; --forest-3:#153021; --forest-4:#0f2418;
  --green:#16a34a; --green-soft:#4cc178; --gold:#c4a369;
  --ink:#0a0a0a; --snow:#ffffff; --body:#3a3b36; --mute:#6f6e66;
  --line:#e3dbc8; --line-dark:rgba(255,255,255,0.16); --dark-mute:#b7c9bd;
  --ease:cubic-bezier(0.16,1,0.3,1); --ease-ui:cubic-bezier(0.25,1,0.5,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--cream); color:var(--body); font-family:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif; font-size:16.5px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
img{max-width:100%; height:auto; display:block;}
h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; letter-spacing:-0.02em; line-height:1.02; margin:0; text-wrap:balance; color:var(--forest);}
h1 em,h2 em,h3 em{font-style:normal; color:var(--green);}
.on-forest h2,.on-forest h3,.on-forest h4{color:var(--snow);}
.on-forest h2 em,.on-forest h3 em{color:var(--green-soft);}
p{margin:0;} a{color:inherit;}
::selection{background:var(--green); color:#fff;}
.wrap{max-width:1240px; margin-inline:auto; padding-inline:clamp(1.25rem,4.5vw,3.5rem);}
.eyebrow{font-family:'IBM Plex Mono',Menlo,monospace; font-size:0.7rem; font-weight:600; letter-spacing:0.24em; text-transform:uppercase; color:var(--gold); display:block;}
.kicker{width:40px; height:4px; background:var(--green); margin:1.1rem 0 1.7rem; clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%);}
.on-forest .kicker{background:var(--green-soft);}
.lede{font-size:clamp(1.08rem,1.6vw,1.3rem); line-height:1.6; max-width:56ch;}
.on-forest .lede,.on-forest p{color:var(--dark-mute);}
section{position:relative;}
.on-cream{background:var(--cream);} .on-cream-2{background:var(--cream-2);} .on-forest{background:var(--forest); color:var(--snow);}
.pad{padding-block:clamp(5rem,10vw,8.5rem);}
.shead{max-width:70ch; margin-bottom:clamp(2.5rem,5vw,4rem);}
.shead h2{font-size:clamp(2.4rem,5.4vw,4.4rem);}
.shead .lede{margin-top:1.4rem;}
/* diagonal section cuts: the N device at page scale */
.cut-top{clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);}
.cut-forest-in{margin-top:-5.5vw; clip-path:polygon(0 5.5vw, 100% 0, 100% 100%, 0 100%); padding-top:calc(5.5vw + clamp(5rem,10vw,8.5rem));}
.cut-forest-out{clip-path:polygon(0 0, 100% 0, 100% calc(100% - 5.5vw), 0 100%); padding-bottom:calc(5.5vw + clamp(5rem,10vw,8.5rem));}

/* buttons: magnetic + diagonal sweep */
.btn{position:relative; display:inline-flex; align-items:center; gap:0.6em; font-weight:600; font-size:0.98rem; padding:1em 1.7em; border-radius:4px; text-decoration:none; border:1px solid transparent; overflow:hidden; isolation:isolate; transition:transform 300ms var(--ease-ui), color 250ms ease, border-color 250ms ease; white-space:nowrap; will-change:transform;}
.btn::before{content:""; position:absolute; inset:0; z-index:-1; background:var(--forest); transform:translateX(-110%) skewX(-18.8deg); transition:transform 450ms var(--ease);}
.btn-green{background:var(--green); color:#fff;}
.btn-green:hover::before{transform:translateX(0) skewX(-18.8deg) scaleX(1.6);}
.btn-outline{border-color:var(--forest); color:var(--forest);}
.btn-outline::before{background:var(--forest);}
.btn-outline:hover{color:#fff;}
.btn-outline:hover::before{transform:translateX(0) skewX(-18.8deg) scaleX(1.6);}
.on-forest .btn-outline,.hero .btn-outline,.maestro .btn-outline{border-color:rgba(255,255,255,0.45); color:#fff;}
.maestro .btn-outline::before{background:#fff;} .maestro .btn-outline:hover{color:var(--forest);}
.on-forest .btn-outline::before,.hero .btn-outline::before{background:#fff;}
.on-forest .btn-outline:hover,.hero .btn-outline:hover{color:var(--forest);}
.btn .arr{transition:transform 250ms var(--ease-ui);}
.btn:hover .arr{transform:translateX(4px);}

/* ===== LOCKUP ===== */
.lockup{display:inline-flex; flex-direction:column; text-decoration:none; color:inherit;}
.lockup-row{display:flex; align-items:center; gap:0.6rem;}
.nmark{width:18px; height:30px; flex:none;}
.wordmark{font-family:'Helvetica Neue',Helvetica,Arial,'Inter',sans-serif; font-weight:700; font-size:0.86rem; letter-spacing:0.13em; color:var(--ink); white-space:nowrap;}
.lockup-tag{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-style:italic; font-weight:500; font-size:0.78rem; color:var(--green); margin-top:0.25rem; padding-left:calc(18px + 0.6rem);}
.lockup.light .wordmark{color:#fff;} .lockup.light .lockup-tag{color:var(--green-soft);}

/* ===== INTRO ===== */
#intro{position:fixed; inset:0; z-index:1000; background:var(--cream); display:flex; align-items:center; justify-content:center; clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}
#intro.out{transition:clip-path 900ms var(--ease); clip-path:polygon(0 0,0 0,0 100%,0 100%);}
#intro .imark{width:min(26vw,160px); height:auto; overflow:visible;}
#intro .imark rect{transform-origin:50% 100%; transform:scaleY(0);}
#intro .imark polygon{clip-path:polygon(0 0,0 0,0 100%,0 100%);}
#intro.go .imark rect{animation:rise 600ms var(--ease) forwards;}
#intro.go .imark rect:nth-child(2){animation-delay:120ms;}
#intro.go .imark polygon{animation:sweep 520ms var(--ease) 380ms forwards;}
#intro .iword{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-weight:700; letter-spacing:0.22em; font-size:clamp(0.8rem,1.6vw,1.1rem); color:var(--ink); margin-top:1.4rem; opacity:0; transform:translateY(8px);}
#intro.go .iword{animation:fadeup 500ms var(--ease) 760ms forwards;}
@keyframes rise{to{transform:scaleY(1);}}
@keyframes sweep{to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}}
@keyframes fadeup{to{opacity:1; transform:none;}}
@media (prefers-reduced-motion:reduce){#intro{display:none;}}

/* ===== PROGRESS ===== */
#progress{position:fixed; top:0; left:0; height:3px; width:100%; z-index:200; background:transparent; pointer-events:none;}
#progress i{display:block; height:100%; width:100%; background:var(--green); transform-origin:0 50%; transform:scaleX(0);}

/* ===== NAV ===== */
.nav{position:fixed; inset:0 0 auto 0; z-index:100; --navpad:0; padding:1.1rem clamp(1.25rem,4.5vw,3.5rem); display:flex; align-items:center; justify-content:space-between; transition:background 350ms ease, box-shadow 350ms ease, padding 350ms ease;}
.nav .wordmark{color:#fff; transition:color 350ms ease;} .nav .lockup-tag{color:var(--green-soft); display:none;}
.nav .nmark rect{fill:#fff; transition:fill 350ms ease;}
.nav-links{display:flex; gap:2.2rem; list-style:none; margin:0; padding:0;}
.nav-links a{font-size:0.88rem; font-weight:500; color:#fff; text-decoration:none; opacity:0.85; transition:opacity 200ms ease, color 350ms ease; position:relative;}
.nav-links a::after{content:""; position:absolute; left:0; right:100%; bottom:-6px; height:2px; background:var(--green); transition:right 300ms var(--ease);}
.nav-links a:hover{opacity:1;} .nav-links a:hover::after{right:0;}
.nav.scrolled{background:rgba(250,246,238,0.94); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--line); padding-block:0.75rem;}
.nav.scrolled .wordmark{color:var(--ink);} .nav.scrolled .nmark rect{fill:var(--ink);} .nav.scrolled .lockup-tag{display:block;}
.nav.scrolled .nav-links a{color:var(--forest);}
.nav-cta{font-size:0.82rem; padding:0.7em 1.25em;}
@media (max-width:900px){.nav-links,.nav-cta{display:none;}}
@media (min-width:901px) and (max-width:1400px){.nav:not(.sp-nav) .nav-links li:not(.has-drop){display:none;} .nav:not(.sp-nav) .burger{display:block;} body:not(.sp) .mnav{display:flex;} .nav-right{gap:0.6rem;}}
@media (min-width:901px) and (max-width:1060px){.nav:not(.sp-nav) .nav-cta{display:none;}}

/* ===== HERO ===== */
.hero{position:relative; min-height:100svh; background:var(--forest-4); color:#fff; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;}
.hero-bg{position:absolute; inset:-8% 0 -8% 0; z-index:0; will-change:transform;}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:70% 35%; opacity:0.9; filter:saturate(0.9);}
.hero-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(15,36,24,0.94) 0%, rgba(15,36,24,0.72) 42%, rgba(15,36,24,0.25) 75%, rgba(15,36,24,0.55) 100%), linear-gradient(0deg, rgba(15,36,24,0.95) 0%, rgba(15,36,24,0) 40%);}
#field{position:absolute; inset:0; z-index:1; width:100%; height:100%; pointer-events:none; opacity:0.85;}
.hero-inner{position:relative; z-index:2; padding-top:clamp(8rem,16vh,11rem); padding-bottom:clamp(2rem,4vw,3rem);}
.hero-eyebrow{color:var(--gold);}
.hero h1 .h1-kicker{display:block; font-family:'IBM Plex Mono',Menlo,monospace; font-size:0.7rem; font-weight:600; letter-spacing:0.24em; line-height:1.6; text-transform:uppercase; color:var(--gold); margin-bottom:1.25rem; max-width:none;}
.hero h1{font-size:clamp(3.2rem,8.6vw,8.2rem); line-height:0.98; color:#fff; max-width:11ch; margin-top:1.25rem; letter-spacing:-0.03em;}
.hero h1 .w{display:inline-block; overflow:hidden; vertical-align:bottom;}
.hero h1 .w > span{display:inline-block; transform:translateY(110%); transition:transform 900ms var(--ease);}
.hero.ready h1 .w > span{transform:none;}
.hero h1 .w:nth-child(2) > span{transition-delay:80ms;} .hero h1 .w:nth-child(3) > span{transition-delay:160ms;} .hero h1 .w:nth-child(4) > span{transition-delay:240ms;} .hero h1 .w:nth-child(5) > span{transition-delay:320ms;}
.hero h1 em{color:var(--green-soft);}
.hero-row{display:grid; grid-template-columns:1.1fr 0.9fr; gap:clamp(2rem,5vw,5rem); align-items:end; margin-top:2.2rem;}
.hero .lede{color:#e6efe9; max-width:44ch;}
.hero-actions{display:flex; gap:1rem; flex-wrap:wrap; margin-top:2.2rem; opacity:0; transform:translateY(16px); transition:opacity 800ms var(--ease) 650ms, transform 800ms var(--ease) 650ms;}
.hero.ready .hero-actions{opacity:1; transform:none;}
.hero-side{border-left:1px solid rgba(255,255,255,0.22); padding-left:clamp(1.25rem,2.5vw,2rem); opacity:0; transition:opacity 900ms ease 900ms;}
.hero.ready .hero-side{opacity:1;}
.hero-side q{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-style:italic; font-weight:500; font-size:clamp(1.05rem,1.5vw,1.3rem); line-height:1.45; color:#fff; quotes:"\201C" "\201D";}
.hero-side .cite{margin-top:0.8rem; font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--dark-mute);}
.hero-stats{position:relative; z-index:2; border-top:1px solid rgba(255,255,255,0.14); margin-top:clamp(2.5rem,5vw,4rem);}
.hero-stats .wrap{display:grid; grid-template-columns:repeat(4,1fr);}
.hstat{padding:1.4rem 1.4rem 1.5rem 0; border-left:1px solid rgba(255,255,255,0.14); padding-left:1.4rem;}
.hstat:first-child{border-left:0; padding-left:0;}
.hstat .n{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:clamp(1.9rem,3.4vw,2.8rem); color:#fff; line-height:1; display:flex; align-items:baseline; gap:0.1em; font-variant-numeric:tabular-nums;}
.hstat .n .plus{color:var(--green-soft); font-size:0.7em;}
.hstat .l{margin-top:0.5rem; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--dark-mute);}
.scroll-cue{position:absolute; right:clamp(1.25rem,4.5vw,3.5rem); bottom:calc(clamp(2.5rem,5vw,4rem) + 6.5rem); z-index:3; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.22em; color:var(--dark-mute); writing-mode:vertical-rl; display:flex; align-items:center; gap:0.8rem;}
.scroll-cue i{display:block; width:1px; height:56px; background:linear-gradient(180deg, var(--green-soft), transparent); animation:cue 1.8s var(--ease) infinite;}
@keyframes cue{0%{transform:scaleY(0); transform-origin:top;} 50%{transform:scaleY(1); transform-origin:top;} 51%{transform-origin:bottom;} 100%{transform:scaleY(0); transform-origin:bottom;}}
@media (max-width:900px){.hero-row{grid-template-columns:1fr;} .hero-side{display:none;} .hero-stats .wrap{grid-template-columns:repeat(2,1fr);} .hstat:nth-child(3){border-left:0; padding-left:0;} .scroll-cue{display:none;}}

/* ===== COMPANY ===== */
.company-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(2.5rem,6vw,6rem); align-items:start;}
.company-copy p{font-size:clamp(1.1rem,1.5vw,1.3rem); line-height:1.65; max-width:52ch; color:var(--body);}
.company-copy p + p{margin-top:1.2rem;}
.company-copy p strong{color:var(--forest); font-weight:600;}
.company-aside{padding-top:0.5rem;}
.locs{display:grid; grid-template-columns:1fr 1fr; gap:0;}
.loc{border-top:1px solid var(--line); padding:1.1rem 1rem 1.1rem 0;}
.loc .k{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold);}
.loc .v{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:700; font-size:1.25rem; color:var(--forest); margin-top:0.3rem;}
/* heritage: colossal 16 */
.heritage{position:relative; margin-top:clamp(5rem,10vw,8rem); display:grid; grid-template-columns:0.95fr 1.05fr; gap:clamp(2.5rem,6vw,5rem); align-items:start;}
.h-stats{display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; margin-top:0.75rem;}
.h-stat{background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1.1rem 1.2rem; position:relative; overflow:hidden;}
.h-stat::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--green);}
.h-stat .n{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:1.7rem; color:var(--forest); line-height:1; font-variant-numeric:tabular-nums;}
.h-stat .n em{font-style:normal; color:var(--green); font-size:0.7em;}
.h-stat .l{margin-top:0.35rem; font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--mute);}
.vtl{list-style:none; margin:2rem 0 0; padding:0; position:relative;}
.vtl::before{content:""; position:absolute; left:11px; top:6px; bottom:6px; width:1px; background:var(--line);}
.vtl::after{content:""; position:absolute; left:11px; top:6px; height:0; width:1px; background:var(--green); transition:height 1400ms var(--ease);}
.in .vtl::after{height:calc(100% - 12px);}
.vtl li{position:relative; padding:0 0 1.3rem 2.4rem;}
.vtl li:last-child{padding-bottom:0;}
.vtl li::before{content:""; position:absolute; left:6px; top:5px; width:11px; height:11px; border-radius:50%; background:var(--cream); border:1.5px solid var(--green); box-sizing:border-box;}
.vtl li:last-child::before{background:var(--green);}
.vtl .e{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold); font-weight:600;}
.vtl h4{font-size:1.05rem; margin-top:0.15rem;}
.vtl p{margin-top:0.2rem; font-size:0.9rem; color:var(--mute); line-height:1.5;}
@media (max-width:900px){.heritage{grid-template-columns:1fr;}}
.giant{position:absolute; left:-2vw; top:-14vw; font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:900; font-size:clamp(14rem,34vw,32rem); line-height:1; color:transparent; -webkit-text-stroke:1.5px rgba(31,74,49,0.16); pointer-events:none; user-select:none; z-index:0; will-change:transform; letter-spacing:-0.06em;}
.heritage > *{position:relative; z-index:1;}
.heritage > .giant{position:absolute; z-index:0;}
.heritage-img{border-radius:10px; overflow:hidden; aspect-ratio:4/3; position:relative; box-shadow:0 30px 60px -30px rgba(31,74,49,0.5);}
.heritage-img img{width:100%; height:118%; object-fit:cover; filter:saturate(0.85); will-change:transform;}
.heritage-img::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(31,74,49,0) 55%, rgba(31,74,49,0.6) 100%);}
.heritage-img .cap{position:absolute; left:1.1rem; bottom:1rem; color:#fff; font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.18em;}
.heritage h2{font-size:clamp(2.4rem,5vw,4.2rem);}
.heritage p{margin-top:1.2rem; max-width:52ch; line-height:1.7; font-size:1.05rem;}
.timeline{margin-top:2.2rem; display:grid; grid-template-columns:repeat(5,1fr); gap:0.9rem;}
.tl{border-top:2px solid var(--line); padding-top:0.75rem; position:relative;}
.tl::before{content:""; position:absolute; top:-2px; left:0; width:0; height:2px; background:var(--green); transition:width 900ms var(--ease);}
.in .tl::before{width:100%;}
.in .tl:nth-child(2)::before{transition-delay:150ms;} .in .tl:nth-child(3)::before{transition-delay:300ms;} .in .tl:nth-child(4)::before{transition-delay:450ms;} .in .tl:nth-child(5)::before{transition-delay:600ms;}
.tl .n{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; color:var(--green); font-weight:600; letter-spacing:0.12em;}
.tl h4{font-size:0.95rem; margin-top:0.4rem; line-height:1.3; font-weight:700;}
.tl p{font-size:0.8rem; color:var(--mute); margin-top:0.3rem; line-height:1.45;}
@media (max-width:900px){.company-grid,.heritage{grid-template-columns:1fr;} .timeline{grid-template-columns:repeat(2,1fr);} .giant{font-size:9rem; top:-6rem;}}

/* ===== MARKET ===== */
.market-grid{display:grid; grid-template-columns:1.3fr 0.7fr; gap:clamp(2.5rem,6vw,5rem); align-items:start;}
.chart{width:100%; height:auto; margin-top:1.5rem;}
.chart text{font-family:'IBM Plex Mono',monospace; font-size:11px; fill:var(--dark-mute);}
.chart .lbl{fill:#fff; font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:13px;}
.rate-card{background:rgba(255,255,255,0.05); border:1px solid var(--line-dark); border-radius:10px; padding:1.75rem 1.8rem;}
.rate{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:clamp(3rem,5.5vw,4.6rem); color:#fff; line-height:1;}
.rate em{font-style:normal; color:var(--green-soft);}
.rate-label{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--dark-mute); margin-top:0.6rem;}
.market-grid .side p{margin-top:1.4rem; line-height:1.7;}
.chart-src{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; color:var(--dark-mute); margin-top:0.75rem;}
.chart-src a{color:#fff; text-decoration:none; border-bottom:1px solid var(--green-soft);}
.rate-sub{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.08em; color:var(--green-soft); margin-top:0.35rem;}
@media (max-width:900px){.market-grid{grid-template-columns:1fr;}}

/* ===== SVD PINNED ===== */
.svd-pin{height:200vh; position:relative;}
.svd-stage{position:sticky; top:0; height:100vh; overflow:hidden; display:flex; flex-direction:column; justify-content:center;}
.svd-words{display:flex; flex-direction:column; gap:0; line-height:0.92;}
.svd-word{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:900; font-size:clamp(4rem,13vw,12.5rem); letter-spacing:-0.04em; color:transparent; -webkit-text-stroke:1.5px rgba(31,74,49,0.28); transition:color 600ms var(--ease), -webkit-text-stroke-color 600ms ease, transform 700ms var(--ease); transform:translateX(0); display:flex; align-items:baseline; gap:0.25em;}
.svd-word .idx{font-family:'IBM Plex Mono',monospace; font-size:0.9rem; letter-spacing:0.2em; -webkit-text-stroke:0; color:var(--gold); opacity:0; transition:opacity 400ms ease; font-weight:600; transform:translateY(-0.4em);}
.svd-word.active{color:var(--forest); -webkit-text-stroke-color:transparent; transform:translateX(0.08em) scale(1.03); transform-origin:left center;}
.svd-word.active .idx{opacity:1;}
.svd-copy{position:absolute; right:clamp(1.25rem,4.5vw,3.5rem); bottom:clamp(2.5rem,8vh,5rem); width:min(36ch,34vw); min-height:11rem;}
.svd-copy .item{position:absolute; left:0; right:0; bottom:0; opacity:0; transform:translateY(14px); transition:opacity 500ms var(--ease), transform 500ms var(--ease);}
.svd-copy .item.active{opacity:1; transform:none;}
.svd-copy h3{font-size:1.35rem; color:var(--forest);}
.svd-copy p{margin-top:0.7rem; font-size:1rem; line-height:1.65;}
.svd-head{position:absolute; top:clamp(6rem,14vh,9rem); left:clamp(1.25rem,4.5vw,3.5rem);}
.svd-bar{position:absolute; left:clamp(1.25rem,4.5vw,3.5rem); right:clamp(1.25rem,4.5vw,3.5rem); bottom:clamp(1rem,3vh,2rem); height:1px; background:var(--line);}
.svd-bar i{position:absolute; left:0; top:0; height:100%; width:0; background:var(--green); transition:width 200ms linear;}
.svd-list{display:none;}
@media (max-width:900px){
  .svd-pin{height:auto;} .svd-stage{position:static; height:auto; display:none;} .svd-list{display:block;}
}
.gates{margin-top:clamp(2rem,4vw,3rem); border:1px solid var(--line); border-radius:10px; background:var(--card); display:grid; grid-template-columns:auto repeat(5,1fr); overflow:hidden;}
.gates .gh{padding:1.2rem 1.5rem; background:var(--forest); color:#fff; font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.18em; text-transform:uppercase; display:flex; align-items:center; line-height:1.5;}
.gate{padding:1.2rem 1.25rem; border-left:1px solid var(--line); display:flex; gap:0.7rem; align-items:baseline; transition:background 250ms ease;}
.gate:hover{background:var(--cream-2);}
.gate .n{font-family:'IBM Plex Mono',monospace; color:var(--green); font-weight:600; font-size:0.8rem;}
.gate .t{font-weight:600; color:var(--forest); font-size:0.98rem;}
@media (max-width:900px){.gates{grid-template-columns:1fr;} .gate{border-left:0; border-top:1px solid var(--line);}}

/* ===== SOURCING ===== */
.sourcing{display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(2.5rem,6vw,6rem); align-items:center;}
.sourcing-img{border-radius:10px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 40px 80px -40px rgba(31,74,49,0.55);}
.sourcing-img img{width:100%; height:118%; object-fit:cover; will-change:transform;}
.sourcing h2{font-size:clamp(2.4rem,5vw,4.2rem);}
.sourcing p{margin-top:1.2rem; max-width:50ch; line-height:1.7; font-size:1.05rem;}
.src-list{margin:1.8rem 0 0; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0.6rem 1.5rem;}
.src-list li{position:relative; padding-left:1.4rem; font-size:1rem;}
.src-list li::before{content:""; position:absolute; left:0; top:0.6em; width:10px; height:3px; background:var(--green); clip-path:polygon(2px 0,100% 0,calc(100% - 2px) 100%,0 100%);}
@media (max-width:900px){.sourcing{grid-template-columns:1fr;} .sourcing-img{aspect-ratio:4/3;}}

/* ===== MANUFACTURING (full-bleed cinema) ===== */
.mfg{position:relative; min-height:100vh; display:flex; align-items:center; overflow:hidden; color:#fff;}
.mfg-bg{position:absolute; inset:-10% 0; z-index:0; will-change:transform;}
.mfg-bg img{width:100%; height:100%; object-fit:cover; object-position:center 30%;}
.mfg-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(21,48,33,0.95) 0%, rgba(21,48,33,0.85) 38%, rgba(21,48,33,0.25) 70%, rgba(21,48,33,0.5) 100%);}
.mfg .wrap{position:relative; z-index:1; width:100%; padding-block:clamp(5rem,10vw,8rem);}
.mfg h2{color:#fff; font-size:clamp(2.6rem,5.6vw,4.8rem); max-width:12ch;}
.mfg h2 em{color:var(--green-soft);}
.sites{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2.25rem; max-width:860px;}
.site{border:1px solid rgba(255,255,255,0.2); border-radius:10px; padding:1.5rem 1.6rem; background:rgba(15,36,24,0.72); transition:transform 350ms var(--ease-ui), background 300ms ease, border-color 300ms ease;}
.site:hover{transform:translateY(-4px); background:rgba(15,36,24,0.85); border-color:rgba(76,193,120,0.6);}
.site h3{font-size:1.5rem; font-weight:800; color:#fff;}
.site p{margin-top:0.6rem; font-size:0.95rem; line-height:1.6; color:var(--dark-mute);}
.pills{display:flex; align-items:center; gap:0.6rem; margin-top:1.75rem; flex-wrap:wrap;}
.pill{border:1px solid rgba(255,255,255,0.5); border-radius:999px; padding:0.4em 1em; font-family:'IBM Plex Mono',monospace; font-size:0.7rem; letter-spacing:0.14em; color:#fff;}
.pills .note{font-size:0.86rem; color:var(--dark-mute);}
.mfg .tag{position:absolute; right:clamp(1.25rem,4.5vw,3.5rem); bottom:1.4rem; z-index:1; background:rgba(15,36,24,0.7); border:1px solid rgba(255,255,255,0.25); color:#fff; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.18em; padding:0.6em 1em; border-radius:3px;}
@media (max-width:760px){.sites{grid-template-columns:1fr;}}

/* ===== ON THE LINE (horizontal glide) ===== */
.line-head{display:flex; justify-content:space-between; align-items:end; gap:2rem; flex-wrap:wrap;}
.line-track{margin-top:clamp(2rem,4vw,3rem); overflow:hidden;}
.line-strip{display:flex; gap:1rem; width:max-content; will-change:transform; padding-left:clamp(1.25rem,4.5vw,3.5rem);}
.line-item{width:min(72vw,520px); flex:none;}
.line-item .im{border-radius:10px; overflow:hidden; aspect-ratio:4/3; position:relative;}
.line-item img{width:100%; height:100%; object-fit:cover; transition:transform 700ms var(--ease-ui);}
.line-item:hover img{transform:scale(1.04);}
.line-item .im::after{content:""; position:absolute; left:1rem; top:1rem; width:10px; height:26px; background:var(--green); clip-path:polygon(0 0,100% 0,60% 100%,0 100%); opacity:0.9;}
.line-item h4{font-size:1.2rem; margin-top:1rem;}
.line-item p{margin-top:0.35rem; font-size:0.92rem; color:var(--mute); line-height:1.55; max-width:40ch;}
.line-item .idx{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.18em; color:var(--gold); margin-top:0.9rem;}

/* ===== BIOTICS / STRAINS ===== */
.bio-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,5rem); align-items:start;}
.bio-grid h2{font-size:clamp(2.4rem,5.2vw,4.2rem);}
.bio-grid .lede{margin-top:1.2rem;}
.bio-sites{display:grid; grid-template-columns:1fr; gap:0.75rem; margin-top:0.5rem;}
.bio-site{display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1.1rem 1.25rem;}
.bio-site .flag{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; font-weight:600; letter-spacing:0.12em; color:#fff; background:var(--forest); border-radius:6px; padding:0.45em 0.6em; min-width:3.2em; text-align:center;}
.bio-site h4{font-size:1.05rem;}
.bio-site p{margin-top:0.25rem; font-size:0.9rem; color:var(--mute); line-height:1.5;}
.bio-services{list-style:none; margin:1.6rem 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0.55rem 1.25rem;}
.bio-services li{position:relative; padding-left:1.4rem; font-size:0.95rem;}
.bio-services li::before{content:""; position:absolute; left:0; top:0.6em; width:10px; height:3px; background:var(--green); clip-path:polygon(2px 0,100% 0,calc(100% - 2px) 100%,0 100%);}
.strains{margin-top:clamp(3rem,6vw,4.5rem); border:1px solid var(--line); border-radius:12px; background:var(--card); overflow:hidden;}
.strains-head{display:flex; justify-content:space-between; align-items:end; gap:1.5rem; flex-wrap:wrap; padding:1.4rem 1.6rem; border-bottom:1px solid var(--line);}
.strains-head h3{font-size:1.4rem;}
.strains-head .sub{font-size:0.88rem; color:var(--mute); margin-top:0.25rem;}
.strains-head .count{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:2.2rem; color:var(--forest); line-height:1;}
.strains-head .count small{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.16em; color:var(--mute); display:block; margin-top:0.3rem; font-weight:500;}
.genus-grid{display:grid; grid-template-columns:repeat(3,1fr);}
.genus{padding:1.2rem 1.6rem 1.4rem; border-right:1px solid var(--line);}
.genus:nth-child(3n){border-right:0;}
.genus:nth-child(n+4){border-top:1px solid var(--line);}
.genus h4{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:0.6rem;}
.strain{display:grid; grid-template-columns:1fr auto; gap:0.75rem; align-items:baseline; padding:0.42rem 0; border-top:1px solid rgba(227,219,200,0.6); font-size:0.88rem;}
.strain:first-of-type{border-top:0;}
.strain i{font-style:italic; color:var(--forest);}
.strain .code{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; color:var(--mute); letter-spacing:0.02em; margin-left:0.35rem; white-space:nowrap;}
.strain .pot{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--green); font-weight:600; white-space:nowrap; font-variant-numeric:tabular-nums;}
.strain .pat{display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.56rem; letter-spacing:0.12em; text-transform:uppercase; color:#fff; background:var(--green); border-radius:3px; padding:0.15em 0.4em; margin-left:0.4rem; vertical-align:middle;}
.strains-foot{padding:1rem 1.6rem; border-top:1px solid var(--line); background:var(--cream-2); font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.04em; color:var(--mute); line-height:1.7;}
@media (max-width:1000px){.genus-grid{grid-template-columns:repeat(2,1fr);} .genus:nth-child(3n){border-right:1px solid var(--line);} .genus:nth-child(2n){border-right:0;} .genus:nth-child(n+3){border-top:1px solid var(--line);}}
@media (max-width:900px){.bio-grid{grid-template-columns:1fr;}}
@media (max-width:640px){.genus-grid{grid-template-columns:1fr;} .genus{border-right:0!important;} .genus:nth-child(n+2){border-top:1px solid var(--line);}}

/* ===== MAESTROBIOME ===== */
.maestro{position:relative; background:var(--forest-4); color:#fff; overflow:hidden;}
.maestro-bg{position:absolute; inset:-6% 0; z-index:0; opacity:0.35; will-change:transform;}
.maestro-bg img{width:100%; height:100%; object-fit:cover; object-position:30% 50%; filter:saturate(0.8);}
.maestro-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(15,36,24,1) 0%, rgba(15,36,24,0.92) 30%, rgba(15,36,24,0.55) 55%, rgba(15,36,24,0.15) 100%), linear-gradient(180deg, rgba(15,36,24,0.6) 0%, rgba(15,36,24,0) 30%, rgba(15,36,24,0) 55%, rgba(15,36,24,1) 100%);}
.maestro .wrap{position:relative; z-index:1;}
.m-lockup{display:inline-flex; flex-direction:column; gap:0.15rem; margin-bottom:1.5rem;}
.m-lockup .name{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:700; font-size:clamp(1.5rem,2.6vw,2.1rem); color:#fff; letter-spacing:-0.01em;}
.m-lockup .name em{font-style:italic; font-weight:500; color:var(--green-soft);}
.m-lockup .tag{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--dark-mute);}
.maestro h2{color:#fff; font-size:clamp(2.6rem,6vw,5.2rem); max-width:12ch;}
.maestro h2 em{color:var(--green-soft);}
.m-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(2.5rem,6vw,5rem); align-items:start; margin-top:clamp(2rem,4vw,3rem);}
.m-grid p{font-size:1.02rem; line-height:1.7; max-width:52ch;}
.m-grid p + p{margin-top:1rem;}
.m-grid p strong{color:#fff; font-weight:600;}
.cascade{width:100%; height:auto;}
.cascade text{font-family:'Inter',sans-serif; font-size:12px; fill:#fff;}
.cascade .mono{font-family:'IBM Plex Mono',monospace; font-size:10px; fill:var(--dark-mute); letter-spacing:0.12em;}
.cascade .box{fill:rgba(255,255,255,0.05); stroke:rgba(255,255,255,0.25);}
.cascade .box-hi{fill:rgba(76,193,120,0.16); stroke:var(--green-soft);}
.cascade .arrow{stroke:var(--green-soft); stroke-width:1.5; fill:none;}
.cascade .arrow-dim{stroke:rgba(255,255,255,0.3); stroke-width:1.5; fill:none;}
.m-facts{display:grid; grid-template-columns:repeat(4,1fr); gap:0.75rem; margin-top:clamp(2.5rem,5vw,3.5rem);}
.m-fact{border:1px solid rgba(255,255,255,0.18); border-radius:10px; padding:1.2rem 1.25rem; background:rgba(255,255,255,0.04); transition:background 250ms ease, border-color 250ms ease;}
.m-fact:hover{background:rgba(255,255,255,0.08); border-color:rgba(76,193,120,0.6);}
.m-fact .n{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:clamp(1.6rem,2.6vw,2.2rem); color:#fff; line-height:1;}
.m-fact .n em{font-style:normal; color:var(--green-soft); font-size:0.7em;}
.m-fact .l{margin-top:0.4rem; font-size:0.86rem; color:var(--dark-mute); line-height:1.45;}
.m-data{margin-top:clamp(2.5rem,5vw,3.5rem); display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
.m-panel{border:1px solid rgba(255,255,255,0.18); border-radius:12px; padding:1.5rem 1.6rem; background:rgba(15,36,24,0.55);}
.m-panel h3{font-size:1.25rem; color:#fff;}
.m-panel .src{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin-top:0.35rem;}
.m-bars{margin-top:1.2rem; display:flex; flex-direction:column; gap:0.7rem;}
.m-bar{display:grid; grid-template-columns:11rem 1fr auto; gap:0.75rem; align-items:center; font-size:0.86rem; color:var(--dark-mute);}
.m-bar .track{height:10px; background:rgba(255,255,255,0.1); border-radius:999px; overflow:hidden;}
.m-bar .fill{height:100%; width:0; background:rgba(255,255,255,0.35); border-radius:999px; transition:width 1200ms var(--ease);}
.m-bar.hi .fill{background:var(--green-soft);}
.m-bar.hi{color:#fff;}
.in .m-bar .fill{width:var(--w);}
.m-bar .v{font-family:'IBM Plex Mono',monospace; font-size:0.78rem; font-weight:600; color:#fff; font-variant-numeric:tabular-nums; min-width:3.5em; text-align:right;}
.m-list{list-style:none; margin:1rem 0 0; padding:0; display:flex; flex-direction:column; gap:0.6rem;}
.m-list li{position:relative; padding-left:1.5rem; font-size:0.93rem; color:var(--dark-mute); line-height:1.5;}
.m-list li::before{content:""; position:absolute; left:0; top:0.55em; width:10px; height:3px; background:var(--green-soft); clip-path:polygon(2px 0,100% 0,calc(100% - 2px) 100%,0 100%);}
.m-list li strong{color:#fff; font-weight:600;}
.m-honest a{color:#fff; text-decoration:none; border-bottom:1px solid var(--green-soft);}
.m-honest{margin-top:1.25rem; border-top:1px solid rgba(255,255,255,0.15); padding-top:1rem; font-size:0.86rem; color:var(--dark-mute); line-height:1.55;}
.more-link{display:inline-flex; align-items:center; gap:0.5em; font-weight:600; font-size:0.95rem; color:var(--forest); text-decoration:none; border-bottom:1px solid var(--green); padding-bottom:2px; margin-top:1.4rem;}
.more-link .arr{transition:transform 250ms var(--ease-ui);} .more-link:hover .arr{transform:translateX(4px);}
.more-link.light,.on-forest .more-link,.mfg .more-link{color:#fff; border-color:var(--green-soft);}
.strains-more{display:flex; gap:0.5rem 2rem; flex-wrap:wrap; padding:0 1.6rem 1.2rem;}
/* ===== nav "In depth" mega menu ===== */
.nav-drop{display:inline-flex; align-items:center; gap:0.35em; font:inherit; font-size:0.88rem; font-weight:600; color:#fff; background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.3); border-radius:999px; padding:0.45em 0.95em; cursor:pointer; transition:background 200ms ease, color 350ms ease, border-color 350ms ease; position:relative; top:-0.2em;}
.nav-drop svg{width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform 250ms var(--ease-ui);}
.nav-drop[aria-expanded="true"] svg{transform:rotate(180deg);}
.nav-drop:hover{background:rgba(255,255,255,0.22);}
.nav.scrolled .nav-drop,.nav.drop-open .nav-drop{color:var(--forest); background:rgba(22,163,74,0.1); border-color:rgba(22,163,74,0.35);}
.drop{position:absolute; top:calc(100% - 0.3rem); left:50%; transform:translateX(-50%); width:min(1040px, calc(100vw - 2.5rem)); background:var(--card); border:1px solid var(--line); border-radius:16px; box-shadow:0 30px 60px -28px rgba(15,36,24,0.55); padding:1.4rem 1.4rem 1.2rem; z-index:5; animation:dropIn 260ms var(--ease) both;}
.drop[hidden]{display:none;}
@keyframes dropIn{from{opacity:0; transform:translate(-50%,-8px);} to{opacity:1; transform:translate(-50%,0);}}
.drop-head{display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:0 0.4rem 0.9rem; border-bottom:1px solid var(--line); margin-bottom:0.8rem;}
.drop-note{font-size:0.86rem; color:var(--mute);}
.drop-grid{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0.4rem;}
.drop-grid a{display:flex; gap:0.9rem; align-items:flex-start; padding:0.9rem; border-radius:12px; text-decoration:none; color:var(--body); transition:background 200ms ease;}
.drop-grid a:hover,.drop-grid a:focus-visible{background:var(--cream-2); outline:none;}
.drop-grid .dive-ic{width:44px; height:44px;} .drop-grid .dive-ic svg{width:22px; height:22px;}
.drop-grid strong{display:block; font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.08rem; color:var(--forest); line-height:1.2;}
.drop-grid small{display:block; margin-top:0.2rem; font-size:0.84rem; line-height:1.4; color:var(--mute);}
.drop-grid a:hover strong::after{content:" \2192"; color:var(--green);}
.drop-cols{display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:0.6rem 1.2rem;}
.drop-cols .drop-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.drop-group:last-child .drop-grid{grid-template-columns:1fr;}
.drop-group + .drop-group{border-left:1px solid var(--line); padding-left:1.2rem;}
.drop-g{display:block; padding:0.2rem 0.9rem 0.5rem; font-family:'IBM Plex Mono',monospace; font-size:0.6rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold);}
.drop-grid a[aria-current="page"]{background:var(--cream-2);}
.mnav li.mgroup{border-top:0; padding-top:1.1rem;}
.mnav li.mgroup span{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold);}
@media (max-width:900px){.drop{display:none !important;}}
@media (prefers-reduced-motion:reduce){.drop{animation:none;}}

/* ===== deep-dive cards: big, obvious links to the in-depth pages ===== */
.dive{position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1.1rem 1.5rem; margin-top:2.2rem; padding:1.3rem 1.4rem 1.3rem 1.6rem; max-width:920px; background:var(--card); border:1px solid var(--line); border-radius:14px; text-decoration:none; color:var(--body); overflow:hidden; transition:transform 350ms var(--ease-ui), box-shadow 350ms var(--ease-ui), border-color 250ms ease;}
.dive::before{content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--green);}
.dive:hover{transform:translateY(-3px); border-color:var(--green); box-shadow:0 18px 36px -22px rgba(15,36,24,0.45);}
.dive:focus-visible{outline:3px solid var(--green); outline-offset:3px;}
.dive-ic{width:54px; height:54px; border-radius:12px; display:grid; place-items:center; background:rgba(22,163,74,0.1); color:var(--green); flex:none;}
.dive-ic svg{width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}
.dive-body{display:flex; flex-direction:column; gap:0.25rem; min-width:0;}
.dive-k{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold);}
.dive-t{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:clamp(1.15rem,1.9vw,1.45rem); line-height:1.15; color:var(--forest); letter-spacing:-0.01em;}
.dive-d{font-size:0.93rem; line-height:1.5; color:var(--body);}
.dive-go{display:inline-flex; align-items:center; gap:0.55em; padding:0.85em 1.3em; border-radius:999px; background:var(--green); color:#fff; font-weight:600; font-size:0.93rem; white-space:nowrap; transition:background 250ms ease;}
.dive-go .arr{transition:transform 250ms var(--ease-ui);}
.dive:hover .dive-go{background:var(--forest);} .dive:hover .dive-go .arr{transform:translateX(4px);}
.dive.dark,.on-forest .dive,.mfg .dive,.maestro .dive{background:rgba(255,255,255,0.06); border-color:rgba(255,255,255,0.18); color:var(--dark-mute); backdrop-filter:blur(6px);}
.dive.dark .dive-t,.on-forest .dive .dive-t,.mfg .dive .dive-t,.maestro .dive .dive-t{color:#fff;}
.dive.dark .dive-d,.on-forest .dive .dive-d,.mfg .dive .dive-d,.maestro .dive .dive-d{color:var(--dark-mute);}
.dive.dark .dive-ic,.on-forest .dive .dive-ic,.mfg .dive .dive-ic,.maestro .dive .dive-ic{background:rgba(76,193,120,0.16); color:var(--green-soft);}
.dive.dark::before,.on-forest .dive::before,.mfg .dive::before,.maestro .dive::before{background:var(--green-soft);}
.dive.dark:hover,.on-forest .dive:hover,.mfg .dive:hover,.maestro .dive:hover{border-color:var(--green-soft); box-shadow:0 18px 36px -20px rgba(0,0,0,0.6);}
.dive.dark:hover .dive-go,.on-forest .dive:hover .dive-go,.mfg .dive:hover .dive-go,.maestro .dive:hover .dive-go{background:#fff; color:var(--forest);}
.dive-trio{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1rem;}
.dive-trio .dive{margin:0; max-width:none; grid-template-columns:auto minmax(0,1fr); align-content:start;}
.dive-trio .dive-go{grid-column:1 / -1; justify-self:start;}
@media (max-width:1000px){.dive-trio{grid-template-columns:1fr;}}
.src-list a{color:inherit; text-decoration:none; border-bottom:1px solid var(--green);}
.dive-pair{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem;}
.dive-pair .dive{margin-top:0; max-width:none; grid-template-columns:auto minmax(0,1fr);}
.dive-pair .dive .dive-go{grid-column:2; justify-self:start;}
@media (max-width:900px){.dive-pair{grid-template-columns:1fr;}}
@media (max-width:640px){
  .dive{grid-template-columns:auto minmax(0,1fr); padding:1.15rem 1.1rem 1.15rem 1.3rem; gap:0.9rem 1rem;}
  .dive-ic{width:44px; height:44px;} .dive-ic svg{width:22px; height:22px;}
  .dive-go,.dive-pair .dive .dive-go{grid-column:1 / -1; justify-self:stretch; justify-content:center;}
}

/* ===== in-depth hub ===== */
.hub{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem;}
.hub-card{position:relative; display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; text-decoration:none; color:var(--body); transition:transform 350ms var(--ease-ui), box-shadow 350ms var(--ease-ui), border-color 250ms ease;}
.hub-card:hover{transform:translateY(-4px); border-color:var(--green); box-shadow:0 22px 40px -24px rgba(15,36,24,0.5);}
.hub-card:focus-visible{outline:3px solid var(--green); outline-offset:3px;}
.hub-img{aspect-ratio:16/9; overflow:hidden; background:var(--forest-3);}
.hub-img img{width:100%; height:100%; object-fit:cover; transition:transform 800ms var(--ease);}
.hub-card:hover .hub-img img{transform:scale(1.05);}
.hub-body{display:flex; flex-direction:column; gap:0.55rem; padding:1.4rem 1.5rem 1.5rem; flex:1;}
.hub-k{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold);}
.hub-t{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:clamp(1.25rem,2vw,1.55rem); line-height:1.12; color:var(--forest);}
.hub-d{font-size:0.95rem; line-height:1.55;}
.hub-card .dive-go{margin-top:auto; align-self:flex-start;}
.hub-card .hub-d + .dive-go{margin-top:1rem;}
.hub-card:hover .dive-go{background:var(--forest);} .hub-card:hover .dive-go .arr{transform:translateX(4px);}
.hub-card.feature{grid-column:span 2; flex-direction:row; background:var(--forest-4); border-color:var(--forest-4); color:var(--dark-mute);}
.hub-card.feature .hub-img{aspect-ratio:auto; flex:0 0 48%;}
.hub-card.feature .hub-body{padding:clamp(1.6rem,3vw,2.4rem); justify-content:center;}
.hub-card.feature .hub-t{color:#fff; font-size:clamp(1.6rem,3vw,2.3rem);}
.hub-card.feature .dive-go{margin-top:1.2rem;}
.hub-card.feature:hover .dive-go{background:#fff; color:var(--forest);}
.hub-card.wide{grid-column:1 / -1; flex-direction:row; align-items:center; background:var(--forest); border-color:var(--forest); color:var(--dark-mute);}
.hub-card.wide .hub-body{flex-direction:row; align-items:center; gap:1.5rem; padding:1.6rem 1.8rem;}
.hub-card.wide .hub-num{font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:clamp(3rem,6vw,4.6rem); line-height:0.9; color:var(--green-soft); flex:none;}
.hub-card.wide .hub-t{color:#fff;}
.hub-card.wide .hub-txt{display:flex; flex-direction:column; gap:0.4rem; flex:1; min-width:0;}
.hub-card.wide .dive-go{margin:0; align-self:center;}
.hub-card.wide:hover .dive-go{background:#fff; color:var(--forest);}
@media (max-width:1000px){.hub{grid-template-columns:1fr 1fr;} .hub-card.feature{grid-column:1 / -1;}}
@media (max-width:640px){.hub{grid-template-columns:1fr;} .hub-card.feature{flex-direction:column;} .hub-card.feature .hub-img{aspect-ratio:16/9; flex:none;} .hub-card.wide .hub-body{flex-direction:column; align-items:flex-start;} .hub-card .dive-go{align-self:stretch; justify-content:center;}}

/* mobile menu: in-depth pages */
.mnav .mdeep{margin-bottom:0.2rem;}
.mnav .btn-outline{border-color:rgba(255,255,255,0.45); color:#fff;} .mnav .btn-outline::before{background:#fff;}
.mnav .mdeep ul{list-style:none; margin:0.7rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:0.5rem;}
.mnav .mdeep a{display:inline-flex; align-items:center; gap:0.4em; padding:0.6em 0.95em; border-radius:999px; border:1px solid rgba(255,255,255,0.28); color:#fff; text-decoration:none; font-size:0.9rem; font-weight:600;}
.mnav .mdeep a::after{content:"\2192"; color:var(--green-soft);}

.m-cta{display:flex; gap:0.9rem; flex-wrap:wrap; align-items:center; margin-top:clamp(2rem,4vw,3rem);}
.m-cta .note{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--dark-mute);}
@media (max-width:900px){.m-grid,.m-data{grid-template-columns:1fr;} .m-facts{grid-template-columns:1fr 1fr;} .m-bar{grid-template-columns:1fr; gap:0.3rem;} .m-bar .v{text-align:left;}}

/* ===== MARQUEE ===== */
.marquee{overflow:hidden; border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); padding:1.1rem 0; white-space:nowrap;}
.marquee .row{display:inline-flex; gap:3rem; padding-right:3rem; animation:marq 42s linear infinite; font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:700; font-size:clamp(1.2rem,2.4vw,1.9rem); color:#fff;}
.marquee .row span i{font-style:normal; color:var(--green-soft); margin-right:3rem;}
@keyframes marq{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.marquee .row{animation:none;}}

/* ===== WHAT WE MAKE ===== */
.formats{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center;}
.formats h2{font-size:clamp(2.4rem,5vw,4.2rem);}
.formats-img{border-radius:10px; overflow:hidden; box-shadow:0 40px 80px -40px rgba(31,74,49,0.5);}
.fmt{display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding:1rem 0; border-top:1px solid var(--line); transition:padding-left 300ms var(--ease-ui);}
.fmt:hover{padding-left:0.6rem;}
.fmt:last-child{border-bottom:1px solid var(--line);}
.fmt h4{font-size:1.15rem; font-weight:700;}
.fmt span{font-size:0.86rem; color:var(--mute); text-align:right; max-width:24ch;}
.cats{margin-top:clamp(4rem,8vw,6rem);}
.cat-grid{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:160px; gap:0.6rem; margin-top:2.25rem;}
.cat{position:relative; overflow:hidden; border-radius:10px; grid-column:span 2; grid-row:span 2;}
.cat.wide{grid-column:span 3;} .cat.tall{grid-row:span 3;}
.cat img{width:100%; height:100%; object-fit:cover; transition:transform 900ms var(--ease-ui), filter 500ms ease; filter:saturate(0.9);}
.cat:hover img{transform:scale(1.06); filter:saturate(1);}
.cat::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(31,74,49,0) 45%, rgba(31,74,49,0.85) 100%); transition:opacity 400ms ease;}
.cat .lbl{position:absolute; left:1.1rem; bottom:1rem; z-index:1; color:#fff; font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:700; font-size:1.2rem; transition:transform 500ms var(--ease);}
.cat:hover .lbl{transform:translateY(-4px);}
.cat-more{grid-column:span 2; grid-row:span 2; border-radius:10px; background:var(--forest); color:#fff; display:flex; flex-direction:column; justify-content:center; padding:1.5rem; gap:0.4rem; position:relative; overflow:hidden;}
.cat-more::before{content:""; position:absolute; right:-20%; top:0; bottom:0; width:60%; background:var(--forest-3); clip-path:polygon(34% 0,100% 0,100% 100%,0 100%);}
.cat-more > *{position:relative;}
.cat-more .lbl2{font-family:'Fraunces',Georgia,serif; font-weight:700; font-size:1.2rem;}
.cat-more .sm{font-size:0.86rem; color:var(--dark-mute); line-height:1.5;}
@media (max-width:900px){.formats{grid-template-columns:1fr;}}
@media (max-width:760px){.cat-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:170px;} .cat{grid-column:span 1; grid-row:span 1;} .cat.wide,.cat-more{grid-column:span 2;} .cat-more{grid-row:span 1;}}

/* ===== CHECKS ===== */
.checks{display:grid; grid-template-columns:1fr 1fr; gap:1.6rem 3rem;}
.check{display:flex; gap:0.9rem; align-items:flex-start;}
.check .tick{flex:none; width:20px; height:20px; margin-top:0.15rem;}
.check .tick path{stroke-dasharray:24; stroke-dashoffset:24; transition:stroke-dashoffset 600ms var(--ease);}
.in .check .tick path{stroke-dashoffset:0;}
.in .check:nth-child(2) .tick path{transition-delay:100ms;} .in .check:nth-child(3) .tick path{transition-delay:200ms;} .in .check:nth-child(4) .tick path{transition-delay:300ms;} .in .check:nth-child(5) .tick path{transition-delay:400ms;} .in .check:nth-child(6) .tick path{transition-delay:500ms;}
.check h4{font-size:1.05rem; font-weight:700; color:#fff;}
.check p{margin-top:0.3rem; font-size:0.92rem; line-height:1.55;}
.two-col{display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(2.5rem,6vw,6rem);}
.two-col h2{font-size:clamp(2rem,3.6vw,3rem);}
.checks.single{grid-template-columns:1fr; gap:1.3rem;}
@media (max-width:900px){.two-col,.checks{grid-template-columns:1fr;}}

/* ===== PATH ===== */
.path{display:grid; grid-template-columns:repeat(4,1fr); position:relative; margin-top:1rem;}
.path::before{content:""; position:absolute; top:11px; left:0; right:0; height:1px; background:var(--line);}
.path::after{content:""; position:absolute; top:11px; left:0; width:0; height:1px; background:var(--green); transition:width 1600ms var(--ease);}
.in .path::after{width:100%;}
.step{position:relative; padding:2.4rem 1.5rem 0 0;}
.dot{position:absolute; top:0; left:0; width:23px; height:23px; border-radius:50%; background:var(--cream); border:1.5px solid var(--green);}
.dot::after{content:""; position:absolute; inset:6px; border-radius:50%; background:var(--green);}
.time{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:1.7rem; color:var(--forest); line-height:1;}
.time small{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.18em; color:var(--green); font-weight:600; margin-left:0.4rem;}
.step h4{font-size:1.15rem; margin-top:0.7rem;}
.step p{margin-top:0.4rem; font-size:0.92rem; color:var(--mute); line-height:1.55;}
@media (max-width:760px){.path{grid-template-columns:1fr; gap:1.5rem;} .path::before,.path::after{top:0; bottom:0; left:11px; right:auto; width:1px; height:auto;} .in .path::after{width:1px;} .step{padding:0 0 0 2.2rem;} .dot{top:2px;}}

/* ===== TRACK ===== */
.track{display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem;}
.tcard{background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1.75rem 1.8rem; transition:transform 350ms var(--ease-ui), box-shadow 350ms ease;}
.tcard:hover{transform:translateY(-4px); box-shadow:0 24px 40px -24px rgba(31,74,49,0.35);}
.tcard h4{font-size:1.2rem; line-height:1.3;}
.tcard p{margin-top:0.7rem; font-size:0.95rem; color:var(--mute); line-height:1.6;}
.quote{margin-top:clamp(3.5rem,7vw,5rem); padding-top:clamp(2.5rem,4vw,3rem); border-top:1px solid var(--line);}
.quote blockquote{margin:0; font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-style:italic; font-weight:500; font-size:clamp(1.8rem,4.2vw,3.2rem); line-height:1.22; color:var(--forest); max-width:24ch;}
.quote blockquote em{font-style:italic; color:var(--green);}
.quote cite{display:block; margin-top:1.2rem; font-style:normal; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--mute);}
@media (max-width:900px){.track{grid-template-columns:1fr;}}

/* ===== CONTACT ===== */
.next{display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-top:clamp(2rem,4vw,3rem);}
.nx{border-top:2px solid var(--green); padding-top:1rem;}
.nx .n{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.18em; color:var(--green); font-weight:600;}
.nx h4{font-size:1.1rem; margin-top:0.5rem;}
.nx p{margin-top:0.4rem; font-size:0.9rem; color:var(--mute); line-height:1.55;}
.contact-card{margin-top:clamp(4rem,8vw,6rem); background:var(--forest); color:#fff; border-radius:14px; padding:clamp(2.25rem,6vw,4.5rem); display:grid; grid-template-columns:1.2fr 0.8fr; gap:2rem; align-items:end; position:relative; overflow:hidden;}
.contact-card::before{content:""; position:absolute; top:0; bottom:0; right:0; width:40%; background:var(--forest-3); clip-path:polygon(34% 0,100% 0,100% 100%,0 100%);}
.contact-card > *{position:relative;}
.contact-card h2{color:#fff; font-size:clamp(2.4rem,5.4vw,4.6rem);}
.contact-card h2 em{color:var(--green-soft);}
.person{display:flex; align-items:center; gap:1rem; margin-top:2rem; padding:1rem 1.2rem; background:var(--card); border:1px solid var(--line); border-radius:12px; max-width:26rem;}
.person-av{flex:none; width:3.2rem; height:3.2rem; border-radius:50%; display:grid; place-items:center; background:var(--forest); color:var(--gold); font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.05rem; letter-spacing:0.04em;}
.person-txt{display:flex; flex-direction:column; line-height:1.3;}
.person-k{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--mute);}
.person-txt strong{font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.15rem; color:var(--forest); margin-top:0.2rem;}
.person-role{font-size:0.86rem; color:var(--body);}
.contact-meta{font-family:'IBM Plex Mono',monospace; font-size:0.82rem; line-height:1.95; color:var(--dark-mute);}
@media (max-width:900px){.next{grid-template-columns:repeat(2,1fr);} .contact-card{grid-template-columns:1fr;}}

/* ===== BRIEF FORM ===== */
.brief{margin-top:clamp(4rem,8vw,6rem); display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(2.5rem,6vw,5rem); align-items:start;}
.brief-intro h2{font-size:clamp(2.4rem,5vw,4rem);}
.brief-promise{list-style:none; margin:1.6rem 0 0; padding:0; display:flex; flex-direction:column; gap:0.55rem; font-size:0.98rem; color:var(--body);}
.brief-promise li{position:relative; padding-left:1.4rem;}
.brief-promise li::before{content:""; position:absolute; left:0; top:0.6em; width:10px; height:3px; background:var(--green); clip-path:polygon(2px 0,100% 0,calc(100% - 2px) 100%,0 100%);}
.brief-promise a{color:var(--forest); font-weight:600; text-decoration:none; border-bottom:1px solid var(--green);}
.brief-intro .contact-meta{color:var(--mute);}
.brief-form,.brief-done{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:clamp(1.5rem,3.5vw,2.5rem); position:relative; overflow:hidden;}
.brief-form::before,.brief-done::before{content:""; position:absolute; top:0; left:0; width:5px; height:100%; background:var(--green); clip-path:polygon(0 0,100% 0,100% 100%,0 100%);}
.chips-set{border:0; margin:0 0 1.4rem; padding:0;}
.chips-set legend{font-family:'Inter',sans-serif; font-weight:600; font-size:0.92rem; color:var(--forest); padding:0; margin-bottom:0.7rem;}
.opt{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--mute); font-weight:500; margin-left:0.4rem;}
.chips{display:flex; flex-wrap:wrap; gap:0.5rem;}
.chip{font:inherit; font-size:0.9rem; font-weight:500; color:var(--forest); background:var(--cream); border:1px solid var(--line); border-radius:999px; padding:0.55em 1em; cursor:pointer; transition:background 200ms ease, border-color 200ms ease, color 200ms ease, transform 200ms var(--ease-ui);}
.chip:hover{border-color:var(--forest); transform:translateY(-1px);}
.chip[aria-pressed="true"]{background:var(--forest); border-color:var(--forest); color:#fff;}
.chip-alt{border-style:dashed;}
.chip:focus-visible,.field input:focus-visible,.field textarea:focus-visible,.details-toggle:focus-visible{outline:2px solid var(--green); outline-offset:2px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
.field{display:flex; flex-direction:column; gap:0.45rem; margin-bottom:1.1rem;}
.field > span{font-weight:600; font-size:0.92rem; color:var(--forest);}
.field input,.field textarea{font:inherit; font-size:1rem; color:var(--body); background:#fff; border:1px solid var(--line); border-radius:8px; padding:0.85em 1em; width:100%; transition:border-color 200ms ease, box-shadow 200ms ease;}
.field input:focus,.field textarea:focus{border-color:var(--forest); box-shadow:0 0 0 3px rgba(22,163,74,0.14); outline:none;}
.field textarea{resize:vertical; min-height:7rem; line-height:1.55;}
.field.invalid input,.field.invalid textarea{border-color:#b42318; box-shadow:0 0 0 3px rgba(180,35,24,0.12);}
.field .msg{font-size:0.82rem; color:#b42318; display:none;}
.field.invalid .msg{display:block;}
.details-toggle{font:inherit; font-size:0.92rem; font-weight:600; color:var(--forest); background:none; border:0; padding:0; cursor:pointer; margin:0.2rem 0 1.4rem; border-bottom:1px solid var(--green);}
.details{padding-top:0.4rem;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}
.form-foot{display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; margin-top:0.5rem;}
.form-note{font-size:0.84rem; color:var(--mute); max-width:30ch; line-height:1.45;}
.form-error{margin-top:1rem; font-size:0.9rem; color:#b42318;}
.brief-done .tick-big{width:56px; height:56px; margin-bottom:1.2rem;}
.brief-done h3{font-size:1.6rem;}
.brief-done p{margin-top:0.8rem; line-height:1.6;}
.brief-done textarea{width:100%; margin-top:1.2rem; font-family:'IBM Plex Mono',monospace; font-size:0.82rem; line-height:1.55; color:var(--body); background:var(--cream); border:1px solid var(--line); border-radius:8px; padding:0.9em 1em; resize:vertical;}
@media (max-width:900px){.brief{grid-template-columns:1fr;} .field-row{grid-template-columns:1fr;}}

/* ===== WHATSAPP CHIP ===== */
.wa-fab{position:fixed; right:clamp(1rem,2.5vw,1.75rem); bottom:clamp(1rem,2.5vw,1.75rem); z-index:150; display:inline-flex; align-items:center; gap:0.6rem; background:var(--forest); color:#fff; text-decoration:none; font-weight:600; font-size:0.9rem; padding:0.65em 1.1em 0.65em 0.65em; border-radius:999px; box-shadow:0 12px 30px -12px rgba(15,36,24,0.6); opacity:0; transform:translateY(16px); pointer-events:none; transition:opacity 400ms var(--ease), transform 400ms var(--ease), background 200ms ease;}
.wa-fab.show{opacity:1; transform:none; pointer-events:auto;}
.wa-fab:hover{background:var(--forest-2);}
.wa-fab .ic{width:32px; height:32px; border-radius:50%; background:var(--green); display:grid; place-items:center; flex:none;}
.wa-fab .ic svg{width:18px; height:18px; fill:#fff;}
.wa-fab .dot{width:7px; height:7px; border-radius:50%; background:var(--green-soft); box-shadow:0 0 0 0 rgba(76,193,120,0.6); animation:pulse 2.2s ease-out infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(76,193,120,0.55);} 70%{box-shadow:0 0 0 8px rgba(76,193,120,0);} 100%{box-shadow:0 0 0 0 rgba(76,193,120,0);}}
@media (prefers-reduced-motion:reduce){.wa-fab .dot{animation:none;}}
.wa-inline{display:inline-flex; align-items:center; gap:0.4rem; color:var(--forest); font-weight:600; text-decoration:none; border-bottom:1px solid var(--green);}
.wa-inline svg{width:14px; height:14px; fill:var(--green);}

/* ===== COOKIE CONSENT ===== */
.cookie{position:fixed; left:clamp(1rem,2.5vw,1.75rem); bottom:clamp(1rem,2.5vw,1.75rem); z-index:160; width:min(440px, calc(100vw - 2rem)); background:var(--card); color:var(--body); border:1px solid var(--line); border-radius:14px; padding:1.4rem 1.5rem; box-shadow:0 24px 60px -24px rgba(15,36,24,0.45); transform:translateY(24px); opacity:0; pointer-events:none; transition:opacity 450ms var(--ease), transform 450ms var(--ease);}
.cookie.show{opacity:1; transform:none; pointer-events:auto;}
.cookie::before{content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--green); border-radius:14px 0 0 14px;}
.cookie h4{font-size:1.1rem; margin-bottom:0.5rem;}
.cookie p{font-size:0.9rem; line-height:1.55; color:var(--body);}
.cookie p a{color:var(--forest); font-weight:600; text-decoration:none; border-bottom:1px solid var(--green);}
.cookie-actions{display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; margin-top:1.1rem;}
.cookie-actions .btn{padding:0.8em 1em; font-size:0.9rem; justify-content:center;}
.cookie-settings-link{margin-top:0.8rem; text-align:center;}
.cookie-settings-link button{font:inherit; font-size:0.84rem; font-weight:600; color:var(--forest); background:none; border:0; padding:0; cursor:pointer; border-bottom:1px solid var(--green);}
.cookie-panel{margin-top:1rem; border-top:1px solid var(--line); padding-top:1rem; display:flex; flex-direction:column; gap:0.75rem;}
.cookie-panel[hidden]{display:none;}
.crow{display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;}
.crow .ct{font-size:0.9rem;}
.crow .ct strong{display:block; color:var(--forest); font-weight:600;}
.crow .ct span{font-size:0.82rem; color:var(--mute); line-height:1.45; display:block; margin-top:0.15rem;}
.switch{position:relative; width:42px; height:24px; flex:none; margin-top:0.15rem;}
.switch input{position:absolute; inset:0; opacity:0; margin:0; cursor:pointer;}
.switch i{position:absolute; inset:0; background:var(--line); border-radius:999px; transition:background 200ms ease;}
.switch i::after{content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,0.2); transition:transform 200ms var(--ease-ui);}
.switch input:checked + i{background:var(--green);}
.switch input:checked + i::after{transform:translateX(18px);}
.switch input:disabled + i{background:var(--forest); opacity:0.55;}
.switch input:focus-visible + i{outline:2px solid var(--green); outline-offset:2px;}
.cookie .save{margin-top:0.25rem;}
@media (max-width:560px){.cookie{left:0.75rem; right:0.75rem; width:auto; bottom:0.75rem;} .wa-fab{bottom:auto; top:5rem;}}
.foot-legal{display:flex; gap:1.25rem; flex-wrap:wrap;}
.foot-legal button{font:inherit; font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--dark-mute); background:none; border:0; padding:0; cursor:pointer;}
.foot-legal button:hover,.foot-legal a:hover{color:#fff;}
.foot-legal a{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--dark-mute); text-decoration:none;}

/* ===== SECTION BACKGROUNDS ===== */
.on-cream{--bgc:250,246,238;} .on-cream-2{--bgc:243,236,220;} .on-forest{--bgc:31,74,49;} .maestro{--bgc:15,36,24;}
.has-bg{position:relative;}
.svd-stage.has-bg{position:sticky;}
.has-bg > .wrap{position:relative; z-index:1;}
.has-bg > .svd-head,.has-bg > .svd-copy,.has-bg > .svd-bar{z-index:1;}
.sbg{position:absolute; left:0; right:0; top:0; height:100%; z-index:0; overflow:hidden; pointer-events:none;}
.sbg.top{height:min(100%, 120vh);}
.sbg img{width:100%; height:100%; object-fit:cover; object-position:var(--pos, right center); filter:saturate(0.9);}
.sbg::after{content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(var(--bgc),1) 0%, rgba(var(--bgc),0.96) 28%, rgba(var(--bgc),0.7) 52%, rgba(var(--bgc),0.28) 78%, rgba(var(--bgc),0.18) 100%),
             linear-gradient(180deg, rgba(var(--bgc),0.35) 0%, rgba(var(--bgc),0) 25%, rgba(var(--bgc),0) 62%, rgba(var(--bgc),1) 100%);}
.sbg.quiet-right::after{background:linear-gradient(270deg, rgba(var(--bgc),1) 0%, rgba(var(--bgc),0.96) 28%, rgba(var(--bgc),0.7) 52%, rgba(var(--bgc),0.28) 78%, rgba(var(--bgc),0.18) 100%),
             linear-gradient(180deg, rgba(var(--bgc),0.35) 0%, rgba(var(--bgc),0) 25%, rgba(var(--bgc),0) 62%, rgba(var(--bgc),1) 100%);}
.sbg.full::after{background:linear-gradient(90deg, rgba(var(--bgc),0.92) 0%, rgba(var(--bgc),0.8) 40%, rgba(var(--bgc),0.45) 100%), linear-gradient(180deg, rgba(var(--bgc),0.2) 0%, rgba(var(--bgc),0) 30%, rgba(var(--bgc),0.9) 100%);}
.band{margin-top:clamp(2.5rem,5vw,3.5rem); border-radius:12px; overflow:hidden; aspect-ratio:16/5; box-shadow:0 30px 60px -40px rgba(31,74,49,0.45);}
.band img{width:100%; height:100%; object-fit:cover; object-position:var(--pos, center);}
@media (max-width:900px){ .sbg img{opacity:0.55;} .sbg.top{height:min(100%, 70vh);} .band{aspect-ratio:16/7;} }

/* ===== SECTION RAIL (desktop) ===== */
.rail{position:fixed; right:clamp(0.9rem,1.6vw,1.6rem); top:50%; transform:translateY(-50%); z-index:120; display:flex; flex-direction:column; align-items:flex-end; gap:0; padding:0.6rem 0.5rem; border-radius:999px; --rc:31,74,49; --ra:22,163,74; transition:background 300ms ease;}
.rail:hover,.rail:focus-within{background:rgba(var(--rc),0.06);}
.rail.dark{--rc:255,255,255; --ra:76,193,120;}
.rail.dark:hover,.rail.dark:focus-within{background:rgba(255,255,255,0.08);}
.rail ol{list-style:none; margin:0; padding:0; position:relative; display:flex; flex-direction:column; gap:0.55rem;}
.rail ol::before{content:""; position:absolute; right:5px; top:6px; bottom:6px; width:1px; background:rgba(var(--rc),0.22);}
.rail ol::after{content:""; position:absolute; right:5px; top:6px; height:calc((100% - 12px) * var(--p,0)); width:1px; background:rgb(var(--ra)); transition:height 200ms linear;}
.rail li{position:relative;}
.rail a{display:flex; align-items:center; justify-content:flex-end; gap:0.7rem; height:18px; text-decoration:none; color:rgb(var(--rc)); outline:none;}
.rail .lbl{font-family:'Inter',sans-serif; font-size:0.78rem; font-weight:500; letter-spacing:0.01em; white-space:nowrap; opacity:0; transform:translateX(8px); transition:opacity 250ms var(--ease), transform 350ms var(--ease); pointer-events:none;}
.rail .lbl i{font-style:normal; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.14em; color:rgba(var(--rc),0.55); margin-right:0.45rem;}
.rail:hover .lbl,.rail:focus-within .lbl{opacity:0.72; transform:none;}
.rail .lbl{transition-delay:calc(var(--i) * 18ms);}
.rail .dot{position:relative; width:11px; height:11px; flex:none; display:grid; place-items:center;}
.rail .dot::before{content:""; width:5px; height:5px; border-radius:50%; background:rgba(var(--rc),0.45); transition:transform 300ms var(--ease), background 300ms ease, border-radius 300ms ease, width 300ms var(--ease), height 300ms var(--ease);}
.rail a:hover .dot::before,.rail a:focus-visible .dot::before{background:rgb(var(--rc)); transform:scale(1.4);}
.rail li.on a{color:rgb(var(--rc));}
.rail li.on .lbl{opacity:1; font-weight:700;}
.rail li.on .dot::before{width:11px; height:11px; border-radius:1px; background:rgb(var(--ra)); transform:none; clip-path:polygon(22% 0, 44% 0, 78% 100%, 56% 100%);}
.rail .count{margin-top:0.7rem; font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.16em; color:rgba(var(--rc),0.6); font-variant-numeric:tabular-nums; align-self:flex-end; padding-right:1px;}
.rail .count b{color:rgb(var(--rc)); font-weight:600;}
@media (max-width:1100px){.rail{display:none;}}
@media (prefers-reduced-motion:reduce){.rail .lbl,.rail .dot::before,.rail ol::after{transition:none;}}

/* ===== BURGER + MOBILE MENU ===== */
.burger{display:none; width:44px; height:44px; border:0; background:none; padding:0; cursor:pointer; position:relative; border-radius:50%;}
.burger span{position:absolute; left:11px; width:22px; height:2px; background:#fff; border-radius:2px; transition:transform 350ms var(--ease), opacity 250ms ease, top 350ms var(--ease), background 300ms ease;}
.burger span:nth-child(1){top:14px;} .burger span:nth-child(2){top:21px;} .burger span:nth-child(3){top:28px;}
.nav.scrolled .burger span{background:var(--forest);}
body.menu-open .burger span{background:#fff;}
body.menu-open .burger span:nth-child(1){top:21px; transform:rotate(45deg);}
body.menu-open .burger span:nth-child(2){opacity:0; transform:scaleX(0);}
body.menu-open .burger span:nth-child(3){top:21px; transform:rotate(-45deg);}
.burger:focus-visible{outline:2px solid var(--green); outline-offset:2px;}
@media (max-width:900px){.burger{display:block;} .nav-right{gap:0.5rem;}}
@media (max-width:420px){.nav .wordmark{font-size:0.76rem; letter-spacing:0.08em;} .nav .lockup-row{gap:0.5rem;} .nav .lang svg{display:none;} .nav .lang{padding:0.25rem 0.3rem;} .nav-right{gap:0.3rem;} .burger{margin-right:-6px;}}
.mnav{position:fixed; inset:0; z-index:90; background:var(--forest-4); color:#fff; display:flex; flex-direction:column; padding:5.5rem clamp(1.25rem,6vw,2.5rem) 2rem; overflow-y:auto; opacity:0; visibility:hidden; transform:translateY(-2%); transition:opacity 350ms var(--ease), transform 450ms var(--ease), visibility 0s linear 450ms;}
body.menu-open .mnav{opacity:1; visibility:visible; transform:none; transition:opacity 350ms var(--ease), transform 450ms var(--ease), visibility 0s;}
body.menu-open{overflow:hidden;}
body.menu-open .nav{background:transparent!important; box-shadow:none!important; backdrop-filter:none!important;}
body.menu-open .nav .wordmark{color:#fff!important;} body.menu-open .nav .nmark rect{fill:#fff!important;} body.menu-open .nav .lockup-tag{display:none!important;}
body.menu-open .nav .lang{border-color:rgba(255,255,255,0.35);} body.menu-open .nav .lang svg{color:#fff;} body.menu-open .nav .lang button,body.menu-open .nav .lang a{color:rgba(255,255,255,0.65);} body.menu-open .nav .lang button.on,body.menu-open .nav .lang a.on{color:var(--forest); background:#fff;}
.mnav::before{content:""; position:absolute; right:-10%; top:0; bottom:0; width:45%; background:var(--forest-3); clip-path:polygon(34% 0,100% 0,100% 100%,0 100%); pointer-events:none;}
.mnav > *{position:relative;}
.mnav .eyebrow{color:var(--gold); margin-bottom:0.75rem;}
.mnav ol{list-style:none; margin:0; padding:0; display:flex; flex-direction:column;}
.mnav li{border-top:1px solid rgba(255,255,255,0.12); opacity:0; transform:translateY(14px); transition:opacity 400ms var(--ease), transform 500ms var(--ease); transition-delay:calc(var(--i) * 35ms + 120ms);}
body.menu-open .mnav li{opacity:1; transform:none;}
.mnav li a{display:flex; align-items:baseline; gap:0.9rem; padding:0.7rem 0; text-decoration:none; color:#fff; font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:700; font-size:clamp(1.35rem,5.5vw,1.8rem); letter-spacing:-0.01em;}
.mnav li a i{font-style:normal; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.16em; color:var(--green-soft); min-width:2em;}
.mnav li.on a{color:var(--green-soft);}
.mnav .mfoot{margin-top:auto; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,0.12); display:flex; flex-direction:column; gap:0.9rem;}
.mnav .mfoot .row{display:flex; gap:0.75rem; flex-wrap:wrap; align-items:center;}
.mnav .mfoot a.plain{color:var(--dark-mute); text-decoration:none; font-size:0.9rem;}
@media (min-width:901px){.mnav{display:none;}}
@media (prefers-reduced-motion:reduce){.mnav,.mnav li,.burger span{transition:none;}}

/* ===== LANGUAGE SWITCH ===== */
.lang{display:inline-flex; align-items:center; gap:0.35rem; border:1px solid rgba(255,255,255,0.35); border-radius:999px; padding:0.3rem 0.55rem 0.3rem 0.5rem; transition:border-color 300ms ease, background 300ms ease;}
.lang svg{width:15px; height:15px; stroke:currentColor; fill:none; stroke-width:1.5; color:#fff; transition:color 300ms ease;}
.lang button,.lang a{text-decoration:none; font:inherit; font-family:'IBM Plex Mono',monospace; font-size:0.66rem; font-weight:600; letter-spacing:0.1em; color:rgba(255,255,255,0.65); background:none; border:0; padding:0.15rem 0.35rem; border-radius:999px; cursor:pointer; transition:color 200ms ease, background 200ms ease;}
.lang button.on,.lang a.on{color:var(--forest); background:#fff;}
.nav.scrolled .lang{border-color:var(--line);}
.nav.scrolled .lang svg{color:var(--forest);}
.nav.scrolled .lang button,.nav.scrolled .lang a{color:var(--mute);}
.nav.scrolled .lang button.on,.nav.scrolled .lang a.on{color:#fff; background:var(--forest);}
.nav-right{display:flex; align-items:center; gap:0.9rem;}
.lang.foot{border-color:var(--line-dark);}
.lang.foot svg{color:var(--dark-mute);}
.lang.foot button,.lang.foot a{color:var(--dark-mute);}
.lang.foot button.on,.lang.foot a.on{color:var(--forest); background:#fff;}

/* ===== LEGAL PANELS ===== */
.legal{position:fixed; inset:0; z-index:300; background:rgba(15,36,24,0.55); display:none; align-items:flex-start; justify-content:center; overflow-y:auto; padding:clamp(1rem,4vh,3rem) 1rem;}
.legal.open{display:flex;}
.legal-doc{background:var(--cream); color:var(--body); width:min(860px,100%); border-radius:14px; padding:clamp(1.75rem,4vw,3.25rem); position:relative; box-shadow:0 40px 100px -30px rgba(15,36,24,0.6);}
.legal-doc::before{content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--green); border-radius:14px 0 0 14px;}
.legal-close{position:absolute; right:1rem; top:1rem; font:inherit; font-size:0.8rem; font-weight:600; color:var(--forest); background:var(--card); border:1px solid var(--line); border-radius:999px; padding:0.45em 0.9em; cursor:pointer;}
.legal-close:hover{background:var(--forest); color:#fff; border-color:var(--forest);}
.legal-doc h1{font-size:clamp(1.9rem,4vw,3rem); margin-top:0.5rem;}
.legal-doc h2{font-size:1.35rem; margin-top:2.2rem;}
.legal-doc h3{font-size:1.05rem; margin-top:1.4rem;}
.legal-doc p,.legal-doc li{font-size:0.96rem; line-height:1.65;}
.legal-doc p{margin-top:0.7rem;}
.legal-doc ul{margin:0.6rem 0 0; padding-left:1.2rem;}
.legal-doc li{margin-top:0.35rem;}
.legal-doc .meta{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold);}
.legal-doc .draft{margin-top:1.4rem; padding:0.9rem 1.1rem; background:var(--cream-2); border:1px solid var(--line); border-radius:8px; font-size:0.86rem; color:var(--mute);}
.legal-doc table{width:100%; border-collapse:collapse; margin-top:0.9rem; font-size:0.9rem;}
.legal-doc th,.legal-doc td{text-align:left; vertical-align:top; padding:0.65rem 0.6rem; border-top:1px solid var(--line);}
.legal-doc th{font-weight:600; color:var(--forest); font-size:0.82rem;}
.legal-doc .tbl{overflow-x:auto;}
.legal-doc a{color:var(--forest); font-weight:600; text-decoration:none; border-bottom:1px solid var(--green);}
.legal-doc address{font-style:normal; line-height:1.7;}
body.legal-open{overflow:hidden;}
.lang-switch{display:inline-flex; gap:0; border:1px solid var(--line); border-radius:999px; overflow:hidden; margin-bottom:1rem;}
.lang-switch button{font:inherit; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; letter-spacing:0.12em; font-weight:600; padding:0.45em 0.9em; background:var(--card); color:var(--forest); border:0; cursor:pointer;}
.lang-switch button.on{background:var(--forest); color:#fff;}
.legal-doc[data-lang="de"]{display:none;}
.legal.de .legal-doc[data-lang="de"]{display:block;}
.legal.de .legal-doc[data-lang="en"]{display:none;}

/* ===== FOOTER ===== */
footer{background:var(--forest-4); color:var(--dark-mute);}
.foot{display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr 1fr; gap:2.2rem; padding-block:clamp(3rem,5vw,4.5rem);}
.foot h5{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); margin:0 0 1rem;}
.foot ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:0.6rem;}
.foot a{color:#fff; text-decoration:none; font-size:0.92rem; opacity:0.85;} .foot a:hover{opacity:1;}
.foot-addr{font-size:0.86rem; line-height:1.75; margin-top:1rem;}
.foot-bottom{border-top:1px solid var(--line-dark); padding-block:1.4rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.75rem; font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.14em; text-transform:uppercase;}
@media (max-width:900px){.foot{grid-template-columns:1fr 1fr;}}
.foot > *{min-width:0;} .foot a{overflow-wrap:anywhere;}
h1,h2,h3{overflow-wrap:break-word;} html:lang(de) h1,html:lang(de) h2,html:lang(de) h3{-webkit-hyphens:auto; hyphens:auto;} .hero h1 .h1-kicker{-webkit-hyphens:manual; hyphens:manual;}
@media (max-width:560px){.foot > :first-child{grid-column:1 / -1;}}

/* ===== REVEAL ===== */
[data-reveal]{opacity:1; transform:none;}
.js [data-reveal]{opacity:0; transform:translateY(28px); transition:opacity 900ms var(--ease), transform 900ms var(--ease);}
.js [data-reveal].in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .js [data-reveal]{opacity:1; transform:none; transition:none;} html{scroll-behavior:auto;}
  .hero h1 .w > span,.hero .lede,.hero-actions,.hero-side{transform:none!important; opacity:1!important; transition:none!important;}
  .scroll-cue i{animation:none;}
}
/* ===== SUBPAGES (loaded after the site stylesheet) ===== */
:root{--sp-gap:clamp(2rem,6vw,6rem);}
body.sp{background:var(--cream);}

/* nav: six page links need more room than the homepage anchors */
.sp-nav .nav-links{gap:1.7rem;}
.sp-nav .nav-links a[aria-current="page"]{opacity:1;}
.sp-nav .nav-links a[aria-current="page"]::after{right:0;}
@media (max-width:1320px){
  .sp-nav .nav-links,.sp-nav .nav-cta{display:none;}
  .sp-nav .burger{display:block;}
  .sp-nav .nav-right{gap:0.5rem;}
  body.sp .mnav{display:flex;}
}

/* ===== hero ===== */
.sp-hero{position:relative; background:var(--forest-4); color:#fff; overflow:hidden; padding:clamp(8.5rem,17vh,11.5rem) 0 clamp(4rem,8vw,6.5rem);}
.sp-hero-bg{position:absolute; inset:0; z-index:0;}
.sp-hero-bg img{width:100%; height:100%; object-fit:cover; object-position:var(--pos,70% 40%); opacity:0.62;}
.sp-hero-bg::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(15,36,24,0.97) 0%, rgba(15,36,24,0.84) 46%, rgba(15,36,24,0.38) 100%), linear-gradient(0deg, rgba(15,36,24,0.92) 0%, rgba(15,36,24,0) 50%);}
.sp-hero .wrap{position:relative; z-index:1;}
.sp-hero-grid{display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,0.7fr); gap:var(--sp-gap); align-items:end;}
.crumbs{display:flex; flex-wrap:wrap; gap:0.55rem; font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--dark-mute); margin-bottom:2rem;}
.crumbs a{color:var(--dark-mute); text-decoration:none; border-bottom:1px solid transparent; transition:color 200ms ease, border-color 200ms ease;}
.crumbs a:hover{color:#fff; border-color:var(--green-soft);}
.crumbs [aria-current]{color:var(--gold);}
.sp-hero h1{font-size:clamp(2.15rem,6.2vw,5.4rem); line-height:1.0; color:#fff; letter-spacing:-0.03em; margin-top:1.1rem; max-width:15ch; animation:spRise 900ms var(--ease) both;}
.sp-hero h1 em{color:var(--green-soft);}
.sp-hero .lede{color:#e6efe9; margin-top:1.6rem; max-width:52ch;}
.sp-actions{display:flex; gap:0.9rem; flex-wrap:wrap; margin-top:2.2rem;}
.sp-hero .btn-outline,.sp-contact .btn-outline{border-color:rgba(255,255,255,0.45); color:#fff;}
.sp-hero .btn-outline::before,.sp-contact .btn-outline::before{background:#fff;}
.sp-hero .btn-outline:hover,.sp-contact .btn-outline:hover{color:var(--forest);}
@keyframes spRise{from{transform:translateY(28px);} to{transform:none;}}
@media (prefers-reduced-motion:reduce){.sp-hero h1{animation:none;}}

/* light editorial hero (formats, guide) */
.sp-hero.light{background:var(--cream-2); color:var(--body); padding-top:clamp(8rem,16vh,10.5rem);}
.sp-hero.light h1{color:var(--forest);}
.sp-hero.light h1 em{color:var(--green);}
.sp-hero.light .lede{color:var(--body);}
.sp-hero.light .crumbs,.sp-hero.light .crumbs a{color:var(--mute);}
.sp-hero.light .crumbs a:hover{color:var(--forest);}
.sp-hero.light .sp-aside{border-left-color:var(--line);}
.sp-hero.light .sp-kv > div{border-bottom-color:var(--line);}
.sp-hero.light .sp-kv dt{color:var(--mute);}
.sp-hero.light .sp-kv dd{color:var(--forest);}
.sp-hero.light .sp-kv dd em{color:var(--green);}
.sp-hero.light .sp-kv dd small{color:var(--mute);}
.sp-hero-media{border-radius:14px; overflow:hidden; aspect-ratio:4/3; background:var(--cream);}
.sp-hero-media img{width:100%; height:100%; object-fit:cover;}
body.hero-light .nav{transition:none;}

.sp-hero.light .btn-outline{border-color:var(--forest); color:var(--forest);}
.sp-hero.light .btn-outline::before{background:var(--forest);}
.sp-hero.light .btn-outline:hover{color:#fff;}

/* hero aside: key facts */
.sp-aside{border-left:1px solid rgba(255,255,255,0.2); padding-left:clamp(1.25rem,2.5vw,2rem);}
.sp-kv{margin:0; display:grid; gap:0;}
.sp-kv > div{padding:0.95rem 0; border-bottom:1px solid rgba(255,255,255,0.12);}
.sp-kv > div:first-child{padding-top:0;}
.sp-kv dt{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--dark-mute);}
.sp-kv dd{margin:0.3rem 0 0; font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:clamp(1.35rem,2.2vw,1.8rem); line-height:1.1; color:#fff;}
.sp-kv dd em{font-style:normal; color:var(--green-soft); font-size:0.7em; margin-left:0.15em;}
.sp-kv dd small{display:block; font-family:'Inter',sans-serif; font-weight:400; font-size:0.82rem; color:var(--dark-mute); margin-top:0.25rem; line-height:1.4;}

/* ===== sections ===== */
.sp-sec{padding-block:clamp(4.5rem,9vw,7.5rem);}
.sp-sec.tight{padding-block:clamp(3rem,6vw,4.5rem);}
.sp-h2{font-size:clamp(2.1rem,4.6vw,3.7rem);}
.sp-head{max-width:68ch; margin-bottom:clamp(2.2rem,4.5vw,3.5rem);}
.sp-head .lede{margin-top:1.2rem;}
.sp-split{display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr); gap:var(--sp-gap); align-items:start;}
.sp-split.even{grid-template-columns:1fr 1fr;}
.sp-sticky{position:sticky; top:6.5rem;}
.prose{font-size:1.03rem; line-height:1.72; max-width:66ch;}
.prose p + p,.prose p + ul,.prose ul + p,.prose p + ol,.prose ol + p{margin-top:1.05rem;}
.prose h3{font-size:clamp(1.35rem,2.2vw,1.7rem); margin:2.4rem 0 0.8rem; line-height:1.15;}
.prose h3:first-child{margin-top:0;}
.prose strong{color:var(--forest); font-weight:600;}
.on-forest .prose strong{color:#fff;}
.prose a{color:var(--forest); font-weight:600; text-decoration:none; border-bottom:1px solid var(--green);}
.on-forest .prose a{color:#fff; border-color:var(--green-soft);}
.prose ul,.prose ol{margin:0; padding-left:1.2rem;}
.prose li + li{margin-top:0.45rem;}
.prose ul.dash{list-style:none; padding-left:0;}
.prose ul.dash li{position:relative; padding-left:1.4rem;}
.prose ul.dash li::before{content:""; position:absolute; left:0; top:0.72em; width:10px; height:3px; background:var(--green); clip-path:polygon(2px 0,100% 0,calc(100% - 2px) 100%,0 100%);}
.note-line{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.06em; color:var(--mute); margin-top:1.4rem; line-height:1.7;}
.on-forest .note-line{color:var(--dark-mute);}

/* stat strip */
.sp-stats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.sp-stat{padding:1.6rem 1.4rem 1.7rem; border-left:1px solid var(--line);}
.sp-stat:first-child{border-left:0; padding-left:0;}
.sp-stat .n{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:clamp(2.1rem,4vw,3.3rem); line-height:1; color:var(--forest); font-variant-numeric:tabular-nums;}
.sp-stat .n em{font-style:normal; color:var(--green); font-size:0.55em; margin-left:0.1em;}
.sp-stat .l{margin-top:0.55rem; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--mute); line-height:1.5;}
.on-forest .sp-stats{border-color:var(--line-dark);} .on-forest .sp-stat{border-color:var(--line-dark);}
.on-forest .sp-stat .n{color:#fff;} .on-forest .sp-stat .n em{color:var(--green-soft);} .on-forest .sp-stat .l{color:var(--dark-mute);}

/* numbered steps */
.sp-steps{list-style:none; margin:0; padding:0; counter-reset:st; display:grid; gap:0;}
.sp-steps > li{counter-increment:st; display:grid; grid-template-columns:4.2rem minmax(0,1fr); gap:1.2rem; padding:1.6rem 0; border-top:1px solid var(--line);}
.sp-steps > li:last-child{border-bottom:1px solid var(--line);}
.sp-steps > li::before{content:counter(st, decimal-leading-zero); font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:2.1rem; line-height:1; color:var(--green);}
.sp-steps h3{font-size:clamp(1.25rem,2vw,1.55rem); line-height:1.15;}
.sp-steps p{margin-top:0.5rem; line-height:1.65;}
.sp-steps .meta{display:inline-block; margin-top:0.7rem; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--mute);}
.on-forest .sp-steps > li{border-color:var(--line-dark);} .on-forest .sp-steps > li::before{color:var(--green-soft);}

/* tables: sharp, editorial */
.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border-top:2px solid var(--forest);}
.sp-table{width:100%; border-collapse:collapse; font-size:0.95rem; min-width:34rem;}
.sp-table caption{caption-side:bottom; text-align:left; padding-top:0.9rem; font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.06em; color:var(--mute);}
.sp-table th{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--mute); text-align:left; padding:1rem 1rem 0.8rem 0; border-bottom:1px solid var(--line); vertical-align:bottom;}
.sp-table td{padding:0.95rem 1rem 0.95rem 0; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.55;}
.sp-table td:first-child{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:700; color:var(--forest); font-size:1.02rem;}
.sp-table tr.hi td{background:rgba(22,163,74,0.07);}
.sp-table tr.hi td:first-child{box-shadow:inset 4px 0 0 var(--green); padding-left:0.9rem;}
.sp-table .yes{color:var(--green); font-weight:600;}
.sp-table .mono{font-family:'IBM Plex Mono',monospace; font-size:0.85rem;}
.on-forest .table-scroll{border-color:var(--green-soft);}
.on-forest .sp-table th{color:var(--dark-mute); border-color:var(--line-dark);}
.on-forest .sp-table td{border-color:var(--line-dark); color:#dfe9e2;}
.on-forest .sp-table td:first-child{color:#fff;}

/* cards: bento with varied spans */
.sp-bento{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1rem;}
.sp-card{grid-column:span 2; background:var(--card); border:1px solid var(--line); border-radius:12px; padding:clamp(1.4rem,2.4vw,2rem); display:flex; flex-direction:column; gap:0.7rem; transition:transform 300ms var(--ease-ui), box-shadow 300ms var(--ease-ui);}
.sp-card:hover{transform:translateY(-2px); box-shadow:0 14px 30px -18px rgba(31,74,49,0.35);}
.sp-card.w3{grid-column:span 3;} .sp-card.w4{grid-column:span 4;} .sp-card.w6{grid-column:span 6;}
.sp-card.dark{background:var(--forest); border-color:var(--forest); color:var(--dark-mute);}
.sp-card.dark h3{color:#fff;} .sp-card.dark .k{color:var(--gold);}
.sp-card .k{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--mute);}
.sp-card h3{font-size:clamp(1.3rem,2vw,1.6rem); line-height:1.12;}
.sp-card p{line-height:1.62; font-size:0.97rem;}
.sp-card .cfoot{margin-top:auto; padding-top:0.9rem; border-top:1px solid var(--line); font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.08em; color:var(--mute); line-height:1.6;}
.sp-card.dark .cfoot{border-color:var(--line-dark); color:var(--dark-mute);}
.sp-card .ico{width:44px; height:44px; color:var(--green);}
.sp-card.dark .ico{color:var(--green-soft);}
.sp-card .ico svg{width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round;}
.tagrow{display:flex; flex-wrap:wrap; gap:0.4rem;}
.tag{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.1em; text-transform:uppercase; padding:0.3rem 0.55rem; border:1px solid var(--line); border-radius:4px; color:var(--forest); background:var(--cream);}
.sp-card.dark .tag{border-color:var(--line-dark); background:transparent; color:#dfe9e2;}

/* format rows */
.fmt-list{border-top:2px solid var(--forest);}
.fmt-row{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,0.9fr) minmax(0,0.85fr); gap:clamp(1.5rem,3.5vw,3rem); align-items:center; padding-block:clamp(1.8rem,3.5vw,2.6rem); border-bottom:1px solid var(--line);}
.fmt-n{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.16em; color:var(--green);}
.fmt-main h3{font-size:clamp(1.6rem,3vw,2.3rem); margin-top:0.4rem; line-height:1.05;}
.fmt-main p{margin-top:0.8rem; line-height:1.68; max-width:52ch;}
.fmt-spec{margin:0; display:grid; gap:0.9rem;}
.fmt-spec dt{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--mute);}
.fmt-spec dd{margin:0.2rem 0 0; font-size:0.97rem; color:var(--ink); line-height:1.45;}
.fmt-spec dd a{color:var(--forest); font-weight:600; text-decoration:none; border-bottom:1px solid var(--green);}
.fmt-img{border-radius:12px; overflow:hidden; aspect-ratio:4/3; background:var(--cream-2);}
.fmt-img img{width:100%; height:100%; object-fit:cover; transition:transform 700ms var(--ease);}
.fmt-row:hover .fmt-img img{transform:scale(1.04);}
.fmt-type{display:grid; place-items:center; background:linear-gradient(135deg,var(--cream-2),#ebe2cc);}
.fmt-type svg{width:42%; height:auto; fill:none; stroke:var(--green); stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round;}
@media (max-width:900px){.fmt-row{grid-template-columns:1fr; gap:1.2rem;} .fmt-img{aspect-ratio:16/9;}}

/* big statement */
.sp-statement{font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:800; font-size:clamp(2rem,5vw,4.2rem); line-height:1.06; letter-spacing:-0.025em; color:var(--forest); max-width:22ch;}
.sp-statement em{font-style:normal; color:var(--green);}
.on-forest .sp-statement{color:#fff;} .on-forest .sp-statement em{color:var(--green-soft);}

/* FAQ */
.sp-faq{border-top:1px solid var(--line);}
.sp-faq details{border-bottom:1px solid var(--line);}
.sp-faq summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; padding:1.35rem 0; font-family:'Fraunces',Georgia,serif; font-variation-settings:'SOFT' 50; font-weight:700; font-size:clamp(1.1rem,1.8vw,1.35rem); color:var(--forest); line-height:1.25;}
.sp-faq summary::-webkit-details-marker{display:none;}
.sp-faq summary::after{content:""; flex:none; width:14px; height:14px; background:linear-gradient(var(--green),var(--green)) center/100% 2px no-repeat, linear-gradient(var(--green),var(--green)) center/2px 100% no-repeat; transition:transform 300ms var(--ease-ui);}
.sp-faq details[open] summary::after{transform:rotate(45deg);}
.sp-faq .a{padding:0 0 1.5rem; max-width:70ch; line-height:1.7;}
.sp-faq .a p + p{margin-top:0.8rem;}
.sp-faq summary:focus-visible{outline:2px solid var(--green); outline-offset:4px;}

/* table of contents (guide) */
.sp-toc{list-style:none; margin:0; padding:0; counter-reset:toc; border-left:1px solid var(--line);}
.sp-toc li{counter-increment:toc;}
.sp-toc a{display:flex; gap:0.8rem; align-items:baseline; padding:0.5rem 0 0.5rem 1.1rem; margin-left:-1px; border-left:2px solid transparent; text-decoration:none; color:var(--body); font-size:0.93rem; line-height:1.4; transition:color 200ms ease, border-color 200ms ease;}
.sp-toc a::before{content:counter(toc, decimal-leading-zero); font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:var(--green); letter-spacing:0.1em;}
.sp-toc a:hover,.sp-toc a.on{color:var(--forest); border-left-color:var(--green);}
.sp-toc-k{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--mute); margin-bottom:0.9rem; display:block;}
.guide-step{scroll-margin-top:6rem; padding-block:clamp(2.2rem,4vw,3rem); border-top:1px solid var(--line);}
.guide-step:first-child{border-top:0; padding-top:0;}
.guide-step .num{font-family:'IBM Plex Mono',monospace; font-size:0.64rem; letter-spacing:0.18em; color:var(--green); text-transform:uppercase;}
.guide-step h2{font-size:clamp(1.7rem,3.2vw,2.5rem); margin:0.6rem 0 1.1rem; line-height:1.08;}
.callout{margin-top:1.4rem; padding:1.1rem 1.3rem; border-left:4px solid var(--green); background:var(--card); border-radius:0 10px 10px 0; font-size:0.96rem; line-height:1.65;}
.callout strong{color:var(--forest);}
.callout.gold{border-left-color:var(--gold);}

/* related pages: large deep-dive cards */
.sp-related{padding-block:clamp(4rem,8vw,6rem);}
.rel-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:0.5rem;}
.rel-grid .dive{margin:0; max-width:none; grid-template-columns:auto minmax(0,1fr); align-content:start; height:100%;}
.rel-grid .dive-go{grid-column:1 / -1; justify-self:start; margin-top:0.4rem;}
.rel-more{display:flex; flex-wrap:wrap; align-items:center; gap:0.6rem 1rem; margin-top:1.6rem; font-size:0.9rem; color:var(--mute);}
.rel-more ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:0.5rem;}
.rel-more a{display:inline-flex; align-items:center; gap:0.4em; padding:0.55em 0.95em; border:1px solid var(--line); border-radius:999px; background:var(--card); color:var(--forest); font-weight:600; text-decoration:none; transition:border-color 200ms ease, background 200ms ease;}
.rel-more a::after{content:"\2192"; color:var(--green);}
.rel-more a:hover{border-color:var(--green); background:#fff;}
@media (max-width:1000px){.rel-grid{grid-template-columns:1fr;}}

/* contact band */
.sp-contact{padding-block:clamp(4.5rem,9vw,7rem); background:var(--forest-3);}
.sp-contact-grid{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,0.8fr); gap:var(--sp-gap); align-items:center;}
.sp-contact h2{font-size:clamp(2.2rem,4.8vw,3.8rem);}
.sp-person{display:flex; gap:1.2rem; align-items:center; padding:1.6rem; border:1px solid var(--line-dark); border-radius:14px; background:rgba(255,255,255,0.04);}
.sp-person .person-av{flex:none; width:4rem; height:4rem; border-radius:50%; display:grid; place-items:center; background:var(--green); color:#fff; font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.3rem; letter-spacing:0.04em;}
.sp-person .person-txt{display:flex; flex-direction:column; line-height:1.35; min-width:0;}
.sp-person .person-k{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--gold);}
.sp-person strong{font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.45rem; color:#fff; margin-top:0.25rem;}
.sp-person .person-role{font-size:0.9rem; color:var(--dark-mute);}
.sp-person .person-mail{margin-top:0.7rem; font-size:0.86rem; color:var(--dark-mute); overflow-wrap:anywhere;}
.sp-person .person-mail a{color:#fff; text-decoration:none; border-bottom:1px solid var(--green-soft);}

/* image band */
.sp-img{border-radius:12px; overflow:hidden; background:var(--forest-3);}
.sp-img img{width:100%; height:100%; object-fit:cover;}
.sp-img.r0{border-radius:0;}

/* ===== MaestroBiome: temperature scale ===== */
.thermo{position:relative; padding-top:3rem; margin-top:0.5rem;}
.thermo-track{position:relative; height:10px; border-radius:999px; background:linear-gradient(90deg,#7cc3e6 0%,#a8d3c0 14%,#4cc178 30%,#c4a369 62%,#d9774b 100%);}
.thermo-scale{position:relative; height:1.2rem; margin-top:0.8rem; font-family:'IBM Plex Mono',monospace; font-size:0.62rem; color:var(--dark-mute);}
.thermo-scale span{position:absolute; transform:translateX(-50%); white-space:nowrap;}
.tp{position:absolute; top:calc(3rem + 5px); transform:translate(-50%,-50%); width:28px; height:28px; display:grid; place-items:center; background:none; border:0; padding:0; cursor:pointer; font:inherit; z-index:1;}
.tp i{display:block; width:14px; height:14px; border-radius:50%; background:#fff; box-shadow:0 0 0 3px var(--forest-4); transition:transform 250ms var(--ease-ui), box-shadow 250ms ease;}
.tp.open i{background:var(--forest-4); box-shadow:0 0 0 2px #fff, 0 0 0 5px var(--forest-4);}
.tp.limit i{background:#d9774b;}
.tp span{position:absolute; bottom:calc(100% + 0.35rem); left:50%; transform:translateX(-50%); white-space:nowrap; font-family:'IBM Plex Mono',monospace; font-size:0.56rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--dark-mute); opacity:0; transition:opacity 200ms ease; pointer-events:none;}
.tp:hover i,.tp:focus-visible i,.tp.on i{transform:scale(1.35);}
.tp.on i{box-shadow:0 0 0 3px var(--forest-4), 0 0 0 6px rgba(76,193,120,0.7);}
.tp.open.on i{box-shadow:0 0 0 2px #fff, 0 0 0 5px var(--forest-4), 0 0 0 8px rgba(76,193,120,0.7);}
.tp:hover span,.tp:focus-visible span,.tp.on span{opacity:1; color:#fff;}
.tp:focus-visible{outline:none;}
.thermo-legend{display:flex; gap:1.4rem; flex-wrap:wrap; margin-top:1.2rem; font-size:0.84rem; color:var(--dark-mute);}
.thermo-legend span{display:inline-flex; align-items:center; gap:0.5rem;}
.thermo-legend i{width:11px; height:11px; border-radius:50%; background:#fff; display:inline-block;}
.thermo-legend i.o{background:transparent; box-shadow:inset 0 0 0 2px #fff;}
.thermo-legend i.l{background:#d9774b;}
.thermo-detail{margin-top:1.8rem; display:grid; grid-template-columns:auto minmax(0,1fr); gap:1.4rem; align-items:start; min-height:8rem; padding:1.4rem 1.5rem; border:1px solid var(--line-dark); border-radius:12px; background:rgba(255,255,255,0.04);}
.thermo-detail .t{font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:clamp(1.8rem,3.6vw,2.7rem); line-height:1; color:var(--green-soft); font-variant-numeric:tabular-nums; min-width:5.5ch;}
.thermo-detail h3{font-size:1.25rem; color:#fff;}
.thermo-detail p{margin-top:0.4rem; color:var(--dark-mute); line-height:1.6; font-size:0.95rem;}
.thermo-detail .src{display:block; margin-top:0.6rem; font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.08em; color:var(--gold); text-transform:uppercase;}
.thermo-list{list-style:none; margin:1.5rem 0 0; padding:0; display:none;}
.thermo-list li{padding:0.7rem 0; border-top:1px solid var(--line-dark); color:var(--dark-mute); font-size:0.93rem; line-height:1.55;}
.thermo-list strong{color:#fff;}
html:not(.js) .thermo-list{display:block;} html:not(.js) .thermo-detail{display:none;}

/* postbiotic generations */
.gen-grid{display:grid; grid-template-columns:1fr 1fr 1.25fr; gap:1rem; align-items:stretch;}
.gen{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:clamp(1.4rem,2.4vw,2rem); display:flex; flex-direction:column; gap:0.7rem;}
.gen-n{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--mute);}
.gen h3{font-size:clamp(1.35rem,2.2vw,1.8rem);}
.gen svg{width:100%; max-width:220px; height:auto; margin:0.4rem 0;}
.gen p{line-height:1.62; font-size:0.97rem;}
.gen .c-a{fill:rgba(22,163,74,0.18); stroke:var(--green); stroke-width:1.5;}
.gen .c-b{fill:rgba(196,163,105,0.2); stroke:var(--gold); stroke-width:1.5;}
.gen .c-l{stroke:var(--mute); stroke-width:1.5; stroke-dasharray:2 3;}
.gen .c-f,.gen .c-f2{fill:none; stroke:var(--green); stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.gen .c-f{stroke-dasharray:4 5; animation:flow 1.4s linear infinite;}
.gen.hi{background:var(--forest); border-color:var(--forest); color:var(--dark-mute); transform:translateY(-10px); box-shadow:0 24px 40px -24px rgba(15,36,24,0.6);}
.gen.hi h3{color:#fff;} .gen.hi .gen-n{color:var(--gold);}
.gen.hi .c-a{fill:rgba(76,193,120,0.3); stroke:var(--green-soft);} .gen.hi .c-b{fill:rgba(196,163,105,0.25);}
.gen.hi .c-f,.gen.hi .c-f2{stroke:var(--green-soft);}
@media (max-width:1000px){.gen-grid{grid-template-columns:1fr;} .gen.hi{transform:none;}}
@media (prefers-reduced-motion:reduce){.gen .c-f{animation:none;}}

/* endpoints grid */
.ep-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0.8rem; margin-top:1.6rem;}
.ep{padding:1.1rem 1.2rem; border:1px solid var(--line-dark); border-radius:10px; background:rgba(255,255,255,0.03);}
.ep b{display:block; font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.2rem; color:#fff;}
.ep span{display:block; margin-top:0.3rem; font-family:'IBM Plex Mono',monospace; font-size:0.58rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--green-soft);}
.ep small{display:block; margin-top:0.35rem; font-size:0.82rem; color:var(--dark-mute); line-height:1.45;}
@media (max-width:700px){.ep-grid{grid-template-columns:1fr 1fr;}}

/* cascade animation */
.cascade2{width:100%; height:auto; display:block;}
.cascade2 text{font-family:'Inter',sans-serif; font-size:13px; fill:#e6efe9;}
.cascade2 .mono{font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.14em; fill:var(--gold);}
.cascade2 .node{fill:rgba(255,255,255,0.05); stroke:rgba(255,255,255,0.22);}
.cascade2 .node-hi{fill:rgba(76,193,120,0.16); stroke:var(--green-soft);}
.cascade2 .flow{fill:none; stroke:var(--green-soft); stroke-width:2; stroke-dasharray:4 8; animation:flow 1.4s linear infinite;}
.cascade2 .flow.slow{animation-duration:2.2s;}
.cascade2 .dim{fill:none; stroke:rgba(255,255,255,0.25); stroke-width:1.5;}
@keyframes flow{to{stroke-dashoffset:-24;}}
@media (prefers-reduced-motion:reduce){.cascade2 .flow{animation:none;}}

/* publications */
.pubs{list-style:none; margin:0; padding:0; border-top:1px solid var(--line-dark);}
.pubs li{padding:1.3rem 0; border-bottom:1px solid var(--line-dark); display:grid; grid-template-columns:5.5rem minmax(0,1fr); gap:1.2rem;}
.pubs .yr{font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.6rem; color:var(--green-soft); line-height:1;}
.pubs .ti{color:#fff; font-weight:600; line-height:1.45;}
.pubs .jr{margin-top:0.35rem; color:var(--dark-mute); font-size:0.9rem; line-height:1.5;}
.pubs .jr a{color:#fff; border-bottom:1px solid var(--green-soft); text-decoration:none;}
.pubs .tp2{display:inline-block; margin-top:0.55rem; font-family:'IBM Plex Mono',monospace; font-size:0.58rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold);}

/* strain catalogue */
.cat-tools{display:flex; gap:0.8rem; flex-wrap:wrap; align-items:center; margin-bottom:1.4rem;}
.cat-tools input{font:inherit; font-size:0.95rem; padding:0.75em 1em; border:1px solid var(--line); border-radius:8px; background:var(--card); min-width:min(100%,18rem); color:var(--ink);}
.cat-tools input:focus{outline:2px solid var(--green); outline-offset:1px; border-color:transparent;}
.cat-filter{display:flex; gap:0.4rem; flex-wrap:wrap;}
.cat-filter button{font:inherit; font-size:0.82rem; font-weight:600; padding:0.55em 0.95em; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--forest); cursor:pointer; transition:background 200ms ease, color 200ms ease, border-color 200ms ease;}
.cat-filter button[aria-pressed="true"]{background:var(--forest); color:#fff; border-color:var(--forest);}
.cat-count{font-family:'IBM Plex Mono',monospace; font-size:0.66rem; letter-spacing:0.12em; color:var(--mute); text-transform:uppercase; margin-left:auto;}
.sp-table i{font-style:italic;}
.sp-table .pat{display:inline-block; margin-left:0.4rem; font-family:'IBM Plex Mono',monospace; font-size:0.56rem; letter-spacing:0.12em; text-transform:uppercase; padding:0.18rem 0.4rem; border-radius:3px; background:var(--gold); color:#fff; vertical-align:middle;}
.sp-table td.pot{font-family:'Fraunces',Georgia,serif; font-weight:800; color:var(--forest); white-space:nowrap;}
.sp-table td.pot small{font-family:'IBM Plex Mono',monospace; font-weight:400; font-size:0.62rem; color:var(--mute); margin-left:0.25rem;}
.sp-table tr[hidden]{display:none;}

/* ===== responsive ===== */
@media (max-width:1000px){
  .sp-hero-grid,.sp-split,.sp-split.even,.sp-contact-grid{grid-template-columns:1fr;}
  .sp-sticky{position:static;}
  .sp-aside{border-left:0; padding-left:0; border-top:1px solid rgba(255,255,255,0.2); padding-top:1.6rem;}
  .sp-bento{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sp-card,.sp-card.w3{grid-column:span 1;} .sp-card.w4,.sp-card.w6{grid-column:span 2;}
}
@media (max-width:700px){
  .sp-stats{grid-template-columns:1fr 1fr;}
  .sp-stat:nth-child(3){border-left:0; padding-left:0;}
  .sp-stat:nth-child(n+3){border-top:1px solid var(--line);}
  .on-forest .sp-stat:nth-child(n+3){border-top-color:var(--line-dark);}
  .sp-stat{padding:1.3rem 0.9rem 1.4rem;}
  .sp-stat:nth-child(odd){padding-left:0;}
  .sp-bento{grid-template-columns:1fr;}
  .sp-card,.sp-card.w3,.sp-card.w4,.sp-card.w6{grid-column:span 1;}
  .sp-steps > li{grid-template-columns:3rem minmax(0,1fr); gap:0.8rem;}
  .sp-steps > li::before{font-size:1.6rem;}
  .pubs li{grid-template-columns:1fr; gap:0.4rem;}
  .thermo-detail{grid-template-columns:1fr;}
  .tp span{display:none;}
  .sp-person{flex-direction:column; align-items:flex-start;}
}

.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

/* grid children may shrink below their content width (wide tables, long German compounds) */
.sp-split > *,.sp-hero-grid > *,.sp-contact-grid > *,.sp-bento > *,.ep-grid > *,.gen-grid > *,.rel-grid > *,.fmt-row > *{min-width:0;}
html:lang(de) .sp-card h3,html:lang(de) .ep b,html:lang(de) .ep small,html:lang(de) .gen h3,html:lang(de) .rel-t,html:lang(de) .sp-table td,html:lang(de) .sp-kv dd{-webkit-hyphens:auto; hyphens:auto; overflow-wrap:break-word;}

.thermo-scale span:first-child{transform:none;} .thermo-scale span:last-child{transform:translateX(-100%);}
html:lang(de) .sp-hero h1{hyphenate-limit-chars:14 6 6;}

/* ===== SPORTS NUTRITION / PROTEIN / GOAT ===== */
/* proof strip */
.proof{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--card);}
.proof > div{display:flex; gap:0.9rem; align-items:center; padding:1.3rem 1.3rem; border-left:1px solid var(--line); min-width:0;}
.proof > div:first-child{border-left:0;}
.proof .pi{flex:none; width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:rgba(22,163,74,0.1); color:var(--green);}
.proof .pi svg{width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.proof b{display:block; font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.05rem; color:var(--forest); line-height:1.2;}
.proof small{display:block; font-size:0.84rem; color:var(--mute); line-height:1.35; margin-top:0.15rem;}
@media (max-width:1000px){.proof{grid-template-columns:1fr 1fr;} .proof > div:nth-child(3){border-left:0;} .proof > div:nth-child(n+3){border-top:1px solid var(--line);}}
@media (max-width:560px){.proof{grid-template-columns:1fr;} .proof > div{border-left:0; border-top:1px solid var(--line);} .proof > div:first-child{border-top:0;}}

/* three routes */
.routes{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem;}
.route{position:relative; display:flex; flex-direction:column; gap:0.7rem; padding:clamp(1.5rem,2.6vw,2.1rem); border-radius:14px; background:var(--card); border:1px solid var(--line); text-decoration:none; color:var(--body); transition:transform 350ms var(--ease-ui), box-shadow 350ms var(--ease-ui), border-color 250ms ease;}
.route:hover{transform:translateY(-3px); border-color:var(--green); box-shadow:0 18px 36px -22px rgba(15,36,24,0.45);}
.route.hi{background:var(--forest); border-color:var(--forest); color:var(--dark-mute);}
.route .n{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.18em; text-transform:uppercase; color:var(--gold);}
.route h3{font-size:clamp(1.4rem,2.3vw,1.8rem); line-height:1.1;}
.route.hi h3{color:#fff;}
.route p{line-height:1.6; font-size:0.97rem;}
.route .facts{display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:0.2rem;}
.route .facts span{font-family:'IBM Plex Mono',monospace; font-size:0.62rem; letter-spacing:0.08em; text-transform:uppercase; padding:0.35rem 0.6rem; border-radius:999px; border:1px solid var(--line); color:var(--forest); background:var(--cream);}
.route.hi .facts span{border-color:var(--line-dark); background:rgba(255,255,255,0.06); color:#fff;}
.route .dive-go{margin-top:auto; align-self:flex-start;}
.route:hover .dive-go{background:var(--forest);} .route.hi:hover .dive-go{background:#fff; color:var(--forest);}
@media (max-width:1000px){.routes{grid-template-columns:1fr;}}

/* catalogue */
.shop-tools{display:flex; flex-wrap:wrap; gap:0.6rem 1rem; align-items:center; margin-bottom:1.4rem;}
.pgrid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem;}
.pcard{display:flex; flex-direction:column; background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:transform 350ms var(--ease-ui), box-shadow 350ms var(--ease-ui);}
.pcard:hover{transform:translateY(-4px); box-shadow:0 22px 40px -26px rgba(15,36,24,0.5);}
.pcard[hidden]{display:none;}
.pcard-top{position:relative; min-height:9.5rem; padding:1.2rem 1.3rem; display:flex; flex-direction:column; justify-content:space-between; background:radial-gradient(120% 120% at 100% 0%, var(--c2,#4cc178) 0%, var(--c1,#1f4a31) 62%); color:#fff; overflow:hidden;}
.pcard-top::after{content:""; position:absolute; right:-30px; bottom:-40px; width:140px; height:140px; border-radius:50%; border:18px solid rgba(255,255,255,0.12);}
.pcard-base{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; letter-spacing:0.16em; text-transform:uppercase; opacity:0.9; position:relative; z-index:1;}
.pcard-macro{position:relative; z-index:1; display:flex; align-items:baseline; gap:0.5rem;}
.pcard-macro b{font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:2.6rem; line-height:1; letter-spacing:-0.02em;}
.pcard-macro small{font-size:0.82rem; line-height:1.3; opacity:0.92; max-width:12ch;}
.pcard-tag{position:absolute; top:1rem; right:1rem; z-index:1; font-family:'IBM Plex Mono',monospace; font-size:0.56rem; letter-spacing:0.14em; text-transform:uppercase; padding:0.3rem 0.55rem; border-radius:999px; background:rgba(255,255,255,0.18); backdrop-filter:blur(4px);}
.pcard-body{display:flex; flex-direction:column; gap:0.75rem; padding:1.3rem 1.3rem 1.4rem; flex:1;}
.pcard-body h3{font-size:1.35rem; line-height:1.12;}
.pcard-body p{font-size:0.94rem; line-height:1.55;}
.flv{display:flex; flex-wrap:wrap; gap:0.35rem;}
.flv span{display:inline-flex; align-items:center; gap:0.4em; font-size:0.8rem; padding:0.3rem 0.6rem 0.3rem 0.45rem; border-radius:999px; background:var(--cream); border:1px solid var(--line); color:var(--body);}
.flv span::before{content:""; width:0.8rem; height:0.8rem; border-radius:50%; background:var(--c,#ccc); box-shadow:inset 0 0 0 1px rgba(0,0,0,0.12);}
.pmeta{margin:0; display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; padding-top:0.8rem; border-top:1px solid var(--line);}
.pmeta dt{font-family:'IBM Plex Mono',monospace; font-size:0.56rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--mute);}
.pmeta dd{margin:0.15rem 0 0; font-size:0.86rem; font-weight:600; color:var(--forest); line-height:1.35;}
.pcard .dive-go{margin-top:auto; align-self:stretch; justify-content:center;}
.pcard .dive-go:hover{background:var(--forest);}
.pcard.custom .pcard-top{background:repeating-linear-gradient(135deg, var(--forest-3) 0 14px, var(--forest-2) 14px 28px);}
@media (max-width:1000px){.pgrid{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.pgrid{grid-template-columns:1fr;}}

/* flavour library */
.flib{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem;}
.flib > div{padding:1.3rem 1.4rem; border-radius:12px; border:1px solid var(--line-dark); background:rgba(255,255,255,0.04);}
.flib h3{font-size:1.15rem; color:#fff;}
.flib .note{display:block; margin-top:0.2rem; font-size:0.82rem; color:var(--dark-mute);}
.flib .flv{margin-top:0.8rem;}
.flib .flv span{background:rgba(255,255,255,0.08); border-color:rgba(255,255,255,0.16); color:#fff;}
@media (max-width:1000px){.flib{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.flib{grid-template-columns:1fr;}}

/* claims library */
.claim{font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:500; color:var(--forest);}

/* goat collection (mirrors the brochure) */
.goat-hero{position:relative; overflow:hidden;}
.goat-hero .rings{position:absolute; right:-16vw; top:-20vw; width:min(52vw,660px); opacity:0.85; aspect-ratio:1; pointer-events:none; z-index:0;}
.goat-hero .rings i{position:absolute; inset:0; border-radius:50%; border:6px solid rgba(22,163,74,0.16);}
.goat-hero .rings i:nth-child(2){inset:12%; border-color:rgba(22,163,74,0.24);}
.goat-hero .rings i:nth-child(3){inset:24%; border-color:rgba(22,163,74,0.34);}
.goat-hero .rings b{position:absolute; inset:36%; border-radius:50%; background:var(--forest);}
.goat-hero .rings b::after{content:""; position:absolute; inset:30%; border-radius:50%; background:var(--green);}
.goat-hero .wrap{position:relative; z-index:1;}
.gstat4{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0.8rem;}
.gstat4 > div{padding:1.2rem 1.2rem 1.3rem; border-radius:12px; background:#e8f0e6;}
.gstat4 b{display:block; font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:clamp(1.8rem,3.4vw,2.6rem); color:var(--forest); line-height:1;}
.gstat4 small{display:block; margin-top:0.5rem; font-size:0.84rem; line-height:1.4; color:var(--body);}
@media (max-width:800px){.gstat4{grid-template-columns:1fr 1fr;}}
.ggrid{display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
.gcard{padding:clamp(1.4rem,2.4vw,1.9rem); border-radius:14px; background:#fff; border:1px solid var(--line); display:flex; flex-direction:column; gap:0.6rem;}
.gcard h3{font-size:clamp(1.3rem,2.1vw,1.6rem); line-height:1.12;}
.gcard .gk{font-family:'IBM Plex Mono',monospace; font-size:0.6rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--green);}
.gcard p{font-size:0.95rem; line-height:1.58;}
.gstats{display:flex; flex-wrap:wrap; gap:0.5rem; margin-top:0.2rem;}
.gstats > div{min-width:5.2rem; padding:0.6rem 0.7rem; border-radius:9px; background:#e8f0e6; text-align:center;}
.gstats b{display:block; font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.2rem; color:var(--forest); line-height:1.1;}
.gstats small{display:block; font-family:'IBM Plex Mono',monospace; font-size:0.54rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--mute); margin-top:0.2rem;}
.gcard .gfoot{margin-top:auto; padding-top:0.7rem; border-top:1px solid var(--line); font-size:0.82rem; color:var(--mute); line-height:1.5;}
.on-forest .gcard{background:rgba(255,255,255,0.06); border-color:var(--line-dark); color:var(--dark-mute);}
.on-forest .gcard h3{color:#fff;} .on-forest .gcard .gk{color:var(--green-soft);}
.on-forest .gstats > div{background:rgba(255,255,255,0.08);} .on-forest .gstats b{color:#fff;} .on-forest .gstats small{color:var(--dark-mute);}
.on-forest .gcard .gfoot{border-color:var(--line-dark); color:var(--dark-mute);}
.on-butter{background:#f6ecd9;}
.on-butter h2,.on-butter .gcard h3{color:#6b4e12;} .on-butter h2 em{color:#a67c1a;}
.on-butter .gcard .gk{color:#a67c1a;} .on-butter .gstats > div{background:#f3e5c8;} .on-butter .gstats b{color:#6b4e12;}
@media (max-width:800px){.ggrid{grid-template-columns:1fr;}}
.pillrow{display:flex; flex-wrap:wrap; gap:0.5rem;}
.pillrow span{padding:0.55rem 1rem; border-radius:999px; border:1px solid var(--line); background:#fff; font-size:0.88rem; color:var(--forest); font-weight:600;}
