@font-face { font-family: 'CANDIDE'; src: url('../fonts/candide-bold.otf') format('opentype'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'CANDIDE'; src: url('../fonts/candide-condensed-light.otf') format('opentype'); font-weight: 300; font-display: swap; }

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root { --gold: #FFD400; --dark: #141413; --ink: #0a0a09; }
html { scroll-behavior: smooth; }
body { font-family: 'CANDIDE', serif; background: #000; color: #fff; overflow-x: hidden; line-height: 1.6; }

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
    .scroll-ind { animation: none !important; }
}

/* ═══════════════════════════════════════════════════════
   ESPACIO 1 — HERO
   ═══════════════════════════════════════════════════════ */
.hero {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    overflow: hidden;
    background: url('../images/fondo.png') 38% center / cover no-repeat, #0a0a09;
}
.hero::before {
    content: ''; position: absolute; inset: 0; z-index: 1;
    background:
        radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.55), transparent 60%),
        linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.45) 60%, rgba(10,10,9,.95));
}

.hero-logo {
    position: relative; z-index: 2;
    max-width: 640px; width: 68vw;
    margin: 14vh auto 0;
    opacity: 0; animation: fadeScale 1.4s ease forwards;
}
.hero-logo img { width: 100%; height: auto; }
@keyframes fadeScale { from { opacity:0; transform:scale(.88) } to { opacity:1; transform:scale(1) } }

