/* ==========================================================================
   Kaizen Growth
   Hand-written stylesheet. No framework, no CDN compiler, no build step.
   ========================================================================== */

/* --- 1. Tokens ---------------------------------------------------------- */
:root{
  /* locked brand */
  --cream:      #F4F1EA;
  --emerald:    #0B8F5E;
  --teal:       #16352B;
  /* derived support */
  --teal-deep:  #0A2019;
  --cream-warm: #E4DED0;
  --dead:       #C8402F;

  --ink:        #0A2019;
  --muted:      #5C6B62;
  --line:       #D8D2C4;

  --display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --data:    "JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;

  --gut: clamp(1.25rem, 4vw, 3rem);
  --maxw: 1240px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:var(--body); font-size:clamp(1rem,.96rem + .2vw,1.075rem);
  line-height:1.65; font-weight:400;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; }
button{ font:inherit; }
::selection{ background:var(--emerald); color:var(--cream); }
.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:1rem; top:1rem; z-index:99; background:var(--cream); color:var(--ink); padding:.6rem 1rem; }

/* --- 2. Type ------------------------------------------------------------ */
h1,h2,h3,h4{ font-family:var(--display); font-weight:600; margin:0; line-height:1.04; letter-spacing:-.01em; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

.eyebrow{
  font-family:var(--data); font-size:.8rem; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--emerald);
  display:flex; align-items:center; gap:.7em; margin:0 0 1.4rem;
}
.eyebrow::before{ content:""; width:1.9rem; height:1px; background:currentColor; opacity:.55; flex:none; }

.h-xl{ font-size:clamp(2.6rem,6.2vw,5rem); }
.h-lg{ font-size:clamp(2.1rem,4.4vw,3.5rem); }
.h-md{ font-size:clamp(1.8rem,3vw,2.7rem); }
.h-sm{ font-size:clamp(1.25rem,1.9vw,1.55rem); }
.up{ text-transform:uppercase; letter-spacing:-.02em; }

