/* सिद्धांत मिश्रा
   Design language: Uttar Pradesh print culture. Newsprint ground, ink black,
   one vermilion accent, tricolour used as a structural rule. Grain is real
   material, not decoration.
   Radius rule: nothing is rounded except the pill buttons and the brand mark.
   Theme is locked light on purpose - this is paper. */

@view-transition { navigation: auto; }

@property --shine {
  syntax: "<color>";
  inherits: false;
  initial-value: transparent;
}

:root{
  /* OKLCH so the ramp is perceptually even and gradients never pass through grey */
  --paper:      oklch(0.958 0.012 82);
  --paper-2:    oklch(0.928 0.016 80);
  --paper-3:    oklch(0.895 0.020 78);
  --ink:        oklch(0.185 0.018 60);
  --ink-2:      oklch(0.44  0.020 60);
  /* ink-3 and accent-text are pinned to clear 4.5:1 on --paper.
     --accent stays brighter for display type and fills, where 3:1 applies. */
  --ink-3:      oklch(0.515 0.018 60);
  --accent:     oklch(0.575 0.185 38);
  --accent-text:oklch(0.515 0.170 36);
  --accent-2:   oklch(0.505 0.175 36);
  --tri-blue:   oklch(0.44 0.14 258);
  --tri-red:    oklch(0.55 0.20 27);
  --tri-green:  oklch(0.52 0.13 152);
  /* success text sits on a tinted panel, so it is darker than --tri-green,
     which is a flag colour and does not clear 4.5:1 as body text */
  --ok:         oklch(0.430 0.110 152);

  --line:   color-mix(in oklab, var(--ink) 16%, transparent);
  --line-2: color-mix(in oklab, var(--ink) 30%, transparent);
  --field:  color-mix(in oklab, var(--ink) 5%, transparent);

  --wrap: 1220px;
  --ease: cubic-bezier(.2,.8,.2,1);
  color-scheme: light;
}

*,*::before,*::after{ box-sizing:border-box }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  /* rem min/max so browser zoom and user font-size still work */
  font-size:clamp(1rem, 0.965rem + 0.18vw, 1.10rem);
  font-optical-sizing:auto;
}
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto } }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Anek Devanagari",system-ui,sans-serif;
  font-weight:400;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* Devanagari needs more leading than Latin; one compromise value serves neither */
html[data-lang="en"] body{ line-height:1.55 }

img{ max-width:100%; height:auto; display:block }
/* <picture> wraps every responsive image; display:contents keeps it out of
   the layout so .hero__media img, .shot img etc. still size as before */
picture{ display:contents }
/* display:contents on <picture> hoists its <source> children into the parent
   grid, where they occupy real cells and shove the <img> into the wrong one.
   Sources must never generate a box. */
picture > source{ display:none }
a{ color:inherit }
.filters{ position:absolute; width:0; height:0 }

/* typography wins that cost nothing at runtime */
:is(h1,h2,h3,.lede,figcaption,.scard__t){ text-wrap:balance }
:is(p,li,dd){ text-wrap:pretty }
p{ hanging-punctuation:first last }
@supports (text-box-edge: cap alphabetic){
  /* .btn deliberately excluded: trimming to Latin cap/baseline pushes
     Devanagari off-centre inside the flex button */
  :is(h1,h2,h3,.issue__n){ text-box:trim-both cap alphabetic }
}

.display{
  font-family:"Rozha One","Anek Devanagari",serif;
  font-weight:400;
  letter-spacing:-0.005em;
  line-height:1.08;
  margin:0;
}
html[data-lang="hi"] .display{ line-height:1.18 }
.display em{ font-style:normal; color:var(--accent) }

.wrap{ width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto }
@media (max-width:640px){ .wrap{ width:min(100% - 1.75rem, var(--wrap)) } }

/* ---------- grain: 380 bytes, rasterised once into a 160px tile ---------- */
.grain{
  position:fixed; inset:0; z-index:80; pointer-events:none;
  opacity:.42; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:160px 160px;
}

