/* ==========================================================================
   Animal Libre — capa v5 «siguiente nivel»
   Ritmo amplio, huecos de foto, fondo generativo, títulos cinéticos,
   marquesinas, Choose Cruelty, 16 años, footer global, idiomas.
   ========================================================================== */

:root {
  --al-negro: #07040a;
  --al-tinta-2: #120a17;
  --al-violeta: #7E17BE;
  --al-rojo: #E93B24;
  --al-magenta: #B42A9A;
  --al-hueso: #f6f3f8;
  --al-grad: linear-gradient(100deg, #7E17BE 0%, #B42A9A 50%, #E93B24 100%);
  --al-sec: clamp(110px, 12vw, 200px);
  --al-ease: cubic-bezier(.2, .8, .2, 1);
}

/* ---------- Ritmo: secciones que respiran ---------- */
.al-sec { padding-top: var(--al-sec); padding-bottom: var(--al-sec); position: relative; }
.al-sec--corta { padding-top: calc(var(--al-sec) * .65); padding-bottom: calc(var(--al-sec) * .65); }
.al-sec--hueso { background: var(--al-hueso); }
.al-ancho { max-width: 1320px; margin-inline: auto; padding-inline: clamp(20px, 5vw, 64px); }
.al-angosto { max-width: 46rem; }
.al-cabecera { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(28px, 5vw, 96px); align-items: end; margin-bottom: clamp(56px, 7vw, 110px); }
.al-cabecera p { font-size: 1.15rem; line-height: 1.7; max-width: 34rem; }
@media (max-width: 991px) { .al-cabecera { grid-template-columns: 1fr; } }

.al-titulo-xl { font-size: clamp(2.6rem, 1.4rem + 5vw, 6.4rem); line-height: .98; letter-spacing: -0.035em; font-weight: 600; color: #000; }
.al-titulo-l { font-size: clamp(2.2rem, 1.3rem + 3.4vw, 4.6rem); line-height: 1.02; letter-spacing: -0.03em; font-weight: 600; color: #000; }
.mil-dark-bg .al-titulo-xl, .mil-dark-bg .al-titulo-l, .al-oscura .al-titulo-xl, .al-oscura .al-titulo-l { color: #fff; }
.al-titulo-xl .mil-thin, .al-titulo-l .mil-thin { font-weight: 400; }
.al-kicker { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 28px; font-size: .95rem; font-weight: 500; color: var(--al-violeta); }
.al-kicker::before { content: ""; width: 34px; height: 2px; background: var(--al-grad); }
.mil-dark-bg .al-kicker, .al-oscura .al-kicker { color: #d8b4f5; }
.al-lead { font-size: clamp(1.15rem, 1rem + .4vw, 1.35rem); line-height: 1.7; color: #3d3542; }
.mil-dark-bg .al-lead, .al-oscura .al-lead { color: rgba(255,255,255,.74); }

/* Palabras y letras divididas para revelados */
.al-split-linea { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.al-split-palabra { display: inline-block; will-change: transform; }

/* ---------- Huecos de foto: lugar reservado y elegante ---------- */
.al-hueco {
  position: relative; overflow: hidden; width: 100%; border-radius: 20px;
  background:
    radial-gradient(120% 90% at 20% 15%, rgba(126,23,190,.28), transparent 55%),
    radial-gradient(110% 80% at 85% 90%, rgba(233,59,36,.22), transparent 55%),
    linear-gradient(160deg, #1a0f22 0%, #0c0710 100%);
  isolation: isolate;
}
.al-hueco::before { /* grano */
  content: ""; position: absolute; inset: -50%; z-index: 1; opacity: .18; pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
  animation: al-grano 1.2s steps(6) infinite;
}
.al-hueco::after { /* brillo que recorre */
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.07) 50%, transparent 65%);
  transform: translateX(-100%); animation: al-brillo 5.5s var(--al-ease) infinite;
}
.al-hueco .al-hueco-golo { position: absolute; z-index: 2; left: 50%; top: 50%; width: 18%; max-width: 72px; min-width: 34px; transform: translate(-50%, -60%); opacity: .22; filter: grayscale(.2); }
.al-hueco .al-hueco-texto { position: absolute; z-index: 2; left: 18px; right: 18px; bottom: 16px; font-size: .78rem; line-height: 1.4; color: rgba(255,255,255,.55); letter-spacing: .02em; }
.al-hueco .al-hueco-texto b { display: block; font-weight: 500; color: rgba(255,255,255,.8); margin-bottom: 2px; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; }
.al-sec--hueso .al-hueco, .al-hueco--claro {
  background:
    radial-gradient(120% 90% at 20% 15%, rgba(126,23,190,.16), transparent 55%),
    radial-gradient(110% 80% at 85% 90%, rgba(233,59,36,.12), transparent 55%),
    linear-gradient(160deg, #ece6f1 0%, #e2dbe8 100%);
}
.al-sec--hueso .al-hueco .al-hueco-texto, .al-hueco--claro .al-hueco-texto { color: rgba(0,0,0,.5); }
.al-sec--hueso .al-hueco .al-hueco-texto b, .al-hueco--claro .al-hueco-texto b { color: rgba(0,0,0,.7); }
@keyframes al-grano { 0% { transform: translate(0,0) } 20% { transform: translate(-5%,3%) } 40% { transform: translate(3%,-4%) } 60% { transform: translate(-3%,5%) } 80% { transform: translate(4%,2%) } 100% { transform: translate(0,0) } }
@keyframes al-brillo { 0%, 30% { transform: translateX(-100%) } 70%, 100% { transform: translateX(100%) } }

/* ---------- Hero generativo ---------- */
.al-portada { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; background: var(--al-negro); color: #fff; }
.al-portada canvas.al-gl { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; }
.al-portada::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(7,4,10,.25) 0%, rgba(7,4,10,0) 40%, rgba(7,4,10,.75) 100%); }
.al-portada .al-ancho { position: relative; z-index: 2; width: 100%; padding-top: 180px; padding-bottom: clamp(48px, 7vw, 96px); }
.al-portada h1 { color: #fff; font-size: clamp(3rem, 1.4rem + 6.4vw, 8.2rem); line-height: .95; letter-spacing: -0.04em; font-weight: 600; margin: 0; }
.al-portada h1 .mil-thin { font-weight: 400; color: rgba(255,255,255,.88); }
.al-portada-pie { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; margin-top: clamp(36px, 5vw, 64px); }
.al-portada-pie p { color: rgba(255,255,255,.74); font-size: 1.12rem; line-height: 1.7; max-width: 36rem; margin: 0 0 32px; }
.al-portada-datos { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 40px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.14); font-size: .85rem; color: rgba(255,255,255,.55); }
.al-portada-datos strong { color: #fff; font-weight: 500; }
.al-portada .mil-circle-text { position: relative; right: auto; bottom: auto; }
.al-portada--interna { min-height: 88vh; }
.al-portada--interna h1 { font-size: clamp(2.8rem, 1.4rem + 5.2vw, 7rem); }
.al-portada .al-migas { margin-bottom: 36px; }
@media (max-width: 991px) { .al-portada-pie { grid-template-columns: 1fr; } .al-portada .mil-circle-text { display: none; } }

/* Indicador de scroll */
.al-scroll-hint { position: absolute; z-index: 3; left: 50%; bottom: 22px; width: 1px; height: 54px; background: rgba(255,255,255,.18); overflow: hidden; }
.al-scroll-hint::after { content: ""; position: absolute; left: 0; top: -40%; width: 100%; height: 40%; background: #fff; animation: al-gota 2.2s var(--al-ease) infinite; }
@keyframes al-gota { 0% { top: -40% } 100% { top: 100% } }

/* ---------- Marquesina ---------- */
.al-marquesina { overflow: hidden; white-space: nowrap; padding-block: clamp(26px, 3vw, 44px); border-block: 1px solid rgba(0,0,0,.08); user-select: none; }
.al-marquesina-pista { display: inline-flex; will-change: transform; }
.al-marquesina-grupo { display: inline-flex; align-items: center; gap: clamp(28px, 3vw, 56px); padding-right: clamp(28px, 3vw, 56px); font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-size: clamp(2.4rem, 1.4rem + 4vw, 6rem); font-weight: 600; letter-spacing: -0.03em; line-height: 1; color: #000; }
.al-marquesina-grupo .al-hueca { color: transparent; -webkit-text-stroke: 1.5px rgba(0,0,0,.45); }
.al-marquesina-grupo img { height: .8em; width: auto; }
.al-marquesina--oscura { background: var(--al-negro); border-color: rgba(255,255,255,.08); }
.al-marquesina--oscura .al-marquesina-grupo { color: #fff; }
.al-marquesina--oscura .al-hueca { -webkit-text-stroke-color: rgba(255,255,255,.5); }

/* ---------- Manifiesto ---------- */
.al-manifiesto-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(40px, 7vw, 120px); align-items: start; }
.al-manifiesto-grid .al-hueco { aspect-ratio: 4 / 5; position: sticky; top: 120px; }
.al-pilares { display: grid; gap: 0; margin-top: 56px; border-top: 1px solid rgba(0,0,0,.1); }
.al-pilar { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 20px; padding: 26px 0; border-bottom: 1px solid rgba(0,0,0,.1); }
.al-pilar span { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 1.1rem; }
.al-pilar h3 { font-size: 1.45rem; margin: 0 0 6px; }
.al-pilar p { margin: 0; color: #4a4150; }
@media (max-width: 991px) { .al-manifiesto-grid { grid-template-columns: 1fr; } .al-manifiesto-grid .al-hueco { position: relative; top: 0; aspect-ratio: 4 / 3; } }

/* ---------- Choose Cruelty ---------- */
.al-cc { background: #0b0507; color: #fff; overflow: hidden; }
.al-cc::before { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 60% at 80% 20%, rgba(233,59,36,.22), transparent 60%), radial-gradient(60% 60% at 10% 90%, rgba(126,23,190,.25), transparent 60%); pointer-events: none; }
.al-cc .al-ancho { position: relative; z-index: 1; }
.al-cc-titulo { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; line-height: .9; letter-spacing: -0.045em; font-size: clamp(3.4rem, 1.4rem + 9vw, 12rem); margin: 0; color: #fff; }
.al-cc-titulo .al-cc-tachar { position: relative; display: inline-block; }
.al-cc-titulo .al-cc-tachar::after { content: ""; position: absolute; left: -2%; right: -2%; top: 52%; height: .07em; background: var(--al-rojo); transform: scaleX(var(--t, 0)); transform-origin: left; }
.al-cc-cambio { display: block; font-size: .42em; letter-spacing: -0.02em; margin-top: .25em; background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.al-cc-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(36px, 6vw, 100px); margin-top: clamp(56px, 7vw, 100px); align-items: start; }
.al-cc-grid .al-hueco { aspect-ratio: 16 / 9; }
.al-cc-play { position: absolute; z-index: 3; left: 50%; top: 50%; width: 88px; height: 88px; margin: -44px 0 0 -44px; border-radius: 50%; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); display: grid; place-items: center; backdrop-filter: blur(6px); }
.al-cc-play::before { content: ""; margin-left: 6px; border-left: 20px solid #fff; border-top: 12px solid transparent; border-bottom: 12px solid transparent; }
.al-premio { display: flex; gap: 18px; align-items: center; padding: 22px 24px; border-radius: 16px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); margin: 28px 0; }
.al-premio-sello { flex: 0 0 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--al-grad); font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: 1.5rem; }
.al-premio strong { display: block; color: #fff; font-weight: 500; }
.al-premio span { color: rgba(255,255,255,.6); font-size: .95rem; }
.al-creditos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); font-size: .9rem; color: rgba(255,255,255,.55); }
.al-creditos b { display: block; color: #fff; font-weight: 500; }
.al-cc-procesos { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0 0; padding: 0; list-style: none; }
.al-cc-procesos li { padding: 8px 16px; border-radius: 40px; border: 1px solid rgba(255,255,255,.2); font-size: .9rem; color: rgba(255,255,255,.8); }
@media (max-width: 991px) { .al-cc-grid { grid-template-columns: 1fr; } }

/* ---------- 16 años ---------- */
.al-anos { background: var(--al-negro); color: #fff; overflow: hidden; }
.al-anos-escena { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; position: relative; }
.al-anos-ano { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: clamp(5rem, 2rem + 17vw, 22rem); line-height: .82; letter-spacing: -0.06em; font-variant-numeric: tabular-nums; margin: 0; background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.al-anos-linea { position: relative; height: 2px; background: rgba(255,255,255,.12); margin: 48px 0 28px; }
.al-anos-linea span { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--al-grad); }
.al-anos-hitos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.al-anos-hito { opacity: .25; transition: opacity .5s ease; }
.al-anos-hito.al-activo { opacity: 1; }
.al-anos-hito b { display: block; font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: 1.05rem; margin-bottom: 6px; }
.al-anos-hito span { font-size: .95rem; color: rgba(255,255,255,.65); line-height: 1.5; display: block; }
.al-anos-etiqueta { font-size: 1rem; color: #d8b4f5; margin-bottom: 18px; }
.al-horizontes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: clamp(48px, 6vw, 90px); }
.al-horizonte { padding: 40px 32px; border-radius: 20px; border: 1px solid rgba(255,255,255,.12); background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0)); position: relative; overflow: hidden; }
.al-horizonte::before { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%; background: var(--al-grad); transform: scaleX(0); transform-origin: left; transition: transform .8s var(--al-ease); }
.al-horizonte:hover::before { transform: scaleX(1); }
.al-horizonte em { font-style: normal; font-size: .85rem; color: #d8b4f5; letter-spacing: .12em; text-transform: uppercase; }
.al-horizonte h3 { color: #fff; font-size: 1.6rem; margin: 16px 0 14px; line-height: 1.2; }
.al-horizonte p { color: rgba(255,255,255,.68); margin: 0; }
.al-2042 { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: clamp(4rem, 2rem + 12vw, 15rem); line-height: .85; letter-spacing: -0.06em; color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.35); margin: 0; }
@media (max-width: 991px) { .al-anos-hitos, .al-horizontes { grid-template-columns: 1fr 1fr; } .al-anos-escena { min-height: 0; padding-block: 100px; } }
@media (max-width: 560px) { .al-anos-hitos, .al-horizontes { grid-template-columns: 1fr; } }

/* ---------- Proyectos (recorrido) con huecos ---------- */
.al-proyecto-foto .al-hueco { position: absolute; inset: 0; border-radius: 0; }
.al-proyecto-foto { border-radius: 18px; }
.al-proyecto h3 { font-size: 1.7rem; }

/* ---------- Bloques de la página de proyectos ---------- */
.al-proyecto-bloque { padding: var(--al-sec) 0; }
.al-proyecto-bloque .al-descubre .al-hueco { position: absolute; inset: 0; border-radius: 0; }
.al-proyecto-bloque .al-descubre { background: #120a17; }

/* ---------- Equipo con monogramas ---------- */
.al-equipo { gap: 20px; }
.al-persona { position: relative; border-radius: 20px; overflow: hidden; background: #fff; border: 1px solid rgba(0,0,0,.06); transition: transform .6s var(--al-ease), box-shadow .6s ease; }
.al-persona:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(126,23,190,.12); }
.al-persona .al-hueco { aspect-ratio: 1; border-radius: 0; }
.al-persona .al-monograma { position: absolute; z-index: 3; left: 0; right: 0; top: 0; aspect-ratio: 1; display: grid; place-items: center; font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: clamp(2.6rem, 2rem + 2vw, 3.6rem); color: rgba(255,255,255,.9); letter-spacing: -0.02em; }
.al-persona-info { padding: 20px 22px 24px; }
.al-persona-info h3 { font-size: 1.15rem; margin: 0 0 4px; }
.al-persona-info span { display: block; font-size: .9rem; color: #6b6272; margin-bottom: 14px; }
.al-persona-info a { font-size: .9rem; color: var(--al-violeta); text-decoration: none; border-bottom: 1px solid rgba(126,23,190,.3); }

/* ---------- Países ---------- */
.al-paises-grandes { display: grid; gap: 0; border-top: 1px solid rgba(255,255,255,.14); }
.al-pais-fila { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: baseline; padding: 28px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.al-pais-fila h3 { margin: 0; font-size: clamp(2.6rem, 1.4rem + 5vw, 6.5rem); line-height: 1; letter-spacing: -0.04em; color: #fff; transition: color .5s ease, transform .6s var(--al-ease); }
.al-pais-fila:hover h3 { transform: translateX(16px); background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.al-pais-fila p { margin: 0; color: rgba(255,255,255,.6); text-align: right; }

/* ---------- Idiomas ---------- */
.al-idiomas { display: inline-flex; gap: 4px; padding: 4px; border-radius: 40px; background: rgba(0,0,0,.06); pointer-events: all; }
.al-idiomas a { display: inline-grid; place-items: center; min-width: 38px; height: 30px; padding: 0 10px; border-radius: 30px; font-size: .78rem; font-weight: 500; letter-spacing: .08em; color: rgba(0,0,0,.6); text-decoration: none; transition: background-color .3s ease, color .3s ease; }
.al-idiomas a:hover { color: #000; }
.al-idiomas a[aria-current="true"] { background: #000; color: #fff; }
.mil-frame.al-oscuro .al-idiomas, .mil-menu-frame .al-idiomas, .al-pie .al-idiomas { background: rgba(255,255,255,.1); }
.mil-frame.al-oscuro .al-idiomas a, .mil-menu-frame .al-idiomas a, .al-pie .al-idiomas a { color: rgba(255,255,255,.65); }
.mil-frame.al-oscuro .al-idiomas a[aria-current="true"], .mil-menu-frame .al-idiomas a[aria-current="true"], .al-pie .al-idiomas a[aria-current="true"] { background: #fff; color: #000; }
.mil-frame-top .al-derecha { display: flex; align-items: center; gap: 22px; pointer-events: all; }
@media (max-width: 1200px) { .mil-frame-top .al-derecha .al-idiomas { display: none; } }
.mil-menu-right .al-idiomas { margin-bottom: 28px; }

/* ---------- Footer global ---------- */
.al-pie { position: relative; background: var(--al-negro); color: rgba(255,255,255,.7); overflow: hidden; }
.al-pie a { color: inherit; text-decoration: none; transition: color .3s ease; }
.al-pie a:hover { color: #fff; }
.al-pie-cta { padding: clamp(100px, 12vw, 180px) 0 clamp(60px, 7vw, 100px); position: relative; }
.al-pie-cta h2 { color: #fff; font-size: clamp(2.6rem, 1.4rem + 5.4vw, 7rem); line-height: .96; letter-spacing: -0.04em; margin: 0 0 48px; max-width: 17ch; }
.al-pie-golo { position: absolute; right: -4%; top: 6%; width: min(38vw, 520px); height: auto; opacity: .9; pointer-events: none; }
.al-pie-golo path { fill: none; stroke: url(#al-pie-grad); stroke-width: 18; }
.al-pie-grilla { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 40px; padding: 64px 0; border-top: 1px solid rgba(255,255,255,.1); }
.al-pie-grilla h3 { color: #fff; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 500; margin: 0 0 22px; }
.al-pie-grilla ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; font-size: 1rem; }
.al-pie-marca img { height: 46px; width: auto; margin-bottom: 22px; }
.al-pie-marca p { max-width: 30ch; line-height: 1.6; }
.al-pie-paises { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.al-pie-paises span { padding: 6px 14px; border: 1px solid rgba(255,255,255,.16); border-radius: 30px; font-size: .85rem; }
.al-pie-base { display: flex; flex-wrap: wrap; gap: 18px 32px; align-items: center; justify-content: space-between; padding: 28px 0 40px; border-top: 1px solid rgba(255,255,255,.1); font-size: .9rem; }
.al-pie-base ul { display: flex; gap: 24px; list-style: none; margin: 0; padding: 0; }
.al-arriba { display: inline-flex; align-items: center; gap: 12px; background: none; border: 0; color: #fff; font: inherit; cursor: pointer; }
.al-arriba i { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); display: grid; place-items: center; font-style: normal; transition: background-color .3s ease, transform .4s var(--al-ease); }
.al-arriba:hover i { background: var(--al-violeta); transform: translateY(-4px); }
.al-pie-palabra { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: clamp(4rem, 1rem + 15.5vw, 18rem); line-height: .78; letter-spacing: -0.06em; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.14); white-space: nowrap; margin: 0; padding-bottom: .1em; text-align: center; user-select: none; }
@media (max-width: 991px) { .al-pie-grilla { grid-template-columns: 1fr 1fr; } .al-pie-marca { grid-column: 1 / -1; } .al-pie-golo { opacity: .35; width: 70vw; } }

/* ---------- Ajustes de componentes heredados ---------- */
.al-lectura-escena { padding-left: clamp(20px, 5vw, 64px); padding-right: clamp(20px, 5vw, 64px); max-width: 1320px; }
.al-showcase__item .al-hueco { position: absolute; inset: 0; border-radius: 0; }
.al-showcase__item { background: #120a17; }
.al-mv-card { padding: clamp(40px, 4vw, 64px); border-radius: 24px; }
.al-impact-card { padding: clamp(36px, 3vw, 52px) clamp(28px, 2.5vw, 40px); }
.mil-collage .al-hueco { border-radius: 16px; }
.mil-collage-item .al-hueco { aspect-ratio: 4 / 5; }
.mil-collage-item-2 .al-hueco, .mil-collage-item-3 .al-hueco { aspect-ratio: 3 / 2; }
.al-recorrido-cabeza { padding-top: var(--al-sec); }
#impact-section .mil-service-card-sm h5.mil-counter { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600 !important; letter-spacing: -0.03em; }
.mil-menu-frame .mil-main-menu ul li a { font-size: clamp(1.8rem, 1.2rem + 1.6vw, 2.8rem); letter-spacing: -0.02em; }

/* Cursor con mezcla */
.mil-ball { mix-blend-mode: difference; background-color: #fff !important; }
.mil-ball .mil-more-text { color: #000; }

/* ==========================================================================
   v5 · componentes de páginas
   ========================================================================== */
html { background: var(--al-negro); }
body { background: #fff; }
.al-mt { margin-top: clamp(36px, 4vw, 56px); }
.al-mt-s { margin-top: 28px; }
.al-oscura { background: var(--al-negro); color: rgba(255,255,255,.72); position: relative; }
.al-oscura h2, .al-oscura h3 { color: #fff; }
.al-oscura .mil-link.al-blanco, .al-pie .mil-link.al-blanco, .al-portada .mil-link.al-blanco { color: #fff !important; }
.al-oscura canvas.al-nebulosa { z-index: 0; opacity: .7; }
.al-oscura > .al-ancho { position: relative; z-index: 1; }

/* Texto dividido en palabras */
.al-w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .02em .14em; margin: 0 -.02em -.14em; }
.al-wi { display: inline-block; will-change: transform; transform-origin: 0 100%; }
html.al-js [data-split]:not(.al-partido) { visibility: hidden; }

/* ---------- Portadas ---------- */
.al-portada { background: radial-gradient(80% 70% at 75% 30%, rgba(126,23,190,.45), transparent 60%), radial-gradient(60% 60% at 90% 90%, rgba(233,59,36,.28), transparent 60%), var(--al-negro); }
.al-portada canvas.al-gl.al-sin-gl { display: none; }
.al-portada::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .12;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.al-portada h1 { max-width: 13ch; }
.al-portada--interna h1 { max-width: 15ch; }
.al-portada .al-kicker { color: #e2c8f7; }
.al-portada-pie > p, .al-portada-pie > div > p, .al-portada-bajada { color: rgba(255,255,255,.76); font-size: 1.12rem; line-height: 1.7; max-width: 38rem; margin: 0 0 32px; }
.al-portada-bajada { margin-top: 32px; }
.al-portada--corta { min-height: 72vh; }
.al-portada--centro { align-items: center; }
.al-portada--centro .al-ancho { padding-top: 140px; }
.al-portada--centro h1 { max-width: 18ch; font-size: clamp(2.4rem, 1.2rem + 4vw, 5.6rem); }
.al-numero-xl { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; line-height: .8; letter-spacing: -0.06em; font-size: clamp(7rem, 3rem + 18vw, 20rem); margin: 0 0 24px; color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.4); }
.al-unete-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(36px, 6vw, 100px); align-items: end; }
.al-unete-grid .al-impact-box { margin: 0; }
.al-impact-box h2 { color: #fff; font-size: 1.3rem; margin: 0 0 18px; }
.al-impact-box p { color: rgba(255,255,255,.75); }
@media (max-width: 991px) { .al-unete-grid { grid-template-columns: 1fr; } }
.al-portada .al-migas li { color: rgba(255,255,255,.6); }

/* ---------- Manifiesto ---------- */
.al-manifiesto-visual { position: sticky; top: 120px; aspect-ratio: 4 / 5; border-radius: 20px; overflow: hidden; }
.al-manifiesto-visual .al-hueco, .al-manifiesto-grid .al-manifiesto-visual .al-hueco { position: absolute; inset: 0; aspect-ratio: auto; top: 0; border-radius: 0; height: 100%; }
@media (max-width: 991px) { .al-manifiesto-visual { position: relative; top: 0; aspect-ratio: 4 / 3; } }

/* ---------- Marquesina ---------- */
.al-marquesina--oscura .al-marquesina-grupo img { height: .72em; opacity: .9; }

/* ---------- Choose Cruelty ---------- */
.al-cc-titulo .al-cc-tachar { transition: none; }
.al-cc-cambio { display: block; margin: .1em 0 0; font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; line-height: .95; letter-spacing: -0.045em; font-size: clamp(2.6rem, 1.2rem + 6.4vw, 8.4rem); padding-bottom: .08em; }
.al-cc-video { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 16 / 9; }
.al-cc-video .al-hueco { position: absolute; inset: 0; border-radius: 0; aspect-ratio: auto; }
.al-cc-lead { font-family: 'Heuvel Grotesk','Outfit',sans-serif; color: #fff !important; font-size: clamp(1.3rem, 1rem + .9vw, 1.75rem) !important; line-height: 1.35 !important; letter-spacing: -0.01em; margin: 0; }
.al-cc-texto { margin-top: 26px; color: rgba(255,255,255,.7); }
.al-cc-eslogan { margin: 26px 0 0; font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: 1.5rem; color: #fff; letter-spacing: -0.01em; }
.al-cc-eslogan span { background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.al-cc-procesos li { transition: background-color .4s ease, border-color .4s ease; }
.al-cc-procesos li:hover { background: rgba(233,59,36,.15); border-color: rgba(233,59,36,.6); }

/* ---------- Recorrido ---------- */
.al-recorrido { background: #fff; }
.al-recorrido-cabeza { padding-top: var(--al-sec); }
.al-recorrido-cabeza .al-cabecera { margin-bottom: 20px; }
.al-pista { padding-left: max(clamp(20px, 5vw, 64px), calc((100vw - 1320px) / 2 + clamp(20px, 5vw, 64px))); }
.al-proyecto { width: clamp(280px, 26vw, 380px); color: #000; text-decoration: none; }
.al-proyecto-foto .al-hueco { aspect-ratio: auto; }
.al-avance { margin: 0; }

/* ---------- 16 años ---------- */
.al-anos-hitos { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.al-anos-hito { transform: translateY(14px); transition: opacity .6s ease, transform .8s var(--al-ease); }
.al-anos-hito.al-activo { transform: none; }
.al-anos-hito b { color: #fff; }
.al-anos-ano { transform-origin: 0 80%; }
.al-cabecera--2042 { align-items: end; }
.al-2042 { position: relative; display: inline-block; }
.al-2042::after { content: attr(data-texto); position: absolute; inset: 0; background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-stroke: 0; clip-path: inset(0 calc(100% - var(--f, 0) * 100%) 0 0); }
.al-horizonte { transform-style: preserve-3d; }
.al-horizonte::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(400px circle at var(--mx, 50%) var(--my, 0%), rgba(180,42,154,.18), transparent 50%); opacity: 0; transition: opacity .4s ease; }
.al-horizonte:hover::after { opacity: 1; }
@media (max-width: 991px) { .al-anos-hitos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .al-anos-hitos { grid-template-columns: 1fr; } }

/* ---------- Origen y collage ---------- */
.al-origen-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(40px, 7vw, 120px); align-items: center; }
.al-collage { position: relative; padding-bottom: 118%; }
.al-collage .mil-collage-item { box-shadow: 0 30px 60px rgba(20,8,30,.18); border-radius: 16px; }
@media (max-width: 991px) { .al-origen-grid { grid-template-columns: 1fr; } .al-collage { padding-bottom: 0; display: grid; gap: 14px; } }

/* ---------- Cifras ---------- */
.al-cifras { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(255,255,255,.12); border-left: 1px solid rgba(255,255,255,.12); }
.al-cifra { padding: clamp(28px, 3vw, 48px) clamp(20px, 2vw, 32px); border-right: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); transition: background-color .5s ease; }
.al-cifra:hover { background: rgba(126,23,190,.12); }
.al-cifra-num { margin: 0 0 10px; font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: clamp(2.4rem, 1.4rem + 2.6vw, 4.4rem); line-height: 1; letter-spacing: -0.04em; color: #fff; font-variant-numeric: tabular-nums; }
.al-cifra:hover .al-cifra-num { background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.al-cifra-txt { margin: 0; color: rgba(255,255,255,.62); font-size: .98rem; line-height: 1.45; }
@media (max-width: 991px) { .al-cifras { grid-template-columns: 1fr 1fr; } }

/* ---------- Tienda ---------- */
.al-tienda { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2vw, 32px); }
.al-producto { position: relative; }
.al-producto .al-hueco { aspect-ratio: 4 / 5; margin-bottom: 20px; transition: transform .8s var(--al-ease); }
.al-producto:hover .al-hueco { transform: scale(.98); }
.al-producto h3 { font-size: 1.3rem; margin: 0 0 6px; }
.al-producto p { margin: 0; color: #5c5363; }
.al-producto--cta { display: flex; flex-direction: column; justify-content: flex-end; gap: 16px; padding: clamp(28px, 3vw, 44px); border-radius: 20px; background: var(--al-negro); color: rgba(255,255,255,.7); min-height: 320px; overflow: hidden; }
.al-producto--cta::before { content: ""; position: absolute; inset: 0; background: radial-gradient(80% 70% at 80% 10%, rgba(126,23,190,.5), transparent 60%), radial-gradient(60% 60% at 0% 100%, rgba(233,59,36,.35), transparent 60%); }
.al-producto--cta > * { position: relative; }
.al-producto--cta h3 { color: #fff; font-size: 2rem; }
.al-producto--cta p { color: rgba(255,255,255,.72); }
@media (max-width: 991px) { .al-tienda { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .al-tienda { grid-template-columns: 1fr; } }

/* ---------- Notas / blog ---------- */
.al-notas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2vw, 32px); }
.al-nota { position: relative; color: #000; text-decoration: none; display: block; }
.al-nota .al-hueco { aspect-ratio: 4 / 3; margin-bottom: 20px; }
.al-notas--grandes .al-nota .al-hueco { aspect-ratio: 4 / 5; }
.al-nota h3 { font-size: 1.5rem; margin: 0 0 6px; transition: color .3s ease; }
.al-nota:hover h3 { color: var(--al-violeta); }
.al-nota p { margin: 0; color: #5c5363; }
.al-pronto-chip { position: absolute; top: 16px; left: 16px; z-index: 3; padding: 7px 14px; border-radius: 30px; background: rgba(255,255,255,.92); font-size: .8rem; font-weight: 500; color: #000; }
@media (max-width: 991px) { .al-notas { grid-template-columns: 1fr; } }

/* ---------- Quiénes somos ---------- */
.al-mv { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 120px); align-items: start; }
.al-mv-item .al-texto-grande { margin-bottom: 24px; }
@media (max-width: 991px) { .al-mv { grid-template-columns: 1fr; } }
.al-hito .al-foto { position: relative; }
.al-hito .al-foto .al-hueco { position: absolute; inset: 0; border-radius: 0; }
.al-hito p { margin-bottom: 14px; }
.al-ano--hueco { -webkit-text-stroke: 1.5px var(--al-violeta); background: none !important; color: transparent !important; }
.al-foto--2042 { display: grid; place-items: center; background: var(--al-negro); }
.al-foto--2042 span { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: clamp(4rem, 2rem + 6vw, 8rem); letter-spacing: -0.06em; background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.al-sec--hueso .al-hito::before { background: var(--al-hueso); }
.al-areas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid rgba(0,0,0,.12); }
.al-area { padding: clamp(32px, 3vw, 48px) clamp(20px, 2.5vw, 40px) clamp(32px, 3vw, 48px) 0; border-right: 1px solid rgba(0,0,0,.08); }
.al-area + .al-area { padding-left: clamp(20px, 2.5vw, 40px); }
.al-area:last-child { border-right: 0; }
.al-area span { display: block; font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: 3.4rem; line-height: 1; letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 1px rgba(126,23,190,.6); margin-bottom: 26px; transition: color .5s ease; }
.al-area:hover span { color: var(--al-violeta); }
.al-area h3 { font-size: 1.6rem; margin: 0 0 14px; }
@media (max-width: 991px) { .al-areas { grid-template-columns: 1fr; } .al-area, .al-area + .al-area { padding: 32px 0; border-right: 0; border-bottom: 1px solid rgba(0,0,0,.08); } }
.al-equipo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.al-persona .al-hueco .al-hueco-golo { opacity: .08; }
.al-persona .al-hueco .al-hueco-texto { display: none; }
@media (max-width: 991px) { .al-equipo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .al-equipo { grid-template-columns: 1fr 1fr; gap: 12px; } .al-persona-info { padding: 14px; } .al-persona-info a { font-size: .75rem; word-break: break-all; } }
.al-fronteras .al-pais-fila p { color: rgba(255,255,255,.6); }

/* ---------- Proyectos ---------- */
.al-indice { top: 0; }
.al-indice .al-quick-nav-mosaic { padding: 14px 0; gap: 8px; scrollbar-width: none; }
.al-bloque { padding: calc(var(--al-sec) * .8) 0; border-bottom: 1px solid rgba(0,0,0,.06); }
.al-bloque-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 120px); align-items: center; }
.al-bloque--inv .al-bloque-visual { order: 2; }
.al-bloque-visual { position: relative; }
.al-bloque-visual .al-descubre { position: relative; aspect-ratio: 4 / 5; border-radius: 20px; overflow: hidden; background: #120a17; }
.al-bloque-visual .al-hueco { position: absolute; inset: 0; border-radius: 0; }
.al-bloque-visual .al-jaulas--grande { position: absolute; inset: 0; }
.al-bloque-num { position: absolute; top: -.45em; left: -.1em; z-index: 3; font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: clamp(4rem, 2rem + 5vw, 8rem); line-height: 1; letter-spacing: -0.05em; color: transparent; -webkit-text-stroke: 1.5px rgba(126,23,190,.55); pointer-events: none; }
.al-bloque--inv .al-bloque-num { left: auto; right: -.1em; }
.al-bloque-texto .al-titulo-l { margin: 22px 0 26px; }
.al-bloque-texto .al-titulo-l .mil-thin { display: block; font-size: .62em; margin-top: .2em; color: #000; }
.al-bloque-h4 { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-size: 1.35rem; line-height: 1.4; color: #000; margin-bottom: 18px; }
.al-bloque-cta { margin-top: 34px; }
@media (max-width: 991px) { .al-bloque-grid { grid-template-columns: 1fr; } .al-bloque--inv .al-bloque-visual { order: 0; } .al-bloque-visual .al-descubre { aspect-ratio: 4 / 3; } }

/* ---------- Únete ---------- */
.al-forma { transform-style: preserve-3d; }
.al-forma-num { font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: 1rem; color: var(--al-violeta); }

/* ---------- Contacto ---------- */
.al-contactos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid rgba(0,0,0,.1); }
.al-contacto { padding: clamp(28px, 3vw, 44px) clamp(16px, 2vw, 32px) clamp(28px, 3vw, 44px) 0; border-bottom: 1px solid rgba(0,0,0,.1); }
.al-contacto h2 { font-size: 1.4rem; margin: 0 0 8px; }
.al-contacto p { margin: 0 0 16px; color: #5c5363; }
.al-contacto a { color: var(--al-violeta); text-decoration: none; border-bottom: 1px solid rgba(126,23,190,.3); font-weight: 500; word-break: break-word; transition: border-color .3s ease; }
.al-contacto a:hover { border-color: var(--al-violeta); }
@media (max-width: 991px) { .al-contactos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .al-contactos { grid-template-columns: 1fr; } }
.al-redes-bloque { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.al-redes-bloque p { margin-bottom: 20px; }
@media (max-width: 991px) { .al-redes-bloque { grid-template-columns: 1fr; } }
.al-legal h2 { font-size: 1.5rem; }

/* ---------- Menú ---------- */
.al-menu-tiempo { display: flex; align-items: center; gap: 16px; font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: clamp(1.8rem, 1rem + 2vw, 3rem); letter-spacing: -0.03em; color: #fff; margin-bottom: 14px; }
.al-menu-tiempo i { flex: 0 0 clamp(30px, 4vw, 70px); height: 2px; background: var(--al-grad); }
.al-menu-frase { color: rgba(255,255,255,.62); max-width: 30rem; margin-bottom: 28px; }
.mil-menu-right .al-idiomas { display: inline-flex; }

/* ---------- Footer ---------- */
.al-pie h2 { position: relative; z-index: 1; }
.al-pie-cta .al-ancho { position: relative; z-index: 1; }
.al-pie-bajada { max-width: 34rem; color: rgba(255,255,255,.68); font-size: 1.12rem; margin: -18px 0 36px; }
.al-pie-golo path { stroke-width: 55; stroke-linejoin: round; }
.al-pie-golo { top: 8%; }
.al-pie-tiempo { display: flex; align-items: center; gap: 18px; padding: 26px 0; border-top: 1px solid rgba(255,255,255,.1); font-family: 'Heuvel Grotesk','Outfit',sans-serif; font-weight: 600; font-size: 1.1rem; color: rgba(255,255,255,.55); }
.al-pie-tiempo i { flex: 1; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,.25), rgba(180,42,154,.8)); transform-origin: left; }
.al-pie-2042 { background: var(--al-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.al-pie-palabra { overflow: hidden; line-height: .9; }
.al-letra { display: inline-block; transition: color .4s ease, -webkit-text-stroke-color .4s ease; }
.al-pie-palabra:hover .al-letra { -webkit-text-stroke-color: rgba(180,42,154,.6); }
.al-pie-base .al-idiomas { margin: 0; }
@media (max-width: 560px) { .al-pie-grilla { grid-template-columns: 1fr 1fr; gap: 32px; } .al-pie-base { flex-direction: column; align-items: flex-start; } .al-pie-base ul { flex-wrap: wrap; gap: 14px 20px; } }

/* ---------- Encabezado ---------- */
.mil-frame-top .al-derecha .al-idiomas { background: rgba(0,0,0,.05); backdrop-filter: blur(8px); }

/* Seguro: el pre-ocultado no aplica si el JS no está */
html:not(.al-js) [data-split] { visibility: visible; }

.al-cabecera .al-2042 { display: block; width: fit-content; font-size: clamp(4rem, 2rem + 12vw, 15rem); line-height: .85; max-width: none; margin: 0; }
.al-cabecera--2042 .al-kicker { display: flex; }
.mil-frame.al-oscuro .al-derecha .al-idiomas { background: rgba(255,255,255,.1); }
.mil-frame.al-oscuro .al-derecha .al-idiomas a { color: rgba(255,255,255,.7); }
.mil-frame.al-oscuro .al-derecha .al-idiomas a[aria-current="true"] { background: #fff; color: #000; }
@media (max-width: 767px) { .al-pais-fila { grid-template-columns: 1fr; gap: 6px; } .al-pais-fila p { text-align: left; } }
.al-foto--2042 span { line-height: 1.05; padding: .05em 0 .1em; }
.al-menu-tiempo span { padding-bottom: .12em; line-height: 1.1; }
