/* ============================================================
   damodargajanannaik.com — ARCHIVAL MODERNISM
   Design system: burnished terracotta / deep forest / warm ivory
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  /* ground */
  --paper:#F5F0E6;
  --paper-warm:#EFE8DA;
  --paper-deep:#E6DDCB;
  --paper-dim:#CFC4AE;

  /* ink */
  --ink:#16130F;
  --ink-2:#3D372E;
  --ink-3:#6B6255;

  /* rules */
  --rule:#CFC5B2;
  --rule-soft:#E2DACB;
  --rule-dark:#3A4F45;

  /* accents */
  --terra:#A4402A;
  --terra-deep:#7E2F1E;
  --forest:#1F3A31;
  --forest-2:#2E5648;
  --gold:#B8862F;        /* marks & rules only */
  --gold-ink:#8A6216;      /* accessible on ivory */
  --gold-on-dark:#CE9C42;  /* accessible on forest & charcoal */

  /* type */
  --display:"Fraunces","Hoefler Text","Iowan Old Style",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono","SFMono-Regular",Menlo,Consolas,monospace;

  /* metrics */
  --gutter:clamp(20px,5vw,72px);
  --measure:68ch;
  --rail:132px;
  --bar:64px;
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
}
body,h1,h2,h3,h4,h5,p,ul,ol,li,figure,figcaption,blockquote,dl,dd{margin:0;padding:0;}
ul,ol{list-style:none;}
img{max-width:100%;display:block;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
a{color:inherit;}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.72;
  font-weight:400;
  overflow-x:hidden;
  /* archival paper grain — extremely subtle, no image cost */
  background-image:
    repeating-linear-gradient(0deg,rgba(22,19,15,.014) 0 1px,transparent 1px 3px),
    radial-gradient(120% 80% at 50% 0%,rgba(184,134,47,.05),transparent 60%);
}

/* ---------- 3. TYPOGRAPHY ---------- */
.display{
  font-family:var(--display);
  font-weight:400;
  font-optical-sizing:auto;
  line-height:1.03;
  letter-spacing:-.018em;
  color:var(--ink);
  text-wrap:balance;
}
.d-xxl{font-size:clamp(2.7rem,7.6vw,7rem);}
.d-xl {font-size:clamp(2.4rem,6.4vw,5.1rem);}
.d-lg {font-size:clamp(1.95rem,4.2vw,3.35rem);}
.d-md {font-size:clamp(1.5rem,2.8vw,2.2rem);}
.d-sm {font-size:clamp(1.22rem,2vw,1.55rem);line-height:1.22;}

