/* Base comum dos modelos: reset, faixa "modelo de demonstração" e peças do motor (modelos.js). */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body { min-height: 100svh; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* faixa do topo: deixa claro que é um modelo e leva pro WhatsApp do Victor */
.demo { position: relative; z-index: 60; display: flex; align-items: center; justify-content: center; gap: 10px 18px; flex-wrap: wrap; padding: 9px 16px; background: #0b0b0b; color: #f2f2f2; font: 500 12.5px/1.3 system-ui, sans-serif; letter-spacing: .02em; text-align: center; }
.demo b { font-weight: 700; }
.demo a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; background: #f2f2f2; color: #0b0b0b; font-weight: 700; white-space: nowrap; }
.demo a:hover { background: #fff; }

/* título que se monta letra a letra */
.sw { display: inline-block; overflow: hidden; vertical-align: top; padding: .45em .04em .2em 0; margin: -.45em -.04em -.2em 0; }
.sc { display: inline-block; will-change: transform; }

.marquee { display: flex; overflow: hidden; white-space: nowrap; }
.marquee > div { display: flex; flex-shrink: 0; animation: mq 28s linear infinite; }
.marquee:hover > div { animation-play-state: paused; }
@keyframes mq { to { transform: translateX(-100%); } }

[data-hover-pic] { position: absolute; left: 0; top: 0; width: 280px; aspect-ratio: 4 / 5; margin: -170px 0 0 -140px; background: center / cover no-repeat; border-radius: 14px; pointer-events: none; opacity: 0; scale: .85; transition: opacity .35s, scale .5s cubic-bezier(.16, 1, .3, 1); z-index: 3; }
[data-hover-pic].on { opacity: 1; scale: 1; }

@media (prefers-reduced-motion: reduce) { .marquee > div { animation: none; } }
