/* Shared motion for the application and the six reference-image scenes. */
.memory-flow {
  fill: none;
  stroke: var(--ds-accent-memory-soft);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-dasharray: 2 98;
  filter: drop-shadow(0 0 5px var(--ds-accent-memory));
  animation: memory-thread-flow 14s linear infinite;
  pointer-events: none;
}
.memory-flow:nth-of-type(even) { animation-delay: -7s; }
.memory-flow.ai-flow { stroke: var(--ds-accent-ai); filter: drop-shadow(0 0 5px var(--ds-accent-ai)); }
.memory-thread path.memory-flow { opacity: .85; stroke-width: 1.8; }
.ambient-thread { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.ambient-thread .thread-base { fill: none; stroke: var(--ds-accent-memory); stroke-width: .5; opacity: .2; }
.search-orbit, .insight-constellation, .profile-hero { position: relative; }
.search-orbit > :not(.ambient-thread) { position: relative; z-index: 1; }
[data-motion-toggle] { font: 11px var(--ds-font-ui); color: var(--ds-text-secondary); background: none; border: 1px solid var(--ds-border-subtle); border-radius: var(--ds-radius-round); padding: 6px 10px; cursor: pointer; box-shadow: none; }
.app-header .brand { flex-shrink: 0; white-space: nowrap; }
.app-header [data-motion-toggle], .app-header .feedback-link { white-space: nowrap; }
.app-view { animation: none; }
.motion-reveal, .app-view.motion-reveal { animation: memory-space-arrival var(--ds-duration-reveal) var(--ds-ease-soft) both; }
@keyframes memory-thread-flow { to { stroke-dashoffset: -100; } }
@keyframes memory-space-arrival { from { opacity: .25; } to { opacity: 1; } }
.memory-journey { position: fixed; inset: 0; z-index: 500; overflow: hidden; background: transparent; }
.memory-journey canvas { position: relative; width: 100%; height: 100%; display: block; }
.memory-journey-caption { position: absolute; bottom: 12%; left: 0; right: 0; text-align: center; color: var(--ds-text-primary); font: 18px var(--ds-font-display); letter-spacing: .18em; }
.memory-journey-skip { position: absolute; right: 24px; bottom: 24px; border: 1px solid var(--ds-border-strong); border-radius: var(--ds-radius-round); padding: 10px 18px; background: var(--ds-surface); color: var(--ds-text-primary); font: 12px var(--ds-font-ui); cursor: pointer; }
.memory-journey-skip:focus-visible, [data-motion-toggle]:focus-visible { outline: 2px solid var(--ds-accent-memory); outline-offset: 4px; }
.memory-journey.is-leaving { pointer-events: none; opacity: 0; transition: opacity 350ms ease; }
.motion-paused .memory-flow, .motion-paused .orb-surface { animation-play-state: paused; }
.motion-paused .motion-reveal { animation: none; }
@media (max-width: 600px) {
  .app-header { padding: 16px 18px; height: 64px; }
  .app-header .header-actions { gap: 10px; }
  .app-header [data-motion-toggle] { font-size: 10px; padding: 6px 8px; }
}
@media (max-width: 360px) { .app-header .header-star { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .memory-flow, .orb-surface, .motion-reveal { animation: none !important; }
  .memory-journey { display: none; }
}
