/*
 * ═══════════════════════════════════════════════════════════════════════
 *  NOON ANCHOR SHEET (260806-anchor follow-up)
 * ═══════════════════════════════════════════════════════════════════════
 *
 * ONE property, and it exists because the anchor was measured landing wrong.
 * A block-level `anchor` renders as `<div id="section-…">`; following
 * `/#section-…` scrolls that div's top edge to viewport y=0, which puts the
 * section heading flush against the top of the window with no breathing room
 * above it. Measured on nooncms.dev 2026-08-06: scrollY 0 -> 753, target top
 * in viewport 0.
 *
 * WHY ITS OWN SHEET rather than a rule in noon-presentation.css: the anchor
 * wrapper deliberately does NOT carry `data-noon-section` and deliberately
 * does not pull the presentation sheet — an anchor is navigation, not style,
 * and a page with anchors but no presentation must not be handed presentation's
 * whole fallback cascade (registry.tsx's three-case comment states this rule).
 * Same reasoning noon-presentation.css gives for not living inside
 * noon-theme.css, one level down.
 *
 * WHY NOT noon-theme.css: that sheet is emitted IF AND ONLY IF a theme
 * document exists (`themeElements()` returns null on empty base tokens), so an
 * unthemed install would silently lose the offset — the anchor would work
 * everywhere except where nobody configured a theme, which is the least
 * debuggable possible failure.
 *
 * The offset references the theme's spacing token with the SAME fallback
 * literal noon-theme.css uses, so a themed install scales with its own spacing
 * and an unthemed one computes a fixed, sane value. No url(), no @import, no
 * dynamic value — same static-sheet posture as every other Noon sheet.
 */

/* Every rule below is in the `noon` cascade layer, so operator `customCss`
 * (unlayered) beats it regardless of specificity and of hoist order — the FULL
 * rationale lives ONCE, in `noon-theme.css`. */
@layer noon {
  [data-noon-anchor] {
    scroll-margin-top: calc(var(--noon-spacing-unit, 8px) * 3);
  }

  /* ── close of @layer noon ── */
}
