/* ==========================================================================
   harishdwevidi.com — Base system
   Design language: "Field & Floor" — the ploughed field and the floor of the
   House. Horizontal strata, ledger numerals, brass rules, earth neutrals.
   ========================================================================== */

/* ---------- 1. Tokens ---------------------------------------------------- */
:root{
  /* Earth + authority palette */
  --ink:        #14120E;
  --ink-2:      #221D16;
  --ink-3:      #322A20;
  --soil:       #3A2E22;
  --bark:       #5C4B39;
  --stone:      #7E6E5C;
  --river:      #1E3733;
  --river-2:    #274A44;
  --river-3:    #35625A;
  --brass:      #AC7C2E;   /* decorative fills, rules, borders */
  --brass-ink:  #7A5319;   /* brass for TEXT — AA on every paper tone */
  --brass-2:    #C99B48;
  --brass-3:    #E4C588;
  --clay:       #9E4F2A;
  --paper:      #F8F4EC;
  --paper-2:    #F0E9DB;
  --paper-3:    #E5DACA;
  --paper-4:    #D8CAB4;
  --white:      #FFFDF8;

  --txt:        #241E17;
  --txt-2:      #4E4234;
  --txt-3:      #5F5245;
  --txt-inv:    #F3EDE1;
  --txt-inv-2:  #C3B7A3;

  --line:       rgba(58,46,34,.15);
  --line-2:     rgba(58,46,34,.28);
  --line-inv:   rgba(232,220,198,.18);
  --line-inv-2: rgba(232,220,198,.32);

  /* Typography */
  --ff-display: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --ff-body:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --ff-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  --fs-eyebrow: clamp(.66rem, .58rem + .22vw, .76rem);
  --fs-micro:   clamp(.72rem, .66rem + .2vw,  .8rem);
  --fs-small:   clamp(.84rem, .8rem + .2vw,   .93rem);
  --fs-body:    clamp(.99rem, .93rem + .28vw, 1.11rem);
  --fs-lead:    clamp(1.08rem, .98rem + .5vw, 1.34rem);
  --fs-h5:      clamp(1.02rem, .95rem + .34vw, 1.22rem);
  --fs-h4:      clamp(1.2rem, 1.06rem + .62vw, 1.6rem);
  --fs-h3:      clamp(1.42rem, 1.2rem + 1.02vw, 2.24rem);
  --fs-h2:      clamp(1.85rem, 1.4rem + 2.1vw, 3.35rem);
  --fs-h1:      clamp(2.5rem, 1.6rem + 4.1vw, 5.5rem);
  --fs-mega:    clamp(3rem, 1.4rem + 7vw, 8rem);

  /* Rhythm */
  --gutter:     clamp(20px, 4.6vw, 64px);
  --sec-y:      clamp(60px, 8vw, 140px);
  --sec-y-lg:   clamp(78px, 10vw, 178px);
  --max:        1280px;
  --max-wide:   1560px;
  --max-text:   68ch;

  --r-sm: 3px;
  --r:    6px;
  --r-lg: 14px;

  --sh-1: 0 1px 2px rgba(20,18,14,.05), 0 6px 18px -8px rgba(20,18,14,.14);
  --sh-2: 0 2px 4px rgba(20,18,14,.06), 0 22px 48px -22px rgba(20,18,14,.32);
  --sh-3: 0 30px 70px -34px rgba(20,18,14,.5);

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --hdr-h: 74px;
}

@media (min-width: 1180px){ :root{ --hdr-h: 92px; } }

/* ---------- 2. Reset ----------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top: calc(var(--hdr-h) + 18px);
}
body{
  margin:0;
  background:var(--paper);
  color:var(--txt);
  font-family:var(--ff-body);
  font-size:var(--fs-body);
  line-height:1.72;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
img,svg,video{ max-width:100%; }
img{ height:auto; display:block; border-style:none; }
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{ margin:0; }
ul,ol{ margin:0; padding:0; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; padding:0; cursor:pointer; }
table{ border-collapse:collapse; width:100%; }
:focus-visible{
  outline:2px solid var(--brass);
  outline-offset:3px;
  border-radius:2px;
}
::selection{ background:var(--brass-ink); color:#fff; }
hr{ border:0; border-top:1px solid var(--line); margin:0; }

/* ---------- 3. Access gate ---------------------------------------------- */
html.hd-gate{ visibility:hidden; }
html.hd-open{ visibility:visible; }
.noscript-note{
  display:none;
  max-width:640px;
  margin:16vh auto;
  padding:40px;
  border:1px solid var(--line-2);
  background:var(--white);
  text-align:center;
  font-family:var(--ff-body);
}
.noscript-note h2{ font-family:var(--ff-display); font-size:var(--fs-h4); margin-bottom:10px; }

/* ---------- 4. Typography ------------------------------------------------ */
.d1,.d2,.d3,.d4{
  font-family:var(--ff-display);
  font-weight:500;
  line-height:1.06;
  letter-spacing:-.022em;
  font-variation-settings:"SOFT" 0,"WONK" 0;
  color:var(--ink);
  text-wrap:balance;
}
.d1{ font-size:var(--fs-h1); }
.d2{ font-size:var(--fs-h2); line-height:1.1; }
.d3{ font-size:var(--fs-h3); line-height:1.16; letter-spacing:-.015em; }
.d4{ font-size:var(--fs-h4); line-height:1.24; letter-spacing:-.01em; font-weight:600; }
.d-mega{
  font-family:var(--ff-display); font-weight:400; font-size:var(--fs-mega);
  line-height:.92; letter-spacing:-.035em;
}

