/* ==========================================================================
   Matrimony.com · Organic Search Case Study
   RankFast · Editorial motion system
   Palette + type taken from bharatmatrimony.com (Lato; sand / orange / rust /
   aubergine / BM green). Section transitions and layered display type follow
   the reference motion film.
   ========================================================================== */

/* ---------- 1. TOKENS ---------- */
:root{
  /* surface (BM cream + their signature sand #E3DACB) */
  --paper:      #FAF6EF;
  --paper-2:    #F0E9DC;
  --sand:       #E3DACB;
  --ink:        #1F1F1F;
  --aubergine:  #251839;
  --ink-soft:   rgba(31,31,31,.66);
  --ink-faint:  rgba(31,31,31,.36);
  --rule:       rgba(31,31,31,.15);

  /* BM brand accents */
  --orange:     #E06506;
  --orange-b:   #FF9800;
  --rust:       #9D3100;
  --maroon:     #A40F0F;
  --bm-green:   #00A03A;
  --slate:      #4A546E;

  /* text-safe variants (AA on cream) */
  --pos:        #0A7A32;
  --neg:        #A40F0F;
  --accent-t:   #9D3100;

  /* property colour blocks, tinted from the BM palette */
  --c-bharat:   #E3DACB;
  --c-telugu:   #F3CCA4;
  --c-tamil:    #EFC3B8;
  --c-kerala:   #C6DCC9;

  /* type: Lato, as used on bharatmatrimony.com */
  --display: 'Lato', 'Helvetica Neue', Arial, sans-serif;
  --body:    'Lato', 'Helvetica Neue', Arial, sans-serif;

  /* rhythm */
  --gut: clamp(20px, 4vw, 72px);
  --sp-1: 8px;  --sp-2: 16px; --sp-3: 24px; --sp-4: 40px;
  --sp-5: 64px; --sp-6: 96px; --sp-7: 140px;

  --r: 14px;
  --r-lg: 22px;

  --ease: cubic-bezier(.22,1,.36,1);
  --ease-io: cubic-bezier(.65,0,.35,1);
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{ box-sizing:border-box; }
/* NB: no `scroll-behavior:smooth` here, it corrupts ScrollTrigger's refresh
   measurements. Smooth anchor scrolling is done per-click in main.js instead. */
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-weight:400;
  font-size:clamp(15px,.5vw + 13.6px,17px);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
h1,h2,h3,h4{ margin:0; font-weight:900; line-height:1.04; letter-spacing:-.02em; }
p{ margin:0 0 1em; } p:last-child{ margin-bottom:0; }
ul,ol,dl,dd{ margin:0; padding:0; } li{ list-style:none; }
table{ border-collapse:collapse; width:100%; }
a{ color:inherit; }
code{ font-family:'Lato',monospace; font-weight:700; font-size:.9em; }
:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; border-radius:4px; }
.sec--ink :focus-visible,.foot :focus-visible{ outline-color:var(--orange-b); }

/* ---------- 3. TYPE PRIMITIVES ---------- */
/* Oversized display, the film's signature, rendered in Lato Black */
.h2{
  font-size:clamp(2.3rem,5.6vw,5.2rem);
  font-weight:900; line-height:.98; letter-spacing:-.028em;
  max-width:20ch;
}
.h3{
  font-size:clamp(1.8rem,3.6vw,3rem);
  font-weight:900; letter-spacing:-.025em; line-height:1;
}
.h4{
  font-size:clamp(1.1rem,1.6vw,1.45rem);
  font-weight:900; letter-spacing:-.015em;
  margin-bottom:var(--sp-3);
}
/* micro-labels: Lato caps + wide tracking (BM uses no mono face) */
.tag{
  display:inline-block;
  font-weight:700; font-size:11px;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--accent-t);
}
.sec--ink .tag,.sec__head--inv .tag{ color:var(--orange-b); }
.tag--ghost{
  border:1px solid var(--rule); border-radius:999px;
  padding:4px 12px; margin-left:8px; color:var(--ink-soft);
}
.num{ font-variant-numeric:tabular-nums; font-feature-settings:'tnum'; }

/* ---------- 4. LOADER ---------- */
.loader{
  position:fixed; inset:0; z-index:9999;
  background:var(--aubergine); color:var(--paper);
  display:grid; place-items:center;
  transition:transform .9s var(--ease-io);
}
.loader.is-done{ transform:translateY(-101%); }
.loader__inner{ width:min(560px,82vw); text-align:left; }
.loader__mark{ font-size:44px; line-height:1; margin-bottom:var(--sp-3); color:var(--orange-b); }
.loader__count{
  font-weight:900; font-size:clamp(4rem,13vw,9rem);
  line-height:.9; letter-spacing:-.04em;
}
.loader__count i{ font-size:.28em; font-style:normal; opacity:.55; vertical-align:super; }
.loader__bar{ height:2px; background:rgba(250,246,239,.2); margin-top:var(--sp-3); }
.loader__bar span{ display:block; height:100%; width:0; background:var(--orange-b); }
body.is-loaded .loader{ pointer-events:none; }

/* ---------- 5. CURSOR ---------- */
.cursor{
  position:fixed; top:0; left:0; z-index:9998; pointer-events:none;
  mix-blend-mode:difference; opacity:0;
  transition:opacity .3s;
}
.cursor__ring{
  display:block; width:34px; height:34px; margin:-17px 0 0 -17px;
  border:1.5px solid #fff; border-radius:50%;
  transition:transform .28s var(--ease), background-color .28s;
}
.cursor.is-on{ opacity:1; }
.cursor.is-hot .cursor__ring{ transform:scale(1.75); background:rgba(255,255,255,.18); }
@media (hover:none),(pointer:coarse){ .cursor{ display:none; } }