.eyebrow{
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--terra);
  display:flex;
  align-items:center;
  gap:.7em;
}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--rule);min-width:24px;}
.eyebrow--plain::after{display:none;}
.eyebrow--forest{color:var(--gold-on-dark);}
.eyebrow--forest::after{background:var(--rule-dark);}
.eyebrow--paper{color:#F7EFE4;}
.eyebrow--paper::after{background:rgba(245,240,230,.28);}

.tag{
  font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.17em;text-transform:uppercase;color:var(--ink-3);
}

.lede{
  font-family:var(--display);
  font-size:clamp(1.18rem,2.05vw,1.6rem);
  line-height:1.5;font-weight:300;color:var(--ink-2);
  letter-spacing:-.01em;
}

.prose p{max-width:var(--measure);margin-bottom:1.35em;color:var(--ink-2);}
.prose p:last-child{margin-bottom:0;}
.prose p strong{color:var(--ink);font-weight:600;}
.prose h2,.prose h3{
  font-family:var(--display);font-weight:500;
  font-size:clamp(1.28rem,2.2vw,1.72rem);line-height:1.2;
  margin:2.6em 0 .75em;color:var(--ink);letter-spacing:-.012em;
}
.prose h2:first-child,.prose h3:first-child{margin-top:0;}
.prose ul{max-width:var(--measure);margin-bottom:1.35em;}
.prose ul li{
  position:relative;padding-left:1.55em;margin-bottom:.62em;color:var(--ink-2);
}
.prose ul li::before{
  content:"";position:absolute;left:0;top:.72em;
  width:7px;height:7px;background:var(--gold);
}
.prose a{color:var(--terra);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.prose a:hover{color:var(--terra-deep);}

/* ---------- 4. LAYOUT ---------- */
.wrap{max-width:1560px;margin:0 auto;padding-inline:var(--gutter);}
.wrap--narrow{max-width:1180px;}
.section{padding-block:clamp(64px,9vw,140px);}
.section--tight{padding-block:clamp(48px,6vw,86px);}
.hr{height:1px;background:var(--rule);border:0;}
.hr--strong{height:2px;background:var(--ink);}
.hr--gold{height:2px;background:var(--gold);}

.sect-head{margin-bottom:clamp(34px,4.5vw,64px);}
.sect-head .display{margin-top:.42em;}
.sect-head .lede{margin-top:1.1em;max-width:60ch;}

/* plate number — big outlined numeral */
.plate-no{
  font-family:var(--display);
  font-size:clamp(3.6rem,8vw,7.4rem);
  line-height:.8;font-weight:400;
  color:transparent;
  -webkit-text-stroke:1px var(--rule);
  letter-spacing:-.03em;
  user-select:none;
}
.plate-no--solid{color:var(--terra);-webkit-text-stroke:0;}

/* ---------- 5. PLATES (image mounts) — full image, never cropped ---------- */
.plate{
  background:var(--paper-warm);
  border:1px solid var(--rule);
  padding:clamp(14px,1.8vw,26px);
  position:relative;
}
.plate--forest{background:var(--forest-2);border-color:var(--rule-dark);}
.plate--terra{background:var(--terra);border-color:var(--terra-deep);}
.plate__img{
  width:100%;
  height:auto;
  max-width:var(--nat,none);   /* never enlarged past its own resolution */
  object-fit:contain;      /* full subject preserved — no face cropping */
  display:block;
  margin-inline:auto;      /* centre within the mount when capped at native size */
  background:var(--paper-deep);
}
.plate__cap{
  margin-top:clamp(12px,1.4vw,18px);
  padding-top:11px;
  border-top:1px solid var(--rule);
  font-family:var(--mono);
  font-size:.7rem;
  line-height:1.62;
  letter-spacing:.055em;
  color:var(--ink-3);
  text-transform:uppercase;
}
.plate--forest .plate__cap{border-top-color:var(--rule-dark);color:var(--paper-dim);}
.plate--terra .plate__cap{border-top-color:rgba(245,240,230,.32);color:#F0E4D8;}
.plate__cap b{display:block;color:var(--ink);font-weight:600;letter-spacing:.08em;}
.plate--forest .plate__cap b{color:var(--paper);}
.plate--terra .plate__cap b{color:#FFF8F0;}

/* ---------- 6. LEDGER (fact panels — square, ruled, no cards) ---------- */
.ledger{border-top:2px solid var(--ink);}
.ledger__row{
  display:grid;
  grid-template-columns:minmax(140px,var(--rail)) 1fr;
  gap:clamp(14px,3vw,44px);
  padding:clamp(15px,1.8vw,22px) 0;
  border-bottom:1px solid var(--rule);
  align-items:baseline;
}
.ledger__k{
  font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--terra);
  line-height:1.7;
}
.ledger__v{color:var(--ink);font-size:1.01rem;line-height:1.6;}
.ledger__v small{display:block;color:var(--ink-3);font-size:.84rem;margin-top:.28em;line-height:1.6;}
.ledger--forest{border-top-color:var(--gold);}
.ledger--forest .ledger__row{border-bottom-color:var(--rule-dark);}
.ledger--forest .ledger__k{color:var(--gold-on-dark);}
.ledger--forest .ledger__v{color:var(--paper);}
.ledger--forest .ledger__v small{color:var(--paper-dim);}

/* ---------- 7. QUOTE ---------- */
.quote{
  border-top:2px solid var(--terra);
  border-bottom:1px solid var(--rule);
  padding:clamp(28px,4vw,48px) 0;
  margin:clamp(34px,5vw,60px) 0;
}
.quote__t{
  font-family:var(--display);font-weight:300;
  font-size:clamp(1.4rem,3.1vw,2.4rem);
  line-height:1.28;letter-spacing:-.015em;color:var(--terra-deep);
  max-width:24ch;
}
.quote__t.is-wide{max-width:34ch;}
.quote__c{
  margin-top:1.5em;font-family:var(--mono);font-size:.7rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);line-height:1.7;
}

/* ---------- 8. BUTTONS / LINKS ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.85em;
  font-family:var(--mono);font-size:.74rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;
  padding:16px 30px;border:1px solid var(--ink);
  color:var(--ink);text-decoration:none;background:transparent;
  transition:background .28s ease,color .28s ease,border-color .28s ease;
}
.btn:hover,.btn:focus-visible{background:var(--ink);color:var(--paper);}
.btn--terra{border-color:var(--terra);color:var(--terra);}
.btn--terra:hover,.btn--terra:focus-visible{background:var(--terra);color:var(--paper);border-color:var(--terra);}
.btn--paper{border-color:var(--paper-dim);color:var(--paper);}
.btn--paper:hover,.btn--paper:focus-visible{background:var(--paper);color:var(--forest);border-color:var(--paper);}
.btn__ar{font-size:1.05em;line-height:1;}

.tlink{
  display:inline-flex;align-items:baseline;gap:.6em;
  font-family:var(--mono);font-size:.73rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--terra);
  text-decoration:none;padding-bottom:5px;
  border-bottom:1px solid var(--rule);
  transition:border-color .28s ease,color .28s ease;
}
.tlink:hover,.tlink:focus-visible{color:var(--terra-deep);border-bottom-color:var(--terra);}

/* ---------- 9. FOCUS / A11Y ---------- */
:focus-visible{outline:2px solid var(--terra);outline-offset:3px;}
.skip{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--ink);color:var(--paper);padding:14px 22px;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;
  text-decoration:none;
}
.skip:focus{left:12px;top:12px;}
.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;}

