/* ============================================================
   VENUVO — shared design system
   Warm, human, premium. Green / black / white.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:ital,wght@0,400;0,500;0,600;0,700;0,800&family=Newsreader:ital,opsz,wght@1,6..72,400;1,6..72,500;0,6..72,400;0,6..72,500&display=swap');

:root{
  /* palette */
  --paper:        #fbfbf8;
  --paper-2:      #f1f3ec;
  --paper-3:      #e8ebe1;
  --ink:          #0d120f;
  --ink-soft:     #36413b;
  --muted:        #66716a;
  --green:        #1d6348;
  --green-deep:   #143f2e;
  --green-bright: #2a8f63;
  --green-glow:   #3fb87f;
  --line:         rgba(13,18,15,.10);
  --line-strong:  rgba(13,18,15,.16);

  /* dark surfaces */
  --dark:         #0c1410;
  --dark-2:       #112019;
  --on-dark:      #eef2ec;
  --on-dark-mut:  #8ea096;
  --line-dark:    rgba(255,255,255,.12);

  /* type */
  --sans: 'Hanken Grotesk', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;

  /* metrics */
  --maxw: 1200px;
  --gutter: clamp(20px, 5vw, 64px);
  --radius: 18px;
  --radius-lg: 28px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.5;
  font-size:18px;
  letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--green); color:#fff; }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(72px,11vw,148px); }
.section--tight{ padding-block:clamp(54px,7vw,92px); }

/* ---------- type scale ---------- */
.display{
  font-weight:700;
  font-size:clamp(2.7rem,6.6vw,5.4rem);
  line-height:.98;
  letter-spacing:-.035em;
  text-wrap:balance;
}
.h1{ font-weight:700; font-size:clamp(2.1rem,4.4vw,3.5rem); line-height:1.02; letter-spacing:-.03em; text-wrap:balance; }
.h2{ font-weight:700; font-size:clamp(1.7rem,3vw,2.6rem); line-height:1.06; letter-spacing:-.025em; text-wrap:balance; }
.h3{ font-weight:600; font-size:clamp(1.25rem,1.8vw,1.55rem); line-height:1.15; letter-spacing:-.02em; }
.lead{ font-size:clamp(1.15rem,1.7vw,1.42rem); line-height:1.45; color:var(--ink-soft); font-weight:400; letter-spacing:-.015em; }
.body{ font-size:1.0625rem; line-height:1.6; color:var(--ink-soft); }
.small{ font-size:.9375rem; color:var(--muted); }

.serif{ font-family:var(--serif); font-style:italic; font-weight:400; letter-spacing:-.01em; }
.em-green{ color:var(--green); }

.eyebrow{
  display:inline-flex; align-items:center; gap:.55em; white-space:nowrap;
  font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--green);
}
.eyebrow::before{
  content:""; width:22px; height:1.5px; background:currentColor; opacity:.55;
}
.eyebrow--center::before{ display:none; }