.lede{ font-size:clamp(1.08rem,1.05rem + .45vw,1.35rem); line-height:1.6; color:var(--muted); max-width:62ch; }
.mono{ font-family:var(--data); font-variant-numeric:tabular-nums; }
.tag{ font-family:var(--data); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.em{ color:var(--emerald); }
.measure{ max-width:62ch; }

/* --- 3. Layout ---------------------------------------------------------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
.wrap--wide{ max-width:1680px; padding-inline:clamp(1rem,2.5vw,2rem); }
.wrap--narrow{ max-width:840px; }
.section{ padding-block:clamp(4.5rem,9vw,8.5rem); position:relative; }
.section--tight{ padding-block:clamp(3rem,5vw,4.5rem); }
.dark{ background:var(--teal-deep); color:var(--cream); }
.dark .lede,.dark .tag{ color:rgba(244,241,234,.62); }
.mid{ background:var(--teal); color:var(--cream); }
.rule{ height:1px; background:var(--line); border:0; margin:0; }
.dark .rule{ background:rgba(244,241,234,.14); }

.cols{ display:grid; gap:clamp(2rem,4vw,4rem); }
.cols--3{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
@media (min-width:860px){
  .cols--2{ grid-template-columns:repeat(2,1fr); }
  .cols--sticky{ grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start; }
  .cols--sticky > :first-child{ position:sticky; top:7.5rem; }
}

/* --- 4. Header ---------------------------------------------------------- */
.site-head{
  position:fixed; inset:0 0 auto; z-index:60; padding-block:1.05rem;
  transition:background .4s var(--ease),backdrop-filter .4s,border-color .4s,padding .3s;
  border-bottom:1px solid transparent;
}
.site-head__in{ display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.site-head.is-stuck{
  background:rgba(10,32,25,.88); backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:rgba(244,241,234,.1); padding-block:.7rem;
}
.brand{ display:flex; align-items:center; gap:.55rem; text-decoration:none; }
.brand img{ height:26px; width:auto; }
@media (max-width:420px){ .brand img{ height:22px; } }

.nav{ display:flex; align-items:center; gap:clamp(1.1rem,2.2vw,2.1rem); }
.nav a{
  font-family:var(--data); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:rgba(244,241,234,.78); transition:color .25s;
}
.nav a:hover,.nav a[aria-current="page"]{ color:var(--cream); }
.nav a[aria-current="page"]{ text-decoration:underline; text-underline-offset:6px; text-decoration-color:var(--emerald); }
.nav__cta{
  border:1px solid rgba(244,241,234,.32); border-radius:999px; padding:.55rem 1.1rem;
  color:var(--cream); transition:background .25s,border-color .25s;
}
.nav__cta:hover{ background:var(--emerald); border-color:var(--emerald); }
.nav-toggle{ display:none; background:none; border:0; color:var(--cream); padding:.4rem; cursor:pointer; }
.nav-toggle svg{ width:22px; height:22px; stroke:currentColor; stroke-width:1.5; fill:none; }
@media (max-width:820px){
  .nav-toggle{ display:block; }
  .nav{
    position:fixed; inset:0 0 auto; padding:5.5rem var(--gut) 2.2rem;
    background:var(--teal-deep); flex-direction:column; align-items:flex-start; gap:1.4rem;
    transform:translateY(-105%); transition:transform .45s var(--ease); z-index:-1;
    border-bottom:1px solid rgba(244,241,234,.12);
  }
  .nav a{ font-size:.88rem; }
  .site-head.is-open .nav{ transform:none; }
  .site-head.is-open{ background:var(--teal-deep); }
}

/* --- 5. Buttons --------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; gap:.7em; border-radius:999px;
  padding:.95em 1.7em; font-family:var(--data); font-size:.74rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; text-decoration:none; cursor:pointer;
  border:1px solid transparent; transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn__arrow{ transition:transform .3s var(--ease); }
.btn:hover .btn__arrow{ transform:translateX(4px); }
.btn--fill{ background:var(--emerald); color:var(--cream); }
.btn--fill:hover{ background:#0AA46B; }
.btn--cream{ background:var(--cream); color:var(--teal-deep); }
.btn--cream:hover{ background:#fff; }
.btn--ghost{ border-color:currentColor; color:inherit; }
.btn--ghost:hover{ background:var(--emerald); border-color:var(--emerald); color:var(--cream); }
.btn--lg{ padding:1.1em 2em; font-size:.78rem; }
.btn[disabled]{ opacity:.5; pointer-events:none; }

/* ==========================================================================
   6. HERO
   Photograph behind, type in front, held at the top of the frame.
   The overlay is what keeps the type legible: two gradients, one down from
   the top for the headline, one up from the bottom for the stat strip.
   ========================================================================== */
.hero{
  position:relative; min-height:clamp(620px,94vh,1000px); display:flex; flex-direction:column;
  justify-content:space-between; background:var(--teal-deep); color:var(--cream); overflow:hidden;
  isolation:isolate;
}
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:50% 58%; opacity:.82; }
/* Measured against the actual photograph: this keeps every piece of hero type
   above a 10:1 contrast ratio while still leaving the picture readable. */
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg,rgba(6,18,13,.74) 0%,rgba(6,18,13,.5) 34%,rgba(6,18,13,.26) 56%,rgba(6,18,13,.76) 100%),
    radial-gradient(120% 80% at 50% 0%,rgba(10,32,25,.4) 0%,rgba(10,32,25,0) 60%);
}
.hero__inner{ position:relative; z-index:2; padding-top:clamp(7.5rem,17vh,11rem); }
.hero__sub{
  font-family:var(--data); font-size:clamp(.58rem,1.02vw,.72rem); letter-spacing:.3em;
  text-transform:uppercase; color:rgba(244,241,234,.72); margin:0 0 clamp(1.2rem,3vh,2rem);
}
.hero__h1{
  font-size:clamp(2.9rem,10.4vw,9rem); line-height:.86; text-transform:uppercase;
  font-weight:600; letter-spacing:-.03em; margin:0; display:flex; flex-direction:column;
  text-shadow:0 2px 40px rgba(4,14,10,.55);
}
.hero__h1 .l2{ color:#9FD8B8; }
.hero__lede{
  margin-top:clamp(1.4rem,3vh,2.2rem); max-width:46ch; font-size:clamp(1rem,1.5vw,1.2rem);
  line-height:1.6; color:rgba(244,241,234,.86); text-shadow:0 1px 20px rgba(4,14,10,.6);
}
.hero__cta{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:clamp(1.8rem,4vh,2.6rem); }

.hero__strip{
  position:relative; z-index:2; border-top:1px solid rgba(244,241,234,.16);
  margin-top:clamp(3rem,8vh,5rem);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
}
.hero__strip .wrap{ display:grid; gap:0; grid-template-columns:repeat(3,1fr); }
.hero__stat{ padding:clamp(1.1rem,2.5vh,1.7rem) 0; }
.hero__stat + .hero__stat{ border-left:1px solid rgba(244,241,234,.16); padding-left:clamp(1rem,3vw,2.4rem); }
.hero__stat b{
  display:block; font-family:var(--data); font-weight:500; font-size:clamp(1.2rem,2.6vw,2rem);
  letter-spacing:-.02em; color:var(--cream);
}
.hero__stat span{
  display:block; font-family:var(--data); font-size:.58rem; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(244,241,234,.6); margin-top:.5rem; max-width:26ch; line-height:1.5;
}
@media (max-width:700px){
  .hero__strip .wrap{ grid-template-columns:1fr 1fr; }
  .hero__stat:last-child{ display:none; }
}

/* --- 7. The season chart ------------------------------------------------ */
.season{ border:1px solid rgba(244,241,234,.16); background:rgba(8,26,20,.5); padding:clamp(1.1rem,2.5vw,1.8rem); }
.season__head{
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-family:var(--data); font-size:.58rem; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(244,241,234,.55); margin-bottom:clamp(1.2rem,3vw,2rem);
}
.season__head b{ color:var(--cream); font-weight:500; }
.season__plot{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(3px,.7vw,8px); align-items:end; height:clamp(150px,22vw,240px); }
.season__col{ display:flex; flex-direction:column; justify-content:flex-end; height:100%; }
.season__bar{ border-radius:2px 2px 0 0; background:rgba(244,241,234,.1); border:1px dashed rgba(200,64,47,.55); }
.season__col--peak .season__bar{ background:var(--emerald); border:0; }
.season__axis{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(3px,.7vw,8px); margin-top:.6rem; }
.season__axis span{
  font-family:var(--data); font-size:.56rem; letter-spacing:.06em; text-align:center;
  color:rgba(244,241,234,.45);
}
.season__col--peak + .season__col:not(.season__col--peak){ position:relative; }
.season__legend{
  display:flex; gap:1.4rem; flex-wrap:wrap; margin-top:1.4rem; padding-top:1rem;
  border-top:1px solid rgba(244,241,234,.13);
  font-family:var(--data); font-size:.58rem; letter-spacing:.13em; text-transform:uppercase;
  color:rgba(244,241,234,.5);
}
.season__legend i{ width:11px; height:11px; display:inline-block; margin-right:.5rem; vertical-align:-1px; }

/* --- 8. Leader-line figures --------------------------------------------- */
.fig{
  display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:.9rem;
  padding:1.1rem 0; border-bottom:1px solid var(--line);
}
.fig:first-child{ border-top:1px solid var(--line); }
.dark .fig{ border-color:rgba(244,241,234,.15); }
.fig__n{ font-family:var(--data); font-size:clamp(1.4rem,3.2vw,2.3rem); letter-spacing:-.03em; color:var(--emerald); font-variant-numeric:tabular-nums; }
.fig__dots{ border-bottom:1px dotted var(--line); transform:translateY(-.32em); }
.dark .fig__dots{ border-color:rgba(244,241,234,.3); }
.fig__l{
  font-family:var(--data); font-size:clamp(.74rem,.68rem + .2vw,.86rem); letter-spacing:.06em;
  text-transform:uppercase; text-align:right; max-width:30ch; color:#3F4F45; line-height:1.45;
}
.dark .fig__l{ color:rgba(244,241,234,.82); }

/* --- 9. The plan map ---------------------------------------------------- */
.plan{ position:relative; overflow:hidden; border:1px solid rgba(244,241,234,.16); background:#0C1F19; }
.plan__img{ width:100%; height:auto; display:block; }
.plan::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(125% 95% at 50% 50%,rgba(4,14,10,0) 30%,rgba(4,14,10,.5) 100%);
}
.plan__overlay{ position:absolute; inset:0; z-index:2; }
.mark{ position:absolute; }
.mark__dot{
  width:14px; height:14px; border-radius:50%; background:var(--cream);
  box-shadow:0 0 0 4px rgba(10,32,25,.55),0 0 22px 6px rgba(4,14,10,.65); margin:0 auto;
}
.mark__stem{ width:1px; height:clamp(22px,3.2vw,46px); margin:0 auto; background:linear-gradient(180deg,rgba(244,241,234,.9),rgba(244,241,234,.25)); }
/* A soft dark bloom behind each label. The fairway runs pale green under two
   of the four markers, where cream type alone measures under 5:1. */
.mark__box{ text-align:center; white-space:nowrap; position:relative; }
.mark__box::before{
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:160%; height:210%; border-radius:50%; pointer-events:none;
  background:radial-gradient(closest-side,rgba(4,14,10,.78),rgba(4,14,10,.5) 55%,rgba(4,14,10,0) 100%);
}
.mark__n,.mark__l{ position:relative; }
.mark__n{
  font-family:var(--data); font-weight:500; font-size:clamp(1.5rem,3.4vw,3.1rem); line-height:1;
  letter-spacing:-.04em; color:var(--cream); text-shadow:0 2px 18px rgba(4,14,10,.95),0 0 40px rgba(4,14,10,.8);
}
.mark__n em{ font-style:normal; font-size:.42em; letter-spacing:.18em; margin-left:.45em; color:rgba(244,241,234,.75); }
.mark__l{
  font-family:var(--data); font-size:clamp(.6rem,1.05vw,.8rem); letter-spacing:.15em; text-transform:uppercase;
  color:var(--cream); margin-top:.5rem; text-shadow:0 2px 14px rgba(4,14,10,.95);
}
/* --up hangs its label above the dot, --down below it. The percentage
   position always refers to the dot, so the transform does the shifting. */
.mark--up{ transform:translate(-50%,-100%); }
.mark--up .mark__box{ margin-bottom:.45rem; }
.mark--down{ transform:translate(-50%,0); }
.mark--down .mark__box{ margin-top:.45rem; }

.plan__list{ display:none; }
@media (max-width:820px){
  .plan__overlay{ display:none; }
  .plan__list{ display:block; margin-top:1.6rem; }
}

/* --- 10. Phases --------------------------------------------------------- */
.phase{
  display:grid; grid-template-columns:auto 1fr; gap:clamp(1.1rem,3vw,2.6rem);
  padding-block:clamp(1.7rem,3.4vw,2.7rem); border-top:1px solid var(--line);
}
.dark .phase{ border-color:rgba(244,241,234,.15); }
.phase__k{ font-family:var(--data); font-size:.76rem; letter-spacing:.13em; color:var(--emerald); padding-top:.55rem; white-space:nowrap; }
/* Each .phase is its own grid, so an auto first column makes every row line up
   to its own label width. Where the labels differ in length, pin the column. */
.phases--fixed{ --k:19rem; }
@media (min-width:900px){
  .phases--fixed .phase{ grid-template-columns:var(--k) 1fr; }
}
/* Narrow screens cannot hold a nowrap label beside the copy: stack instead. */
@media (max-width:899px){
  .phase{ grid-template-columns:1fr; gap:.5rem; }
  .phase__k{ padding-top:0; white-space:normal; }
}
.phase__t{ margin-bottom:.5rem; }
.phase p{ color:var(--muted); max-width:60ch; }
.dark .phase p{ color:rgba(244,241,234,.7); }
.phase ul{ margin:.9rem 0 0; padding:0; list-style:none; }
.phase li{ position:relative; padding-left:1.3rem; margin-bottom:.4rem; font-size:.94rem; color:var(--muted); }
.dark .phase li{ color:rgba(244,241,234,.68); }
.phase li::before{ content:""; position:absolute; left:0; top:.65em; width:7px; height:1px; background:var(--emerald); }

/* --- 11. Cards ---------------------------------------------------------- */
.card{ border:1px solid var(--line); padding:clamp(1.4rem,2.6vw,2rem); background:#fff; }
.dark .card{ background:rgba(244,241,234,.04); border-color:rgba(244,241,234,.15); }
.card h3{ margin-bottom:.6rem; }
.card p{ font-size:.94rem; color:var(--muted); }
.dark .card p{ color:rgba(244,241,234,.68); }
.card__k{ font-family:var(--data); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--emerald); display:block; margin-bottom:.9rem; }
.card--dead{ border-color:rgba(200,64,47,.38); }
.card--dead .card__k{ color:var(--dead); }

/* slot counter for the selective section */
.slots{ display:grid; gap:.7rem; margin:1.8rem 0 0; padding:0; list-style:none; }
.slots li{
  display:flex; align-items:center; gap:1rem; padding:.85rem 1.1rem;
  border:1px solid rgba(244,241,234,.16); font-family:var(--data); font-size:.7rem;
  letter-spacing:.12em; text-transform:uppercase; color:rgba(244,241,234,.75);
}
.slots li b{ color:var(--cream); font-weight:500; }
.slots .dot{ width:9px; height:9px; border-radius:50%; background:var(--emerald); flex:none; }
.slots .dot--out{ background:transparent; border:1px solid rgba(244,241,234,.4); }

/* --- 12. Forms ---------------------------------------------------------- */
.form{ display:grid; gap:1.05rem; }
.form > .btn{ justify-self:start; }
.field{ display:grid; gap:.4rem; }
.field label{ font-family:var(--data); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.dark .field label{ color:rgba(244,241,234,.58); }
.field input,.field select,.field textarea{
  font:inherit; font-size:.97rem; padding:.8rem .95rem; border:1px solid var(--line);
  background:#fff; color:var(--ink); border-radius:2px; width:100%;
}
.dark .field input,.dark .field select,.dark .field textarea{
  background:rgba(244,241,234,.05); border-color:rgba(244,241,234,.2); color:var(--cream);
}
.dark .field select option{ color:#111; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:2px solid var(--emerald); outline-offset:1px; }
.field--row{ display:grid; gap:1.05rem; }
@media (min-width:620px){ .field--row{ grid-template-columns:1fr 1fr; } }
.consent{ display:grid; grid-template-columns:auto 1fr; gap:.8rem; align-items:start; font-size:.8rem; line-height:1.6; color:var(--muted); }
.dark .consent{ color:rgba(244,241,234,.64); }
.consent input{ width:17px; height:17px; margin-top:.3rem; accent-color:var(--emerald); }
.form__note{ font-size:.74rem; color:var(--muted); }
.dark .form__note{ color:rgba(244,241,234,.5); }
.form__status{ font-family:var(--data); font-size:.68rem; letter-spacing:.1em; min-height:1.2em; color:var(--emerald); }
.hp{ position:absolute; left:-9999px; }

/* --- 13. Prose (legal pages) -------------------------------------------- */
.prose{ max-width:74ch; }
.prose h2{ font-size:clamp(1.4rem,2.4vw,1.9rem); margin:2.8rem 0 .9rem; }
.prose h3{ font-size:1.05rem; font-family:var(--body); font-weight:600; margin:1.8rem 0 .5rem; }
.prose ul{ padding-left:1.1rem; margin:0 0 1.2rem; }
.prose li{ margin-bottom:.45rem; }
.prose a{ color:var(--emerald); text-underline-offset:3px; }
.prose .callout{ border-left:2px solid var(--emerald); padding:.9rem 0 .9rem 1.2rem; margin:1.7rem 0; background:rgba(11,143,94,.05); }
.prose .updated{ font-family:var(--data); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }

/* --- 14. Interior page hero --------------------------------------------- */
.phero{ background:var(--teal-deep); color:var(--cream); padding:clamp(8rem,14vw,11rem) 0 clamp(3.5rem,6vw,5.5rem); position:relative; overflow:hidden; }
.phero::after{ content:""; position:absolute; inset:auto 0 0; height:1px; background:linear-gradient(90deg,transparent,var(--emerald),transparent); opacity:.55; }
.phero h1{ font-size:clamp(2.5rem,6.6vw,5.2rem); text-transform:uppercase; letter-spacing:-.025em; line-height:.95; }
.phero .lede{ color:rgba(244,241,234,.66); margin-top:1.5rem; }
.phero--img .phero__bg{ position:absolute; inset:0; z-index:0; }
.phero--img .phero__bg img{ width:100%; height:100%; object-fit:cover; opacity:.3; }
.phero--img .phero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,18,13,.85),rgba(6,18,13,.65)); }
.phero--img .wrap{ position:relative; z-index:2; }
.crumb{ font-family:var(--data); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(244,241,234,.5); margin-bottom:1.5rem; }
.crumb a{ text-decoration:none; }
.crumb a:hover{ color:var(--cream); }

/* --- 15. Footer --------------------------------------------------------- */
.site-foot{ background:var(--teal-deep); color:rgba(244,241,234,.6); padding:clamp(3.5rem,6vw,5rem) 0 2rem; font-size:.87rem; }
.site-foot a{ text-decoration:none; color:rgba(244,241,234,.6); transition:color .25s; }
.site-foot a:hover{ color:var(--cream); }
.foot__grid{ display:grid; gap:2.5rem; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.foot__h{ font-family:var(--data); font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(244,241,234,.4); margin-bottom:1.1rem; }
.foot__list{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.foot__bottom{
  margin-top:3.5rem; padding-top:1.5rem; border-top:1px solid rgba(244,241,234,.12);
  display:flex; justify-content:space-between; gap:1.5rem; flex-wrap:wrap;
  font-family:var(--data); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(244,241,234,.36);
}
.site-foot .brand img{ height:22px; margin-bottom:1rem; }

/* --- 16. Reveal on scroll ----------------------------------------------- */
.rv{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
.rv.in{ opacity:1; transform:none; }
.rv-d1{ transition-delay:.08s; } .rv-d2{ transition-delay:.16s; } .rv-d3{ transition-delay:.24s; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .rv{ opacity:1; transform:none; }
}