/* ---------- 6. NAV + PROGRESS ---------- */
.nav{
  position:fixed; top:14px; left:50%; transform:translateX(-50%);
  z-index:900; width:min(1440px,calc(100vw - 28px));
  display:flex; align-items:center; gap:var(--sp-3);
  padding:9px 9px 9px 18px;
  background:rgba(250,246,239,.82);
  backdrop-filter:blur(18px) saturate(1.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid var(--rule); border-radius:999px;
  transition:background .5s, color .5s, border-color .5s, transform .45s var(--ease);
}
.nav.is-hidden{ transform:translateX(-50%) translateY(-140%); }
.nav.on-dark{ background:rgba(37,24,57,.78); color:var(--paper); border-color:rgba(250,246,239,.2); }
.nav__brand{ font-weight:900; font-size:17px; letter-spacing:-.02em; text-decoration:none; white-space:nowrap; }
.nav__chev{ display:inline-block; transform:translateY(-1px); color:var(--orange); }
.nav__links{ display:flex; gap:2px; margin-left:auto; }
.nav__links a{
  font-weight:700; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase;
  text-decoration:none; padding:8px 13px; border-radius:999px;
  opacity:.62; transition:opacity .25s, background-color .25s;
}
.nav__links a:hover,.nav__links a.is-active{ opacity:1; background:rgba(224,101,6,.14); }
.nav.on-dark .nav__links a:hover,.nav.on-dark .nav__links a.is-active{ background:rgba(255,152,0,.2); }
.nav__meta{
  display:flex; align-items:center; gap:7px;
  font-weight:700; font-size:10px; letter-spacing:.14em;
  padding:8px 15px; border:1px solid currentColor; border-radius:999px; opacity:.7;
  white-space:nowrap;
}
.dot{ width:6px; height:6px; border-radius:50%; background:var(--bm-green); animation:pulse 2.4s infinite; }
@keyframes pulse{ 0%,100%{ opacity:1 } 50%{ opacity:.25 } }

.progress{ position:fixed; top:0; left:0; right:0; height:3px; z-index:950; }
.progress span{ display:block; height:100%; width:0; background:var(--orange); }

@media (max-width:980px){
  .nav__links,.nav__meta{ display:none; }
  .nav{ justify-content:space-between; padding:10px 18px; }
}

/* ---------- 7. HERO ---------- */
.hero{
  position:relative; min-height:100svh;
  padding:calc(var(--sp-5) + 40px) var(--gut) var(--sp-3);
  display:flex; flex-direction:column; justify-content:center;
  overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; z-index:0; }
.hero__grid{
  position:absolute; inset:0;
  background-image:linear-gradient(var(--rule) 1px,transparent 1px),
                   linear-gradient(90deg,var(--rule) 1px,transparent 1px);
  background-size:clamp(48px,7vw,110px) clamp(48px,7vw,110px);
  mask-image:radial-gradient(ellipse 80% 60% at 50% 45%,#000 20%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 45%,#000 20%,transparent 78%);
  opacity:.65;
}
.blob{ position:absolute; border-radius:50%; filter:blur(72px); }
.blob--1{ width:46vw; height:46vw; background:var(--orange-b); top:-14vw; right:-8vw; opacity:.30; }
.blob--2{ width:38vw; height:38vw; background:var(--sand); bottom:-16vw; left:-6vw; opacity:.75; }
.blob--3{ width:30vw; height:30vw; background:var(--maroon); top:32%; left:38%; opacity:.12; }

.hero__kicker{ position:relative; z-index:2; margin-bottom:var(--sp-4); }
.hero__type{ position:relative; z-index:2; }

/* ghost outline word behind the headline, the film's layered-type trick */
.hero__ghost{
  position:absolute; inset:auto 0 -6%; z-index:-1;
  display:flex; flex-direction:column; align-items:center;
  font-weight:900; font-size:clamp(6rem,20vw,20rem);
  line-height:.82; letter-spacing:-.045em;
  -webkit-text-stroke:1.4px rgba(224,101,6,.3);
  color:transparent; white-space:nowrap; pointer-events:none;
  will-change:transform;
}
.hero__h1{
  font-size:clamp(2.5rem, min(7.4vw, 10.4vh), 7.4rem);
  font-weight:900; line-height:1; letter-spacing:-.03em;
  max-width:19ch;
}
.hero__h1 .line{ display:block; overflow:hidden; }
.hero__h1 .line--em{ font-style:italic; font-weight:700; color:var(--rust); }

.hero__foot{
  position:relative; z-index:2;
  display:flex; align-items:flex-end; justify-content:space-between; gap:var(--sp-4);
  margin-top:var(--sp-3); flex-wrap:wrap;
}
.hero__lede{ max-width:54ch; font-size:clamp(1rem,1.15vw,1.2rem); color:var(--ink-soft); margin:0; }
.hero__lede em{ font-style:normal; font-weight:900; color:var(--ink); }
.hero__scroll{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:10px; letter-spacing:.22em; opacity:.6; }
.hero__scroll i{ display:block; width:44px; height:2px; background:var(--rule); position:relative; overflow:hidden; }
.hero__scroll i::after{ content:''; position:absolute; inset:0; background:var(--orange); animation:sweep 1.9s var(--ease-io) infinite; }
@keyframes sweep{ 0%{ transform:translateX(-100%) } 60%,100%{ transform:translateX(100%) } }

.hero__stats{
  position:relative; z-index:2; margin-top:clamp(20px,3.4vh,var(--sp-4));
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--rule); border-top:2px solid var(--ink);
}
.hstat{
  background:var(--paper); padding:var(--sp-3) var(--sp-2) var(--sp-2);
  display:flex; flex-wrap:wrap; align-items:baseline; gap:6px;
}
.hstat b{ font-size:clamp(1.7rem,3.4vw,2.9rem); font-weight:900; line-height:1; letter-spacing:-.03em; }
.hstat b.accent{ color:var(--pos); }
.hstat i{ font-style:normal; opacity:.4; font-size:1.3rem; }
.hstat span{
  flex:1 0 100%; font-weight:700; font-size:10px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-top:8px;
}
@media (max-width:820px){ .hero__stats{ grid-template-columns:repeat(2,1fr); } }

/* ---------- 8. TICKER ---------- */
.ticker{ background:var(--aubergine); color:var(--paper); padding:14px 0; overflow:hidden; white-space:nowrap; }
.ticker__track{ display:inline-flex; gap:22px; align-items:center; will-change:transform; padding-left:22px; }
.ticker__track span{ font-weight:700; font-size:12px; letter-spacing:.1em; text-transform:uppercase; opacity:.78; }
.ticker__track i{ font-style:normal; color:var(--orange-b); margin-left:8px; }

/* ---------- 9. SECTION SHELL ---------- */
.sec{ position:relative; padding:var(--sp-7) var(--gut); overflow:hidden; }
.sec--tight{ padding-block:var(--sp-6); }
.sec--paper{ background:var(--paper); }
.sec--ink{ background:var(--aubergine); color:var(--paper); }
.sec--ink .h2,.sec--ink .h3,.sec--ink .h4{ color:var(--paper); }
.sec--color{ background:var(--block); }
.block__wipe{
  position:absolute; inset:0; z-index:0; background:var(--paper);
  transform-origin:bottom; will-change:transform;
}
.sec--color > *:not(.block__wipe){ position:relative; z-index:1; }

.sec__head{ max-width:1440px; margin:0 auto var(--sp-6); }
.sec__head .h2,.sec__head .h3{ margin:var(--sp-2) 0 var(--sp-3); }
.sec__lede{
  max-width:64ch; font-size:clamp(1.02rem,1.25vw,1.26rem);
  color:var(--ink-soft); line-height:1.55;
}
.sec--ink .sec__lede,.sec__head--inv .sec__lede{ color:rgba(250,246,239,.74); }
.sec--color .sec__lede{ color:rgba(31,31,31,.76); }
.sec__lede em{ font-style:normal; font-weight:900; color:inherit; opacity:1; }

/* ---------- 10. PROPERTIES GRID ---------- */
.props{
  max-width:1440px; margin:0 auto var(--sp-6);
  display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-2);
}
.prop{
  position:relative; padding:var(--sp-3); border-radius:var(--r);
  background:var(--c); border:1px solid rgba(31,31,31,.12);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
  will-change:transform;
}
.prop:hover{ transform:translateY(-6px); box-shadow:0 18px 40px -22px rgba(31,31,31,.55); }
.prop__idx{ font-weight:900; font-size:11px; letter-spacing:.16em; color:var(--rust); }
.prop h3{ font-size:clamp(1.2rem,1.7vw,1.6rem); font-weight:900; margin:var(--sp-2) 0 4px; letter-spacing:-.02em; }
.prop h3 i{ font-style:normal; opacity:.42; font-weight:400; }
.prop__role{ font-weight:700; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; opacity:.62; margin-bottom:var(--sp-3); }
.prop dl > div{ display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-top:1px solid rgba(31,31,31,.15); }
.prop dt{ font-size:12.5px; opacity:.7; }
.prop dd{ font-weight:900; font-size:14px; }
@media (max-width:1080px){ .props{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .props{ grid-template-columns:1fr; } }

.hard{ max-width:1440px; margin:0 auto; }
.hard__list{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-2); counter-reset:h; }
.hard__list li{
  counter-increment:h; padding:var(--sp-3); border-top:3px solid var(--orange);
  font-size:15px; color:var(--ink-soft);
}
.hard__list li::before{
  content:'0' counter(h); display:block; font-weight:900; font-size:11px;
  letter-spacing:.16em; margin-bottom:10px; color:var(--rust);
}
.hard__list b{ color:var(--ink); font-weight:900; }
@media (max-width:820px){ .hard__list{ grid-template-columns:1fr; } }

