/* ideasPROPIAS Core — Módulo emocional 01: PRÓLOGO */
.prologue-trigger{
  position:fixed;
  top:18px;
  left:18px;
  z-index:880;
  display:flex;
  align-items:center;
  gap:9px;
  min-width:44px;
  height:44px;
  padding:0 12px;
  border:1px solid rgba(22,22,22,.11);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:#161616;
  box-shadow:0 8px 28px rgba(0,0,0,.08);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  cursor:pointer;
  transition:transform .35s cubic-bezier(.2,.75,.25,1), background .25s ease, box-shadow .25s ease;
}
.prologue-trigger:hover{transform:translateY(-2px);background:rgba(255,255,255,.92);box-shadow:0 12px 34px rgba(0,0,0,.12)}
.prologue-trigger__hint{max-width:0;overflow:hidden;opacity:0;font-size:.62rem;font-weight:700;letter-spacing:.22em;transition:max-width .4s ease,opacity .3s ease}
.prologue-trigger:hover .prologue-trigger__hint,.prologue-trigger:focus-visible .prologue-trigger__hint{max-width:90px;opacity:.65}
.prologue-mark{display:grid;grid-template-columns:repeat(3,5px);grid-template-rows:repeat(3,5px);gap:2px;flex:0 0 auto}
.prologue-mark__cell{display:block;width:5px;height:5px;border-radius:1px;background:#161616;opacity:.22;transition:opacity .35s ease,background .35s ease,transform .35s ease}
.prologue-mark__cell:nth-child(1),.prologue-mark__cell:nth-child(5),.prologue-mark__cell:nth-child(9){background:var(--color-brand);opacity:1}
.prologue-trigger.is-inviting{animation:prologueInvite 1.6s cubic-bezier(.2,.75,.25,1)}
.prologue-trigger.is-awake .prologue-mark__cell{opacity:1}
.prologue-trigger.is-awake .prologue-mark__cell:nth-child(1),.prologue-trigger.is-awake .prologue-mark__cell:nth-child(5),.prologue-trigger.is-awake .prologue-mark__cell:nth-child(9){transform:scale(1.35)}
@keyframes prologueInvite{0%,100%{transform:scale(1)}45%{transform:scale(1.055);box-shadow:0 13px 38px rgba(244,180,0,.18)}}

.prologue{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:clamp(18px,4vw,54px);opacity:0;visibility:hidden;transition:opacity .65s ease,visibility .65s ease}
.prologue.is-open{opacity:1;visibility:visible}
.prologue__veil{position:absolute;inset:0;background:rgba(245,245,245,.35);backdrop-filter:blur(14px) brightness(.72) saturate(.82);-webkit-backdrop-filter:blur(14px) brightness(.72) saturate(.82)}
.prologue__stage{position:relative;z-index:1;width:min(850px,92vw);height:min(680px,88vh);min-height:520px;padding:clamp(28px,5vw,64px);border:1px solid rgba(255,255,255,.52);border-radius:32px;background:linear-gradient(145deg,rgba(255,255,255,.70),rgba(255,255,255,.34));box-shadow:0 32px 100px rgba(0,0,0,.23),inset 0 1px 0 rgba(255,255,255,.75);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);display:grid;grid-template-rows:auto 1fr auto;transform:translateY(18px) scale(.975);opacity:0;transition:transform .75s cubic-bezier(.2,.75,.25,1),opacity .65s ease;overflow:hidden}
.prologue.is-open .prologue__stage{transform:translateY(-8px) scale(1);opacity:1}
.prologue__stage::before{content:"";position:absolute;width:260px;height:260px;left:-110px;top:-120px;border-radius:50%;background:radial-gradient(circle,rgba(244,180,0,.24),transparent 68%);filter:blur(12px);pointer-events:none}
.prologue__eyebrow{position:relative;font-size:.66rem;font-weight:700;letter-spacing:.34em;color:rgba(22,22,22,.48)}
.prologue__close{position:absolute;top:20px;right:22px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.48);color:#161616;font-size:1.5rem;line-height:1;cursor:pointer;transition:transform .2s ease,background .2s ease}
.prologue__close:hover{transform:rotate(8deg);background:rgba(255,255,255,.82)}
.prologue__scene{position:relative;align-self:center;display:flex;flex-direction:column;justify-content:center;gap:clamp(14px,2.4vh,24px);max-width:690px;min-height:330px;padding:18px 0;opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .65s cubic-bezier(.2,.75,.25,1)}
.prologue__scene.is-visible{opacity:1;transform:translateY(0)}
.prologue__line{font-size:clamp(1.18rem,2.1vw,1.72rem);line-height:1.38;font-weight:400;letter-spacing:-.025em;color:#202020;opacity:0;transform:translateY(12px);transition:opacity .7s ease calc(var(--line-index) * 160ms),transform .7s cubic-bezier(.2,.75,.25,1) calc(var(--line-index) * 160ms)}
.prologue__scene.is-visible .prologue__line{opacity:1;transform:translateY(0)}
.prologue__line strong{font-weight:760;color:#111}
.prologue__scene[data-scene="declaration"]{text-align:center;align-items:center}
.prologue__scene[data-scene="declaration"] .prologue__line{font-size:clamp(1.25rem,2.8vw,2rem)}
.prologue__scene[data-scene="heart"]{align-items:center;text-align:center}
.prologue__scene[data-scene="heart"] .prologue__line:first-child{font-size:clamp(2rem,5vw,4.4rem);line-height:1.02}
.prologue__scene[data-scene="heart"] .prologue__line:last-child{font-size:clamp(1.55rem,4vw,3.25rem);color:var(--color-brand);font-style:normal}
.prologue__scene[data-scene="signature"]{align-items:center;text-align:center}
.prologue__scene[data-scene="signature"] .prologue__line:first-child{font-size:clamp(2rem,4.6vw,4rem);letter-spacing:-.05em}
.prologue__scene[data-scene="signature"] .prologue__line:last-child{font-size:clamp(1rem,2vw,1.35rem);color:#666}
.prologue__footer{display:flex;align-items:center;justify-content:space-between;gap:20px}
.prologue__progress{display:flex;gap:7px}
.prologue__dot{width:6px;height:6px;border-radius:50%;background:rgba(22,22,22,.16);transition:width .35s ease,background .35s ease}
.prologue__dot.is-complete{background:rgba(22,22,22,.34)}
.prologue__dot.is-active{width:24px;border-radius:99px;background:var(--color-brand)}
.prologue__advance{border:0;background:transparent;color:#161616;font:inherit;font-size:.83rem;font-weight:700;letter-spacing:.08em;cursor:pointer;padding:12px 0 12px 18px;transition:transform .25s ease,color .25s ease}
.prologue__advance::after{content:"  →";color:var(--color-brand)}
.prologue__advance:hover{transform:translateX(4px)}
.prologue__advance.is-discover{font-size:1rem;letter-spacing:.03em}
.prologue__advance.is-discover::after{content:"  ↓"}
body.prologue-active{overflow:hidden}
body.prologue-active .desktop-experience,body.prologue-active .mobile-experience,body.prologue-active .whatsapp-float{pointer-events:none;user-select:none}
body.prologue-active .thumb-inner,body.prologue-active .mobile-card__inner{animation-play-state:paused!important}

@media(max-width:767px){
  .prologue-trigger{top:12px;left:12px;height:42px;min-width:42px;padding:0 11px;background:rgba(255,255,255,.82)}
  .prologue-trigger__hint{display:none}
  .prologue{padding:12px}
  .prologue__stage{width:100%;height:min(760px,94dvh);min-height:0;border-radius:26px;padding:30px 24px 24px;transform:translateY(14px) scale(.985)}
  .prologue.is-open .prologue__stage{transform:translateY(0) scale(1)}
  .prologue__eyebrow{font-size:.58rem}
  .prologue__close{top:14px;right:14px}
  .prologue__scene{min-height:0;padding:20px 0;gap:16px}
  .prologue__line{font-size:clamp(1.05rem,5vw,1.36rem);line-height:1.42}
  .prologue__footer{align-items:flex-end}
}

@media(prefers-reduced-motion:reduce){
  .prologue-trigger,.prologue__stage,.prologue__scene,.prologue__line,.prologue__dot,.prologue__advance{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}
}

/* FASE 2 — Narrativa y puesta en escena */
body.prologue-preparing .desktop-experience,
body.prologue-preparing .mobile-experience,
body.prologue-preparing .whatsapp-float{
  pointer-events:none;
}

.prologue__stage{
  transition:
    transform .82s cubic-bezier(.2,.75,.25,1),
    opacity .68s ease,
    background .8s ease,
    box-shadow .8s ease;
}

.prologue__stage[data-scene="declaration"]{
  background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(255,255,255,.28));
  box-shadow:0 38px 120px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.82);
}

.prologue__stage[data-scene="heart"]::before{
  width:420px;
  height:420px;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(244,180,0,.24),transparent 66%);
  animation:prologueHeartBreath 4.8s ease-in-out infinite;
}

.prologue__scene.is-sequence{
  display:grid;
  place-items:center;
  width:100%;
  max-width:none;
}

.prologue__scene.is-sequence .prologue__line{
  grid-area:1 / 1;
  width:100%;
  margin:0;
  text-align:center;
  opacity:0;
  transform:translateY(18px) scale(.985);
  pointer-events:none;
  transition:
    opacity .75s ease,
    transform .9s cubic-bezier(.2,.75,.25,1),
    filter .75s ease;
  filter:blur(5px);
}

.prologue__scene.is-sequence .prologue__line.is-current{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:blur(0);
}

.prologue__scene[data-scene="declaration"].is-sequence .prologue__line{
  font-size:clamp(1.45rem,3.2vw,2.45rem);
  line-height:1.25;
  letter-spacing:-.035em;
}

.prologue__scene[data-scene="closing"].is-sequence .prologue__line{
  font-size:clamp(1.45rem,3vw,2.35rem);
  line-height:1.3;
}

.prologue__scene[data-scene="heart"] .prologue__line:first-child{
  transition-delay:0ms;
}

.prologue__scene[data-scene="heart"] .prologue__line:last-child{
  transition-delay:650ms;
}

.prologue__scene[data-scene="signature"]::before{
  content:"";
  width:36px;
  height:36px;
  margin-bottom:10px;
  background:
    linear-gradient(var(--color-brand),var(--color-brand)) 0 0/8px 8px no-repeat,
    linear-gradient(rgba(22,22,22,.22),rgba(22,22,22,.22)) 14px 0/8px 8px no-repeat,
    linear-gradient(rgba(22,22,22,.22),rgba(22,22,22,.22)) 28px 0/8px 8px no-repeat,
    linear-gradient(rgba(22,22,22,.22),rgba(22,22,22,.22)) 0 14px/8px 8px no-repeat,
    linear-gradient(var(--color-brand),var(--color-brand)) 14px 14px/8px 8px no-repeat,
    linear-gradient(rgba(22,22,22,.22),rgba(22,22,22,.22)) 28px 14px/8px 8px no-repeat,
    linear-gradient(rgba(22,22,22,.22),rgba(22,22,22,.22)) 0 28px/8px 8px no-repeat,
    linear-gradient(rgba(22,22,22,.22),rgba(22,22,22,.22)) 14px 28px/8px 8px no-repeat,
    linear-gradient(var(--color-brand),var(--color-brand)) 28px 28px/8px 8px no-repeat;
  opacity:0;
  transform:scale(.84);
  transition:opacity .8s ease,transform .9s cubic-bezier(.2,.75,.25,1);
}

.prologue__scene[data-scene="signature"].is-visible::before{
  opacity:1;
  transform:scale(1);
}

@keyframes prologueHeartBreath{
  0%,100%{opacity:.68;transform:translate(-50%,-50%) scale(.94)}
  50%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}
}