/* ---------- buttons ---------- */
.btn{
  --bg:var(--green); --fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:.5em; white-space:nowrap;
  font:inherit; font-weight:600; font-size:1rem; letter-spacing:-.01em;
  padding:.85em 1.5em; border-radius:999px; border:1px solid transparent;
  background:var(--bg); color:var(--fg); cursor:pointer;
  transition:transform .35s var(--ease), background .3s var(--ease), box-shadow .35s var(--ease), color .3s;
  will-change:transform;
}
.btn:hover{ transform:translateY(-2px); background:var(--green-bright); box-shadow:0 12px 30px -12px rgba(29,99,72,.6); }
.btn:active{ transform:translateY(0); }
.btn--ghost{ --bg:transparent; --fg:var(--ink); border-color:var(--line-strong); }
.btn--ghost:hover{ --bg:var(--ink); --fg:#fff; box-shadow:none; }
.btn--on-dark{ --bg:#fff; --fg:var(--ink); }
.btn--on-dark:hover{ --bg:var(--green-glow); --fg:var(--dark); box-shadow:0 12px 30px -12px rgba(63,184,127,.5); }
.btn--lg{ padding:1.02em 1.9em; font-size:1.08rem; }
.btn .arrow{ transition:transform .35s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }

.textlink{
  display:inline-flex; align-items:center; gap:.4em; white-space:nowrap; font-weight:600; color:var(--green);
  border-bottom:1.5px solid transparent; transition:border-color .3s, gap .3s var(--ease); padding-bottom:1px;
}
.textlink:hover{ border-color:var(--green); gap:.6em; }

/* ---------- header / nav ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--gutter);
  transition:background .4s var(--ease), box-shadow .4s var(--ease), padding .4s var(--ease), border-color .4s;
  border-bottom:1px solid transparent;
}
.nav.is-scrolled{
  background:rgba(251,251,248,.82);
  backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  border-bottom-color:var(--line);
  padding-block:13px;
}
.nav__brand{ display:flex; align-items:center; gap:11px; font-weight:700; font-size:1.22rem; letter-spacing:-.02em; }
.nav__brand img{ width:26px; height:26px; }
.nav__links{ display:flex; align-items:center; gap:clamp(18px,2.4vw,34px); }
.nav__links a:not(.btn){
  font-size:.97rem; font-weight:500; color:var(--ink-soft); position:relative; transition:color .25s;
}
.nav__links a:not(.btn)::after{
  content:""; position:absolute; left:0; bottom:-5px; height:1.5px; width:0; background:var(--green); transition:width .3s var(--ease);
}
.nav__links a:not(.btn):hover{ color:var(--ink); }
.nav__links a:not(.btn):hover::after,
.nav__links a.is-active::after{ width:100%; }
.nav__links a.is-active{ color:var(--ink); }
.nav__toggle{ display:none; background:none; border:0; cursor:pointer; padding:8px; }
.nav__toggle span{ display:block; width:24px; height:2px; background:var(--ink); border-radius:2px; transition:.3s var(--ease); }
.nav__toggle span+span{ margin-top:5px; }

@media (max-width:860px){
  .nav__links{
    position:fixed; inset:0 0 0 auto; width:min(82vw,340px);
    flex-direction:column; align-items:flex-start; justify-content:center; gap:26px;
    background:var(--paper); padding:0 40px;
    transform:translateX(100%); transition:transform .45s var(--ease);
    box-shadow:-30px 0 60px -30px rgba(0,0,0,.3);
  }
  .nav__links.is-open{ transform:translateX(0); }
  .nav__links a:not(.btn){ font-size:1.4rem; font-weight:600; color:var(--ink); }
  .nav__toggle{ display:block; z-index:101; }
  .nav.menu-open .nav__toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .nav.menu-open .nav__toggle span:nth-child(2){ opacity:0; }
  .nav.menu-open .nav__toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
}

/* ---------- footer ---------- */
.footer{ background:var(--dark); color:var(--on-dark); padding-block:clamp(56px,7vw,88px) 36px; }
.footer a{ color:var(--on-dark-mut); transition:color .25s; }
.footer a:hover{ color:var(--on-dark); }
.footer__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.footer__brand img{ width:30px; height:30px; margin-bottom:16px; }
.footer__brand p{ color:var(--on-dark-mut); max-width:30ch; font-size:.97rem; line-height:1.6; }
.footer__col h4{ font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; color:var(--on-dark-mut); margin-bottom:16px; font-weight:600; }
.footer__col ul{ list-style:none; display:flex; flex-direction:column; gap:11px; font-size:.97rem; }
.footer__bottom{
  margin-top:clamp(40px,6vw,72px); padding-top:26px; border-top:1px solid var(--line-dark);
  display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap;
  color:var(--on-dark-mut); font-size:.88rem;
}
@media (max-width:760px){ .footer__top{ grid-template-columns:1fr 1fr; gap:34px; } .footer__brand{ grid-column:1/-1; } }

/* ---------- dark section ---------- */
.dark{ background:var(--dark); color:var(--on-dark); }
.dark .lead{ color:var(--on-dark-mut); }
.dark .body{ color:var(--on-dark-mut); }
.dark .eyebrow{ color:var(--green-glow); }
.dark .h2,.dark .h1,.dark .display{ color:var(--on-dark); }

/* ---------- cards / grids ---------- */
.grid{ display:grid; gap:clamp(18px,2.2vw,28px); }
.g-2{ grid-template-columns:repeat(2,1fr); }
.g-3{ grid-template-columns:repeat(3,1fr); }
.g-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .g-3,.g-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .g-2,.g-3,.g-4{ grid-template-columns:1fr; } }

.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,36px);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
}
.card:hover{ transform:translateY(-4px); box-shadow:0 24px 50px -28px rgba(13,18,15,.28); border-color:var(--line-strong); }
.card__num{ font-family:var(--serif); font-style:italic; font-size:1.4rem; color:var(--green); }