.eyebrow{
  font-family:var(--ff-mono);
  font-size:var(--fs-eyebrow);
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brass-ink);
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:22px;
}
.eyebrow::before{
  content:"";
  width:26px; height:1px; flex:none;
  background:currentColor;
  opacity:.75;
}
.eyebrow--plain::before{ display:none; }
.eyebrow--center{ justify-content:center; }

.lead{
  font-size:var(--fs-lead);
  line-height:1.62;
  color:var(--txt-2);
  font-weight:350;
  letter-spacing:-.004em;
}
.prose p{ margin-bottom:1.15em; max-width:var(--max-text); }
.prose p:last-child{ margin-bottom:0; }
.prose strong{ font-weight:600; color:var(--ink); }
.prose em{ font-style:italic; }

.dropcap::first-letter{
  font-family:var(--ff-display);
  font-weight:500;
  font-size:3.5em;
  line-height:.82;
  float:left;
  padding:.06em .14em 0 0;
  color:var(--brass-ink);
}

.mono{
  font-family:var(--ff-mono);
  font-size:var(--fs-micro);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--txt-3);
}
.num-index{
  font-family:var(--ff-mono);
  font-size:var(--fs-micro);
  font-weight:500;
  letter-spacing:.1em;
  color:var(--brass-ink);
}

.rule{ height:1px; background:var(--line); border:0; }
.rule-brass{ height:2px; width:56px; background:var(--brass); border:0; }

