/* ASRA · base compartida de los diseños (fuentes, tokens, reset, utilidades de movimiento) */
@font-face{font-family:"Fraunces";font-weight:400;font-display:swap;src:url("fonts/fraunces-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Fraunces";font-weight:500;font-display:swap;src:url("fonts/fraunces-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Fraunces";font-weight:600;font-display:swap;src:url("fonts/fraunces-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Fraunces";font-weight:700;font-display:swap;src:url("fonts/fraunces-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Outfit";font-weight:300;font-display:swap;src:url("fonts/outfit-latin-300-normal.woff2") format("woff2")}
@font-face{font-family:"Outfit";font-weight:400;font-display:swap;src:url("fonts/outfit-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Outfit";font-weight:500;font-display:swap;src:url("fonts/outfit-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Outfit";font-weight:600;font-display:swap;src:url("fonts/outfit-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Outfit";font-weight:700;font-display:swap;src:url("fonts/outfit-latin-700-normal.woff2") format("woff2")}

:root{
  --cream:#faf7f2;--bone:#f3eee6;--sand:#ddd2c0;--ink:#161411;--ink-2:#3a342c;--ink-3:#6b6258;
  --terra:#c15f3c;--terra-2:#a34c2e;--forest:#2f4a3d;--sage:#9aaf9a;--line:#1614111f;--noche:#12100e;
  --fd:"Fraunces","Times New Roman",serif;--fs:"Outfit",system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);--r:20px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:400 17px/1.55 var(--fs);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{margin:0;font-weight:500;line-height:1.05;letter-spacing:-.02em}
p{margin:0}
:focus-visible{outline:3px solid color-mix(in srgb,var(--terra) 60%,transparent);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Reveal al hacer scroll */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none}
.rv-l{opacity:0;transform:translateX(-32px)}.rv-r{opacity:0;transform:translateX(32px)}
.rv-s{opacity:0;transform:scale(.94)}
.rv-l.in,.rv-r.in,.rv-s.in{opacity:1;transform:none}
/* Texto por líneas */
.lines .ln{display:block;overflow:hidden;padding:.06em .18em .14em;margin:-.06em -.18em -.14em}
.lines .ln>span{display:block;transform:translateY(110%);transition:transform 1s var(--ease);transition-delay:calc(var(--i,0)*.09s)}
.lines.in .ln>span{transform:none}
/* Parallax: data-par="0.2" */
[data-par]{will-change:transform}
/* Cursor personalizado (solo puntero fino) */
.cur,.cur-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);mix-blend-mode:difference}
.cur{width:36px;height:36px;border:1.5px solid #fff;transition:width .3s,height .3s,background .3s}
.cur-dot{width:6px;height:6px;background:#fff}
body.cur-hover .cur{width:64px;height:64px;background:#ffffff22}
@media (hover:none),(pointer:coarse){.cur,.cur-dot{display:none}}
/* Barra de progreso */
.prog{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--terra);z-index:9998}
/* Marquee */
.mq{overflow:hidden;white-space:nowrap}
.mq>div{display:inline-block;animation:mq 28s linear infinite;padding-right:40px}
@keyframes mq{to{transform:translateX(-50%)}}
/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 16px var(--fs);padding:16px 26px;border-radius:999px;background:var(--ink);color:var(--cream);transition:transform .4s var(--ease),background .3s,color .3s;will-change:transform}
.btn:hover{background:var(--terra);color:#fff}
.btn-o{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-o:hover{background:var(--ink);color:var(--cream)}
.btn-w{background:var(--cream);color:var(--ink)}.btn-w:hover{background:var(--terra);color:#fff}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv,.rv-l,.rv-r,.rv-s,.lines .ln>span{opacity:1!important;transform:none!important;transition:none!important}
  .mq>div{animation:none}
  [data-par]{transform:none!important}
  .cur,.cur-dot{display:none}
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
