/* Blocking boot styles — keep page hidden until site-boot.js marks ready */
:root {
  color-scheme: dark;
  --boot-bg: #020304;
  --boot-accent: #8f0e16;
  --boot-shimmer: rgba(255, 255, 255, 0.08);
}

html.is-preloading {
  background: var(--boot-bg);
}

html.is-preloading body {
  visibility: hidden;
}

html.is-preloading::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  background: radial-gradient(circle at 50% 35%, rgba(143, 14, 22, 0.14), transparent 55%), var(--boot-bg);
  pointer-events: none;
}

html.is-preloading::after {
  content: '';
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 2147483001;
  width: min(72vw, 420px);
  height: 3px;
  margin: 2.5rem 0 0;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--boot-shimmer), rgba(209, 27, 32, 0.55), var(--boot-shimmer), transparent);
  background-size: 200% 100%;
  animation: bmh-boot-shimmer 1.35s ease-in-out infinite;
  pointer-events: none;
}

html.site-ready body {
  visibility: visible;
  animation: bmh-site-reveal 0.42s ease;
}

html.site-ready::before,
html.site-ready::after {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0s 0.35s;
}

@keyframes bmh-boot-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

@keyframes bmh-site-reveal {
  from { opacity: 0.001; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  html.is-preloading::after {
    animation: none;
    background: rgba(209, 27, 32, 0.45);
  }

  html.site-ready body {
    animation: none;
  }
}
