/* Loravello neutral base. This file carries NO visual style: no palette, no typefaces, no layout system.
   The approved concept defines all of that in its own stylesheet (e.g. css/site.css). */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; min-height: 100svh; }
img, video, canvas, svg, picture { display: block; max-width: 100%; }
img, video { height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }

:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.skip-link { position: absolute; left: 1rem; top: -200px; z-index: 1000; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

@media (pointer: coarse) {
  a, button, [role="button"], summary { min-height: 44px; min-width: 44px; }
}

/* Lenis (smooth scroll) */
html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* Reduced motion baseline. The concept still composes a designed static layout for every scene. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important; animation-iteration-count: 1 !important;
    transition-duration: .001ms !important; scroll-behavior: auto !important;
  }
}

/* QA mode (?qa=1): deterministic capture */
html[data-qa] { scroll-behavior: auto !important; }
html[data-qa] *, html[data-qa] *::before, html[data-qa] *::after {
  animation-duration: .001ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important;
  transition-duration: 0s !important; transition-delay: 0s !important; caret-color: transparent !important;
}
html[data-qa] [data-qa-hide] { visibility: hidden !important; }

/* Skeleton placeholders (delete when the concept's styles exist) */
[data-scene] { min-height: 100svh; }
