:root {
  --inner-paper: #f4f1e9;
  --inner-paper-2: #ebe7dc;
  --inner-surface: #fffdf8;
  --inner-ink: #17251e;
  --inner-ink-2: #284438;
  --inner-muted: #69736d;
  --inner-faint: #5f6a63;
  --inner-line: #d7d3c8;
  --inner-line-strong: #bcb8ac;
  --inner-accent: #a75d34;
  --inner-accent-soft: #f0dfd2;
  --inner-green: #214b39;
  --inner-green-soft: #dbe7df;
  --inner-blue: #355f7c;
  --inner-max: 1320px;
  --inner-reading: 760px;
  --inner-ease: cubic-bezier(.16, 1, .3, 1);
}

html[data-theme="dark"] {
  --inner-paper: #111613;
  --inner-paper-2: #171d19;
  --inner-surface: #1b211d;
  --inner-ink: #edf1ed;
  --inner-ink-2: #c9d9cf;
  --inner-muted: #a1aaa4;
  --inner-faint: #aab3ad;
  --inner-line: #333b36;
  --inner-line-strong: #4c5650;
  --inner-accent: #d28a5f;
  --inner-accent-soft: #3a2921;
  --inner-green: #8db9a1;
  --inner-green-soft: #22332a;
  --inner-blue: #8cb1ca;
}

body:not([data-page="home"]) {
  color: var(--inner-ink);
  background: var(--inner-paper);
  font-size: 16px;
  line-height: 1.68;
}

body:not([data-page="home"]) .portal-utility { display: none; }
body:not([data-page="home"]) .site-header { height: 60px; background: color-mix(in srgb, var(--inner-paper) 92%, transparent); }
body:not([data-page="home"]) .header-inner { height: 60px; }
body:not([data-page="home"]) { --site-header-height: 60px; }
body:not([data-page="home"]) .mega-menu { top: 60px; }
body:not([data-page="home"]) .nav-backdrop { top: 60px; }
body:not([data-page="home"]) .brand-copy strong,
body:not([data-page="home"]) .nav-primary,
body:not([data-page="home"]) .nav-expand,
body:not([data-page="home"]) .header-icon { color: var(--inner-ink); }
body:not([data-page="home"]) .brand-copy small { color: var(--inner-muted); }

.inner-container {
  width: min(calc(100% - 64px), var(--inner-max));
  margin-inline: auto;
}

.inner-page { min-height: 70vh; overflow: clip; background: var(--inner-paper); }
.inner-page :where(h1, h2, h3, p) { margin-top: 0; }

.inner-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 20px;
  color: var(--inner-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.inner-kicker::before {
  width: 28px;
  height: 2px;
  background: currentColor;
  content: "";
}

.inner-hero {
  position: relative;
  min-height: 300px;
  border-bottom: 1px solid var(--inner-line-strong);
  background: var(--inner-paper);
}

.inner-hero::after {
  position: absolute;
  right: max(32px, calc((100vw - var(--inner-max)) / 2));
  bottom: 0;
  left: max(32px, calc((100vw - var(--inner-max)) / 2));
  height: 1px;
  background: var(--inner-line);
  content: "";
}

.inner-hero-grid {
  display: grid;
  min-height: 300px;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr);
  align-items: end;
  gap: clamp(56px, 8vw, 128px);
  padding-block: 72px 58px;
}

.inner-hero h1 {
  max-width: 780px;
  margin-bottom: 0;
  color: var(--inner-ink);
  font-size: clamp(38px, 4.2vw, 52px);
  font-weight: 650;
  letter-spacing: -.045em;
  line-height: 1.08;
}

.inner-hero-summary {
  padding-top: 20px;
  border-top: 1px solid var(--inner-line-strong);
}

.inner-hero-summary p {
  max-width: 560px;
  margin-bottom: 22px;
  color: var(--inner-muted);
  font-size: 16px;
  line-height: 1.78;
}

.inner-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}

