/* ============================================================
   AFTER THE SILENCE — stylesheet
   Editorial / investigative-archive design system
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  /* -- palette -- */
  --ink:        #131110;
  --ink-soft:   #1c1917;
  --paper:      #ece5d8;
  --paper-dim:  #b9b0a0;
  --paper-faint:#8a8175;
  --crimson:    #8f2f2c;
  --crimson-br: #b23e39;
  --gold:       #a9873f;
  --rule:       #3c3733;
  --rule-lite:  #2a2623;
  --ok:         #5f7a4f;
  --warn:       #a9873f;
  --fail:       #8f2f2c;

  /* -- light reading mode -- */
  --lp-ink:     #ece5d8;
  --lp-paper:   #f7f4ec;
  --lp-paper2:  #ece5d8;
  --lp-rule:    #d3cabb;

  --serif: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --sans:  'IBM Plex Sans', -apple-system, 'Segoe UI', sans-serif;
  --mono:  'IBM Plex Mono', ui-monospace, monospace;

  --max: 1180px;
  --edge: clamp(20px, 5vw, 64px);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

.hero-svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  opacity: 0.4;
  pointer-events: none;
}
.hero {
  position: relative;
  overflow: hidden;
}

body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

body.light{
  background:var(--lp-paper);
  color:var(--ink-soft);
}
body.light .rule{ border-color:var(--lp-rule) !important; }

img{ max-width:100%; display:block; }
a{ color:inherit; }
::selection{ background:var(--crimson); color:var(--paper); }

.wrap{ max-width:var(--max); margin:0 auto; padding-left:var(--edge); padding-right:var(--edge); }
.rule{ border:none; border-top:1px solid var(--rule); margin:0; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
a.skip-link{
  position:absolute; left:-999px; top:0; background:var(--crimson); color:#fff;
  padding:12px 18px; z-index:999; font-family:var(--sans); font-weight:600;
}
a.skip-link:focus{ left:12px; top:12px; }

:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; margin:0; letter-spacing:-0.01em; }

.eyebrow{
  font-family:var(--mono); font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold); display:flex; align-items:center; gap:10px;
}
.eyebrow::before{ content:''; width:22px; height:1px; background:var(--gold); }

/* ================= NAV ================= */
header.site-nav{
  position:sticky; top:0; z-index:80;
  background:rgba(19,17,16,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule);
}
body.light header.site-nav{ background:rgba(247,244,236,0.92); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; padding:16px var(--edge); max-width:var(--max); margin:0 auto; gap:24px; }
.brand{ font-family:var(--serif); font-size:1.15rem; font-weight:600; letter-spacing:0.01em; white-space:nowrap; }
.brand span{ color:var(--crimson); }
nav.links{ display:flex; gap:26px; font-size:0.9rem; }
nav.links a{ text-decoration:none; color:var(--paper-dim); border-bottom:1px solid transparent; padding-bottom:2px; transition:color .15s, border-color .15s; }
body.light nav.links a{ color:#5a5348; }
nav.links a:hover, nav.links a:focus-visible{ color:var(--paper); border-color:var(--crimson); }
body.light nav.links a:hover{ color:var(--ink-soft); }
.nav-actions{ display:flex; align-items:center; gap:14px; }
.btn-explore{
  font-family:var(--mono); font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink); background:var(--gold); padding:9px 16px; text-decoration:none; white-space:nowrap;
  border:1px solid var(--gold);
}
.btn-explore:hover{ background:transparent; color:var(--gold); }
.mode-toggle, .hamburger{
  background:none; border:1px solid var(--rule); color:inherit; font-family:var(--mono); font-size:0.72rem;
  padding:8px 10px; cursor:pointer; letter-spacing:0.06em;
}
.hamburger{ display:none; }
.mode-toggle:hover{ border-color:var(--gold); color:var(--gold); }

@media (max-width:920px){
  nav.links{ display:none; }
  .hamburger{ display:inline-block; }
  .btn-explore{ display:none; }
}
#mobile-menu{
  display:none; flex-direction:column; padding:10px var(--edge) 22px; gap:2px;
  background:var(--ink-soft); border-bottom:1px solid var(--rule);
}
body.light #mobile-menu{ background:var(--lp-paper2); }
#mobile-menu.open{ display:flex; }
#mobile-menu a{ text-decoration:none; color:var(--paper-dim); padding:11px 4px; border-top:1px solid var(--rule-lite); font-size:0.95rem; }
body.light #mobile-menu a{ color:#5a5348; border-top-color:var(--lp-rule); }

