/* SOVRA public shell fail-safe — 2026-09-06.1
   The cinematic layer is progressive enhancement. Until it has completed a
   healthy render, preserve the checked-in readable site instead of exposing
   an empty dark animation surface. */

html[data-sovra-shell-fallback="true"] body,
body:not(.sv4-ready) {
  background: linear-gradient(180deg, #ffffff 0%, var(--bg, #f4f6f8) 40%, var(--silver, #eef1f5) 100%) !important;
  color: var(--ink, #0f1c2e) !important;
}

html[data-sovra-shell-fallback="true"] body > main,
body:not(.sv4-ready) > main {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  background: transparent !important;
  color: var(--ink, #0f1c2e) !important;
  position: relative !important;
  z-index: 1 !important;
}

html[data-sovra-shell-fallback="true"] .sv5-field,
html[data-sovra-shell-fallback="true"] .sv5-field-vignette,
html[data-sovra-shell-fallback="true"] .sv5-scroll-progress,
html[data-sovra-shell-fallback="true"] .sv4-noise,
body:not(.sv4-ready) > .sv5-field,
body:not(.sv4-ready) > .sv5-field-vignette,
body:not(.sv4-ready) > .sv5-scroll-progress {
  display: none !important;
}

/* The checked-in navigation is a real first-paint/failure fallback. */
body:not(.sv4-ready) > header .nav-links {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  min-width: 0 !important;
}
body:not(.sv4-ready) > header .nav-links > a {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

@media (max-width: 1080px) {
  body:not(.sv4-ready) > header .nav-links { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .sv5-field, .sv5-field-vignette { display: none !important; }
}