.inner-facts span {
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid var(--inner-line);
  border-radius: 3px;
  color: var(--inner-muted);
  background: var(--inner-surface);
  font-size: 12px;
}

.inner-local-nav {
  position: sticky;
  z-index: 30;
  top: 60px;
  border-bottom: 1px solid var(--inner-line);
  background: color-mix(in srgb, var(--inner-paper) 94%, transparent);
  backdrop-filter: blur(14px);
}

.inner-local-row {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.inner-local-row > span {
  color: var(--inner-faint);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
}

.inner-local-row nav,
.inner-local-links { display: flex; min-width: 0; align-items: center; gap: 26px; }
.inner-local-row a {
  position: relative;
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  color: var(--inner-muted);
  font-size: 14px;
  font-weight: 580;
  white-space: nowrap;
}

.inner-local-row a:hover,
.inner-local-row a[aria-current="true"] { color: var(--inner-ink); }
.inner-local-row a[aria-current="true"]::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: var(--inner-accent);
  content: "";
}

.inner-section { padding-block: 72px; border-bottom: 1px solid var(--inner-line); }
.inner-section-tight { padding-block: 48px; }

.inner-section-head {
  display: grid;
  grid-template-columns: minmax(0, .75fr) minmax(300px, .55fr);
  gap: clamp(56px, 9vw, 136px);
  align-items: end;
  margin-bottom: 44px;
}

.inner-section-head h2 {
  margin-bottom: 0;
  color: var(--inner-ink);
  font-size: clamp(30px, 3.4vw, 42px);
  font-weight: 630;
  letter-spacing: -.04em;
  line-height: 1.15;
}

.inner-section-head > p {
  margin-bottom: 0;
  padding-top: 18px;
  border-top: 1px solid var(--inner-line-strong);
  color: var(--inner-muted);
  font-size: 15px;
  line-height: 1.75;
}

.solid-link,
.solid-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0 18px;
  border: 1px solid var(--inner-ink);
  border-radius: 3px;
  color: var(--inner-surface);
  background: var(--inner-ink);
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
  transition: color 180ms ease, background 180ms ease, border-color 180ms ease, transform 220ms var(--inner-ease);
}

.solid-link:hover,
.solid-button:hover { transform: translateY(-1px); background: var(--inner-green); border-color: var(--inner-green); }
.solid-link.secondary,
.solid-button.secondary { color: var(--inner-ink); background: transparent; border-color: var(--inner-line-strong); }
.solid-link.secondary:hover,
.solid-button.secondary:hover { background: var(--inner-surface); border-color: var(--inner-ink); }

.directory-layout {
  display: grid;
  grid-template-columns: 218px minmax(0, 1fr) 330px;
  gap: 34px;
  align-items: start;
}

.directory-rail,
.directory-preview { position: sticky; top: 148px; }
.directory-rail { border-top: 3px solid var(--inner-ink); }

.directory-rail button,
.directory-rail a {
  display: flex;
  width: 100%;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  padding: 0 10px;
  border: 0;
  border-bottom: 1px solid var(--inner-line);
  color: var(--inner-muted);
  background: transparent;
  font-size: 14px;
  text-align: left;
  cursor: pointer;
}

.directory-rail button:hover,
.directory-rail a:hover,
.directory-rail [aria-pressed="true"],
.directory-rail [aria-current="page"] {
  color: var(--inner-ink);
  background: var(--inner-surface);
  box-shadow: inset 3px 0 var(--inner-accent);
}

.directory-main { min-width: 0; border-top: 3px solid var(--inner-ink); }
.directory-toolbar {
  display: grid;
  min-height: 64px;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 18px;
  border-bottom: 1px solid var(--inner-line-strong);
}

.directory-toolbar input,
.solid-input,
.solid-select,
.solid-textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--inner-line-strong);
  border-radius: 3px;
  outline: 0;
  color: var(--inner-ink);
  background: var(--inner-surface);
  font-size: 15px;
}