/* ---------- 11. STICKY CONSTRAINT STACK ---------- */
.stack{ max-width:1100px; margin:0 auto var(--sp-6); }
.card{
  position:sticky; top:16vh;
  display:flex; gap:var(--sp-4); align-items:flex-start;
  padding:var(--sp-4); margin-bottom:var(--sp-3);
  background:var(--paper); color:var(--ink);
  border-radius:var(--r-lg);
  box-shadow:0 -1px 0 rgba(31,31,31,.08), 0 30px 60px -40px rgba(0,0,0,.75);
  will-change:transform;
}
.card[data-card="1"]{ top:calc(16vh + 26px); background:var(--paper-2); }
.card[data-card="2"]{ top:calc(16vh + 52px); background:var(--sand); }
.card__num{
  font-weight:900; font-size:clamp(3rem,6vw,5.5rem); line-height:.9; letter-spacing:-.04em;
  color:transparent; -webkit-text-stroke:2px var(--orange); flex:none;
}
.card__body h3{ font-size:clamp(1.4rem,2.4vw,2.1rem); font-weight:900; margin-bottom:var(--sp-2); letter-spacing:-.02em; }
.card__body p{ max-width:62ch; color:var(--ink-soft); }
.card__conseq{ margin-top:var(--sp-3); padding-top:var(--sp-2); border-top:1px solid var(--rule); font-size:14px; }
.card__conseq span{
  display:block; font-weight:900; font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--maroon); margin-bottom:6px;
}
@media (max-width:760px){
  .card{ flex-direction:column; gap:var(--sp-2); padding:var(--sp-3); top:10vh; }
  .card[data-card="1"]{ top:calc(10vh + 18px); } .card[data-card="2"]{ top:calc(10vh + 36px); }
}

/* ---------- 12. PULL QUOTE ---------- */
.pull{
  max-width:1100px; margin:var(--sp-6) auto 0; padding:0;
  border-top:3px solid var(--orange); padding-top:var(--sp-4);
}
.pull p{ font-size:clamp(1.4rem,3vw,2.5rem); font-weight:700; line-height:1.18; letter-spacing:-.02em; }
.pull em{ font-style:italic; font-weight:900; color:var(--orange-b); }
.pull .strike{ text-decoration:line-through; opacity:.42; }
.pull cite{
  display:block; margin-top:var(--sp-3); font-style:normal;
  font-weight:700; font-size:10px; letter-spacing:.2em; text-transform:uppercase; opacity:.6;
}
.pull--light{ border-color:var(--orange); }
.pull--light em{ color:var(--rust); }

