:root {
  color-scheme: dark;
  --canvas: #000000;
  --surface: #0e0e0e;
  --field: #1a1a1a;
  --line: #2a2a2a;
  --primary: #ffffff;
  --secondary: #a1a1a1;
  --tertiary: #7d7d7d;
  --link: #2d7ff9;
}

body {
  color: var(--primary);
  background: var(--canvas);
}

a {
  color: var(--link);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

a:hover {
  color: var(--primary);
}

a:focus-visible,
button:focus-visible,
input:focus-visible {
  outline: 3px solid var(--link);
  outline-offset: 2px;
}

.mast__home,
.card-link,
.next-note,
.desk-index a,
.site-foot a {
  text-decoration: none;
}

.mast__home {
  color: var(--primary);
}

.mast__stamp,
.hero__deck,
.card-link__meta,
.source-link__meta,
.site-foot,
.meta-line {
  color: var(--secondary);
}

.eyebrow,
.contact-entry__caption,
.index-label {
  color: var(--tertiary);
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.contact-entry__grid,
.desk-index,
.worksheet,
.notice,
.question,
.answer,
.fact-strip__item {
  background: var(--surface);
  border: 1px solid var(--line);
}

.contact-entry__grid {
  border-radius: 12px;
}

.contact-entry__cell {
  border-radius: 7px;
  background: linear-gradient(110deg, #101010 20%, #202020 40%, #101010 60%);
  background-size: 200% 100%;
  animation: shimmer 1.4s linear infinite;
}

.contact-entry__cell img {
  border-radius: inherit;
  animation: reveal 250ms ease-out both;
}

.chip {
  color: var(--secondary);
  background: var(--field);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.card-link,
.source-link,
.next-note {
  color: var(--primary);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 12px;
  transition: transform 120ms ease, border-color 120ms ease;
}

.card-link:hover,
.source-link:hover,
.next-note:hover {
  color: var(--primary);
  border-color: var(--secondary);
}

.card-link:active,
.source-link:active,
.next-note:active,
.button:active {
  transform: scale(0.985);
}

.step-list li::before {
  color: var(--primary);
  font-family: "SFMono-Regular", "IBM Plex Mono", monospace;
  font-size: 0.8125rem;
  font-weight: 600;
  background: var(--field);
  border: 1px solid var(--line);
  border-radius: 8px;
}

.notice,
.worksheet,
.question,
.answer,
.fact-strip__item,
.desk-index {
  border-radius: 14px;
}

.answer {
  color: var(--secondary);
}

.field input {
  color: var(--primary);
  background: var(--field);
  border: 1px solid var(--line);
  border-radius: 999px;
}

.field input::placeholder {
  color: var(--tertiary);
}

.button {
  color: var(--canvas);
  font-weight: 700;
  background: var(--primary);
  border: 1px solid var(--primary);
  border-radius: 999px;
  cursor: pointer;
  transition: transform 120ms ease;
}

.button--ghost {
  color: var(--primary);
  background: var(--field);
  border-color: var(--line);
}

.worksheet__result {
  color: var(--primary);
}

.desk-index__links a {
  color: var(--secondary);
  border-radius: 6px;
}

.desk-index__links a:hover,
.desk-index__links a[aria-current="page"] {
  color: var(--canvas);
  background: var(--primary);
}

@keyframes shimmer {
  to {
    background-position: -200% 0;
  }
}

@keyframes reveal {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }
}