@media(max-width:767px){
  .prologue__scene[data-scene="declaration"].is-sequence .prologue__line,
  .prologue__scene[data-scene="closing"].is-sequence .prologue__line{
    font-size:clamp(1.3rem,6.4vw,1.85rem);
  }
}

@media(prefers-reduced-motion:reduce){
  .prologue__stage[data-scene="heart"]::before{animation:none!important}
  .prologue__scene.is-sequence .prologue__line{filter:none!important}
}

/* =========================================================
   PRÓLOGO — FASE 3 · DIRECCIÓN DE ARTE
   ========================================================= */

.prologue,
.prologue__veil,
.prologue__stage,
.prologue__scene,
.prologue__line{
  will-change:opacity,transform,filter,backdrop-filter;
}

body.prologue-preparing .desktop-experience,
body.prologue-preparing .mobile-experience,
body.prologue-preparing .whatsapp-float{
  filter:saturate(.92) brightness(.97);
  transition:filter .72s cubic-bezier(.22,.61,.36,1),opacity .72s ease;
}

body.prologue-active .desktop-experience,
body.prologue-active .mobile-experience,
body.prologue-active .whatsapp-float{
  filter:saturate(.72) brightness(.82) blur(1.4px);
  transition:filter .9s cubic-bezier(.22,.61,.36,1),opacity .9s ease;
}