/* ---------- 5. Layout ---------------------------------------------------- */
.wrap{
  width:100%;
  max-width:var(--max);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.wrap-wide{ max-width:var(--max-wide); }
.wrap-narrow{ max-width:920px; }
.section{ padding-block:var(--sec-y); position:relative; }
.section-lg{ padding-block:var(--sec-y-lg); }
.section-tight{ padding-block:clamp(46px,5.5vw,86px); }

.grid{ display:grid; gap:clamp(26px,3.4vw,54px); }

/* Grid and flex items default to min-width:auto; that lets an item with a wide
   intrinsic size blow its track past a narrow viewport. Reset it everywhere. */
.grid > *,
[class*="-grid"] > *,
[class*="-stage"] > *,
[class*="-split"] > *,
.hero-record > *, .vpath > *, .vs-list > *, .vs-pr > *, .vs-horizon-media > *,
.pe-pair > *, .pe-tall > *, .pe-trip > *, .pl-comm-list > *, .pagecta-in > *,
.gprev-mosaic > *, .ct-cards > *, .ct-sl > *, .facts > *, .strata > *,
.ag-trades > *, .ag-strat > *, .pf-dl > *, .ledger > *, .stats > *,
.cta-lines > *, .footer-contact > *, .masonry > *{ min-width:0; }
@media (min-width:900px){
  .g-12{ grid-template-columns:repeat(12,1fr); }
  .g-2{ grid-template-columns:repeat(2,1fr); }
  .g-3{ grid-template-columns:repeat(3,1fr); }
}
@media (min-width:640px) and (max-width:899px){
  .g-3{ grid-template-columns:repeat(2,1fr); }
}

/* Tone blocks */
.tone-paper{ background:var(--paper); }
.tone-paper2{ background:var(--paper-2); }
.tone-paper3{ background:var(--paper-3); }
.tone-ink{ background:var(--ink); color:var(--txt-inv); }
.tone-river{ background:var(--river); color:var(--txt-inv); }
.tone-soil{ background:var(--soil); color:var(--txt-inv); }
.tone-ink .d1,.tone-ink .d2,.tone-ink .d3,.tone-ink .d4,
.tone-river .d1,.tone-river .d2,.tone-river .d3,.tone-river .d4,
.tone-soil .d1,.tone-soil .d2,.tone-soil .d3,.tone-soil .d4{ color:var(--white); }
.tone-ink .lead,.tone-river .lead,.tone-soil .lead{ color:var(--txt-inv-2); }
.tone-ink .prose,.tone-river .prose,.tone-soil .prose{ color:var(--txt-inv-2); }
.tone-ink .prose strong,.tone-river .prose strong,.tone-soil .prose strong{ color:var(--white); }
.tone-ink .eyebrow,.tone-river .eyebrow,.tone-soil .eyebrow{ color:var(--brass-3); }
.tone-ink .mono,.tone-river .mono,.tone-soil .mono{ color:var(--txt-inv-2); }
.tone-ink .rule,.tone-river .rule,.tone-soil .rule{ background:var(--line-inv); }

/* Signature textures */
.tx-furrow{
  background-image:repeating-linear-gradient(180deg,rgba(58,46,34,.055) 0 1px,transparent 1px 10px);
}
.tone-ink .tx-furrow,.tone-river .tx-furrow,.tone-soil .tx-furrow{
  background-image:repeating-linear-gradient(180deg,rgba(228,197,136,.09) 0 1px,transparent 1px 10px);
}
.tx-field{
  position:relative;
}
.tx-field::before{
  content:"";
  position:absolute; inset:auto 0 0 0; height:min(46%,320px);
  background:
    repeating-linear-gradient(94deg,rgba(58,46,34,.045) 0 1px,transparent 1px 22px),
    linear-gradient(180deg,transparent,rgba(172,124,46,.07));
  pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 65%);
  mask-image:linear-gradient(180deg,transparent,#000 65%);
}

/* ---------- 6. Buttons --------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:15px 26px;
  font-family:var(--ff-mono);
  font-size:var(--fs-micro);
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  border:1px solid var(--ink);
  background:var(--ink);
  color:var(--white);
  border-radius:2px;
  position:relative;
  overflow:hidden;
  transition:color .38s var(--ease), border-color .38s var(--ease), transform .38s var(--ease);
  line-height:1.2;
  flex:none;            /* never let a flex row squeeze the label */
  max-width:100%;
  text-align:center;
  white-space:normal;   /* long labels wrap rather than clip on small screens */
}
.btn span{ position:relative; z-index:2; }
.btn .btn-ar{ position:relative; z-index:2; flex:none; transition:transform .38s var(--ease); }
.btn::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:var(--brass-ink);
  transform:scaleX(0); transform-origin:right center;
  transition:transform .46s var(--ease-out);
}
.btn:hover::before,.btn:focus-visible::before{ transform:scaleX(1); transform-origin:left center; }
.btn:hover,.btn:focus-visible{ border-color:var(--brass-ink); color:#fff; }
.btn:hover .btn-ar{ transform:translateX(4px); }

.btn-ghost{
  background:transparent; color:var(--ink); border-color:var(--line-2);
}
.btn-ghost:hover,.btn-ghost:focus-visible{ color:var(--white); border-color:var(--ink); }
.btn-ghost::before{ background:var(--ink); }

.btn-inv{ background:var(--brass-ink); border-color:var(--brass-ink); color:#fff; }
.btn-inv::before{ background:var(--white); }
.btn-inv:hover,.btn-inv:focus-visible{ color:var(--ink); border-color:var(--white); }

.btn-line{
  background:transparent; border-color:var(--line-inv-2); color:var(--white);
}
.btn-line::before{ background:var(--brass-ink); }
.btn-line:hover,.btn-line:focus-visible{ border-color:var(--brass-ink); color:#fff; }

.link-arrow{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--ff-mono); font-size:var(--fs-micro); font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass-ink);
  padding-block:4px 5px;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px; background-repeat:no-repeat; background-position:0 100%;
  transition:background-size .42s var(--ease-out), color .3s var(--ease);
}
.link-arrow:hover,.link-arrow:focus-visible{ background-size:100% 1px; }
.link-arrow svg{ transition:transform .34s var(--ease); flex:none; }
.link-arrow:hover svg{ transform:translateX(4px); }
.tone-ink .link-arrow,.tone-river .link-arrow,.tone-soil .link-arrow{ color:var(--brass-3); }

/* ---------- 7. Figures / images ----------------------------------------- */
/* Default: images keep their natural proportions — never cropped, never stretched. */
.fig{ margin:0; position:relative; }
.fig img{ width:100%; height:auto; display:block; }
.fig-frame{
  background:var(--paper-3);
  border:1px solid var(--line);
  padding:10px;
  border-radius:var(--r-sm);
}
.fig-frame img{ border-radius:2px; }
.fig cap,.fig figcaption{
  display:block;
  margin-top:14px;
  font-family:var(--ff-mono);
  font-size:var(--fs-micro);
  letter-spacing:.06em;
  color:var(--txt-3);
  line-height:1.6;
}
.tone-ink .fig figcaption,.tone-river .fig figcaption,.tone-soil .fig figcaption{ color:var(--txt-inv-2); }
.fig-brass{ position:relative; }
.fig-brass > img{ position:relative; }
.fig-brass figcaption{
  margin-top:0;
  padding-top:16px;
  border-top:1px solid var(--line);
  position:relative;
}
.fig-brass figcaption::before{
  content:""; position:absolute; left:0; top:-2px; width:54px; height:3px;
  background:var(--brass);
}
.tone-ink .fig-brass figcaption,.tone-river .fig-brass figcaption,.tone-soil .fig-brass figcaption{ border-top-color:var(--line-inv); }

/* Portrait plate — an official record photograph, framed, never cropped */
.plate{
  background:var(--white);
  border:1px solid var(--line-2);
  padding:clamp(12px,1.4vw,20px);
  box-shadow:var(--sh-2);
  position:relative;
  border-radius:2px;
}
.plate::before,.plate::after{
  content:""; position:absolute; width:18px; height:18px; border:2px solid var(--brass);
}
.plate::before{ top:-1px; left:-1px; border-right:0; border-bottom:0; }
.plate::after{ bottom:-1px; right:-1px; border-left:0; border-top:0; }
.plate img{ width:100%; height:auto; display:block; }
.plate-cap{
  margin-top:clamp(12px,1.4vw,18px);
  padding-top:clamp(10px,1.2vw,14px);
  border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:6px 16px; align-items:baseline;
  justify-content:space-between;
}
.plate-cap b{
  font-family:var(--ff-display); font-weight:600; font-size:var(--fs-small);
  letter-spacing:.01em; color:var(--ink);
}
.plate-cap span{
  font-family:var(--ff-mono); font-size:var(--fs-eyebrow); letter-spacing:.14em;
  text-transform:uppercase; color:var(--txt-3);
}

/* Ratio boxes — only used where a grid demands equal cells.
   contain + matching backdrop guarantees no face is ever cropped. */
.ratio{
  position:relative; width:100%; overflow:hidden;
  background:var(--paper-3);
  border-radius:2px;
}
.ratio > img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:contain;
  object-position:center top;
}
.ratio-4x5{ aspect-ratio:4/5; }
.ratio-1x1{ aspect-ratio:1/1; }
.ratio-3x2{ aspect-ratio:3/2; }
.ratio-16x9{ aspect-ratio:16/9; }