/* ---------- 10. MASTHEAD / NAV ---------- */
.masthead{
  position:sticky;top:0;z-index:90;
  background:rgba(245,240,230,.94);
  backdrop-filter:saturate(140%) blur(9px);
  -webkit-backdrop-filter:saturate(140%) blur(9px);
  border-bottom:1px solid var(--rule);
}
.masthead__in{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;height:var(--bar);min-width:0;
}
.masthead__in > *{min-width:0;}
.wordmark{
  display:flex;align-items:baseline;gap:.62em;text-decoration:none;
  font-family:var(--display);font-size:clamp(.95rem,2.4vw,1.06rem);font-weight:500;
  letter-spacing:-.01em;color:var(--ink);white-space:nowrap;
  min-width:0;overflow:hidden;text-overflow:ellipsis;
}
.wordmark__m{
  font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;color:var(--terra);
}
.nav{display:none;}
.nav__list{display:flex;align-items:center;gap:clamp(12px,1.5vw,24px);}
.nav__a{
  font-family:var(--mono);font-size:.72rem;font-weight:500;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-2);
  text-decoration:none;padding:6px 0;position:relative;white-space:nowrap;
  transition:color .25s ease;
}
.nav__a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--terra);transform:scaleX(0);transform-origin:left;
  transition:transform .3s ease;
}
.nav__a:hover,.nav__a:focus-visible{color:var(--terra);}
.nav__a:hover::after,.nav__a:focus-visible::after{transform:scaleX(1);}
.nav__a[aria-current="page"]{color:var(--terra);}
.nav__a[aria-current="page"]::after{transform:scaleX(1);}