/* ---------- 13. STRATEGY ---------- */
.pillars{
  max-width:1440px; margin:0 auto var(--sp-6);
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(31,31,31,.18);
}
.pillar{ background:var(--block); padding:var(--sp-3) var(--sp-3) var(--sp-4); }
.pillar__n{ font-weight:900; font-size:11px; letter-spacing:.16em; color:var(--rust); }
.pillar h4{ font-size:clamp(1.05rem,1.5vw,1.3rem); font-weight:900; margin:var(--sp-2) 0 10px; }
.pillar p{ font-size:14px; color:rgba(31,31,31,.74); margin:0; }
@media (max-width:1080px){ .pillars{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .pillars{ grid-template-columns:1fr; } }

.split{
  max-width:1440px; margin:0 auto var(--sp-6);
  display:grid; grid-template-columns:.85fr 1.15fr; gap:var(--sp-5); align-items:start;
}
.split__l p{ color:rgba(31,31,31,.78); max-width:48ch; }
.split__l em{ font-style:normal; font-weight:900; color:var(--ink); }
.note{ margin-top:var(--sp-3); padding:var(--sp-2) var(--sp-3); background:rgba(255,255,255,.55); border-radius:var(--r); font-size:14px; border-left:3px solid var(--orange); }
.note b{ font-weight:900; }
@media (max-width:960px){ .split{ grid-template-columns:1fr; gap:var(--sp-4); } }

.tbl{ font-size:14px; }
.tbl caption{ text-align:left; font-weight:900; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--rust); padding-bottom:var(--sp-2); }
.tbl th{
  text-align:left; font-weight:900; font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; opacity:.62;
  padding:0 var(--sp-2) 10px 0; border-bottom:2px solid currentColor;
}
.tbl td{ padding:14px var(--sp-2) 14px 0; border-bottom:1px solid rgba(31,31,31,.16); vertical-align:top; }
.tbl td:first-child{ font-weight:900; width:1%; white-space:nowrap; }
.tbl code{
  display:inline-block; background:rgba(31,31,31,.09); padding:2px 7px;
  border-radius:5px; margin:2px 4px 2px 0; font-size:12px; white-space:nowrap; font-weight:700;
}
.tbl--sm td,.tbl--sm th{ font-size:13px; padding-block:11px; }
.tbl--sm td span{ display:block; font-weight:400; font-size:11px; opacity:.6; }
.tbl--inv td{ border-color:rgba(250,246,239,.18); }
.tbl--inv td:first-child{ white-space:normal; }
@media (max-width:640px){ .tbl td:first-child{ white-space:normal; } .tbl code{ white-space:normal; } }

.tiers{ max-width:1440px; margin:0 auto; }
.tiers__lede{ max-width:62ch; color:rgba(31,31,31,.74); margin-bottom:var(--sp-3); }
.tiers__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:var(--sp-2); }
.tier{ padding:var(--sp-3); background:rgba(255,255,255,.5); border-radius:var(--r); border:1px solid rgba(31,31,31,.12); }
.tier span{ font-weight:900; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--rust); }
.tier b{ display:block; margin:10px 0; font-size:14.5px; font-weight:900; line-height:1.3; }
.tier p{ font-size:13px; color:rgba(31,31,31,.7); margin:0; }
@media (max-width:1180px){ .tiers__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .tiers__grid{ grid-template-columns:1fr; } }

/* ---------- 14. EXECUTION ---------- */
.bigstats{ max-width:1440px; margin:0 auto var(--sp-6); display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-2); }
.bigstat{ border-top:3px solid var(--orange); padding-top:var(--sp-2); }
.bigstat b{ display:block; font-size:clamp(2.8rem,7.4vw,6rem); font-weight:900; line-height:.95; letter-spacing:-.035em; }
.bigstat span{ display:block; margin-top:var(--sp-2); font-weight:700; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; }
.bigstat i{ display:block; font-style:normal; opacity:.6; margin-top:5px; letter-spacing:.06em; font-weight:400; text-transform:none; }
@media (max-width:760px){ .bigstats{ grid-template-columns:1fr; } }

.deliv{ max-width:1440px; margin:0 auto var(--sp-6); display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5); }
.deliv__col h4{ font-size:1.1rem; font-weight:900; margin-bottom:var(--sp-3); }
.deliv__col h4.mt{ margin-top:var(--sp-4); }
.bars li{ display:grid; grid-template-columns:1fr auto; gap:var(--sp-2); align-items:center; padding:9px 0; position:relative; }
.bars li::before{ content:''; position:absolute; left:0; bottom:0; height:1px; width:100%; background:var(--rule); }
.bars li::after{
  content:''; position:absolute; left:0; bottom:0; height:3px;
  width:calc(var(--w,0) * 1%); background:var(--orange);
  transform:scaleX(0); transform-origin:left; transition:transform 1s var(--ease);
}
.bars li.is-in::after{ transform:scaleX(1); }
.bars span{ font-size:14px; color:var(--ink-soft); }
.bars i{ font-style:normal; font-weight:900; font-size:17px; }
.deliv__sub{ margin-top:var(--sp-2); font-weight:700; font-size:11px; letter-spacing:.12em; text-transform:uppercase; opacity:.65; }
.deliv__sub b{ font-size:16px; font-weight:900; opacity:1; color:var(--rust); }
@media (max-width:860px){ .deliv{ grid-template-columns:1fr; gap:var(--sp-4); } }

.method{ max-width:1440px; margin:0 auto; }
.method__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-2); }
.method__grid > div{ padding:var(--sp-3); background:var(--sand); border-radius:var(--r); font-size:14px; color:rgba(31,31,31,.76); }
.method__grid b{ display:block; margin-bottom:8px; color:var(--ink); font-weight:900; }
@media (max-width:1080px){ .method__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .method__grid{ grid-template-columns:1fr; } }