.skip{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--ink); color:var(--paper); padding:.7rem 1.1rem; font-weight:600;
}
.skip:focus{ left:1rem; top:1rem }
:where(a,button,[tabindex]):focus-visible{ outline:2px solid var(--accent); outline-offset:3px }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  white-space:nowrap; text-decoration:none; cursor:pointer;
  padding:.82rem 1.65rem; border-radius:999px; border:1.5px solid var(--ink);
  background:var(--ink); color:var(--paper);
  font-weight:600; font-size:1.02rem; letter-spacing:.005em; line-height:1;
  transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
}
.btn:hover{ background:var(--accent); border-color:var(--accent); color:#fff }
.btn:active{ transform:translateY(1px) scale(.985) }
.btn--sm{ padding:.55rem 1.15rem; font-size:.95rem }
.btn--ghost{ background:transparent; color:var(--ink) }
.btn--ghost:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink) }
.btn--dark{ background:var(--paper); color:var(--ink); border-color:var(--paper) }
.btn--dark:hover{ background:var(--accent); border-color:var(--accent); color:#fff }
.btn--line{ background:transparent; color:var(--paper); border-color:color-mix(in oklab, var(--paper) 55%, transparent) }
.btn--line:hover{ background:var(--paper); color:var(--ink); border-color:var(--paper) }

/* ---------- nav ---------- */
.nav{
  position:sticky; top:0; z-index:60;
  background:color-mix(in oklab, var(--paper) 88%, transparent);
  backdrop-filter:blur(10px) saturate(1.4);
  -webkit-backdrop-filter:blur(10px) saturate(1.4);
  border-bottom:1px solid transparent;
  transition:border-color .3s var(--ease);
}
@media (prefers-reduced-transparency:reduce){ .nav{ background:var(--paper) } }
.nav.is-stuck{ border-bottom-color:var(--line) }
.nav__in{
  width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto;
  height:72px; display:flex; align-items:center; gap:1.4rem;
}
.brand{ display:flex; align-items:center; gap:.65rem; text-decoration:none; margin-right:auto }
/* The official helicopter symbol on a plain white disc. A tricolour ring was
   tried and read as mud at this size; the flag already appears as the hero rule. */
.brand__mark{
  width:48px; height:48px; border-radius:999px; flex:0 0 auto;
  display:grid; place-items:center; overflow:hidden;
  background:#fff; border:1.5px solid var(--line-2);
}
.brand__mark img{ width:86%; height:86%; object-fit:contain }
.brand__txt{ display:flex; flex-direction:column; line-height:1.14 }
.brand__txt b{ font-size:1.02rem; font-weight:700 }
.brand__txt i{ font-style:normal; font-size:.76rem; color:var(--ink-3) }
.nav__links{ display:flex; gap:1.5rem }
.nav__links a{ text-decoration:none; color:var(--ink-2); font-size:.97rem; font-weight:500; transition:color .2s var(--ease) }
.nav__links a:hover{ color:var(--accent-text) }

.lang{ display:flex; border:1.5px solid var(--line-2); border-radius:999px; overflow:hidden; flex:0 0 auto }
.lang button{
  font-family:inherit; font-size:.83rem; font-weight:600; cursor:pointer;
  padding:.38rem .72rem; border:0; background:transparent; color:var(--ink-2);
  transition:background .2s var(--ease), color .2s var(--ease);
}
.lang button:hover{ color:var(--ink) }
.lang button.is-on{ background:var(--ink); color:var(--paper) }

.burger{ display:none; width:42px; height:42px; border-radius:999px; border:1.5px solid var(--line-2); background:transparent; cursor:pointer; padding:0; place-items:center; gap:5px }
.burger span{ display:block; width:17px; height:1.5px; background:var(--ink) }
.drawer{ display:none; flex-direction:column; padding:.25rem 1.25rem 1.25rem; border-top:1px solid var(--line) }
.drawer a{ padding:.75rem 0; text-decoration:none; border-bottom:1px solid var(--line); font-size:1.05rem }
.drawer a:last-child{ border-bottom:0; color:var(--accent); font-weight:700 }
@media (max-width:960px){
  .nav__links,.nav .btn--sm{ display:none }
  .burger{ display:grid }
  .drawer[data-open]{ display:flex }
}

/* ---------- hero ---------- */
.hero{
  padding:3.2rem 0 4rem; position:relative; isolation:isolate;
  /* screen-print sunburst behind the portrait; the reserved left third of the
     art is clean paper, which is where the type sits */
  background-image:image-set(url("../assets/hero-rays@1x.avif") type("image/avif"),
                             url("../assets/hero-rays@1x.webp") type("image/webp"));
  background-size:cover; background-position:50% 40%; background-repeat:no-repeat;
}
@media (min-width:961px){
  .hero{ background-image:image-set(url("../assets/hero-rays.avif") type("image/avif"),
                                    url("../assets/hero-rays.webp") type("image/webp")) }
}
.hero__rule{ width:min(100% - 2.5rem, var(--wrap)); margin:0 auto 2.6rem; display:flex; height:5px }
.hero__rule i{ flex:1 }
.hero__rule i:nth-child(1){ background:var(--tri-blue) }
.hero__rule i:nth-child(2){ background:var(--tri-red) }
.hero__rule i:nth-child(3){ background:var(--tri-green) }

.hero__grid{
  width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto;
  display:grid; grid-template-columns:1.15fr .85fr; gap:3rem; align-items:end;
}
.role{
  margin:0 0 1.5rem; font-size:.80rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--accent-text);
  max-width:52ch; line-height:1.5;
}
.hero h1{ font-size:clamp(2.8rem, 7vw, 6rem) }
.lede{ margin:1.6rem 0 0; max-width:36ch; font-size:clamp(1.05rem,1.4vw,1.2rem); color:var(--ink-2) }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2.2rem }