.menu-btn{
  flex:0 0 auto;
  display:inline-flex;align-items:center;gap:.72em;
  font-family:var(--mono);font-size:.72rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  border:1px solid var(--rule);padding:11px 16px;min-height:44px;
}
.menu-btn:hover{border-color:var(--ink);}
.menu-btn__b{display:inline-flex;flex-direction:column;gap:3px;width:15px;}
.menu-btn__b i{display:block;height:1.5px;background:var(--ink);}

/* full-screen index overlay */
.index-ov{
  position:fixed;inset:0;z-index:120;background:var(--forest);
  display:flex;flex-direction:column;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .34s ease,visibility .34s ease;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.index-ov.is-open{opacity:1;visibility:visible;pointer-events:auto;}
.index-ov__top{
  min-width:0;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  height:var(--bar);border-bottom:1px solid var(--rule-dark);flex:0 0 auto;
}
.index-ov__top .wordmark{color:var(--paper);}
.index-ov__top .wordmark__m{color:var(--gold-on-dark);}
.close-btn{
  flex:0 0 auto;
  display:inline-flex;align-items:center;gap:.72em;
  font-family:var(--mono);font-size:.72rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--paper);
  border:1px solid var(--rule-dark);padding:11px 16px;min-height:44px;
}
.close-btn:hover{border-color:var(--paper);}
.index-ov__body{flex:1 0 auto;padding-block:clamp(26px,5vh,52px);}
.index-ov__list{border-top:1px solid var(--rule-dark);}
.index-ov__item{border-bottom:1px solid var(--rule-dark);}
.index-ov__a{
  display:flex;align-items:baseline;gap:clamp(16px,3vw,40px);
  padding:clamp(14px,2vh,22px) 0;text-decoration:none;
  transition:padding-left .32s ease;
}
.index-ov__a:hover,.index-ov__a:focus-visible{padding-left:clamp(8px,1.6vw,22px);}
.index-ov__n{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.14em;
  color:var(--gold-on-dark);flex:0 0 auto;width:2.6em;
}
.index-ov__t{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.55rem,4.6vw,2.9rem);line-height:1.06;
  letter-spacing:-.018em;color:var(--paper);
}
.index-ov__a:hover .index-ov__t,.index-ov__a:focus-visible .index-ov__t{color:var(--gold-on-dark);}
.index-ov__a[aria-current="page"] .index-ov__t{color:var(--gold-on-dark);}
.index-ov__d{
  display:none;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--paper-dim);margin-left:auto;text-align:right;
  flex:0 0 auto;max-width:34%;line-height:1.6;
}
.index-ov__foot{
  flex:0 0 auto;border-top:1px solid var(--rule-dark);padding-block:22px;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--paper-dim);
  display:flex;flex-wrap:wrap;gap:10px 26px;
}
.index-ov__foot a{color:var(--paper-dim);text-decoration:none;border-bottom:1px solid var(--rule-dark);}
.index-ov__foot a:hover{color:var(--gold-on-dark);border-bottom-color:var(--gold-on-dark);}
body.is-locked{overflow:hidden;}

/* ---------- 11. BREADCRUMB ---------- */
.crumb{
  padding-block:18px;border-bottom:1px solid var(--rule-soft);
  font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);
}
.crumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:.55em;}
.crumb a{color:var(--ink-3);text-decoration:none;}
.crumb a:hover{color:var(--terra);}
.crumb li[aria-current="page"]{color:var(--terra);}
.crumb .sep{color:var(--ink-3);}

/* ---------- 12. PAGE OPENER (shared skeleton, styled per page) ---------- */
.opener{padding-block:clamp(48px,7vw,104px) clamp(38px,5vw,72px);}
.opener__meta{
  display:flex;flex-wrap:wrap;gap:8px 30px;margin-top:clamp(26px,3.4vw,44px);
  padding-top:20px;border-top:1px solid var(--rule);
  font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);
}
.opener__meta b{color:var(--ink);font-weight:600;}