.directory-toolbar input { border: 0; background: transparent; }
.solid-input,
.solid-select { padding-inline: 13px; }
.solid-textarea { min-height: 148px; padding: 12px 13px; resize: vertical; }
.solid-input:focus,
.solid-select:focus,
.solid-textarea:focus { border-color: var(--inner-green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--inner-green) 14%, transparent); }

.directory-count { color: var(--inner-faint); font-size: 12px; }
.directory-list { border-bottom: 1px solid var(--inner-line-strong); }

.directory-row {
  position: relative;
  display: grid;
  min-height: 112px;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 18px 10px 18px 0;
  border-bottom: 1px solid var(--inner-line);
  color: var(--inner-ink);
  transition: padding 220ms var(--inner-ease), background 180ms ease;
}

.directory-row:hover,
.directory-row.is-active { padding-left: 12px; background: var(--inner-surface); }
.directory-row.is-active::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 3px;
  background: var(--inner-accent);
  content: "";
}
.directory-row > span { color: var(--inner-accent); font-size: 12px; font-variant-numeric: tabular-nums; }
.directory-row h3 { margin: 3px 0 8px; font-size: 18px; font-weight: 650; letter-spacing: -.015em; }
.directory-row p { margin-bottom: 0; color: var(--inner-muted); font-size: 14px; line-height: 1.6; }
.directory-row small { color: var(--inner-faint); font-size: 12px; white-space: nowrap; }

.directory-preview {
  min-height: 430px;
  padding: 24px;
  border-top: 3px solid var(--inner-accent);
  border-bottom: 1px solid var(--inner-line-strong);
  background: var(--inner-surface);
}
.directory-preview > small { color: var(--inner-accent); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.directory-preview h3 { margin: 28px 0 16px; font-size: 27px; font-weight: 620; letter-spacing: -.03em; line-height: 1.25; }
.directory-preview p { color: var(--inner-muted); font-size: 14px; line-height: 1.75; }
.directory-preview dl { margin: 24px 0 0; border-top: 1px solid var(--inner-line); }
.directory-preview dl div { display: grid; grid-template-columns: 86px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--inner-line); font-size: 12px; }
.directory-preview dt { color: var(--inner-faint); }
.directory-preview dd { margin: 0; color: var(--inner-ink); }
.directory-preview .solid-link { width: 100%; margin-top: 22px; }

.index-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--inner-line-strong);
  border-left: 1px solid var(--inner-line-strong);
}

