:root {
  --paper: #f3efe4;
  --paper-deep: #e5dcc9;
  --cloud: #fffdf7;
  --ink: #173229;
  --ink-soft: #365248;
  --moss: #567659;
  --lichen: #aaa75b;
  --terra: #b4573f;
  --terra-deep: #843b2d;
  --muted: #65736b;
  --line: rgba(23, 50, 41, 0.2);
  --hairline: rgba(23, 50, 41, 0.1);
  --header-height: 82px;
  --shell: min(1460px, calc(100% - 64px));
}

* { box-sizing: border-box; }

html { overflow-x: clip; scroll-behavior: smooth; }

body {
  min-width: 320px;
  margin: 0;
  overflow-x: clip;
  background: var(--paper);
  color: var(--ink);
  font-family: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  font-size: 16px;
  line-height: 1.7;
}

body.menu-is-open { overflow: hidden; }

img { display: block; max-width: 100%; }
button, input { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
h1, h2, h3, h4, p, figure, blockquote, ul, ol, dl { margin-top: 0; }
h1, h2, h3, h4 { margin-bottom: 0; line-height: 1.08; letter-spacing: 0; }

:focus-visible { outline: 3px solid var(--terra); outline-offset: 3px; }
[hidden] { display: none !important; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: -70px;
  left: 20px;
  padding: 10px 14px;
  background: var(--terra);
  color: var(--cloud);
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus { top: 18px; }

/* The header is a compact instrument panel, not a conventional navigation bar. */
.atlas-header {
  position: relative;
  z-index: 50;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: var(--header-height);
  align-items: center;
  padding: 0 clamp(20px, 4vw, 64px);
  border-bottom: 1px solid var(--line);
  background: var(--paper);
  transition: box-shadow 180ms ease, background-color 180ms ease;
}
.atlas-header.is-scrolled { box-shadow: 0 8px 22px rgba(23, 50, 41, 0.1); }

.atlas-brand { display: inline-flex; min-width: 0; align-items: center; gap: 13px; text-decoration: none; }
.atlas-brand-mark, .atlas-footer-mark {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid currentColor;
  color: var(--ink);
  font-family: "DM Mono", monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.atlas-brand-copy { display: grid; min-width: 0; gap: 1px; line-height: 1.2; }
.atlas-brand-copy b { font-size: 16px; font-weight: 700; }
.atlas-brand-copy small, .atlas-nav-heading span, .atlas-nav-links span, .atlas-footer-brand > div > span, .atlas-footer-note {
  font-family: "DM Mono", "Noto Sans KR", monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.atlas-brand-copy small { color: var(--muted); }

.atlas-navigation { position: relative; display: flex; justify-content: flex-end; }
.atlas-menu-toggle {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 11px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-family: "DM Mono", "Noto Sans KR", monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.atlas-menu-icon { display: grid; width: 20px; gap: 6px; }
.atlas-menu-icon i { display: block; height: 1px; background: currentColor; transition: transform 180ms ease; }
.atlas-menu-toggle[aria-expanded="true"] .atlas-menu-icon i:first-child { transform: translateY(3.5px) rotate(45deg); }
.atlas-menu-toggle[aria-expanded="true"] .atlas-menu-icon i:last-child { transform: translateY(-3.5px) rotate(-45deg); }

.atlas-nav {
  position: absolute;
  z-index: 60;
  top: calc(100% + 20px);
  right: 0;
  display: grid;
  width: min(520px, calc(100vw - 40px));
  grid-template-columns: minmax(0, 1fr) 154px;
  border: 1px solid var(--ink);
  background: var(--cloud);
  box-shadow: 12px 12px 0 var(--terra);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-10px);
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
  visibility: hidden;
}
.atlas-nav.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; }
.atlas-nav-heading { display: flex; grid-column: 1 / -1; min-height: 52px; align-items: center; justify-content: space-between; padding: 0 18px; border-bottom: 1px solid var(--line); }
.atlas-nav-heading a { color: var(--terra-deep); font-size: 12px; font-weight: 700; text-decoration: none; }
.atlas-nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; }
.atlas-nav-links a { display: flex; min-height: 44px; align-items: center; gap: 8px; padding: 9px; font-size: 14px; font-weight: 700; text-decoration: none; }
.atlas-nav-links a:hover, .atlas-nav-links a:focus-visible, .atlas-nav-links a[aria-current="page"] { background: var(--paper-deep); }
.atlas-nav-links span { color: var(--terra); }
.atlas-nav-actions { display: grid; align-content: center; gap: 10px; padding: 17px; border-left: 1px solid var(--line); background: var(--ink); }
.atlas-nav-actions a { color: var(--cloud); font-size: 13px; font-weight: 700; line-height: 1.45; text-decoration: none; }
.atlas-nav-actions a:hover, .atlas-nav-actions a:focus-visible { color: var(--lichen); }

/* Home atlas: navigation, context, and live information occupy one working surface. */
.atlas-shell {
  position: relative;
  display: grid;
  min-height: calc(100svh - var(--header-height));
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(640px, 1fr) auto;
  overflow: clip;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
.atlas-grid { position: absolute; inset: 0; pointer-events: none; }
.atlas-grid::before, .atlas-grid::after { position: absolute; display: block; content: ""; }
.atlas-grid::before { top: 0; bottom: 0; left: 19%; width: 1px; background: var(--hairline); }
.atlas-grid::after { right: -11%; bottom: 27%; width: 71%; border-top: 1px solid var(--line); transform: rotate(-17deg); transform-origin: left; }

.atlas-coordinate { align-self: start; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.09em; }
.atlas-coordinate span { color: var(--terra); }
.atlas-explorer { position: relative; z-index: 1; display: grid; grid-column: 1; grid-row: 1; grid-template-columns: minmax(400px, 0.9fr) minmax(0, 1.5fr); min-width: 0; }
.atlas-compass { position: relative; display: grid; min-height: 640px; grid-template-rows: auto minmax(420px, 1fr); border-right: 1px solid var(--line); background: var(--paper-deep); }
.atlas-compass-masthead { position: relative; z-index: 3; display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, 0.74fr); gap: clamp(18px, 2.4vw, 34px); padding: 25px clamp(24px, 3.2vw, 46px) 22px; border-bottom: 1px solid var(--line); background: var(--paper-deep); }
.atlas-masthead-name { display: grid; align-content: space-between; gap: 22px; min-width: 0; }
.atlas-masthead-name h1 { margin: 0; font-size: clamp(34px, 3.2vw, 56px); line-height: 1.05; white-space: nowrap; }
.atlas-masthead-meta { display: grid; align-content: start; gap: 13px; min-width: 0; }
.atlas-compass-title { position: static; z-index: auto; margin: 0; color: var(--muted); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.09em; }
.atlas-compass-title span { margin-left: 9px; color: var(--terra); }
.atlas-masthead-description { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.65; }
.atlas-compass-instruction { position: static; z-index: auto; margin: 0; color: var(--ink-soft); font-size: 11px; line-height: 1.55; }
.atlas-compass-instruction span { margin-right: 5px; color: var(--terra); font-family: "DM Mono", monospace; }

.atlas-node-field { position: relative; min-height: 420px; overflow: hidden; }
.atlas-node-field::before, .atlas-node-field::after { position: absolute; pointer-events: none; content: ""; }
.atlas-node-field::before { top: 17%; left: 13%; width: 78%; height: 62%; border: 1px solid rgba(23, 50, 41, 0.2); transform: rotate(-8deg); }
.atlas-node-field::after { top: 45%; left: -13%; width: 126%; border-top: 1px solid rgba(23, 50, 41, 0.24); transform: rotate(27deg); }
.atlas-node {
  position: absolute;
  z-index: 2;
  display: grid;
  width: clamp(92px, 9vw, 134px);
  min-height: clamp(92px, 9vw, 134px);
  place-content: center;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
  text-align: center;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.atlas-node::before { position: absolute; top: 8px; left: 8px; width: 6px; height: 6px; border: 1px solid currentColor; content: ""; transform: rotate(45deg); }
.atlas-node-orbit { position: absolute; inset: -10px; border: 1px solid rgba(23, 50, 41, 0.26); border-radius: 50%; transform: scale(0.68); transition: transform 180ms ease, opacity 180ms ease; }
.atlas-node-number, .atlas-node small { font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.09em; }
.atlas-node-number { color: var(--terra); }
.atlas-node-label { font-size: 14px; font-weight: 700; line-height: 1.25; }
.atlas-node small { color: var(--muted); font-size: 8px; }
.atlas-node:hover, .atlas-node:focus-visible, .atlas-node.is-active { background: var(--ink); box-shadow: 7px 7px 0 var(--terra); color: var(--cloud); transform: translate(-3px, -3px); }
.atlas-node:hover .atlas-node-orbit, .atlas-node:focus-visible .atlas-node-orbit, .atlas-node.is-active .atlas-node-orbit { border-color: var(--lichen); opacity: 0.85; transform: scale(1); }
.atlas-node:hover small, .atlas-node:focus-visible small, .atlas-node.is-active small { color: var(--lichen); }
.atlas-node[data-atlas-target="about"] { top: 15%; left: 11%; }
.atlas-node[data-atlas-target="worship"] { top: 10%; right: 10%; }
.atlas-node[data-atlas-target="generation"] { top: 43%; left: 15%; }
.atlas-node[data-atlas-target="community"] { top: 38%; right: 14%; }
.atlas-node[data-atlas-target="resources"] { bottom: 17%; left: 8%; }
.atlas-node[data-atlas-target="giving"] { bottom: 4%; left: 41%; }
.atlas-node[data-atlas-target="visit"] { right: 4%; bottom: 26%; }

.atlas-stage { position: relative; min-width: 0; overflow: hidden; background: var(--ink); }
.atlas-stage::before { position: absolute; top: 11%; left: 11%; width: 77%; height: 73%; border: 1px solid rgba(255, 253, 247, 0.22); content: ""; transform: rotate(-7deg); }
.atlas-stage::after { position: absolute; top: 27%; left: -12%; width: 127%; border-top: 1px solid rgba(255, 253, 247, 0.2); content: ""; transform: rotate(31deg); }
.atlas-stage-panel { position: absolute; inset: 0; z-index: 1; display: grid; grid-template-columns: 50px minmax(0, 1fr); grid-template-rows: 1fr auto; gap: 0 26px; min-width: 0; padding: clamp(32px, 4vw, 62px); color: var(--cloud); }
.atlas-stage-panel[hidden] { display: none; }
.atlas-stage-panel.is-entering { animation: atlas-panel-in 260ms ease both; }
.atlas-stage-panel[data-atlas-panel="worship"] { background: var(--moss); }
.atlas-stage-panel[data-atlas-panel="generation"] { background: #496b56; }
.atlas-stage-panel[data-atlas-panel="community"] { background: var(--terra-deep); }
.atlas-stage-panel[data-atlas-panel="resources"] { background: #294d45; }
.atlas-stage-panel[data-atlas-panel="giving"] { background: #6d6546; }
.atlas-stage-panel[data-atlas-panel="visit"] { background: #315843; }
.atlas-stage-ident { display: grid; align-content: start; gap: 12px; padding-top: 3px; font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.atlas-stage-ident span { color: var(--lichen); }
.atlas-stage-ident p { margin: 0; color: rgba(255, 253, 247, 0.62); writing-mode: vertical-rl; }
.atlas-stage-copy { align-self: center; max-width: 530px; }
.atlas-stage-kicker, .atlas-signal-label { margin: 0; color: var(--lichen); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.atlas-stage-copy h2 { max-width: 540px; margin: 13px 0 0; font-size: clamp(32px, 3.3vw, 56px); }
.atlas-stage-copy > p:not(.atlas-stage-kicker):not(.atlas-signal-label):not(.atlas-signal-title):not(.atlas-signal-meta) { max-width: 450px; margin: 21px 0 0; color: rgba(255, 253, 247, 0.83); font-size: 14px; line-height: 1.8; }
.atlas-stage-copy blockquote { max-width: 465px; margin: 25px 0 0; padding-left: 16px; border-left: 2px solid var(--lichen); }
.atlas-stage-copy blockquote p { margin: 0; color: var(--cloud); font-size: 15px; line-height: 1.75; }
.atlas-stage-copy cite { display: block; margin-top: 9px; color: var(--lichen); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 10px; font-style: normal; letter-spacing: 0.07em; }
.atlas-stage-list { display: grid; gap: 7px; margin: 24px 0 0; padding: 0; list-style: none; }
.atlas-stage-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 15px; padding: 7px 0; border-bottom: 1px solid rgba(255, 253, 247, 0.22); font-size: 13px; }
.atlas-stage-list b { color: var(--lichen); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 11px; }
.atlas-stage-list small { grid-column: 1 / -1; color: rgba(255, 253, 247, 0.65); font-size: 11px; }
.atlas-stage-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; color: var(--cloud); font-weight: 700; text-decoration: none; }
.atlas-stage-link span { color: var(--lichen); transition: transform 180ms ease; }
.atlas-stage-link:hover span, .atlas-stage-link:focus-visible span { transform: translateX(5px); }
.atlas-signal-label { margin-top: 24px; }
.atlas-signal-title { margin: 8px 0 0; color: var(--cloud); font-size: 19px; font-weight: 700; line-height: 1.45; }
.atlas-signal-meta { margin: 8px 0 0; color: rgba(255, 253, 247, 0.75); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 11px; }
.atlas-stage-sideword { position: absolute; right: clamp(18px, 3vw, 44px); bottom: 30px; margin: 0; color: rgba(255, 253, 247, 0.13); font-family: "Instrument Sans", "Noto Sans KR", sans-serif; font-size: clamp(56px, 7vw, 118px); font-weight: 700; line-height: 0.8; writing-mode: vertical-rl; }
.atlas-map-link { position: absolute; right: clamp(25px, 4vw, 62px); bottom: clamp(27px, 4vw, 62px); padding: 8px 11px; border: 1px solid var(--cloud); color: var(--cloud); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-decoration: none; }
.atlas-map-link:hover, .atlas-map-link:focus-visible { border-color: var(--lichen); color: var(--lichen); }
.atlas-lens { position: absolute; right: 0; bottom: 0; width: min(42%, 330px); margin: 0; clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%, 0 23%); }
.atlas-lens::after { position: absolute; inset: 0; background: rgba(23, 50, 41, 0.25); content: ""; }
.atlas-lens img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.atlas-lens figcaption { position: absolute; z-index: 1; right: 16px; bottom: 13px; color: var(--cloud); font-family: "DM Mono", monospace; font-size: 8px; font-weight: 700; letter-spacing: 0.1em; }

.atlas-briefing { position: relative; z-index: 1; display: grid; grid-column: 1; grid-row: 2; grid-template-columns: minmax(400px, 0.9fr) minmax(0, 1.5fr); border-top: 1px solid var(--line); background: var(--cloud); }
.atlas-briefing > header { padding: 20px clamp(24px, 3.5vw, 54px); border-right: 1px solid var(--line); }
.atlas-briefing > header p { margin: 0 0 5px; color: var(--terra); font-family: "DM Mono", monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; }
.atlas-briefing h2 { font-size: 20px; }
.atlas-brief-deck { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.atlas-brief-card { display: grid; min-height: 122px; align-content: space-between; gap: 8px; padding: 20px; border-right: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: background-color 180ms ease, color 180ms ease; }
.atlas-brief-card:last-child { border-right: 0; }
.atlas-brief-card span, .atlas-brief-card small { font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.07em; }
.atlas-brief-card span { color: var(--terra); }
.atlas-brief-card b { font-size: 14px; line-height: 1.45; }
.atlas-brief-card small { color: var(--muted); line-height: 1.45; }
.atlas-brief-card:hover, .atlas-brief-card:focus-visible { background: var(--ink); color: var(--cloud); }
.atlas-brief-card:hover span, .atlas-brief-card:focus-visible span { color: var(--lichen); }
.atlas-brief-card:hover small, .atlas-brief-card:focus-visible small { color: rgba(255, 253, 247, 0.66); }
.atlas-brief-card--contact { background: var(--paper-deep); }

/* Route pages retain the atlas language as field notes instead of landing-page bands. */
.route-shell, .archive-shell, .record-shell { width: var(--shell); margin: 0 auto; }
.route-hero, .record-header { position: relative; display: grid; grid-template-columns: 116px minmax(0, 1fr) auto; gap: 28px; min-height: 340px; align-items: start; padding: clamp(50px, 8vw, 116px) 0 56px; border-bottom: 1px solid var(--line); }
.route-hero::after, .record-header::after { position: absolute; top: 15%; right: 3%; width: 184px; height: 184px; border: 1px solid var(--line); content: ""; transform: rotate(45deg); }
.route-hero-index { position: relative; z-index: 1; display: grid; align-content: start; gap: 13px; font-family: "DM Mono", monospace; }
.route-hero-index span { color: var(--terra); font-size: 23px; font-weight: 700; }
.route-hero-index i { width: 1px; height: 86px; background: var(--ink); }
.route-hero-index small { color: var(--muted); font-size: 9px; letter-spacing: 0.1em; writing-mode: vertical-rl; }
.route-hero-copy { position: relative; z-index: 1; max-width: 800px; }
.route-hero-copy > p:first-child, .record-header-main > p:first-child { color: var(--terra); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.route-hero h1, .record-header h1, .archive-header h1 { font-size: clamp(46px, 6vw, 82px); }
.route-hero-copy > p:last-child { max-width: 650px; margin: 23px 0 0; color: var(--ink-soft); font-size: 17px; line-height: 1.85; }
.route-hero-actions { position: relative; z-index: 1; display: grid; gap: 10px; padding-top: 12px; }
.route-hero-actions a { display: flex; min-width: 128px; justify-content: space-between; gap: 20px; padding: 9px 0; border-bottom: 1px solid var(--line); color: var(--ink); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 10px; font-weight: 700; text-decoration: none; }
.route-hero-actions a:hover, .route-hero-actions a:focus-visible { color: var(--terra-deep); }
.route-contents { display: flex; flex-wrap: wrap; gap: 8px 21px; align-items: center; min-height: 66px; border-bottom: 1px solid var(--line); font-size: 13px; }
.route-contents span { color: var(--terra); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.route-contents a { color: var(--ink-soft); text-decoration: none; }
.route-contents a:hover, .route-contents a:focus-visible { color: var(--terra-deep); }
.route-brief { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.route-facts { display: flex; flex-wrap: wrap; gap: 13px 36px; margin: 0; }
.route-facts div { display: grid; gap: 2px; }
.route-facts dt, .route-actions a { color: var(--muted); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.09em; }
.route-facts dd { margin: 0; font-size: 14px; font-weight: 700; }
.route-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.route-actions a { padding: 8px 10px; border: 1px solid var(--line); color: var(--ink); font-size: 10px; text-decoration: none; }
.route-actions a:hover, .route-actions a:focus-visible { border-color: var(--ink); background: var(--ink); color: var(--cloud); }
.route-grid { display: grid; grid-template-columns: 180px minmax(0, 1fr); }
.route-key { align-self: start; position: sticky; top: 20px; display: grid; gap: 9px; padding: 50px 30px 50px 0; border-right: 1px solid var(--line); }
.route-key p, .route-key small { margin: 0; color: var(--muted); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; }
.route-key span { color: var(--terra); font-family: "Instrument Sans", sans-serif; font-size: 54px; font-weight: 700; line-height: 1; }
.route-content { min-width: 0; padding-left: clamp(26px, 5vw, 76px); }
.route-entry { padding: clamp(48px, 7vw, 96px) 0; border-bottom: 1px solid var(--line); }
.route-entry-heading { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 16px; align-items: start; margin-bottom: 35px; }
.route-entry-heading > span { color: var(--terra); font-family: "DM Mono", monospace; font-size: 11px; font-weight: 700; }
.route-entry-heading p { margin: 0 0 6px; color: var(--muted); font-family: "DM Mono", monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; }
.route-entry-heading h2 { font-size: clamp(30px, 3.2vw, 48px); }
.route-schedule { margin: 0; border-top: 2px solid var(--ink); }
.route-schedule > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px 30px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.route-schedule dt { font-weight: 700; }
.route-schedule dd { display: grid; grid-template-columns: auto auto; gap: 13px; margin: 0; color: var(--terra-deep); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 12px; font-weight: 700; }
.route-schedule dd span { color: var(--muted); }
.route-stop + .route-stop { margin-top: 58px; padding-top: 58px; border-top: 1px solid var(--line); }
.route-stop > header { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 16px; align-items: baseline; }
.route-stop > header span { color: var(--terra); font-family: "DM Mono", monospace; font-size: 11px; font-weight: 700; }
.route-stop h2 { font-size: clamp(28px, 3vw, 43px); }
.route-prose { max-width: 790px; margin: 25px 0 0 54px; color: var(--ink-soft); }
.route-prose p, .route-prose li { font-size: 15px; line-height: 1.9; }
.route-prose h2, .route-prose h3 { color: var(--ink); font-size: 22px; }
.route-prose a { color: var(--terra-deep); }
.route-record-link { display: inline-flex; gap: 8px; margin: 20px 0 0 54px; color: var(--terra-deep); font-size: 13px; font-weight: 700; text-decoration: none; }
.route-timeline { margin: 0; padding: 0; list-style: none; }
.route-timeline li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 25px; padding: 21px 0; border-bottom: 1px solid var(--line); }
.route-timeline p { margin: 0; color: var(--terra); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 11px; font-weight: 700; }
.route-timeline h3 { font-size: 19px; }
.route-timeline span { display: block; margin-top: 7px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.route-leader-list { border-top: 2px solid var(--ink); }
.route-leader { border-bottom: 1px solid var(--line); }
.route-leader summary { display: grid; grid-template-columns: 38px minmax(0, 1fr) 26px; gap: 14px; align-items: center; padding: 21px 0; cursor: pointer; list-style: none; }
.route-leader summary::-webkit-details-marker { display: none; }
.route-leader summary > span { color: var(--terra); font-family: "DM Mono", monospace; font-size: 11px; font-weight: 700; }
.route-leader summary div { display: grid; min-width: 0; gap: 2px; }
.route-leader summary b { color: var(--muted); font-size: 12px; }
.route-leader summary strong { font-size: 20px; }
.route-leader summary small { color: var(--muted); font-family: "DM Mono", monospace; font-size: 10px; }
.route-leader summary em { color: var(--terra-deep); font-size: 12px; font-style: normal; }
.route-leader summary i { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid var(--ink); font-family: "DM Mono", monospace; font-style: normal; transition: transform 180ms ease, background-color 180ms ease, color 180ms ease; }
.route-leader[open] summary i { background: var(--ink); color: var(--cloud); transform: rotate(45deg); }
.route-leader-body { max-width: 820px; padding: 4px 0 32px 52px; color: var(--ink-soft); }
.route-leader-body dl { display: grid; gap: 8px; margin: 0 0 18px; }
.route-leader-body dl > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; }
.route-leader-body dt { color: var(--muted); font-size: 12px; }
.route-leader-body dd { margin: 0; font-size: 13px; }
.route-leader-body p { font-size: 14px; line-height: 1.85; }
.route-leader-summary { color: var(--ink); font-weight: 700; }
.route-link-list { border-top: 2px solid var(--ink); }
.route-link-list a { display: grid; grid-template-columns: 38px minmax(0, 1fr) 26px; gap: 15px; align-items: center; min-height: 88px; padding: 16px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.route-link-list a:hover, .route-link-list a:focus-visible { color: var(--terra-deep); }
.route-link-list > a > span, .route-link-list i { color: var(--terra); font-family: "DM Mono", monospace; font-size: 11px; font-style: normal; font-weight: 700; }
.route-link-list a > div { display: grid; gap: 3px; }
.route-link-list b { font-size: 16px; }
.route-link-list small { color: var(--muted); font-size: 12px; }
.route-callout { display: grid; gap: 11px; margin: 46px 0 96px; padding: 28px; border: 1px solid var(--ink); background: var(--paper-deep); }
.route-callout > span { color: var(--terra); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.route-callout strong { font-size: 24px; line-height: 1.3; }
.route-callout p { margin: 0; color: var(--ink-soft); font-size: 14px; }
.route-callout a { color: var(--terra-deep); font-size: 13px; font-weight: 700; text-decoration: none; }

/* Archive is treated like a searchable ledger. */
.archive-shell { padding: 0 0 100px; }
.archive-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 0.42fr); gap: 45px; align-items: end; padding: clamp(56px, 9vw, 130px) 0 52px; border-bottom: 1px solid var(--line); }
.archive-header > div > p, .archive-results-header p { margin: 0 0 12px; color: var(--terra); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.archive-header-meta { display: grid; gap: 14px; }
.archive-header-meta span, .archive-results-header span { color: var(--muted); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; }
.archive-header-meta p { margin: 0; color: var(--ink-soft); font-size: 14px; }
.archive-console { display: grid; grid-template-columns: minmax(240px, 0.55fr) minmax(0, 1.45fr); border-bottom: 1px solid var(--line); }
.archive-search { padding: 25px 28px 26px 0; border-right: 1px solid var(--line); }
.archive-search label { display: block; margin-bottom: 8px; color: var(--muted); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; }
.archive-search > div { display: flex; border-bottom: 1px solid var(--ink); }
.archive-search input { width: 100%; min-width: 0; padding: 9px 0; border: 0; outline: none; background: transparent; color: var(--ink); font-size: 14px; }
.archive-search button { width: 38px; padding: 0; border: 0; background: transparent; color: var(--terra); font-size: 19px; }
.archive-filter { display: flex; flex-wrap: wrap; align-content: center; gap: 8px 20px; padding: 22px 28px; }
.archive-filter a { color: var(--muted); font-size: 13px; text-decoration: none; }
.archive-filter a span, .archive-filter a small { color: var(--terra); font-family: "DM Mono", monospace; font-size: 9px; font-weight: 700; }
.archive-filter a[aria-current="page"], .archive-filter a:hover, .archive-filter a:focus-visible { color: var(--ink); font-weight: 700; }
.archive-results { padding-top: 36px; }
.archive-results-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.archive-records { margin: 0; padding: 0; list-style: none; }
.archive-record { display: grid; grid-template-columns: 46px 105px minmax(0, 1fr) 150px 28px; gap: 18px; align-items: center; min-height: 112px; padding: 19px 0; border-bottom: 1px solid var(--line); }
.archive-record-number, .archive-record-type, .archive-record-meta, .archive-record-open { font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.07em; }
.archive-record-number { color: var(--terra); }
.archive-record-type { color: var(--muted); }
.archive-record-main h2 { font-size: 18px; }
.archive-record-main h2 a { text-decoration: none; }
.archive-record-main h2 a:hover, .archive-record-main h2 a:focus-visible { color: var(--terra-deep); }
.archive-record-main p { display: -webkit-box; margin: 6px 0 0; overflow: hidden; color: var(--muted); font-size: 12px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.archive-record-meta { display: grid; gap: 4px; color: var(--ink-soft); }
.archive-record-meta small { color: var(--muted); font-size: 10px; }
.archive-record-open { display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid var(--ink); color: var(--ink); text-decoration: none; }
.archive-record-open:hover, .archive-record-open:focus-visible { background: var(--ink); color: var(--cloud); }
.archive-empty { padding: 100px 0; text-align: center; }
.archive-empty > p { color: var(--terra); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.archive-empty h2 { font-size: clamp(32px, 4vw, 54px); }
.archive-empty span { display: block; margin-top: 15px; color: var(--muted); }
.archive-empty a { display: inline-flex; gap: 8px; margin-top: 24px; color: var(--terra-deep); font-weight: 700; text-decoration: none; }
.archive-pagination { display: flex; align-items: center; justify-content: space-between; padding-top: 28px; }
.archive-pagination a, .archive-pagination span { color: var(--ink); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 11px; font-weight: 700; text-decoration: none; }
.archive-pagination span { color: var(--muted); }
.archive-pagination b { font-family: "DM Mono", monospace; font-size: 13px; }
.archive-pagination small { color: var(--muted); }

/* Individual records use a document frame instead of a generic article layout. */
.record-header { grid-template-columns: 150px minmax(0, 1fr) 150px; }
.record-back { position: relative; z-index: 1; align-self: start; color: var(--terra-deep); font-family: "DM Mono", "Noto Sans KR", monospace; font-size: 10px; font-weight: 700; text-decoration: none; }
.record-header-main { position: relative; z-index: 1; max-width: 860px; }
.record-summary { max-width: 670px; margin: 22px 0 0; color: var(--ink-soft); font-size: 16px; }
.record-stamp { position: relative; z-index: 1; display: grid; align-self: end; gap: 4px; padding: 14px; border: 1px solid var(--ink); background: var(--paper); font-family: "DM Mono", monospace; text-align: center; }
.record-stamp span, .record-stamp small { color: var(--muted); font-size: 8px; font-weight: 700; letter-spacing: 0.08em; }
.record-stamp strong { color: var(--terra-deep); font-size: 12px; }
.record-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); }
.record-index { align-self: start; position: sticky; top: 22px; display: grid; gap: 6px; padding: 43px 30px 43px 0; border-right: 1px solid var(--line); font-family: "DM Mono", "Noto Sans KR", monospace; }
.record-index > span { margin-top: 12px; color: var(--muted); font-size: 9px; font-weight: 700; letter-spacing: 0.09em; }
.record-index b { color: var(--ink); font-size: 11px; line-height: 1.5; }
.record-index a { margin-top: 18px; color: var(--terra-deep); font-size: 11px; font-weight: 700; text-decoration: none; }
.record-content { min-width: 0; padding: clamp(44px, 6vw, 86px) 0 clamp(70px, 8vw, 120px) clamp(25px, 5vw, 76px); }
.record-image { margin: 0 0 32px; border: 1px solid var(--line); background: var(--paper-deep); }
.record-image img { width: 100%; max-height: 600px; object-fit: contain; }
.record-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin: 0 0 34px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.record-facts > div { padding: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.record-facts dt { color: var(--muted); font-family: "DM Mono", monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.08em; }
.record-facts dd { margin: 4px 0 0; font-size: 13px; font-weight: 700; }
.record-video, .record-embed { position: relative; aspect-ratio: 16 / 9; margin: 0 0 34px; background: var(--ink); }
.record-video iframe, .record-embed iframe { position: absolute; width: 100%; height: 100%; border: 0; }
.record-audio { padding: 20px; margin-bottom: 34px; border: 1px solid var(--line); background: var(--paper-deep); }
.record-audio p { margin-bottom: 9px; font-weight: 700; }
.record-audio audio { width: 100%; }
.record-prose { max-width: 840px; color: var(--ink-soft); }
.record-prose p, .record-prose li { font-size: 15px; line-height: 1.95; }
.record-prose h2, .record-prose h3 { margin-top: 40px; color: var(--ink); font-size: 25px; }
.record-prose img { height: auto; margin: 26px 0; }
.record-prose a { color: var(--terra-deep); }
.record-related { padding: 70px max(32px, calc((100% - 1460px) / 2)); border-top: 1px solid var(--line); background: var(--paper-deep); }
.record-related > header { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.record-related > header p { margin: 0 0 6px; color: var(--terra); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.record-related h2 { font-size: clamp(28px, 3vw, 44px); }
.record-related > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.record-related a { display: grid; grid-template-columns: 32px minmax(0, 1fr) 20px; gap: 8px 12px; min-height: 144px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-decoration: none; }
.record-related a:hover, .record-related a:focus-visible { background: var(--ink); color: var(--cloud); }
.record-related a > span, .record-related b, .record-related small, .record-related i { color: var(--terra); font-family: "DM Mono", monospace; font-size: 9px; font-style: normal; font-weight: 700; }
.record-related strong { grid-column: 2; font-size: 14px; line-height: 1.45; }
.record-related small { grid-column: 2; color: var(--muted); }
.record-related a:hover > span, .record-related a:focus-visible > span, .record-related a:hover b, .record-related a:focus-visible b, .record-related a:hover i, .record-related a:focus-visible i { color: var(--lichen); }
.record-related a:hover small, .record-related a:focus-visible small { color: rgba(255, 253, 247, 0.65); }

.not-found-shell { display: grid; min-height: calc(100svh - var(--header-height)); grid-template-columns: minmax(0, 1fr) minmax(300px, 0.9fr); align-items: center; overflow: hidden; background: var(--ink); color: var(--cloud); }
.not-found-code { margin: 0; color: rgba(255, 253, 247, 0.12); font-family: "Instrument Sans", sans-serif; font-size: clamp(180px, 31vw, 530px); font-weight: 700; letter-spacing: 0; line-height: 0.75; }
.not-found-copy { position: relative; z-index: 1; max-width: 520px; padding: 48px; border-left: 1px solid rgba(255, 253, 247, 0.24); }
.not-found-copy > span { color: var(--lichen); font-family: "DM Mono", monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; }
.not-found-copy h1 { margin-top: 15px; font-size: clamp(38px, 4vw, 62px); }
.not-found-copy p { margin: 21px 0 0; color: rgba(255, 253, 247, 0.76); }
.not-found-copy > div { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 27px; }
.not-found-copy a { padding: 10px 12px; border: 1px solid rgba(255, 253, 247, 0.55); color: var(--cloud); font-size: 13px; font-weight: 700; text-decoration: none; }
.not-found-copy a:hover, .not-found-copy a:focus-visible { border-color: var(--lichen); color: var(--lichen); }

/* Footer is a coordinate legend, intentionally small and direct. */
.atlas-footer { display: grid; grid-template-columns: minmax(200px, 0.8fr) minmax(0, 1.25fr) auto auto; gap: 30px; align-items: center; padding: 30px clamp(20px, 4vw, 64px); background: var(--ink); color: var(--paper); }
.atlas-footer-brand { display: flex; align-items: center; gap: 12px; }
.atlas-footer-mark { color: var(--paper); }
.atlas-footer-brand > div { display: grid; gap: 2px; }
.atlas-footer-brand strong { font-size: 15px; }
.atlas-footer-brand > div > span { color: rgba(243, 239, 228, 0.6); }
.atlas-footer-contact, .atlas-footer-links { display: grid; gap: 3px; }
.atlas-footer a { color: rgba(243, 239, 228, 0.78); font-size: 12px; text-decoration: none; }
.atlas-footer a:hover, .atlas-footer a:focus-visible { color: var(--lichen); }
.atlas-footer-links { grid-auto-flow: column; grid-auto-columns: max-content; gap: 14px; }
.atlas-footer-note { margin: 0; color: rgba(243, 239, 228, 0.53); }

/* Use the established church logo instead of an invented monogram. */
.atlas-brand { gap: 0; }
.atlas-brand-copy { display: none; }
.atlas-brand-logo { width: 154px; height: auto; }
.atlas-footer-logo { display: block; width: 162px; }
.atlas-footer-logo img { width: 100%; filter: brightness(0) invert(1); }
.atlas-footer-copy { display: none; }

[data-reveal] { opacity: 0; transform: translateY(12px); transition: opacity 380ms ease, transform 380ms ease; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }
@keyframes atlas-panel-in { from { opacity: 0; transform: translateY(13px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1180px) {
  :root { --shell: min(100% - 48px, 1100px); }
  .atlas-explorer { grid-template-columns: minmax(330px, 0.82fr) minmax(0, 1.18fr); }
  .atlas-stage-panel { padding: 38px; }
  .atlas-briefing { grid-template-columns: minmax(330px, 0.82fr) minmax(0, 1.18fr); }
  .atlas-brief-card { padding: 16px; }
  .atlas-brief-card b { font-size: 13px; }
}

@media (max-width: 940px) {
  :root { --header-height: 72px; --shell: min(100% - 40px, 760px); }
  .atlas-header { padding: 0 20px; }
  .atlas-nav { position: fixed; top: var(--header-height); right: 0; bottom: 0; left: 0; width: auto; grid-template-columns: 1fr; overflow-y: auto; border: 0; box-shadow: none; }
  .atlas-nav-heading { min-height: 58px; }
  .atlas-nav-links { grid-template-columns: 1fr; padding: 14px 20px; }
  .atlas-nav-links a { min-height: 48px; font-size: 17px; }
  .atlas-nav-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; padding: 20px; border: 0; }
  .atlas-nav-actions a { padding: 12px; border: 1px solid rgba(255, 253, 247, 0.26); }
  .atlas-shell { grid-template-columns: 1fr; grid-template-rows: minmax(700px, 1fr) auto; overflow: visible; }
  .atlas-grid::before { left: 12%; }
  .atlas-explorer { grid-column: 1; grid-row: 1; grid-template-columns: minmax(300px, 0.9fr) minmax(0, 1.1fr); min-height: 700px; }
  .atlas-compass { min-height: 700px; grid-template-rows: auto minmax(470px, 1fr); }
  .atlas-compass-masthead { grid-template-columns: 1fr; gap: 13px; padding: 23px 28px 19px; }
  .atlas-masthead-name { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 20px; }
  .atlas-masthead-meta { grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 8px 18px; }
  .atlas-masthead-description { grid-column: 2; }
  .atlas-compass-instruction { grid-column: 2; }
  .atlas-briefing { grid-column: 1; grid-row: 2; grid-template-columns: 1fr; }
  .atlas-briefing > header { padding: 19px 32px; border-right: 0; border-bottom: 1px solid var(--line); }
  .atlas-brief-deck { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .atlas-brief-card:nth-child(2n) { border-right: 0; }
  .route-hero, .record-header { grid-template-columns: 80px minmax(0, 1fr); }
  .route-hero-actions, .record-stamp { grid-column: 2; justify-self: start; }
  .route-hero::after, .record-header::after { right: 2%; width: 135px; height: 135px; }
  .route-grid, .record-layout { grid-template-columns: 132px minmax(0, 1fr); }
  .route-key, .record-index { padding-right: 21px; }
  .archive-record { grid-template-columns: 38px 86px minmax(0, 1fr) 26px; }
  .archive-record-meta { display: none; }
  .record-related > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .atlas-footer { grid-template-columns: minmax(180px, 1fr) minmax(0, 1fr); }
  .atlas-footer-links, .atlas-footer-note { grid-column: auto; }
}

@media (max-width: 680px) {
  :root { --shell: min(100% - 28px, 600px); }
  body { font-size: 15px; }
  .atlas-header { min-height: 68px; padding: 0 14px; }
  .atlas-brand-copy { display: none; }
  .atlas-brand-mark { width: 35px; height: 35px; }
  .atlas-nav { top: 68px; }
  .atlas-shell { grid-template-rows: minmax(800px, 1fr) auto; }
  .atlas-coordinate { padding-top: 0; border-top: 0; }
  .atlas-explorer { display: block; width: 100%; max-width: 100%; grid-column: 1; grid-row: 1; min-height: 800px; }
  .atlas-compass { width: 100%; max-width: 100%; min-height: 800px; grid-template-rows: auto minmax(630px, 1fr); border-right: 0; }
  .atlas-compass-masthead { grid-template-columns: 1fr; gap: 9px; padding: 19px 20px 16px; }
  .atlas-masthead-name { display: grid; grid-template-columns: 1fr; align-items: start; gap: 10px; }
  .atlas-masthead-name h1 { max-width: 100%; font-size: clamp(32px, 9vw, 42px); }
  .atlas-masthead-meta { display: block; }
  .atlas-masthead-description { max-width: 100%; margin-top: 8px; font-size: 12px; overflow-wrap: anywhere; }
  .atlas-stage { position: absolute; z-index: 5; right: 16px; bottom: 4px; left: 16px; min-height: 246px; border: 1px solid var(--ink); box-shadow: 8px 8px 0 var(--terra); }
  .atlas-stage::before, .atlas-stage::after { display: none; }
  .atlas-stage-panel { grid-template-columns: 26px minmax(0, 1fr); min-height: 246px; padding: 20px; }
  .atlas-stage-ident { gap: 7px; font-size: 8px; }
  .atlas-stage-ident p { font-size: 8px; }
  .atlas-stage-copy { align-self: start; }
  .atlas-stage-copy h2 { margin-top: 7px; font-size: 29px; }
  .atlas-stage-copy > p:not(.atlas-stage-kicker):not(.atlas-signal-label):not(.atlas-signal-title):not(.atlas-signal-meta), .atlas-stage-copy blockquote { display: none; }
  .atlas-stage-list { max-height: 96px; gap: 1px; margin-top: 11px; overflow: hidden; }
  .atlas-stage-list li { padding: 4px 0; font-size: 11px; }
  .atlas-stage-list small { display: none; }
  .atlas-signal-label { margin-top: 14px; }
  .atlas-signal-title { font-size: 15px; }
  .atlas-signal-meta { font-size: 9px; }
  .atlas-stage-link { margin-top: 13px; font-size: 12px; }
  .atlas-stage-sideword, .atlas-lens { display: none; }
  .atlas-map-link { right: 20px; bottom: 19px; font-size: 8px; }
  .atlas-compass-instruction { display: none; }
  .atlas-node-field { width: 100%; min-height: 630px; }
  .atlas-node { width: 88px; min-height: 88px; padding: 8px; }
  .atlas-node-label { font-size: 12px; }
  .atlas-node small { display: none; }
  .atlas-node[data-atlas-target="about"] { top: 13%; left: 8%; }
  .atlas-node[data-atlas-target="worship"] { top: 9%; right: 8%; }
  .atlas-node[data-atlas-target="generation"] { top: 27%; left: 13%; }
  .atlas-node[data-atlas-target="community"] { top: 27%; right: 11%; }
  .atlas-node[data-atlas-target="resources"] { top: 45%; bottom: auto; left: 7%; }
  .atlas-node[data-atlas-target="giving"] { top: 45%; bottom: auto; left: 39%; }
  .atlas-node[data-atlas-target="visit"] { top: 45%; right: 7%; bottom: auto; }
  .atlas-briefing > header { padding: 19px 22px; }
  .atlas-brief-deck { display: block; }
  .atlas-brief-card { min-height: 0; padding: 18px 22px; border-right: 0; border-bottom: 1px solid var(--line); }
  .atlas-brief-card:last-child { border-bottom: 0; }
  .route-shell, .archive-shell, .record-shell { width: 100%; }
  .route-hero, .record-header { display: block; min-height: 0; padding: 48px 22px 42px; }
  .route-hero::after, .record-header::after { top: auto; right: -40px; bottom: -47px; width: 124px; height: 124px; }
  .route-hero-index { grid-template-columns: auto 1fr; align-items: center; gap: 11px; margin-bottom: 22px; }
  .route-hero-index i, .route-hero-index small { display: none; }
  .route-hero h1, .record-header h1, .archive-header h1 { font-size: clamp(40px, 13vw, 58px); }
  .route-hero-copy > p:last-child, .record-summary { font-size: 14px; }
  .route-hero-actions { display: flex; flex-wrap: wrap; gap: 17px; margin-top: 24px; padding: 0; }
  .route-hero-actions a { min-width: 0; padding: 0; border: 0; }
  .route-contents { gap: 9px 17px; min-height: 0; padding: 19px 22px; border-top: 1px solid var(--line); }
  .route-brief { display: block; padding: 23px 22px; }
  .route-facts { gap: 15px 25px; }
  .route-actions { justify-content: flex-start; margin-top: 18px; }
  .route-grid, .record-layout { display: block; }
  .route-key, .record-index { position: static; display: flex; align-items: center; gap: 11px; padding: 16px 22px; border-right: 0; border-bottom: 1px solid var(--line); }
  .route-key span { font-size: 26px; }
  .route-key small { margin-left: auto; }
  .record-index { flex-wrap: wrap; }
  .record-index > span { margin: 0; }
  .record-index b { margin-right: 12px; }
  .record-index a { width: 100%; margin-top: 8px; }
  .route-content, .record-content { padding: 0 22px; }
  .route-entry { padding: 54px 0; }
  .route-entry-heading { grid-template-columns: 28px minmax(0, 1fr); gap: 11px; margin-bottom: 25px; }
  .route-entry-heading h2 { font-size: 30px; }
  .route-schedule > div { gap: 6px 16px; }
  .route-schedule dd { grid-template-columns: 1fr; gap: 2px; text-align: right; }
  .route-prose, .route-record-link { margin-left: 0; }
  .route-prose p, .route-prose li { font-size: 14px; }
  .route-timeline li { grid-template-columns: 82px minmax(0, 1fr); gap: 16px; }
  .route-leader summary { grid-template-columns: 28px minmax(0, 1fr) 25px; gap: 10px; }
  .route-leader summary strong { font-size: 17px; }
  .route-leader-body { padding-left: 0; }
  .route-leader-body dl > div { grid-template-columns: 58px minmax(0, 1fr); }
  .route-link-list a { grid-template-columns: 28px minmax(0, 1fr) 20px; gap: 10px; }
  .route-callout { margin-bottom: 60px; }
  .archive-shell { padding-bottom: 62px; }
  .archive-header { display: block; padding: 52px 22px 37px; }
  .archive-header-meta { margin-top: 25px; }
  .archive-console { display: block; }
  .archive-search { padding: 20px 22px; border-right: 0; border-bottom: 1px solid var(--line); }
  .archive-filter { flex-wrap: nowrap; gap: 19px; padding: 17px 22px; overflow-x: auto; white-space: nowrap; }
  .archive-filter a { flex: 0 0 auto; }
  .archive-results { padding: 28px 22px 0; }
  .archive-record { grid-template-columns: 28px minmax(0, 1fr) 25px; gap: 10px; min-height: 0; padding: 19px 0; }
  .archive-record-type { grid-column: 2; }
  .archive-record-main { grid-column: 2; }
  .archive-record-open { grid-column: 3; grid-row: 1 / span 2; }
  .archive-record-main h2 { font-size: 17px; }
  .archive-record-main p { font-size: 11px; }
  .record-header-main { margin-top: 23px; }
  .record-stamp { display: none; }
  .record-content { padding-top: 36px; padding-bottom: 64px; }
  .record-related { padding: 48px 22px; }
  .record-related > header { display: block; }
  .record-related > div { grid-template-columns: 1fr; }
  .not-found-shell { display: block; min-height: calc(100svh - 68px); padding: 72px 22px; }
  .not-found-code { font-size: 190px; }
  .not-found-copy { padding: 0; border: 0; }
  .atlas-footer { display: grid; grid-template-columns: 1fr; gap: 22px; padding: 31px 22px; }
  .atlas-footer-links { grid-column: auto; }
  .atlas-footer-note { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 1ms !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* The atlas keeps the native pointer, then adds a small coordinate marker for links. */
@media (hover: hover) and (pointer: fine) {
  .atlas-link-cursor {
    --atlas-cursor-x: -100px;
    --atlas-cursor-y: -100px;
    position: fixed;
    z-index: 120;
    top: 0;
    left: 0;
    width: 30px;
    height: 30px;
    pointer-events: none;
    color: var(--terra);
    opacity: 0;
    transform: translate3d(var(--atlas-cursor-x), var(--atlas-cursor-y), 0) translate(-50%, -50%);
    transition: opacity 130ms ease, color 130ms ease;
    will-change: transform, opacity;
  }

  .atlas-link-cursor::before {
    position: absolute;
    inset: 5px;
    border: 1px solid currentColor;
    content: "";
    transform: rotate(45deg) scale(0.72);
    transition: transform 160ms ease;
  }

  .atlas-link-cursor-core {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 5px;
    background: currentColor;
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .atlas-link-cursor-pulse {
    position: absolute;
    inset: 5px;
    border: 1px solid currentColor;
    opacity: 0;
    transform: rotate(45deg) scale(0.3);
  }

  .atlas-link-cursor.is-active { opacity: 1; }
  .atlas-link-cursor.is-active::before { transform: rotate(45deg) scale(1); }
  .atlas-link-cursor.is-clicked .atlas-link-cursor-pulse { animation: atlas-link-pulse 420ms ease-out both; }
  .atlas-link-motion-target:focus-visible { outline-color: var(--terra); outline-offset: 4px; }
}

@keyframes atlas-link-pulse {
  0% { opacity: 0.92; transform: rotate(45deg) scale(0.3); }
  100% { opacity: 0; transform: rotate(45deg) scale(1.65); }
}

@media (prefers-reduced-motion: reduce) {
  .atlas-link-cursor { display: none !important; }
}
