/* The Geneva Papers — "The Archive" aesthetic, rich edition.
   Same skeleton as Speedmaster Gonzales™, different skin:
   slim topnav, Collector identity, feature pills, market cards,
   fixed "Manifest" ticker, Home-first footer. Desk: lamplit archive. */

:root {
  --paper: #E8E4C6;
  --paper-deep: #D8D4B0;
  --card: #F3F1DC;
  --ink: #1F241B;
  --ink-soft: #56604C;
  --wax: #2E4B3F;
  --wax-deep: #1E332A;
  --wax-soft: #4E6E5F;
  --brass: #A98A3D;
  --brass-deep: #84691F;
  --gold: #C9A227;
  --red: #8C2F28;
  --desk: #0C2436;
  --desk-deep: #050F18;
  --sea: #25617D;
  --sea-deep: #123A4E;
  --sea-glow: #3E8CA8;
  --sea-foam: #9FC2CC;
  --ice: #3E6E8E;
  --ice-deep: #26485E;
  --snow: #F7FBFE;
  --serif: "Playfair Display", Didot, "Bodoni MT", "Cochin", Georgia, serif;
  --sans: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { background: var(--desk-deep); }

body {
  font-family: var(--sans);
  color: var(--ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  padding-bottom: 76px; /* room for the fixed Manifest ticker */
}

/* ---- the desk: deep water, descending light (Ocean, the default room) ---- */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(1100px 520px at 50% -60px, rgba(159,212,232,.13), transparent 62%),
    radial-gradient(900px 700px at 85% 110%, rgba(0,0,0,.42), transparent 60%),
    repeating-linear-gradient(104deg, rgba(159,212,232,.050) 0 3px, transparent 3px 92px),
    repeating-linear-gradient(76deg, rgba(159,212,232,.032) 0 2px, transparent 2px 134px),
    linear-gradient(180deg, #14384E 0%, #0C2436 46%, #050F18 100%);
}

/* paper grain over everything */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}

/* ghost stencil markings on the desk */
.ghost {
  position: fixed;
  z-index: -1;
  font-family: var(--sans);
  font-weight: 800;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: #D9E2D4;
  opacity: .05;
  pointer-events: none;
  white-space: nowrap;
}
.ghost.g1 { top: 16%; left: -2%; font-size: 92px; transform: rotate(-14deg); }
.ghost.g2 { top: 52%; right: -4%; font-size: 76px; transform: rotate(9deg); }
.ghost.g3 { bottom: 12%; left: 4%; font-size: 64px; transform: rotate(-6deg); }

/* ---- slim topnav (mirrors SG's sg-topnav) ---- */
.gp-topnav {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 12px 30px;
  background: #1B140D;
  border-bottom: 2px solid var(--brass);
  box-shadow: 0 6px 24px rgba(0,0,0,.45);
}
.gp-brand {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 21px;
  color: var(--paper);
  text-decoration: none;
  letter-spacing: .02em;
  white-space: nowrap;
}
.gp-brand small { color: var(--brass); font-size: 11px; letter-spacing: .3em; display: block; font-family: var(--sans); font-weight: 700; }
.gp-navlinks { display: flex; gap: 4px; margin-left: auto; flex-wrap: wrap; }
.gp-navlinks a {
  color: #D9CDAE;
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 10px 14px;
}
.gp-navlinks a:hover { color: var(--gold); }
.gp-subscribe {
  background: linear-gradient(180deg, #D8B34A, #B08A24);
  color: #1B140D;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .24em;
  text-transform: uppercase;
  padding: 11px 22px;
  border-radius: 3px;
  white-space: nowrap;
  box-shadow: 0 2px 10px rgba(201,162,39,.35);
}
.gp-subscribe:hover { filter: brightness(1.08); }
.gp-theme {
  display: flex;
  align-items: stretch;
  background: transparent;
  border: 1px solid rgba(169,138,61,.5);
  border-radius: 20px;
  overflow: hidden;
  padding: 0;
}
.gp-theme button {
  background: transparent;
  border: 0;
  color: #D9CDAE;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 7px 10px;
  cursor: pointer;
  white-space: nowrap;
}
.gp-theme button + button { border-left: 1px solid rgba(169,138,61,.35); }
.gp-theme button:hover { color: var(--gold); }
.gp-theme button.on { background: rgba(201,162,39,.20); color: var(--gold); font-weight: 800; }
.gp-theme button:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
.gp-key {
  color: var(--brass);
  text-decoration: none;
  font-size: 20px;
  line-height: 1;
}
@media (max-width: 900px) {
  .gp-topnav { flex-wrap: wrap; gap: 12px; padding: 12px 18px; }
  .gp-navlinks { margin-left: 0; order: 3; width: 100%; }
}

/* ---- the paper sheet on the desk: sea-glass parchment, light from above ---- */
.page {
  max-width: 1080px;
  margin: 34px auto 0;
  padding: 0 44px 10px;
  background:
    linear-gradient(180deg, rgba(240,250,252,.45), transparent 130px),
    repeating-linear-gradient(105deg, rgba(37,97,125,.045) 0 2px, transparent 2px 110px),
    radial-gradient(620px 300px at 18% 8%, rgba(37,97,125,.08), transparent 62%),
    radial-gradient(520px 420px at 86% 58%, rgba(37,97,125,.06), transparent 60%),
    radial-gradient(700px 260px at 55% 96%, rgba(37,97,125,.07), transparent 65%),
    var(--paper);
  box-shadow: 0 40px 90px rgba(0,0,0,.55), 0 4px 18px rgba(0,0,0,.4);
  border-top: 1px solid rgba(255,255,255,.5);
  position: relative;
}

/* ---------- top dateline bar ---------- */
.dateline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0 12px;
  border-bottom: 1px solid var(--brass);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.dateline a { color: inherit; text-decoration: none; }

/* ---------- masthead ---------- */
.masthead { text-align: center; padding: 40px 0 6px; }
.masthead h1 {
  font-family: var(--serif);
  font-weight: 700;
  font-size: clamp(52px, 8vw, 96px);
  letter-spacing: .01em;
  line-height: 1.02;
  color: var(--ink);
  text-shadow: 0 2px 0 rgba(255,255,255,.55);
}
.endorsement {
  margin-top: 14px;
  font-size: 13px;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: var(--brass-deep);
  font-weight: 600;
}
.masthead .kicker-top {
  font-size: 12.5px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--brass-deep);
  font-weight: 700;
}
.rule-ornament {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 22px auto;
  max-width: 560px;
  color: var(--brass);
}
.rule-ornament::before, .rule-ornament::after {
  content: "";
  height: 1px;
  flex: 1;
  background: var(--brass);
}
.rule-ornament span { font-size: 13px; letter-spacing: .3em; }
.tagline {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(18px, 2.6vw, 26px);
  color: var(--ink);
  text-align: center;
  margin-bottom: 10px;
}

/* ---------- nav ---------- */
.nav {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  border-top: 1px solid var(--brass);
  border-bottom: 1px solid var(--brass);
  margin: 26px 0 0;
  padding: 0;
}
.nav a {
  font-size: 12.5px;
  letter-spacing: .28em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink);
  font-weight: 600;
  padding: 15px 22px;
}
.nav a:hover { color: var(--brass-deep); }
.nav a + a { border-left: 1px solid rgba(169,138,61,.45); }

/* ---------- The Collector identity (mirrors SG's identity block) ---------- */
.collector {
  display: flex;
  gap: 34px;
  align-items: center;
  margin: 46px 0 8px;
  padding: 30px 34px;
  background: var(--card);
  border: 1px solid var(--brass);
  box-shadow: 0 14px 34px rgba(60,42,12,.18), 0 2px 6px rgba(60,42,12,.12);
  position: relative;
}
.collector::before {
  content: "FILED BY";
  position: absolute;
  top: -11px;
  left: 30px;
  background: var(--ink);
  color: var(--paper);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .34em;
  padding: 4px 12px 4px 16px;
}
.collector-mark {
  width: 118px;
  height: 118px;
  flex: 0 0 auto;
  border: 3px double var(--wax-deep);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-weight: 700;
  font-size: 30px;
  color: var(--wax-deep);
  transform: rotate(-8deg);
  background: radial-gradient(circle at 35% 30%, #FFFBEF, #EAD9A8);
  box-shadow: inset 0 2px 8px rgba(60,42,12,.15);
}
.collector .brandline {
  font-size: 12px;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: var(--wax-deep);
  font-weight: 700;
}
.collector h2 {
  font-family: var(--serif);
  font-size: clamp(34px, 5vw, 54px);
  font-weight: 700;
  line-height: 1.05;
  margin: 6px 0 10px;
}
.collector .descriptor { color: var(--ink-soft); font-size: 15.5px; max-width: 62ch; }
.collector .creed {
  margin-top: 12px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 16.5px;
  color: var(--ink);
  border-left: 3px solid var(--wax);
  padding-left: 14px;
}
@media (max-width: 720px) { .collector { flex-direction: column; text-align: center; } .collector .creed { border-left: 0; padding-left: 0; } }

/* ---------- archive vista backdrop panel (mirrors SG's backdrop + note) ---------- */
.archive-vista {
  margin: 40px 0 6px;
  background:
    radial-gradient(700px 260px at 50% 0%, rgba(255,196,110,.14), transparent 65%),
    repeating-linear-gradient(91deg, rgba(0,0,0,.28) 0 3px, transparent 3px 110px),
    linear-gradient(180deg, #332817 0%, #211910 60%, #17110A 100%);
  border: 1px solid rgba(169,138,61,.55);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5), 0 16px 40px rgba(0,0,0,.35);
  padding: 52px 40px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.archive-vista::before {
  content: "PORT OF GENEVA \00b7\00b7 MANIFEST No. 047 \00b7\00b7 EXPEDITION CARGO";
  position: absolute;
  top: 18px; left: 0; right: 0;
  font-size: 11px; font-weight: 800; letter-spacing: .5em;
  color: rgba(232,217,176,.4);
}
.archive-vista::after {
  content: "HANDLE WITH CARE";
  position: absolute;
  bottom: 16px; left: 0; right: 0;
  font-size: 11px; font-weight: 800; letter-spacing: .5em;
  color: rgba(232,217,176,.28);
}
.archive-vista .vista-line1 {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 3vw, 30px);
  color: #F2E7C8;
  text-shadow: 0 2px 14px rgba(0,0,0,.7);
}
.archive-vista .vista-line2 {
  margin-top: 10px;
  font-size: 12px; letter-spacing: .4em; text-transform: uppercase;
  color: var(--brass);
  font-weight: 700;
}
.vista-note {
  text-align: center;
  font-size: 11.5px;
  color: var(--ink-soft);
  font-style: italic;
  margin: 10px 0 0;
}

/* ---------- feature pills (mirrors SG's feature-nav) ---------- */
.feature-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 34px 0 8px;
}
@media (max-width: 860px) { .feature-nav { grid-template-columns: repeat(2, 1fr); } }
.feature-btn {
  display: block;
  text-decoration: none;
  background: var(--card);
  border: 1px solid var(--brass);
  padding: 20px 18px;
  box-shadow: 0 8px 20px rgba(60,42,12,.14);
  transition: transform .15s ease, box-shadow .15s ease;
}
.feature-btn:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(60,42,12,.22); }
.feature-btn .feature-name {
  display: block;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
}
.feature-btn .feature-note {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--wax-deep);
  font-weight: 600;
}