/* ---------- 13. FOOTER ---------- */
.foot{background:var(--forest);color:var(--paper);border-top:4px solid var(--terra);}
.foot__grid{
  display:grid;gap:clamp(34px,4vw,56px);
  padding-block:clamp(48px,6vw,84px);
  grid-template-columns:1fr;
}
.foot__brand .display{color:var(--paper);}
.foot__tag{margin-top:1em;color:var(--paper-dim);max-width:42ch;font-size:.95rem;line-height:1.7;}
.foot__h{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-on-dark);margin-bottom:1.5em;
  padding-bottom:.9em;border-bottom:1px solid var(--rule-dark);
}
.foot__nav li{margin-bottom:.72em;}
.foot__nav a{
  color:var(--paper-dim);text-decoration:none;font-size:.93rem;
  transition:color .25s ease;
}
.foot__nav a:hover,.foot__nav a:focus-visible{color:var(--gold-on-dark);}
.foot__contact{font-style:normal;}
.foot__contact dt{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-on-dark);margin-bottom:.35em;
}
.foot__contact dd{margin-bottom:1.15em;}
.foot__contact a{color:var(--paper);text-decoration:none;border-bottom:1px solid var(--rule-dark);}
.foot__contact a:hover,.foot__contact a:focus-visible{color:var(--gold-on-dark);border-bottom-color:var(--gold-on-dark);}
.foot__name{color:var(--paper);font-weight:500;}

.social{display:flex;flex-wrap:wrap;gap:12px;margin-top:.4em;}
.social a,.social button{
  display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;border:1px solid var(--rule-dark);color:var(--paper-dim);
  transition:background .26s ease,color .26s ease,border-color .26s ease;
}
.social a:hover,.social a:focus-visible,.social button:hover,.social button:focus-visible{background:var(--gold-on-dark);color:var(--forest);border-color:var(--gold-on-dark);}
.social svg{width:19px;height:19px;fill:currentColor;display:block;}

.foot__base{
  border-top:1px solid var(--rule-dark);padding-block:26px;
  display:flex;flex-wrap:wrap;gap:12px 30px;justify-content:space-between;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.11em;
  text-transform:uppercase;color:var(--paper-dim);line-height:1.8;
}
.foot__base a{color:var(--gold-on-dark);text-decoration:none;border-bottom:1px solid transparent;}
.foot__base a:hover,.foot__base a:focus-visible{border-bottom-color:var(--gold-on-dark);}

/* ---------- 14. REVEAL ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);}
.rv.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none;}}

/* ============================================================
   PAGE MODULES — every page a different composition
   ============================================================ */

/* ---------- HOME : documentary opening plate ---------- */
.hero{position:relative;padding-block:clamp(30px,3.4vw,52px) clamp(52px,7vw,110px);overflow:hidden;}
.hero::before{
  content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;
  background:var(--rule-soft);display:none;
}
.hero__grid{display:grid;gap:clamp(30px,4vw,56px);align-items:start;}
.hero__title{grid-column:1/-1;}
.hero__title .display{letter-spacing:-.035em;}
.hero__title .display span{display:block;}
.hero__title .display .l2{padding-left:clamp(0px,7vw,140px);}
.hero__title .display .l3{color:var(--terra);padding-left:clamp(0px,14vw,280px);}
.hero__mount{position:relative;}
.hero__stamp{
  position:absolute;top:-14px;right:-6px;z-index:2;
  background:var(--terra);color:#FFF6EC;
  font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;padding:8px 13px;
}
.hero__say{border-top:2px solid var(--ink);padding-top:clamp(20px,2.4vw,30px);}
.hero__say .lede{margin-bottom:1.1em;}
.hero__rail{
  display:flex;flex-wrap:wrap;gap:10px 34px;margin-top:clamp(26px,3.2vw,42px);
  padding-top:20px;border-top:1px solid var(--rule);
  font-family:var(--mono);font-size:.7rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3);
}
.hero__rail b{color:var(--terra);font-weight:600;}

