/* ─────────────────────────────────────────────────────────────────────────
   EUGateway — long-scroll landing
   Two directions selected via [data-direction="A"|"B"] on <html>.
   A = "Hellenic Editorial" — warm cream, terracotta, olive, Cormorant + Manrope
   B = "Atlas"              — parchment, verdigris, copper, Spectral + Plex
   ───────────────────────────────────────────────────────────────────────── */

:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --space-11: 160px;
  --density: 1;
  --gutter: 32px;
  --max-w: 1320px;
}

/* ── Direction A: Hellenic Editorial ───────────────────────────────────── */
html[data-direction="A"] {
  --bg: #f3ede1;
  --bg-deep: #ebe2d0;
  --paper: #fbf7ee;
  --ink: #1f1d18;
  --ink-2: #4a463c;
  --ink-3: #847f72;
  --rule: #d6cdb9;
  --accent: #b75c3c;          /* terracotta */
  --accent-deep: #8a4126;
  --accent-2: #6f7a4a;        /* olive */
  --display: "Cormorant Garamond", "EB Garamond", Georgia, serif;
  --display-w: 500;
  --display-italic: italic;
  --body: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --tracking-eyebrow: 0.18em;
  --tracking-display: -0.01em;
  --display-line: 0.95;
  --paper-tex: none;
}
html[data-direction="A"][data-palette="A2"] {
  --bg: #efeae0;
  --bg-deep: #e2dcce;
  --paper: #f8f4eb;
  --accent: #2f5a6e;          /* aegean teal */
  --accent-deep: #1d3e4f;
  --accent-2: #c08a3a;        /* sun ochre */
}

/* ── Direction B: Atlas ────────────────────────────────────────────────── */
html[data-direction="B"] {
  --bg: #ece4d2;
  --bg-deep: #ddd2bb;
  --paper: #f1ebda;
  --ink: #15171c;
  --ink-2: #3a3c43;
  --ink-3: #6c6b62;
  --rule: #c5b994;
  --accent: #4f7d6a;          /* verdigris */
  --accent-deep: #2f5446;
  --accent-2: #b06a3b;        /* copper */
  --display: "Spectral", "Cormorant Garamond", Georgia, serif;
  --display-w: 400;
  --display-italic: italic;
  --body: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
  --tracking-eyebrow: 0.22em;
  --tracking-display: -0.005em;
  --display-line: 1;
  /* subtle map graticule on the page background */
  --paper-tex:
    repeating-linear-gradient(0deg, rgba(21,23,28,.045) 0 1px, transparent 1px 80px),
    repeating-linear-gradient(90deg, rgba(21,23,28,.045) 0 1px, transparent 1px 80px);
}
html[data-direction="B"][data-palette="B2"] {
  --bg: #e8e3d6;
  --bg-deep: #d8d0bd;
  --accent: #2c2f36;          /* graphite */
  --accent-deep: #14161b;
  --accent-2: #c9914a;        /* warm ochre */
}

/* ── Density modifiers ─────────────────────────────────────────────────── */
html[data-density="compact"]  { --density: 0.75; }
html[data-density="regular"]  { --density: 1; }
html[data-density="airy"]     { --density: 1.25; }

/* ── Base ──────────────────────────────────────────────────────────────── */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  background-image: var(--paper-tex);
  background-attachment: fixed;
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "ss01", "kern";
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }

.wrap {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* ── Type system ───────────────────────────────────────────────────────── */
.eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--ink-3);
}
.eyebrow .num {
  display: inline-block;
  margin-right: 14px;
  color: var(--accent);
}
.display-xxl, .display-xl, .display-lg, .display-md {
  font-family: var(--display);
  font-weight: var(--display-w);
  letter-spacing: var(--tracking-display);
  line-height: var(--display-line);
  margin: 0;
  color: var(--ink);
  text-wrap: pretty;
}
.display-xxl { font-size: clamp(56px, 8.5vw, 132px); }
.display-xl  { font-size: clamp(44px, 5.6vw, 88px); }
.display-lg  { font-size: clamp(34px, 3.6vw, 56px); }
.display-md  { font-size: clamp(26px, 2.4vw, 36px); }
.display em, .italic { font-style: var(--display-italic); color: var(--accent); }