.hero-phrases { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.phrase {
    font-family: 'Roboto', sans-serif;
    font-size: clamp(2rem, 5.5vw, 5rem);
    font-weight: 400; color: #fff;
    line-height: 1.08; letter-spacing: -.01em;
    position: absolute; opacity: 0;
}
.phrase-left  { left: 5vw; top: 52%; animation: slideL 1.2s ease .7s forwards; }
.phrase-right { right: 5vw; top: 58%; text-align: right; animation: slideR 1.2s ease 1.1s forwards; }
@keyframes slideL { from{opacity:0;transform:translateX(-120px)} to{opacity:1;transform:translateX(0)} }
@keyframes slideR { from{opacity:0;transform:translateX(120px)} to{opacity:1;transform:translateX(0)} }
.phrase .letter { display: inline-block; will-change: transform, opacity; }

.scroll-ind {
    position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
    z-index: 3; animation: bounce 2.5s ease infinite; opacity: .85; transition: opacity .4s;
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
    color: var(--gold); font-family: 'Roboto Mono', monospace;
    font-size: .65rem; letter-spacing: .25em;
}
.scroll-ind.hide { opacity: 0; }
.scroll-ind svg { width: 22px; height: 22px; stroke: var(--gold); filter: drop-shadow(0 0 6px rgba(255,212,0,.35)); }
@keyframes bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

/* Hero corner — CHAPTER 01 / 05 */
.hero-corner {
    position: absolute; z-index: 2; font-family: 'Roboto Mono', monospace;
    font-size: .65rem; letter-spacing: .25em;
    color: rgba(255,255,255,.5); text-transform: uppercase;
}
.hero-corner.br { right: clamp(1.2rem, 3vw, 2.5rem); bottom: 2rem; text-align: right; }
.hero-corner .num { color: var(--gold); }

/* ═══ TRANSITION ZONE (particle travel) ═══ */
.transition-zone { height: 40vh; background: #000; }
#particleCanvas { position: fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:10; }

/* ═══════════════════════════════════════════════════════
   ESPACIO 2 — SLOGAN (sticky scroll)
   ═══════════════════════════════════════════════════════ */
.slogan-track {
    position: relative;
    height: 250vh;
    background: #000;
}
.slogan {
    position: sticky;
    top: 0;
    height: 100vh;
    min-height: 100svh;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: 2rem; background: #000;
    overflow: hidden;
}
.slogan-eyebrow {
    font-family: 'Roboto Mono', monospace;
    font-size: .75rem; letter-spacing: .35em;
    color: rgba(255,255,255,.55);
    margin-bottom: 2rem;
    text-transform: uppercase;
    opacity: 0; transition: opacity 1s ease;
}
.slogan-eyebrow.visible { opacity: 1; }
.slogan-eyebrow .num { color: var(--gold); }
.slogan-title {
    font-family: 'Roboto', sans-serif;
    font-size: clamp(4rem, 13vw, 12rem);
    font-weight: 700; color: #fff;
    line-height: 1.05; letter-spacing: -.02em;
    text-align: center;
}
.slogan-title .s-letter { display: inline-block; opacity: 0; will-change: opacity; }
.slogan-sub {
    font-family: 'CANDIDE', serif;
    font-size: clamp(1.1rem, 2.2vw, 1.8rem);
    font-weight: 300; color: #fff;
    margin-top: 2rem; letter-spacing: .02em;
    opacity: 0; transition: opacity 1.2s ease .3s;
    text-align: center;
    max-width: 90%;
}
.slogan-sub.visible { opacity: 1; }

/* Indicador de scroll del slogan */
.slogan-scroll-ind {
    position: absolute;
    bottom: 3rem;
    opacity: 0;
    transition: opacity .8s ease;
}
.slogan-scroll-ind.show { opacity: .7; }
.slogan-scroll-ind.hide { opacity: 0 !important; }

/* ═══════════════════════════════════════════════════════
   ESPACIO 3 — TEAM (sticky scroll)
   ═══════════════════════════════════════════════════════ */
.team-track {
    position: relative;
    height: 250vh;
    background: #000;
}
.team {
    position: sticky;
    top: 0;
    height: 100vh;
    min-height: 100svh;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 2rem;
    background: #000; overflow: hidden;
}

/* Eyebrow 03 · WHO BLENDS */
.team-eyebrow {
    font-family: 'Roboto Mono', monospace;
    font-size: .75rem; letter-spacing: .35em;
    color: rgba(255,255,255,.55);
    text-transform: uppercase;
    margin-bottom: clamp(2.5rem, 6vh, 5rem);
    opacity: 0; transform: translateY(8px);
    transition: opacity .8s ease, transform .8s ease;
}
.team.active .team-eyebrow { opacity: 1; transform: translateY(0); }
.team-eyebrow .num { color: var(--gold); }

/* Center mark — BLEND ring (rotating) */
.center-mark {
    position: absolute;
    left: 50%;
    width: 96px; height: 96px;
    transform: translate(-50%, -50%) scale(0);
    z-index: 3;
    transition: transform .6s cubic-bezier(.34,1.56,.64,1);
    pointer-events: none;
    /* top is set by JS to match photo center Y (same as gold-line) */
}
.center-mark.show { transform: translate(-50%, -50%) scale(1); }
.center-mark .ring {
    width: 100%; height: 100%;
    border-radius: 50%;
    border: 1.5px solid var(--gold);
    background: #000;
    display: flex; align-items: center; justify-content: center;
    animation: blendSpin 14s linear infinite;
}
.center-mark .label {
    font-family: 'Roboto Mono', monospace;
    font-size: .75rem; letter-spacing: .25em;
    color: var(--gold);
    text-transform: uppercase;
}
@keyframes blendSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.photos-row {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    position: relative;
    gap: clamp(3rem, 10vw, 8rem);
}

/* Gold line — positioned relative to photos-row, vertically centered on photos */
.gold-line {
    position: absolute;
    height: 1px; background: var(--gold);
    z-index: 1;
    opacity: 0;
    transition: opacity .8s ease, transform .8s ease;
    transform: translate(-50%, -50%) scaleX(0);
    /* top and width are set by JS to match photo centers exactly */
}
.gold-line.show { opacity: 1; }

.center-dot {
    position: absolute;
    left: 50%;
    width: 22px; height: 22px; border-radius: 50%;
    background: #000; border: 1.5px solid var(--gold);
    transform: translate(-50%, -50%) scale(0);
    z-index: 3;
    transition: transform .5s cubic-bezier(.34,1.56,.64,1);
    /* top is set by JS to match photo center Y */
}
.center-dot.show { transform: translate(-50%, -50%) scale(1); }

.person {
    display: flex; flex-direction: column; align-items: center;
    position: relative; z-index: 2;
    opacity: 0; transform: scale(0.85);
    transition: opacity 0.6s ease-out, transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.team.active .person {
    opacity: 1; transform: scale(1);
}
.team.active .person:nth-child(4) { transition-delay: 0.08s; }

.person-img {
    width: min(55vh, 34vw);
    height: min(55vh, 34vw);
    position: relative; cursor: pointer;
    transition: transform .4s ease;
}
.person-img:hover { transform: scale(1.02); }
.person-img img { width: 100%; height: 100%; object-fit: contain; display: block; }

.person-name {
    font-family: 'CANDIDE', serif;
    font-size: clamp(2.4rem, 4.5vw, 4rem);
    font-weight: 700; letter-spacing: .15em;
    margin-top: .6rem;
}

/* Nombre + cargo + descripción: swap completo en hover */
.person-name {
    transition: opacity .3s ease;
}
.person-role-wrap {
    position: relative;
    min-height: 5em;
    margin-top: .3rem;
    text-align: center;
}
.person-role {
    font-family: 'CANDIDE', serif;
    font-size: clamp(1.15rem, 1.8vw, 1.6rem);
    font-weight: 300; letter-spacing: .15em;
    text-transform: uppercase;
    color: #fff;
    transition: opacity .3s ease;
}
.person-desc {
    font-family: 'CANDIDE', serif;
    font-size: clamp(1.1rem, 2vw, 1.9rem);
    font-weight: 300;
    color: #fff;
    line-height: 1.4;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity .3s ease;
    width: max-content;
    max-width: min(420px, 90vw);
    pointer-events: none;
}
/* Desktop: hover */
@media (hover: hover) {
    .person:hover .person-name,
    .person:hover .person-role { opacity: 0; }
    .person:hover .person-desc { opacity: 1; }
}
/* Móvil/táctil: clase .swap controlada por JS */
.person.swap .person-name,
.person.swap .person-role { opacity: 0; }
.person.swap .person-desc { opacity: 1; }

/* ═══════════════════════════════════════════════════════
   TRANSICIÓN 3→4 — TRIANGLE EXPANSION
   ═══════════════════════════════════════════════════════ */
.expansion-zone { height: 120vh; background: #000; position: relative; }

.gold-layer {
    position: fixed; top: 0; left: 0;
    width: 100%; height: 100%;
    background: var(--gold);
    clip-path: polygon(49.97% 50%, 50.03% 50%, 50.03% 50%, 50.03% 50%, 49.97% 50%, 49.97% 50%);
    z-index: 15; pointer-events: none;
    will-change: clip-path; opacity: 0;
}

/* ═══════════════════════════════════════════════════════
   ESPACIO 4 — ARTISTA
   ═══════════════════════════════════════════════════════ */
.artist-section {
    min-height: 200vh;
    position: relative; z-index: 16;
    background: var(--gold);
    padding: 0 2rem;
}
.artist-content {
    position: fixed;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 17;
    pointer-events: none;
    max-width: 90vw;
}
.artist-content.visible { opacity: 1; pointer-events: auto; }

/* Tag superior — 04 · DEFINICIÓN */
.artist-tag {
    font-family: 'Roboto Mono', monospace;
    font-size: .75rem; letter-spacing: .35em;
    color: rgba(20,20,19,.6);
    text-transform: uppercase;
    margin-bottom: 1rem;
}
.artist-tag .num { color: var(--dark); }

.artist-word {
    font-family: 'CANDIDE', serif;
    font-size: clamp(3rem, 9vw, 7.5rem);
    font-weight: 700; color: var(--dark);
    line-height: 1; letter-spacing: -.02em;
    margin-bottom: .25rem;
}
.artist-phonetic {
    font-family: 'CANDIDE', serif;
    font-size: clamp(1rem, 1.6vw, 1.25rem);
    font-weight: 300;
    color: rgba(20,20,19,.65);
    margin-bottom: 2rem;
    letter-spacing: .04em;
    /* italic simulada — CANDIDE no tiene cursiva */
    transform: skewX(-8deg); display: inline-block;
}
.artist-divider {
    width: 60px; height: 1px;
    background: var(--dark); opacity: .4;
    margin: 0 auto 2rem;
}
.skill-display { min-height: 60px; display: flex; align-items: center; justify-content: center; text-align: center; }
.skill-current {
    font-family: 'CANDIDE', serif;
    font-size: clamp(1.3rem, 2.4vw, 1.9rem);
    font-weight: 300; color: var(--dark);
    opacity: 0; transition: opacity .35s ease;
    letter-spacing: .02em;
    max-width: 32ch; text-wrap: pretty;
}
.skill-current.show { opacity: 1; }

/* ═══ GOTAS TRANSITION ═══ */
.gotas { background: var(--gold); line-height: 0; margin-bottom: -2px; margin-top: -2px; position: relative; z-index: 16; }
.gotas img { width: 100%; display: block; }

/* ═══════════════════════════════════════════════════════
   ESPACIO 5 — RETOS (sticky scroll)
   ═══════════════════════════════════════════════════════ */
.work-track {
    position: relative;
    height: 200vh;
    background: #000;
}
.work-section {
    position: sticky;
    top: 0;
    height: 100vh;
    min-height: 100svh;
    background: #000;
    padding: 0;
    z-index: 16;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.work-inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 6vw;
}

/* ═══════════════════════════════════════════════════════
   ESPACIO 6 — THEARTBLENDER (respuesta)
   ═══════════════════════════════════════════════════════ */
.answer-section {
    background: #000;
    padding: 14rem 6vw 10rem;
    min-height: 100vh;
    position: relative;
    z-index: 16;
}
.answer-inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.answer-eyebrow {
    font-family: 'Roboto Mono', monospace;
    font-size: .75rem; letter-spacing: .35em;
    color: rgba(255,255,255,.55);
    text-transform: uppercase;
    margin-bottom: 2rem;
}
.answer-eyebrow .num { color: var(--gold); }

@media (max-width: 768px) {
    .answer-section { padding: 8rem 1.5rem 6rem; }
    .answer-eyebrow { font-size: .6rem; margin-bottom: 1.5rem; }
}

/* Eyebrow 05 · LOS RETOS */
.work-eyebrow {
    font-family: 'Roboto Mono', monospace;
    font-size: .75rem; letter-spacing: .35em;
    color: rgba(255,255,255,.55);
    text-transform: uppercase;
    margin-bottom: 3rem;
    opacity: 0;
    transition: opacity 1s ease;
}
.work-eyebrow.visible { opacity: 1; }
.work-eyebrow .num { color: var(--gold); }

/* Challenges stack: cuatro palabras enormes, alineación alterna */
.challenges-stack {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto 2em;
    display: block;        /* sale del flex de .work-inner */
    position: relative;
}

/* Challenge words — tamaño grande estilo footer */
.challenge {
    display: block;
    width: 100%;
    font-family: 'CANDIDE', serif;
    font-weight: 700;
    font-size: clamp(3rem, 10vw, 7rem);
    line-height: 1.05;
    letter-spacing: -.015em;
    color: #fff;
    opacity: 0;
    transition: opacity 0.5s ease;
    overflow: hidden;
    padding: .28em 0;       /* aire vertical entre palabras */
    white-space: nowrap;
}
.challenge.align-left  { text-align: left; }
.challenge.align-right { text-align: right; }
.challenge.animate { opacity: 1; }
.challenge span {
    display: inline-block;
    position: relative;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), color 0.3s ease;
}
.challenge span.glow {
    color: var(--gold);
    text-shadow:
        0 0 10px rgba(255,212,0,.85),
        0 0 24px rgba(255,212,0,.55),
        0 0 48px rgba(255,212,0,.3);
}

/* Typewriter cursor */
.challenge .cursor {
    display: inline-block;
    width: 2px; height: 1em;
    background: var(--gold);
    margin-left: 2px;
    vertical-align: text-bottom;
    animation: blink .6s step-end infinite;
    box-shadow: 0 0 8px rgba(255,212,0,.6);
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }

/* Work closer — tres voces narrativas: diagnóstico, revelación, afirmación */
.work-closer {
    width: 100%;
    max-width: 720px;
    margin: 4em auto 0;
    text-align: center;
    padding: 0 1rem;
}
.work-line {
    color: #fff;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .7s ease, transform .7s ease;
}
.work-line.visible { opacity: 1; transform: translateY(0); }

/* Línea 1 — Diagnóstico (Roboto, voz neutra) */
.work-closer .work-line:nth-of-type(1) {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-size: clamp(2rem, 3.8vw, 3rem);
    line-height: 1.3;
    letter-spacing: .005em;
}

/* Línea 2 — Revelación (Roboto, igual que línea 1) */
.work-closer .work-line:nth-of-type(2) {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-size: clamp(2rem, 3.8vw, 3rem);
    line-height: 1.3;
    letter-spacing: .005em;
    color: #fff;
    margin-top: 4rem !important;
}
.work-closer .work-line:nth-of-type(2) .ital {
    display: inline;
    transform: none;
}

/* Línea 3 — Afirmación (CANDIDE bold, cierre dorado) */
.work-line.last {
    font-family: 'CANDIDE', serif;
    font-weight: 700;
    font-size: clamp(3rem, 6.2vw, 5rem);
    line-height: 1.05;
    letter-spacing: -.015em;
    color: var(--gold);
    margin-top: 4rem !important;
}

@media (max-width: 768px) {
    .work-closer { max-width: 92%; margin-top: 3em; }
    .work-track { height: 230vh; }
    .work-closer .work-line:nth-of-type(1) { font-size: clamp(1.3rem, 5.2vw, 1.8rem); }
    .work-closer .work-line:nth-of-type(2) { font-size: clamp(1.55rem, 6.2vw, 2.2rem); }
    .work-line.last { font-size: clamp(2.4rem, 9.5vw, 3.4rem); }
}

/* ═══ CONTACT — LARGE GOLD CIRCLE + FORM ═══ */
.contact-trigger {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    margin-top: 5em; position: relative;
    width: clamp(280px, 36vw, 400px);
    height: clamp(280px, 36vw, 400px);
    border-radius: 50%;
    background: var(--gold);
    border: 1.5px solid var(--gold);
    cursor: pointer;
    box-shadow: 0 0 60px rgba(255,212,0,.25), 0 0 120px rgba(255,212,0,.1);
    opacity: 0; transform: translateY(20px) scale(0.9);
    transition: opacity .7s ease, transform .7s ease, box-shadow .4s ease, background .4s ease, color .4s ease;
    color: var(--dark);
}
.contact-trigger.visible { opacity: 1; transform: translate(0) scale(1); }
.contact-trigger:hover {
    box-shadow: 0 0 80px rgba(255,212,0,.4), 0 0 180px rgba(255,212,0,.2);
    transform: scale(1.03);
}
.contact-trigger[data-style="outline"] {
    background: transparent; color: var(--gold);
    box-shadow: 0 0 60px rgba(255,212,0,.18), inset 0 0 0 1.5px var(--gold);
}
.contact-trigger[data-style="outline"]:hover {
    background: var(--gold); color: var(--dark);
    box-shadow: 0 0 90px rgba(255,212,0,.45), 0 0 180px rgba(255,212,0,.18);
}
.contact-trigger .cta-text {
    font-family: 'CANDIDE', serif;
    font-size: clamp(1.9rem, 3.5vw, 2.8rem);
    font-weight: 700; letter-spacing: .02em;
}
.contact-trigger .hand {
    width: clamp(36px, 4.5vw, 50px);
    height: clamp(36px, 4.5vw, 50px);
    margin-top: .3em;
    transition: transform .3s ease;
}
.contact-trigger .hand svg { width: 100%; height: 100%; }
.contact-trigger:hover .hand { transform: scale(1.15) rotate(-8deg); }

.contact-form-wrap {
    max-height: 0; overflow: hidden;
    transition: max-height .6s cubic-bezier(0.16, 1, 0.3, 1), opacity .4s ease, margin-top .4s ease;
    opacity: 0;
    width: 100%; max-width: 540px;
    margin-top: 0;
}
.contact-form-wrap.open { max-height: 720px; opacity: 1; margin-top: 3em; }

/* Floating-label form (a11y) */
.contact-form { display: flex; flex-direction: column; gap: 1.8em; }
.field { position: relative; }
.field input, .field textarea {
    font-family: 'Roboto', sans-serif;
    font-size: clamp(1rem, 1.3vw, 1.1rem);
    width: 100%;
    padding: 1.1em 0 .5em;
    background: transparent; border: none;
    border-bottom: 1px solid rgba(255,255,255,.25);
    color: #fff; outline: none;
    transition: border-color .3s ease;
}
.field textarea { resize: vertical; min-height: 80px; }
.field input:focus, .field textarea:focus { border-bottom-color: var(--gold); }
.field label {
    position: absolute; left: 0; top: 1.2em;
    font-family: 'Roboto Mono', monospace; font-size: .85rem;
    color: rgba(255,255,255,.5); letter-spacing: .12em; text-transform: uppercase;
    pointer-events: none;
    transition: top .3s ease, font-size .3s ease, color .3s ease;
}
.field input:focus + label,
.field input:not(:placeholder-shown) + label,
.field textarea:focus + label,
.field textarea:not(:placeholder-shown) + label {
    top: -.2em; font-size: .65rem; color: var(--gold);
}
.contact-form button {
    font-family: 'Roboto Mono', monospace;
    font-size: .9rem;
    font-weight: 500;
    letter-spacing: .25em;
    text-transform: uppercase;
    padding: 1.1em 2.5em;
    background: var(--gold); color: var(--dark);
    border: none; cursor: pointer;
    align-self: center;
    margin-top: 1em;
    transition: opacity .3s ease, transform .2s ease;
}
.contact-form button:hover { opacity: .9; transform: translateY(-2px); }
.contact-form button:disabled { opacity: .5; cursor: wait; transform: none; }

/* Mensaje de éxito tras envío AJAX */
.contact-success {
    text-align: center;
    padding: 2em 1em;
    animation: fadeInUp .6s ease forwards;
}
.contact-success-title {
    font-family: 'CANDIDE', serif;
    font-weight: 700;
    font-size: clamp(2.4rem, 5vw, 4rem);
    color: var(--gold);
    line-height: 1.1;
    margin-bottom: .4em;
}
.contact-success-msg {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-size: clamp(1.1rem, 2vw, 1.4rem);
    color: rgba(255,255,255,.75);
}
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(15px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ═══ FOOTER ═══ */
.site-footer {
    background: var(--ink);
    padding: 6rem 6vw 2rem;
    border-top: 1px solid rgba(255,255,255,.08);
    position: relative; z-index: 16;
}

/* Big statement: "Hagamos algo que trascienda → mail" */
.footer-statement {
    font-family: 'CANDIDE', serif; font-weight: 700;
    font-size: clamp(2rem, 8vw, 7rem);
    line-height: 1; letter-spacing: -.02em;
    color: #fff; text-align: left;
    word-break: break-word;
    margin-bottom: 4rem;
    text-wrap: balance;
}
.footer-statement a {
    color: var(--gold); text-decoration: none;
    transition: opacity .3s;
}
.footer-statement a:hover { opacity: .8; }
.footer-statement .arrow {
    display: inline-block;
    transition: transform .3s;
}
.footer-statement a:hover .arrow {
    transform: translate(4px, -4px);
}

/* Meta columns: CONNECT (left) / LEGAL (right) */
.footer-meta {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 2rem;
    font-family: 'Roboto Mono', monospace;
    font-size: .7rem; letter-spacing: .25em;
    color: rgba(255,255,255,.5);
    text-transform: uppercase;
}
.footer-meta .col:last-child { text-align: right; }
.footer-meta .col { display: flex; flex-direction: column; gap: .8em; }
.footer-meta .col h4 {
    color: var(--gold);
    font-size: .65rem; font-weight: 500;
    margin-bottom: .4em;
    letter-spacing: .3em;
}
.footer-meta .col a {
    color: inherit; text-decoration: none;
    transition: color .3s;
}
.footer-meta .col a:hover { color: var(--gold); }

/* Bottom row: logo + copy */
.site-footer-logo-row {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 3rem; padding-top: 2rem;
    border-top: 1px solid rgba(255,255,255,.08);
    gap: 2rem; flex-wrap: wrap;
}
.site-footer-logo {
    max-width: 220px; opacity: .8;
    display: block;
    transition: opacity .3s ease;
}
.site-footer-logo:hover { opacity: 1; }
.site-footer-logo img { width: 100%; height: auto; }
.site-footer-copy {
    font-family: 'Roboto Mono', monospace;
    font-size: .65rem; font-weight: 400;
    color: rgba(255,255,255,.4);
    letter-spacing: .3em; text-transform: uppercase;
}

/* ═══════════════════════════════════════════════════════
   MOBILE
   ═══════════════════════════════════════════════════════ */
@media (max-width: 768px) {
    .hero { background-position: 45.5% center; }
    .hero-logo { width: 80vw; margin-top: 12vh; }
    .phrase { font-size: clamp(1.6rem, 7vw, 3rem); }
    .phrase-left { top: 42%; }
    .hero-corner.br { font-size: .55rem; bottom: 4.5rem; right: 1rem; }
    .scroll-ind { font-size: .55rem; }
    .transition-zone { height: 30vh; }
    .slogan-eyebrow { font-size: .65rem; margin-bottom: 1.5rem; }
    .slogan-title { font-size: clamp(3.2rem, 15vw, 5rem); }
    .slogan-sub { font-size: clamp(.95rem, 3.5vw, 1.3rem); margin-top: 1.5rem; }
   .team { justify-content: space-evenly; padding: 2rem 1rem; }
    .team-eyebrow { margin-bottom: 0 !important; font-size: .55rem; }
    .photos-row { flex-direction: column; gap: 1.5rem; flex: 1; justify-content: space-evenly; }
    .person-img { width: min(34vh, 58vw); height: min(34vh, 58vw); }
    .person-name { margin-top: .2rem; }
    .person-role-wrap { min-height: 2em; }
    .gold-line, .center-dot, .center-mark { display: none !important; }
    .expansion-zone { height: 50vh; }
    .person-name { font-size: 1.4rem; }
    .site-footer { padding: 4rem 2rem 2rem; }
    .footer-statement { font-size: clamp(1.6rem, 12vw, 3.5rem); margin-bottom: 3rem; }
    .footer-meta { grid-template-columns: 1fr; gap: 1.5rem; }
    .site-footer-logo-row { justify-content: center; text-align: center; }
    .site-footer-logo { max-width: 180px; }
   .challenges-stack { padding: 0 .25rem; }
    .challenge {
        font-size: clamp(1.6rem, 8.2vw, 3rem);
        padding: .55em 0;
        letter-spacing: -.025em;
    }
}
    /* Ocultar columnas del footer marcadas con hidden */
.site-footer .col[hidden],
.site-footer .footer-statement[hidden] {
    display: none !important;
}