.hero__media{ margin:0; position:relative }
.hero__media img{
  width:100%; height:min(60vh,540px); object-fit:cover; object-position:50% 24%;
  /* dissolve into the paper instead of stopping at a rectangle */
  -webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent 99%);
  mask-image:linear-gradient(to bottom,#000 62%,transparent 99%);
}

@media (max-width:960px){
  .hero{ padding:2rem 0 2.5rem }
  .hero__rule{ margin-bottom:1.8rem }
  .hero__grid{ grid-template-columns:1fr; gap:1.6rem }
  .hero__media{ order:-1 }
  .hero__media img{ height:min(36vh,290px); object-position:50% 20% }
  .hero h1{ font-size:clamp(2.6rem,13vw,4rem) }
  .role{ margin-bottom:1rem }
  .lede{ margin-top:1.1rem }
  .hero__cta{ margin-top:1.6rem }
}

/* ---------- ticker ---------- */
.ticker{ border-block:1.5px solid var(--ink); background:var(--paper-2); overflow:hidden; padding:.7rem 0 }
.ticker__row{ display:flex; width:max-content; will-change:transform }
.ticker__row span{
  font-family:"Rozha One",serif; font-size:clamp(1.2rem,2.6vw,1.9rem);
  color:var(--ink); opacity:.34; white-space:nowrap; letter-spacing:.01em;
}

/* ---------- युवा आयोग: the headline demand ---------- */
.aayog{ padding:5rem 0; border-bottom:1px solid var(--line) }
.aayog__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:3.4rem; align-items:start }
.kicker{
  margin:0 0 1rem; font-size:.78rem; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; color:var(--accent-text);
}
.aayog h2{ font-size:clamp(2rem,4.4vw,3.3rem) }
.aayog__copy>p{ margin:1.4rem 0 0; color:var(--ink-2); max-width:56ch }
.aayog__copy>p b{ color:var(--ink); font-weight:600 }
.aayog .lnk{ margin-top:1.5rem }
/* a counter, not list markers: the numeral is display type set in Rozha One */
.demands{ counter-reset:d; list-style:none; margin:0; padding:0; border-top:1.5px solid var(--ink) }
.demands li{ position:relative; padding:1.2rem 0 1.2rem 3rem; border-bottom:1px solid var(--line) }
.demands li::before{
  counter-increment:d; content:counter(d,decimal-leading-zero);
  position:absolute; left:0; top:1.15rem;
  font-family:"Rozha One",serif; font-size:1.4rem; color:var(--accent); line-height:1.2;
}
.demands h3{ font-family:"Rozha One",serif; font-weight:400; font-size:1.2rem; margin:0 0 .2rem }
.demands p{ margin:0; color:var(--ink-2); max-width:52ch }
@media (max-width:960px){
  .aayog{ padding:3.2rem 0 }
  .aayog__grid{ grid-template-columns:1fr; gap:2rem }
}

