/* =========================================================
   Dapter — Shared base stylesheet
   Loaded by every page; safe to evolve without touching
   page-specific inline styles.
   ========================================================= */

/* ---- Universal reset (safe duplicate of per-page reset) ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ---- Smooth scrolling preference ---- */
html { scroll-behavior: smooth; }

/* ---- Print niceties ---- */
@media print {
  nav, footer, .ticker, .amb, .grid-veil, #cur, #cur-r { display: none !important; }
  html, body { background: #fff !important; color: #000 !important; cursor: auto !important; }
  a { color: #000 !important; text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; }
}

/* ---- Focus ring for keyboard navigation (a11y) ---- */
:focus-visible {
  outline: 2px solid #00968a;
  outline-offset: 2px;
  border-radius: 2px;
}

/* ---- Respect reduced-motion preference ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  /* Restore native cursor for users who disabled custom motion */
  html, body { cursor: auto !important; }
  #cur, #cur-r { display: none !important; }
  /* Neutralise ambient drift and floating card animations */
  .amb, .d-card, .dc1, .dc2, .dc3, .ticker-t, .reveal { animation: none !important; transform: none !important; }
  .reveal { opacity: 1 !important; }
}

/* ---- Respect pointer-only fine-device assumption ---- */
@media (pointer: coarse), (hover: none) {
  html, body { cursor: auto !important; }
  #cur, #cur-r { display: none !important; }
}