/* ---------- 15. RESULTS ---------- */
.kpis{ max-width:1440px; margin:0 auto var(--sp-6); display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(31,31,31,.18); }
.kpi{ background:var(--block); padding:var(--sp-3); }
.kpi b{ display:block; font-size:clamp(2rem,4.2vw,3.2rem); font-weight:900; line-height:1; letter-spacing:-.03em; }
.kpi span{ display:block; margin-top:12px; font-weight:700; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; }
.kpi i{ display:block; margin-top:5px; font-style:normal; font-size:13px; opacity:.66; }
@media (max-width:900px){ .kpis{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .kpis{ grid-template-columns:1fr; } }

.chart-wrap{ max-width:1440px; margin:0 auto var(--sp-6); }
.chart-note{ max-width:72ch; font-size:14px; color:rgba(31,31,31,.72); margin-bottom:var(--sp-4); }

/* grouped bar chart */
.gchart{ display:grid; gap:var(--sp-3); }
.grow{ display:grid; grid-template-columns:190px 1fr 80px; gap:var(--sp-3); align-items:center; }
.grow__lbl{ font-weight:900; font-size:15px; }
.grow__bars{ display:grid; gap:6px; }
.b{
  display:flex; align-items:center; justify-content:flex-end;
  height:26px; border-radius:0 4px 4px 0;
  width:calc(var(--pw,0) * 1%); transform-origin:left; transform:scaleX(0);
  transition:transform 1.1s var(--ease);
}
.gchart.is-in .b{ transform:scaleX(1); }
.b em{ font-style:normal; font-weight:700; font-size:11px; padding-right:10px; opacity:0; transition:opacity .4s .5s; }
.gchart.is-in .b em{ opacity:.9; }
.b--a{ background:rgba(31,31,31,.24); }
.b--b{ background:var(--orange); color:#fff; }
.grow__d{ font-weight:900; font-size:20px; text-align:right; color:var(--pos); }
.gchart__key,.bandchart__key{ display:flex; gap:var(--sp-3); font-weight:700; font-size:10px; letter-spacing:.14em; text-transform:uppercase; opacity:.72; margin-top:var(--sp-2); }
.gchart__key span,.bandchart__key span{ display:flex; align-items:center; gap:7px; }
.sw{ width:14px; height:10px; border-radius:2px; }
.sw--a{ background:rgba(31,31,31,.24); } .sw--b{ background:var(--orange); }
@media (max-width:760px){ .grow{ grid-template-columns:1fr auto; } .grow__bars{ grid-column:1 / -1; } }

/* line chart */
.linechart{ position:relative; }
.linechart svg{ width:100%; height:min(46vh,340px); overflow:visible; }
.lc__grid line{ stroke:rgba(31,31,31,.15); stroke-width:1; }
.lc__line{
  fill:none; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  stroke-dasharray:var(--len,2000); stroke-dashoffset:var(--len,2000);
  transition:stroke-dashoffset 1.6s var(--ease-io);
}
.linechart.is-in .lc__line{ stroke-dashoffset:0; }
.lc--bharat{ stroke:var(--rust); }
.lc--telugu{ stroke:var(--slate); }
.lc--tamil{ stroke:var(--maroon); }
.lc--kerala{ stroke:var(--bm-green); }
.lc__x{ display:flex; justify-content:space-between; margin-top:12px; font-weight:700; font-size:10px; letter-spacing:.16em; opacity:.65; }
.lc__legend{ display:flex; flex-wrap:wrap; gap:var(--sp-3); margin-top:var(--sp-3); font-size:12.5px; }
.lc__legend span{ display:flex; align-items:center; gap:8px; }
.lc__legend i{ width:16px; height:3px; border-radius:2px; background:var(--k); }
.lc__legend b{ font-weight:900; }
.lc__flag{
  position:absolute; top:0; right:0; bottom:34px; width:26%;
  border-left:2px dashed rgba(164,15,15,.5);
  background:linear-gradient(90deg,rgba(164,15,15,.09),rgba(164,15,15,.02));
  pointer-events:none;
}
.lc__flag span{ position:absolute; top:6px; left:8px; font-weight:900; font-size:9px; letter-spacing:.14em; color:var(--maroon); max-width:90%; }

.honest{ max-width:1440px; margin:0 auto; padding:var(--sp-4); background:rgba(255,255,255,.5); border-radius:var(--r-lg); }
.honest__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-3); }
.honest__grid span{
  display:block; font-weight:900; font-size:10px; letter-spacing:.16em;
  text-transform:uppercase; margin-bottom:10px; padding-bottom:8px;
  border-bottom:2px solid var(--orange); color:var(--rust);
}
.honest__grid p{ font-size:14px; color:rgba(31,31,31,.78); margin:0; }
@media (max-width:900px){ .honest__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .honest__grid{ grid-template-columns:1fr; } }