/* ---------- parichay ---------- */
.parichay{ padding:5.5rem 0 }
.parichay__grid{ display:grid; grid-template-columns:.82fr 1.18fr; gap:3.4rem; align-items:start }
.parichay__img{ margin:0 }
.parichay__img img{
  width:100%; aspect-ratio:4/5; object-fit:cover;
  filter:url(#duo);
  -webkit-mask-image:linear-gradient(to bottom,#000 82%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 82%,transparent 100%);
}
.parichay h2{ font-size:clamp(1.9rem,3.7vw,3rem) }
.parichay p{ color:var(--ink-2); margin:1.4rem 0 0; max-width:58ch }
.parichay p b{ color:var(--ink); font-weight:600 }

.facts{ display:grid; grid-template-columns:repeat(2,1fr); gap:0; margin:2.8rem 0 0; border-top:1.5px solid var(--ink) }
.facts>div{ padding:1.1rem 1.1rem 1.1rem 0; border-bottom:1px solid var(--line) }
.facts>div:nth-child(2n){ padding-left:1.1rem; border-left:1px solid var(--line) }
.facts dt{ font-size:.75rem; letter-spacing:.09em; text-transform:uppercase; color:var(--accent-text); font-weight:600; margin:0 0 .18rem }
.facts dd{ margin:0; font-size:1.02rem; font-weight:500 }

@media (max-width:960px){
  .parichay{ padding:3.5rem 0 }
  .parichay__grid{ grid-template-columns:1fr; gap:2rem }
  .parichay__img img{ aspect-ratio:16/10 }
}

/* ---------- mission: numbered poster list ---------- */
.mission{ padding:0 0 5.5rem }
.sec-h{ font-size:clamp(1.9rem,4vw,3.2rem); max-width:22ch }
.issues{ list-style:none; margin:3rem 0 0; padding:0; border-top:1.5px solid var(--ink) }
.issue{
  display:grid; grid-template-columns:auto 1fr 300px; gap:2rem; align-items:center;
  padding:2.1rem 0; border-bottom:1px solid var(--line);
  transition:background .3s var(--ease);
}
/* screen-print illustrations: decorative, so alt="" and the text carries the meaning */
/* this one opts out of display:contents so the picture is the grid item */
.issue__art{ display:block }
.issue__art img{ width:100%; height:auto; mix-blend-mode:multiply }
.issue:hover{ background:color-mix(in oklab, var(--ink) 3%, transparent) }
.issue__n{
  font-family:"Rozha One",serif; font-size:clamp(2rem,4.6vw,3.4rem);
  color:var(--accent); line-height:1; min-width:2.4ch;
}
.issue h3{ font-family:"Rozha One",serif; font-weight:400; font-size:clamp(1.4rem,2.4vw,1.9rem); margin:0 0 .5rem }
.issue p{ margin:0; color:var(--ink-2); max-width:62ch }
.lnk{
  display:inline-block; margin-top:.8rem; color:var(--accent-text); text-decoration:none;
  font-weight:600; font-size:.97rem; border-bottom:1.5px solid color-mix(in oklab,var(--accent-text) 45%,transparent);
  padding-bottom:1px; transition:border-color .25s var(--ease);
}
.lnk:hover{ border-bottom-color:var(--accent-text) }
@media (max-width:700px){
  .mission{ padding:0 0 3.5rem }
  .issue{ grid-template-columns:1fr; gap:.9rem; padding:1.7rem 0 }
  .issue__art{ order:-1; max-width:min(92vw,380px) }
  .issue__n{ font-size:1.6rem }
}

/* ---------- full-bleed band ---------- */
.band{ position:relative; isolation:isolate; background:var(--ink) }
.band__img{ width:100%; height:clamp(300px,52vh,520px); object-fit:cover; object-position:40% 16%; opacity:.62 }
.band__over{
  position:absolute; inset:0; display:grid; align-items:center;
  width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto;
}
.band__txt{ font-size:clamp(2.4rem,7vw,5.5rem); color:var(--paper); margin:0 }

/* ---------- zameen rail ---------- */
.zameen{ padding:5.5rem 0 }
.zameen__head{ margin-bottom:2.4rem }
.zameen__head p{ color:var(--ink-2); margin:.8rem 0 0 }
.rail{
  display:flex; gap:1.1rem; overflow-x:auto; scroll-snap-type:x mandatory;
  --gutter:max(1.75rem, calc((100vw - var(--wrap))/2));
  padding:.3rem var(--gutter) 1.4rem;
  scroll-padding-inline:var(--gutter);
  scrollbar-width:thin; scrollbar-color:var(--line-2) transparent;
  /* fade the ends so the strip reads as continuing, not clipped */
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 var(--gutter),#000 calc(100% - var(--gutter)),transparent 100%);
}
.shot{ margin:0; flex:0 0 clamp(230px,25vw,310px); scroll-snap-align:start }
.shot img{ width:100%; aspect-ratio:3/4; object-fit:cover; object-position:50% 22% }
.shot figcaption{ margin-top:.7rem; font-size:.85rem; color:var(--ink-3); line-height:1.5 }
@media (max-width:960px){
  .zameen{ padding:3.5rem 0 }
  .shot{ flex-basis:68vw }
}

/* ---------- social ---------- */
.social{ padding:0 0 5.5rem }
.social__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:2.4rem; border-top:1.5px solid var(--ink) }
.scard{
  display:flex; flex-direction:column; gap:.28rem; text-decoration:none;
  padding:1.7rem 1.4rem 1.7rem 0; border-bottom:1px solid var(--line);
  transition:background .3s var(--ease);
}
.scard+.scard{ padding-left:1.4rem; border-left:1px solid var(--line) }
.scard:hover{ background:color-mix(in oklab, var(--ink) 3%, transparent) }
.scard svg{ width:22px; height:22px; fill:var(--accent); margin-bottom:.6rem }
.scard__t{ font-family:"Rozha One",serif; font-size:1.2rem }
.scard__m{ color:var(--ink-3); font-size:.92rem }
@media (max-width:760px){
  .social{ padding:0 0 3.5rem }
  .social__grid{ grid-template-columns:1fr }
  .scard+.scard{ padding-left:0; border-left:0 }
}

/* ---------- CTA ---------- */
.judiye{
  color:var(--paper); padding:5rem 0; position:relative; isolation:isolate;
  background-color:var(--ink);
  /* image-set negotiates AVIF; the scrim is what keeps the white type legible */
  background-image:
    linear-gradient(180deg, color-mix(in oklab, var(--ink) 93%, transparent),
                            color-mix(in oklab, var(--ink) 86%, transparent)),
    image-set(url("../assets/band-dawn@1x.avif") type("image/avif"),
              url("../assets/band-dawn@1x.webp") type("image/webp"));
  background-size:cover; background-position:50% 62%;
}
@media (min-width:961px){
  .judiye{ background-image:
    linear-gradient(180deg, color-mix(in oklab, var(--ink) 93%, transparent),
                            color-mix(in oklab, var(--ink) 86%, transparent)),
    image-set(url("../assets/band-dawn.avif") type("image/avif"),
              url("../assets/band-dawn.webp") type("image/webp")); }
}
.judiye__in{ max-width:60rem }
.judiye h2{ font-size:clamp(2.2rem,5.4vw,4rem) }
.judiye h2 em{ color:var(--accent) }
.judiye p{ margin:1.3rem 0 0; max-width:48ch; color:color-mix(in oklab, var(--paper) 93%, var(--ink)) }
.judiye__cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2.2rem }
@media (max-width:960px){ .judiye{ padding:3.5rem 0 } }