/* ---------- kickers & headings ---------- */
.kicker {
  font-size: 12px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--wax-deep);
  font-weight: 700;
}
.section-head { text-align: center; margin: 60px 0 30px; }
.section-head h2 {
  font-family: var(--serif);
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 700;
  margin-top: 10px;
}

/* ---------- dossier cards ---------- */
.dossier {
  background: linear-gradient(180deg, #F7F5E2, var(--card) 90px);
  border: 1px solid var(--brass);
  outline: 1px solid rgba(169,138,61,.35);
  outline-offset: 5px;
  padding: 34px 38px;
  margin: 30px 0;
  position: relative;
  box-shadow: 0 18px 44px rgba(60,42,12,.20), 0 3px 10px rgba(60,42,12,.12);
}
.dossier-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-bottom: 1px solid var(--brass);
  padding-bottom: 12px;
  margin-bottom: 18px;
}
.dossier-no {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: .24em;
  text-transform: uppercase;
  font-weight: 600;
}
.dossier h3 {
  font-family: var(--serif);
  font-size: clamp(24px, 3.4vw, 36px);
  line-height: 1.25;
  font-weight: 700;
}
.dossier p { color: var(--ink-soft); margin-top: 12px; font-size: 15.5px; max-width: 62ch; }
.dossier.prose p { font-size: 16.5px; line-height: 1.7; max-width: 68ch; }
.dossier .meta {
  display: flex;
  gap: 26px;
  flex-wrap: wrap;
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.dossier .meta b { color: var(--ink); }

/* sample tag — never fabricate */
.sample-tag {
  display: inline-block;
  border: 1.5px solid var(--red);
  color: var(--red);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 5px 12px;
  margin-bottom: 14px;
  transform: rotate(-1.2deg);
  background: rgba(140,47,40,.06);
}
.sample-banner {
  border: 1.5px dashed var(--red);
  color: var(--red);
  text-align: center;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 14px 18px;
  margin: 26px 0;
  line-height: 1.8;
  background: rgba(140,47,40,.05);
}

/* ---------- stamp seals: crate stamp / port stamp / racing roundel ---------- */
.seal {
  width: 176px; height: 176px;
  border: 3px double var(--brass);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--brass-deep);
  transform: rotate(-7deg);
  padding: 18px;
  flex: 0 0 auto;
  background: radial-gradient(circle at 38% 32%, rgba(255,255,255,.75), transparent 55%);
  box-shadow: 0 10px 24px rgba(60,42,12,.20), inset 0 0 22px rgba(169,138,61,.18);
  position: relative;
}
.seal::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: .55;
}
.seal .seal-name {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.seal .seal-refs {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .08em;
  margin-top: 8px;
  line-height: 1.7;
}
.seal.red {
  border-color: var(--red);
  color: var(--red);
  transform: rotate(6deg);
  box-shadow: 0 10px 24px rgba(140,47,40,.25), inset 0 0 22px rgba(140,47,40,.16);
}
/* ---- green wax seal: the running stamp of the house ---- */
.seal.wax {
  border: 3px double var(--wax-deep);
  color: #EFE4C6;
  transform: rotate(6deg);
  background:
    radial-gradient(circle at 38% 30%, rgba(255,255,255,.30), transparent 52%),
    radial-gradient(circle at 64% 70%, rgba(0,0,0,.30), transparent 55%),
    radial-gradient(circle, #41635580 0%, transparent 70%),
    radial-gradient(circle, #3B5C4D 0%, #2E4B3F 58%, #20362C 100%);
  box-shadow:
    0 10px 24px rgba(30,51,42,.40),
    inset 0 2px 10px rgba(255,255,255,.20),
    inset 0 -8px 18px rgba(0,0,0,.30),
    inset 0 0 26px rgba(20,35,28,.35);
  text-shadow: 0 1px 4px rgba(0,0,0,.55);
}
.seal.wax::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(239,228,198,.65);
  border-radius: 50%;
  opacity: .8;
}
.seal.wax .seal-name { letter-spacing: .22em; }
.seal.wax .seal-refs { color: #E4D6AE; }
.seals-row {
  display: flex;
  justify-content: center;
  gap: 54px;
  flex-wrap: wrap;
  margin: 40px 0 20px;
}
.seal-caption {
  text-align: center;
  font-family: var(--serif);
  font-style: italic;
  color: var(--ink-soft);
  font-size: 15px;
  max-width: 60ch;
  margin: 6px auto 0;
}

/* ---------- market-analysis card row (mirrors SG's homepage cards) ---------- */
.market-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
  margin: 10px 0 20px;
}
@media (max-width: 820px) { .market-row { grid-template-columns: 1fr; } }
.market-card { margin: 0; }
.market-card h3 { font-size: clamp(22px, 3vw, 30px); }
.market-card .big-stat {
  font-family: var(--serif);
  font-size: 44px;
  font-weight: 700;
  margin: 10px 0 2px;
  color: var(--ink);
}
.market-card .stat-note {
  font-family: var(--mono);
  font-size: 11.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

/* ---------- reference library grid ---------- */
.ref-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin: 10px 0 30px;
}
@media (max-width: 820px) { .ref-grid { grid-template-columns: repeat(2, 1fr); } }
.ref-card {
  background: linear-gradient(180deg, #FBF3DA, var(--card) 70px);
  border: 1px solid var(--brass);
  padding: 26px 24px 22px;
  text-align: center;
  position: relative;
  box-shadow: 0 12px 28px rgba(60,42,12,.16), 0 2px 8px rgba(60,42,12,.10);
}
.ref-card .ref-no {
  font-family: var(--serif);
  font-size: 40px;
  font-weight: 700;
  letter-spacing: .02em;
}
.ref-card .ref-model {
  font-size: 11.5px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--wax-deep);
  font-weight: 700;
  margin-top: 6px;
}
.ref-card .ref-rule {
  width: 44px; height: 1px; background: var(--brass);
  margin: 14px auto;
}
.ref-card .ref-status {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14.5px;
  color: var(--ink-soft);
}
.ref-card .filed-under {
  margin-top: 12px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

/* ---------- report specifics ---------- */
.verdict {
  font-family: var(--serif);
  font-size: clamp(26px, 3.8vw, 42px);
  font-weight: 700;
  line-height: 1.28;
  text-align: center;
  max-width: 22ch;
  margin: 26px auto 8px;
}
.verdict-sub {
  text-align: center;
  font-family: var(--serif);
  font-style: italic;
  color: var(--ink-soft);
  font-size: 17px;
  margin-bottom: 6px;
}
.empty-state {
  text-align: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  color: var(--ink-soft);
  border-top: 1px solid var(--brass);
  border-bottom: 1px solid var(--brass);
  padding: 20px;
  margin: 34px 0;
  background: rgba(169,138,61,.06);
}
.listing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin: 8px 0 20px; }
@media (max-width: 820px) { .listing-grid { grid-template-columns: 1fr; } }
.listing { padding: 26px 28px; margin: 0; }
.listing .dossier-no { font-size: 12px; }
.listing h4 { font-family: var(--serif); font-size: 23px; margin: 10px 0 4px; }
.listing dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 14px;
  margin-top: 12px;
  font-size: 13.5px;
}
.listing dt {
  font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--wax-deep); font-weight: 700; align-self: center;
}
.listing dd { font-family: var(--mono); font-size: 13px; }
.stamp-row { display: flex; justify-content: center; margin: 30px 0 10px; }
.fineprint {
  font-size: 12px;
  color: var(--ink-soft);
  border: 1px solid rgba(169,138,61,.5);
  padding: 16px 20px;
  margin: 26px 0;
  line-height: 1.7;
  background: rgba(169,138,61,.06);
}
.fineprint b { letter-spacing: .2em; text-transform: uppercase; font-size: 10.5px; color: var(--wax-deep); }

/* ---------- buttons ---------- */
.btn {
  display: inline-block;
  margin-top: 20px;
  border: 1.5px solid var(--wax-deep);
  color: var(--ink);
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .3em;
  text-transform: uppercase;
  padding: 13px 30px;
  background: transparent;
}
.btn:hover { background: var(--wax-deep); color: var(--paper); border-color: var(--wax-deep); }

/* ---------- The Manifest ticker (mirrors SG's Launch Pad dock) ---------- */
.manifest {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  gap: 18px;
  background: #1B140D;
  border-top: 2px solid var(--brass);
  box-shadow: 0 -8px 30px rgba(0,0,0,.5);
  padding: 0 26px;
  min-height: 60px;
}
.manifest-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
}
.pulse-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--gold);
  animation: manifest-pulse 9s ease-in-out infinite;
}
@keyframes manifest-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  4% { opacity: .45; transform: scale(.8); }
  8% { opacity: 1; transform: scale(1.12); }
  12% { opacity: 1; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) { .pulse-dot { animation: none; } }