/* numbered step marker */
.step__index{
  width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  border:1.5px solid var(--green); color:var(--green); font-weight:600; font-size:1.05rem; flex:none;
}

/* feature/list rows */
.featrow{ display:flex; gap:18px; align-items:flex-start; padding-block:22px; border-top:1px solid var(--line); }
.featrow:last-child{ border-bottom:1px solid var(--line); }
.featrow__icon{ flex:none; width:44px; height:44px; border-radius:12px; background:var(--paper-2); display:grid; place-items:center; color:var(--green); }

/* pill / tag */
.tag{
  display:inline-flex; align-items:center; gap:.45em; padding:.4em .85em; border-radius:999px;
  background:var(--paper-2); border:1px solid var(--line); font-size:.84rem; font-weight:600; color:var(--ink-soft);
}
.dot{ width:7px; height:7px; border-radius:50%; background:var(--green-bright); }
.dot--pulse{ animation:dotpulse 2.4s var(--ease) infinite; }
@keyframes dotpulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(63,184,127,.55);} 50%{ box-shadow:0 0 0 6px rgba(63,184,127,0);} }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--line); }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__q{
  width:100%; text-align:left; background:none; border:0; cursor:pointer; font:inherit;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  padding:26px 4px; font-size:clamp(1.05rem,1.6vw,1.28rem); font-weight:600; letter-spacing:-.02em; color:var(--ink);
}
.faq__sign{ flex:none; width:26px; height:26px; position:relative; }
.faq__sign::before,.faq__sign::after{ content:""; position:absolute; inset:0; margin:auto; background:var(--green); border-radius:2px; }
.faq__sign::before{ width:15px; height:2px; }
.faq__sign::after{ width:2px; height:15px; transition:transform .35s var(--ease); }
.faq__item.is-open .faq__sign::after{ transform:rotate(90deg); }
.faq__a{ overflow:hidden; height:0; transition:height .4s var(--ease); }
.faq__a-inner{ padding:0 4px 28px; max-width:64ch; color:var(--ink-soft); line-height:1.65; }