/* ---------- 8. Header ---------------------------------------------------- */
.site-header{
  position:sticky; top:0; z-index:900;
  background:rgba(248,244,236,.92);
  backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .35s var(--ease), background .35s var(--ease);
}
.site-header.is-scrolled{ box-shadow:0 1px 0 var(--line),0 14px 34px -26px rgba(20,18,14,.5); }

.hdr-rail{
  background:var(--river);
  color:var(--txt-inv-2);
  font-family:var(--ff-mono);
  font-size:var(--fs-eyebrow);
  letter-spacing:.16em;
  text-transform:uppercase;
  overflow:hidden;
  max-height:38px;
  transition:max-height .4s var(--ease), opacity .3s var(--ease);
}
.site-header.is-scrolled .hdr-rail{ max-height:0; opacity:0; }
.hdr-rail-in{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  height:38px;
}
.hdr-rail-loc{ display:flex; align-items:center; gap:10px; white-space:nowrap; }
.hdr-rail-loc i{ width:5px; height:5px; background:var(--brass-2); border-radius:50%; font-style:normal; flex:none; }
.hdr-rail-links{ display:flex; align-items:center; gap:24px; }
.hdr-rail-links a{ transition:color .28s var(--ease); white-space:nowrap; display:inline-block; padding-block:9px; }
.hdr-rail-links a[href^="mailto"]{ text-transform:lowercase; letter-spacing:.1em; }
.hdr-rail-links a:hover{ color:var(--brass-3); }
@media (max-width:1179px){ .hdr-rail{ display:none; } }

.hdr-main{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  height:var(--hdr-h);
  transition:height .35s var(--ease);
  min-width:0;
}

/* Brand */
.brand{ display:flex; align-items:center; gap:14px; flex:1 1 auto; min-width:0; }
.brand-mark{
  width:44px; height:44px; flex:none;
  border:1.5px solid var(--brass);
  display:grid; place-items:center;
  position:relative;
  background:var(--white);
  border-radius:2px;
}
.brand-mark svg{ width:26px; height:26px; display:block; }
.brand-txt{ display:flex; flex-direction:column; min-width:0; overflow:hidden; }
.brand-name{
  font-family:var(--ff-display); font-weight:600;
  font-size:clamp(1.02rem,.94rem + .32vw,1.26rem);
  letter-spacing:-.015em; line-height:1.1; color:var(--ink);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.brand-role{
  font-family:var(--ff-mono); font-size:.63rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--txt-3); line-height:1.4; margin-top:3px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
@media (max-width:400px){
  .brand-mark{ width:38px; height:38px; }
  .brand-mark svg{ width:22px; height:22px; }
  .brand-role{ letter-spacing:.08em; font-size:.6rem; }
  .hdr-main{ gap:12px; }
}
@media (max-width:359px){
  .brand{ gap:10px; }
  .brand-mark{ width:34px; height:34px; }
  .brand-mark svg{ width:20px; height:20px; }
  .brand-role{ display:none; }
  .burger{ width:42px; height:42px; }
}

/* Desktop nav */
.nav{ display:none; }
@media (min-width:1180px){
  .nav{ display:flex; align-items:center; gap:clamp(14px,1.5vw,26px); }
  .nav a{
    font-family:var(--ff-mono);
    font-size:.71rem;
    font-weight:500;
    letter-spacing:.11em;
    text-transform:uppercase;
    color:var(--txt-2);
    padding:8px 0 7px;
    position:relative;
    white-space:nowrap;
    transition:color .3s var(--ease);
  }
  .nav a::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
    background:var(--brass); transform:scaleX(0); transform-origin:right center;
    transition:transform .4s var(--ease-out);
  }
  .nav a:hover{ color:var(--ink); }
  .nav a:hover::after{ transform:scaleX(1); transform-origin:left center; }
}
.nav-cta{ display:none; }
@media (min-width:1500px){
  .hdr-main,
  .hdr-rail-in{ max-width:var(--max-wide); }
  .nav{ gap:clamp(16px,1.35vw,24px); }
  .nav-cta{ display:inline-flex; padding:12px 20px; white-space:nowrap; }
}

/* Active page marker (driven by body[data-page]) */
body[data-page="home"]      .nav a[data-nav="home"],
body[data-page="about"]     .nav a[data-nav="about"],
body[data-page="profile"]   .nav a[data-nav="profile"],
body[data-page="parliament"].nav a[data-nav="parliament"],
body[data-page="agriculture"] .nav a[data-nav="agriculture"],
body[data-page="vision"]    .nav a[data-nav="vision"],
body[data-page="engagement"].nav a[data-nav="engagement"],
body[data-page="gallery"]   .nav a[data-nav="gallery"],
body[data-page="news"]      .nav a[data-nav="news"],
body[data-page="contact"]   .nav a[data-nav="contact"]{ color:var(--ink); }
body[data-page="home"]      .nav a[data-nav="home"]::after,
body[data-page="about"]     .nav a[data-nav="about"]::after,
body[data-page="profile"]   .nav a[data-nav="profile"]::after,
body[data-page="parliament"].nav a[data-nav="parliament"]::after,
body[data-page="agriculture"] .nav a[data-nav="agriculture"]::after,
body[data-page="vision"]    .nav a[data-nav="vision"]::after,
body[data-page="engagement"].nav a[data-nav="engagement"]::after,
body[data-page="gallery"]   .nav a[data-nav="gallery"]::after,
body[data-page="news"]      .nav a[data-nav="news"]::after,
body[data-page="contact"]   .nav a[data-nav="contact"]::after{ transform:scaleX(1); }