.manifest-viewport { overflow: hidden; flex: 1; }
.manifest-slide {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #EDE3C6;
  font-size: 14px;
  padding: 14px 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.manifest-slide strong { color: #FFF6DE; }
.manifest-slide a { color: var(--gold); text-decoration: none; font-weight: 700; }
.manifest-slide .m-kind {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .24em;
  text-transform: uppercase;
  border: 1px solid var(--brass);
  color: var(--brass);
  padding: 3px 10px;
  border-radius: 2px;
}
.manifest-slide .m-price { font-family: var(--mono); color: var(--gold); }
.manifest-slide > span:last-child {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.manifest-slide[hidden] { display: none; }

/* ---------- footer ---------- */
footer {
  margin-top: 80px;
  border-top: 2px solid var(--brass);
  padding: 34px 0 60px;
  text-align: center;
}
.foot-nav {
  display: flex;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 26px;
}
.foot-nav a {
  font-size: 11.5px;
  letter-spacing: .26em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink);
  font-weight: 700;
  padding: 8px 14px;
}
.foot-nav a:hover { color: var(--brass-deep); }
.foot-nav a + a { border-left: 1px solid rgba(169,138,61,.45); }
footer .foot-brand {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
}
footer .disclaimer {
  font-size: 12px;
  color: var(--ink-soft);
  max-width: 78ch;
  margin: 16px auto 0;
  line-height: 1.75;
}
footer .trademark {
  font-size: 11.5px;
  color: var(--ink-soft);
  max-width: 78ch;
  margin: 10px auto 0;
  line-height: 1.7;
}
footer .copyright {
  margin-top: 14px;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.hero-wrap { display: flex; gap: 40px; align-items: center; margin: 44px 0 10px; }
.hero-wrap .dossier { flex: 1; margin: 0; }
@media (max-width: 820px) { .hero-wrap { flex-direction: column; } }
.letter-wrap { display: flex; gap: 40px; align-items: center; margin: 30px 0 10px; }
.letter-wrap .dossier { flex: 1; margin: 0; }
@media (max-width: 820px) { .letter-wrap { flex-direction: column; } }

/* ---------- archive index page (mirrors SG's reports index bones) ---------- */
.article-top {
  display: flex; justify-content: space-between; align-items: center;
  margin: 34px 0 6px; font-size: 12px; font-weight: 700;
  letter-spacing: .24em; text-transform: uppercase;
}
.article-top a { color: var(--wax-deep); text-decoration: none; }
.article-top a:hover { color: var(--ink); }
.article-head { text-align: center; padding: 26px 0 8px; }
.article-number {
  font-family: var(--mono); font-size: 11.5px; letter-spacing: .3em;
  text-transform: uppercase; color: var(--wax-deep);
}
.article-head h1 {
  font-family: var(--serif); font-weight: 700;
  font-size: clamp(38px, 6vw, 64px); margin: 12px 0 10px;
}
.article-deck {
  font-family: var(--serif); font-style: italic; font-size: 17px;
  color: var(--ink-soft); max-width: 64ch; margin: 0 auto;
}
.article-meta {
  margin-top: 16px; font-size: 11.5px; letter-spacing: .26em;
  text-transform: uppercase; color: var(--ink-soft); font-weight: 700;
}
.series-nav { display: flex; flex-direction: column; gap: 26px; margin: 40px 0 10px; }
.series-link { text-decoration: none; color: inherit; display: block; }
.series-link:hover { border-color: var(--brass-deep); }
.series-link:hover h4 { color: var(--brass-deep); }
.series-deck { color: var(--ink-soft); font-size: 15.5px; max-width: 66ch; }

/* ============ NARRATIVE WORLDS — per-model atmosphere (2026-09-26) ============
   The Archive desk stays the unifier. Each model gets its own world:
   Submariner = The Depths (deep sea), Explorer = The Ascent (Everest),
   Daytona = 1968 (racing). Atmosphere, not clip-art. */
:root {
  --asphalt: #211B14;
  --asphalt-warm: #57432C;
  --race: #A6342A;
}

/* ---- homepage: three worlds ---- */
.worlds {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  margin: 34px 0 14px;
}
@media (max-width: 900px) { .worlds { grid-template-columns: 1fr; } }
.world {
  position: relative;
  min-height: 580px;
  overflow: hidden;
  border: 1px solid var(--brass);
  outline: 1px solid rgba(169,138,61,.35);
  outline-offset: 5px;
  box-shadow: 0 24px 60px rgba(0,0,0,.45), 0 4px 14px rgba(0,0,0,.3);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.world-atmo { position: absolute; inset: 0; }
.world-atmo svg { width: 100%; height: 100%; display: block; }
.world-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.28) 0%, transparent 32%, transparent 52%, rgba(0,0,0,.74) 100%);
}
.world-stamp { position: relative; margin-top: 46px; z-index: 2; }
.world-copy {
  position: relative; z-index: 2; margin-top: auto;
  text-align: center; padding: 26px 26px 36px; width: 100%;
}
.world-copy .kicker { color: var(--gold); }
.world-copy h3 {
  font-family: var(--serif); font-weight: 700;
  font-size: clamp(30px, 3vw, 42px); color: #FFF8E6;
  text-shadow: 0 2px 16px rgba(0,0,0,.85); margin: 8px 0 4px;
}
.world-refs {
  font-family: var(--mono); font-size: 12px; letter-spacing: .2em;
  color: rgba(255,248,230,.85);
}
.world-line {
  margin-top: 12px; font-family: var(--serif); font-style: italic;
  font-size: 15.5px; color: rgba(255,248,230,.94);
  text-shadow: 0 1px 10px rgba(0,0,0,.85);
}

/* ---- morphed stamps ---- */
/* porthole — Submariner / The Depths */
.porthole {
  width: 152px; height: 152px; border-radius: 50%;
  border: 9px solid var(--brass);
  background: radial-gradient(circle at 40% 35%, #2A5A78, #0B2438 70%);
  box-shadow: 0 12px 30px rgba(0,0,0,.55), inset 0 0 26px rgba(0,0,0,.6);
  position: relative;
  display: flex; align-items: center; justify-content: center;
  transform: rotate(-6deg);
}
.porthole::before {
  content: ""; position: absolute; inset: -20px; border-radius: 50%;
  background: repeating-conic-gradient(var(--brass-deep) 0deg 7deg, transparent 7deg 30deg);
  -webkit-mask: radial-gradient(circle, transparent 70%, #000 71%);
  mask: radial-gradient(circle, transparent 70%, #000 71%);
  opacity: .9;
}
.porthole::after {
  content: ""; position: absolute; inset: 12px; border-radius: 50%;
  border: 2px solid rgba(201,162,39,.65);
}
.porthole .ph-glass {
  width: 54px; height: 54px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(180,225,245,.85), rgba(46,110,140,.35) 70%);
  box-shadow: 0 0 18px rgba(140,200,230,.5);
}
/* summit seal — Explorer / The Ascent */
.summit-seal {
  width: 152px; height: 152px; border-radius: 50%;
  border: 3px double #DCEBF5;
  background: radial-gradient(circle at 40% 32%, #F4FAFF, #B9D6EC 60%, #7FA8C9);
  box-shadow: 0 12px 30px rgba(20,40,60,.5), inset 0 0 24px rgba(255,255,255,.5);
  display: flex; align-items: center; justify-content: center;
  transform: rotate(5deg); position: relative;
}
.summit-seal::before {
  content: ""; position: absolute; inset: 9px; border-radius: 50%;
  border: 1px solid rgba(34,55,78,.6);
}
.summit-seal svg { width: 76px; height: 76px; }
/* racing roundel — Daytona / 1968 */
.racing-roundel {
  width: 152px; height: 152px; border-radius: 50%;
  background: radial-gradient(circle, #F5F0E6 58%, transparent 59%);
  position: relative; display: flex; align-items: center; justify-content: center;
  transform: rotate(-4deg);
  filter: drop-shadow(0 12px 24px rgba(0,0,0,.5));
}
.racing-roundel::before {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: repeating-conic-gradient(#171310 0% 12.5%, #F5F0E6 0% 25%);
  -webkit-mask: radial-gradient(circle, transparent 60%, #000 61%);
  mask: radial-gradient(circle, transparent 60%, #000 61%);
}
.racing-roundel .rr-center {
  font-family: var(--serif); font-style: italic; font-weight: 700;
  font-size: 42px; color: var(--race);
}

/* ---- library: themed section headers ---- */
.lib-head {
  position: relative; overflow: hidden;
  padding: 56px 24px 46px; margin: 46px 0 6px;
  border: 1px solid var(--brass);
  box-shadow: 0 18px 44px rgba(0,0,0,.35);
  text-align: center;
}
.lib-head .kicker, .lib-head h2, .lib-head .lib-line { position: relative; z-index: 2; }
.lib-head h2 {
  font-family: var(--serif); font-weight: 700;
  font-size: clamp(30px, 4.4vw, 50px); color: #FFF8E6;
  text-shadow: 0 2px 16px rgba(0,0,0,.75); margin-top: 8px;
}
.lib-head .lib-line {
  font-family: var(--serif); font-style: italic; font-size: 16.5px;
  color: rgba(255,248,230,.92); margin-top: 10px;
  text-shadow: 0 1px 10px rgba(0,0,0,.7);
}
.lib-ghost {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-50%) rotate(-4deg);
  font-family: var(--sans); font-size: clamp(58px, 10vw, 118px); font-weight: 800;
  letter-spacing: .28em; text-transform: uppercase; white-space: nowrap;
  opacity: .10; color: #FFF8E6;
}
.lib-head-depths { background: linear-gradient(180deg, #16486B, #061423); }
.lib-head-ascent { background: linear-gradient(180deg, #EAF4FC 0%, #9CC3E0 55%, #3E5A76 100%); }
.lib-head-ascent h2, .lib-head-ascent .lib-line { color: #14273B; text-shadow: none; }
.lib-head-ascent .kicker { color: #7A2E26; }
.lib-head-ascent .lib-ghost { color: #14273B; }
.lib-head-1968 { background: linear-gradient(180deg, #6B4E2E, #211A11 72%); }

/* ---- reports index: triptych + themed sample strips ---- */
.triptych {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 14px; margin-top: 24px;
}
@media (max-width: 700px) { .triptych { grid-template-columns: 1fr; } }
.triptych-panel {
  position: relative; min-height: 172px; overflow: hidden;
  border: 1px solid rgba(169,138,61,.7);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 16px;
}
.triptych-panel .tp-name {
  font-size: 10.5px; font-weight: 800; letter-spacing: .3em;
  text-transform: uppercase; color: var(--gold);
}
.triptych-panel .tp-sub {
  font-family: var(--serif); font-size: 21px; font-weight: 700; color: #FFF8E6;
  text-shadow: 0 2px 10px rgba(0,0,0,.7);
}
.triptych-panel .tp-refs {
  font-family: var(--mono); font-size: 10px; letter-spacing: .14em;
  color: rgba(255,248,230,.8);
}
.tp-depths { background: linear-gradient(180deg, #16486B, #061423); }
.tp-ascent { background: linear-gradient(180deg, #DCEBF5, #5E7E9E); }
.tp-ascent .tp-sub, .tp-ascent .tp-refs { color: #14273B; text-shadow: none; }
.tp-ascent .tp-name { color: #7A2E26; }
.tp-1968 { background: linear-gradient(180deg, #6B4E2E, #211A11); }
.tp-mini {
  position: absolute; top: 12px; right: 12px;
  width: 46px; height: 46px; border-radius: 50%;
}
.tp-mini.m-porthole {
  border: 4px solid var(--brass);
  background: radial-gradient(circle at 40% 35%, #2A5A78, #0B2438 70%);
}
.tp-mini.m-summit {
  border: 2px solid #DCEBF5;
  background: radial-gradient(circle at 40% 35%, #F4FAFF, #7FA8C9);
}
.tp-mini.m-roundel {
  background: repeating-conic-gradient(#171310 0% 12.5%, #F5F0E6 0% 25%);
}
.theme-strip {
  display: flex; align-items: center; justify-content: space-between;
  margin: -26px -28px 20px; padding: 10px 20px;
  font-size: 10.5px; font-weight: 800; letter-spacing: .32em; text-transform: uppercase;
  color: #FFF6DE;
}
.theme-strip .ts-no { font-family: var(--mono); letter-spacing: .18em; opacity: .85; }
.ts-depths { background: linear-gradient(90deg, #16486B, #061423); }
.ts-ascent { background: linear-gradient(90deg, #7FA8C9, #3E5A76); }
.ts-1968 { background: linear-gradient(90deg, #8C2F28, #3A1E12); }

/* ---- report edition: narrative banner strip ---- */
.narrative-banner {
  position: relative; overflow: hidden;
  margin: 36px 0; padding: 46px 42px 40px;
  border: 1px solid var(--brass);
  box-shadow: 0 18px 44px rgba(0,0,0,.35);
  color: #FFF6DE;
}
.narrative-banner::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 16px;
  background: repeating-conic-gradient(#171310 0% 25%, #F5F0E6 0% 50%);
  background-size: 22px 22px;
}
.banner-1968 {
  background:
    repeating-linear-gradient(178deg, transparent 0 46px, rgba(232,179,75,.10) 46px 48px),
    radial-gradient(600px 260px at 80% 18%, rgba(201,106,46,.35), transparent 65%),
    linear-gradient(180deg, #4A3A26, #1E1710);
}
.narrative-banner .kicker { color: var(--gold); position: relative; }
.narrative-banner h3 {
  font-family: var(--serif); font-weight: 700;
  font-size: clamp(26px, 3.6vw, 40px); margin: 12px 0 10px; position: relative;
  text-shadow: 0 2px 14px rgba(0,0,0,.7);
}
.narrative-banner p { color: rgba(255,246,222,.88); position: relative; max-width: 64ch; }
.narrative-banner .sample-tag {
  position: relative; border-color: #E8B34B; color: #E8B34B; background: rgba(0,0,0,.3);
}

/* ============ ADDITIONS FOR THE STAGING SITE (2026-10-01) ============ */

/* ---- Night Desk theme: the archive after hours, ink-green desk ---- */
html[data-theme="night"] {
  --paper: #1D2620;
  --paper-deep: #141C17;
  --card: #253129;
  --ink: #EDE2C6;
  --ink-soft: #B7A67E;
  --wax: #8FAE9C;
  --wax-deep: #A9C6B3;
  --wax-soft: #7A9A87;
}
html[data-theme="night"] body::before {
  background:
    radial-gradient(1100px 520px at 50% -60px, rgba(143,174,156,.14), transparent 62%),
    radial-gradient(900px 700px at 85% 110%, rgba(0,0,0,.45), transparent 60%),
    repeating-linear-gradient(93deg, rgba(0,0,0,.22) 0 2px, transparent 2px 92px),
    repeating-linear-gradient(88deg, rgba(190,220,200,.030) 0 1px, transparent 1px 47px),
    linear-gradient(180deg, #223028 0%, #18211B 46%, #0E1511 100%);
}
html[data-theme="night"] .gp-topnav { background: #131A15; }
html[data-theme="night"] .manifest { background: #131A15; }
html[data-theme="night"] .page {
  background:
    linear-gradient(180deg, rgba(0,0,0,.35), transparent 120px),
    radial-gradient(620px 300px at 18% 8%, rgba(120,150,130,.08), transparent 62%),
    var(--paper);
  border-top: 1px solid rgba(143,174,156,.30);
}
html[data-theme="night"] .dossier {
  background: linear-gradient(180deg, #222c25, var(--card) 90px);
  box-shadow: 0 18px 44px rgba(0,0,0,.5), 0 3px 10px rgba(0,0,0,.4);
}
html[data-theme="night"] .masthead h1 { text-shadow: 0 2px 12px rgba(0,0,0,.8); }
html[data-theme="night"] .collector {
  background: var(--card);
  box-shadow: 0 14px 34px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.4);
}
html[data-theme="night"] .collector-mark {
  background: radial-gradient(circle at 35% 30%, #2e3b31, #18211b);
}
html[data-theme="night"] .feature-btn { background: var(--card); }
html[data-theme="night"] .ref-card {
  background: linear-gradient(180deg, #222c25, var(--card) 70px);
}
html[data-theme="night"] .listing dl dd { color: var(--ink); }
html[data-theme="night"] .empty-state { background: rgba(169,138,61,.10); }
html[data-theme="night"] .fineprint { background: rgba(169,138,61,.08); }
html[data-theme="night"] .nav a { color: var(--ink); }
html[data-theme="night"] .foot-nav a { color: var(--ink); }
html[data-theme="night"] .sample-banner { background: rgba(140,47,40,.12); }
html[data-theme="night"] .btn { color: var(--ink); }
html[data-theme="night"] .btn:hover { background: var(--wax); color: #10160f; }
html[data-theme="night"] .dossier .meta b { color: var(--ink); }
html[data-theme="night"] .seal { background: radial-gradient(circle at 38% 32%, rgba(255,255,255,.10), transparent 55%); }
html[data-theme="night"] .seal.wax {
  box-shadow:
    0 0 34px rgba(143,174,156,.35),
    0 10px 24px rgba(0,0,0,.5),
    inset 0 2px 10px rgba(255,255,255,.22),
    inset 0 -8px 18px rgba(0,0,0,.30);
}

/* ---- subscribe anchor: clear the sticky topnav ---- */
#subscribe { scroll-margin-top: 110px; }

/* ---- homepage subscribe card ---- */
.subscribe-card { text-align: center; }
.subscribe-card h3 { text-align: center; }
.subscribe-card p { margin-left: auto; margin-right: auto; }
.subscribe-note {
  margin-top: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

/* ---- methodology rules ---- */
.rules-list { list-style: none; margin: 6px 0 0; padding: 0; counter-reset: rule; }
.rules-list li {
  counter-increment: rule;
  position: relative;
  padding: 18px 0 18px 64px;
  border-bottom: 1px solid rgba(169,138,61,.4);
}
.rules-list li:last-child { border-bottom: 0; }
.rules-list li::before {
  content: counter(rule, decimal-leading-zero);
  position: absolute;
  left: 0; top: 16px;
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 700;
  color: var(--wax-deep);
}
.rules-list li strong { display: block; font-size: 16px; margin-bottom: 4px; }
.rules-list li p { margin: 0; font-size: 14.5px; color: var(--ink-soft); max-width: 68ch; }

/* ---- filing ledger (per-reference status on the edition page) ---- */
.filing-ledger { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 8px 0 20px; }
@media (max-width: 820px) { .filing-ledger { grid-template-columns: 1fr; } }
.filing-card { padding: 22px 24px; margin: 0; }
.filing-card .ref-no {
  font-family: var(--serif); font-size: 30px; font-weight: 700;
}
.filing-card .ref-family {
  font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--wax-deep); font-weight: 700; margin-top: 2px;
}
.filing-card .no-sales {
  margin: 12px 0 0;
  font-family: var(--serif); font-style: italic; font-size: 14px;
  color: var(--ink-soft);
}
.filing-card .market-note-line { margin: 8px 0 0; font-size: 13px; color: var(--ink-soft); }

/* ---- share row (from the report builder, archive-skinned) ---- */
.share-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px;
  margin: 34px 0 6px; padding: 18px 0;
  border-top: 1px solid var(--brass); border-bottom: 1px solid var(--brass);
}
.share-label {
  font-size: 11px; font-weight: 800; letter-spacing: .24em; text-transform: uppercase;
  color: var(--wax-deep);
}
.share-row button, .share-row a.share-x {
  font-family: var(--sans); font-size: 12px; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--ink); background: transparent;
  border: 1.5px solid var(--wax-deep); border-radius: 999px;
  padding: 9px 20px; cursor: pointer; text-decoration: none;
}
.share-row button:hover, .share-row a.share-x:hover { background: var(--wax-deep); color: var(--paper); border-color: var(--wax-deep); }

/* ---- quiet closing card (from the report builder, archive-skinned) ---- */
.report-close {
  text-align: center;
  margin: 44px 0 10px; padding: 30px 26px;
  border-top: 1px solid var(--brass); border-bottom: 1px solid var(--brass);
}
.report-close h2 {
  font-family: var(--serif); font-size: 26px; font-weight: 700; margin-bottom: 8px;
}
.report-close p { color: var(--ink-soft); font-size: 15px; max-width: 60ch; margin: 8px auto 0; }
.report-close .form-note {
  font-family: var(--mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
}
.report-close .form-note a { color: var(--gold); }

/* ---- journal entries ---- */
.journal-card .entry-status {
  display: inline-block;
  font-family: var(--mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--wax-deep); border: 1px solid var(--brass);
  padding: 5px 12px; margin-bottom: 14px;
}

/* ---- non-link series cards (honest samples) ---- */
div.series-link { cursor: default; }

/* ---- accessibility: skip link, focus, sister brand ---- */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 10000;
  background: var(--paper); color: var(--ink);
  font-size: 13px; font-weight: 700; letter-spacing: .08em;
  padding: 10px 18px; border: 2px solid var(--brass-deep);
  text-decoration: none;
}
.skip-link:focus { left: 12px; top: 12px; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

.sister {
  font-size: 12.5px; letter-spacing: .06em; color: var(--ink-soft);
  margin-top: 10px; text-align: center;
}
.sister a { color: var(--wax-deep); font-weight: 700; text-decoration: none; }
.sister a:hover { text-decoration: underline; }
html[data-theme="night"] .sister a { color: var(--gold); }

/* ---- small phones ---- */
@media (max-width: 560px) {
  .gp-topnav { gap: 10px; padding: 10px 14px; }
  .gp-brand { font-size: 17px; }
  .gp-brand small { font-size: 9px; letter-spacing: .22em; }
  .gp-subscribe { display: none; }
  .gp-navlinks a { padding: 8px 7px; font-size: 10.5px; letter-spacing: .12em; }
  .gp-theme button { font-size: 9.5px; padding: 7px 9px; }
  .gp-key { display: none; }
  .page { padding: 0 20px 10px; margin-top: 22px; }
  .manifest { gap: 10px; padding: 8px 14px; font-size: 12.5px; }
  .manifest-kicker { font-size: 10px; letter-spacing: .22em; }
  .dateline { font-size: 9.5px; letter-spacing: .14em; }
  .masthead { padding: 28px 0 4px; }
}

/* ------------------------------ dossier pages ------------------------------ */
.dossier-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 34px; margin: 26px 0 10px; align-items: start; }
@media (max-width: 900px) { .dossier-layout { grid-template-columns: 1fr; } }
.dossier-main { min-width: 0; }
.dossier-main h2 { font-family: var(--serif); font-weight: 700; font-size: clamp(24px,3vw,31px); margin: 38px 0 10px; color: var(--ink); }
.dossier-main h3 { font-family: var(--serif); font-weight: 700; font-size: 20px; margin: 24px 0 8px; color: var(--wax-deep); }
.dossier-main p { line-height: 1.75; margin: 12px 0; color: var(--ink); }
.dossier-main ul { margin: 10px 0 16px 22px; padding: 0; }
.dossier-main li { line-height: 1.7; margin: 6px 0; color: var(--ink); }
.dossier-main a { color: var(--wax-deep); }
.spec-table { width: 100%; border-collapse: collapse; margin: 18px 0 26px; font-size: 15px; }
.spec-table th, .spec-table td { text-align: left; padding: 10px 14px; border-bottom: 1px solid rgba(169,138,61,.45); vertical-align: top; }
.spec-table th { width: 32%; color: var(--ink-soft); font-weight: 700; }
.spec-table td { color: var(--ink); }
.photo-slot { border: 1.5px dashed rgba(169,138,61,.65); border-radius: 6px; padding: 26px 22px; text-align: center; margin: 22px 0; background: rgba(169,138,61,.06); }
.photo-slot strong { display: block; font-family: var(--mono); font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 8px; font-weight: 700; }
.photo-slot p { font-size: 14px; color: var(--ink-soft); font-style: italic; margin: 0; }
.callout { border-left: 3px solid var(--wax); background: rgba(46,75,63,.07); padding: 16px 20px; margin: 22px 0; border-radius: 0 6px 6px 0; }
.callout .kicker { display: block; margin-bottom: 8px; }
.callout p, .callout li { margin: 8px 0; font-size: 15px; }
.check-list { list-style: none; margin: 12px 0 20px; padding: 0; }
.check-list li { position: relative; padding-left: 30px; margin: 10px 0; }
.check-list li::before { content: "\2713"; position: absolute; left: 2px; top: 1px; color: var(--wax-deep); font-weight: 800; }
.dossier-side { min-width: 0; }
.side-card { border: 1px solid var(--brass); background: linear-gradient(180deg, #FBF3DA, var(--card) 70px); padding: 20px 22px; margin: 0 0 20px; box-shadow: 0 10px 24px rgba(60,42,12,.14); }
.side-card h3 { font-family: var(--mono); font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--wax-deep); margin: 0 0 10px; font-weight: 700; }
.side-card p, .side-card li { font-size: 14px; line-height: 1.65; color: var(--ink-soft); }
.side-card ul { margin: 6px 0 4px 18px; padding: 0; }
.side-card li { margin: 6px 0; }
.side-card a { color: var(--wax-deep); }
.source-ledger ul { list-style: none; margin: 10px 0 0; padding: 0; }
.source-ledger li { font-size: 14.5px; line-height: 1.65; margin: 8px 0; color: var(--ink-soft); padding-left: 18px; position: relative; }
.source-ledger li::before { content: "\2014"; position: absolute; left: 0; color: var(--brass-deep); }
.source-ledger a { color: var(--wax-deep); overflow-wrap: break-word; }
.keep-researching { margin: 34px 0 6px; }
.keep-researching > h2 { font-family: var(--serif); font-weight: 700; font-size: 26px; margin: 0 0 16px; color: var(--ink); }
.kr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.kr-card { display: block; border: 1px solid var(--brass); background: linear-gradient(180deg, #FBF3DA, var(--card) 60px); padding: 20px 22px; text-decoration: none; box-shadow: 0 10px 24px rgba(60,42,12,.12); }
.kr-card:hover { border-color: var(--wax-deep); }
.kr-card .rc-ref { font-family: var(--mono); font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--wax-deep); font-weight: 700; }
.kr-card h3 { font-family: var(--serif); font-weight: 700; font-size: 19px; margin: 8px 0 6px; color: var(--ink); }
.kr-card p { font-size: 14px; line-height: 1.6; color: var(--ink-soft); margin: 0; }
.independence-line { text-align: center; font-size: 13px; color: var(--ink-soft); font-style: italic; max-width: 72ch; margin: 8px auto 0; line-height: 1.6; }
a.ref-card { text-decoration: none; color: inherit; display: block; }
a.ref-card:hover { border-color: var(--wax-deep); }
a.ref-card:hover .ref-status { color: var(--wax-deep); }
html[data-theme="night"] .side-card { background: linear-gradient(180deg, #222c25, var(--card) 70px); box-shadow: 0 10px 24px rgba(0,0,0,.5); }
html[data-theme="night"] .kr-card { background: linear-gradient(180deg, #222c25, var(--card) 60px); box-shadow: 0 10px 24px rgba(0,0,0,.5); }
html[data-theme="night"] .callout { background: rgba(143,174,156,.08); }
html[data-theme="night"] .photo-slot { background: rgba(169,138,61,.08); }

/* ============ THREE-ROOM THEME SYSTEM (2026-10-03) ============
   Ocean (default) / Mountain / Night Desk. The wax seal never changes;
   the room around it does. data-theme lives on <html>, set pre-CSS by the
   init snippet; localStorage key 'gp-theme'; ?theme= deep links.
   Legacy 'archive' maps to 'ocean' in the init JS. */

/* ---- theme fade (mirrors SG's room change; skipped under reduced motion) ---- */
body { transition: opacity .16s ease; }
html.gp-theme-fading body { opacity: .25; }
@media (prefers-reduced-motion: reduce) { body { transition: none; } }

/* ============ MOUNTAIN: the Explorer room ============
   Warm, crisp parchment; alpine rock desk; topographic contours on the page. */
html[data-theme="mountain"] {
  --paper: #F3E9D2;
  --paper-deep: #E6D5B2;
  --card: #FAF3E1;
  --ink: #251D11;
  --ink-soft: #6A5A3C;
  --wax: #2E4B3F;
  --wax-deep: #1E332A;
  --wax-soft: #4E6E5F;
}
html[data-theme="mountain"] body::before {
  background:
    radial-gradient(1100px 520px at 50% -60px, rgba(220,235,245,.10), transparent 62%),
    radial-gradient(900px 700px at 85% 110%, rgba(0,0,0,.40), transparent 60%),
    repeating-linear-gradient(93deg, rgba(0,0,0,.20) 0 2px, transparent 2px 92px),
    repeating-linear-gradient(88deg, rgba(230,240,248,.025) 0 1px, transparent 1px 47px),
    linear-gradient(180deg, #2E2A22 0%, #211D16 46%, #14110C 100%);
}
html[data-theme="mountain"] .ghost { color: #E8D9B0; }
html[data-theme="mountain"] .page {
  background:
    linear-gradient(180deg, rgba(255,253,246,.5), transparent 120px),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420'%3E%3Cg fill='none' stroke='%238A6F3F' stroke-width='1' opacity='.55'%3E%3Cpath d='M210,70 C275,70 335,120 335,190 C335,260 275,310 210,310 C145,310 85,260 85,190 C85,120 145,70 210,70 Z'/%3E%3Cpath d='M210,105 C258,105 300,140 300,190 C300,240 258,275 210,275 C162,275 120,240 120,190 C120,140 162,105 210,105 Z'/%3E%3Cpath d='M210,140 C240,140 265,160 265,190 C265,220 240,240 210,240 C180,240 155,220 155,190 C155,160 180,140 210,140 Z'/%3E%3Cpath d='M210,168 C222,168 232,178 232,190 C232,202 222,212 210,212 C198,212 188,202 188,190 C188,178 198,168 210,168 Z'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(620px 300px at 18% 8%, rgba(150,118,66,.10), transparent 62%),
    radial-gradient(520px 420px at 86% 58%, rgba(140,108,62,.09), transparent 60%),
    var(--paper);
  background-size: auto, 420px 420px, auto, auto, auto;
}
html[data-theme="mountain"] .dossier {
  background: linear-gradient(180deg, #FCF5E3, var(--card) 90px);
}
/* ice-blue dividers in the Mountain room */
html[data-theme="mountain"] .rule-ornament { color: var(--ice-deep); }
html[data-theme="mountain"] .rule-ornament::before,
html[data-theme="mountain"] .rule-ornament::after { background: var(--ice-deep); opacity: .55; }
html[data-theme="mountain"] .section-head .kicker::before,
html[data-theme="mountain"] .section-head .kicker::after { background: var(--ice-deep); }

/* ============ CANDLELIGHT: parchment on a desk in a dark room, lit by candle ============
   Modeled on the Explorer panel (A3 Ascent card): espresso-black room, amber
   candle glow, gold accents. Honors the seamless architecture — the room stays
   dark; parchment appears as sheets spread on the desk (dossier pages, cards). */
html[data-theme="candlelight"] {
  --paper: #F0E2BE;
  --paper-deep: #E2CCA0;
  --card: #F7EDD4;
  --ink: #251A0E;
  --ink-soft: #6E5732;
  --wax: #2E4B3F;
  --wax-deep: #1E332A;
  --wax-soft: #4E6E5F;
  --gold: #C9A227;
  --brass: #A98A3D;
}
/* the dark room + candle glow (breathe = barely-there flicker, compositor-only) */
html[data-theme="candlelight"] body::before {
  background:
    radial-gradient(760px 460px at 30% 4%, rgba(255,176,92,.17), transparent 62%),
    radial-gradient(420px 300px at 74% 20%, rgba(255,150,70,.06), transparent 60%),
    radial-gradient(1200px 800px at 50% 115%, rgba(0,0,0,.62), transparent 65%),
    linear-gradient(180deg, #17100A 0%, #0C0704 52%, #040201 100%);
  animation: candle-breathe 7s ease-in-out infinite;
}
@keyframes candle-breathe {
  0%, 100% { opacity: 1; }
  28% { opacity: .93; }
  52% { opacity: .97; }
  76% { opacity: .90; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="candlelight"] body::before { animation: none; }
}
html[data-theme="candlelight"] .candle {
  background: radial-gradient(640px 340px at 30% 0%, rgba(255,186,108,.10), transparent 65%);
}
/* seamless: the page itself stays the dark room */
html[data-theme="candlelight"] .page { background: transparent; box-shadow: none; border: none; }
html[data-theme="candlelight"] .gp-topnav {
  background: rgba(14,8,4,.94);
  border-bottom: 1px solid rgba(201,162,39,.28);
}
html[data-theme="candlelight"] .manifest {
  background: #0D0704;
  border-top: 1px solid rgba(201,162,39,.28);
}
/* masthead + section heads on the dark room: cream type, candlelit */
html[data-theme="candlelight"] .masthead h1 {
  color: #F5EDD8;
  text-shadow: 0 2px 22px rgba(255,170,90,.28), 0 2px 8px rgba(0,0,0,.6);
}
html[data-theme="candlelight"] .masthead .endorsement { color: #C9A227; }
html[data-theme="candlelight"] .masthead .kicker-top { color: #C9A227; }
html[data-theme="candlelight"] .masthead .tagline { color: #C9BBA4; }
html[data-theme="candlelight"] .rule-ornament { color: #A98A3D; }
html[data-theme="candlelight"] .rule-ornament::before,
html[data-theme="candlelight"] .rule-ornament::after { background: #A98A3D; opacity: .6; }
html[data-theme="candlelight"] .section-head .kicker { color: #C9A227; }
html[data-theme="candlelight"] .section-head h2 {
  color: #F5EDD8;
  text-shadow: 0 2px 18px rgba(255,170,90,.20), 0 2px 8px rgba(0,0,0,.55);
}
/* the parchment sheets: dossier pages + cards, lit warm from above */
html[data-theme="candlelight"] .dossier-layout,
html[data-theme="candlelight"] .dossier,
html[data-theme="candlelight"] .collector {
  background:
    radial-gradient(880px 320px at 30% 0%, rgba(255,186,108,.16), transparent 60%),
    linear-gradient(180deg, #F4E8CC 0%, #EDDBB2 120px, #E8D4A8 100%);
  border-radius: 6px;
  border-top: 1px solid rgba(201,162,39,.45);
  box-shadow: 0 24px 70px rgba(0,0,0,.65), 0 0 50px rgba(255,170,90,.05);
}
html[data-theme="candlelight"] .dossier-layout { padding: 34px 38px; }
html[data-theme="candlelight"] .collector { padding: 30px 34px; }
html[data-theme="candlelight"] .collector::before {
  background: #1E332A;
  color: #F4E8CC;
  border: 1px solid rgba(201,162,39,.55);
  box-shadow: 0 4px 12px rgba(0,0,0,.5), 0 0 12px rgba(255,170,90,.12);
}
/* ink on the parchment sheets */
html[data-theme="candlelight"] .dossier h3,
html[data-theme="candlelight"] .collector h2,
html[data-theme="candlelight"] .dossier-main h2 { color: #2A1E0E; }
html[data-theme="candlelight"] .dossier p,
html[data-theme="candlelight"] .collector p,
html[data-theme="candlelight"] .collector .descriptor,
html[data-theme="candlelight"] .dossier-main p,
html[data-theme="candlelight"] .dossier-main li { color: #332614; }
html[data-theme="candlelight"] .dossier-main h3 { color: #1E332A; }
html[data-theme="candlelight"] .dossier-main a,
html[data-theme="candlelight"] .side-card a { color: #1E332A; border-color: rgba(30,51,42,.45); }
html[data-theme="candlelight"] .dossier .meta,
html[data-theme="candlelight"] .dossier .meta b,
html[data-theme="candlelight"] .dossier .dossier-no { color: #4A3A22; }
html[data-theme="candlelight"] .dossier .kicker,
html[data-theme="candlelight"] .collector .brandline { color: #6B4E1F; }
html[data-theme="candlelight"] .collector .creed { color: #4A3A22; }
html[data-theme="candlelight"] .manuscript-lede { color: #3A2C17; border-color: rgba(169,138,61,.45); }
html[data-theme="candlelight"] .manuscript-lede::first-letter { color: #1E332A; }
html[data-theme="candlelight"] .side-card {
  background:
    radial-gradient(360px 180px at 30% 0%, rgba(255,186,108,.14), transparent 60%),
    linear-gradient(180deg, #F6ECD2, #EDDBB2 100%);
  border: 1px solid rgba(169,138,61,.5);
  box-shadow: 0 10px 26px rgba(0,0,0,.45);
}
html[data-theme="candlelight"] .side-card h3 { color: #6B4E1F; }
html[data-theme="candlelight"] .side-card p,
html[data-theme="candlelight"] .side-card li { color: #5C4A2E; }
html[data-theme="candlelight"] .spec-table th { color: #5C4A2E; }
html[data-theme="candlelight"] .spec-table td { color: #332614; }
html[data-theme="candlelight"] .photo-slot { background: rgba(169,138,61,.08); border-color: rgba(169,138,61,.55); }
html[data-theme="candlelight"] .photo-slot strong { color: #6B4E1F; }
html[data-theme="candlelight"] .photo-slot p { color: #5C4A2E; }
html[data-theme="candlelight"] .callout { background: rgba(46,75,63,.08); }
html[data-theme="candlelight"] .callout p,
html[data-theme="candlelight"] .callout li { color: #332614; }
html[data-theme="candlelight"] .check-list li::before { color: #1E332A; }
html[data-theme="candlelight"] .disclaimer { color: #5C4A2E; border-color: rgba(169,138,61,.45); }
html[data-theme="candlelight"] .source-ledger { color: #332614; }
/* article hero stays on the dark room */
html[data-theme="candlelight"] .article-top a { color: #C9BBA4; }
html[data-theme="candlelight"] .article-head h1 {
  color: #F5EDD8;
  text-shadow: 0 2px 22px rgba(255,170,90,.25), 0 2px 8px rgba(0,0,0,.6);
}
html[data-theme="candlelight"] .article-head .article-number { color: #C9A227; }
html[data-theme="candlelight"] .independence-line { color: #8D7F6A; }
/* keep-researching + footer stay on the dark room */
html[data-theme="candlelight"] .keep-researching h2 { color: #F5EDD8; }
html[data-theme="candlelight"] .kr-card .kr-kicker { color: #C9A227; }
html[data-theme="candlelight"] .kr-card .rc-ref { color: #C9A227; }
html[data-theme="candlelight"] .kr-card h3 { color: #F5EDD8; }
html[data-theme="candlelight"] .kr-card p { color: #A89C8D; }
html[data-theme="candlelight"] .kr-card a { color: #E4C99F; }
html[data-theme="candlelight"] .foot-nav a { color: #C9BBA4; }
html[data-theme="candlelight"] .foot-brand { color: #8D7F6A; }
/* small parchment cards */
html[data-theme="candlelight"] .feature-btn {
  background:
    radial-gradient(420px 220px at 30% 0%, rgba(255,186,108,.16), transparent 60%),
    linear-gradient(180deg, #F4E8CC 0%, #EDDBB2 100%);
  border: 1px solid rgba(169,138,61,.5);
  border-top: 1px solid rgba(201,162,39,.45);
  box-shadow: 0 14px 34px rgba(0,0,0,.5), 0 0 24px rgba(255,170,90,.04);
}
html[data-theme="candlelight"] .feature-btn:hover {
  box-shadow: 0 20px 44px rgba(0,0,0,.6), 0 0 30px rgba(255,170,90,.07);
}
html[data-theme="candlelight"] .ref-card {
  background:
    radial-gradient(420px 200px at 30% 0%, rgba(255,186,108,.10), transparent 60%),
    linear-gradient(180deg, #F6ECD2, var(--card) 70px);
}
html[data-theme="candlelight"] .listing dl dd { color: var(--ink); }
html[data-theme="candlelight"] .empty-state { background: rgba(169,138,61,.12); }
html[data-theme="candlelight"] .fineprint { background: rgba(169,138,61,.10); }
html[data-theme="candlelight"] .btn { color: #2A1E0E; border-color: rgba(169,138,61,.55); }
html[data-theme="candlelight"] .btn:hover { background: var(--wax); color: #F4E8CC; }
html[data-theme="candlelight"] .seal.wax {
  box-shadow:
    0 0 34px rgba(255,170,90,.28),
    0 10px 24px rgba(0,0,0,.5),
    inset 0 2px 10px rgba(255,255,255,.22),
    inset 0 -8px 18px rgba(0,0,0,.30);
}
/* daytona world card: whisper of dark so the triptych sits in the same candlelit room */
html[data-theme="candlelight"] .world[aria-label^="Daytona"] .world-atmo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(22,12,5,.34) 0%, rgba(22,12,5,.10) 45%, rgba(12,6,3,.40) 100%);
  pointer-events: none;
}

/* report page on the dark room: verdict + closing furniture in candlelit cream
   (added 2026-10-17 — the report builder's classes had no candlelight rules, so
   the verdict lede, share row, closing card and footer lines fell back to
   light-theme ink on the near-black desk and were unreadable) */
html[data-theme="candlelight"] .verdict {
  color: #F5EDD8;
  text-shadow: 0 2px 18px rgba(255,170,90,.20), 0 2px 8px rgba(0,0,0,.55);
}
html[data-theme="candlelight"] .verdict-sub { color: #C9BBA4; }
html[data-theme="candlelight"] .share-label { color: #C9A227; }
html[data-theme="candlelight"] .share-row { border-color: rgba(201,162,39,.45); }
html[data-theme="candlelight"] .share-row button,
html[data-theme="candlelight"] .share-row a.share-x { color: #E4C99F; border-color: rgba(201,162,39,.55); }
html[data-theme="candlelight"] .share-row button:hover,
html[data-theme="candlelight"] .share-row a.share-x:hover { background: #2E4B3F; color: #F4E8CC; border-color: #2E4B3F; }
html[data-theme="candlelight"] .report-close { border-color: rgba(201,162,39,.45); }
html[data-theme="candlelight"] .report-close h2 {
  color: #F5EDD8;
  text-shadow: 0 2px 18px rgba(255,170,90,.20), 0 2px 8px rgba(0,0,0,.55);
}
html[data-theme="candlelight"] .report-close p { color: #C9BBA4; }
html[data-theme="candlelight"] .report-close .form-note { color: #A98A3D; }
html[data-theme="candlelight"] .report-close .form-note a { color: #C9A227; }
html[data-theme="candlelight"] .fineprint { color: #A89C8D; }
html[data-theme="candlelight"] .fineprint b { color: #C9A227; }
html[data-theme="candlelight"] footer .trademark,
html[data-theme="candlelight"] .sister { color: #A89C8D; }
html[data-theme="candlelight"] .sister a { color: #C9A227; }

/* ============ OCEAN: depth-gauge furniture (default room) ============ */
html[data-theme="ocean"] .page::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; right: 14px;
  width: 16px;
  background:
    repeating-linear-gradient(180deg, transparent 0 108px, rgba(18,58,78,.55) 108px 110px),
    repeating-linear-gradient(180deg, rgba(37,97,125,.50) 0 1px, transparent 1px 22px);
  background-size: 16px 100%, 9px 100%;
  background-position: right top, right top;
  background-repeat: repeat-y;
  opacity: .5;
  pointer-events: none;
}
html[data-theme="ocean"] .page::after {
  content: "200 M \00B7 660 FT";
  position: absolute;
  right: 1px; top: 50%;
  transform: translateY(-50%) rotate(180deg);
  writing-mode: vertical-rl;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .3em;
  color: var(--sea-deep);
  opacity: .45;
  white-space: nowrap;
  pointer-events: none;
}
/* wave-line dividers in the Ocean room */
html[data-theme="ocean"] .rule-ornament::before,
html[data-theme="ocean"] .rule-ornament::after {
  height: 8px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='8'%3E%3Cpath d='M0,4 Q12,0 24,4 T48,4' fill='none' stroke='%2325617D' stroke-width='1.5' opacity='.65'/%3E%3C/svg%3E") repeat-x center;
}

/* ============ instrument kickers: flanking rules on section heads ============ */
.section-head .kicker {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
.section-head .kicker::before,
.section-head .kicker::after {
  content: "";
  height: 1px;
  width: 90px;
  background: var(--brass);
  opacity: .65;
}
.article-head .article-number {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}
.article-head .article-number::before,
.article-head .article-number::after {
  content: "";
  height: 1px;
  width: 64px;
  background: var(--brass);
  opacity: .55;
}

/* ============ homepage world cards: theme deep links ============ */
.world-link { display: block; text-decoration: none; color: inherit; }
.world-link .world { height: 100%; transition: transform .25s ease, box-shadow .25s ease; }
.world-link:hover .world,
.world-link:focus-visible .world { transform: translateY(-4px); }
.world-link .world-copy::after {
  content: "";
  display: block;
  margin-top: 10px;
  font-family: var(--sans);
  font-weight: 700;
  font-size: 10.5px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  opacity: 0;
  transition: opacity .2s ease;
}
.world-link:hover .world-copy::after,
.world-link:focus-visible .world-copy::after { opacity: 1; }
.world-link[href="/?theme=ocean"] .world-copy::after { content: "Step into the Ocean theme \2192"; }
.world-link[href="/?theme=mountain"] .world-copy::after { content: "Step into the Mountain theme \2192"; }

/* ============ dossier family flourishes ============
   Work in every theme: built from --wax/--brass/--sea/--ice/--race. */
/* header marks */
.family-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px; height: 64px;
  border-radius: 50%;
  margin: 14px 0 2px;
}
.fm-submariner {
  border: 5px solid var(--brass);
  background: radial-gradient(circle at 40% 35%, var(--sea-foam), var(--sea-deep) 75%);
  box-shadow: 0 6px 16px rgba(0,0,0,.30), inset 0 0 12px rgba(0,0,0,.5);
}
.fm-submariner .fm-glass {
  width: 22px; height: 22px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(220,240,248,.9), rgba(62,140,168,.35) 70%);
  box-shadow: 0 0 10px rgba(159,212,232,.5);
}
.fm-explorer {
  border: 3px double var(--ice-deep);
  background: radial-gradient(circle at 40% 35%, var(--snow), #CFE0EA 78%);
  box-shadow: 0 6px 16px rgba(0,0,0,.22);
}
.fm-daytona {
  background: repeating-conic-gradient(#141210 0 12deg, #F5F0E6 12deg 24deg);
  box-shadow: 0 6px 16px rgba(0,0,0,.30);
}
.fm-daytona .rr68 {
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--paper);
  border: 2px solid var(--race);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-style: italic; font-weight: 700;
  font-size: 19px; color: var(--race);
}
/* Submariner dossiers: depth-gauge sidebar ruler */
.dossier-layout[data-family="submariner"] .dossier-side { position: relative; }
.dossier-layout[data-family="submariner"] .dossier-side::before {
  content: "";
  position: absolute;
  left: -20px; top: 0; bottom: 0;
  width: 12px;
  background:
    repeating-linear-gradient(180deg, transparent 0 88px, var(--sea-deep) 88px 90px),
    repeating-linear-gradient(180deg, var(--sea) 0 1px, transparent 1px 18px);
  background-size: 12px 100%, 7px 100%;
  background-position: left top, left top;
  background-repeat: repeat-y;
  opacity: .45;
}
.dossier-layout[data-family="submariner"] .dossier-side::after {
  content: "200 M \00B7 660 FT";
  position: absolute;
  left: -36px; top: 50%;
  transform: translateY(-50%) rotate(180deg);
  writing-mode: vertical-rl;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .28em;
  color: var(--sea-deep);
  opacity: .5;
  white-space: nowrap;
}
/* Daytona dossiers: checkered strip under the article head */
.article-head[data-family="daytona"]::after {
  content: "";
  display: block;
  height: 10px;
  margin: 20px auto 0;
  max-width: 420px;
  background: repeating-conic-gradient(#141210 0 25%, #F5F0E6 0 50%);
  background-size: 20px 20px;
  opacity: .85;
  border-top: 1px solid var(--brass);
  border-bottom: 1px solid var(--brass);
}
/* Explorer dossiers: expedition altitude stamp in the sidebar */
.alt-stamp {
  width: 124px; height: 124px;
  border-radius: 50%;
  border: 3px double var(--ice-deep);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center;
  transform: rotate(-8deg);
  margin: 2px auto 20px;
  color: var(--ice-deep);
  background: radial-gradient(circle at 40% 35%, rgba(247,251,254,.92), rgba(207,224,234,.55));
  box-shadow: 0 4px 12px rgba(0,0,0,.18);
}
.alt-stamp .as-top { font-size: 9px; letter-spacing: .22em; font-weight: 800; text-transform: uppercase; }
.alt-stamp .as-mid { font-family: var(--serif); font-weight: 700; font-size: 18px; margin: 3px 0; }
.alt-stamp .as-bot { font-size: 9px; letter-spacing: .22em; text-transform: uppercase; }
html[data-theme="night"] .alt-stamp {
  background: radial-gradient(circle at 40% 35%, rgba(46,59,49,.9), rgba(24,33,27,.6));
  color: var(--wax);
  border-color: var(--wax-soft);
}

/* ---- small screens: gauges stand down ---- */
@media (max-width: 900px) {
  html[data-theme="ocean"] .page::before,
  html[data-theme="ocean"] .page::after,
  .dossier-layout[data-family="submariner"] .dossier-side::before,
  .dossier-layout[data-family="submariner"] .dossier-side::after { display: none; }
  .section-head .kicker::before,
  .section-head .kicker::after { width: 44px; }
}

/* ================= THE NIGHT ARCHIVE (2026-10-04) =================
   Register: SG's Explorer section — warm black, ivory serif, hairline
   gold rules, quiet luxury. The Rolex take: expedition charts, green
   wax, candlelight. No grunge, no boxes, no khaki panels — seamless. */

html { background: #0b0b0a; }

/* ---------- warm night, barely-there glow ---------- */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -3;
  background:
    radial-gradient(1100px 480px at 50% -120px, rgba(205,165,111,.10), transparent 60%),
    radial-gradient(700px 420px at 88% 30%, rgba(205,165,111,.045), transparent 60%),
    radial-gradient(760px 480px at 8% 70%, rgba(205,165,111,.035), transparent 60%),
    linear-gradient(180deg, #0d0c0b 0%, #0b0b0a 50%, #080807 100%);
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 0.93 0 0 0 0 0.82 0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* candle breath — barely moves */
.candle {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(600px 320px at 50% 0%, rgba(228,201,159,.06), transparent 65%);
  animation: candleflicker 5s ease-in-out infinite;
}
@keyframes candleflicker { 0%,100% { opacity: .9; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .candle { animation: none; } }
.ocean-rose { display: none; }

/* ---------- seamless: no panels, no sheets ---------- */
.page { background: transparent; box-shadow: none; border: none; }
.page::before { display: none; }
.dossier, .collector, .dossier-main, .side-card, .kr-card {
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
}
.dossier-main { padding: 10px 6px; }
.ghost { display: none; }

/* ---------- the register: ivory, gold, hairlines ---------- */
.dateline {
  color: #90877d;
  border-bottom: 1px solid rgba(231,218,199,.22);
  letter-spacing: .3em;
}
.masthead h1 {
  color: #f2ede5;
  font-weight: 600;
  text-shadow: 0 2px 24px rgba(0,0,0,.6);
}
.masthead .endorsement { color: #cda56f; letter-spacing: .3em; }
.masthead .tagline { color: #c4b9aa; }
.rule-ornament { color: #6b6259; }

.section-head { text-align: center; }
.section-head .kicker {
  color: #cda56f;
  font-size: 11px;
  letter-spacing: .28em;
}
.section-head h2 {
  color: #f2ede5;
  font-weight: 600;
}
.world-caption, .stamp-caption, .seal-caption { color: #90877d; }

/* dossier prose */
.article-top a { color: #c4b9aa; }
.article-top a:hover { color: #e4c99f; }
.article-head { text-align: center; padding: 54px 20px 30px; }
.article-head .article-number { color: #cda56f; font-size: 12px; letter-spacing: .28em; }
.article-head h1 { color: #f2ede5; font-weight: 600; }
.article-head .family-mark { margin: 20px auto 0; }
.independence-line { color: #6f675e; }
.keep-researching > h2 { color: #f2ede5; font-weight: 600; }

.manuscript-lede {
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.75;
  color: #e8ddc9;
  margin: 0 0 12px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(231,218,199,.22);
}
.manuscript-lede::first-letter {
  font-size: 3em;
  float: left;
  line-height: .88;
  padding: 4px 10px 0 0;
  color: #cda56f;
  font-weight: 600;
}
.dossier-main h2 { color: #f2ede5; font-weight: 600; }
.dossier-main h3 { color: #e4c99f; }
.dossier-main p, .dossier-main li { color: #c4b9aa; line-height: 1.75; }
.dossier-main a { color: #e4c99f; border-bottom: 1px solid rgba(205,165,111,.4); }
.dossier-main a:hover { color: #f2ede5; }
.side-card h3 { color: #cda56f; font-size: 11px; letter-spacing: .26em; }
.kr-card .kr-kicker { color: #cda56f; }
.side-card p, .side-card li, .kr-card p { color: #a89c8d; }
.side-card a, .kr-card a { color: #e4c99f; }
.kr-card {
  border: 1px solid rgba(231,218,199,.16);
  border-radius: 10px;
  padding: 20px 22px;
  background: rgba(255,255,255,.018);
  transition: border-color .15s;
}
.kr-card:hover { border-color: rgba(205,165,111,.55); }
.side-card {
  border-top: 1px solid rgba(231,218,199,.22);
  padding: 18px 4px;
}
.spec-table th, .spec-table td { border-bottom: 1px solid rgba(231,218,199,.16); }
.spec-table th { color: #e8ddc9; }
.spec-table td { color: #a89c8d; }
.source-ledger li { color: #8d8378; }
.source-ledger li::before { color: #cda56f; }
.source-ledger a { color: #e4c99f; }
.photo-slot {
  background: rgba(255,255,255,.018);
  border: 1px dashed rgba(231,218,199,.3);
  border-radius: 10px;
}
.photo-slot strong { color: #cda56f; }
.photo-slot p { color: #8d8378; }

/* homepage sections */
.dossier h2, .collector h2 { color: #f2ede5; font-weight: 600; }
.dossier p, .collector p { color: #c4b9aa; }
.dossier .kicker, .collector .kicker { color: #cda56f; }

/* quiet pills */
.nav a {
  color: #e8ddc9;
  border: 1px solid rgba(231,218,199,.25);
  border-radius: 999px;
  background: rgba(255,255,255,.02);
  transition: border-color .15s, color .15s;
}
.nav a:hover { color: #f2ede5; border-color: #cda56f; }

/* ---------- the three charts, in quiet frames ---------- */
.worlds > :nth-child(1) .world-atmo svg,
.worlds > :nth-child(2) .world-atmo svg { display: none; }
.worlds > :nth-child(1) .world-atmo { background: url("world-sea.jpg") center 30% / cover no-repeat; }
.worlds > :nth-child(2) .world-atmo { background: url("world-land.jpg") center 30% / cover no-repeat; }
.worlds > :nth-child(1) .world-scrim,
.worlds > :nth-child(2) .world-scrim {
  background: linear-gradient(180deg, rgba(8,8,7,.5) 0%, rgba(8,8,7,.12) 34%, rgba(8,8,7,.1) 55%, rgba(5,5,4,.85) 100%);
}
.world {
  border: 1px solid rgba(231,218,199,.22);
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(0,0,0,.5);
  transition: transform .15s, border-color .15s;
}

.world::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 12px;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 55%, rgba(5,5,4,.55) 100%);
}
.world-copy h3 { color: #f2ede5; text-shadow: 0 2px 14px rgba(0,0,0,.8); }
.world-copy .kicker { color: #e4c99f; }
.world-refs { color: rgba(242,237,229,.75); }
.world-line { color: rgba(242,237,229,.88); }

/* ---------- the green wax — the one jewel ---------- */
.seal.wax {
  border: 3px double rgba(16,30,22,.9);
  border-radius: 48% 52% 51% 49% / 53% 47% 52% 48%;
  color: #F2E7C8;
  background:
    radial-gradient(circle at 34% 26%, rgba(255,246,220,.5), transparent 42%),
    radial-gradient(circle at 68% 78%, rgba(0,0,0,.42), transparent 55%),
    radial-gradient(circle at 50% 50%, #4A7260 0%, #33584A 45%, #24402F 72%, #16281E 100%);
  box-shadow:
    0 18px 44px rgba(0,0,0,.6),
    inset 0 3px 12px rgba(255,246,220,.3),
    inset 0 -12px 24px rgba(0,0,0,.45);
  text-shadow: 0 2px 6px rgba(0,0,0,.65);
}
.seal.wax::before {
  border: 1px solid rgba(242,231,200,.65);
  border-radius: 48% 52% 51% 49% / 53% 47% 52% 48%;
}
.seal.wax::after {
  content: "";
  position: absolute;
  top: 96%;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 64px;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='64' viewBox='0 0 120 64'%3E%3Cg%3E%3Cpath d='M28,0 C28,20 20,26 20,38 C20,48 36,48 36,38 C36,26 30,20 30,0 Z' fill='%232E4B3F'/%3E%3Cpath d='M62,0 C62,30 55,38 55,50 C55,59 69,59 69,50 C69,38 64,30 64,0 Z' fill='%23244836'/%3E%3Cpath d='M92,0 C92,14 87,18 87,26 C87,33 97,33 97,26 C97,18 94,14 94,0 Z' fill='%23355A49'/%3E%3Cpath d='M30,4 C30,18 25,24 25,34' stroke='%23FFFFFF' stroke-width='2.4' opacity='0.35' fill='none' stroke-linecap='round'/%3E%3Cpath d='M63,6 C63,26 58,34 58,46' stroke='%23FFFFFF' stroke-width='2.6' opacity='0.3' fill='none' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E") no-repeat top center;
  opacity: .95;
  filter: drop-shadow(0 6px 8px rgba(0,0,0,.6));
  pointer-events: none;
}
/* the red rubber stamp retires — quiet register only */
.seal:not(.wax) { display: none; }

/* ---------- topnav, ticker, footer — quiet ---------- */
.gp-topnav {
  background: rgba(11,11,10,.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(231,218,199,.2);
  box-shadow: none;
}
.gp-brand { color: #f2ede5; text-shadow: none; }
.gp-brand small { color: #90877d; }
.gp-navlinks a { color: #c4b9aa; }
.gp-navlinks a:hover { color: #e4c99f; }
.gp-subscribe {
  color: #0b0b0a;
  background: #cda56f;
  box-shadow: none;
  border-radius: 999px;
}
.gp-subscribe:hover { background: #e4c99f; }
.gp-key { color: #cda56f; }

.manifest {
  background: rgba(11,11,10,.94);
  border-top: 1px solid rgba(231,218,199,.2);
  box-shadow: none;
}
.manifest-kicker { color: #cda56f; }
.manifest-slide { color: #c4b9aa; }
.manifest-slide a { color: #e4c99f; }

footer { color: #6f675e; }
footer a { color: #a89c8d; }
.foot-nav a { color: #8d8378; }
.foot-brand { color: #e8ddc9; }
.fineprint { color: #6f675e; border-color: rgba(231,218,199,.16); }

/* quiet-register fixes */
.collector::before {
  background: #0b0b0a;
  color: #cda56f;
  border: 1px solid rgba(205,165,111,.5);
}
html[data-theme="ocean"] .rule-ornament::before,
html[data-theme="ocean"] .rule-ornament::after,
.rule-ornament::before, .rule-ornament::after {
  background: rgba(231,218,199,.25) !important;
  height: 1px !important;
}
.collector .brandline { color: #cda56f; }
.collector .descriptor { color: #c4b9aa; }
.collector .creed { color: #e4c99f; }
.worlds > :nth-child(3) .world-atmo svg { display: none; }
.worlds > :nth-child(3) .world-atmo { background: url("world-daytona.jpg") center 40% / cover no-repeat; }
.worlds > :nth-child(3) .world-scrim {
  background: linear-gradient(180deg, rgba(8,8,7,.5) 0%, rgba(8,8,7,.12) 34%, rgba(8,8,7,.1) 55%, rgba(5,5,4,.85) 100%);
}

/* stamps retired from the world cards — the charts carry them */
.world-stamp { display: none; }

/* the panels ARE the backdrop — full-bleed triptych, no frames */
html, body { overflow-x: clip; }
.worlds {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 54px;
  margin-bottom: 54px;
}
.world {
  border: none;
  border-radius: 0;
  box-shadow: none;
  min-height: 74vh;
}
.world::after { border-radius: 0; }
@media (max-width: 900px) {
  .worlds { grid-template-columns: 1fr; }
  .world { min-height: 62vh; }
}

/* inaugural seal — the true green wax GP seal */
.seal-figure { margin: 0; text-align: center; }
.seal-figure .seal-img {
  width: min(320px, 68vw);
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  display: block;
  margin: 0 auto;
  box-shadow: 0 24px 70px rgba(0,0,0,.65), 0 0 60px rgba(74,114,96,.18);
}
.seal-figure figcaption { margin-top: 18px; }
.seal-figure .seal-name {
  display: block;
  font-family: var(--serif);
  font-weight: 700;
  font-size: 24px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #e4c99f;
}
.seal-figure .seal-refs {
  display: block;
  margin-top: 6px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: #90877d;
}

/* amber breaks its banks — the glow bleeds past the panels */
.worlds { position: relative; }
.worlds::before {
  content: "";
  position: absolute;
  inset: -300px -12vw;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(620px 420px at 17% 52%, rgba(255,172,92,.16), transparent 70%),
    radial-gradient(680px 440px at 50% 48%, rgba(255,190,110,.13), transparent 70%),
    radial-gradient(620px 420px at 83% 52%, rgba(255,182,102,.15), transparent 70%),
    radial-gradient(900px 300px at 50% 50%, rgba(255,170,90,.06), transparent 70%);
}

/* the abyss — fixed amber/black backdrop, slowly breathing; text scrolls in front */
.abyss {
  position: fixed;
  inset: -12%;
  z-index: -4;
  pointer-events: none;
  background:
    radial-gradient(720px 480px at 16% 20%, rgba(255,172,92,.11), transparent 70%),
    radial-gradient(780px 500px at 84% 28%, rgba(255,182,102,.09), transparent 70%),
    radial-gradient(940px 620px at 50% 80%, rgba(255,170,90,.075), transparent 70%),
    radial-gradient(520px 380px at 68% 58%, rgba(255,190,110,.05), transparent 70%);
  animation: abyssdrift 70s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes abyssdrift {
  from { transform: translate3d(-2%, -1.5%, 0) scale(1); }
  to { transform: translate3d(2%, 2%, 0) scale(1.07); }
}
@media (prefers-reduced-motion: reduce) { .abyss { animation: none; } }

/* amber veins — thin lines of light coursing through the whole site */
.veins {
  position: fixed;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  opacity: .5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='1200'%3E%3Cg stroke='%23ffb45e' fill='none' stroke-linecap='round'%3E%3Cpath d='M180,60 C200,180 150,300 190,430 C220,540 180,660 210,780' stroke-width='1.4' opacity='0.28'/%3E%3Cpath d='M190,430 C240,470 260,520 250,580' stroke-width='1' opacity='0.2'/%3E%3Cpath d='M940,120 C920,260 970,380 930,520 C900,630 950,760 920,900' stroke-width='1.4' opacity='0.24'/%3E%3Cpath d='M930,520 C880,560 860,620 875,680' stroke-width='1' opacity='0.18'/%3E%3Cpath d='M560,900 C580,1000 540,1100 570,1200' stroke-width='1.2' opacity='0.2'/%3E%3C/g%3E%3Cg stroke='%23ff9a3c' fill='none' stroke-linecap='round' style='filter:blur(3px)'%3E%3Cpath d='M180,60 C200,180 150,300 190,430 C220,540 180,660 210,780' stroke-width='3' opacity='0.10'/%3E%3Cpath d='M940,120 C920,260 970,380 930,520 C900,630 950,760 920,900' stroke-width='3' opacity='0.08'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 1200px 1200px;
  animation: veinshimmer 9s ease-in-out infinite alternate;
}
@keyframes veinshimmer { from { opacity: .38; } to { opacity: .62; } }
@media (prefers-reduced-motion: reduce) { .veins { animation: none; opacity: .5; } }