.lede { font-size: clamp(17px, 1.25vw, 19px); line-height: 1.55; max-width: 56ch; color: var(--ink-2); }
.body { font-size: 15.5px; color: var(--ink-2); line-height: 1.6; max-width: 60ch; }
.label { font-family: var(--mono); font-size: 11.5px; letter-spacing: .08em; color: var(--ink-3); text-transform: uppercase; }
.caption { font-family: var(--mono); font-size: 11px; color: var(--ink-3); letter-spacing: .04em; }
.rule { height: 1px; background: var(--rule); border: 0; margin: 0; }

/* ── Sections ──────────────────────────────────────────────────────────── */
section { padding: calc(var(--space-10) * var(--density)) 0; position: relative; }
section + section { border-top: 1px solid var(--rule); }
.section-head {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) 3fr;
  gap: var(--space-7);
  margin-bottom: calc(var(--space-9) * var(--density));
  align-items: end;
}
.section-head .meta { display: flex; flex-direction: column; gap: var(--space-3); }
.section-head h2 { max-width: 22ch; }
@media (max-width: 720px) {
  .section-head { grid-template-columns: 1fr; gap: var(--space-4); }
}

/* ── Top bar ───────────────────────────────────────────────────────────── */
.topbar {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px var(--gutter);
  background: color-mix(in oklab, var(--bg) 88%, transparent);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--rule);
}
.brand { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 22px; letter-spacing: -.01em; }
.brand .mark {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--ink); color: var(--paper);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size: 11px; letter-spacing: .04em;
}
.brand small { font-family: var(--mono); font-size: 10px; color: var(--ink-3); letter-spacing: .14em; text-transform: uppercase; margin-left: 6px; }
.nav { display: flex; align-items: center; gap: 28px; }
.nav a { font-size: 13.5px; color: var(--ink-2); position: relative; }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.nav a:hover::after { transform: scaleX(1); }
@media (max-width: 880px) { .nav .desk { display: none; } }

.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 20px; border-radius: 999px;
  font-size: 13.5px; font-weight: 500;
  border: 1px solid var(--ink);
  background: var(--ink); color: var(--paper);
  transition: transform .25s ease, background .25s ease;
}
.btn:hover { transform: translateY(-1px); background: var(--accent); border-color: var(--accent); }
.btn.ghost { background: transparent; color: var(--ink); }
.btn.ghost:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.btn.accent { background: var(--accent); border-color: var(--accent); color: var(--paper); }
.btn.accent:hover { background: var(--accent-deep); border-color: var(--accent-deep); }
.btn .arr { font-family: var(--mono); }

/* ── Hero ──────────────────────────────────────────────────────────────── */
.hero { padding: calc(var(--space-7) * var(--density)) 0 calc(var(--space-9) * var(--density)); }
.hero .wrap { display: grid; gap: var(--space-7); }

/* hero layout: editorial (full bleed image with overlay text) */
html[data-hero="editorial"] .hero .wrap {
  grid-template-columns: 1fr;
}
html[data-hero="editorial"] .hero-stage {
  position: relative; aspect-ratio: 16/9; min-height: 540px; overflow: hidden;
  border-radius: 4px;
}
html[data-hero="editorial"] .hero-stage img {
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.92) contrast(1.02);
}
html[data-hero="editorial"] .hero-stage::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.35) 55%, rgba(0,0,0,.72) 100%);
}
html[data-hero="editorial"] .hero-text {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 40px 48px;
  color: #faf6ec;
  text-shadow: 0 1px 24px rgba(0,0,0,.35);
}
html[data-hero="editorial"] .hero-text .display-xxl { color: #faf6ec; }
html[data-hero="editorial"] .hero-text .lede { color: rgba(250,246,236,.86); max-width: 50ch; }
html[data-hero="editorial"] .hero-meta {
  display: flex; gap: var(--space-6); align-items: end; justify-content: space-between;
  margin-top: var(--space-6);
}

/* hero layout: split (text left, vertical image right) */
html[data-hero="split"] .hero .wrap { grid-template-columns: 1.05fr 0.95fr; align-items: end; gap: var(--space-8); }
html[data-hero="split"] .hero-stage { position: relative; aspect-ratio: 4/5; overflow: hidden; }
html[data-hero="split"] .hero-stage img { width: 100%; height: 100%; object-fit: cover; }
html[data-hero="split"] .hero-text { padding-bottom: var(--space-4); }
html[data-hero="split"] .hero-text .display-xxl { font-size: clamp(48px, 6vw, 96px); }
html[data-hero="split"] .hero-meta {
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5);
  margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid var(--rule);
}
@media (max-width: 880px) {
  html[data-hero="split"] .hero .wrap { grid-template-columns: 1fr; }
}

.hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: var(--space-5); }
.hero-fact { display: flex; flex-direction: column; gap: 6px; }
.hero-fact .num { font-family: var(--display); font-size: 32px; line-height: 1; }
.hero-fact .lab { font-family: var(--mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); }

/* ── Map / coordinates ─────────────────────────────────────────────────── */
.atlas {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: var(--space-8);
  align-items: center;
}
.atlas-panel {
  position: relative;
  aspect-ratio: 5/4;
  background: var(--paper);
  border: 1px solid var(--rule);
  overflow: hidden;
}
.atlas-panel .grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(var(--rule) 1px, transparent 1px),
    linear-gradient(90deg, var(--rule) 1px, transparent 1px);
  background-size: 64px 64px;
  opacity: .5;
}
.atlas-panel .grid-fine {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(var(--rule) 1px, transparent 1px),
    linear-gradient(90deg, var(--rule) 1px, transparent 1px);
  background-size: 16px 16px;
  opacity: .25;
}
.atlas-panel svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.atlas-frame {
  position: absolute; inset: 12px;
  border: 1px solid var(--ink-3);
  pointer-events: none;
}
.atlas-corner { position: absolute; font-family: var(--mono); font-size: 10px; color: var(--ink-3); padding: 4px 6px; background: var(--paper); }
.atlas-corner.tl { top: 6px; left: 6px; }
.atlas-corner.tr { top: 6px; right: 6px; }
.atlas-corner.bl { bottom: 6px; left: 6px; }
.atlas-corner.br { bottom: 6px; right: 6px; }
.atlas-pin { position: absolute; transform: translate(-50%, -50%); }
.atlas-pin .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--accent); border: 2px solid var(--paper); box-shadow: 0 0 0 1px var(--accent); }
.atlas-pin .lbl {
  position: absolute; left: 14px; top: -2px; white-space: nowrap;
  font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: var(--ink);
  background: var(--paper); padding: 1px 6px; border: 1px solid var(--rule);
}
.atlas-pin .coord { font-size: 9.5px; color: var(--ink-3); display: block; }

.atlas-list { display: flex; flex-direction: column; gap: var(--space-3); }
.atlas-list .row {
  display: grid; grid-template-columns: 18px 1fr auto; gap: var(--space-4);
  padding: 14px 0; border-bottom: 1px solid var(--rule); align-items: baseline;
}
.atlas-list .row .ix { font-family: var(--mono); font-size: 11px; color: var(--accent); }
.atlas-list .row .name { font-family: var(--display); font-size: 22px; }
.atlas-list .row .coord { font-family: var(--mono); font-size: 11px; color: var(--ink-3); letter-spacing: .04em; }

@media (max-width: 880px) {
  .atlas { grid-template-columns: 1fr; }
}

/* ── Why grid ──────────────────────────────────────────────────────────── */
.why {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--rule);
}
.why .item {
  padding: calc(var(--space-7) * var(--density)) var(--space-6) calc(var(--space-7) * var(--density)) 0;
  border-bottom: 1px solid var(--rule);
  border-right: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: var(--space-3);
}
.why .item:nth-child(3n) { border-right: 0; padding-right: 0; }
.why .item:last-child { border-right: 0; }
.why .item h3 { font-family: var(--display); font-weight: var(--display-w); font-size: 24px; margin: 0; }
.why .item .body { font-size: 14.5px; }
.why .item .num { font-family: var(--mono); font-size: 11px; color: var(--accent); letter-spacing: .14em; }
@media (max-width: 880px) {
  .why { grid-template-columns: 1fr; }
  .why .item { border-right: 0; padding-right: 0; }
}