/* ---------- forms / waitlist ---------- */
.waitform{ display:flex; gap:10px; flex-wrap:wrap; max-width:520px; }
.waitform input{
  flex:1 1 240px; font:inherit; font-size:1.02rem; padding:1.02em 1.25em; border-radius:999px;
  border:1px solid var(--line-dark); background:rgba(255,255,255,.06); color:var(--on-dark);
  transition:border-color .3s, background .3s;
}
.waitform input::placeholder{ color:var(--on-dark-mut); }
.waitform input:focus{ outline:none; border-color:var(--green-glow); background:rgba(255,255,255,.1); }
.waitform--light input{ border-color:var(--line-strong); background:#fff; color:var(--ink); }
.form-note{ font-size:.86rem; color:var(--on-dark-mut); margin-top:14px; }
.form-ok{ color:var(--green-glow); font-weight:600; }

/* ---------- waveform / signal motifs ---------- */
.wave{ width:100%; height:100%; display:block; }
.wave__bar{ transform-box:fill-box; transform-origin:center; }

.glow{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.5; pointer-events:none; z-index:0; }

/* ---------- reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
.reveal[data-d="4"]{ transition-delay:.32s; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}

/* ---------- utility ---------- */
.center{ text-align:center; }
.mx-auto{ margin-inline:auto; }
.measure{ max-width:62ch; }
.measure-sm{ max-width:46ch; }
.mt-s{ margin-top:18px; } .mt-m{ margin-top:28px; } .mt-l{ margin-top:44px; } .mt-xl{ margin-top:64px; }
.stack-buttons{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.divider{ height:1px; background:var(--line); border:0; }

/* ============================================================
   PAGE COMPONENTS
   ============================================================ */

/* section heading block */
.sec-head{ max-width:720px; }
.sec-head--center{ max-width:640px; }

/* ---------- hero (centered) ---------- */
.hero{ position:relative; text-align:center; padding-top:clamp(146px,19vh,210px); padding-bottom:clamp(56px,8vw,96px); overflow:hidden; }
.hero__center{ position:relative; z-index:1; max-width:920px; margin-inline:auto; }
.hero .eyebrow{ margin-bottom:26px; }
.hero .display{ margin-inline:auto; }
.hero .lead{ max-width:50ch; margin-inline:auto; }
.hero__wave{
  width:min(680px,100%); height:120px; margin:clamp(40px,5.5vw,72px) auto clamp(28px,3vw,40px);
  -webkit-mask:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
  mask:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
}
.hero__wave canvas{ width:100%; height:100%; display:block; }

/* shared EMG signal line (used on subpages) */
.emg{ width:100%; height:60px; opacity:.85; }
.emg path{ stroke-dasharray:6 0; }
.vpanel__wave{ height:120px; }
.vpanel__foot{
  display:flex; align-items:center; gap:14px; padding-top:14px; border-top:1px solid var(--line-dark);
  font-size:.92rem;
}
.vpanel__arrow{ color:var(--on-dark-mut); }
.vpanel__to{ color:var(--green-glow); font-weight:700; }
.vpanel__voice{ color:var(--on-dark); font-weight:600; }

/* ---------- statement (centered editorial beat) ---------- */
.statement{ text-align:center; }
.statement .wrap{ max-width:1000px; }
.statement__text{
  font-size:clamp(1.55rem,3.4vw,2.7rem); line-height:1.32; letter-spacing:-.02em; font-weight:500;
  margin-inline:auto; max-width:min(820px,100%); text-wrap:balance; color:var(--ink);
}
.statement__text .serif{ display:block; margin-top:.35em; }

/* ---------- demo ---------- */
.demo-sec{ position:relative; overflow:hidden; }
.player{
  position:relative; z-index:1; max-width:760px; margin-inline:auto;
  background:rgba(255,255,255,.04); border:1px solid var(--line-dark); border-radius:var(--radius-lg);
  padding:clamp(28px,4vw,52px); text-align:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.player__bars{ display:flex; align-items:center; justify-content:center; gap:5px; height:96px; }
.pbar{
  width:6px; border-radius:6px; background:var(--on-dark-mut); opacity:.35;
  height:14px; transition:height .25s var(--ease), background .3s, opacity .3s;
}
.player.is-playing .pbar.is-live{ background:var(--green-glow); opacity:1; animation:pbar 1s var(--ease) infinite; }
.pbar:nth-child(3n){ animation-delay:.1s !important; }
.pbar:nth-child(3n+1){ animation-delay:.25s !important; }
.pbar:nth-child(4n){ animation-delay:.4s !important; }
.pbar:nth-child(2n){ animation-delay:.15s !important; }
@keyframes pbar{ 0%,100%{ height:16px; } 50%{ height:72px; } }
.player__caption{
  font-size:clamp(1.3rem,2.6vw,2rem); color:var(--on-dark); margin-top:22px; min-height:1.4em; letter-spacing:-.01em;
}
.player__btn{
  margin-top:26px; display:inline-flex; align-items:center; gap:.7em; font:inherit; font-weight:600; font-size:1.02rem;
  background:#fff; color:var(--dark); border:0; border-radius:999px; padding:.85em 1.6em; cursor:pointer;
  transition:transform .35s var(--ease), background .3s, color .3s;
}
.player__btn:hover{ transform:translateY(-2px); background:var(--green-glow); }
.player__play{
  width:0; height:0; border-style:solid; border-width:7px 0 7px 12px; border-color:transparent transparent transparent currentColor;
  transition:.3s var(--ease);
}
.player.is-playing .player__play{
  border:0; width:11px; height:13px; position:relative;
}
.player.is-playing .player__play::before,
.player.is-playing .player__play::after{
  content:""; position:absolute; top:0; width:3.5px; height:13px; background:currentColor; border-radius:1px;
}
.player.is-playing .player__play::before{ left:0; }
.player.is-playing .player__play::after{ right:0; }

/* ---------- use cases ---------- */
.usecase{
  padding:clamp(26px,3vw,38px); border-radius:var(--radius-lg); background:var(--paper-2);
  border:1px solid var(--line); transition:transform .4s var(--ease), background .4s var(--ease);
}
.usecase:hover{ transform:translateY(-4px); background:#fff; box-shadow:0 24px 50px -30px rgba(13,18,15,.25); }

/* ---------- mission ---------- */
.mission__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,5vw,72px); align-items:start; }
@media (max-width:860px){ .mission__grid{ grid-template-columns:1fr; gap:28px; } }

/* ---------- faq ---------- */
.faq-wrap{ max-width:880px; }

/* ---------- how it works (editorial steps) ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(30px,4vw,60px); }
.howstep{ position:relative; padding-top:26px; border-top:1.5px solid var(--ink); }
.howstep__n{
  font-family:var(--serif); font-style:italic; font-size:clamp(2.2rem,3.4vw,3rem);
  color:var(--green); line-height:1; letter-spacing:-.02em;
}
.howstep h3{ margin-top:20px; }
@media (max-width:760px){
  .steps{ grid-template-columns:1fr; gap:0; }
  .howstep{ padding-block:26px 30px; }
  .howstep:not(:first-child){ border-top:1px solid var(--line); }
  .howstep:first-child{ border-top:1.5px solid var(--ink); }
}

/* ---------- who it's for (hairline spec rows) ---------- */
.uselist{ border-top:1px solid var(--line-strong); }
.useitem{
  display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(20px,5vw,72px); align-items:baseline;
  padding:clamp(26px,3.4vw,40px) 0; border-bottom:1px solid var(--line);
  transition:padding-left .4s var(--ease);
}
.useitem:hover{ padding-left:10px; }
.useitem__title{ display:flex; align-items:baseline; gap:16px; }
.useitem__idx{ font-family:var(--serif); font-style:italic; color:var(--green); font-size:1.1rem; flex:none; }
@media (max-width:680px){
  .useitem{ grid-template-columns:1fr; gap:10px; }
  .useitem:hover{ padding-left:0; }
}

/* ---------- subpage hero ---------- */
.subhero{ position:relative; padding-top:clamp(130px,18vh,200px); padding-bottom:clamp(48px,7vw,84px); overflow:hidden; }
.subhero .wrap{ position:relative; z-index:1; }
.subhero__copy{ max-width:18ch; }
.subhero .display{ max-width:22ch; text-wrap:pretty; }
.subhero .lead{ max-width:54ch; }

/* ---------- journey (how it works) ---------- */
.journey{ display:flex; flex-direction:column; gap:0; }
.jstep{
  display:grid; grid-template-columns:96px 1fr; gap:clamp(20px,4vw,56px); align-items:start;
  padding-block:clamp(36px,5vw,60px); border-top:1px solid var(--line); position:relative;
}
.jstep:first-child{ border-top:0; }
.jstep__n{
  font-family:var(--serif); font-style:italic; font-size:clamp(2.4rem,4vw,3.4rem); color:var(--green);
  line-height:1; letter-spacing:-.02em;
}
.jstep__body{ max-width:60ch; }
.jstep__media{
  margin-top:24px; background:var(--dark); border:1px solid var(--line-dark); border-radius:var(--radius);
  padding:22px 24px; overflow:hidden;
}
.jstep__media .emg{ height:48px; }
.jstep__media canvas{ display:block; width:100%; height:70px; }
@media (max-width:680px){
  .jstep{ grid-template-columns:1fr; gap:14px; }
  .jstep__n{ font-size:2.2rem; }
}

/* feature pills row */
.pillrow{ display:flex; flex-wrap:wrap; gap:10px; }

/* ---------- spec grid (technology) ---------- */
.specrow{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:center; }
.specrow + .specrow{ margin-top:clamp(48px,7vw,104px); }
.specrow--flip .specrow__media{ order:-1; }
@media (max-width:820px){
  .specrow{ grid-template-columns:1fr; gap:28px; }
  .specrow--flip .specrow__media{ order:0; }
}
.specrow__media{
  background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-lg);
  aspect-ratio:1.3/1; display:grid; place-items:center; padding:clamp(28px,4vw,48px); position:relative; overflow:hidden;
}
.specrow__media.dark-media{ background:var(--dark); border-color:var(--line-dark); }

.statgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,40px); }
@media (max-width:680px){ .statgrid{ grid-template-columns:1fr; gap:28px; } }
.stat__num{ font-size:clamp(2.6rem,5vw,3.8rem); font-weight:700; letter-spacing:-.03em; line-height:1; color:var(--ink); }
.dark .stat__num{ color:var(--on-dark); }
.stat__lbl{ margin-top:10px; color:var(--muted); font-size:1rem; }
.dark .stat__lbl{ color:var(--on-dark-mut); }