/* home — statement band */
.band{background:var(--forest);color:var(--paper);}
.band .display{color:var(--paper);}
.band .lede{color:var(--paper-dim);}
.band__q{
  font-family:var(--display);font-weight:300;
  font-size:clamp(1.45rem,3.4vw,2.7rem);line-height:1.26;
  letter-spacing:-.018em;color:var(--paper);max-width:22ch;
}
.band--terra{background:var(--terra);}
.band--terra .display,.band--terra .band__q{color:#FFF8F0;}
.band--terra .lede{color:#F5E3D6;}

/* home — chapter index */
.chapters{border-top:2px solid var(--ink);}
.chapter{
  display:grid;grid-template-columns:1fr;gap:10px;
  padding:clamp(22px,3vw,34px) 0;border-bottom:1px solid var(--rule);
  text-decoration:none;transition:padding-left .34s ease;
}
.chapter:hover,.chapter:focus-visible{padding-left:clamp(8px,1.4vw,20px);}
.chapter__n{font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.16em;color:var(--terra);}
.chapter__t{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.5rem,3.2vw,2.35rem);line-height:1.08;
  letter-spacing:-.018em;color:var(--ink);transition:color .26s ease;
}
.chapter:hover .chapter__t,.chapter:focus-visible .chapter__t{color:var(--terra);}
.chapter__d{color:var(--ink-3);font-size:.97rem;line-height:1.65;max-width:52ch;}
.chapter__go{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--terra);
}

/* ---------- ABOUT : reading column + margin annotations ---------- */
.reading{display:grid;gap:clamp(26px,3.4vw,52px);}
.reading__body{min-width:0;}
.annot{border-left:2px solid var(--gold);padding-left:clamp(14px,1.4vw,20px);margin-bottom:clamp(26px,3vw,40px);}
.annot__k{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-ink);margin-bottom:.6em;
}
.annot__v{font-size:.93rem;line-height:1.68;color:var(--ink-2);}
.annot__v b{color:var(--ink);font-weight:600;}

/* ---------- LIFE : dossier, marginalia right ---------- */
.dossier{display:grid;gap:clamp(28px,3.6vw,56px);}
.dossier__strip{
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding-block:clamp(20px,2.4vw,30px);margin-block:clamp(30px,4vw,52px);
  display:grid;gap:clamp(18px,2.4vw,34px);
}
.dossier__cell .tag{display:block;margin-bottom:.55em;color:var(--terra);}
.dossier__cell p{font-family:var(--display);font-size:1.12rem;line-height:1.36;color:var(--ink);}

/* ---------- JOURNEY : chronological register ---------- */
.register{border-top:2px solid var(--ink);}
.entry{
  display:grid;grid-template-columns:1fr;gap:clamp(12px,1.8vw,22px);
  padding:clamp(28px,4vw,54px) 0;border-bottom:1px solid var(--rule);
  position:relative;
}
.entry__yr{
  font-family:var(--display);font-weight:400;line-height:.86;
  font-size:clamp(2.4rem,7vw,5.4rem);letter-spacing:-.035em;color:var(--terra);
}
.entry__yr small{display:block;font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-top:.85em;line-height:1.6;}
.entry__b{min-width:0;}
.entry__l{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-ink);margin-bottom:.95em;
}
.entry__t{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.35rem,2.7vw,2.05rem);line-height:1.13;
  letter-spacing:-.016em;color:var(--ink);margin-bottom:.68em;
}
.entry__p{color:var(--ink-2);max-width:60ch;font-size:1rem;line-height:1.72;}
.entry__side{
  margin-top:1.3em;padding-top:1.1em;border-top:1px solid var(--rule-soft);
  font-family:var(--mono);font-size:.7rem;letter-spacing:.09em;line-height:1.75;
  text-transform:uppercase;color:var(--ink-3);
}
.entry__side b{color:var(--terra);font-weight:600;}