body.prologue-heart-pulse .desktop-experience,
body.prologue-heart-pulse .mobile-experience{
  filter:saturate(.93) brightness(.9) blur(.65px);
  transition:filter .36s ease-out;
}

body.prologue-releasing .desktop-experience,
body.prologue-releasing .mobile-experience,
body.prologue-releasing .whatsapp-float{
  filter:saturate(1) brightness(1) blur(0);
  transition:filter 1.05s cubic-bezier(.22,.61,.36,1),opacity 1.05s ease;
}

.prologue{
  transition:opacity .72s ease,visibility .72s ease;
}

.prologue__veil{
  background:rgba(245,245,245,.30);
  opacity:0;
  backdrop-filter:blur(3px) brightness(.9) saturate(.9);
  -webkit-backdrop-filter:blur(3px) brightness(.9) saturate(.9);
  transition:
    opacity .9s ease,
    backdrop-filter 1.05s cubic-bezier(.22,.61,.36,1),
    -webkit-backdrop-filter 1.05s cubic-bezier(.22,.61,.36,1),
    background .9s ease;
}

.prologue.is-open .prologue__veil{
  opacity:1;
  background:rgba(245,245,245,.36);
  backdrop-filter:blur(15px) brightness(.74) saturate(.8);
  -webkit-backdrop-filter:blur(15px) brightness(.74) saturate(.8);
}

