/* instrument-sans-latin-ext-400-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/instrument-sans-latin-ext-400-normal.Q_nF8v4l.woff2) format('woff2'), url(/_astro/instrument-sans-latin-ext-400-normal.r32jotim.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* instrument-sans-latin-400-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/_astro/instrument-sans-latin-400-normal.DRC__1Mx.woff2) format('woff2'), url(/_astro/instrument-sans-latin-400-normal.D1W7dsQl.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* instrument-sans-latin-ext-500-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/instrument-sans-latin-ext-500-normal.CTEe1bJa.woff2) format('woff2'), url(/_astro/instrument-sans-latin-ext-500-normal.CAxz3nsc.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* instrument-sans-latin-500-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/_astro/instrument-sans-latin-500-normal.Dk9ku72i.woff2) format('woff2'), url(/_astro/instrument-sans-latin-500-normal.Z6ESRlEs.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* instrument-sans-latin-ext-600-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/instrument-sans-latin-ext-600-normal.BsaQcF38.woff2) format('woff2'), url(/_astro/instrument-sans-latin-ext-600-normal.DMks36a2.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* instrument-sans-latin-600-normal */
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/instrument-sans-latin-600-normal.B7fBEWYG.woff2) format('woff2'), url(/_astro/instrument-sans-latin-600-normal.B9e8oLYv.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* space-grotesk-vietnamese-600-normal */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/space-grotesk-vietnamese-600-normal.DUi7WF5p.woff2) format('woff2'), url(/_astro/space-grotesk-vietnamese-600-normal.D6zpsUhD.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* space-grotesk-latin-ext-600-normal */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/space-grotesk-latin-ext-600-normal.DxxdqCpr.woff2) format('woff2'), url(/_astro/space-grotesk-latin-ext-600-normal.VcznFIpX.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* space-grotesk-latin-600-normal */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/_astro/space-grotesk-latin-600-normal.DjKNqYRj.woff2) format('woff2'), url(/_astro/space-grotesk-latin-600-normal.BflQw4A9.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* space-grotesk-vietnamese-700-normal */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/space-grotesk-vietnamese-700-normal.DMty7AZE.woff2) format('woff2'), url(/_astro/space-grotesk-vietnamese-700-normal.Duxec5Rn.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* space-grotesk-latin-ext-700-normal */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/space-grotesk-latin-ext-700-normal.BQnZhY3m.woff2) format('woff2'), url(/_astro/space-grotesk-latin-ext-700-normal.HVCqSBdx.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* space-grotesk-latin-700-normal */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/_astro/space-grotesk-latin-700-normal.RjhwGPKo.woff2) format('woff2'), url(/_astro/space-grotesk-latin-700-normal.CwsQ-cCU.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* Tokens: sistema de diseño «Fóvea» (fovea-app/src/tailwind.css) + paleta amarilla de la web
   (Lysito #f1d08a). Decisión en la bóveda: «🌐 Fovea - Web y mensaje». */
:root {
  --crema: #fbfaf6;
  --doc: #efece5;
  --superficie: #ffffff;
  --tinta: #201c2b;
  --tinta-2: #4d4760;
  --tinta-3: #5d576e;
  --borde: #f0eadd;
  --borde-2: #efe8da;
  --amarillo: #f2be3c;
  --amarillo-lysito: #f1d08a;
  --amarillo-tint: #fdf3d6;
  --ocre: #8a6100;
  --exito: #0e9488;
  --exito-texto: #0b6f66;
  --exito-tint: #e2f3f1;

  --titulo: 'Space Grotesk', system-ui, sans-serif;
  --cuerpo: 'Instrument Sans', system-ui, sans-serif;

  --margen: clamp(20px, 5.5vw, 80px);
  --ancho: 1280px;
  --radio: 28px;
  --separa: clamp(96px, 14vw, 200px);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
/* Lo que entra desde un lado (.fv-der) no debe abrir scroll horizontal; clip no rompe sticky. */
html, body { overflow-x: clip; }

body {
  margin: 0;
  background: var(--crema);
  color: var(--tinta);
  font-family: var(--cuerpo);
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; }
a { color: inherit; }
a:hover { color: var(--ocre); }
:focus-visible { outline: 2px solid var(--tinta); outline-offset: 3px; border-radius: 6px; }

h1, h2, h3 { font-family: var(--titulo); font-weight: 700; margin: 0; letter-spacing: -0.035em; }
p { margin: 0; }

.envoltura { width: min(100% - 2 * var(--margen), var(--ancho)); margin-inline: auto; }
.sobretitulo { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ocre); }
.texto-2 { color: var(--tinta-2); }

.boton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 56px;
  padding: 0 28px;
  border-radius: 16px;
  border: 0;
  font-family: var(--titulo);
  font-weight: 700;
  font-size: 18px;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.boton:hover { color: inherit; filter: brightness(0.97); }
.boton-principal { background: var(--amarillo); color: var(--tinta); box-shadow: 0 8px 18px -6px rgba(200, 145, 20, 0.55); }
.boton-blanco { background: var(--superficie); color: var(--tinta); }
.boton-borde { background: transparent; color: var(--tinta); border: 2px solid var(--borde-2); }
.boton-oscuro { background: var(--tinta); color: #fff; }
.boton-oscuro:hover { color: #fff; }

/* Marco de tablet de las demos de «Cómo funciona» (src/components/demos/). */
.demo-tableta {
  width: 100%;
  aspect-ratio: 16 / 11;
  padding: 10px;
  background: var(--tinta);
  border-radius: 26px;
  box-shadow: 0 30px 60px -30px rgba(32, 28, 43, 0.55);
  overflow: hidden;
  color: var(--tinta);
  text-align: left;
}
.demo-tableta > * { height: 100%; border-radius: 17px; overflow: hidden; }

/* ===== Animaciones al hacer scroll =====
   Solo donde el navegador las soporta; si no, todo se ve en su estado final. */
@keyframes fv-sube { from { opacity: 0; transform: translateY(48px); } to { opacity: 1; transform: none; } }
@keyframes fv-crece { from { transform: scale(0.84); border-radius: 64px; } to { transform: scale(1); border-radius: var(--radio); } }
@keyframes fv-aparece { from { opacity: 0; transform: translateY(28px) scale(0.98); } to { opacity: 1; transform: none; } }
@keyframes fv-enciende { from { opacity: 0.25; } to { opacity: 1; } }
@keyframes fv-ilumina { from { background-position: 100% 0; } to { background-position: 0 0; } }
@keyframes fv-circulo { from { clip-path: circle(6% at 50% 50%); } to { clip-path: circle(80% at 50% 50%); } }
@keyframes fv-izq { from { opacity: 0; transform: translateX(-80px); } to { opacity: 1; transform: none; } }
@keyframes fv-der { from { opacity: 0; transform: translateX(80px); } to { opacity: 1; transform: none; } }

.fv-entra { animation: fv-sube 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.fv-d1 { animation-delay: 0.12s; }
.fv-d2 { animation-delay: 0.24s; }
.fv-d3 { animation-delay: 0.36s; }

.fv-frase { color: var(--tinta); }

@supports (animation-timeline: view()) {
  .fv-crece { animation: fv-crece linear both; animation-timeline: view(); animation-range: entry 0% cover 45%; }
  .fv-revela { animation: fv-aparece linear both; animation-timeline: view(); animation-range: entry 10% cover 30%; }
  .fv-paso { animation: fv-enciende linear both; animation-timeline: view(); animation-range: cover 30% cover 45%; }
  .fv-izq { animation: fv-izq linear both; animation-timeline: view(); animation-range: entry 10% cover 35%; }
  .fv-der { animation: fv-der linear both; animation-timeline: view(); animation-range: entry 10% cover 35%; }
  .fv-frase {
    background: linear-gradient(90deg, var(--tinta) 50%, #d9d2bd 50%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: fv-ilumina linear both;
    animation-timeline: view();
    animation-range: cover 20% cover 60%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; }
  .fv-frase { color: var(--tinta) !important; background: none !important; }
}
.lys {
    --lys-o: #20242e;
    --lys-g: max(2px, calc(var(--lys-s) * 0.028));
    --lys-sombra: 0 2px 5px rgba(0, 0, 0, 0.25), inset 0 -3px 5px rgba(0, 0, 0, 0.16);
    position: relative;
    display: inline-block;
    width: var(--lys-s);
    height: var(--lys-s);
    line-height: 1;
    pointer-events: none;
  }
  .lys * { box-sizing: border-box; }
  .lys div { position: absolute; }
  .lys-flota { inset: 0; animation: lys-float 4.5s ease-in-out infinite; }
  .lys-cuerpo-giro { inset: 0; transition: transform 0.3s ease; }
  .lys[data-pose='thinking'] .lys-cuerpo-giro { transform: rotate(-6deg); }
  .lys[data-pose='working'] .lys-cuerpo-giro { transform: rotate(-2deg); }
  .lys:is([data-pose='idle'], [data-pose='greeting'], [data-pose='saluda']) .lys-cuerpo-giro { transform: rotate(-3deg); }

  /* piezas que dependen de la pose: ocultas salvo que su lista la incluya */
  .lys .lys-p { display: none; }
  .lys[data-pose='idle'] .lys-p[data-p~='idle'],
  .lys[data-pose='greeting'] .lys-p[data-p~='greeting'],
  .lys[data-pose='saluda'] .lys-p[data-p~='saluda'],
  .lys[data-pose='happy'] .lys-p[data-p~='happy'],
  .lys[data-pose='excited'] .lys-p[data-p~='excited'],
  .lys[data-pose='working'] .lys-p[data-p~='working'],
  .lys[data-pose='thinking'] .lys-p[data-p~='thinking'],
  .lys[data-pose='sorry'] .lys-p[data-p~='sorry'] { display: block; }
  .lys[data-pose='sorry'] .lys-anillo { animation-duration: 9s; }

  .lys-anillo {
    left: 66%;
    top: -14%;
    width: calc(var(--lys-s) * 0.24);
    height: calc(var(--lys-s) * 0.24);
    animation: lys-spin 6s linear infinite;
  }
  .lys-anillo svg { display: block; }
  .lys[data-pose='thinking'] .lys-anillo { animation-duration: 1.9s; }
  .lys[data-pose='working'] .lys-anillo { animation-duration: 1.1s; }
  .lys[data-pose='excited'] .lys-anillo { animation-duration: 0.7s; }
  .lys[data-pose='happy'] .lys-anillo { animation: lys-joy 1.6s ease-in-out infinite; }

  .lys-cuerpo {
    left: 14%;
    top: 12%;
    width: 72%;
    height: 72%;
    overflow: hidden;
    border-radius: 9999px;
    background: linear-gradient(
      180deg,
      color-mix(in srgb, var(--lys-c), white 22%) 0%,
      var(--lys-c) 50%,
      color-mix(in srgb, var(--lys-c), black 16%) 100%
    );
  }
  .lys-luz {
    inset: 0;
    background: linear-gradient(158deg, #d3d2cceb, rgba(255, 255, 255, 0) 40%, rgba(0, 0, 0, 0.15) 100%);
  }
  .lys-bata {
    left: 0;
    right: 0;
    bottom: 0;
    height: 34%;
    background: #fff;
    border-radius: 44% 44% 0 0 / 80% 80% 0 0;
  }

  .lys-ojo-feliz { top: 30%; width: 14%; height: 9%; border-radius: 0 0 90% 90%; border-bottom: var(--lys-g) solid var(--lys-o); }
  .lys-ojo-grande { top: 25%; width: 17%; height: 17%; border-radius: 9999px; background: #fff; }
  .lys-ojo-grande i { position: absolute; left: 20%; top: 20%; width: 58%; height: 58%; border-radius: 9999px; background: var(--lys-o); }
  .lys-ojo-grande b { position: absolute; left: 50%; top: 16%; width: 26%; height: 26%; border-radius: 9999px; background: #fff; }
  .lys-ojo { top: 27%; width: 14%; height: 14%; border-radius: 9999px; background: #fff; animation: lys-blink 5s ease-in-out infinite; }
  .lys-ojo i { position: absolute; left: 24%; top: 24%; width: 52%; height: 52%; border-radius: 9999px; background: var(--lys-o); }
  .lys[data-pose='thinking'] .lys-ojo i { transform: translate(-12%, -28%); }
  .lys[data-pose='working'] .lys-ojo i { transform: translate(0, 28%); }

  .lys-gafa { top: 23%; width: 22%; height: 22%; border-radius: 9999px; border: var(--lys-g) solid var(--lys-o); }
  .lys-linea { height: var(--lys-g); border-radius: 2px; background: var(--lys-o); }

  .lys-boca-calma { left: 43%; top: 44%; width: 14%; height: 10%; overflow: hidden; border-radius: 26% 26% 100% 100%; background: var(--lys-o); }
  .lys-boca-calma i { position: absolute; left: 28%; bottom: 0; width: 44%; height: 42%; background: #f0688b; border-radius: 100% 100% 0 0; }
  .lys-boca-pensando { left: 45%; top: 49%; width: 9%; height: 5%; border-radius: 40% 40% 100% 100%; background: var(--lys-o); }
  .lys-boca-grande { left: 40%; top: 46%; width: 20%; height: 12%; overflow: hidden; border-radius: 8% 8% 100% 100%; background: var(--lys-o); }
  .lys-boca-grande i { position: absolute; left: 30%; bottom: 0; width: 40%; height: 45%; background: #f0688b; border-radius: 100% 100% 0 0; }
  .lys-boca-trabajo { left: 45%; top: 51%; width: 10%; height: 5%; border-radius: 40% 40% 90% 90%; background: var(--lys-o); }
  .lys-ojo-triste { top: 33%; width: 14%; height: 9%; border-radius: 90% 90% 0 0; border-top: var(--lys-g) solid var(--lys-o); }
  .lys-lagrima { left: 77%; top: 33%; width: 7%; height: 9%; background: #7fb2e8; border-radius: 50% 50% 50% 0; transform: rotate(45deg); animation: lys-gota 2.4s ease-in-out infinite; }
  .lys-boca-triste { left: 44%; top: 50%; width: 13%; height: 7%; border-radius: 0 0 100% 100%; border-bottom: var(--lys-g) solid var(--lys-o); }

  .lys-cuello {
    left: 50%;
    bottom: 25%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: calc(var(--lys-s) * 0.055) solid transparent;
    border-right: calc(var(--lys-s) * 0.055) solid transparent;
    border-top: calc(var(--lys-s) * 0.08) solid var(--lys-c);
  }
  .lys-boton { left: 48.5%; bottom: 16%; width: 4%; height: 4%; border-radius: 9999px; background: var(--lys-c); box-shadow: var(--lys-sombra); opacity: 0.35; }

  .lys-mano { width: 14%; height: 14%; border-radius: 9999px; background: var(--lys-c); box-shadow: var(--lys-sombra); }
  .lys-mano-saludo {
    left: 82%;
    top: 62%;
    width: 14%;
    height: 14%;
    transition: top 0.5s cubic-bezier(0.34, 1.25, 0.5, 1), left 0.5s ease;
  }
  .lys-mano-saludo .lys-mano { position: static; width: 100%; height: 100%; transform-origin: 50% 95%; }
  .lys:is([data-pose='greeting'], [data-pose='saluda']) .lys-mano-saludo { left: 80%; top: 24%; }
  .lys[data-pose='greeting'] .lys-mano-saludo .lys-mano { animation: lys-greet 1.1s ease-in-out infinite; }
  .lys[data-pose='saluda'] .lys-mano-saludo .lys-mano { animation: lys-greet 0.32s ease-in-out infinite; }
  .lys-toca { animation: lys-tap 0.7s ease-in-out infinite; }
  .lys-toca-lento { animation: lys-tap 1.1s ease-in-out infinite; }
  .lys-agita { animation: lys-wave 1s ease-in-out infinite; }
  .lys-chispa { font-size: calc(var(--lys-s) * 0.11); color: var(--lys-c); animation: lys-twinkle 1.3s ease-in-out infinite; }

  .lys-papel {
    left: 27%;
    top: 64%;
    width: 47%;
    height: 31%;
    background: #fff;
    border: var(--lys-g) solid #d9d5cc;
    border-radius: 6px;
    transform: rotate(-6deg);
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.2);
  }
  .lys-papel i { position: absolute; left: 12%; width: 76%; height: 6%; background: #e6e2d8; border-radius: 3px; }
  .lys-lapiz { left: 57%; top: 57%; width: 8%; height: 30%; animation: lys-write 0.6s ease-in-out infinite; }
  .lys-lapiz > div { inset: 0; transform: rotate(30deg); }
  .lys-lapiz i { position: absolute; left: 0; top: 0; width: 100%; height: 80%; border-radius: 45% 45% 8% 8%; background: var(--lys-o); }
  .lys-lapiz b { position: absolute; left: 8%; bottom: 0; width: 84%; height: 22%; background: #e0a93a; clip-path: polygon(0 0, 100% 0, 50% 100%); }
  .lys-escribe { animation: lys-write 0.6s ease-in-out infinite; }
  .lys-punto { border-radius: 9999px; background: var(--lys-c); box-shadow: var(--lys-sombra); animation: lys-dot 1.1s ease-in-out infinite; }

  @keyframes lys-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5%); } }
  @keyframes lys-blink { 0%, 90%, 100% { transform: scaleY(1); } 94% { transform: scaleY(0.08); } }
  @keyframes lys-twinkle { 0%, 100% { transform: scale(1) rotate(0); opacity: 0.9; } 50% { transform: scale(1.35) rotate(20deg); opacity: 1; } }
  @keyframes lys-dot { 0%, 60%, 100% { transform: translateY(0); opacity: 0.5; } 30% { transform: translateY(-70%); opacity: 1; } }
  @keyframes lys-wave { 0%, 100% { transform: rotate(6deg); } 50% { transform: rotate(-14deg); } }
  @keyframes lys-tap { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10%); } }
  @keyframes lys-greet { 0%, 100% { transform: rotate(-22deg); } 50% { transform: rotate(20deg); } }
  @keyframes lys-write { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-9%, 6%); } }
  @keyframes lys-spin { to { transform: rotate(360deg); } }
  @keyframes lys-gota { 0% { translate: 0 0; opacity: 0; } 25% { opacity: 1; } 100% { translate: 0 200%; opacity: 0; } }
  @keyframes lys-joy { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(180deg) scale(1.2); } 100% { transform: rotate(360deg) scale(1); } }

  @media (prefers-reduced-motion: reduce) {
    .lys, .lys * { animation: none !important; transition: none !important; }
  }