/* ---------- CAREER : six-fold structured phases ---------- */
.phase{padding-block:clamp(42px,5.5vw,86px);border-bottom:1px solid var(--rule);}
.phase:last-of-type{border-bottom:0;}
.phase__head{display:grid;gap:clamp(14px,2vw,28px);margin-bottom:clamp(28px,3.4vw,46px);}
.phase__yr{
  font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--terra);
}
.sixfold{display:grid;gap:0;border-top:2px solid var(--ink);}
.fold{
  display:grid;grid-template-columns:1fr;gap:8px;
  padding:clamp(18px,2.2vw,28px) 0;border-bottom:1px solid var(--rule);
}
.fold__k{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--terra);line-height:1.7;
}
.fold__v{color:var(--ink-2);max-width:64ch;font-size:1rem;line-height:1.72;}
.fold__v b{color:var(--ink);font-weight:600;}

/* ---------- ACHIEVEMENTS : typographic catalogue ---------- */
.cat{border-top:2px solid var(--ink);}
.cat__item{
  display:grid;grid-template-columns:1fr;gap:clamp(12px,1.8vw,26px);
  padding:clamp(30px,4vw,58px) 0;border-bottom:1px solid var(--rule);
}
.cat__no{
  font-family:var(--display);font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:.82;
  color:transparent;-webkit-text-stroke:1px var(--gold);letter-spacing:-.03em;
}
.cat__b{min-width:0;}
.cat__when{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--terra);margin-bottom:.9em;
}
.cat__t{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.42rem,3vw,2.2rem);line-height:1.12;
  letter-spacing:-.016em;color:var(--ink);margin-bottom:.7em;
}
.cat__p{color:var(--ink-2);max-width:62ch;margin-bottom:1.1em;line-height:1.72;}
.cat__p:last-child{margin-bottom:0;}
.cat__why{
  border-left:2px solid var(--terra);padding-left:clamp(14px,1.4vw,20px);
  font-size:.96rem;line-height:1.7;color:var(--ink-2);max-width:58ch;
}
.cat__why b{
  display:block;font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--terra);margin-bottom:.5em;
}

/* data table — electoral record */
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-top:2px solid var(--ink);}
.dtable{width:100%;border-collapse:collapse;min-width:600px;font-size:.94rem;}
.dtable caption{
  text-align:left;font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);
  padding-block:14px 18px;line-height:1.7;
}
.dtable th,.dtable td{
  text-align:left;padding:13px 18px 13px 0;border-bottom:1px solid var(--rule);
  vertical-align:top;line-height:1.55;
}
.dtable thead th{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--terra);border-bottom:1px solid var(--ink);
  white-space:nowrap;
}
.dtable td.num{font-family:var(--mono);font-size:.88rem;white-space:nowrap;}
.dtable tbody tr.is-win td{background:rgba(184,134,47,.11);font-weight:500;color:var(--ink);}
.dtable td:first-child,.dtable th:first-child{padding-left:14px;}
.dtable .res{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--terra);white-space:nowrap;
}

/* ---------- CONTRIBUTIONS : case studies ---------- */
.case{padding-block:clamp(44px,5.6vw,88px);border-bottom:1px solid var(--rule);}
.case:last-of-type{border-bottom:0;}
.case__grid{display:grid;gap:clamp(24px,3.2vw,52px);}
.case__label{min-width:0;}
.case__no{
  font-family:var(--display);font-size:clamp(2.8rem,6vw,5rem);line-height:.82;
  color:var(--terra);letter-spacing:-.035em;
}
.case__k{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-3);margin-top:1.2em;line-height:1.75;
}
.case__k b{display:block;color:var(--ink);font-weight:600;}
.case__t{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.5rem,3.2vw,2.35rem);line-height:1.1;
  letter-spacing:-.018em;color:var(--ink);margin-bottom:clamp(20px,2.4vw,32px);
}
.case__block{margin-bottom:clamp(20px,2.4vw,30px);}
.case__block:last-child{margin-bottom:0;}
.case__bk{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--terra);margin-bottom:.6em;
  padding-bottom:.6em;border-bottom:1px solid var(--rule-soft);
}
.case__bv{color:var(--ink-2);max-width:62ch;line-height:1.72;}
.case__bv b{color:var(--ink);font-weight:600;}