.prologue.is-closing .prologue__veil{
  opacity:.35;
  backdrop-filter:blur(5px) brightness(.9) saturate(.94);
  -webkit-backdrop-filter:blur(5px) brightness(.9) saturate(.94);
}

.prologue__stage{
  opacity:0;
  filter:blur(8px);
  transform:translateY(14px) scale(.986);
  background:linear-gradient(145deg,rgba(255,255,255,.69),rgba(255,255,255,.32));
  transition:
    opacity .82s ease,
    transform 1s cubic-bezier(.22,.61,.36,1),
    filter .9s cubic-bezier(.22,.61,.36,1),
    background .9s ease,
    box-shadow .9s ease;
  animation:prologueGlassBreath 12s ease-in-out infinite;
}

.prologue.is-open .prologue__stage{
  opacity:1;
  filter:blur(0);
  transform:translateY(-5px) scale(1);
}

.prologue.is-closing .prologue__stage{
  opacity:0;
  filter:blur(11px);
  transform:translateY(-2px) scale(.992);
  transition-duration:.72s,.85s,.72s,.72s,.72s;
}

@keyframes prologueGlassBreath{
  0%,100%{
    background:linear-gradient(145deg,rgba(255,255,255,.69),rgba(255,255,255,.32));
    box-shadow:0 32px 100px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.74);
  }
  50%{
    background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(255,255,255,.35));
    box-shadow:0 34px 106px rgba(0,0,0,.235),inset 0 1px 0 rgba(255,255,255,.79);
  }
}

.prologue__scene{
  opacity:0;
  filter:blur(7px);
  transform:translateY(6px);
  transition:
    opacity .7s ease,
    transform .82s cubic-bezier(.22,.61,.36,1),
    filter .74s ease;
}

.prologue__scene.is-visible{
  opacity:1;
  filter:blur(0);
  transform:translateY(0);
}

.prologue__scene.is-leaving{
  opacity:0;
  filter:blur(8px);
  transform:translateY(-5px);
  transition:
    opacity .4s ease,
    transform .46s ease,
    filter .42s ease;
}

.prologue__line{
  filter:blur(6px);
  transform:translateY(6px);
  transition:
    opacity .78s ease calc(var(--line-index) * 150ms),
    transform .84s cubic-bezier(.22,.61,.36,1) calc(var(--line-index) * 150ms),
    filter .82s ease calc(var(--line-index) * 150ms);
}

.prologue__scene.is-visible .prologue__line{
  filter:blur(0);
  transform:translateY(0);
}

.prologue__scene[data-scene="title"]{
  align-items:center;
  text-align:center;
  gap:8px;
}

.prologue__scene[data-scene="title"] .prologue__line:first-child{
  margin:0;
  font-size:clamp(1.05rem,2vw,1.35rem);
  letter-spacing:.32em;
}

.prologue__scene[data-scene="title"] .prologue__line:last-child{
  margin:0;
  font-size:clamp(2rem,5vw,4rem);
  font-weight:760;
  letter-spacing:-.055em;
}

