:root {
  color-scheme: dark;
  --steel: #161b22;
  --steel-raised: #1d2630;
  --steel-soft: #25313c;
  --sky: #58b6e8;
  --sky-soft: #9bd7f6;
  --frost: #d3dde4;
  --frost-muted: #aebbc4;
  --ink-dark: #101820;
}

body {
  color: var(--frost);
  background: var(--steel);
}

/* The faint sheen sits on its own fixed layer, so every text element keeps a flat, measurable background. */
body::before {
  position: fixed;
  z-index: -2;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(112deg, rgba(255, 255, 255, 0.018), transparent 28%, rgba(255, 255, 255, 0.012) 46%, transparent 74%);
}

a {
  color: var(--sky-soft);
}

a:hover {
  color: #d7f2ff;
}

a:focus-visible,
button:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--sky);
  outline-offset: 3px;
}

.side-index {
  background: #10151b;
  border-right: 1px solid #31404c;
}

.index-kicker,
.eyebrow,
.rail-label,
.pathway-list > li::before,
.save-status {
  color: var(--sky);
}

.index-title {
  color: var(--frost);
}

.index-link {
  color: var(--frost-muted);
  border-left: 2px solid transparent;
}

.index-link:hover,
.index-link[aria-current="page"] {
  color: var(--frost);
  background: var(--steel-raised);
  border-left-color: var(--sky);
}

.mobile-index summary {
  color: var(--sky-soft);
  border-top: 1px solid #31404c;
}

.page-frame::before,
.page-frame::after,
.helix-glyph {
  color: var(--sky);
}

.rail-rule {
  background: var(--sky);
}

.section-block + .section-block,
.pathway-list > li,
.site-footer {
  border-color: #3b4a56;
}

.action-link,
.next-link,
.notes-button {
  color: var(--ink-dark);
  text-decoration: none;
  background: var(--sky);
  border: 1px solid var(--sky);
  border-radius: 0.18rem;
}

.action-link:hover,
.next-link:hover,
.notes-button:hover {
  color: var(--ink-dark);
  background: #8fd3f5;
}

.action-link.is-quiet,
.notes-button.is-quiet {
  color: var(--frost);
  background: transparent;
  border-color: #60717e;
}

.action-link.is-quiet:hover,
.notes-button.is-quiet:hover {
  color: var(--frost);
  background: var(--steel-soft);
}

.keyline-card,
.callout,
.notes-panel,
.source-drawer,
.image-panel {
  background: rgba(29, 38, 48, 0.76);
  border-color: #465766;
  border-top-color: var(--sky);
}

.keyline-card,
.term-card {
  border-left: 2px solid var(--sky);
}

.callout {
  box-shadow: inset 4px 0 0 var(--sky);
}

.source-drawer summary {
  color: var(--sky-soft);
  font-weight: 650;
}

.ruled-table th,
.ruled-table td {
  border-color: #4b5b68;
}

.ruled-table th {
  color: var(--sky-soft);
  background: #111820;
}

.ruled-table tr:nth-child(even) td {
  background: rgba(35, 47, 58, 0.58);
}

.term-grid {
  background: #465766;
  border: 1px solid #465766;
}

.term-card {
  background: var(--steel-raised);
}

.term-card dt {
  color: var(--sky-soft);
}

.notes-area {
  color: var(--frost);
  background: #0e141a;
  border: 1px solid #5c6c78;
  border-radius: 0.15rem;
}

.image-panel img {
  background: #0f171e;
}

.image-panel figcaption,
.microcopy {
  color: var(--frost-muted);
}

.skip-link {
  color: var(--ink-dark);
  background: var(--sky);
}

::selection {
  color: var(--ink-dark);
  background: var(--sky-soft);
}

@media (max-width: 600px) {
  .ruled-table tbody tr {
    border-color: #4b5b68;
  }

  .ruled-table td::before {
    color: var(--sky);
  }
}

@media (max-width: 900px) {
  .side-index {
    position: relative;
    border-right: 0;
    border-bottom: 1px solid #31404c;
  }
}