/* ---------- ARCHIVE : curated exhibition ---------- */
.exhibit{display:grid;gap:clamp(26px,3.4vw,54px);}
.exhibit__note{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.11em;line-height:1.85;
  text-transform:uppercase;color:var(--ink-3);
}
.exhibit__note b{color:var(--ink);font-weight:600;}
.feature{display:grid;gap:clamp(22px,3vw,46px);align-items:center;}
.stagger{display:grid;gap:clamp(24px,3.2vw,48px);}

/* ---------- CONTACT : minimal information field ---------- */
.cfield{border-top:2px solid var(--ink);}
.crow{
  display:grid;grid-template-columns:1fr;gap:8px;
  padding:clamp(24px,3.4vw,42px) 0;border-bottom:1px solid var(--rule);
}
.crow__k{
  font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--terra);line-height:1.7;
}
.crow__v{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.35rem,3.4vw,2.4rem);line-height:1.2;letter-spacing:-.018em;color:var(--ink);
}
.crow__v a{text-decoration:none;border-bottom:1px solid var(--rule);transition:color .26s ease,border-color .26s ease;word-break:break-word;}
.crow__v a:hover,.crow__v a:focus-visible{color:var(--terra);border-bottom-color:var(--terra);}
.crow__n{margin-top:.7em;font-family:var(--sans);font-size:.93rem;color:var(--ink-3);line-height:1.68;max-width:46ch;}
.cnote{
  background:var(--paper-warm);border:1px solid var(--rule);
  padding:clamp(22px,3vw,38px);
}
.cnote .tag{display:block;color:var(--terra);margin-bottom:1em;}
.cnote p{color:var(--ink-2);max-width:56ch;line-height:1.72;}

/* ---------- GATE (index.html) ---------- */
.gate{
  min-height:100vh;min-height:100dvh;
  display:flex;align-items:center;justify-content:center;
  padding:28px;background:var(--forest);
}
.gate__box{width:100%;max-width:420px;}
.gate__lbl{
  display:block;font-family:var(--mono);font-size:.7rem;font-weight:500;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-on-dark);
  margin-bottom:1.4em;
}
.gate__field{
  display:block;width:100%;background:transparent;
  border:0;border-bottom:1px solid var(--rule-dark);
  color:var(--paper);font-family:var(--mono);font-size:1.1rem;
  letter-spacing:.32em;padding:16px 2px;min-height:56px;
  transition:border-color .28s ease;
}
.gate__field::placeholder{color:rgba(207,196,174,.42);letter-spacing:.32em;}
.gate__field:focus{outline:none;border-bottom-color:var(--gold-on-dark);}
.gate__field:focus-visible{outline:none;}
.gate__btn{
  margin-top:26px;width:100%;min-height:56px;
  display:inline-flex;align-items:center;justify-content:center;gap:.9em;
  border:1px solid var(--gold-on-dark);color:var(--forest);background:var(--gold-on-dark);
  font-family:var(--mono);font-size:.74rem;font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;
  transition:background .26s ease,color .26s ease;
}
.gate__btn:hover,.gate__btn:focus-visible{background:transparent;color:var(--gold-on-dark);}
.gate__msg{
  margin-top:20px;min-height:1.5em;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-on-dark);line-height:1.7;
}
.gate__msg[data-state="error"]{color:#F0A88F;}
.gate__box.is-shake{animation:gshake .42s ease;}
@keyframes gshake{
  0%,100%{transform:translateX(0);}
  22%{transform:translateX(-8px);}
  46%{transform:translateX(7px);}
  70%{transform:translateX(-4px);}
}
@media (prefers-reduced-motion:reduce){.gate__box.is-shake{animation:none;}}

/* opener plates sit as a reference, not a hero image */
.opener .plate{max-width:360px;margin-left:auto;}
.opener .plate--terra{max-width:290px;}