.prologue[data-scene="title"] .prologue__eyebrow,
.prologue[data-scene="title"] .prologue__footer{
  opacity:0;
  pointer-events:none;
  transition:opacity .28s ease;
}

.prologue__eyebrow,
.prologue__footer{
  transition:opacity .45s ease;
}

.prologue__scene[data-scene="heart"] .prologue__line{
  text-shadow:0 0 24px rgba(244,180,0,.08);
}

.prologue__advance.is-discover::after{
  content:"  →";
}

.prologue-trigger{
  transition:
    transform .35s ease,
    box-shadow .35s ease,
    background .35s ease,
    filter .45s ease;
}

body.prologue-releasing .prologue-trigger{
  filter:brightness(1.05) saturate(1.08);
  box-shadow:0 12px 36px rgba(244,180,0,.18);
}

.mobile-card.is-prologue-awake .mobile-card__inner{
  transform:rotateY(180deg);
  transition:transform 1.25s cubic-bezier(.22,.61,.36,1)!important;
}

@media(max-width:767px){
  .prologue__stage{
    animation-duration:14s;
  }
  .prologue__scene[data-scene="title"] .prologue__line:last-child{
    font-size:clamp(2rem,12vw,3.2rem);
  }
}

@media(prefers-reduced-motion:reduce){
  .prologue__stage{animation:none!important}
  body.prologue-active .desktop-experience,
  body.prologue-active .mobile-experience,
  body.prologue-active .whatsapp-float,
  body.prologue-releasing .desktop-experience,
  body.prologue-releasing .mobile-experience,
  body.prologue-releasing .whatsapp-float{filter:none!important}
}

/* =========================================================
   PRÓLOGO — FASE 3.4 · NAVEGACIÓN MANUAL Y CIERRE ROBUSTO
   ========================================================= */
.prologue__stage{
  touch-action:pan-y;
  cursor:grab;
}

.prologue__stage.is-dragging{
  cursor:grabbing;
  user-select:none;
}

.prologue__close{
  z-index:12;
  pointer-events:auto;
}

.prologue__side{
  position:absolute;
  z-index:7;
  top:78px;
  bottom:78px;
  width:18%;
  min-width:72px;
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
  opacity:.28;
  transition:opacity .25s ease,background .25s ease;
}

.prologue__side::after{
  content:"";
  position:absolute;
  top:50%;
  width:13px;
  height:13px;
  border-top:2px solid rgba(22,22,22,.42);
  border-right:2px solid rgba(22,22,22,.42);
  opacity:0;
  transition:opacity .25s ease,transform .25s ease;
}

.prologue__side--previous{left:0}
.prologue__side--next{right:0}
.prologue__side--previous::after{left:24px;transform:translateY(-50%) rotate(-135deg)}
.prologue__side--next::after{right:24px;transform:translateY(-50%) rotate(45deg)}
.prologue__side:hover::after,.prologue__side:focus-visible::after{opacity:1}
.prologue__side:focus-visible{outline:2px solid rgba(244,180,0,.55);outline-offset:-4px}
.prologue__side:disabled{cursor:default;pointer-events:none;opacity:0}

.prologue__scene,
.prologue__eyebrow,
.prologue__footer{
  position:relative;
  z-index:8;
}

.prologue__progress{
  position:relative;
  z-index:10;
  align-items:center;
  gap:2px;
}

/* Indicadores circulares: tamaño visual pequeño y área táctil amplia. */
.prologue__dot{
  position:relative;
  appearance:none;
  -webkit-appearance:none;
  flex:0 0 auto;
  width:26px;
  height:28px;
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
}

.prologue__dot::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  border-radius:50%;
  background:rgba(22,22,22,.22);
  transform:translate(-50%,-50%);
  transition:width .25s ease,height .25s ease,background-color .25s ease,transform .25s ease;
}

.prologue__dot.is-complete::before{background:rgba(22,22,22,.40)}
.prologue__dot.is-active::before{
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--color-brand);
  transform:translate(-50%,-50%) scale(1.05);
}
.prologue__dot:focus-visible{outline:2px solid rgba(244,180,0,.55);outline-offset:-2px;border-radius:50%}

@media(max-width:767px){
  .prologue__side{
    top:64px;
    bottom:68px;
    width:24%;
    min-width:64px;
  }
  .prologue__side::after{display:none}
  .prologue__dot{width:28px;height:32px}
  .prologue__dot::before{width:7px;height:7px}
  .prologue__dot.is-active::before{width:9px;height:9px}
}

