/*
 * Boot veil: the first stylesheet of every page, static and tiny, so it holds
 * before the bundle arrives (the dev server injects main.scss from JS, which
 * would otherwise paint unstyled HTML first). src/ts/main.ts adds
 * html.is-ready once the bundle runs and the fonts are in; the body then fades
 * in. Without scripting the veil never applies, and if the bundle fails the
 * delayed animation lifts it anyway after 3 s.
 */
@media (scripting: enabled) {
  html:not(.is-ready) body {
    opacity: 0;
    animation: wc-boot-veil 0s linear 3s forwards;
  }
}

body {
  transition: opacity .4s ease-out;
}

@keyframes wc-boot-veil {
  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  body {
    transition: none;
  }
}