/* ---------- समर्थन form ----------
   The site's only form. Squared fields, ink rule, vermilion focus: the same
   paper language as the rest of the page, not a generic input kit. */
.samarthan{ padding:5rem 0; background:var(--paper-2); border-top:1.5px solid var(--ink) }
.samarthan__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:3rem; align-items:start }
.samarthan h2{ font-size:clamp(1.9rem,3.8vw,2.9rem) }
.samarthan__intro p{ margin:1.2rem 0 0; color:var(--ink-2); max-width:34ch }

.form{ background:var(--paper); border:1.5px solid var(--ink); padding:1.9rem }
.field{ display:flex; flex-direction:column; gap:.36rem; margin-bottom:1.05rem }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:1.05rem }
.form label{ font-size:.94rem; font-weight:600 }
.form input[type=text],.form input[type=tel]{
  font-family:inherit; font-size:1rem; color:var(--ink); width:100%;
  padding:.72rem .85rem; border:1.5px solid var(--line-2); border-radius:0;
  background:var(--paper);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.form input::placeholder{ color:var(--ink-3) }
.form input[type=text]:focus,.form input[type=tel]:focus{
  outline:none; border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 20%,transparent);
}
.hint{ margin:0; font-size:.85rem; color:var(--ink-3) }
.err{ margin:0; font-size:.87rem; color:var(--accent-2); font-weight:500 }
.field.is-bad input{ border-color:var(--accent-2) }
/* the pledge: this form doubles as a signature on the demand */
.check{
  display:flex; gap:.65rem; align-items:flex-start;
  margin:.35rem 0 0; padding:.85rem .95rem;
  background:color-mix(in oklab,var(--accent) 8%,var(--paper));
  border-left:3px solid var(--accent);
  font-size:.96rem; font-weight:500; line-height:1.5; cursor:pointer;
}
.check input{ width:1.15rem; height:1.15rem; flex:0 0 auto; margin:.18rem 0 0; accent-color:var(--accent) }
.form__actions{ display:flex; gap:.7rem; margin-top:1.4rem; flex-wrap:wrap }
.form__ok{
  margin:1.05rem 0 0; padding:.8rem 1.05rem; font-weight:600; font-size:.97rem;
  background:color-mix(in oklab,var(--ok) 13%,var(--paper));
  color:var(--ok); border-left:3px solid var(--ok);
}
/* a failed write must read as clearly as a successful one, or the visitor
   walks away believing the campaign has their number */