/* Burger */
.burger{
  width:46px; height:46px; flex:none;
  border:1px solid var(--line-2);
  border-radius:2px;
  display:grid; place-items:center;
  background:var(--white);
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.burger:hover{ border-color:var(--brass); }
.burger i{
  display:block; width:19px; height:1.5px; background:var(--ink);
  position:relative; transition:background .2s var(--ease);
}
.burger i::before,.burger i::after{
  content:""; position:absolute; left:0; width:19px; height:1.5px; background:var(--ink);
  transition:transform .4s var(--ease-out), top .28s var(--ease);
}
.burger i::before{ top:-6px; }
.burger i::after{ top:6px; }
.burger[aria-expanded="true"] i{ background:transparent; }
.burger[aria-expanded="true"] i::before{ top:0; transform:rotate(45deg); }
.burger[aria-expanded="true"] i::after{ top:0; transform:rotate(-45deg); }
@media (min-width:1180px){ .burger{ display:none; } }

/* Mobile drawer */
.mnav{
  position:fixed; inset:0; z-index:950;
  background:var(--ink);
  display:flex; flex-direction:column;
  opacity:0; visibility:hidden;
  transform:translateY(-8px);
  transition:opacity .38s var(--ease), transform .38s var(--ease), visibility .38s;
  overscroll-behavior:contain;
}
.mnav.is-open{ opacity:1; visibility:visible; transform:none; }
.mnav-top{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  height:var(--hdr-h); flex:none;
  border-bottom:1px solid var(--line-inv);
}
.mnav-top .brand-name{ color:var(--white); }
.mnav-top .brand-role{ color:var(--txt-inv-2); }
.mnav-top .brand-mark{ background:transparent; }
.mnav-close{
  width:46px; height:46px; border:1px solid var(--line-inv-2); border-radius:2px;
  display:grid; place-items:center; color:var(--white);
  transition:border-color .3s var(--ease), color .3s var(--ease);
}
.mnav-close:hover{ border-color:var(--brass); color:var(--brass-3); }
.mnav-body{
  flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding-block:clamp(18px,4vw,36px) clamp(28px,6vw,56px);
}
.mnav-list{ list-style:none; }
.mnav-list li{ border-bottom:1px solid var(--line-inv); }
.mnav-list a{
  display:flex; align-items:baseline; gap:16px;
  padding:16px 4px;
  color:var(--txt-inv);
  font-family:var(--ff-display);
  font-size:clamp(1.24rem,1.02rem + 1.1vw,1.7rem);
  font-weight:500; letter-spacing:-.015em; line-height:1.2;
  transition:color .3s var(--ease), padding-left .35s var(--ease-out);
  min-height:56px;
}
.mnav-list a em{
  font-style:normal; font-family:var(--ff-mono); font-size:.68rem; letter-spacing:.16em;
  color:var(--brass); flex:none; width:26px;
}
.mnav-list a:hover,.mnav-list a:focus-visible{ color:var(--brass-3); padding-left:10px; }
body[data-page="home"] .mnav-list a[data-nav="home"],
body[data-page="about"] .mnav-list a[data-nav="about"],
body[data-page="profile"] .mnav-list a[data-nav="profile"],
body[data-page="parliament"] .mnav-list a[data-nav="parliament"],
body[data-page="agriculture"] .mnav-list a[data-nav="agriculture"],
body[data-page="vision"] .mnav-list a[data-nav="vision"],
body[data-page="engagement"] .mnav-list a[data-nav="engagement"],
body[data-page="gallery"] .mnav-list a[data-nav="gallery"],
body[data-page="news"] .mnav-list a[data-nav="news"],
body[data-page="contact"] .mnav-list a[data-nav="contact"]{ color:var(--brass-3); }
.mnav-foot{
  margin-top:clamp(26px,5vw,44px);
  padding-top:24px; border-top:1px solid var(--line-inv);
  display:flex; flex-wrap:wrap; gap:18px 30px; justify-content:space-between; align-items:center;
}
.mnav-foot .mnav-contact{ display:flex; flex-direction:column; gap:6px; }
.mnav-foot a{ color:var(--txt-inv); font-size:var(--fs-small); transition:color .3s var(--ease); }
.mnav-foot a:hover{ color:var(--brass-3); }
.mnav-foot .mono{ color:var(--txt-inv-2); margin-bottom:2px; }

.mnav.is-open .mnav-list li{ animation:mnavIn .5s var(--ease-out) both; }
.mnav.is-open .mnav-list li:nth-child(1){ animation-delay:.06s }
.mnav.is-open .mnav-list li:nth-child(2){ animation-delay:.1s }
.mnav.is-open .mnav-list li:nth-child(3){ animation-delay:.14s }
.mnav.is-open .mnav-list li:nth-child(4){ animation-delay:.18s }
.mnav.is-open .mnav-list li:nth-child(5){ animation-delay:.22s }
.mnav.is-open .mnav-list li:nth-child(6){ animation-delay:.26s }
.mnav.is-open .mnav-list li:nth-child(7){ animation-delay:.3s }
.mnav.is-open .mnav-list li:nth-child(8){ animation-delay:.34s }
.mnav.is-open .mnav-list li:nth-child(9){ animation-delay:.38s }
.mnav.is-open .mnav-list li:nth-child(10){ animation-delay:.42s }
@keyframes mnavIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }

body.nav-open{ overflow:hidden; }