/* ---------- 16. PINNED PROPERTY DIVES ---------- */
.dives{ position:relative; height:400svh; }
.dives__sticky{
  position:sticky; top:0; height:100svh; overflow:hidden;
  display:flex; flex-direction:column; padding:var(--sp-5) var(--gut) var(--sp-4);
}
.dives__bgset{ position:absolute; inset:0; z-index:0; }
.dives__bg{ position:absolute; inset:0; opacity:0; will-change:opacity; }
.dives__bg[data-bg="0"]{ opacity:1; }
.dives__head{ position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); margin-bottom:var(--sp-3); }
.dives__prog{ flex:1; max-width:340px; height:3px; background:rgba(31,31,31,.2); }
.dives__prog i{ display:block; height:100%; width:0; background:var(--orange); }
.dives__panes{ position:relative; z-index:2; flex:1; min-height:0; }
.dive{
  position:absolute; inset:0;
  display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5);
  opacity:0; pointer-events:none; will-change:opacity,transform;
}
.dive.is-active{ opacity:1; pointer-events:auto; }
.dive__idx{ font-weight:900; font-size:11px; letter-spacing:.2em; color:var(--rust); }
.dive__name{ font-size:clamp(2.1rem,5vw,4.4rem); font-weight:900; line-height:.98; letter-spacing:-.035em; margin:var(--sp-2) 0 var(--sp-3); }
.dive__blurb{ max-width:50ch; font-size:15px; color:rgba(31,31,31,.78); }
.dive__notes{ display:grid; gap:10px; margin-top:var(--sp-3); }
.dive__notes li{ font-size:13.5px; color:rgba(31,31,31,.76); padding-left:16px; position:relative; }
.dive__notes li::before{ content:''; position:absolute; left:0; top:.62em; width:8px; height:2px; background:var(--orange); }
.dive__notes b{ color:var(--ink); font-weight:900; }
.dive__notes code{ background:rgba(31,31,31,.1); padding:1px 6px; border-radius:4px; font-size:12px; }
.dive__r{ display:flex; flex-direction:column; gap:var(--sp-3); justify-content:center; }
.dive__kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-2); }
.dive__kpis > div{ background:rgba(255,255,255,.55); border-radius:var(--r); padding:var(--sp-2); }
.dive__kpis b{ display:block; font-size:clamp(1.5rem,2.8vw,2.3rem); font-weight:900; line-height:1; letter-spacing:-.03em; color:var(--pos); }
.dive__kpis .neg b{ color:var(--neg); }
.dive__kpis span{ display:block; margin-top:9px; font-weight:700; font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; }
.dive__kpis i{ display:block; margin-top:4px; font-style:normal; font-size:12px; opacity:.65; }
.dtbl{ font-size:13.5px; }
.dtbl th{ text-align:left; font-weight:900; font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; opacity:.65; padding-bottom:9px; border-bottom:2px solid var(--ink); }
.dtbl td{ padding:11px 0; border-bottom:1px solid rgba(31,31,31,.16); }
.dtbl th:not(:first-child),.dtbl td:not(:first-child){ text-align:right; }
.dtbl .tot td{ font-weight:900; border-bottom:none; }
.dtbl .up{ color:var(--pos); font-weight:900; }
.dtbl .down{ color:var(--neg); font-weight:900; }

@media (max-width:1100px){
  .dives{ height:auto; }
  .dives__sticky{ position:static; height:auto; padding:var(--sp-5) 0 0; background:none; }
  .dives__head{ padding:0 var(--gut) var(--sp-3); }
  .dives__panes{ display:grid; gap:0; }
  .dives__prog{ display:none; }
  .dives__bgset{ display:none; }
  .dive{ position:static; opacity:1; pointer-events:auto; grid-template-columns:1fr; gap:var(--sp-3); padding:var(--sp-5) var(--gut); }
  .dive[data-dive="0"]{ background:var(--c-bharat); }
  .dive[data-dive="1"]{ background:var(--c-telugu); }
  .dive[data-dive="2"]{ background:var(--c-tamil); }
  .dive[data-dive="3"]{ background:var(--c-kerala); }
}

/* ---------- 17. KEYWORDS ---------- */
.kwstats{ max-width:1440px; margin:0 auto var(--sp-6); display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-2); }
.kwstats > div{ border-top:3px solid var(--orange); padding-top:var(--sp-2); }
.kwstats b{ display:block; font-size:clamp(2rem,4.4vw,3.4rem); font-weight:900; line-height:1; letter-spacing:-.03em; }
.kwstats b em{ font-style:normal; color:var(--pos); }
.kwstats span{ display:block; margin-top:12px; font-weight:700; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; }
.kwstats i{ display:block; margin-top:5px; font-style:normal; font-size:13px; color:var(--ink-soft); }
@media (max-width:900px){ .kwstats{ grid-template-columns:repeat(2,1fr); } }

.bands,.moves,.dumb{ max-width:1440px; margin:0 auto var(--sp-6); }
.bandchart{ display:grid; gap:var(--sp-3); }
.band{ display:grid; grid-template-columns:70px 1fr; gap:var(--sp-3); align-items:center; }
.band__l{ font-weight:900; font-size:12px; letter-spacing:.08em; opacity:.75; }
.band__t{ display:grid; gap:5px; }
.band__t i{
  display:flex; align-items:center; justify-content:flex-end; padding-right:9px;
  height:24px; border-radius:0 4px 4px 0; font-style:normal; font-weight:700; font-size:11px;
  width:calc(var(--p) * 1%); min-width:34px;
  transform:scaleX(0); transform-origin:left; transition:transform 1s var(--ease);
}
.bandchart.is-in .band__t i{ transform:scaleX(1); }
.band__a{ background:rgba(31,31,31,.22); }
.band__b{ background:var(--orange); color:#fff; }

.moves__grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:var(--sp-2); margin-bottom:var(--sp-3); }
.move{ padding:var(--sp-3); background:var(--sand); border-radius:var(--r); }
.move b{ display:block; font-size:clamp(1.9rem,3.2vw,2.8rem); font-weight:900; line-height:1; color:var(--rust); }
.move span{ display:block; margin-top:10px; font-size:13px; color:var(--ink-soft); }
.move i{ display:block; margin-top:4px; font-style:normal; font-weight:900; font-size:11px; opacity:.6; }
.moves__note{ max-width:82ch; font-size:14.5px; color:var(--ink-soft); }
.moves__note b{ color:var(--ink); font-weight:900; }
@media (max-width:1000px){ .moves__grid{ grid-template-columns:repeat(2,1fr); } }

