/* ============================================================
   Tema «aurora» — XV años (demo xv-aurora · intro curtain).
   Concepto: amanecer rosa y lila con destellos de oro rosa y una tiara lineal.
   Paleta: rosa palo #F2C4CE · lila #C8B6E2 · oro rosa #B76E79 · borgoña #6D2E46 · crema #FFF8F2.
   Tipos: Parisienne (nombre) · Playfair Display (títulos) · Lato (texto).
   Decisiones: todo va acotado bajo html[data-theme="aurora"]; el telón usa terciopelo
   rosa→lila (no rojo), placa en arco con tiara y alzapaños de oro rosa.
   ============================================================ */
:root {
  --bg: #FFF8F2;
  --bg-alt: #FCEFF1;
  --surface: #FFFFFF;
  --ink: #4A2233;
  --ink-soft: #7A5566;
  --accent: #6D2E46;
  --accent-2: #B76E79;
  --accent-ink: #FFF8F2;
  --line: rgba(109, 46, 70, .14);
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-script: 'Parisienne', 'Playfair Display', cursive;
  --font-body: 'Lato', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --radius: 22px;
  --shadow: 0 18px 40px -26px rgba(109, 46, 70, .42), 0 2px 8px -2px rgba(109, 46, 70, .07);
  --hero-overlay: linear-gradient(180deg, rgba(74, 34, 51, .06) 0%, rgba(74, 34, 51, .22) 45%, rgba(74, 34, 51, .78) 100%);
  --hero-ink: #FFF8F2;
  --intro-bg: #2E1426;
  --intro-ink: #FFF8F2;
  --seal: #B8778F;
  /* piezas propias del tema */
  --au-rose: #93505E;           /* oro rosa oscuro: texto pequeño con contraste AA */
  --au-gold: #D6A48E;
  --au-gold-hi: #FBE3D2;
  --au-gold-lo: #9A5B62;
  --au-blush: #F2C4CE;
  --au-lilac: #C8B6E2;
  /* brillo del foil acotado a #B07276: sobre el marfil/rosa de la placa y del hero nunca baja de 3:1 (antes se lavaba) */
  --au-foil: linear-gradient(100deg, #6D2E46 0%, #8A4658 30%, #9E5F68 45%, #B07276 50%, #9E5F68 55%, #8A4658 70%, #6D2E46 100%);
  --au-spark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C12.9 7.6 16.4 11.1 24 12 16.4 12.9 12.9 16.4 12 24 11.1 16.4 7.6 12.9 0 12 7.6 11.1 11.1 7.6 12 0Z' fill='%23FBE3D2'/%3E%3C/svg%3E");
  --au-spark-rose: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C12.9 7.6 16.4 11.1 24 12 16.4 12.9 12.9 16.4 12 24 11.1 16.4 7.6 12.9 0 12 7.6 11.1 11.1 7.6 12 0Z' fill='%23C98A86'/%3E%3C/svg%3E");
  --au-tiara: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 64' fill='none' stroke='%23B76E79' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 55Q60 45 108 55'/%3E%3Cpath d='M16 48Q60 39 104 48'/%3E%3Cpath d='M16 48C19 43 19 38 21 33 25 39 31 41 35 36 37 31 36 26 39 20 43 28 49 31 54 27 57 22 58 16 60 10 62 16 63 22 66 27 71 31 77 28 81 20 84 26 83 31 85 36 89 41 95 39 99 33 101 38 101 43 104 48'/%3E%3Cpath d='M44 42Q49 35 54 42M66 42Q71 35 76 42M26 45Q30 40 34 45M86 45Q90 40 94 45'/%3E%3Ccircle cx='60' cy='35' r='3.4'/%3E%3Cg fill='%23B76E79' stroke='none'%3E%3Ccircle cx='60' cy='35' r='1.2'/%3E%3Ccircle cx='39' cy='16.6' r='2.1'/%3E%3Ccircle cx='81' cy='16.6' r='2.1'/%3E%3Ccircle cx='21' cy='29.8' r='1.7'/%3E%3Ccircle cx='99' cy='29.8' r='1.7'/%3E%3Cpath d='M60 0C60.5 3.3 61.7 4.5 65 5 61.7 5.5 60.5 6.7 60 10 59.5 6.7 58.3 5.5 55 5 58.3 4.5 59.5 3.3 60 0Z'/%3E%3C/g%3E%3C/svg%3E");
  --au-tiara-lt: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 64' fill='none' stroke='%23FBE3D2' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 55Q60 45 108 55'/%3E%3Cpath d='M16 48Q60 39 104 48'/%3E%3Cpath d='M16 48C19 43 19 38 21 33 25 39 31 41 35 36 37 31 36 26 39 20 43 28 49 31 54 27 57 22 58 16 60 10 62 16 63 22 66 27 71 31 77 28 81 20 84 26 83 31 85 36 89 41 95 39 99 33 101 38 101 43 104 48'/%3E%3Cpath d='M44 42Q49 35 54 42M66 42Q71 35 76 42M26 45Q30 40 34 45M86 45Q90 40 94 45'/%3E%3Ccircle cx='60' cy='35' r='3.4'/%3E%3Cg fill='%23FBE3D2' stroke='none'%3E%3Ccircle cx='60' cy='35' r='1.2'/%3E%3Ccircle cx='39' cy='16.6' r='2.1'/%3E%3Ccircle cx='81' cy='16.6' r='2.1'/%3E%3Ccircle cx='21' cy='29.8' r='1.7'/%3E%3Ccircle cx='99' cy='29.8' r='1.7'/%3E%3Cpath d='M60 0C60.5 3.3 61.7 4.5 65 5 61.7 5.5 60.5 6.7 60 10 59.5 6.7 58.3 5.5 55 5 58.3 4.5 59.5 3.3 60 0Z'/%3E%3C/g%3E%3C/svg%3E");
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='%23B76E79' fill-opacity='.2'%3E%3Cpath d='M44 28C44.5 32.4 46.6 34.5 51 35 46.6 35.5 44.5 37.6 44 42 43.5 37.6 41.4 35.5 37 35 41.4 34.5 43.5 32.4 44 28Z'/%3E%3Cpath d='M134 106C134.4 109.3 135.7 110.6 139 111 135.7 111.4 134.4 112.7 134 116 133.6 112.7 132.3 111.4 129 111 132.3 110.6 133.6 109.3 134 106Z'/%3E%3Ccircle cx='112' cy='40' r='1.5'/%3E%3Ccircle cx='24' cy='128' r='1.3'/%3E%3Ccircle cx='78' cy='156' r='1.1'/%3E%3Ccircle cx='160' cy='166' r='1.4'/%3E%3Ccircle cx='92' cy='92' r='1'/%3E%3C/g%3E%3C/svg%3E");
  --ornament: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 60'%3E%3Cdefs%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='6' y1='0' x2='98' y2='0'%3E%3Cstop offset='0' stop-color='%23B76E79' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23B76E79'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='274' y1='0' x2='182' y2='0'%3E%3Cstop offset='0' stop-color='%23B76E79' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23B76E79'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M6 38H98' stroke='url(%23a)'/%3E%3Cpath d='M182 38H274' stroke='url(%23b)'/%3E%3Cg fill='%23B76E79'%3E%3Ccircle cx='102' cy='38' r='1.8'/%3E%3Ccircle cx='178' cy='38' r='1.8'/%3E%3C/g%3E%3Cg transform='translate(104 6) scale(.6)' fill='none' stroke='%23B76E79' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 55Q60 45 108 55'/%3E%3Cpath d='M16 48Q60 39 104 48'/%3E%3Cpath d='M16 48C19 43 19 38 21 33 25 39 31 41 35 36 37 31 36 26 39 20 43 28 49 31 54 27 57 22 58 16 60 10 62 16 63 22 66 27 71 31 77 28 81 20 84 26 83 31 85 36 89 41 95 39 99 33 101 38 101 43 104 48'/%3E%3Cpath d='M44 42Q49 35 54 42M66 42Q71 35 76 42'/%3E%3Ccircle cx='60' cy='35' r='3.4'/%3E%3Cg fill='%23B76E79' stroke='none'%3E%3Ccircle cx='39' cy='16.6' r='2.4'/%3E%3Ccircle cx='81' cy='16.6' r='2.4'/%3E%3Cpath d='M60 0C60.5 3.3 61.7 4.5 65 5 61.7 5.5 60.5 6.7 60 10 59.5 6.7 58.3 5.5 55 5 58.3 4.5 59.5 3.3 60 0Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- lienzo general ---------- */
html[data-theme="aurora"] {
  background-color: #F7ECF1;
  background-image:
    radial-gradient(60vw 60vh at 0% 0%, rgba(242, 196, 206, .75), transparent 70%),
    radial-gradient(60vw 70vh at 100% 40%, rgba(200, 182, 226, .6), transparent 70%),
    radial-gradient(50vw 50vh at 20% 100%, rgba(246, 217, 204, .7), transparent 70%),
    var(--pattern);
}
html[data-theme="aurora"] body.inv { color: var(--ink); }
html[data-theme="aurora"] ::selection { background: rgba(242, 196, 206, .8); color: #4A2233; }

/* destellos que titilan y suben despacio por los bordes (capa de efectos del motor).
   Cada franja es un SVG de 64×900 con destellos animados (SMIL); la capa sube 900px en bucle. */
html[data-theme="aurora"] .inv-fx::before,
html[data-theme="aurora"] .inv-fx::after {
  content: ''; position: absolute; top: 0; width: 64px; height: calc(100% + 900px);
  background-repeat: repeat-y; background-size: 64px 900px;
  opacity: 0;
  animation: auDrift 46s linear infinite, auFxIn 2.4s ease 1s forwards;
}
html[data-theme="aurora"] .inv-fx::before {
  left: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='900' viewBox='0 0 64 900'%3E%3Cdefs%3E%3Cpath id='s' d='M12 0C12.9 7.6 16.4 11.1 24 12 16.4 12.9 12.9 16.4 12 24 11.1 16.4 7.6 12.9 0 12 7.6 11.1 11.1 7.6 12 0Z' fill='%23C98A86'/%3E%3C/defs%3E%3Cuse href='%23s' transform='translate(8 70) scale(.46)'%3E%3Canimate attributeName='opacity' values='.15;.9;.15' dur='3.4s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(30 250) scale(.3)'%3E%3Canimate attributeName='opacity' values='.7;.1;.7' dur='2.8s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(6 440) scale(.54)'%3E%3Canimate attributeName='opacity' values='.2;1;.2' dur='4.1s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(26 630) scale(.26)'%3E%3Canimate attributeName='opacity' values='.8;.15;.8' dur='3.1s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(10 790) scale(.36)'%3E%3Canimate attributeName='opacity' values='.1;.85;.1' dur='3.7s' repeatCount='indefinite'/%3E%3C/use%3E%3C/svg%3E");
}
html[data-theme="aurora"] .inv-fx::after {
  right: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='900' viewBox='0 0 64 900'%3E%3Cdefs%3E%3Cpath id='s' d='M12 0C12.9 7.6 16.4 11.1 24 12 16.4 12.9 12.9 16.4 12 24 11.1 16.4 7.6 12.9 0 12 7.6 11.1 11.1 7.6 12 0Z' fill='%23C98A86'/%3E%3C/defs%3E%3Cuse href='%23s' transform='translate(42 150) scale(.38)'%3E%3Canimate attributeName='opacity' values='.8;.1;.8' dur='3.3s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(28 340) scale(.5)'%3E%3Canimate attributeName='opacity' values='.15;.95;.15' dur='4.4s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(46 520) scale(.28)'%3E%3Canimate attributeName='opacity' values='.2;.9;.2' dur='2.9s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(34 700) scale(.44)'%3E%3Canimate attributeName='opacity' values='.9;.2;.9' dur='3.8s' repeatCount='indefinite'/%3E%3C/use%3E%3Cuse href='%23s' transform='translate(48 860) scale(.24)'%3E%3Canimate attributeName='opacity' values='.1;.8;.1' dur='3s' repeatCount='indefinite'/%3E%3C/use%3E%3C/svg%3E");
  animation-duration: 58s, 2.4s;
  animation-delay: -12s, 1.4s;
}
html.is-intro[data-theme="aurora"] .inv-fx { visibility: hidden; }
@keyframes auDrift { from { transform: translateY(0); } to { transform: translateY(-900px); } }
@keyframes auFxIn { to { opacity: .8; } }
@keyframes auTwinkle { 0%, 100% { opacity: .2; transform: scale(.85); } 50% { opacity: 1; transform: scale(1); } }
@keyframes auFoil { 0%, 100% { background-position: 100% 0; } 50% { background-position: 0 0; } }

/* ============================================================
   HERO — arco enmarcado con tiara, nombre en oro rosa
   ============================================================ */
html[data-theme="aurora"] .inv-hero {
  background:
    radial-gradient(80% 42% at 50% 24%, rgba(242, 196, 206, .6), transparent 72%),
    radial-gradient(60% 40% at 0% 72%, rgba(200, 182, 226, .5), transparent 70%),
    radial-gradient(60% 40% at 100% 58%, rgba(242, 196, 206, .55), transparent 70%),
    linear-gradient(180deg, #FFF8F2 0%, #FCEFF1 55%, #F6F0FA 100%);
}
html[data-theme="aurora"] .inv-hero::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: var(--pattern);
  -webkit-mask: linear-gradient(180deg, #000 0%, transparent 70%);
  mask: linear-gradient(180deg, #000 0%, transparent 70%);
  opacity: .9;
}
/* destellos alrededor del arco */
html[data-theme="aurora"] .inv-hero::after {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 620px; z-index: 1; pointer-events: none;
  background-image: var(--au-spark-rose), var(--au-spark-rose), var(--au-spark-rose), var(--au-spark-rose), var(--au-spark-rose);
  background-repeat: no-repeat;
  background-position: calc(50% - 150px) 132px, calc(50% + 158px) 206px, calc(50% - 138px) 370px, calc(50% + 142px) 430px, calc(50% + 96px) 58px;
  background-size: 18px, 12px, 11px, 16px, 9px;
  animation: auTwinkle 3.6s ease-in-out infinite;
}
html[data-theme="aurora"] .inv-hero--framed { padding-top: clamp(78px, 11vh, 110px); justify-content: flex-start; }
html[data-theme="aurora"] .inv-hero--framed .inv-hero__media {
  width: min(64%, 268px);
  padding: 7px;
  border: 1.5px solid var(--au-gold);
  background:
    var(--au-tiara) center 46% / 46% auto no-repeat content-box,
    linear-gradient(165deg, #FBE3E8, #EFE3F6) content-box;
  box-shadow: 0 34px 60px -34px rgba(109, 46, 70, .55);
}
html[data-theme="aurora"] .inv-hero--framed .inv-hero__media::before {
  inset: -13px;
  border-color: rgba(183, 110, 121, .42);
}
html[data-theme="aurora"] .inv-hero--framed .inv-hero__media::after {
  content: ''; position: absolute; left: 50%; top: -52px; width: 104px; height: 56px;
  transform: translateX(-50%);
  background: var(--au-tiara) center / contain no-repeat;
  filter: drop-shadow(0 2px 6px rgba(255, 248, 242, .9));
}
html[data-theme="aurora"] .inv-hero--framed .inv-hero__img { object-position: 50% 20%; }
html[data-theme="aurora"] .inv-hero__img.is-broken { opacity: 0; }
html[data-theme="aurora"] .inv-hero--framed .inv-hero__content { padding-top: 26px; }
html[data-theme="aurora"] .inv-hero__eyebrow { color: var(--au-rose); opacity: 1; letter-spacing: .34em; font-weight: 700; }
html[data-theme="aurora"] .inv-hero__title {
  font-size: clamp(4rem, 21vw, 5.6rem);
  line-height: 1.1;
  margin: 0 -.3em .06em;
  padding: 0 .3em .05em;
  color: #6D2E46;
  background: var(--au-foil);
  background-size: 260% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: auFoil 7s ease-in-out infinite;
}
html.is-revealed[data-theme="aurora"] .inv-hero__title.hero-anim {
  animation: invUp 1.15s var(--ease) both, auFoil 7s ease-in-out 1.4s infinite;
  animation-delay: calc(.12s + var(--i, 0) * .11s), 1.4s;
}
html[data-theme="aurora"] .inv-hero__subtitle { color: var(--ink-soft); font-size: 1.14rem; max-width: 20rem; opacity: 1; }
html[data-theme="aurora"] .inv-hero__date { color: var(--au-rose); margin-top: 1.4rem; }
html[data-theme="aurora"] .inv-hero__date-side { border-color: rgba(183, 110, 121, .55); }
html[data-theme="aurora"] .inv-hero__date-day { color: #6D2E46; font-size: 3.5rem; }
html[data-theme="aurora"] .inv-hero__time { color: var(--ink-soft); opacity: 1; }
html[data-theme="aurora"] .inv-hero__place { color: var(--ink); opacity: .85; }
html[data-theme="aurora"] .inv-hero__place .inv-icon { color: var(--accent-2); }
html[data-theme="aurora"] .inv-hero__cue { color: var(--au-rose); }

/* pase del invitado */
html[data-theme="aurora"] .inv-guest {
  background: linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(255, 248, 242, .92));
  border: 1px solid rgba(183, 110, 121, .38);
  box-shadow: 0 16px 34px -24px rgba(109, 46, 70, .5), inset 0 0 0 4px rgba(255, 255, 255, .7);
  border-radius: 20px;
}
html[data-theme="aurora"] .inv-guest__label { color: var(--au-rose); opacity: 1; font-weight: 700; }
html[data-theme="aurora"] .inv-guest__name { font-family: var(--font-script); font-weight: 400; font-size: 1.95rem; line-height: 1.15; color: #6D2E46; }
html[data-theme="aurora"] .inv-guest__passes { color: var(--ink-soft); opacity: 1; }

/* ============================================================
   SECCIONES
   ============================================================ */
html[data-theme="aurora"] .inv-section { background-color: var(--bg); }
html[data-theme="aurora"] .inv-section.is-alt {
  background:
    radial-gradient(90% 55% at 100% 0%, rgba(200, 182, 226, .34), transparent 70%),
    radial-gradient(80% 55% at 0% 100%, rgba(242, 196, 206, .42), transparent 70%),
    #FCF1F2;
}
html[data-theme="aurora"] .inv-head > .inv-eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  color: var(--au-rose); font-weight: 700; letter-spacing: .3em;
}
html[data-theme="aurora"] .inv-head > .inv-eyebrow::before,
html[data-theme="aurora"] .inv-head > .inv-eyebrow::after {
  content: ''; flex: none; width: 24px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-2));
}
html[data-theme="aurora"] .inv-head > .inv-eyebrow::after { background: linear-gradient(270deg, transparent, var(--accent-2)); }
html[data-theme="aurora"] .inv-main .inv-eyebrow { color: var(--au-rose); }
html[data-theme="aurora"] .inv-main .inv-title { font-weight: 400; color: #4A2233; letter-spacing: -.01em; }
html[data-theme="aurora"] .inv-text { color: var(--ink-soft); }
html[data-theme="aurora"] .inv-card {
  border-color: rgba(183, 110, 121, .22);
  box-shadow: var(--shadow);
}

/* botones */
html[data-theme="aurora"] .inv-btn { letter-spacing: .04em; box-shadow: 0 12px 24px -14px rgba(109, 46, 70, .85), inset 0 1px 0 rgba(255, 255, 255, .14); }
html[data-theme="aurora"] .inv-btn--ghost { box-shadow: none; border-color: rgba(109, 46, 70, .45); }
html[data-theme="aurora"] .inv-btn--wa:not(.inv-btn--ghost) { box-shadow: 0 12px 24px -14px rgba(18, 140, 74, .8); }

/* quote */
html[data-theme="aurora"] .inv-section--quote { padding-top: 84px; padding-bottom: 84px; }
html[data-theme="aurora"] .inv-quote__mark { color: var(--au-blush); opacity: 1; font-size: 7rem; top: -.42em; }
html[data-theme="aurora"] .inv-quote__text p { color: #5A2A3F; font-size: clamp(1.4rem, 6vw, 1.8rem); }
html[data-theme="aurora"] .inv-quote__author { color: var(--au-rose); }
html[data-theme="aurora"] .inv-quote__author::before {
  width: 64px; height: 18px;
  background: var(--au-spark-rose) center / 14px no-repeat, linear-gradient(90deg, transparent, var(--accent-2), transparent) center / 100% 1px no-repeat;
}

/* countdown: arcos como el marco del hero */
html[data-theme="aurora"] .inv-countdown { gap: 9px; }
html[data-theme="aurora"] .inv-countdown__unit {
  padding: 24px 4px 14px;
  border-radius: 999px 999px 16px 16px;
  background: linear-gradient(180deg, #FFFFFF 30%, #FFF4F6);
  border: 1px solid rgba(183, 110, 121, .32);
  box-shadow: 0 18px 30px -24px rgba(109, 46, 70, .55), inset 0 0 0 3px rgba(255, 255, 255, .9);
}
html[data-theme="aurora"] .inv-countdown__unit::before {
  left: 50%; right: auto; top: 9px; width: 9px; height: 9px; transform: translateX(-50%);
  background: var(--au-spark-rose) center / contain no-repeat; opacity: 1;
}
html[data-theme="aurora"] .inv-countdown__num { color: #6D2E46; font-weight: 400; }
html[data-theme="aurora"] .inv-countdown__lbl { color: var(--au-rose); font-weight: 700; }
html[data-theme="aurora"] .inv-countdown__date { color: var(--au-rose); }

/* story */
html[data-theme="aurora"] .inv-story__figure { border-radius: 999px 999px var(--radius) var(--radius); background: var(--au-tiara) center 46% / 40% auto no-repeat, linear-gradient(165deg, #FBE3E8, #EFE3F6); }
html[data-theme="aurora"] .inv-story__figure img { object-position: 50% 30%; background: linear-gradient(165deg, #FBE3E8, #EFE3F6); }
html[data-theme="aurora"] .inv-story__figure img.is-broken { opacity: 0; }
html[data-theme="aurora"] .inv-story__figure::after { border-color: rgba(183, 110, 121, .5); }
html[data-theme="aurora"] .inv-story__figure::before {
  content: ''; position: absolute; left: 50%; top: -40px; z-index: 1; width: 78px; height: 42px; transform: translateX(-50%);
  background: var(--au-tiara) center / contain no-repeat;
}
html[data-theme="aurora"] .inv-section--story .inv-head { margin-bottom: 3.4rem; }
html[data-theme="aurora"] .inv-story__glow { background: radial-gradient(closest-side, rgba(200, 182, 226, .55), transparent); }
html[data-theme="aurora"] .inv-story__body .inv-text:first-child::first-letter { font-family: var(--font-script); font-size: 3.6em; line-height: .8; padding: .08em .12em 0 0; color: var(--accent-2); }
html[data-theme="aurora"] .inv-story__body .inv-text { text-align: left; }
html[data-theme="aurora"] .inv-story__sig { color: #6D2E46; font-size: 2.8rem; }

/* people: papás y padrinos; la corte en dos columnas */
html[data-theme="aurora"] .inv-people__names li { font-size: 1.28rem; line-height: 1.42; color: #4A2233; }
html[data-theme="aurora"] .inv-people__spark { fill: var(--au-gold); width: 12px; height: 12px; }
html[data-theme="aurora"] .inv-people:has(> :nth-child(3)) { grid-template-columns: 1fr 1fr; column-gap: 14px; }
html[data-theme="aurora"] .inv-people:has(> :nth-child(3)) > :nth-child(-n + 2) { grid-column: 1 / -1; }
html[data-theme="aurora"] .inv-people:has(> :nth-child(3)) > :nth-child(n + 3) .inv-people__names li { font-size: 1.08rem; line-height: 1.38; }
html[data-theme="aurora"] .inv-people:has(> :nth-child(3)) > :nth-child(n + 3) .inv-people__spark { display: none; }
html[data-theme="aurora"] .inv-people:has(> :nth-child(3)) > :nth-child(n + 3) {
  padding: 16px 8px 14px; border-radius: 18px;
  background: rgba(255, 255, 255, .6); border: 1px solid rgba(183, 110, 121, .18);
}
html[data-theme="aurora"] .inv-people:not(:has(> :nth-child(3))):has(> :nth-child(2)) { grid-template-columns: 1fr 1fr; column-gap: 12px; }
html[data-theme="aurora"] .inv-people:not(:has(> :nth-child(3))):has(> :nth-child(2)) > * {
  padding: 22px 8px 18px; border-radius: 999px 999px 20px 20px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .95), rgba(255, 244, 246, .9));
  border: 1px solid rgba(183, 110, 121, .25); box-shadow: var(--shadow);
}
html[data-theme="aurora"] .inv-people:not(:has(> :nth-child(3))):has(> :nth-child(2)) .inv-people__spark { display: none; }
html[data-theme="aurora"] .inv-people:not(:has(> :nth-child(3))):has(> :nth-child(2)) .inv-people__names li { font-size: 1.06rem; line-height: 1.6; }

/* events */
html[data-theme="aurora"] .inv-event { border-radius: 26px; padding-bottom: 26px; }
html[data-theme="aurora"] .inv-event:not(.has-img) { padding-top: 34px; background: linear-gradient(180deg, #FFFFFF, #FFF7F8); }
html[data-theme="aurora"] .inv-event__icon {
  width: 66px; height: 66px; color: #6D2E46;
  background: radial-gradient(circle at 35% 30%, #FFFFFF, #FBE6EA);
  border: 1px solid rgba(183, 110, 121, .5);
  box-shadow: 0 0 0 6px rgba(242, 196, 206, .28);
}
html[data-theme="aurora"] .inv-event__name { font-size: 1.62rem; color: #4A2233; }
html[data-theme="aurora"] .inv-event__meta .inv-icon { color: var(--accent-2); }

/* timeline */
html[data-theme="aurora"] .inv-timeline::before { background: linear-gradient(var(--accent-2), var(--au-lilac) 70%, rgba(200, 182, 226, .2)); width: 1px; left: 27.5px; }
html[data-theme="aurora"] .inv-timeline__dot { color: #6D2E46; border-color: rgba(183, 110, 121, .55); background: radial-gradient(circle at 35% 30%, #FFFFFF, #FDEEF1); }
html[data-theme="aurora"] .inv-timeline__time { color: var(--au-rose); }
html[data-theme="aurora"] .inv-timeline__title { color: #4A2233; font-size: 1.32rem; }

/* dresscode */
html[data-theme="aurora"] .inv-dress__icon { color: #6D2E46; background: radial-gradient(circle at 35% 30%, #FFFFFF, #FBE6EA); border-color: rgba(183, 110, 121, .5); }
html[data-theme="aurora"] .inv-dress__code { font-style: italic; color: #6D2E46; }
html[data-theme="aurora"] .inv-dress__label { color: var(--au-rose); }
html[data-theme="aurora"] .inv-chip { border-color: rgba(183, 110, 121, .25); }
html[data-theme="aurora"] .inv-chip--avoid .inv-icon { color: var(--accent-2); }

/* gallery: polaroids con cinta washi rosa/lila */
html[data-theme="aurora"] .inv-gallery--polaroids { gap: 26px 16px; padding-top: 14px; }
html[data-theme="aurora"] .inv-gallery--polaroids .inv-gallery__item { background: linear-gradient(165deg, #FBE3E8, #EFE3F6) content-box, #FFFDFB; box-shadow: 0 16px 30px -14px rgba(109, 46, 70, .35), 0 2px 5px rgba(109, 46, 70, .08); }
html[data-theme="aurora"] .inv-gallery--polaroids .inv-gallery__item::before {
  content: ''; position: absolute; z-index: 2; left: 50%; top: -9px; width: 58px; height: 20px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(90deg, rgba(255, 255, 255, .35), rgba(255, 255, 255, 0) 40%), rgba(242, 196, 206, .82);
  clip-path: polygon(2% 0, 98% 6%, 100% 50%, 97% 100%, 3% 94%, 0 50%);
}
html[data-theme="aurora"] .inv-gallery--polaroids .inv-gallery__item:nth-child(2n)::before {
  background: linear-gradient(90deg, rgba(255, 255, 255, .35), rgba(255, 255, 255, 0) 40%), rgba(200, 182, 226, .85);
  transform: translateX(-50%) rotate(4deg);
}
html[data-theme="aurora"] .inv-gallery--polaroids .inv-gallery__item img { background: linear-gradient(165deg, #FBE3E8, #EFE3F6); }
html[data-theme="aurora"] .inv-gallery__cap { color: #6D2E46; font-size: 1.45rem; bottom: 4px; }
html[data-theme="aurora"] .inv-gallery__item { background: linear-gradient(165deg, #FBE3E8, #EFE3F6); }
html[data-theme="aurora"] .inv-gallery__dots span.is-on { background: var(--accent-2); }

/* gifts */
html[data-theme="aurora"] .inv-gift__icon { color: #6D2E46; background: linear-gradient(160deg, #FDEEF1, #F1E8F8); border-radius: 50%; }
html[data-theme="aurora"] .inv-gift__title { color: #4A2233; }
html[data-theme="aurora"] .inv-gift__copy { background: #FFF6F3; border-color: rgba(183, 110, 121, .4); color: #4A2233; }
html[data-theme="aurora"] .inv-gift--envelope {
  background:
    var(--au-tiara) right 14px top 14px / 46px auto no-repeat,
    linear-gradient(160deg, #FFFFFF, #FDF0F2 70%, #F4EEFA);
  border-color: rgba(183, 110, 121, .4);
}
html[data-theme="aurora"] .inv-gift--envelope .inv-gift__title { font-style: italic; }

/* playlist */
html[data-theme="aurora"] .inv-playlist__poster { background: linear-gradient(135deg, #4A2233, #6D2E46 58%, #93505E); color: #FFF8F2; }
html[data-theme="aurora"] .inv-playlist__label { background: linear-gradient(135deg, #FBE3D2, #D6A48E 55%, #B76E79); }
html[data-theme="aurora"] .inv-playlist__play { background: linear-gradient(180deg, #FFEDE4, #E0AE9E); color: #4A2233; }
html[data-theme="aurora"] .inv-playlist__txt span { opacity: .85; }

/* wishes */
html[data-theme="aurora"] .inv-wish { border-color: rgba(183, 110, 121, .2); }
html[data-theme="aurora"] .inv-wish::before { color: var(--au-blush); opacity: 1; }
html[data-theme="aurora"] .inv-wish:nth-child(3n + 2) { background: linear-gradient(160deg, #FFFFFF, #F6F0FB); }
html[data-theme="aurora"] .inv-wish__msg p { color: #4A2233; }
html[data-theme="aurora"] .inv-wishes__spark { fill: var(--accent-2); }

/* faq */
html[data-theme="aurora"] .inv-faq__item { border-color: rgba(183, 110, 121, .24); }
html[data-theme="aurora"] .inv-faq__q { color: #4A2233; }
html[data-theme="aurora"] .inv-faq__icon { background: #FBE6EA; color: #6D2E46; }

/* note */
html[data-theme="aurora"] .inv-note { background: linear-gradient(160deg, #FFFFFF, #FCEFF1); border-color: rgba(183, 110, 121, .35); box-shadow: inset 3px 0 0 var(--accent-2); }

/* divider con tiara */
html[data-theme="aurora"] .inv-section--divider { padding-block: 18px; }
html[data-theme="aurora"] .inv-divider.has-ornament { height: 60px; max-width: 290px; }

/* formularios */
html[data-theme="aurora"] .inv-input { background: #FFFCFA; border-color: rgba(109, 46, 70, .16); }
html[data-theme="aurora"] .inv-input:focus { border-color: #93505E; box-shadow: 0 0 0 4px rgba(242, 196, 206, .55); }

/* RSVP */
html[data-theme="aurora"] .inv-section.inv-rsvp {
  background:
    var(--au-tiara) center 58px / 86px auto no-repeat,
    radial-gradient(90% 50% at 50% 0%, rgba(242, 196, 206, .5), transparent 70%),
    radial-gradient(80% 50% at 50% 100%, rgba(200, 182, 226, .35), transparent 70%),
    var(--bg);
  padding-top: 132px;
}
html[data-theme="aurora"] .inv-section.inv-rsvp.is-alt { background-color: #FCF1F2; }
html[data-theme="aurora"] .inv-rsvp__seats i { border-color: rgba(183, 110, 121, .6); }
html[data-theme="aurora"] .inv-rsvp__seats i.is-on { background: var(--accent-2); }
html[data-theme="aurora"] .inv-rsvp__face { background: #FFFCFA; }
html[data-theme="aurora"] .inv-rsvp__radio:checked + .inv-rsvp__face { background: linear-gradient(180deg, #FFFFFF, #FDEEF1); }

/* pie */
html[data-theme="aurora"] .inv-footer {
  background:
    radial-gradient(70% 60% at 50% 0%, rgba(242, 196, 206, .55), transparent 70%),
    linear-gradient(180deg, #FCF1F2, #F3ECF9);
}
html[data-theme="aurora"] .inv-footer__orn { width: 92px; height: 50px; background: var(--au-tiara) center / contain no-repeat; }
html[data-theme="aurora"] .inv-footer__orn path { display: none; }
html[data-theme="aurora"] .inv-footer__text { color: #6D2E46; font-size: 2.6rem; }
html[data-theme="aurora"] .inv-footer__date { color: var(--au-rose); }

/* barra de acciones */
html[data-theme="aurora"] .inv-actionbar { background: rgba(255, 250, 247, .84); border-color: rgba(183, 110, 121, .22); }
html[data-theme="aurora"] .inv-actionbar__btn:not(.is-primary) { color: #4A2233; }

/* ============================================================
   INTRO «curtain» — telón de terciopelo rosa→lila, oro rosa y tiara
   ============================================================ */
html[data-theme="aurora"] .inv-intro--curtain { background: #2E1426; }
html[data-theme="aurora"] .cur {
  --velvet: #A45C7B;
  --gold: #D9A894;
  --gold-hi: #FFE9DC;
  --gold-lo: #94555E;
}
/* escenario: amanecer que aparece al abrir */
html[data-theme="aurora"] .cur__stage {
  background:
    radial-gradient(55% 32% at 50% 44%, rgba(255, 233, 220, .75), transparent 72%),
    radial-gradient(80% 50% at 18% 30%, rgba(200, 182, 226, .55), transparent 70%),
    radial-gradient(80% 50% at 84% 36%, rgba(242, 196, 206, .6), transparent 70%),
    linear-gradient(180deg, #3B1A36 0%, #7A3A5C 48%, #D79AA8 82%, #F6D9CC 100%);
}
html[data-theme="aurora"] .cur__light {
  background: conic-gradient(from 180deg at 50% 0%, transparent 160deg, rgba(255, 226, 214, .22) 171deg, rgba(255, 240, 232, .4) 180deg, rgba(255, 226, 214, .22) 189deg, transparent 200deg);
}
html[data-theme="aurora"] .cur__motes { filter: drop-shadow(0 0 4px rgba(255, 233, 220, .95)); }
/* al abrirse, una tiara de luz espera en el escenario */
html[data-theme="aurora"] .cur__stage::after {
  content: ''; position: absolute; left: 50%; top: 43%; width: 190px; height: 102px;
  transform: translate(-50%, -50%) scale(.82);
  background: var(--au-tiara-lt) center / contain no-repeat;
  filter: drop-shadow(0 0 10px rgba(255, 233, 220, .95)) drop-shadow(0 0 30px rgba(242, 196, 206, .8));
  opacity: 0; transition: opacity 1s var(--ease) .45s, transform 1.8s var(--ease) .35s;
}
html[data-theme="aurora"] .cur.s2 .cur__stage::after { opacity: 1; transform: translate(-50%, -50%) scale(1); }
html[data-theme="aurora"] .cur__motes i {
  width: calc(11px * var(--s)); height: calc(11px * var(--s)); border-radius: 0; box-shadow: none;
  background: #FFE9DC;
  clip-path: polygon(50% 0, 58% 42%, 100% 50%, 58% 58%, 50% 100%, 42% 58%, 0 50%, 42% 42%);
}

/* paños: terciopelo rosa empolvado con pliegues profundos */
html[data-theme="aurora"] .cur__panel {
  background:
    radial-gradient(120% 55% at 50% 112%, rgba(46, 14, 38, .55), transparent 60%),
    linear-gradient(180deg, rgba(46, 14, 38, .5), transparent 24%, transparent 72%, rgba(46, 14, 38, .38)),
    repeating-linear-gradient(90deg,
      #4E1D3A 0,
      #7E3A5E 2.4%,
      #BD7895 4.8%,
      #E9B3C3 6.3%,
      #C98AA4 7.8%,
      #8C4768 10.2%,
      #4E1D3A 12.5%);
}
/* velo lila que sube desde el piso (la «aurora») */
html[data-theme="aurora"] .cur__panel::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(200, 182, 226, 0) 18%, rgba(176, 150, 222, .5) 70%, rgba(160, 136, 214, .7) 100%);
  mix-blend-mode: color;
}
html[data-theme="aurora"] .cur__panel::after { background: radial-gradient(40% 30% at 60% 40%, rgba(255, 236, 244, .16), transparent 70%); }
html[data-theme="aurora"] .cur__panel.is-l { box-shadow: inset -16px 0 26px -10px rgba(46, 14, 38, .6), inset 0 0 60px rgba(46, 14, 38, .35); }
html[data-theme="aurora"] .cur__panel.is-r { box-shadow: inset 16px 0 26px -10px rgba(46, 14, 38, .6), inset 0 0 60px rgba(46, 14, 38, .35); }
html[data-theme="aurora"] .cur__tie {
  height: 14px; border-radius: 7px;
  background: repeating-linear-gradient(60deg, var(--gold-lo) 0 3px, var(--gold-hi) 3px 6px, var(--gold) 6px 9px), var(--gold);
}
/* cenefa en borgoña rosado */
html[data-theme="aurora"] .cur__valance::before {
  background:
    linear-gradient(180deg, rgba(46, 14, 38, .55), transparent 45%, rgba(46, 14, 38, .25)),
    repeating-linear-gradient(90deg, #5A2242 0, #874465 3%, #B8718F 6%, #5A2242 12.5%);
}
/* foco teatral sobre la placa */
html[data-theme="aurora"] .cur::after {
  content: ''; position: absolute; inset: 0; z-index: 4; pointer-events: none;
  background: radial-gradient(46% 34% at 50% 44%, rgba(255, 228, 222, .26), transparent 72%);
  transition: opacity .6s;
}
html[data-theme="aurora"] .cur.s1::after { opacity: 0; }

/* placa en arco (como el marco del hero) con tiara */
html[data-theme="aurora"] .cur__plaque { width: min(72vw, 282px); top: 48%; }
html[data-theme="aurora"] .cur__cord { left: 29%; right: 29%; bottom: calc(100% - 26px); border-inline: 2px solid var(--gold-hi); opacity: 1; filter: drop-shadow(0 0 1px rgba(46, 14, 38, .9)) drop-shadow(0 0 4px rgba(255, 220, 205, .5)); }
html[data-theme="aurora"] .cur__plaque::after {
  content: ''; position: absolute; left: 50%; top: -40px; z-index: 2; width: 104px; height: 57px;
  transform: translateX(-50%);
  background: var(--au-tiara-lt) center / contain no-repeat;
  filter: drop-shadow(0 0 5px rgba(255, 220, 205, .9)) drop-shadow(0 2px 3px rgba(46, 14, 38, .55));
}
html[data-theme="aurora"] .cur__plaque-in {
  gap: 0; padding: 50px 22px 26px;
  border-radius: 999px 999px 20px 20px;
  color: #6D2E46;
  background:
    radial-gradient(90% 55% at 50% 0%, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0) 70%),
    linear-gradient(172deg, #FFF8F2 0%, #FBE7EC 58%, #F1E6F8 100%);
  box-shadow:
    0 0 0 2px var(--gold), 0 0 0 4px var(--gold-lo), 0 0 0 7px rgba(217, 168, 148, .45),
    0 26px 60px -12px rgba(20, 4, 16, .8);
}
html[data-theme="aurora"] .cur__plaque-in::before { inset: 8px; border-radius: 999px 999px 14px 14px; border-color: rgba(183, 110, 121, .55); }
html[data-theme="aurora"] .cur__spark { display: none; }
html[data-theme="aurora"] .cur__mono {
  font-size: clamp(3.4rem, 17vw, 4.15rem); line-height: 1.04;
  padding: 0 .14em .04em;
  background: var(--au-foil); background-size: 260% 100%;
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: auFoil 6s ease-in-out infinite;
}
html[data-theme="aurora"] .cur__title { font-family: var(--font-display); font-size: 1.02rem; letter-spacing: .42em; margin-right: -.42em; opacity: 1; color: #6D2E46; margin-top: 2px; }
html[data-theme="aurora"] .cur__guest {
  margin-top: 14px; padding-top: 12px; max-width: 100%;
  border-top: 1px solid rgba(183, 110, 121, .45);
  font-size: 1.05rem; color: #4A2233; line-height: 1.35;
}
html[data-theme="aurora"] .cur__guest span { color: #93505E; opacity: 1; display: block; margin-bottom: 2px; }

/* destellos que titilan sobre el telón (dos capas desfasadas) */
html[data-theme="aurora"] .inv-intro--curtain::before,
html[data-theme="aurora"] .inv-intro--curtain::after {
  content: ''; position: absolute; inset: 0; z-index: 6; pointer-events: none;
  background-image: var(--au-spark), var(--au-spark), var(--au-spark), var(--au-spark), var(--au-spark), var(--au-spark);
  background-repeat: no-repeat;
  filter: drop-shadow(0 0 5px rgba(255, 226, 210, .95));
  animation: auTwinkle 3.4s ease-in-out infinite;
}
html[data-theme="aurora"] .inv-intro--curtain::before {
  background-position: 11% 27%, 86% 21%, 76% 67%, 17% 74%, 58% 88%, 92% 84%;
  background-size: 17px, 11px, 14px, 10px, 9px, 12px;
}
html[data-theme="aurora"] .inv-intro--curtain::after {
  background-position: 24% 45%, 70% 31%, 8% 58%, 90% 52%, 36% 93%, 64% 17%;
  background-size: 9px, 15px, 12px, 9px, 13px, 8px;
  animation-delay: -1.7s;
}
html[data-theme="aurora"] .inv-intro--curtain .inv-intro__eyebrow { color: #FBE3D2; }
/* botón de oro rosa */
html[data-theme="aurora"] .inv-intro--curtain .inv-intro__cta {
  background: linear-gradient(180deg, #FFEFE7 0%, #EDC0B1 42%, #CB8E8A 100%);
  color: #4A1F33;
  box-shadow: 0 0 0 1px #94555E, 0 0 0 4px rgba(255, 233, 220, .18), 0 18px 34px -10px rgba(10, 2, 8, .8), inset 0 1px 0 rgba(255, 255, 255, .7);
}
html[data-theme="aurora"] .inv-intro--curtain .inv-intro__cta .inv-icon { color: #93505E; }
html[data-theme="aurora"] .inv-intro--curtain .inv-intro__cta:focus-visible { outline-color: #FBE3D2; }

/* ============================================================
   ESCRITORIO Y MOVIMIENTO REDUCIDO
   ============================================================ */
@media (min-width: 700px) {
  html[data-theme="aurora"] .inv-page { box-shadow: 0 0 0 1px rgba(183, 110, 121, .18), 0 50px 120px -40px rgba(109, 46, 70, .45); }
  html[data-theme="aurora"] body.inv::before {
    content: ''; position: fixed; inset: 0; pointer-events: none;
    background:
      var(--au-tiara) calc(50% - 470px) 18vh / 150px auto no-repeat,
      var(--au-tiara) calc(50% + 470px) 70vh / 120px auto no-repeat;
    opacity: .5;
  }
  html[data-theme="aurora"] .inv-hero--framed .inv-hero__media { width: 300px; }
  html[data-theme="aurora"] .inv-hero__title { font-size: 5.8rem; }
  html[data-theme="aurora"] .cur__plaque { width: 320px; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-theme="aurora"] .inv-fx { display: none; }
  html[data-theme="aurora"] .inv-hero__title, html[data-theme="aurora"] .cur__mono { animation: none !important; background-position: 50% 0; }
  html[data-theme="aurora"] .inv-intro--curtain::before, html[data-theme="aurora"] .inv-intro--curtain::after { animation: none; opacity: .8; }
}