.skip-link{
  position:absolute; left:12px; top:-60px; z-index:1000;
  background:var(--ink); color:var(--white);
  padding:12px 18px; border-radius:2px;
  font-family:var(--ff-mono); font-size:var(--fs-micro); letter-spacing:.12em; text-transform:uppercase;
  transition:top .25s var(--ease);
}
.skip-link:focus{ top:12px; }

/* ---------- 9. Page header (interior pages) ------------------------------ */
.pagehead{
  position:relative; overflow:hidden;
  padding-block:clamp(48px,7vw,110px) clamp(44px,6vw,96px);
  border-bottom:1px solid var(--line);
}
.pagehead-grid{ display:grid; gap:clamp(24px,3vw,52px); align-items:end; }
@media (min-width:900px){
  .pagehead-grid{ grid-template-columns:minmax(0,1fr) minmax(0,.85fr); }
}
.crumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
  font-family:var(--ff-mono); font-size:var(--fs-eyebrow); letter-spacing:.16em;
  text-transform:uppercase; color:var(--txt-3); margin-bottom:20px;
}
.crumb a{ color:var(--txt-3); transition:color .28s var(--ease); display:inline-block; padding-block:4px; }
.crumb a:hover{ color:var(--brass); }
.crumb span[aria-current]{ color:var(--brass-ink); }
.crumb i{ font-style:normal; opacity:.5; }
.pagehead .d1{ margin-bottom:0; }
.pagehead-lead{ padding-bottom:6px; }
.pagehead.tone-ink .crumb,.pagehead.tone-river .crumb{ color:var(--txt-inv-2); }
.pagehead.tone-ink .crumb a,.pagehead.tone-river .crumb a{ color:var(--txt-inv-2); }
.pagehead.tone-ink .crumb a:hover,.pagehead.tone-river .crumb a:hover{ color:var(--brass-3); }
.pagehead.tone-ink .crumb span[aria-current],.pagehead.tone-river .crumb span[aria-current]{ color:var(--brass-3); }
.pagehead-deco{
  position:absolute; right:-6%; top:-30%; width:min(52%,620px); aspect-ratio:1;
  pointer-events:none; opacity:.5;
}
.pagehead-deco svg{ width:100%; height:100%; display:block; }

/* ---------- 10. Shared components --------------------------------------- */

/* Ledger — numbered hairline rows */
.ledger{ list-style:none; border-top:1px solid var(--line); }
.tone-ink .ledger,.tone-river .ledger,.tone-soil .ledger{ border-color:var(--line-inv); }
.ledger > li{ border-bottom:1px solid var(--line); }
.tone-ink .ledger > li,.tone-river .ledger > li,.tone-soil .ledger > li{ border-color:var(--line-inv); }
.ledger-row{
  display:grid; gap:8px clamp(18px,3vw,44px);
  padding-block:clamp(22px,2.6vw,34px);
  align-items:start;
  transition:padding-left .4s var(--ease-out);
}
@media (min-width:760px){
  .ledger-row{ grid-template-columns:56px minmax(0,.9fr) minmax(0,1.5fr); align-items:baseline; }
}
.ledger > li:hover .ledger-row{ padding-left:8px; }
.ledger-row h3{ font-family:var(--ff-display); font-size:var(--fs-h4); font-weight:600; letter-spacing:-.012em; line-height:1.24; color:var(--ink); }
.tone-ink .ledger-row h3,.tone-river .ledger-row h3,.tone-soil .ledger-row h3{ color:var(--white); }
.ledger-row p{ color:var(--txt-2); font-size:var(--fs-small); line-height:1.75; }
.tone-ink .ledger-row p,.tone-river .ledger-row p,.tone-soil .ledger-row p{ color:var(--txt-inv-2); }

/* Data ledger — big numerals */
.stats{ display:grid; gap:0; border-top:1px solid var(--line-inv); }
.stat{
  display:grid; gap:4px 24px; padding-block:clamp(18px,2.2vw,28px);
  border-bottom:1px solid var(--line-inv);
  align-items:baseline;
}
@media (min-width:620px){ .stat{ grid-template-columns:minmax(0,auto) minmax(0,1fr); } }
.stat b{
  font-family:var(--ff-display); font-weight:400;
  font-size:clamp(2rem,1.3rem + 2.6vw,3.4rem); line-height:.96; letter-spacing:-.03em;
  color:var(--brass-3); font-variant-numeric:lining-nums tabular-nums;
  min-width:5ch;
}
.stat-txt strong{ display:block; font-size:var(--fs-small); font-weight:600; color:var(--white); letter-spacing:.01em; margin-bottom:2px; }
.stat-txt span{ display:block; font-size:var(--fs-small); color:var(--txt-inv-2); line-height:1.65; }

/* Light variant */
.stats-lt{ border-top-color:var(--line); }
.stats-lt .stat{ border-bottom-color:var(--line); }
.stats-lt .stat b{ color:var(--brass); }
.stats-lt .stat-txt strong{ color:var(--ink); }
.stats-lt .stat-txt span{ color:var(--txt-2); }