.form__bad{
  margin:1.05rem 0 0; padding:.8rem 1.05rem; font-weight:600; font-size:.97rem;
  background:color-mix(in oklab,var(--accent-2) 12%,var(--paper));
  color:var(--accent-2); border-left:3px solid var(--accent-2);
}
button.btn[disabled]{ opacity:.6; cursor:progress }
@media (max-width:960px){
  .samarthan{ padding:3.2rem 0 }
  .samarthan__grid{ grid-template-columns:1fr; gap:2rem }
  .form{ padding:1.3rem }
}
@media (max-width:560px){ .row2{ grid-template-columns:1fr; gap:0 } }

/* ---------- footer ---------- */
.foot{ background:var(--paper-2); border-top:1.5px solid var(--ink); padding:3.5rem 0 0 }
.foot__grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.5rem; padding-bottom:2.6rem }
.foot__name{ font-family:"Rozha One",serif; font-size:1.3rem; margin:0 0 .45rem }
.foot__role{ margin:0; color:var(--ink-2); font-size:.96rem; line-height:1.6 }
.foot h3{ font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-text); font-weight:600; margin:0 0 .65rem }
.foot p{ margin:0; color:var(--ink-2); font-size:.96rem; line-height:1.65 }
.foot__links{ display:flex; flex-wrap:wrap; gap:.3rem 1.1rem }
.foot__links a{ text-decoration:none; color:var(--ink-2); transition:color .2s var(--ease) }
.foot__links a:hover{ color:var(--accent-text) }
.foot__base{ border-top:1px solid var(--line); padding:1.3rem 0 }
.foot__base p{ font-size:.86rem; color:var(--ink-3) }
@media (max-width:960px){
  .foot{ padding-top:2.5rem }
  .foot__grid{ grid-template-columns:1fr; gap:2rem; padding-bottom:2rem }
}

/* Nothing here hides content. Entrance motion is a from() tween in JS that
   animates out of the settled state, so a script failure costs an animation,
   never a blank section. */
@media (prefers-reduced-motion:reduce){ .ticker__row{ animation:none !important } }

/* Native-script labels are the Indian convention (हिंदी, not HI); the
   abbreviation only appears where the bar is too narrow for the full word. */
.lang__abbr{ display:none }
@media (max-width:1120px){
  .lang__full{ display:none }
  .lang__abbr{ display:inline }
}

/* ECI advisories require synthetic campaign imagery to be labelled */
.foot__ai{ margin-top:.35rem !important; font-size:.82rem; color:var(--ink-3) }

/* clip-path needs a real box to clip; these opt out of picture{display:contents} */
[data-reveal]{ display:block }
