@charset "UTF-8";
/* G5: visible static defaults; entrances are finite Web Animations. */
.hero .process-composition .connections .motion-flow {
  fill: none;
  stroke: var(--accent);
  stroke-width: 2.2;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.site-nav a { transition: color 140ms ease-out, text-decoration-color 140ms ease-out; }
.workflow-embed .node-disc { transition: background 150ms ease-out, color 150ms ease-out, border-color 150ms ease-out; }
.workflow-embed .rail-disc { transition: background 180ms ease-out, border-color 140ms ease-out; }
.workflow-embed .rail-label, .workflow-embed .rail-label b { transition: color 140ms ease-out; }

@media (hover: hover) and (pointer: fine) {
  .workflow-embed .rail-stop:hover .rail-label,
  .workflow-embed .rail-stop:hover .rail-label b { color: var(--accent-deep); }
  .workflow-embed .rail-stop:hover .rail-label.on-dark,
  .workflow-embed .rail-stop:hover .rail-label.on-dark b { color: var(--on-deep); }
  .workflow-embed .rail-stop:not([aria-current="location"]):hover .rail-disc { border-color: var(--forest); }
  .workflow-embed .rail-stop:not([aria-current="location"]):hover .rail-disc.on-dark { border-color: var(--on-deep); }
}
/* Touch keeps explicit focus and active states, without a sticky hover decoration. */
@media (hover: none), (pointer: coarse) {
  .site-nav a:hover { color: var(--muted); text-decoration: none; }
  .site-nav a:focus-visible { color: var(--accent-deep); text-decoration: underline; }
  .workflow-embed .step > a:hover .node-title { text-decoration: none; }
  .workflow-embed .step > a:hover .node-disc { background: var(--paper); border-color: var(--line-strong); color: var(--soft); }
  .workflow-embed .step-key > a:hover .node-disc { background: var(--forest); border-color: var(--forest); color: var(--white); }
}
@media (prefers-reduced-motion: reduce) {
  .site-nav a, .workflow-embed .node-disc, .workflow-embed .rail-disc,
  .workflow-embed .rail-label, .workflow-embed .rail-label b { transition: none; }
}

/* V2: material hover, independent of the cards' authored transform/rotation. */
.hero .process-composition :is(.outline-sheet, .research-page, .textbook, .lesson-plan, .slide-stack, .narrated-material),
.workflow-embed .source-card {
  translate: 0 0;
  rotate: 0deg;
  transition: translate 320ms cubic-bezier(.22,1,.36,1), rotate 320ms cubic-bezier(.22,1,.36,1), box-shadow 320ms ease-out;
}
.workflow-embed .node-disc {
  transition: scale 220ms cubic-bezier(.22,1,.36,1), background 150ms ease-out, color 150ms ease-out, border-color 150ms ease-out;
}
.workflow-embed .rail-disc {
  transition: scale 220ms cubic-bezier(.22,1,.36,1), background 180ms ease-out, border-color 140ms ease-out;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .hero .process-composition :is(.outline-sheet, .research-page, .textbook, .lesson-plan, .slide-stack, .narrated-material):hover {
    translate: 0 -7px;
    rotate: -1deg;
    box-shadow: 0 24px 38px -20px rgba(var(--ink-rgb), .32);
  }
  .hero .process-composition :is(.research-page, .lesson-plan, .narrated-material):hover { rotate: 1deg; }
  .workflow-embed .source-card:hover { translate: 0 -6px; rotate: -.45deg; }
  .workflow-embed .step > a:hover .node-disc,
  .workflow-embed .rail-stop:hover .rail-disc { scale: 1.1; }
}
@media (prefers-reduced-motion: reduce) {
  .hero .process-composition :is(.outline-sheet, .research-page, .textbook, .lesson-plan, .slide-stack, .narrated-material),
  .workflow-embed .source-card { transition: none; }
  .hero .process-composition :is(.outline-sheet, .research-page, .textbook, .lesson-plan, .slide-stack, .narrated-material):hover,
  .workflow-embed .source-card:hover { translate: 0 0; rotate: 0deg; }
  .workflow-embed .step > a:hover .node-disc,
  .workflow-embed .rail-stop:hover .rail-disc { scale: 1; }
}

/* V3: a temporary route layer; original paths and all labels remain present. */
.workflow-embed .atlas-lines .atlas-light {
  fill:none;stroke:var(--forest);stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;
  pointer-events:none;
}
