/* Shared base for LAVAALL Web sample templates. Each template adds its own look. */
@font-face { font-family: "Inter"; font-weight: 100 900; font-display: swap; src: url(../assets/fonts/inter-var.woff2) format("woff2"); }
@font-face { font-family: "Inter Tight"; font-weight: 600; font-display: swap; src: url(../assets/fonts/inter-tight-600.woff2) format("woff2"); }
@font-face { font-family: "Geist Mono"; font-weight: 500; font-display: swap; src: url(../assets/fonts/geist-mono-500.woff2) format("woff2"); }
@font-face { font-family: "Instrument Serif"; font-weight: 400; font-display: swap; src: url(../assets/fonts/instrument-serif-400.woff2) format("woff2"); }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
img, video { display: block; max-width: 100%; }
h1, h2, h3, p { margin: 0; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 2px solid #8B7CFF; outline-offset: 3px; }
.rv { opacity: 0; transform: translateY(18px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.rv.in { opacity: 1; transform: none; }
.rv.d1 { transition-delay: .08s; } .rv.d2 { transition-delay: .16s; } .rv.d3 { transition-delay: .24s; }
.marquee { overflow: hidden; white-space: nowrap; }
.marquee > div { display: inline-flex; gap: 3rem; animation: mq 22s linear infinite; padding-right: 3rem; }
@keyframes mq { to { transform: translateX(-50%); } }
.sample-badge { position: fixed; z-index: 99; right: 12px; bottom: 12px; font: 500 10px/1 "Geist Mono", monospace; letter-spacing: .08em; text-transform: uppercase; padding: 8px 10px; border-radius: 99px; background: rgba(0,0,0,.72); color: #fff; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rv { opacity: 1; transform: none; transition: none; }
  .marquee > div { animation: none; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
.in-frame .sample-badge { display: none; }
