@keyframes fade-rise { from { opacity: .7; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scan { from { transform: translateY(0); } to { transform: translateY(375px); opacity: 0; } }
@keyframes marker { 0%, 50%, 100% { opacity: 1; } 25%, 75% { opacity: .4; } }
@keyframes ticker { from { transform: translateX(12px); } to { transform: translateX(0); } }
@media (prefers-reduced-motion: no-preference) {
  .hero-copy, .page-h > div:first-child { animation: fade-rise 480ms ease-out both; }
  .geo { animation: fade-rise 480ms ease-out both; }
  .scan { animation: scan 4s linear forwards; }
  .blink { animation: marker 4s linear; }
  .ticker p { animation: ticker 480ms ease-out; }
  .btn { transition: box-shadow 200ms ease-out, background-color 200ms ease-out; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .scan { display: none; }
}
@media print {
  body { background: #fff; color: #000; }
  .site-h, .geo, .ticker, .page-cue, .path-art, .site-f, .fn, .ed { display: none !important; }
  main, .wrap, .guide { width: 100%; padding: 0; margin: 0; }
  .hero, .page-h { display: block; min-height: 0; padding: 0; border: 0; }
  h1, h2, h3, a, .tag, .note-key, .tick, .hero h1, .hero h1 span { color: #000; text-shadow: none; }
  p, .hero-tail, .notes li p { color: #000; }
  .part { margin: 2rem 0 !important; break-inside: avoid; }
  .pair, .feature { display: block; }
  .opt, .ask, .alert { border-color: #999; background: #fff; }
  .acts { display: none; }
  .go { color: #000; }
  .src { color: #000; }
  .src::after { content: " (" attr(href) ")"; font-size: 1rem; overflow-wrap: anywhere; }
}
