/* Fragment-anchor arrivals. Loaded by every page; see anchors.js.

   The hover `#` glyph that used to live here left on 2026-09-14 — chrome over
   every caption and the composer. Fragment targets still register; arriving
   at one still flashes. What remains is the flash + scroll-margin. */

[data-anchor] {
  position: relative;
  scroll-margin: 80px;
}

/* Arriving at a fragment: say which thing, then get out of the way.
   Accent-coloured since the Atech-UI port (2026-08-24): this is wayfinding,
   not a warning, and the old --state-warn ring wore the same amber the
   staleness machinery uses for real cautions. The solid accent ring carries
   the "here" claim; the --accent-soft halo softens its edge. */
@keyframes anchor-hit {
  from { box-shadow: 0 0 0 2px var(--accent), 0 0 0 7px var(--accent-soft); }
  to   { box-shadow: 0 0 0 2px transparent, 0 0 0 7px transparent; }
}
.anchor-hit {
  animation: anchor-hit 1.6s ease-out;
  border-radius: 16px;
  scroll-margin: 80px;
}

@media (prefers-reduced-motion: reduce) {
  .anchor-hit { animation: none;
    box-shadow: 0 0 0 2px var(--accent), 0 0 0 7px var(--accent-soft); }
}
