/* Lights out: the original oracle suspended in a neutral-black signal field.
   This file is intentionally theme-scoped; daylight remains its own material. */
.cyber-scene { display: none; }

html[data-theme=dark] {
  --paper: #090909;
  --white: #141414;
  --ink: #ededeb;
  --muted: #a0a09c;
  --line: #2b2b2a;
  --strong-line: #525250;
  --soft: #202020;
  --hover: #242424;
  --code: #1d1d1c;
  --control-line: #646460;
  --annotation: #cececa;
  --material: #adada8;
  --reading-link: #e4e4df;
  --annotation-line: #777771;
  --inset-surface: #1d1d1c;
  --accent: #bff55c;
  --accent-ink: #171a11;
  --tech: #ddddda;
}

html[data-theme=dark] .site-header {
  background: #090909;
  border-bottom-color: #2b2b29;
}
html[data-theme=dark] .manual-identity > span { color: #cde5a4; }
html[data-theme=dark] .brand-words > span { color: #b8b8b2; }
html[data-theme=dark] .header-link { color: #d0d0ca; }
html[data-theme=dark] .light-switch:hover,
html[data-theme=dark] .audio-toggle:hover { background: #242424; }
html[data-theme=dark] .switch-track { box-shadow: 0 0 9px #bff55c16; }

html[data-theme=dark] .hero h1 { font-weight: 500; color: #f1f1ed; }
html[data-theme=dark] .hero-copy > .machine-english { color: #bff55c; }

html[data-theme=dark] .hero-narrative > p { color: #d5d5cf; }
html[data-theme=dark] .hero-narrative > span { color: #979790; }
html[data-theme=dark] .search-form { border: 1px solid #5b5b55; border-radius: 4px; background: linear-gradient(110deg, #1b1b1b, #111111); }
html[data-theme=dark] .search-form:focus-within {
  border-color: var(--accent);
  box-shadow: inset 0 -1px 0 var(--accent);
}
html[data-theme=dark] .search-form input::placeholder { color: #aaaaa2; }
html[data-theme=dark] .search-form kbd {
  color: #a5a59e;
  border-color: #494944;
  border-radius: 2px;
}

html[data-theme=dark] .quick-links > a {
  color: #ccccC5;
  border-color: #65655c;
}
html[data-theme=dark] .quick-links > a:hover,
html[data-theme=dark] .quick-links > a:focus-visible {
  color: var(--accent);
  border-color: var(--accent);
}

/* Geometry is the motion layer; the machine itself stays faithful to the art. */
html[data-theme=dark] .specimen-stage { background: transparent; border: 0; border-radius: 0; overflow: hidden; }
html[data-theme=dark] .specimen-coordinate,
html[data-theme=dark] .specimen-corner,
html[data-theme=dark] .instrument-rings { display: none; }
html[data-theme=dark] .cyber-scene {
  display: block;
  position: absolute;
  inset: 0;
  isolation: isolate;
  pointer-events: none;
}

/* Both assets use the same fitted box; theme changes never move the machine. */
.oracle-collage, html[data-theme=dark] .cyber-machine {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: contain; object-position: 50% 55%;
}
html[data-theme=dark] .cyber-machine {
  z-index: 2; mix-blend-mode: normal; transform: none;
  mask-image: none; -webkit-mask-image: none;
}
.specimen-scene figcaption { height: 21px; }
html[data-theme=dark] .signal-flow {
  position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%;
  fill: none; stroke-linecap: round; stroke-linejoin: round; pointer-events: none;
}
html[data-theme=dark] .flow-track {
  stroke: #bff55c; stroke-width: .8; opacity: .26;
  vector-effect: non-scaling-stroke;
}
html[data-theme=dark] .flow-pulse {
  stroke: #bff55c; stroke-width: 1.35; opacity: .9;
  stroke-dasharray: 24 276; stroke-dashoffset: 0;
  vector-effect: non-scaling-stroke;
  animation: cyber-signal 9s linear infinite paused;
}
html[data-theme=dark] .flow-pulse:nth-child(3n) { animation-delay: -3s; stroke: #ededeb; }
html[data-theme=dark] .flow-pulse:nth-child(3n + 1) { animation-delay: -6s; }
html[data-theme=dark] .circuit-terminal {
  stroke: #bff55c; stroke-width: .85; fill: #090909; opacity: .65;
  vector-effect: non-scaling-stroke;
}
html[data-theme=dark] .specimen-stage[data-flow-active=true] .flow-pulse {
  animation-play-state: running;
}
html[data-theme=dark] .specimen-scene figcaption { border-top: 1px solid #2d2d29; }
html[data-theme=dark] .tech-caption { color: #b0b0a8; }
html[data-theme=dark] .scene-index { color: var(--accent); font-size: 12px; }

/* Reading surfaces use silver hierarchy; lime marks actions and active state. */
html[data-theme=dark] .guide-meta { border-color: #44443e; color: #9c9c95; }
html[data-theme=dark] .reading-layout { padding-top: 37px; }
html[data-theme=dark] .rail-title { padding-bottom: 3px; }
html[data-theme=dark] .rail-title h2 { color: #e2e2dc; }
html[data-theme=dark] .chapter-picker { border-color: #56564e; }
html[data-theme=dark] .chapter-trigger { background: #141414; }
html[data-theme=dark] .chapter-trigger:hover { background: #202020; }
html[data-theme=dark] .chapter-trigger-no { color: var(--accent); }
html[data-theme=dark] .chapter-trigger-title { color: #e9e9e2; }
html[data-theme=dark] .chapter-chevron { color: #c1c1b8; }
html[data-theme=dark] .chapter-picker[data-open=true] .chapter-trigger {
  box-shadow: inset 0 -1px 0 #bff55c70;
}
html[data-theme=dark] .chapter-picker .chapter-options nav > a {
  border-top-color: #30302c;
  color: #bdbdb5;
  transition: background-color .18s ease, color .18s ease;
}
html[data-theme=dark] .chapter-picker .chapter-options nav > a:hover {
  background: #191919;
  color: #f0f0e8;
}
html[data-theme=dark] .chapter-picker .chapter-options nav > a[aria-current=true] {
  background: linear-gradient(90deg, #bff55c13, #151515 80%);
  color: #f0f0e8;
}
html[data-theme=dark] .chapter-picker .chapter-options nav > a[aria-current=true]::before {
  width: 1px;
  top: 15px;
  bottom: 15px;
  height: auto;
  border-radius: 0;
}
html[data-theme=dark] .chapter-picker .chapter-options nav > a[aria-current=true] .nav-no,
html[data-theme=dark] .chapter-picker .chapter-options nav > a[aria-current=true] .nav-count {
  color: var(--accent);
}
html[data-theme=dark] .reading-toolbar button {
  border: 1px solid #46463f;
  border-radius: 3px;
  background: transparent;
  padding: 5px 11px;
  color: #c2c2b8;
}
html[data-theme=dark] .reading-toolbar button:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: #1b1b19;
}
html[data-theme=dark] .section-heading h2 { color: #eeeeE7; font-weight: 500; }
html[data-theme=dark] .part-index { color: #aeaea5; letter-spacing: .15em; }
html[data-theme=dark] .question-list { border-top-color: #626259; }
html[data-theme=dark] .faq-item { border-bottom-color: #353530; }
html[data-theme=dark] .faq-item summary:hover h3 { color: #f1f1e9; }
html[data-theme=dark] .question-no { color: #99998f; }
html[data-theme=dark] details[open] .question-no,
html[data-theme=dark] details[open] .plus { color: var(--accent); }
html[data-theme=dark] details[open] summary h3 { color: #f3f3ed; }
html[data-theme=dark] .answer {
  background: #141414;
  color: #d0d0c8;
  border: 1px solid #32322e;
  border-radius: 4px;
  box-shadow: none;
  padding: 27px 30px;
}
html[data-theme=dark] .answer h4,
html[data-theme=dark] .answer h5 { color: #eeeee6; }
html[data-theme=dark] .answer strong { color: #e9e9e1; }
html[data-theme=dark] .answer a { color: #e1e1d7; border-color: #8b8b7e; }
html[data-theme=dark] .answer a:hover { color: var(--accent); border-color: var(--accent); background: transparent; }
html[data-theme=dark] .answer blockquote {
  border-radius: 0;
  border-left-color: #b7b7a9;
  background: #1e1e1c;
  color: #d3d3c8;
}
html[data-theme=dark] .answer pre { border: 1px solid #393934; border-radius: 3px; }
html[data-theme=dark] .answer th { color: #e0e0d4; background: #242421; }
html[data-theme=dark] .answer-actions button:hover,
html[data-theme=dark] .answer-actions > a:hover { color: var(--accent); }
html[data-theme=dark] .chapter-next { border-color: #53534a; }
html[data-theme=dark] .chapter-next a > svg { color: var(--accent); }
html[data-theme=dark] .chapter-next a:hover strong,
html[data-theme=dark] .wishlist-link:hover { color: var(--accent); }
html[data-theme=dark] footer { border-color: #45453e; }

@keyframes cyber-signal { to { stroke-dashoffset: -300; } }

@media (max-width: 760px) {
  .specimen-scene figcaption { height: 18px; }

  html[data-theme=dark] .reading-layout { padding-top: 24px; }
  html[data-theme=dark] .answer { padding: 21px 17px; }
  html[data-theme=dark] .chapter-trigger { min-height: 61px; }
}

@media (prefers-reduced-motion: reduce) {
  html[data-theme=dark] .flow-pulse { animation: none !important; stroke-dashoffset: -80; }
}

/* A real interactive dot matrix registered to the transparent image's screen. */
.led-screen { display: none; }
html[data-theme=dark] .led-screen:not([hidden]) {
  display: block; position: absolute; z-index: 4; pointer-events: auto;
  border: 0; margin: 0; padding: 0; background: transparent; cursor: pointer;
  touch-action: manipulation; border-radius: 24% 22% 0 0;
}
.led-screen canvas { display: block; width: 100%; height: 100%; }
html[data-theme=dark] .led-screen:focus-visible { outline: 1px solid var(--accent); outline-offset: 3px; }
html[data-theme=dark] .specimen-stage[data-signal-active=true] .flow-track { opacity: .65; }
html[data-theme=dark] .specimen-stage[data-signal-active=true] .circuit-terminal { fill: #bff55c; opacity: 1; }