/* ── Programs ──────────────────────────────────────────────────────────── */
.programs { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.program {
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: var(--space-7) var(--space-6);
  display: flex; flex-direction: column; gap: var(--space-4);
  transition: transform .35s ease, box-shadow .35s ease;
  position: relative;
}
.program:hover { transform: translateY(-3px); box-shadow: 0 24px 48px -28px rgba(31,29,24,.25); }
.program .num { font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); letter-spacing: .14em; }
.program h3 { font-family: var(--display); font-weight: var(--display-w); font-size: clamp(28px, 2.4vw, 40px); margin: 0; }
.program .price {
  font-family: var(--display); font-size: 22px; padding-top: var(--space-4); margin-top: auto;
  border-top: 1px solid var(--rule); display: flex; justify-content: space-between; align-items: baseline;
}
.program .price small { font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.program ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.program li { font-size: 14px; color: var(--ink-2); display: flex; gap: 10px; }
.program li::before { content: "—"; color: var(--accent); flex-shrink: 0; }
.program a.cta { font-family: var(--mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); border-bottom: 1px solid var(--accent); padding-bottom: 2px; align-self: flex-start; }
@media (max-width: 880px) { .programs { grid-template-columns: 1fr; } }

/* ── Numbers strip ─────────────────────────────────────────────────────── */
.numbers {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
.numbers .stat { padding: var(--space-7) 0; border-right: 1px solid var(--rule); display: flex; flex-direction: column; gap: 6px; padding-right: var(--space-5); }
.numbers .stat:last-child { border-right: 0; }
.numbers .big { font-family: var(--display); font-weight: var(--display-w); font-size: clamp(40px, 4vw, 64px); line-height: 1; }
.numbers .big sup { font-size: 0.5em; vertical-align: super; color: var(--accent); }
.numbers .lab { font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
@media (max-width: 880px) { .numbers { grid-template-columns: repeat(2,1fr); } .numbers .stat:nth-child(2n){border-right:0;} }

/* ── Discover (photo grid) ─────────────────────────────────────────────── */
.discover { display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--space-4); }
.discover .col { display: flex; flex-direction: column; gap: var(--space-4); }
.discover .card { position: relative; overflow: hidden; }
.discover .card .img-wrap { aspect-ratio: 4/3; overflow: hidden; }
.discover .card.tall .img-wrap { aspect-ratio: 3/4; }
.discover .card.wide .img-wrap { aspect-ratio: 16/9; }
.discover .card img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.2s cubic-bezier(.2,.7,.2,1);
  filter: saturate(0.95);
}
.discover .card:hover img { transform: scale(1.04); }
.discover .card .meta {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 14px 4px 0; gap: var(--space-3);
}
.discover .card h3 { font-family: var(--display); font-weight: var(--display-w); font-size: 22px; margin: 0; }
.discover .card .coord { font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); letter-spacing: .04em; }
.discover .card .desc { font-size: 13.5px; color: var(--ink-2); margin-top: 6px; max-width: 38ch; }
@media (max-width: 880px) { .discover { grid-template-columns: 1fr; } }

/* ── Process ───────────────────────────────────────────────────────────── */
.process { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--rule); }
.process .step {
  padding: var(--space-7) var(--space-6) var(--space-7) 0;
  border-bottom: 1px solid var(--rule); border-right: 1px solid var(--rule);
  display: flex; flex-direction: column; gap: var(--space-3); position: relative;
}
.process .step:nth-child(3n) { border-right: 0; padding-right: 0; }
.process .step .step-num {
  font-family: var(--display); font-size: 56px; line-height: 1; color: var(--accent);
}
.process .step h3 { font-family: var(--display); font-weight: var(--display-w); font-size: 22px; margin: 0; }
.process .step .body { font-size: 14px; }
@media (max-width: 880px) { .process { grid-template-columns: 1fr; } .process .step { border-right: 0; padding-right: 0; } }

/* ── Consultation split ────────────────────────────────────────────────── */
.consult { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: stretch; }
.consult .col-img { position: relative; min-height: 480px; overflow: hidden; }
.consult .col-img img { width: 100%; height: 100%; object-fit: cover; }
.consult ul { list-style: none; padding: 0; margin: var(--space-5) 0 0; display: flex; flex-direction: column; gap: 0; }
.consult ul li { padding: 18px 0; border-bottom: 1px solid var(--rule); display: grid; grid-template-columns: 24px 1fr; gap: 18px; align-items: baseline; }
.consult ul li .ix { font-family: var(--mono); font-size: 11px; color: var(--accent); }
.consult ul li b { font-family: var(--display); font-weight: var(--display-w); font-size: 18px; display: block; margin-bottom: 4px; }
.consult ul li span.body { font-size: 14px; display: block; max-width: 52ch; }
@media (max-width: 880px) { .consult { grid-template-columns: 1fr; } .consult .col-img { min-height: 360px; } }

/* ── Two audiences ─────────────────────────────────────────────────────── */
.audiences { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--rule); }
.audiences .col {
  padding: var(--space-8) var(--space-7);
  display: flex; flex-direction: column; gap: var(--space-4);
  border-right: 1px solid var(--rule);
}
.audiences .col:last-child { border-right: 0; }
.audiences .col h3 { font-family: var(--display); font-weight: var(--display-w); font-size: clamp(28px, 2.4vw, 38px); margin: 0; }
.audiences .col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.audiences .col li { font-size: 14.5px; color: var(--ink-2); display: flex; gap: 12px; }
.audiences .col li::before { content: "→"; color: var(--accent); font-family: var(--mono); }
@media (max-width: 720px) { .audiences { grid-template-columns: 1fr; } .audiences .col { border-right: 0; border-bottom: 1px solid var(--rule); } .audiences .col:last-child { border-bottom: 0; } }

