/* GSAP entrance-animation pre-hide contract (CLAUDE.md hard rule).
   Every attribute a section uses to trigger an entrance reveal needs its own
   rule here, written the moment the attribute is introduced — never assumed
   to piggyback on another one's guard. The `.js` class is set by a
   synchronous inline script that is the first thing in <head> (index.html),
   so this rule is already in effect before first paint; without `.js`
   (scripting disabled), elements stay visible, which is the correct no-JS
   fallback since no animation will ever run to reveal them. */
@layer base {
  .js [data-load] {
    visibility: hidden;
  }
}