/* =========================================================
   PRÓLOGO — AJUSTE RESPONSIVO DE TEXTO
   Evita desbordamientos en navegadores móviles y producción.
   ========================================================= */
.prologue__stage,
.prologue__scene,
.prologue__line,
.prologue__line strong,
.prologue__line span,
.prologue__line em,
.prologue__eyebrow,
.prologue__footer{
  min-width:0;
  max-width:100%;
}

.prologue__scene{
  width:100%;
  box-sizing:border-box;
}

.prologue__line{
  width:100%;
  margin-inline:0;
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}

.prologue__scene[data-scene="title"] .prologue__line:last-child,
.prologue__scene[data-scene="signature"] .prologue__line:first-child{
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
}

@media(max-width:767px){
  .prologue__stage{
    max-width:calc(100vw - 24px);
  }

  .prologue__scene{
    padding-inline:0;
  }

  /* La marca completa debe entrar incluso en móviles angostos. */
  .prologue__scene[data-scene="title"] .prologue__line:last-child{
    font-size:clamp(1.72rem,9.2vw,2.8rem);
    line-height:1.02;
    letter-spacing:-.06em;
  }

  .prologue__scene[data-scene="signature"] .prologue__line:first-child{
    font-size:clamp(1.72rem,9.2vw,2.8rem);
    line-height:1.04;
    letter-spacing:-.055em;
  }

  .prologue__scene[data-scene="declaration"].is-sequence .prologue__line,
  .prologue__scene[data-scene="closing"].is-sequence .prologue__line{
    font-size:clamp(1.15rem,5.7vw,1.72rem);
  }

  .prologue__scene[data-scene="heart"] .prologue__line:first-child{
    font-size:clamp(1.72rem,9vw,3rem);
  }

  .prologue__scene[data-scene="heart"] .prologue__line:last-child{
    font-size:clamp(1.4rem,7.3vw,2.35rem);
  }
}

@media(max-width:380px){
  .prologue__stage{
    padding-left:20px;
    padding-right:20px;
  }

  .prologue__scene[data-scene="title"] .prologue__line:last-child,
  .prologue__scene[data-scene="signature"] .prologue__line:first-child{
    font-size:clamp(1.62rem,8.8vw,2.25rem);
  }
}

/* =========================================================
   PRÓLOGO — COMPATIBILIDAD CON CHROME ANDROID REAL
   Impide el text autosizing y fuerza límites físicos del panel.
   ========================================================= */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

.prologue,
.prologue *{
  box-sizing:border-box;
}

.prologue__stage{
  contain:layout paint;
}

.prologue__scene,
.prologue__line{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
}

.prologue__line{
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-wrap:break-word!important;
  word-break:normal!important;
}

/* Los indicadores conservan un área táctil grande, pero nunca un disco visible. */
.prologue__dot,
.prologue__dot.is-active,
.prologue__dot.is-complete{
  background:transparent!important;
  border-radius:50%!important;
}

@media(max-width:767px){
  .prologue__stage{
    width:calc(100vw - 24px)!important;
    max-width:calc(100vw - 24px)!important;
    padding-left:24px;
    padding-right:24px;
  }

  .prologue__scene{
    overflow:hidden;
  }

  /* Tamaños expresados en px para que Chrome no los infle automáticamente. */
  .prologue__line{
    font-size:18px;
    line-height:1.42;
  }

  .prologue__scene[data-scene="declaration"] .prologue__line,
  .prologue__scene[data-scene="closing"] .prologue__line{
    font-size:19px;
  }

  .prologue__scene[data-scene="title"] .prologue__line:last-child,
  .prologue__scene[data-scene="signature"] .prologue__line:first-child{
    font-size:clamp(27px,8.7vw,42px);
    line-height:1.03;
    overflow-wrap:anywhere!important;
  }

  .prologue__scene[data-scene="heart"] .prologue__line:first-child{
    font-size:clamp(27px,8.5vw,44px);
  }

  .prologue__scene[data-scene="heart"] .prologue__line:last-child{
    font-size:clamp(23px,7vw,36px);
  }
}

@media(max-width:380px){
  .prologue__stage{
    padding-left:20px;
    padding-right:20px;
  }

  .prologue__line{
    font-size:17px;
  }

  .prologue__scene[data-scene="declaration"] .prologue__line,
  .prologue__scene[data-scene="closing"] .prologue__line{
    font-size:18px;
  }
}