/* ── Testimonials ──────────────────────────────────────────────────────── */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6); }
.quote {
  display: flex; flex-direction: column; gap: var(--space-4);
  padding: var(--space-6) 0;
}
.quote .mark { font-family: var(--display); font-size: 64px; color: var(--accent); line-height: 0.6; }
.quote p { font-family: var(--display); font-weight: var(--display-w); font-size: 22px; line-height: 1.4; margin: 0; color: var(--ink); }
.quote .who { display: flex; flex-direction: column; gap: 4px; padding-top: var(--space-4); border-top: 1px solid var(--rule); }
.quote .who b { font-size: 14px; }
.quote .who span { font-family: var(--mono); font-size: 11px; letter-spacing: .04em; color: var(--ink-3); }
@media (max-width: 880px) { .quotes { grid-template-columns: 1fr; } }

/* ── Final CTA ─────────────────────────────────────────────────────────── */
.final {
  background: var(--ink);
  color: var(--paper);
  padding: calc(var(--space-10) * var(--density)) 0;
  position: relative;
  overflow: hidden;
}
html[data-direction="B"] .final {
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 80px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 80px),
    var(--ink);
}
.final .wrap { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--space-8); align-items: end; }
.final h2 { font-family: var(--display); font-weight: var(--display-w); font-size: clamp(44px, 5.6vw, 96px); line-height: 1; margin: 0; color: var(--paper); max-width: 14ch; }
.final h2 em { font-style: var(--display-italic); color: var(--accent-2); }
.final .body { color: rgba(250,246,236,.7); }
.final .btn { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.final .btn.ghost { background: transparent; color: var(--paper); border-color: rgba(250,246,236,.4); }
.final .btn:hover { background: var(--accent); color: var(--paper); border-color: var(--accent); }
.final .ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: var(--space-5); }
.final .meta { display: flex; flex-direction: column; gap: 12px; padding-top: var(--space-5); border-top: 1px solid rgba(255,255,255,.15); }
.final .meta .row { display: flex; justify-content: space-between; gap: var(--space-4); font-family: var(--mono); font-size: 12px; color: rgba(250,246,236,.55); letter-spacing: .04em; }
.final .meta .row span:last-child { color: var(--paper); }
@media (max-width: 880px) { .final .wrap { grid-template-columns: 1fr; } }

/* ── Footer ────────────────────────────────────────────────────────────── */
footer.foot { padding: var(--space-7) 0 var(--space-6); border-top: 1px solid var(--rule); }
footer.foot .wrap { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: var(--space-6); }
footer.foot h4 { font-family: var(--mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 16px; font-weight: 500; }
footer.foot ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
footer.foot a { font-size: 14px; color: var(--ink-2); }
footer.foot a:hover { color: var(--accent); }
footer.foot .legal { padding-top: var(--space-5); margin-top: var(--space-6); border-top: 1px solid var(--rule); display: flex; justify-content: space-between; font-family: var(--mono); font-size: 11px; color: var(--ink-3); letter-spacing: .04em; }
@media (max-width: 880px) { footer.foot .wrap { grid-template-columns: 1fr 1fr; } }

/* ── Direction-A specific accents ──────────────────────────────────────── */
html[data-direction="A"] .program:first-child { background: var(--bg-deep); }
html[data-direction="A"] .quote .mark { font-style: italic; }

/* ── Direction-B specific accents (Atlas: numeric stamps) ──────────────── */
html[data-direction="B"] .section-head .meta::before {
  content: "§ " attr(data-sect);
  font-family: var(--mono); font-size: 10.5px; color: var(--accent);
  letter-spacing: .14em;
}
html[data-direction="B"] .program {
  background: var(--paper);
  border: 1px solid var(--rule);
}
html[data-direction="B"] .program::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: var(--accent);
  opacity: .85;
}
html[data-direction="B"] .topbar { border-bottom-color: var(--ink-3); }
html[data-direction="B"] .brand .mark { background: var(--accent); }

/* ── Subtle reveal-on-load motion ──────────────────────────────────────── */
.reveal { opacity: 0; transform: translateY(14px); transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity: 1; transform: none; }