/* concentric rings motif */
.rings{ position:relative; width:200px; height:200px; }
.rings span{
  position:absolute; inset:0; margin:auto; border-radius:50%; border:1.5px solid var(--green);
  opacity:0; animation:ring 3.4s var(--ease) infinite;
}
.rings span:nth-child(2){ animation-delay:.9s; }
.rings span:nth-child(3){ animation-delay:1.8s; }
.rings__core{
  position:absolute; inset:0; margin:auto; width:54px; height:54px; border-radius:50%;
  background:var(--green); display:grid; place-items:center;
}
@keyframes ring{ 0%{ width:54px; height:54px; opacity:.8; } 100%{ width:200px; height:200px; opacity:0; } }

/* ---------- team / about ---------- */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,32px); }
@media (max-width:820px){ .values{ grid-template-columns:1fr; } }
.value__k{ font-family:var(--serif); font-style:italic; color:var(--green); font-size:1.3rem; }

.team{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,32px); }
@media (max-width:820px){ .team{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .team{ grid-template-columns:1fr; } }
.member__photo{
  aspect-ratio:1/1; border-radius:var(--radius-lg); display:grid; place-items:center;
  background:linear-gradient(150deg,var(--green-deep),var(--green) 70%); color:#fff;
  font-family:var(--serif); font-style:italic; font-size:2.6rem; letter-spacing:-.02em;
}
.member__photo.alt{ background:linear-gradient(150deg,#1b2622,#2a3a32 70%); }
.member h3{ margin-top:16px; }
.member p{ color:var(--muted); font-size:.95rem; margin-top:3px; }

/* big editorial quote */
.bigquote{ max-width:18ch; }
.bigquote p{ font-size:clamp(1.7rem,3.6vw,2.9rem); line-height:1.22; letter-spacing:-.02em; font-weight:500; text-wrap:balance; }

/* shared CTA band (subpages) */
.ctaband{ position:relative; overflow:hidden; }
.ctaband .wrap{ position:relative; z-index:1; }