/* dumbbell chart */
.dumbbells{ display:grid; gap:3px; }
.dumbbells li{ display:grid; grid-template-columns:230px 1fr 56px; gap:var(--sp-3); align-items:center; padding:7px 0; }
.dk{ font-size:13.5px; font-weight:700; }
.dk i{ display:block; font-style:normal; font-weight:400; font-size:11px; opacity:.55; margin-top:2px; }
.dt{ position:relative; height:16px; }
.dt__track{
  position:absolute; top:50%; height:5px; border-radius:3px; background:rgba(31,31,31,.2);
  left:calc((100 - var(--s)) * 1%); right:calc(var(--e) * 1%);
  transform:translateY(-50%) scaleX(0); transform-origin:right;
  transition:transform .9s var(--ease);
}
.dumbbells.is-in .dt__track{ transform:translateY(-50%) scaleX(1); }
.dt__s,.dt__e{ position:absolute; top:50%; width:13px; height:13px; border-radius:50%; transform:translate(-50%,-50%) scale(0); transition:transform .5s var(--ease); }
.dt__s{ left:calc((100 - var(--s)) * 1%); background:rgba(31,31,31,.4); }
.dt__e{ left:calc((100 - var(--e)) * 1%); background:var(--bm-green); }
.dumbbells.is-in .dt__s{ transform:translate(-50%,-50%) scale(1); transition-delay:.15s; }
.dumbbells.is-in .dt__e{ transform:translate(-50%,-50%) scale(1); transition-delay:.6s; }
.dg{ text-align:right; font-weight:900; font-size:16px; color:var(--pos); }
@media (max-width:760px){ .dumbbells li{ grid-template-columns:1fr 48px; } .dt{ grid-column:1 / -1; } }

/* ---------- 18. WORKED EXAMPLES ---------- */
.works{ max-width:1440px; margin:0 auto var(--sp-6); display:grid; gap:var(--sp-4); }
.work{
  display:grid; grid-template-columns:.78fr 1.22fr; gap:var(--sp-4);
  padding:var(--sp-4); border-radius:var(--r-lg);
  background:rgba(250,246,239,.06); border:1px solid rgba(250,246,239,.16);
  position:relative; overflow:hidden;
}
.work::before{ content:''; position:absolute; inset:0 auto 0 0; width:4px; background:var(--c); }
.work__id{ font-weight:900; font-size:10px; letter-spacing:.18em; color:var(--orange-b); }
.work__kw{ font-size:clamp(1.6rem,3.2vw,2.6rem); font-weight:900; letter-spacing:-.03em; margin:var(--sp-2) 0 var(--sp-3); }
.work__move{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:var(--sp-3); }
.work__move b{ font-size:clamp(1.8rem,3.4vw,2.6rem); font-weight:900; line-height:1; opacity:.45; }
.work__move b.hit{ opacity:1; color:var(--orange-b); }
.work__move i{ font-style:normal; opacity:.45; font-size:1.3rem; }
.work__move span{ flex:1 0 100%; font-weight:700; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--orange-b); }
.work__dl > div{ display:grid; grid-template-columns:120px 1fr; gap:var(--sp-2); padding:9px 0; border-top:1px solid rgba(250,246,239,.16); }
.work__dl dt{ font-weight:700; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; opacity:.6; padding-top:3px; }
.work__dl dd{ font-size:13.5px; }
.work__dl code{ font-size:12px; opacity:.88; word-break:break-all; }
.work__dl b{ color:var(--orange-b); font-weight:900; }
.work__shot{ margin:0; }
.work__shot img{ width:100%; border-radius:10px; border:1px solid rgba(250,246,239,.2); transition:transform .7s var(--ease); }
.work:hover .work__shot img{ transform:scale(1.015); }
.work__shot figcaption{ margin-top:12px; font-size:11px; letter-spacing:.06em; opacity:.55; }
@media (max-width:900px){ .work{ grid-template-columns:1fr; padding:var(--sp-3); } .work__dl > div{ grid-template-columns:1fr; gap:2px; } }

.common{ max-width:1440px; margin:0 auto; }
.common__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-2); }
.common__grid > div{ padding:var(--sp-3); border-top:3px solid rgba(250,246,239,.35); }
.common__grid b{ display:block; margin-bottom:10px; font-size:15px; font-weight:900; }
.common__grid p{ font-size:13.5px; color:rgba(250,246,239,.7); margin:0; }
.common__grid .hl{ border-color:var(--orange-b); }
.common__grid .hl em{ font-style:normal; color:var(--orange-b); font-weight:900; }
@media (max-width:1000px){ .common__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .common__grid{ grid-template-columns:1fr; } }

/* ---------- 19. LOCAL ---------- */
.local{ max-width:1440px; margin:0 auto var(--sp-6); display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5); align-items:start; }
.local__rings{ display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-3); }
.ring{ position:relative; display:grid; place-items:center; }
.ring svg{ width:100%; max-width:180px; transform:rotate(-90deg); }
.ring circle{ fill:none; stroke-width:8; }
.ring__bg{ stroke:rgba(31,31,31,.16); }
.ring__fg{ stroke:var(--orange); stroke-linecap:round; stroke-dasharray:327; stroke-dashoffset:327; transition:stroke-dashoffset 1.4s var(--ease-io); }
.ring__c{ position:absolute; text-align:center; }
.ring__c b{ display:block; font-size:clamp(1.5rem,2.4vw,2rem); font-weight:900; line-height:1; }
.ring__c span{ display:block; margin-top:6px; font-weight:700; font-size:9.5px; letter-spacing:.13em; text-transform:uppercase; }
.ring__c i{ display:block; font-style:normal; font-size:11px; opacity:.65; margin-top:2px; }
.local__issues ul{ display:grid; gap:var(--sp-2); }
.local__issues li{ padding:var(--sp-3); background:rgba(255,255,255,.5); border-radius:var(--r); font-size:14px; color:rgba(31,31,31,.78); border-left:3px solid var(--orange); }
.local__issues b{ color:var(--ink); font-weight:900; }
@media (max-width:960px){ .local{ grid-template-columns:1fr; gap:var(--sp-4); } }

.surfaces{ max-width:1440px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5); }
.surface h4{ font-size:1.2rem; font-weight:900; margin-bottom:var(--sp-2); }
.surface p{ font-size:14px; color:rgba(31,31,31,.76); }
.plain{ display:grid; gap:8px; margin:var(--sp-2) 0; }
.plain li{ font-size:14px; padding:10px 0; border-bottom:1px solid rgba(31,31,31,.16); }
.plain b{ font-weight:900; font-size:18px; margin-right:8px; color:var(--rust); }
.caveat{ margin-top:var(--sp-3); padding:var(--sp-2) var(--sp-3); background:rgba(31,31,31,.08); border-radius:var(--r); font-size:13px; }
.caveat span{ display:block; font-weight:900; font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; margin-bottom:6px; color:var(--maroon); }
@media (max-width:900px){ .surfaces{ grid-template-columns:1fr; gap:var(--sp-4); } }