/* ================= HERO ================= */
.hero{ padding:96px var(--edge) 70px; max-width:var(--max); margin:0 auto; }
.hero .eyebrow{ margin-bottom:26px; }
.hero h1{
  font-size:clamp(2.2rem, 5.6vw, 4.4rem); line-height:1.06; max-width:16ch; font-weight:500;
}
.hero .lede{
  margin-top:28px; max-width:56ch; font-size:1.08rem; color:var(--paper-dim); font-weight:300;
}
body.light .hero .lede{ color:#5a5348; }
.hero .lede + .lede{ margin-top:14px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:38px; }
.btn{
  font-family:var(--sans); font-size:0.92rem; font-weight:600; padding:14px 24px; text-decoration:none;
  border:1px solid var(--paper); cursor:pointer; background:none; color:var(--paper);
}
body.light .btn{ border-color:var(--ink-soft); color:var(--ink-soft); }
.btn:hover{ background:var(--paper); color:var(--ink); }
body.light .btn:hover{ background:var(--ink-soft); color:var(--lp-paper); }
.btn.primary{ background:var(--crimson); border-color:var(--crimson); color:#fff; }
.btn.primary:hover{ background:transparent; color:var(--crimson-br); }

.hero-strip{
  margin-top:64px; display:flex; flex-wrap:wrap; gap:0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
}
.hero-strip span{
  font-family:var(--mono); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--paper-faint);
  padding:16px 22px 16px 0; margin-right:22px; border-right:1px solid var(--rule);
}
.hero-strip span:last-child{ border-right:none; }

/* content warning */
.warning{
  max-width:var(--max); margin:0 auto var(--edge); padding:0 var(--edge);
}
.warning .box{
  border:1px solid var(--rule); border-left:3px solid var(--crimson); padding:20px 24px;
  font-size:0.92rem; color:var(--paper-dim); max-width:80ch;
}
body.light .warning .box{ color:#5a5348; }
.warning strong{ color:var(--paper); font-weight:600; }
body.light .warning strong{ color:var(--ink-soft); }

/* ================= SECTION shell ================= */
section{ padding:90px var(--edge); }
.section-inner{ max-width:var(--max); margin:0 auto; }
.section-head{ margin-bottom:48px; max-width:70ch; }
.section-head h2{ font-size:clamp(1.7rem,3.4vw,2.6rem); margin-top:16px; }
.section-head p{ margin-top:16px; color:var(--paper-dim); font-size:1rem; max-width:60ch; }
body.light .section-head p{ color:#5a5348; }
.on-rule{ background:var(--ink-soft); }
body.light .on-rule{ background:var(--lp-paper2); }

/* ================= CENTERPIECES ================= */
.centerpiece{
  border-top:1px solid var(--rule); padding-top:64px; margin-top:64px;
}
.centerpiece:first-of-type{ border-top:none; margin-top:0; padding-top:0; }
.cp-head{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; align-items:flex-end; margin-bottom:34px; }
.cp-kicker{ font-family:var(--mono); font-size:0.75rem; color:var(--gold); letter-spacing:0.1em; }
.cp-head h3{ font-size:clamp(2rem,4.4vw,3.4rem); margin-top:10px; }
.cp-years{ font-family:var(--mono); font-size:0.85rem; color:var(--paper-faint); text-align:right; white-space:nowrap; }

.cp-statement{
  font-family:var(--serif); font-size:clamp(1.3rem,2.4vw,1.9rem); line-height:1.4; font-weight:400;
  max-width:34ch; padding:6px 0 6px 26px; border-left:2px solid var(--crimson); margin-bottom:52px; color:var(--paper);
}
body.light .cp-statement{ color:var(--ink-soft); }

.cp-block{ display:grid; grid-template-columns:220px 1fr; gap:44px; padding:38px 0; border-top:1px solid var(--rule); }
.cp-block:first-of-type{ border-top:none; }
.cp-block h4{ font-size:1.2rem; }
.cp-block-num{ font-family:var(--mono); font-size:0.75rem; color:var(--paper-faint); display:block; margin-bottom:8px; }
.cp-block-body p{ max-width:66ch; color:var(--paper-dim); margin:0 0 14px; }
body.light .cp-block-body p{ color:#4c4638; }
.cp-block-body p:last-child{ margin-bottom:0; }
@media (max-width:760px){ .cp-block{ grid-template-columns:1fr; gap:12px; } }

.tag-row{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }
.tag{
  font-family:var(--mono); font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase;
  padding:5px 10px; border:1px solid var(--rule); color:var(--paper-dim); white-space:nowrap; cursor:help;
}
body.light .tag{ color:#5a5348; }
.tag.verified{ border-color:var(--ok); color:var(--ok); }
.tag.court{ border-color:var(--gold); color:var(--gold); }
.tag.disputed, .tag.alleged{ border-color:var(--crimson); color:var(--crimson-br); }
.tag.ongoing{ border-color:var(--paper-faint); }

.dispute-box{
  border:1px solid var(--rule); background:var(--ink-soft); padding:22px 24px; margin:20px 0; max-width:70ch;
}
body.light .dispute-box{ background:var(--lp-paper2); }
.dispute-box .lbl{ font-family:var(--mono); font-size:0.7rem; letter-spacing:0.1em; color:var(--crimson-br); margin-bottom:10px; }
.dispute-box p{ margin:0 0 10px; color:var(--paper-dim); }
body.light .dispute-box p{ color:#4c4638; }
.dispute-box p:last-child{ margin:0; }

.pull-box{
  font-family:var(--serif); font-size:1.3rem; font-style:italic; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding:26px 0; max-width:60ch; margin:30px 0;
}

.chip-flow{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:24px 0; }
.chip-flow .chip{ font-family:var(--mono); font-size:0.75rem; letter-spacing:0.05em; padding:9px 14px; border:1px solid var(--rule); color:var(--paper-dim); }
body.light .chip-flow .chip{ color:#4c4638; }
.chip-flow .arrow{ color:var(--paper-faint); }

.legacy-words{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.legacy-words span{ font-family:var(--mono); font-size:0.78rem; padding:8px 14px; border:1px solid var(--gold); color:var(--gold); letter-spacing:0.04em; }

/* Nirbhaya before/after */
.ba-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:28px; }
@media (max-width:720px){ .ba-grid{ grid-template-columns:1fr; } }
.ba-col{ border:1px solid var(--rule); padding:24px; }
.ba-col h5{ font-family:var(--mono); font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--paper-faint); margin-bottom:16px; }
.ba-col ul{ margin:0; padding:0; list-style:none; }
.ba-col li{ padding:9px 0; border-top:1px solid var(--rule-lite); color:var(--paper-dim); font-size:0.94rem; }
body.light .ba-col li{ color:#4c4638; }
.ba-col li:first-child{ border-top:none; }

.change-grid{ display:flex; flex-wrap:wrap; gap:10px; margin:26px 0; }
.change-grid span{ font-family:var(--mono); font-size:0.72rem; letter-spacing:0.06em; padding:9px 14px; border:1px solid var(--rule); }

/* status ribbon for ongoing case */
.status-ribbon{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:0.72rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--crimson-br); border:1px solid var(--crimson); padding:8px 14px; margin-bottom:22px;
}
.status-ribbon::before{ content:''; width:7px; height:7px; background:var(--crimson-br); border-radius:50%; animation:pulse 1.8s infinite; }
@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:0.3;} }
@media (prefers-reduced-motion:reduce){ .status-ribbon::before{ animation:none; } }

/* ================= FILTER + GRID (archive) ================= */
.archive-controls{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-bottom:38px; }
.search-box{
  flex:1 1 260px; display:flex; align-items:center; border:1px solid var(--rule); padding:0 14px;
}
.search-box input{
  flex:1; background:none; border:none; color:inherit; font-family:var(--sans); font-size:0.95rem; padding:13px 8px; outline:none;
}
.search-box input::placeholder{ color:var(--paper-faint); }
.filter-select{
  background:var(--ink); color:var(--paper); border:1px solid var(--rule); font-family:var(--sans); font-size:0.88rem; padding:12px 10px;
}
body.light .filter-select{ background:var(--lp-paper); color:var(--ink-soft); }
.filter-count{ font-family:var(--mono); font-size:0.75rem; color:var(--paper-faint); margin-left:auto; }

.case-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); }
.case-card{
  background:var(--ink); padding:26px 24px; cursor:pointer; text-align:left; border:none; color:inherit; font-family:inherit;
  display:flex; flex-direction:column; gap:12px; min-height:190px;
}
body.light .case-card{ background:var(--lp-paper); }
.case-card:hover{ background:var(--ink-soft); }
body.light .case-card:hover{ background:var(--lp-paper2); }
.case-card .year{ font-family:var(--mono); font-size:0.75rem; color:var(--gold); }
.case-card h3{ font-family:var(--serif); font-size:1.22rem; font-weight:500; line-height:1.3; }
.case-card .loc{ font-size:0.84rem; color:var(--paper-faint); }
.case-card .desc{ font-size:0.87rem; color:var(--paper-dim); flex:1; }
body.light .case-card .desc{ color:#4c4638; }
.case-card .foot{ display:flex; justify-content:space-between; align-items:center; margin-top:auto; }
.status-pill{ font-family:var(--mono); font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; padding:4px 9px; border:1px solid var(--rule); }
.status-pill.convicted{ border-color:var(--ok); color:var(--ok); }
.status-pill.ongoing, .status-pill.investigation, .status-pill.trial, .status-pill.appeal{ border-color:var(--gold); color:var(--gold); }
.status-pill.acquitted{ border-color:var(--paper-faint); color:var(--paper-faint); }
.status-pill.landmark{ border-color:var(--crimson); color:var(--crimson-br); }
.empty-state{ padding:60px 20px; text-align:center; color:var(--paper-faint); font-family:var(--mono); font-size:0.85rem; grid-column:1/-1; background:var(--ink); }
body.light .empty-state{ background:var(--lp-paper); }

/* ================= MODAL ================= */
.modal-overlay{
  position:fixed; inset:0; background:rgba(8,7,6,0.86); z-index:200; display:none; align-items:flex-start; justify-content:center;
  overflow-y:auto; padding:40px 16px;
}
.modal-overlay.open{ display:flex; }
.modal{
  background:var(--ink); border:1px solid var(--rule); max-width:840px; width:100%; margin:auto; padding:0 0 60px;
}
body.light .modal{ background:var(--lp-paper); }
.modal-top{ display:flex; justify-content:space-between; align-items:flex-start; padding:26px 34px; border-bottom:1px solid var(--rule); position:sticky; top:0; background:var(--ink); z-index:2; }
body.light .modal-top{ background:var(--lp-paper); }
.modal-close{ background:none; border:1px solid var(--rule); color:inherit; font-family:var(--mono); font-size:0.85rem; padding:8px 12px; cursor:pointer; }
.modal-close:hover{ border-color:var(--crimson); color:var(--crimson-br); }
.modal-body{ padding:34px; }
.modal-body h2{ font-size:clamp(1.6rem,3.4vw,2.2rem); margin-bottom:6px; }
.modal-meta{ font-family:var(--mono); font-size:0.78rem; color:var(--paper-faint); margin-bottom:22px; }
.modal-section{ border-top:1px solid var(--rule); padding:24px 0; }
.modal-section:first-of-type{ border-top:none; }
.modal-section h4{ font-size:0.95rem; font-family:var(--mono); letter-spacing:0.05em; text-transform:uppercase; color:var(--gold); margin-bottom:12px; }
.modal-section p{ color:var(--paper-dim); margin:0; font-size:0.95rem; }
body.light .modal-section p{ color:#4c4638; }
.modal-sources{ font-size:0.85rem; color:var(--paper-faint); }
.modal-sources li{ margin-bottom:6px; }

/* ================= TIMELINE ================= */
.timeline{ position:relative; margin-top:20px; padding-left:26px; border-left:1px solid var(--rule); }
.tl-node{ position:relative; padding:0 0 46px 30px; }
.tl-node:last-child{ padding-bottom:4px; }
.tl-node::before{
  content:''; position:absolute; left:-42px; top:2px; width:11px; height:11px; border-radius:50%; background:var(--ink);
  border:2px solid var(--crimson);
}
body.light .tl-node::before{ background:var(--lp-paper); }
.tl-year{ font-family:var(--mono); color:var(--gold); font-size:0.85rem; }
.tl-node h4{ font-size:1.3rem; margin-top:6px; }
.tl-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:16px; }
@media (max-width:760px){ .tl-grid{ grid-template-columns:1fr; } }
.tl-grid div span{ display:block; font-family:var(--mono); font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--paper-faint); margin-bottom:6px; }
.tl-grid div p{ margin:0; font-size:0.9rem; color:var(--paper-dim); }
body.light .tl-grid div p{ color:#4c4638; }

/* ================= PROMISE / REALITY ================= */
.pr-table{ width:100%; border-collapse:collapse; margin-top:10px; }
.pr-table th{ text-align:left; font-family:var(--mono); font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--paper-faint); padding:12px 14px; border-bottom:1px solid var(--rule); }
.pr-table td{ padding:16px 14px; border-bottom:1px solid var(--rule-lite); font-size:0.9rem; vertical-align:top; color:var(--paper-dim); }
body.light .pr-table td{ color:#4c4638; border-bottom-color:var(--lp-rule); }
.pr-table tr:hover td{ background:var(--ink-soft); }
body.light .pr-table tr:hover td{ background:var(--lp-paper2); }
.status-mark{ font-family:var(--mono); font-weight:600; font-size:0.95rem; }
.status-mark.impl{ color:var(--ok); }
.status-mark.partial{ color:var(--warn); }
.status-mark.fail{ color:var(--fail); }
.status-mark.unknown{ color:var(--paper-faint); }
.pr-table .rname{ font-family:var(--serif); font-size:1.02rem; color:var(--paper); }
body.light .pr-table .rname{ color:var(--ink-soft); }
.pr-scroll{ overflow-x:auto; }

/* ================= ACCOUNTABILITY PANELS ================= */
.panel-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); margin-top:10px; }
.panel{ background:var(--ink); padding:26px 22px; }
body.light .panel{ background:var(--lp-paper); }
.panel h4{ font-size:1.1rem; margin-bottom:14px; }
.panel ul{ margin:0; padding:0; list-style:none; }
.panel li{ font-size:0.87rem; color:var(--paper-dim); padding:7px 0; border-top:1px solid var(--rule-lite); }
body.light .panel li{ color:#4c4638; }
.panel li:first-child{ border-top:none; }

/* ================= MEMORIAL ================= */
.memorial-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); margin-top:10px; }
.mem-card{ background:var(--ink); padding:24px; }
body.light .mem-card{ background:var(--lp-paper); }
.mem-card .yr{ font-family:var(--mono); font-size:0.72rem; color:var(--gold); }
.mem-card h4{ font-size:1.1rem; margin:8px 0; }
.mem-card p{ font-size:0.85rem; color:var(--paper-dim); margin:0; }
body.light .mem-card p{ color:#4c4638; }

/* ================= STATS ================= */
.stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); margin-top:10px; }
.stat{ background:var(--ink); padding:28px 24px; }
body.light .stat{ background:var(--lp-paper); }
.stat .num{ font-family:var(--serif); font-size:2.6rem; color:var(--paper); }
body.light .stat .num{ color:var(--ink-soft); }
.stat .lbl{ font-size:0.86rem; color:var(--paper-dim); margin-top:6px; }
body.light .stat .lbl{ color:#4c4638; }
.stat .src{ font-family:var(--mono); font-size:0.68rem; color:var(--paper-faint); margin-top:14px; }

/* ================= QUESTIONS ================= */
.q-list{ margin-top:10px; }
.q-item{ border-top:1px solid var(--rule); padding:26px 0; font-family:var(--serif); font-size:clamp(1.15rem,2.4vw,1.55rem); max-width:56ch; }
.q-item:last-child{ border-bottom:1px solid var(--rule); }

/* ================= SOURCES ================= */
.source-list{ margin-top:10px; }
.source-item{ border-top:1px solid var(--rule); padding:18px 0; display:grid; grid-template-columns:1fr auto; gap:10px; align-items:baseline; }
.source-item:last-child{ border-bottom:1px solid var(--rule); }
.source-item .t{ font-size:0.95rem; }
.source-item .o{ font-family:var(--mono); font-size:0.72rem; color:var(--paper-faint); }

/* ================= FINAL ================= */
.finale{ background:#0a0908; text-align:center; padding:130px var(--edge); }
.finale p{ font-family:var(--serif); font-size:clamp(1.4rem,3.6vw,2.4rem); margin:14px 0; color:var(--paper); }
.finale .big{ font-size:clamp(1.8rem,4.6vw,3.2rem); margin-top:40px; letter-spacing:0.01em; }
.finale .final-line{ margin-top:70px; font-family:var(--mono); font-size:0.9rem; letter-spacing:0.14em; color:var(--gold); line-height:2.2; }

footer{ background:#0a0908; border-top:1px solid var(--rule); padding:50px var(--edge) 40px; text-align:center; }
footer .brand{ font-size:1.3rem; }
footer p{ color:var(--paper-faint); font-size:0.85rem; margin-top:10px; }

/* back to top */
#back-top{
  position:fixed; bottom:24px; right:24px; z-index:60; background:var(--ink-soft); border:1px solid var(--rule); color:var(--paper);
  width:44px; height:44px; cursor:pointer; display:none; align-items:center; justify-content:center; font-size:1.1rem;
}
#back-top.show{ display:flex; }
#back-top:hover{ border-color:var(--gold); color:var(--gold); }

/* reveal-on-scroll (single orchestrated moment per section) */
.reveal{ opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

@media (max-width:640px){
  section{ padding:64px var(--edge); }
  .cp-head{ flex-direction:column; align-items:flex-start; }
}