/* Fact strip */
.facts{
  display:grid; gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:2px;
  overflow:hidden;
}
@media (min-width:600px){ .facts{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px){ .facts--4{ grid-template-columns:repeat(4,1fr); } .facts--3{ grid-template-columns:repeat(3,1fr); } }
.fact{
  background:var(--paper);
  padding:clamp(20px,2.4vw,30px);
}
.fact dt{
  font-family:var(--ff-mono); font-size:var(--fs-eyebrow); letter-spacing:.16em;
  text-transform:uppercase; color:var(--brass-ink); margin-bottom:9px;
}
.fact dd{
  font-family:var(--ff-display); font-size:var(--fs-h5); font-weight:600;
  letter-spacing:-.01em; line-height:1.32; color:var(--ink);
}
.fact dd small{ display:block; font-family:var(--ff-body); font-size:var(--fs-small); font-weight:400; color:var(--txt-3); margin-top:5px; letter-spacing:0; line-height:1.6; }

/* Pull quote */
.pullquote{
  position:relative;
  padding-left:clamp(20px,2.6vw,34px);
  border-left:2px solid var(--brass);
}
.pullquote p{
  font-family:var(--ff-display); font-weight:400; font-style:italic;
  font-size:var(--fs-h4); line-height:1.42; letter-spacing:-.012em; color:var(--ink);
  max-width:34ch;
}
.pullquote cite{
  display:block; margin-top:16px;
  font-family:var(--ff-mono); font-size:var(--fs-eyebrow); letter-spacing:.16em;
  text-transform:uppercase; color:var(--txt-3); font-style:normal;
}
.tone-ink .pullquote p,.tone-river .pullquote p,.tone-soil .pullquote p{ color:var(--white); }
.tone-ink .pullquote cite,.tone-river .pullquote cite,.tone-soil .pullquote cite{ color:var(--txt-inv-2); }

/* Section head */
.shead{ margin-bottom:clamp(34px,4.4vw,66px); }
.shead-split{ display:grid; gap:clamp(20px,2.6vw,48px); align-items:end; }
@media (min-width:900px){ .shead-split{ grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); } }

/* Data table */
.dtable-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:2px; background:var(--white); }
.dtable{ min-width:560px; font-size:var(--fs-small); }
.dtable caption{
  text-align:left; padding:16px clamp(16px,2vw,24px);
  font-family:var(--ff-mono); font-size:var(--fs-eyebrow); letter-spacing:.16em;
  text-transform:uppercase; color:var(--brass-ink); border-bottom:1px solid var(--line);
  background:var(--paper-2);
}
.dtable th,.dtable td{
  text-align:left; padding:14px clamp(16px,2vw,24px);
  border-bottom:1px solid var(--line); vertical-align:top;
}
.dtable thead th{
  font-family:var(--ff-mono); font-size:var(--fs-eyebrow); font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; color:var(--txt-3); background:var(--paper-2);
  white-space:nowrap;
}
.dtable tbody th{ font-weight:600; color:var(--ink); }
.dtable tbody tr:last-child th,.dtable tbody tr:last-child td{ border-bottom:0; }
.dtable td.num{ font-family:var(--ff-mono); font-variant-numeric:tabular-nums; white-space:nowrap; }
.dtable tbody tr:hover{ background:var(--paper); }
.table-note{ margin-top:14px; font-size:var(--fs-micro); color:var(--txt-3); line-height:1.7; }

/* Notice panel */
.notice{
  border:1px solid var(--line);
  border-left:3px solid var(--brass);
  background:var(--paper-2);
  padding:clamp(20px,2.6vw,32px);
  border-radius:2px;
}
.notice h3{ font-family:var(--ff-display); font-size:var(--fs-h5); font-weight:600; color:var(--ink); margin-bottom:8px; }
.notice p{ font-size:var(--fs-small); color:var(--txt-2); line-height:1.75; }
.notice p + p{ margin-top:10px; }

/* Contact CTA band */
.cta-band{ position:relative; overflow:hidden; }
.cta-inner{
  border:1px solid var(--line-inv-2);
  padding:clamp(30px,5vw,72px);
  position:relative;
  border-radius:2px;
}
.cta-inner::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(228,197,136,.07) 0 1px,transparent 1px 11px);
}
.cta-grid{ display:grid; gap:clamp(26px,3.4vw,56px); align-items:center; position:relative; }
@media (min-width:900px){ .cta-grid{ grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); } }
.cta-lines{ display:flex; flex-direction:column; gap:14px; }
.cta-line{
  display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;
  padding-bottom:14px; border-bottom:1px solid var(--line-inv);
}
.cta-line .mono{ min-width:82px; color:var(--brass-3); }
.cta-line a,.cta-line span.v{
  font-family:var(--ff-display); font-size:var(--fs-h5); font-weight:500; color:var(--white);
  letter-spacing:-.008em; word-break:break-word;
  background-image:linear-gradient(var(--brass-3),var(--brass-3));
  background-size:0% 1px; background-repeat:no-repeat; background-position:0 100%;
  transition:background-size .42s var(--ease-out), color .3s var(--ease);
  padding-bottom:2px;
}
.cta-line a:hover{ background-size:100% 1px; color:var(--brass-3); }

/* ---------- 11. Footer --------------------------------------------------- */
.site-footer{ background:var(--ink); color:var(--txt-inv-2); position:relative; }
.footer-strata{ height:8px; display:flex; }
.footer-strata i{ flex:1; display:block; }
.footer-strata i:nth-child(1){ background:var(--brass); }
.footer-strata i:nth-child(2){ background:var(--clay); }
.footer-strata i:nth-child(3){ background:var(--river-3); }
.footer-strata i:nth-child(4){ background:var(--soil); }

.footer-main{ padding-block:clamp(48px,6vw,88px) clamp(34px,4vw,56px); }
.footer-grid{ display:grid; gap:clamp(32px,4vw,52px); }
@media (min-width:700px){ .footer-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1060px){ .footer-grid{ grid-template-columns:minmax(0,1.5fr) minmax(0,.75fr) minmax(0,.75fr) minmax(0,1.25fr); } }