/* ---------- 20. READ-OUT ---------- */
.ledger{ max-width:1440px; margin:0 auto var(--sp-6); display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5); }
.ledger h3{ margin-bottom:var(--sp-3); }
.chip{ display:inline-block; font-weight:900; font-size:10px; letter-spacing:.18em; text-transform:uppercase; padding:8px 18px; border-radius:999px; }
.chip--w{ background:var(--bm-green); color:#fff; }
.chip--d{ background:var(--maroon); color:#fff; }
.ledger ul{ display:grid; gap:var(--sp-2); }
.ledger li{ padding:var(--sp-3); border-radius:var(--r); font-size:14px; color:var(--ink-soft); }
.ledger__col--w li{ background:rgba(0,160,58,.1); }
.ledger__col--d li{ background:rgba(164,15,15,.09); }
.ledger b{ color:var(--ink); font-weight:900; }
@media (max-width:900px){ .ledger{ grid-template-columns:1fr; gap:var(--sp-4); } }

.next{ max-width:1440px; margin:var(--sp-6) auto 0; }
.next__lede{ max-width:72ch; color:var(--ink-soft); margin-bottom:var(--sp-4); }
.next__lede b{ color:var(--ink); font-weight:900; }
.next__list{ display:grid; gap:1px; background:var(--rule); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.next__list li{ display:grid; grid-template-columns:90px 1fr; gap:var(--sp-3); padding:var(--sp-3); background:var(--paper); transition:background .35s; }
.next__list li:hover{ background:var(--sand); }
.next__list span{ font-weight:900; font-size:2.4rem; line-height:1; color:transparent; -webkit-text-stroke:1.5px var(--orange); }
.next__list b{ display:block; font-size:clamp(1.05rem,1.5vw,1.3rem); font-weight:900; margin-bottom:8px; }
.next__list p{ font-size:14px; color:var(--ink-soft); max-width:80ch; margin:0; }
@media (max-width:640px){ .next__list li{ grid-template-columns:1fr; gap:10px; } }

/* ---------- 21. METHODOLOGY ---------- */
.meth{ max-width:1440px; margin:0 auto; display:grid; grid-template-columns:1.1fr .9fr; gap:var(--sp-5); align-items:start; }
.meth__notes h4{ font-size:1.05rem; font-weight:900; margin-bottom:var(--sp-2); }
.meth__notes p{ font-size:13.5px; color:rgba(250,246,239,.7); }
.meth__notes b{ color:var(--paper); font-weight:900; }
.meth__flag{ margin-top:var(--sp-3); padding:var(--sp-3); background:rgba(250,246,239,.08); border-radius:var(--r); border-left:3px solid var(--orange-b); }
.meth__flag span{ display:block; font-weight:900; font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--orange-b); margin-bottom:7px; }
@media (max-width:960px){ .meth{ grid-template-columns:1fr; gap:var(--sp-4); } }

/* ---------- 22. FOOTER ---------- */
.foot{ background:var(--aubergine); color:var(--paper); padding:var(--sp-6) var(--gut) var(--sp-3); overflow:hidden; }
.foot__type{
  font-weight:900; font-size:clamp(3.4rem,15vw,15rem); line-height:.9; letter-spacing:-.04em;
  text-align:center; color:transparent; -webkit-text-stroke:1.5px rgba(255,152,0,.45);
  margin-bottom:var(--sp-5); user-select:none;
}
.foot__grid{ max-width:1440px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-3); padding-bottom:var(--sp-5); }
.foot__col .tag{ color:var(--orange-b); }
.foot__col p{ margin-top:12px; font-size:14px; color:rgba(250,246,239,.82); }
.foot__col b{ font-weight:900; font-size:17px; }
.foot__col a{ color:var(--orange-b); text-decoration:none; border-bottom:1px solid currentColor; }
.foot__bar{
  max-width:1440px; margin:0 auto; padding-top:var(--sp-3);
  border-top:1px solid rgba(250,246,239,.18);
  display:flex; justify-content:space-between; gap:var(--sp-3); flex-wrap:wrap;
  font-weight:700; font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(250,246,239,.55);
}
@media (max-width:900px){ .foot__grid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- 23. ANIMATION GATES ---------- */
/* Elements are hidden ONLY when JS+GSAP are confirmed running (.js-anim on <html>). */
.js-anim [data-reveal]{ opacity:0; transform:translateY(22px); }
.js-anim [data-split] .char{ display:inline-block; will-change:transform; }
.js-anim .work{ opacity:0; transform:translateY(34px); }
.js-anim .hstat,.js-anim .kpi,.js-anim .bigstat,.js-anim .kwstats > div,.js-anim .prop{ opacity:0; transform:translateY(20px); }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .js-anim [data-reveal],.js-anim .work,.js-anim .hstat,.js-anim .kpi,
  .js-anim .bigstat,.js-anim .kwstats > div,.js-anim .prop{ opacity:1 !important; transform:none !important; }
  .loader{ display:none; }
  .cursor{ display:none; }
  .b,.band__t i,.dt__track{ transform:scaleX(1) !important; }
  .dt__s,.dt__e{ transform:translate(-50%,-50%) scale(1) !important; }
  .ring__fg{ stroke-dashoffset:calc(327 - (327 * var(--rv,90) / 100)) !important; }
  .lc__line{ stroke-dashoffset:0 !important; }
  .dive{ opacity:1 !important; }
}

/* ---------- 24. PRINT ---------- */
@media print{
  .nav,.cursor,.loader,.progress,.ticker,.hero__scroll{ display:none !important; }
  body{ background:#fff; color:#000; }
  .sec{ padding:24px 0; break-inside:avoid; }
  .dives{ height:auto; } .dives__sticky{ position:static; height:auto; }
  .dive{ position:static; opacity:1 !important; page-break-inside:avoid; }
  .card{ position:static; }
}
