/* R DE LA MOTA — base compartida por las 3 propuestas */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
html.gated{overflow:hidden}
img,svg,video{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- apariciones ---- */
:root{--e-out:cubic-bezier(.16,1,.3,1);--e-io:cubic-bezier(.65,0,.35,1)}
[data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity 1.3s var(--e-out),transform 1.6s var(--e-out);transition-delay:calc(var(--d,0s) + var(--i,0) * .12s)}
[data-reveal="fade"]{transform:none}
[data-reveal="scale"]{transform:scale(1.06)}
[data-reveal="left"]{transform:translate3d(-32px,0,0)}
[data-reveal].in{opacity:1;transform:none}

/* texto por palabras: cada palabra sube desde una máscara */
[data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
[data-split] .w>span{display:inline-block;transform:translate3d(0,105%,0);transition:transform 1.3s var(--e-out);transition-delay:calc(var(--d,0s) + var(--wi) * var(--ws,.045s))}
[data-split].in .w>span{transform:none}

/* tinta: barrido de arriba hacia abajo (perfiles, ilustraciones) */
.ink{clip-path:inset(0 0 100% 0);transition:clip-path 2.4s var(--e-io);transition-delay:var(--d,0s)}
.in .ink,.ink.in{clip-path:inset(0 0 0 0)}

@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-split] .w>span,.ink{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
}

/* ---- age gate (los colores los pone cada propuesta) ---- */
.agegate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;text-align:center;padding:24px;transition:opacity 1.1s var(--e-io),visibility 0s 1.1s}
.agegate.out{opacity:0;visibility:hidden}
.agegate .ag-in{display:grid;gap:28px;justify-items:center;max-width:520px}
.agegate .ag-logo{width:min(320px,70vw)}
.agegate .ag-q{margin:0}
.agegate .ag-btns{display:flex;gap:14px}
.agegate .ag-no-msg{display:none;margin:0;opacity:.7;font-size:14px}
.agegate.denied .ag-no-msg{display:block}
.agegate .ag-legal{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.5;margin:0}