.footer-brand .brand-mark{ background:transparent; border-color:var(--brass); }
.footer-brand .brand-name{ color:var(--white); }
.footer-brand .brand-role{ color:var(--txt-inv-2); }
.footer-about{ margin-top:22px; font-size:var(--fs-small); line-height:1.78; color:var(--txt-inv-2); max-width:44ch; }

.footer-h{
  font-family:var(--ff-mono); font-size:var(--fs-eyebrow); letter-spacing:.2em;
  text-transform:uppercase; color:var(--brass-3); margin-bottom:20px;
  padding-bottom:12px; border-bottom:1px solid var(--line-inv);
}
.footer-list{ list-style:none; display:flex; flex-direction:column; gap:5px; }
.footer-list a{
  font-size:var(--fs-small); color:var(--txt-inv-2);
  transition:color .28s var(--ease), padding-left .34s var(--ease-out);
  display:inline-block; padding-block:5px;
}
.footer-list a:hover,.footer-list a:focus-visible{ color:var(--brass-3); padding-left:6px; }

.footer-contact{ display:flex; flex-direction:column; gap:16px; }
.fc-row{ display:flex; flex-direction:column; gap:3px; }
.fc-row .mono{ color:var(--txt-inv-2); font-size:.62rem; letter-spacing:.18em; }
.fc-row a,.fc-row strong{
  font-family:var(--ff-display); font-size:var(--fs-h5); font-weight:500; color:var(--white);
  letter-spacing:-.008em; word-break:break-word; line-height:1.35;
}
.fc-row a{ transition:color .28s var(--ease); display:inline-block; padding-block:3px; }
.fc-row a:hover{ color:var(--brass-3); }

.socials{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.socials a{
  width:42px; height:42px; flex:none;
  border:1px solid var(--line-inv-2); border-radius:2px;
  display:grid; place-items:center; color:var(--txt-inv-2);
  transition:color .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease), transform .3s var(--ease);
}
.socials a svg{ width:17px; height:17px; display:block; fill:currentColor; }
.socials a:hover,.socials a:focus-visible{ color:var(--ink); background:var(--brass-3); border-color:var(--brass-3); transform:translateY(-2px); }

.footer-bottom{
  border-top:1px solid var(--line-inv);
  padding-block:24px 30px;
  display:flex; flex-wrap:wrap; gap:12px 28px; align-items:center; justify-content:space-between;
  font-size:var(--fs-micro); color:var(--txt-inv-2);
}
.footer-bottom a{ color:var(--txt-inv); transition:color .28s var(--ease); }
.footer-bottom a:hover{ color:var(--brass-3); }
.footer-credit b{ font-weight:500; }
.footer-credit a{ border-bottom:1px solid var(--line-inv-2); display:inline-block; padding:4px 0 2px; }
.footer-credit a:hover{ border-color:var(--brass-3); }
.footer-legal{ display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; }

/* Back to top */
.to-top{
  position:fixed; right:clamp(14px,2.4vw,28px); bottom:clamp(14px,2.4vw,28px);
  z-index:800;
  width:46px; height:46px; border-radius:50%;
  background:var(--ink); color:var(--white);
  display:grid; place-items:center;
  box-shadow:var(--sh-2);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), visibility .35s, background .3s var(--ease);
}
.to-top.is-on{ opacity:1; visibility:visible; transform:none; }
.to-top:hover{ background:var(--brass-ink); }
.to-top svg{ width:16px; height:16px; }

/* ---------- 12. Reveal animations --------------------------------------- */
html.js [data-rv]{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .82s var(--ease-out), transform .82s var(--ease-out);
  will-change:opacity, transform;
}
html.js [data-rv="fade"]{ transform:none; }
html.js [data-rv="left"]{ transform:translateX(-22px); }
html.js [data-rv="right"]{ transform:translateX(22px); }
html.js [data-rv="scale"]{ transform:scale(.975); }
html.js [data-rv].is-in{ opacity:1; transform:none; }
html.js [data-rv-d="1"]{ transition-delay:.09s }
html.js [data-rv-d="2"]{ transition-delay:.18s }
html.js [data-rv-d="3"]{ transition-delay:.27s }
html.js [data-rv-d="4"]{ transition-delay:.36s }
html.js [data-rv-d="5"]{ transition-delay:.45s }
html.js [data-rv-d="6"]{ transition-delay:.54s }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  html.js [data-rv]{ opacity:1 !important; transform:none !important; transition:none !important; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .mnav.is-open .mnav-list li{ animation:none !important; }
}

/* ---------- 13. Utilities ------------------------------------------------ */
.vh{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.mt-s{ margin-top:clamp(16px,2vw,24px); }
.mt-m{ margin-top:clamp(24px,3vw,40px); }
.mt-l{ margin-top:clamp(34px,4.4vw,64px); }
.mb-s{ margin-bottom:clamp(16px,2vw,24px); }
.mb-m{ margin-bottom:clamp(24px,3vw,40px); }
.mb-l{ margin-bottom:clamp(34px,4.4vw,64px); }
.tc{ text-align:center; }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }
.btn-row--center{ justify-content:center; }
.chiplist{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; }
.chip{
  font-family:var(--ff-mono); font-size:var(--fs-eyebrow); letter-spacing:.13em;
  text-transform:uppercase; color:var(--txt-2);
  border:1px solid var(--line-2); border-radius:100px;
  padding:7px 15px; background:var(--paper);
  white-space:nowrap;
}
.tone-ink .chip,.tone-river .chip,.tone-soil .chip{ color:var(--txt-inv-2); border-color:var(--line-inv-2); background:transparent; }
