/* Full-screen architecture chapters — visual theme only.
   Page geometry, static nodes, SVG routing and wheel navigation belong to root.
   Every selector is limited to data-deck-type="architecture-page". */

body[data-version="a"] .deck-panel[data-deck-type="architecture-page"],
body[data-version="a"] .deck-panel[data-deck-type="architecture-page"] .arch-diagram {
  --deck-bg: #eef3ed;
  --deck-ink: #203e2d;
  --deck-muted: #667d6b;
  --deck-line: #c0cebf;
  --deck-accent: #2e704a;
  --arch-ink: #203e2d;
  --arch-muted: #647d6b;
  --arch-surface: #f8fbf6;
  --arch-border: #afc4b2;
  --arch-flow: #327a4e;
  --arch-root: #255f40;
  --arch-root-ink: #f5fcf3;
  --arch-node-texture: repeating-linear-gradient(135deg, rgba(27, 70, 40, .018) 0, rgba(27, 70, 40, .018) 1px, transparent 1px, transparent 5px);
  --arch-group-surface: rgba(57, 112, 71, .033);
  --arch-flow-glow: none;
}

body[data-version="b"] .deck-panel[data-deck-type="architecture-page"],
body[data-version="b"] .deck-panel[data-deck-type="architecture-page"] .arch-diagram {
  --deck-bg: #ffffff;
  --deck-ink: #161616;
  --deck-muted: #626b6b;
  --deck-line: #cdd4d4;
  --deck-accent: #e04432;
  --arch-ink: #161616;
  --arch-muted: #626b6b;
  --arch-surface: #ffffff;
  --arch-border: #b9c4c4;
  --arch-flow: #e04432;
  --arch-root: #b93123;
  --arch-root-ink: #ffffff;
  --arch-node-texture: repeating-linear-gradient(0deg, rgba(22, 22, 22, .017) 0, rgba(22, 22, 22, .017) 1px, transparent 1px, transparent 5px);
  --arch-group-surface: rgba(22, 22, 22, .018);
  --arch-flow-glow: none;
}

body[data-version="c"] .deck-panel[data-deck-type="architecture-page"],
body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] .arch-diagram {
  --deck-bg: #091a1e;
  --deck-ink: #e9f5ef;
  --deck-muted: #a1beb5;
  --deck-line: rgba(165, 198, 191, .36);
  --deck-accent: #baecda;
  --arch-ink: #e9f5ef;
  --arch-muted: #acc8bf;
  --arch-surface: #123033;
  --arch-border: rgba(181, 215, 204, .58);
  --arch-flow: #baecda;
  --arch-root: #baecda;
  --arch-root-ink: #103329;
  --arch-node-texture: repeating-linear-gradient(135deg, rgba(221, 246, 237, .025) 0, rgba(221, 246, 237, .025) 1px, transparent 1px, transparent 5px);
  --arch-group-surface: rgba(182, 219, 207, .036);
  --arch-flow-glow: drop-shadow(0 0 3px rgba(186, 236, 218, .36));
}

body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] {
  background-color: var(--deck-bg);
  background-image: none;
  color: var(--deck-ink);
  text-shadow: none;
}
body[data-version="a"] .deck-panel[data-deck-type="architecture-page"] {
  background-image: radial-gradient(ellipse at 85% 15%, rgba(214, 229, 211, .46), transparent 62%);
}
body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] {
  background-image: radial-gradient(ellipse at 84% 19%, rgba(46, 93, 82, .14), transparent 62%);
}

/* The architecture title remains one line at the geometry layer's 46px size. */
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .deck-title {
  color: var(--deck-ink);
  font-size: 46px;
}
body[data-version="a"] .deck-panel[data-deck-type="architecture-page"] .deck-title { font-weight: 400; }
body[data-version="b"] .deck-panel[data-deck-type="architecture-page"] .deck-title { font-weight: 800; }
body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] .deck-title { font-weight: 400; }
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] :is(.deck-brand, .deck-chapter-label) {
  color: var(--deck-ink);
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] :is(.deck-kicker, .deck-summary, .deck-footnote, .deck-pagination) {
  color: var(--deck-muted);
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] :is(.deck-topbar, .deck-page-footer) {
  border-color: var(--deck-line);
}

/* Static semantic nodes: hard edges, slight material texture, clear roles. */
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-diagram { color: var(--arch-ink); }
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node {
  background-color: var(--arch-surface);
  background-image: var(--arch-node-texture);
  border-color: var(--arch-border);
  border-radius: 0;
  color: var(--arch-ink);
  box-shadow: none;
  text-shadow: none;
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node-code {
  color: var(--arch-flow);
  font-weight: 500;
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node-title {
  color: var(--arch-ink);
  font-weight: 700;
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node-desc {
  color: var(--arch-muted);
  font-weight: 400;
}
body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] .arch-node-title { font-weight: 600; }
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node.is-root {
  background-color: var(--arch-root);
  background-image: none;
  border-color: var(--arch-root);
  color: var(--arch-root-ink);
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node.is-root :is(.arch-node-code, .arch-node-title, .arch-node-desc) {
  color: var(--arch-root-ink);
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node:is(.is-terminal, .is-decision) {
  border-color: var(--arch-flow);
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node.is-terminal {
  box-shadow: inset 3px 0 0 var(--arch-flow);
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-node.is-reference .arch-node-code {
  color: var(--arch-muted);
}

/* A readable construction line is always present beneath the moving signal. */
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-edge-base {
  stroke: var(--arch-border);
  fill: none;
  opacity: 1;
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-edge-flow {
  stroke: var(--arch-flow);
  fill: none;
  opacity: .96;
  filter: var(--arch-flow-glow);
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-edge-arrow {
  fill: var(--arch-flow);
  stroke: none;
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-edge-label {
  fill: var(--arch-muted);
  color: var(--arch-muted);
  font-weight: 500;
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-group-box {
  fill: var(--arch-group-surface);
  stroke: var(--arch-border);
}
body:is([data-version="a"], [data-version="b"], [data-version="c"]) .deck-panel[data-deck-type="architecture-page"] .arch-group-title {
  fill: var(--arch-muted);
  color: var(--arch-muted);
  font-weight: 600;
}
body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] .arch-edge-base {
  stroke: rgba(192, 220, 211, .7);
  opacity: 1;
}
body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] .arch-edge-label {
  fill: #bbd5cc;
  color: #bbd5cc;
}
body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] .arch-group-box {
  stroke: rgba(166, 200, 190, .42);
}
body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] .arch-group-title {
  fill: #aac7bd;
  color: #aac7bd;
}

@media (prefers-reduced-motion: reduce) {
  body[data-version="c"] .deck-panel[data-deck-type="architecture-page"] .arch-edge-flow { filter: none; }
}