.index-card {
  position: relative;
  min-height: 236px;
  padding: 25px;
  border-right: 1px solid var(--inner-line-strong);
  border-bottom: 1px solid var(--inner-line-strong);
  color: var(--inner-ink);
  background: var(--inner-surface);
  transition: background 180ms ease, color 180ms ease;
}
.index-card:hover { color: var(--inner-surface); background: var(--inner-green); }
.index-card > small { color: var(--inner-accent); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.index-card:hover > small { color: #e8cbb9; }
.index-card h3 { margin: 42px 0 13px; font-size: 24px; font-weight: 640; letter-spacing: -.025em; }
.index-card p { margin-bottom: 28px; color: var(--inner-muted); font-size: 14px; line-height: 1.7; }
.index-card:hover p { color: rgba(255, 255, 255, .74); }
.index-card b { position: absolute; right: 24px; bottom: 22px; font-size: 13px; font-weight: 600; }

.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 54px; align-items: start; }
.reading-column { max-width: var(--inner-reading); }
.reading-column h2 { margin: 58px 0 18px; font-size: 30px; font-weight: 630; letter-spacing: -.03em; }
.reading-column h2:first-child { margin-top: 0; }
.reading-column p,
.reading-column li { color: var(--inner-muted); font-size: 16px; line-height: 1.9; }
.reading-column ul,
.reading-column ol { padding-left: 1.35em; }
.reading-aside { position: sticky; top: 148px; border-top: 3px solid var(--inner-ink); }
.reading-aside section { padding: 18px 4px; border-bottom: 1px solid var(--inner-line); }
.reading-aside small { color: var(--inner-faint); font-size: 11px; letter-spacing: .1em; }
.reading-aside h3 { margin: 10px 0 8px; font-size: 17px; }
.reading-aside p { margin-bottom: 0; color: var(--inner-muted); font-size: 13px; }

.record-table { width: 100%; border-collapse: collapse; border-top: 3px solid var(--inner-ink); background: var(--inner-surface); }
.record-table th,
.record-table td { padding: 14px 12px; border-bottom: 1px solid var(--inner-line); text-align: left; vertical-align: top; }
.record-table th { color: var(--inner-faint); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.record-table td { color: var(--inner-muted); font-size: 14px; }
.record-table td strong { color: var(--inner-ink); font-size: 15px; }

.callout-band { color: #f5f2e9; background: #173326; }
html[data-theme="dark"] .callout-band { background: #0a100d; }
.callout-band .inner-section-head h2 { color: #f5f2e9; }
.callout-band .inner-section-head > p { color: rgba(245, 242, 233, .7); border-color: rgba(245, 242, 233, .22); }

.reveal-solid { opacity: 0; transform: translateY(12px); transition: opacity 520ms var(--inner-ease), transform 520ms var(--inner-ease); }
.reveal-solid.is-visible { opacity: 1; transform: none; }

@media (max-width: 1080px) {
  .directory-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .directory-preview { display: none; }
  .index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  body:not([data-page="home"]) { --site-header-height: 72px; }
  body:not([data-page="home"]) .site-header,
  body:not([data-page="home"]) .header-inner { height: 72px; }
  body:not([data-page="home"]) .mega-menu { top: auto; }
  .inner-local-nav { top: 72px; }
  .directory-rail,
  .reading-aside { top: 140px; }
}

@media (max-width: 760px) {
  .inner-container { width: min(calc(100% - 36px), var(--inner-max)); }
  .inner-hero-grid,
  .inner-section-head,
  .content-grid { grid-template-columns: 1fr; }
  .inner-hero-grid { min-height: 0; gap: 36px; padding-block: 54px 46px; }
  .inner-hero { min-height: 0; }
  .inner-hero h1 { font-size: clamp(34px, 10vw, 44px); }
  .inner-section-head { gap: 24px; }
  .inner-local-row { overflow-x: auto; scrollbar-width: none; }
  .inner-local-row::-webkit-scrollbar { display: none; }
  .inner-local-row > span { display: none; }
  .inner-local-row nav,
  .inner-local-links { gap: 22px; }
  .directory-layout { grid-template-columns: 1fr; gap: 22px; }
  .directory-rail { position: static; display: flex; overflow-x: auto; border-top-width: 1px; }
  .directory-rail button,
  .directory-rail a { min-width: 136px; border-right: 1px solid var(--inner-line); }
  .directory-rail button:hover,
  .directory-rail a:hover,
  .directory-rail [aria-pressed="true"],
  .directory-rail [aria-current="page"] { box-shadow: inset 0 -3px var(--inner-accent); }
  .index-grid { grid-template-columns: 1fr; }
  .index-card { min-height: 205px; }
  .reading-aside { position: static; }
  .record-table { min-width: 680px; }
  .table-scroll { overflow-x: auto; }
}

@media (max-width: 640px) {
  body:not([data-page="home"]) { --site-header-height: 64px; }
  body:not([data-page="home"]) .site-header,
  body:not([data-page="home"]) .header-inner { height: 64px; }
  .inner-local-nav { top: 64px; }
  .inner-section { padding-block: 56px; }
  .directory-row { grid-template-columns: 38px 1fr; }
  .directory-row > small { grid-column: 2; }
  .inner-local-row nav,
  .inner-local-links { overflow-x: auto; scrollbar-width: none; }
  .inner-local-row nav::-webkit-scrollbar,
  .inner-local-links::-webkit-scrollbar { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .reveal-solid { opacity: 1; transform: none; transition: none; }
  .index-card,
  .directory-row,
  .solid-button,
  .solid-link { transition: none; }
}
