:root {
  --bg:         #E8DCC8;
  --bg-mid:     #D4C4A0;
  --bg-dark:    #1C1005;
  --bg-darkest: #0E0802;
  --white:      #FFFFFF;
  --gold:       #D4A843;
  --gold-lt:    #EDD07A;
  --gold-dk:    #A07828;
  --gold-glow:  rgba(212,168,67,0.45);
  --cream:      #F5EDD5;
  --shadow:     rgba(0,0,0,0.18);
  --font-title: 'Cormorant Garamond', serif;
  --font-body:  'Montserrat', sans-serif;
  --font-sig:   'Great Vibes', cursive;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{background:var(--bg);color:#2a1e0e;font-family:var(--font-body);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* ── PRE-DOOR ── */
.pre-door{
  position:fixed;inset:0;z-index:9999;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:
    radial-gradient(ellipse 80% 60% at 50% 20%, rgba(255,248,225,0.9) 0%, transparent 70%),
    radial-gradient(ellipse 100% 100% at 50% 100%, rgba(180,130,50,0.25) 0%, transparent 60%),
    linear-gradient(180deg, #f0e4cc 0%, #e4d0a8 50%, #c8a870 100%);
  overflow:hidden;
}
#particles-entry{position:absolute;inset:0;pointer-events:none}

/* Vignette que da profundidad y foco */
.pre-door__vignette{
  position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 70% 70% at 50% 50%, transparent 30%, rgba(90,58,15,0.55) 100%);
}

/* Rayos de luz de fondo — clip-path:circle() para rotación sin esquinas */
.pre-door__rays{
  position:absolute;
  top:35%;left:50%;
  width:250vmax;height:250vmax;
  clip-path:circle(50% at 50% 50%);
  transform:translate(-50%,-50%);
  transform-origin:center center;
  pointer-events:none;z-index:0;
  background:repeating-conic-gradient(
    from 0deg at 50% 50%,
    rgba(255,235,160,0.28) 0deg 4deg,
    transparent 4deg 18deg
  );
  animation:predoorRays 55s linear infinite;
}

/* Glow central detrás de la cruz */
.pre-door__glow{
  position:absolute;top:35%;left:50%;
  transform:translate(-50%,-50%);
  width:clamp(280px,80vw,420px);height:clamp(280px,80vw,420px);
  background:radial-gradient(circle, rgba(245,229,176,0.6) 0%, rgba(214,179,106,0.22) 40%, transparent 70%);
  border-radius:50%;
  animation:glowPulse 4s ease-in-out infinite;
}

/* ── CRUZ SVG ── */
.entry-cross{
  width:clamp(110px,28vw,165px);height:auto;
  margin-bottom:1.8rem;
  filter:drop-shadow(0 0 18px rgba(214,179,106,0.7)) drop-shadow(0 4px 30px rgba(90,58,15,0.4));
  animation:crossFloat 6s ease-in-out infinite;
}

/* Halo rings -- transform-origin centrado en el cruce (cx=80 cy=68 del viewBox) */
.halo-ring{transform-origin:80px 68px}
.r1{animation:haloSpin 10s linear infinite}
.r2{animation:haloSpin 16s linear infinite reverse}
.r3{animation:haloSpin 7s linear infinite;opacity:0.6}

/* Mandorla pulsa sutilmente */
.cross-mandorla{animation:mandorlaPulse 4s ease-in-out infinite}

/* Rayos detrás de la cruz */
.cross-rays{animation:crossRaysFade 3s ease-in-out infinite}

/* Joya central destella */
.jewel-sparkle{animation:jewelFlash 2.5s ease-in-out infinite;transform-origin:center;transform-box:fill-box}
.cross-jewel-core{animation:jewelCore 2.5s ease-in-out infinite;transform-origin:center;transform-box:fill-box}

/* ── PRE-DOOR CONTENT ── */
.pre-door__content{
  position:relative;z-index:2;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:0.5rem;
}
.pre-door__label{
  font-family:var(--font-body);font-size:clamp(0.6rem,1.8vw,0.75rem);
  letter-spacing:0.4em;text-transform:uppercase;color:#8a7040;opacity:0;
}
.pre-door__name{
  font-family:var(--font-sig);font-size:clamp(2.8rem,9vw,4.5rem);
  color:#3d2a05;line-height:1;opacity:0;
  text-shadow:0 2px 24px rgba(214,179,106,0.5), 0 0 60px rgba(214,179,106,0.2);
}
.pre-door__event{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(0.95rem,2.8vw,1.3rem);color:#7a6030;letter-spacing:0.18em;opacity:0;
}

/* ── ENTER BUTTON — Glassmorphism Premium ── */
.enter-btn{
  margin-top:2rem;position:relative;
  background:rgba(255,248,220,0.18);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(214,179,106,0.55);
  border-radius:60px;padding:0.9rem 2.2rem;
  cursor:pointer;overflow:visible;
  opacity:0;animation:fadeIn 0.8s ease 1.8s forwards;
  transition:transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
  box-shadow:0 4px 28px rgba(214,179,106,0.25), inset 0 1px 0 rgba(255,248,210,0.35);
}
.enter-btn:hover{
  transform:translateY(-3px) scale(1.04);
  box-shadow:0 10px 40px rgba(214,179,106,0.45), inset 0 1px 0 rgba(255,248,210,0.45);
  border-color:rgba(214,179,106,0.85);
}
.enter-btn:active{transform:translateY(-1px) scale(1.01)}

/* Halo exterior que pulsa (anillo de luz) */
.enter-btn__halo{
  position:absolute;inset:-6px;
  border-radius:60px;pointer-events:none;
  border:1px solid rgba(214,179,106,0);
  animation:btnHaloPulse 2.5s ease-in-out infinite;
}
/* Pulso de brillo interno */
.enter-btn__pulse{
  position:absolute;inset:0;border-radius:60px;
  background:radial-gradient(circle at 50% 50%, rgba(245,229,176,0.3) 0%, transparent 70%);
  animation:btnInnerPulse 2.5s ease-in-out infinite;
  pointer-events:none;
}
/* Contenido interior */
.enter-btn__inner{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:0.75rem;
  font-family:var(--font-body);font-size:clamp(0.7rem,2vw,0.82rem);
  letter-spacing:0.28em;text-transform:uppercase;color:#5a3e10;
  font-weight:500;
}
.enter-btn__cross-ico{width:12px;height:18px;color:#c49a45;flex-shrink:0}
.enter-btn__label{white-space:nowrap}
.enter-btn__chevron{
  width:8px;height:14px;color:rgba(196,154,69,0.7);flex-shrink:0;
  animation:chevronNudge 2s ease-in-out infinite;
}

/* Halo tracker (mouse follow) */
.halo-tracker{position:absolute;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(214,179,106,0.15) 0%,transparent 70%);pointer-events:none;transform:translate(-50%,-50%);transition:left 0.15s,top 0.15s;z-index:1}

/* ── MAIN CONTENT ── */
.main-content{position:relative;min-height:100vh}
.main-content.locked{visibility:hidden;opacity:0;pointer-events:none}
.main-content.unlocked{visibility:visible;opacity:1;pointer-events:all}

/* ── HERO — Profundidad Divina ── */
.hero{
  position:relative;min-height:100vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  overflow:hidden;padding:4rem 1.5rem 0;
  background:
    radial-gradient(ellipse 70% 55% at 50% 5%, rgba(255,248,215,0.75) 0%, transparent 55%),
    radial-gradient(ellipse 90% 40% at 20% 80%, rgba(180,130,40,0.18) 0%, transparent 60%),
    radial-gradient(ellipse 60% 50% at 80% 70%, rgba(212,168,67,0.12) 0%, transparent 60%),
    linear-gradient(185deg, #E2D4B0 0%, #C8BA90 45%, #B0A070 100%);
}
/* Textura de grano sobre el hero */
.hero::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
  opacity:1;
}
.particles-overlay{position:absolute;inset:0;pointer-events:none;z-index:1}
.hero__rays{
  position:absolute;top:-15%;left:50%;transform:translateX(-50%);
  width:160%;height:90%;
  background:repeating-conic-gradient(
    rgba(212,168,67,0.055) 0deg 5deg,
    transparent 5deg 15deg
  );
  animation:raysRot 30s linear infinite;z-index:0;
  mask-image:radial-gradient(ellipse 60% 70% at 50% 0%, black 0%, transparent 75%);
}
.hero__clouds{position:absolute;width:200%;height:60%;background-repeat:repeat-x;z-index:0;opacity:0.6}
.cloud-layer-1{top:0;background-image:radial-gradient(ellipse 200px 80px at 20% 50%,rgba(255,252,240,0.8) 0%,transparent 100%),radial-gradient(ellipse 150px 60px at 70% 30%,rgba(255,252,240,0.6) 0%,transparent 100%);animation:cloudDrift 25s linear infinite}
.cloud-layer-2{top:15%;background-image:radial-gradient(ellipse 120px 50px at 50% 60%,rgba(255,252,240,0.45) 0%,transparent 100%);animation:cloudDrift 35s linear infinite reverse;opacity:0.4}
/* ── FRAME (foto) — sin tocar floatY ── */
.hero__frame{position:relative;z-index:2;margin-bottom:2rem}
.hero__photo{
  width:clamp(200px,55vw,280px);height:clamp(200px,55vw,280px);object-fit:cover;border-radius:50%;
  box-shadow:
    0 0 0 5px rgba(212,168,67,0.55),
    0 0 0 11px rgba(212,168,67,0.2),
    0 0 0 20px rgba(212,168,67,0.06),
    0 24px 70px rgba(0,0,0,0.28);
  animation:floatY 5s ease-in-out infinite;
}
.hero__halo{position:absolute;inset:-20px;border-radius:50%;border:1px solid rgba(212,168,67,0.6);animation:haloExpand 3s ease-in-out infinite}
.hero__orbit-particle{position:absolute;width:8px;height:8px;background:var(--gold-lt);border-radius:50%;box-shadow:0 0 12px var(--gold),0 0 24px rgba(212,168,67,0.4)}
.op1{animation:orbit 6s linear infinite;top:50%;left:50%;transform-origin:0 -130px}
.op2{animation:orbit 9s linear infinite reverse;top:50%;left:50%;transform-origin:0 -150px;width:5px;height:5px;animation-delay:-3s}
.op3{animation:orbit 12s linear infinite;top:50%;left:50%;transform-origin:0 -170px;width:4px;height:4px;animation-delay:-6s}
/* ── TEXTO HERO — con vida ── */
.hero__text{position:relative;z-index:2;text-align:center}
.hero__label{
  font-size:0.75rem;letter-spacing:0.38em;text-transform:uppercase;
  color:#6b5530;margin-bottom:0.5rem;
  text-shadow:0 1px 8px rgba(212,168,67,0.3);
}
.hero__name{
  font-family:var(--font-sig);font-size:clamp(3rem,10vw,5rem);
  background:linear-gradient(160deg, #7a5520 0%, #D4A843 40%, #A07828 65%, #4a3010 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  line-height:1.1;
  filter:drop-shadow(0 3px 12px rgba(212,168,67,0.45));
}
.hero__subtitle{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(1.1rem,3vw,1.5rem);letter-spacing:0.12em;
  color:var(--gold-dk);margin:0.3rem 0 1rem;
  text-shadow:0 2px 16px rgba(212,168,67,0.3);
}
.hero__phrase{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(0.9rem,2.5vw,1.1rem);line-height:1.75;max-width:300px;margin:0 auto;
  color:#3a2a12;
  background:rgba(232,220,190,0.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(212,168,67,0.22);
  border-radius:14px;padding:0.9rem 1.2rem;
  box-shadow:0 4px 24px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,250,220,0.4);
}
/* Section divider SVG bottom of hero */
.section-divider{position:absolute;bottom:-1px;left:0;width:100%;height:80px;z-index:3}

/* Section wave — absoluta al fondo de cada sección */
.section-wave{
  position:absolute;bottom:-1px;left:0;width:100%;z-index:3;
  line-height:0;pointer-events:none;
}
.section-wave svg{display:block;width:100%;height:80px}

/* ── WAVE DIVIDERS (bloques entre secciones) ── ELIMINADO ── */

/* ── SHARED SECTION STYLES ── */
section{padding:5rem 1.5rem;position:relative}
.section-label{font-family:var(--font-title);font-style:italic;font-size:clamp(1.6rem,5vw,2.2rem);color:#5a4520;text-align:center;margin-bottom:2.5rem;position:relative}
.section-label::after{content:'';display:block;width:60px;height:1px;background:var(--gold);margin:0.8rem auto 0;opacity:0.6}
.section-label.light{color:rgba(245,229,176,0.92)}
.section-label.light::after{background:rgba(214,179,106,0.5)}
.glass-card{background:rgba(255,255,255,0.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(214,179,106,0.25);border-radius:20px;box-shadow:0 8px 40px rgba(0,0,0,0.06)}

/* ── PHOTO SECTION — Marco Sagrado ── */
.photo-section{
  background:
    radial-gradient(ellipse 55% 35% at 10% 10%, rgba(212,168,67,0.14) 0%, transparent 55%),
    radial-gradient(ellipse 70% 50% at 90% 90%, rgba(150,100,20,0.10) 0%, transparent 60%),
    linear-gradient(175deg, #D8CAA8 0%, #C4B485 40%, #B8A870 100%);
  padding-bottom:100px;
  position:relative;overflow:hidden;
}
/* Geometría sagrada de fondo (triforce/mandala SVG inline) */
.photo-section::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    radial-gradient(circle 1px at 20% 30%, rgba(212,168,67,0.4) 0%, transparent 100%),
    radial-gradient(circle 1px at 80% 20%, rgba(212,168,67,0.3) 0%, transparent 100%),
    radial-gradient(circle 1px at 60% 75%, rgba(212,168,67,0.35) 0%, transparent 100%),
    radial-gradient(circle 1px at 35% 85%, rgba(212,168,67,0.25) 0%, transparent 100%);
  background-size:80px 80px,60px 60px,100px 100px,70px 70px;
}
/* Velo de luz desde arriba */
.photo-section::after{
  content:'';position:absolute;top:0;left:0;right:0;height:220px;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 80% 100% at 50% 0%, rgba(245,235,195,0.55) 0%, transparent 100%);
}
.photo-section__inner{max-width:500px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:2rem;position:relative;z-index:1}
.photo-card{
  position:relative;width:100%;border-radius:22px;overflow:hidden;
  box-shadow:
    0 0 0 2px rgba(212,168,67,0.7),
    0 0 0 6px rgba(212,168,67,0.15),
    0 16px 56px rgba(0,0,0,0.22),
    0 4px 12px rgba(0,0,0,0.14);
}
.photo-card::before{
  content:'';position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:22px;
  background:linear-gradient(135deg, rgba(245,229,176,0.18) 0%, transparent 45%, rgba(160,120,40,0.08) 100%);
}
.photo-card__img{width:100%;height:auto;object-fit:cover;transition:transform 0.6s ease;display:block}
.photo-card:hover .photo-card__img{transform:scale(1.03)}
.photo-card__shine{
  position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:22px;
  background:linear-gradient(115deg,rgba(255,248,200,0.22) 0%,transparent 40%);
  animation:shimmer 4s ease-in-out infinite;
}
.photo-card__frame-glow{
  position:absolute;inset:0;border-radius:22px;pointer-events:none;z-index:3;
  box-shadow:inset 0 0 28px rgba(212,168,67,0.28),inset 0 1px 0 rgba(255,250,200,0.3);
}
/* Corner ornaments SVG — se inyectan via ::before del wrapper */
.photo-card__corners{
  position:absolute;inset:0;z-index:4;pointer-events:none;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Cpath d='M2 14 L2 2 L14 2' stroke='rgba(212,168,67,0.9)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Cpath d='M14 2 L26 2 L26 14' stroke='rgba(212,168,67,0.9)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Cpath d='M2 14 L2 26 L14 26' stroke='rgba(212,168,67,0.9)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Cpath d='M14 26 L26 26 L26 14' stroke='rgba(212,168,67,0.9)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-position:top left, top right, bottom left, bottom right;
  background-repeat:no-repeat;
  background-size:28px 28px;
}
.photo-section__message{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(1rem,2.5vw,1.15rem);line-height:1.85;
  color:#2e2010;
  background:rgba(222,208,168,0.65);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(212,168,67,0.35);
  border-radius:16px;padding:1.2rem 1.5rem;text-align:center;
  box-shadow:0 4px 20px rgba(0,0,0,0.1),inset 0 1px 0 rgba(255,250,220,0.5);
}
.family-card{margin-top:0.5rem}

/* ── COUNTDOWN — OSCURA ── */
.countdown-section{
  background:
    radial-gradient(ellipse 70% 50% at 50% 20%, rgba(214,179,106,0.10) 0%, transparent 55%),
    linear-gradient(160deg, #2E1F0A 0%, #1A1105 50%, #2E1F0A 100%);
  text-align:center;position:relative;overflow:hidden;
  padding-top:100px;padding-bottom:100px;
}
.countdown-section__bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(214,179,106,0.10) 0%,transparent 55%);pointer-events:none}

/* Cruz ornamental encima del título */
.countdown-cross{
  width:40px;height:60px;margin:0 auto 1.2rem;
  filter:drop-shadow(0 0 8px rgba(214,179,106,0.5));
  animation:crossFloat 6s ease-in-out infinite;
}

/* Paloma / ornamento de línea */
.countdown-dove{
  width:min(240px,70vw);height:40px;margin:0 auto 1.8rem;
  opacity:0.8;
}

/* Grid de conteo */
.countdown-grid{
  display:flex;align-items:center;justify-content:center;
  gap:clamp(0.3rem, 2vw, 1rem);
  flex-wrap:nowrap;margin-bottom:2.5rem;
  position:relative;z-index:1;
}

/* Ornamento separador vertical */
.count-ornament{
  width:16px;height:60px;flex-shrink:0;
  display:flex;align-items:center;
}
.count-ornament svg{width:100%;height:100%}

/* Ring container */
.count-ring{
  position:relative;
  width:clamp(70px,18vw,90px);
  height:clamp(70px,18vw,90px);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 0.6rem;
}
.count-ring__svg{
  position:absolute;inset:0;width:100%;height:100%;
}
.count-ring__dashes{
  /* sin animación — decorativo estático */
}

/* Número sobre el ring */
.count-num{
  position:relative;z-index:1;
  font-family:var(--font-title);
  font-size:clamp(1.8rem,6vw,2.8rem);
  color:var(--gold);line-height:1;
  text-shadow:0 0 20px rgba(214,179,106,0.55),0 0 60px rgba(214,179,106,0.2);
  animation:breathe 2s ease-in-out infinite;
  font-style:italic;
}
.count-block{display:flex;flex-direction:column;align-items:center}
.count-label{
  font-size:clamp(0.55rem,1.5vw,0.68rem);
  letter-spacing:0.28em;text-transform:uppercase;
  color:rgba(245,229,176,0.45);margin-top:0.2rem;
}

/* Versiculo y frase */
.countdown-verse{margin:0 auto 1.2rem;width:min(300px,80vw)}
.countdown-verse__line{width:100%;height:16px}
.countdown-phrase{
  font-family:var(--font-title);font-style:italic;
  color:rgba(245,229,176,0.75);font-size:clamp(0.95rem,2.5vw,1.1rem);
  line-height:1.7;position:relative;z-index:1;
}
.countdown-verse-ref{
  font-family:var(--font-body);font-style:normal;
  font-size:0.65rem;letter-spacing:0.2em;
  color:rgba(214,179,106,0.4);display:block;margin-top:0.3rem;
}

/* ── DETAILS — Pergamino Iluminado ── */
.details-section{
  background:
    radial-gradient(ellipse 70% 55% at 10% 15%, rgba(212,168,67,0.15) 0%, transparent 55%),
    radial-gradient(ellipse 60% 50% at 90% 85%, rgba(180,130,40,0.12) 0%, transparent 55%),
    linear-gradient(175deg, #E8DABC 0%, #D8C89A 45%, #C8B880 100%);
  padding-bottom:100px;position:relative;overflow:hidden;
}
/* Textura de fondo: patrón de rejilla muy sutil */
.details-section::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(rgba(160,120,40,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(160,120,40,0.07) 1px, transparent 1px);
  background-size:32px 32px;
}
/* Luz central desde arriba */
.details-section::after{
  content:'';position:absolute;top:0;left:0;right:0;height:240px;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 75% 100% at 50% 0%, rgba(255,245,210,0.65) 0%, transparent 100%);
}
.details-section .section-label{color:#4a3010;text-shadow:0 2px 16px rgba(212,168,67,0.3)}
.details-section .section-label::after{background:rgba(160,120,40,0.5)}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;max-width:600px;margin:0 auto;position:relative;z-index:1}
.detail-card{
  position:relative;padding:2rem 1.1rem 1.8rem;
  border-radius:16px;text-align:center;overflow:hidden;
  cursor:default;transition:transform 0.35s ease, box-shadow 0.35s ease;
  /* Fondo pergamino con textura */
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255,248,220,0.85) 0%, rgba(240,228,190,0.7) 100%);
  border:1px solid rgba(160,120,40,0.4);
  box-shadow:
    0 2px 0 rgba(212,168,67,0.5),
    0 8px 32px rgba(90,60,10,0.18),
    inset 0 1px 0 rgba(255,252,230,0.9),
    inset 0 -2px 0 rgba(160,120,40,0.15);
}
.detail-card:hover{transform:translateY(-5px);box-shadow:0 2px 0 rgba(212,168,67,0.7),0 16px 44px rgba(90,60,10,0.28),inset 0 1px 0 rgba(255,252,230,0.9)}
.detail-card:hover .detail-card__glow{opacity:1}
.detail-card__glow{
  position:absolute;inset:0;
  background:radial-gradient(circle at 50% 20%, rgba(212,168,67,0.12) 0%, transparent 70%);
  opacity:0;transition:opacity 0.4s;pointer-events:none;
}
/* Filete dorado superior */
.detail-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:16px 16px 0 0;
  background:linear-gradient(90deg, rgba(160,120,40,0.2), rgba(212,168,67,0.9), rgba(160,120,40,0.2));
}
/* Motivo decorativo inferior — línea fina con punto central */
.detail-card::after{
  content:'';position:absolute;bottom:10px;left:25%;right:25%;height:1px;
  background:linear-gradient(90deg, transparent, rgba(160,120,40,0.4), transparent);
}
.detail-icon{
  width:44px;height:44px;margin:0 auto 0.9rem;
  filter:drop-shadow(0 2px 6px rgba(90,60,10,0.25));
  transition:filter 0.3s,transform 0.3s;
}
.detail-card:hover .detail-icon{filter:drop-shadow(0 0 10px rgba(212,168,67,0.7)) drop-shadow(0 2px 6px rgba(90,60,10,0.2));transform:scale(1.08)}
.detail-card__title{
  font-family:var(--font-title);font-size:1.05rem;
  color:#3a2410;margin-bottom:0.45rem;
  text-shadow:0 1px 6px rgba(212,168,67,0.2);
}
.detail-card__text{font-size:0.8rem;color:#6a5030;line-height:1.6}
.map-link{display:inline-block;margin-top:0.6rem;font-size:0.75rem;color:var(--gold-dk);letter-spacing:0.06em;border-bottom:1px solid rgba(160,120,40,0.35);padding-bottom:1px;transition:color 0.2s,border-color 0.2s}
.map-link:hover{border-color:var(--gold)}

/* ── TIMELINE — Camino de Luz ── */
.timeline-section{
  background:
    radial-gradient(ellipse 65% 50% at 50% 5%, rgba(255,248,210,0.75) 0%, transparent 55%),
    radial-gradient(ellipse 80% 60% at 80% 90%, rgba(212,168,67,0.12) 0%, transparent 60%),
    linear-gradient(180deg, #DDD0AC 0%, #CCB888 50%, #BEA870 100%);
  padding-bottom:100px;position:relative;overflow:hidden;
}
/* Motivo de vitraux: líneas diagonales muy sutiles */
.timeline-section::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    repeating-linear-gradient(
      -45deg,
      rgba(160,120,40,0.04) 0px,
      rgba(160,120,40,0.04) 1px,
      transparent 1px,
      transparent 24px
    );
}
/* Luz cenital desde arriba */
.timeline-section::after{
  content:'';position:absolute;top:0;left:0;right:0;height:220px;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 70% 100% at 50% 0%, rgba(255,250,225,0.7) 0%, transparent 100%);
}
.timeline-section .section-label{color:#4a3010;text-shadow:0 2px 16px rgba(212,168,67,0.3)}
.timeline-section .section-label::after{background:rgba(160,120,40,0.5)}

.timeline{position:relative;max-width:380px;margin:0 auto;padding:1rem 0;z-index:1}
/* Senda dorada: línea de trayecto con glow */
.timeline__line{
  position:absolute;left:28px;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,
    rgba(160,120,40,0) 0%,
    rgba(160,120,40,0.55) 8%,
    rgba(212,168,67,0.7) 40%,
    rgba(212,168,67,0.5) 85%,
    rgba(160,120,40,0) 100%
  );
  box-shadow:0 0 8px rgba(212,168,67,0.3);
}
.timeline__line-glow{
  width:100%;height:100%;
  background:linear-gradient(180deg,var(--gold),rgba(212,168,67,0.1));
  transform-origin:top;transform:scaleY(0);transition:transform 1.5s ease;
}

.timeline-event{
  display:flex;align-items:center;gap:1.4rem;
  margin-bottom:2rem;position:relative;
}
/* Medallón: esfera de pergamino dorado */
.timeline-event__dot{
  width:56px;height:56px;min-width:56px;border-radius:50%;
  background:
    radial-gradient(circle at 38% 30%, rgba(255,252,230,0.95) 0%, rgba(232,210,155,0.9) 55%, rgba(180,140,60,0.85) 100%);
  border:2px solid rgba(160,120,40,0.65);
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;
  box-shadow:
    0 0 0 4px rgba(212,168,67,0.15),
    0 4px 18px rgba(90,60,10,0.3),
    inset 0 1px 0 rgba(255,250,220,0.8);
  position:relative;z-index:1;
  animation:timelineDotGlow 2.5s ease-in-out infinite;
}
/* Tarjeta de evento: pergamino con personalidad */
.timeline-event__card{
  padding:1.2rem 1.4rem;flex:1;
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, rgba(255,250,225,0.95) 0%, rgba(240,228,195,0.88) 100%);
  border:1px solid rgba(160,120,40,0.4);
  border-radius:14px;
  box-shadow:
    0 2px 0 rgba(160,120,40,0.45),
    0 8px 28px rgba(90,60,10,0.18),
    inset 0 1px 0 rgba(255,255,240,0.9);
  position:relative;overflow:hidden;
  transition:transform 0.3s ease, box-shadow 0.3s ease;
}
.timeline-event:hover .timeline-event__card{
  transform:translateX(4px);
  box-shadow:0 2px 0 rgba(212,168,67,0.6),0 14px 40px rgba(90,60,10,0.26),inset 0 1px 0 rgba(255,255,240,0.9);
}
/* Filete superior dorado */
.timeline-event__card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;border-radius:14px 14px 0 0;
  background:linear-gradient(90deg, rgba(160,120,40,0.2), rgba(212,168,67,0.8), rgba(160,120,40,0.2));
}
/* Ornamento en esquina superior derecha */
.timeline-event__card::after{
  content:'✦';position:absolute;top:8px;right:10px;
  font-size:0.5rem;color:rgba(160,120,40,0.4);
}
.timeline-event__card h3{
  font-family:var(--font-title);font-size:1.15rem;
  color:#3a2410;
  letter-spacing:0.04em;
}
.timeline-event__card p{
  font-size:0.82rem;color:#7a5830;margin-top:0.25rem;
  letter-spacing:0.04em;
}

/* ── GALLERY — Altar de Recuerdos ── */
.gallery-section{
  background:
    radial-gradient(ellipse 80% 60% at 50% 20%, rgba(212,168,67,0.10) 0%, transparent 50%),
    radial-gradient(ellipse 60% 50% at 20% 80%, rgba(180,130,40,0.08) 0%, transparent 60%),
    linear-gradient(160deg, #0E0802 0%, #1C1005 55%, #0E0802 100%);
  text-align:center;overflow:hidden;padding-top:100px;padding-bottom:100px;
  position:relative;
}
/* Constelación de puntos de luz */
.gallery-section::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(circle 1.5px at 15% 20%, rgba(212,168,67,0.6) 0%, transparent 100%),
    radial-gradient(circle 1px at 55% 10%, rgba(212,168,67,0.4) 0%, transparent 100%),
    radial-gradient(circle 2px at 80% 35%, rgba(212,168,67,0.5) 0%, transparent 100%),
    radial-gradient(circle 1px at 30% 70%, rgba(212,168,67,0.35) 0%, transparent 100%),
    radial-gradient(circle 1.5px at 70% 80%, rgba(212,168,67,0.45) 0%, transparent 100%),
    radial-gradient(circle 1px at 90% 15%, rgba(237,208,122,0.5) 0%, transparent 100%),
    radial-gradient(circle 1px at 8% 55%, rgba(237,208,122,0.4) 0%, transparent 100%);
}
.gallery-hint{
  font-size:0.72rem;letter-spacing:0.28em;text-transform:uppercase;
  color:rgba(212,168,67,0.65);margin-bottom:2.5rem;
  position:relative;z-index:1;
}
.gallery-hint::before,.gallery-hint::after{
  content:'✦';margin:0 0.6rem;font-size:0.55rem;
  opacity:0.7;animation:starSpin 6s linear infinite;
}
.card-stack-scene{position:relative;width:clamp(240px,75vw,320px);height:clamp(300px,90vw,400px);margin:0 auto;perspective:1200px;cursor:grab;position:relative;z-index:1}
.card-stack-scene:active{cursor:grabbing}
.card-stack__card{
  position:absolute;inset:0;border-radius:20px;overflow:hidden;will-change:transform;
  box-shadow:
    0 0 0 1.5px rgba(212,168,67,0.65),
    0 0 0 4px rgba(212,168,67,0.1),
    0 24px 70px rgba(0,0,0,0.65),
    0 8px 20px rgba(0,0,0,0.4);
  transition:transform 0.5s cubic-bezier(0.23,1,0.32,1),box-shadow 0.5s ease;
  backface-visibility:hidden;
}
.card-stack__card img{width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.card-stack__shine{
  position:absolute;inset:0;pointer-events:none;z-index:2;border-radius:20px;
  background:linear-gradient(135deg,rgba(255,248,200,0.18) 0%,transparent 40%);
  animation:shimmer 3.5s ease-in-out infinite;
}
/* Marcos de esquinas en la card activa */
.card-stack__card[data-index="0"]{
  transform:translateY(0px) rotateY(0deg) scale(1);z-index:4;
}
.card-stack__card[data-index="0"]::after{
  content:'';position:absolute;inset:0;pointer-events:none;border-radius:20px;z-index:3;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M2 16 L2 2 L16 2' stroke='rgba(212,168,67,0.9)' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M16 2 L30 2 L30 16' stroke='rgba(212,168,67,0.9)' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M2 16 L2 30 L16 30' stroke='rgba(212,168,67,0.9)' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M16 30 L30 30 L30 16' stroke='rgba(212,168,67,0.9)' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-position:top left, top right, bottom left, bottom right;
  background-repeat:no-repeat;
  background-size:32px 32px;
}
.card-stack__card[data-index="1"]{transform:translateY(9px) rotateY(-4deg) scale(0.97);z-index:3}
.card-stack__card[data-index="2"]{transform:translateY(18px) rotateY(-8deg) scale(0.94);z-index:2}
.card-stack__card[data-index="3"]{transform:translateY(27px) rotateY(-12deg) scale(0.91);z-index:1}
.card-stack__counter{
  margin-top:2rem;font-size:0.72rem;letter-spacing:0.25em;
  color:rgba(212,168,67,0.55);position:relative;z-index:1;
  font-family:var(--font-body);
}

/* ── RSVP — OSCURA ── */
.rsvp-section{
  background:
    radial-gradient(ellipse 70% 60% at 50% 100%, rgba(214,179,106,0.08) 0%, transparent 55%),
    linear-gradient(160deg, #2E1F0A 0%, #1A1105 100%);
  position:relative;overflow:hidden;
}
.rsvp-section__bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,rgba(214,179,106,0.08) 0%,transparent 55%);pointer-events:none}
.rsvp-form-wrap{
  max-width:480px;
  margin:0 auto;
  padding:2.5rem 2rem;
  position:relative;
  z-index:1;
  background: rgba(30, 20, 10, 0.45);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(214, 179, 106, 0.22);
  box-shadow: 0 20px 50px rgba(0,0,0,0.5), inset 0 1px 1px rgba(255,255,255,0.05);
  border-radius: 20px;
}

/* ── LITURGICAL DIVIDERS ── */
.liturgical-divider {
  width: 100%;
  max-width: clamp(220px, 55%, 320px);
  margin: 2.2rem auto;
  display: block;
  opacity: 0.85;
}
.liturgical-divider svg {
  width: 100%;
  height: auto;
  overflow: visible;
}
.liturgical-line-left {
  stroke: var(--gold);
  opacity: 0.7;
  mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
  -webkit-mask-image: -webkit-linear-gradient(right, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
}
.liturgical-line-right {
  stroke: var(--gold);
  opacity: 0.7;
  mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
  -webkit-mask-image: -webkit-linear-gradient(left, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 100%);
}

/* ── KC-RSVP BRAND HEADER ── */
.kc-rsvp-brand-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 2rem;
  position: relative;
  text-align: center;
}
.star-glow-container {
  position: relative;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.kc-rsvp-star-svg {
  width: 32px;
  height: 32px;
  z-index: 2;
  filter: drop-shadow(0 0 10px rgba(214, 179, 106, 0.75));
  animation: starBreathe 4s ease-in-out infinite;
}
.star-glow-path {
  transform-origin: 20px 18px;
}
.star-glow-aura {
  position: absolute;
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(245, 229, 176, 0.4) 0%, rgba(214, 179, 106, 0.15) 50%, transparent 75%);
  z-index: 1;
  animation: starAuraPulse 4s ease-in-out infinite;
  pointer-events: none;
}
.kc-rsvp-brand-label {
  font-family: var(--font-body);
  font-size: 0.8rem;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--gold);
  text-shadow: 0 0 12px rgba(214, 179, 106, 0.5);
  font-weight: 500;
}

.field-group label{font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;color:rgba(255,255,255,0.6)}
.field-group input,.field-group select,.field-group textarea{background:rgba(255,255,255,0.06);border:1px solid rgba(214,179,106,0.25);border-radius:12px;padding:0.9rem 1rem;color:#fff;font-family:var(--font-body);font-size:0.9rem;outline:none;transition:border-color 0.3s,box-shadow 0.3s;width:100%}
.field-group input:focus,.field-group select:focus,.field-group textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(214,179,106,0.15)}
.field-group select option{background:#3a2e1e;color:#fff}
.field-group textarea{resize:none}
.rsvp-submit-btn{width:100%;padding:1.1rem;background:linear-gradient(135deg,#d6b36a,#c49a45);border:none;border-radius:50px;color:#fff;font-family:var(--font-body);font-size:0.85rem;letter-spacing:0.15em;text-transform:uppercase;cursor:pointer;position:relative;overflow:hidden;transition:transform 0.3s,box-shadow 0.3s;box-shadow:0 4px 24px rgba(214,179,106,0.3)}
.rsvp-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 32px rgba(214,179,106,0.5)}
.rsvp-submit-btn:disabled{opacity:0.7;cursor:not-allowed}
.rsvp-loader{display:flex;align-items:center;justify-content:center;gap:6px}
.loader-dot{width:6px;height:6px;border-radius:50%;background:#fff;animation:dotBounce 1s ease-in-out infinite}
.loader-dot:nth-child(2){animation-delay:0.2s}
.loader-dot:nth-child(3){animation-delay:0.4s}
.hidden{display:none!important}

/* ── TICKET VIP ── */
.rsvp-ticket{max-width:340px;margin:0 auto;background:linear-gradient(160deg,#2a2018,#3d3020);border:1px solid rgba(214,179,106,0.4);border-radius:24px;padding:2.5rem 2rem;text-align:center;position:relative;overflow:hidden;z-index:1;box-shadow:0 20px 60px rgba(0,0,0,0.4)}
.ticket__glow{position:absolute;top:-50%;left:50%;transform:translateX(-50%);width:300px;height:300px;background:radial-gradient(circle,rgba(214,179,106,0.15) 0%,transparent 70%);pointer-events:none}
.ticket__header{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}
.ticket__cross{width:32px;height:48px;filter:drop-shadow(0 0 8px rgba(214,179,106,0.6))}
.ticket__kc-brand{font-size:0.6rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);margin-bottom:0.2rem}
.ticket__event-label{font-size:0.75rem;color:rgba(255,255,255,0.6);letter-spacing:0.1em}
.ticket__divider{height:1px;background:linear-gradient(90deg,transparent,rgba(214,179,106,0.4),transparent);margin:1rem 0}
.ticket__divider.dashed{background:none;border-top:1px dashed rgba(214,179,106,0.3)}
.ticket__name{font-family:var(--font-sig);font-size:2rem;color:#fff;margin-bottom:0.3rem;text-shadow:0 2px 20px rgba(214,179,106,0.3)}
.ticket__pases{color:var(--gold);font-size:0.9rem;letter-spacing:0.1em;margin-bottom:1rem;font-weight:500}
.ticket__date,.ticket__venue{color:rgba(255,255,255,0.6);font-size:0.78rem;line-height:1.6}
.ticket__qr{display:flex;justify-content:center;margin:1.5rem auto;padding:12px;background:#fff;border-radius:12px;width:fit-content}
.ticket__qr canvas,.ticket__qr img{border-radius:8px}
.ticket__qr-hint{font-size:0.7rem;color:rgba(255,255,255,0.4);letter-spacing:0.1em;margin-top:0.5rem}
.ticket__watermark{position:absolute;bottom:1.5rem;right:1.5rem;font-size:0.55rem;letter-spacing:0.2em;color:rgba(214,179,106,0.15);text-transform:uppercase;transform:rotate(-15deg);pointer-events:none}

/* ── SCROLL REVEAL ── */
.reveal-section{opacity:0;transform:translateY(40px);transition:opacity 0.9s ease,transform 0.9s ease}
.reveal-section.visible{opacity:1;transform:translateY(0)}
.reveal-event{opacity:0;transform:translateX(-20px);transition:opacity 0.6s ease,transform 0.6s ease}
.reveal-event.visible{opacity:1;transform:translateX(0)}
.reveal-fade{animation:fadeIn 1s ease 0.5s forwards}
.reveal-up{animation:slideUp 0.8s ease 0.9s forwards}

/* ── FOOTER — OSCURA ── */
footer{
  background:
    radial-gradient(ellipse at 50% 0%, rgba(214,179,106,0.06) 0%, transparent 55%),
    linear-gradient(180deg, #1A1105 0%, #0D0A03 100%);
  text-align:center;padding:4rem 1.5rem 3rem;position:relative;overflow:hidden;
}
footer::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(214,179,106,0.05) 0%,transparent 60%);pointer-events:none}
.footer-divider{display:flex;align-items:center;justify-content:center;margin-bottom:2rem;position:relative;z-index:1}
.footer-divider span{font-size:1.2rem;color:rgba(214,179,106,0.5);animation:starSpin 12s linear infinite;display:inline-block}
.footer-divider::before,.footer-divider::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(214,179,106,0.3));max-width:120px;margin:0 1.2rem}
.footer-sello{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(0.95rem,2.5vw,1.1rem);color:rgba(255,255,255,0.55);line-height:1.8;margin-bottom:1.8rem;position:relative;z-index:1}
.nombre-dedicado{color:var(--gold);font-weight:600;font-style:normal;text-shadow:0 0 20px rgba(214,179,106,0.3)}
.lugar-fecha{font-size:0.75rem;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.3);font-style:normal;font-family:'Montserrat',sans-serif;display:block;margin-top:0.3rem}
.footer-brand{display:inline-flex;align-items:center;gap:0.6rem;padding:0.6rem 1.4rem;border:1px solid rgba(214,179,106,0.2);border-radius:50px;transition:border-color 0.3s,box-shadow 0.3s;position:relative;z-index:1;text-decoration:none}
.footer-brand:hover{border-color:rgba(214,179,106,0.5);box-shadow:0 0 20px rgba(214,179,106,0.15)}
.ig-ico{width:18px;height:18px;color:rgba(214,179,106,0.7);flex-shrink:0}
.footer-brand-text{font-size:0.65rem;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.25);font-family:'Montserrat',sans-serif}
/* Footer Reveal animation */
.footer-reveal{opacity:0;transform:translateY(16px);transition:opacity 0.7s ease,transform 0.7s ease;transition-delay:var(--fd,0s)}
.footer-reveal.visible{opacity:1;transform:translateY(0)}
/* ── SACRED CANDLE — Music Control ── */
#kc-music-dove{
  position:fixed;bottom:1.6rem;right:1.5rem;z-index:999;
  background:none;border:none;padding:4px;cursor:pointer;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,0.6));
  transition:filter 0.4s ease,transform 0.3s ease,opacity 0.5s ease;
  transform-origin:50% 90%;
  opacity:0;transform:translateY(20px) scale(0.85);
  will-change:transform,filter;
}
#kc-music-dove.hidden{display:none!important}

#kc-music-dove.appearing{
  animation:candleAppear 0.7s cubic-bezier(0.23,1,0.32,1) forwards;
}

#kc-music-dove:hover{
  filter:drop-shadow(0 3px 10px rgba(0,0,0,0.7)) drop-shadow(0 0 10px rgba(220,140,30,0.4));
  transform:scale(1.08) translateY(-2px);
}

/* ── PLAYING: llama viva + glow ardiente ── */
#kc-music-dove.playing{
  filter:
    drop-shadow(0 2px 6px rgba(0,0,0,0.6))
    drop-shadow(0 0 16px rgba(240,160,30,0.85));
}

.candle-svg{width:40px;height:76px;overflow:visible;display:block}

/* Cuerpo vela — sin filter SVG individual, el padre ya tiene drop-shadow */
.candle-body{
  fill:url(#candle-grad);stroke:rgba(100,60,10,0.45);stroke-width:0.8;
}
.candle-wax-pool{
  fill:rgba(232,210,160,0.7);stroke:rgba(100,60,10,0.3);stroke-width:0.5;
}
.candle-drip{fill:rgba(240,220,170,0.8);stroke:rgba(100,60,10,0.2);stroke-width:0.4}
.candle-wick{stroke:#3a2010;stroke-width:1.2;stroke-linecap:round}

/* ── LLAMAS — apagadas por defecto, con fill asignado ── */
.flame-outer{
  fill:url(#flame-outer-grad);opacity:0;
  transform-origin:20px 28px;will-change:transform,opacity;
}
.flame-mid{
  fill:url(#flame-inner-grad);opacity:0;
  transform-origin:20px 26px;will-change:transform,opacity;
}
.flame-core{
  fill:#FFFBE8;opacity:0;
  transform-origin:20px 23px;will-change:transform,opacity;
}

/* LIGHTING: secuencia de encendido ─ se activa con clase .lighting */
#kc-music-dove.lighting .flame-outer{
  animation:candleLight 0.8s cubic-bezier(0.23,1,0.32,1) forwards;
}
#kc-music-dove.lighting .flame-mid{
  animation:candleLight 0.7s cubic-bezier(0.23,1,0.32,1) 0.12s forwards;
}
#kc-music-dove.lighting .flame-core{
  animation:candleLight 0.6s cubic-bezier(0.23,1,0.32,1) 0.22s forwards;
}

/* PLAYING (estable, post-ignition): flicker activo */
#kc-music-dove.playing:not(.lighting) .flame-outer{
  opacity:1;
  animation:flickerOuter 1.8s ease-in-out infinite;
}
#kc-music-dove.playing:not(.lighting) .flame-mid{
  opacity:1;
  animation:flickerMid 1.4s ease-in-out infinite 0.1s;
}
#kc-music-dove.playing:not(.lighting) .flame-core{
  opacity:0.95;
  animation:flickerCore 1s ease-in-out infinite 0.2s;
}

/* EXTINGUISHING: llama se apaga ─ clase .extinguishing */
#kc-music-dove.extinguishing .flame-outer{
  animation:candleOut 0.55s ease-in forwards;
}
#kc-music-dove.extinguishing .flame-mid{
  animation:candleOut 0.4s ease-in 0.05s forwards;
}
#kc-music-dove.extinguishing .flame-core{
  animation:candleOut 0.3s ease-in 0.1s forwards;
}

/* HUMO — solo visible durante extinguishing */
.candle-smoke{
  stroke:rgba(200,200,200,0);stroke-width:1.2;stroke-linecap:round;fill:none;
  transition:stroke 0.3s ease;
}
#kc-music-dove.extinguishing .candle-smoke{
  stroke:rgba(200,200,200,0.5);
  animation:smokeRise 0.9s ease-out forwards;
}

/* Global halo tracker — desactivado (nadie abre en PC) */
.halo-tracker.global{display:none!important}

/* ═══════════════════════════════════════════════════════
   1K-C.2A — LUZ DEL CIELO NATIVE REFINERY
   ═══════════════════════════════════════════════════════ */

/* ── HERO UPGRADES ── */
.hero__cross-ornament{margin:0.5rem auto 0.3rem;display:block;width:60px;opacity:0.85}
.hero__date-stamp{
  font-family:var(--font-body);font-size:clamp(0.62rem,1.8vw,0.72rem);
  letter-spacing:0.32em;text-transform:uppercase;color:#5a4020;
  margin:0.3rem 0 0.8rem;opacity:0.85;
}
.hero__phrase-ref{
  font-family:var(--font-body);font-style:normal;
  font-size:0.62rem;letter-spacing:0.22em;
  color:rgba(90,60,20,0.65);display:block;margin-top:0.4rem;
}

/* ── FAMILIA SECTION ── */
.familia-section{
  background:
    radial-gradient(ellipse 60% 50% at 50% 0%, rgba(245,235,200,0.75) 0%, transparent 55%),
    linear-gradient(175deg, #EAE0CF 0%, #D8C9A8 45%, #C8B888 100%);
  padding:4rem 1.5rem 100px;position:relative;overflow:hidden;
}
.familia-section::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    radial-gradient(circle 1px at 25% 25%, rgba(212,168,67,0.35) 0%, transparent 100%),
    radial-gradient(circle 1px at 75% 75%, rgba(212,168,67,0.28) 0%, transparent 100%),
    radial-gradient(circle 1px at 75% 25%, rgba(212,168,67,0.25) 0%, transparent 100%);
  background-size:70px 70px,90px 90px,60px 60px;
}
.familia-section__inner{max-width:500px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.8rem;position:relative;z-index:1}
.familia-label{color:#4a3010!important}
.familia-names{
  display:flex;align-items:center;gap:1rem;
  font-family:var(--font-sig);font-size:clamp(1.5rem,5vw,2rem);
  color:#6a4820;line-height:1.1;
  text-shadow:0 2px 12px rgba(212,168,67,0.25);
  flex-wrap:wrap;justify-content:center;
}
.familia-amp{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(1rem,3vw,1.4rem);color:rgba(212,168,67,0.75);
}
.familia-name{white-space:nowrap}
.familia-photo-card{width:100%}
.familia-blessing{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(0.88rem,2.2vw,1rem);line-height:1.8;
  color:#3a2810;text-align:center;max-width:340px;
  padding:1rem 1.4rem;
  background:rgba(222,208,168,0.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(212,168,67,0.3);border-radius:14px;
  box-shadow:0 4px 18px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,250,220,0.5);
}
.familia-blessing em{
  font-family:var(--font-body);font-style:normal;
  font-size:0.65rem;letter-spacing:0.22em;display:block;
  margin-top:0.4rem;color:rgba(90,60,20,0.6);
}

/* ── PADRINOS SECTION ── */
.padrinos-section{
  background:
    radial-gradient(ellipse 65% 50% at 50% 5%, rgba(255,248,215,0.8) 0%, transparent 55%),
    linear-gradient(175deg, #E8DABC 0%, #D4C498 50%, #C0AE78 100%);
  padding:5rem 1.5rem 100px;position:relative;overflow:hidden;text-align:center;
}
.padrinos-section::after{
  content:'';position:absolute;top:0;left:0;right:0;height:200px;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 70% 100% at 50% 0%, rgba(255,248,210,0.7) 0%, transparent 100%);
}
.padrinos-verse{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(0.82rem,2vw,0.95rem);color:#7a6030;
  margin:-1rem 0 2.5rem;letter-spacing:0.04em;
  position:relative;z-index:1;
}
.padrinos-grid{
  display:flex;align-items:center;justify-content:center;
  gap:clamp(1.2rem,5vw,3rem);
  max-width:540px;margin:0 auto;
  position:relative;z-index:1;
  flex-wrap:wrap;
}
.padrinos-cross{
  width:30px;height:46px;flex-shrink:0;
  filter:drop-shadow(0 0 6px rgba(214,179,106,0.4));
  animation:crossFloat 6s ease-in-out infinite;
}
.padrino-card{
  flex:1;min-width:120px;max-width:180px;
  padding:2rem 1rem 1.5rem;
  border-radius:20px;position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, rgba(255,250,225,0.95) 0%, rgba(242,232,200,0.88) 100%);
  border:1px solid rgba(160,120,40,0.38);
  box-shadow:
    0 2px 0 rgba(212,168,67,0.55),
    0 10px 34px rgba(90,60,10,0.2),
    inset 0 1px 0 rgba(255,255,240,0.9);
  transition:transform 0.35s ease,box-shadow 0.35s ease;
}
.padrino-card:hover{
  transform:translateY(-6px);
  box-shadow:0 2px 0 rgba(212,168,67,0.7),0 18px 44px rgba(90,60,10,0.28),inset 0 1px 0 rgba(255,255,240,0.9);
}
.padrino-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:20px 20px 0 0;
  background:linear-gradient(90deg, rgba(160,120,40,0.2), rgba(212,168,67,0.9), rgba(160,120,40,0.2));
}
.padrino-card__halo{
  position:absolute;top:-20px;left:50%;transform:translateX(-50%);
  width:80px;height:80px;border-radius:50%;
  background:radial-gradient(circle, rgba(212,168,67,0.18) 0%, transparent 70%);
  pointer-events:none;
}
.padrino-card__icon{width:48px;height:48px;margin:0 auto 0.8rem;opacity:0.85;filter:drop-shadow(0 2px 5px rgba(90,60,10,0.2))}
.padrino-card__icon svg{width:100%;height:100%}
.padrino-card__role{
  font-family:var(--font-body);font-size:0.65rem;
  letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(120,90,30,0.75);margin-bottom:0.4rem;
}
.padrino-card__name{
  font-family:var(--font-sig);font-size:clamp(1.4rem,4vw,1.8rem);
  color:#3a2410;line-height:1;
  text-shadow:0 1px 8px rgba(212,168,67,0.3);
}

/* ── RSVP SECTION UPGRADES ── */
.rsvp-section__lead{
  font-family:var(--font-title);font-style:italic;
  font-size:clamp(0.9rem,2.2vw,1.05rem);
  color:rgba(245,229,176,0.65);
  text-align:center;margin:-1.2rem 0 2rem;
  letter-spacing:0.06em;position:relative;z-index:1;
}

/* ── TICKET UPGRADES ── */
.rsvp-ticket{
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(255,248,215,0.12) 0%, transparent 55%),
    linear-gradient(160deg,#241808,#3a2a10) !important;
  border-color:rgba(214,179,106,0.55) !important;
}
.ticket__name{
  font-family:var(--font-sig) !important;
  background:linear-gradient(135deg,#F5E5B0,#D6B36A,#C49A45);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  font-size:clamp(1.6rem,6vw,2.2rem) !important;
}

/* ── SAVE PASS BUTTON ── */
.kc-ticket-share{margin-top:14px;display:flex;justify-content:center;position:relative;z-index:2}
.kc-ticket-share-btn{
  font-family:var(--font-body);font-size:0.63rem;letter-spacing:0.22em;text-transform:uppercase;
  padding:9px 20px;border:1px solid rgba(214,179,106,0.35);border-radius:25px;
  background:rgba(214,179,106,0.08);color:var(--gold);cursor:pointer;
  transition:background 0.3s,border-color 0.3s,box-shadow 0.3s;
}
.kc-ticket-share-btn:hover{
  background:rgba(214,179,106,0.16);border-color:rgba(214,179,106,0.6);
  box-shadow:0 0 16px rgba(214,179,106,0.2);
}

/* ── COUNTDOWN REFINEMENT ── */
.countdown-section{
  background:
    radial-gradient(ellipse 60% 45% at 50% 15%, rgba(214,179,106,0.14) 0%, transparent 55%),
    radial-gradient(ellipse 90% 70% at 80% 90%, rgba(180,130,40,0.07) 0%, transparent 60%),
    linear-gradient(170deg, #241808 0%, #160e03 55%, #241808 100%) !important;
}

/* ── TIMELINE EDITORIAL UPGRADE ── */
.timeline-event__card{
  background:
    linear-gradient(145deg, rgba(255,252,230,0.97) 0%, rgba(242,230,198,0.90) 100%) !important;
}
.timeline-event__card::before{height:3px !important}
.timeline-event:nth-child(odd) .timeline-event__card{border-left:3px solid rgba(212,168,67,0.5)}
.timeline-event:nth-child(even) .timeline-event__card{border-right:3px solid rgba(212,168,67,0.5)}

/* ── GALLERY CARD IMPROVEMENT ── */
.card-stack__card{border-radius:24px !important}
.card-stack__card::before{
  content:'';position:absolute;bottom:0;left:0;right:0;height:55%;z-index:2;pointer-events:none;
  background:linear-gradient(0deg,rgba(30,12,0,0.65) 0%,transparent 100%);border-radius:0 0 24px 24px;
}

/* ── DETAILS SECTION — 3-card layout after padrinos removal ── */
.details-grid{grid-template-columns:1fr 1fr !important}

/* ── RESPONSIVE ── */
@media(max-width:430px){
  .padrinos-grid{gap:1rem}
  .padrino-card{min-width:100px;padding:1.6rem 0.8rem 1.2rem}
  .padrino-card__name{font-size:1.3rem}
  .familia-names{font-size:1.4rem;gap:0.6rem}
  .familia-section{padding:3rem 1rem 80px}
  .kc-ticket-share-btn{width:100%;text-align:center}
}

/* ═══════════════════════════════════════════════════════════════
   1K-C.2A-R — LUZ DEL CIELO — VISUAL CONTRAST & SACRED FINISH
   ═══════════════════════════════════════════════════════════════ */

/* ─── TOKENS ─── */
:root{
  --ink:        #302A24;
  --ink-deep:   #1A1410;
  --bib-brown:  #6F5637;
  --deep-brown: #3D2F22;
  --lit-blue:   #536B7D;
  --deep-blue:  #334A5A;
  --old-gold:   #B98F4A;
  --soft-gold:  #D8BF82;
  --card-warm:  rgba(255,250,239,0.96);
  --card-blue:  rgba(213,226,232,0.92);
  --gold-bdr:   rgba(185,143,74,0.48);
}

/* ─── P0: TAP HIGHLIGHT — Global removal ─── */
*{-webkit-tap-highlight-color:transparent}
button:focus-visible,
a:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--old-gold);
  outline-offset:3px;
  border-radius:4px;
}
.enter-btn:focus-visible{outline-offset:6px;border-radius:60px}
#kc-music-dove:focus-visible{outline-offset:8px;border-radius:50%}
.rsvp-submit-btn:focus-visible{outline-offset:4px;border-radius:50px}

/* ─── P0: GATE — Deep basin behind cross ─── */
.pre-door__cross-basin{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-62%);
  width:clamp(200px,55vw,280px);
  height:clamp(240px,66vw,340px);
  border-radius:50% 50% 45% 45% / 40% 40% 55% 55%;
  background:
    radial-gradient(ellipse 70% 80% at 50% 40%,
      rgba(52,38,16,0.55) 0%,
      rgba(40,28,10,0.38) 45%,
      rgba(20,14,5,0.0) 100%);
  pointer-events:none;
  z-index:0;
  animation:basinPulse 5s ease-in-out infinite;
}
/* Ensure cross sits above basin */
#cross-svg.entry-cross{position:relative;z-index:2}
.pre-door__content{position:relative;z-index:3}
@keyframes basinPulse{
  0%,100%{opacity:0.85;transform:translate(-50%,-62%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-62%) scale(1.04)}
}
/* Strengthen cross drop-shadow */
.entry-cross{
  filter:
    drop-shadow(0 0 22px rgba(214,179,106,0.85))
    drop-shadow(0 6px 36px rgba(60,36,8,0.55)) !important;
}

/* ─── P0: HERO — Stronger contrast ─── */
.hero{
  background:
    radial-gradient(ellipse 60% 45% at 50% 0%, rgba(255,248,215,0.65) 0%, transparent 50%),
    radial-gradient(ellipse 85% 55% at 15% 85%, rgba(111,86,55,0.22) 0%, transparent 60%),
    radial-gradient(ellipse 70% 50% at 85% 65%, rgba(83,107,125,0.15) 0%, transparent 60%),
    linear-gradient(190deg, #C8BA90 0%, #A89870 35%, #8A7850 70%, #6A5C3A 100%) !important;
}
/* Dark ink field behind text for legibility */
.hero__text{
  position:relative;z-index:2;text-align:center;
  background:rgba(26,20,10,0.28);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(214,179,106,0.18);
  border-radius:20px;
  padding:1.4rem 1.6rem 1.2rem;
  margin:0 1rem;
  box-shadow:0 8px 32px rgba(0,0,0,0.22),inset 0 1px 0 rgba(255,248,210,0.15);
}
.hero__label{
  color:rgba(245,229,176,0.82) !important;
  text-shadow:0 1px 8px rgba(0,0,0,0.5);
}
.hero__name{
  /* Reinforce gradient on dark field */
  background:linear-gradient(155deg, #FFEAA8 0%, #E8C86A 35%, #C49A45 65%, #F0D890 100%) !important;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  filter:drop-shadow(0 2px 14px rgba(212,168,67,0.65)) !important;
  font-size:clamp(2.8rem,9vw,4.8rem) !important;
}
.hero__subtitle{
  color:rgba(245,229,176,0.88) !important;
  text-shadow:0 1px 8px rgba(0,0,0,0.45);
}
.hero__date-stamp{
  color:rgba(220,195,130,0.80) !important;
}
.hero__phrase{
  background:rgba(20,14,5,0.45) !important;
  border-color:rgba(214,179,106,0.3) !important;
  color:rgba(240,228,195,0.92) !important;
  text-shadow:0 1px 6px rgba(0,0,0,0.4);
}
.hero__phrase-ref{color:rgba(214,179,106,0.65) !important}

/* ─── P1: PADRINOS — Deeper card contrast ─── */
.padrinos-section{
  background:
    radial-gradient(ellipse 60% 45% at 50% 0%, rgba(245,235,200,0.7) 0%, transparent 50%),
    linear-gradient(175deg, #C8BA96 0%, #A89876 45%, #8C7C5C 100%) !important;
}
.padrino-card{
  background:var(--card-warm) !important;
  border:1.5px solid var(--gold-bdr) !important;
  box-shadow:
    0 3px 0 rgba(185,143,74,0.6),
    0 14px 44px rgba(40,28,10,0.32),
    inset 0 1px 0 rgba(255,255,240,1) !important;
}
.padrino-card__role{
  color:var(--bib-brown) !important;
  font-weight:500;
}
.padrino-card__name{
  color:var(--deep-brown) !important;
  text-shadow:none !important;
}
.padrinos-section .section-label{
  color:var(--deep-brown) !important;
  text-shadow:0 2px 16px rgba(185,143,74,0.35);
}
.padrinos-verse{color:var(--bib-brown) !important}

/* ─── P1: DETALLES — 2-card centred layout ─── */
.details-grid{
  grid-template-columns:1fr 1fr !important;
  max-width:480px !important;
  gap:1.6rem !important;
}
/* If only 2 cards remain, centre them */
.details-grid .detail-card:last-child:nth-child(2){
  grid-column:auto;
}
/* Deeper card surface */
.detail-card{
  background:
    radial-gradient(ellipse 85% 60% at 50% 0%,rgba(255,252,235,0.98) 0%,rgba(238,224,188,0.92) 100%) !important;
  border:1.5px solid rgba(111,86,55,0.38) !important;
  box-shadow:
    0 3px 0 rgba(185,143,74,0.55),
    0 10px 36px rgba(60,40,12,0.22),
    inset 0 1px 0 rgba(255,255,240,1) !important;
}
.detail-card__title{color:var(--deep-brown) !important}
.detail-card__text{color:var(--bib-brown) !important;font-size:0.82rem}

/* ─── P1: TIMELINE — Liturgical redesign ─── */
/* Remove emojis' font rendering fallback */
.timeline-event__dot span{display:none}
.tl-icon{width:22px;height:22px;display:block}
.timeline-event__dot{
  background:
    radial-gradient(circle at 40% 32%, rgba(255,252,230,0.98) 0%, rgba(220,190,120,0.92) 55%, rgba(160,120,55,0.88) 100%) !important;
  border:2px solid rgba(111,86,55,0.7) !important;
  box-shadow:
    0 0 0 5px rgba(185,143,74,0.18),
    0 5px 20px rgba(60,36,8,0.35),
    inset 0 1px 0 rgba(255,250,220,1) !important;
}
/* Liturgical alternating layout */
.timeline-event:nth-child(even) .timeline-event__card{
  border-left:none !important;
  border-right:3px solid rgba(185,143,74,0.55) !important;
}
/* Richer card */
.timeline-event__card{
  background:linear-gradient(150deg,rgba(255,252,238,0.98) 0%,rgba(240,226,196,0.94) 100%) !important;
  border:1.5px solid rgba(111,86,55,0.32) !important;
  box-shadow:
    0 3px 0 rgba(185,143,74,0.5),
    0 8px 28px rgba(60,40,12,0.2),
    inset 0 1px 0 rgba(255,255,240,1) !important;
}
.timeline-event__card h3{
  color:var(--deep-brown) !important;
  font-size:1.12rem !important;
  margin-bottom:0.1rem;
}
.tl-card__time{
  font-family:var(--font-body);
  font-size:0.62rem;letter-spacing:0.3em;text-transform:uppercase;
  color:var(--old-gold);margin-bottom:0.25rem;
}
.tl-card__desc{
  font-family:var(--font-title);font-style:italic;
  font-size:0.8rem;color:var(--bib-brown);margin-top:0.25rem;line-height:1.5;
}
/* Timeline section bg — more defined */
.timeline-section{
  background:
    radial-gradient(ellipse 60% 45% at 50% 5%,rgba(255,250,225,0.7) 0%,transparent 50%),
    linear-gradient(180deg,#C8B888 0%,#A89868 50%,#907850 100%) !important;
}
.timeline-section .section-label{color:var(--deep-brown) !important}

/* ─── P1: RSVP — Card separation from section ─── */
.rsvp-form-wrap{
  background:rgba(20,13,5,0.72) !important;
  border:1.5px solid rgba(185,143,74,0.38) !important;
  box-shadow:
    0 0 0 1px rgba(185,143,74,0.12),
    0 24px 64px rgba(0,0,0,0.65),
    inset 0 1px 1px rgba(255,248,210,0.08) !important;
}
.field-group label{color:rgba(216,191,130,0.85) !important}
.field-group input,
.field-group select,
.field-group textarea{
  background:rgba(255,255,255,0.09) !important;
  border:1px solid rgba(185,143,74,0.35) !important;
  color:#F0E8D0 !important;
}
.field-group input::placeholder,
.field-group textarea::placeholder{color:rgba(216,191,130,0.45) !important}
.field-group select option{background:#2a1e0e;color:#F0E8D0}

/* ─── P2: COUNTDOWN — Church-clock medallions ─── */
/* Strengthen ring visibility on dark bg */
.count-ring{
  background:
    radial-gradient(circle at 50% 50%,rgba(50,34,10,0.55) 0%,rgba(30,20,6,0.35) 100%);
  border:1px solid rgba(185,143,74,0.22);
  border-radius:50%;
}
.count-num{
  color:#EDD07A !important;
  text-shadow:0 0 24px rgba(237,208,122,0.65),0 0 60px rgba(214,179,106,0.25) !important;
}
.count-label{color:rgba(216,191,130,0.60) !important}

/* ─── MOBILE ─── */
@media(max-width:430px){
  .hero__text{margin:0 0.5rem;padding:1.1rem 1.1rem 1rem}
  .hero__name{font-size:clamp(2.4rem,9vw,3.5rem) !important}
  .details-grid{grid-template-columns:1fr 1fr !important;gap:1rem !important;max-width:100% !important}
  .padrino-card{min-width:110px}
  .timeline-event__card h3{font-size:1rem !important}
}

/* ─── FIX: Hero name — gradient text isolation to avoid backdrop-filter conflict ─── */
/* The -webkit-text-fill-color + backdrop-filter on parent causes render bug.
   Solution: wrap hero__name in its own stacking context isolation */
.hero__name{
  isolation:isolate;
  position:relative;
  z-index:1;
  /* Ensure gradient text clip works properly over blurred parent */
  background:linear-gradient(155deg, #FFEAA8 0%, #E8C86A 35%, #C49A45 65%, #F0D890 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  display:block;
  padding:0.1em 0;
}
/* If browser has issues with backdrop-filter + gradient text, use box approach */
@supports (backdrop-filter: blur(1px)){
  .hero__text{
    /* Slightly reduce blur to avoid text rendering failure on some devices */
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
  }
}

/* ─── FIX DEFINITIVO: Hero name gradient text + backdrop-filter incompatibility ───
   Chromium bug: -webkit-background-clip:text no funciona en hijo cuando el padre
   tiene backdrop-filter. Solución: mover el overlay oscuro a ::before sin blur,
   y aislar el nombre con will-change:transform para crear nuevo stacking context. */
.hero__text{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:1.4rem 1.6rem 1.2rem;
  position:relative;
}
.hero__text::before{
  content:'';
  position:absolute;inset:0;border-radius:20px;
  background:rgba(20,14,5,0.38);
  border:1px solid rgba(214,179,106,0.18);
  box-shadow:0 8px 32px rgba(0,0,0,0.22),inset 0 1px 0 rgba(255,248,210,0.12);
  z-index:0;
  pointer-events:none;
}
/* Ensure all children sit above the ::before overlay */
.hero__text > *{position:relative;z-index:1}
/* Re-apply the gradient text correctly now without backdrop-filter parent */
.hero__name{
  background:linear-gradient(155deg, #FFEAA8 0%, #E8C86A 35%, #C49A45 65%, #F0D890 100%) !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
  color:transparent !important;
  will-change:transform; /* new stacking context, no parent backdrop conflict */
  filter:drop-shadow(0 2px 14px rgba(212,168,67,0.55)) !important;
  display:block;
  isolation:isolate;
}

/* ─── FIX FINAL: Hero name — solid warm gold (evita bug Chromium backdrop-filter + clip-text) ───
   El bug afecta a cualquier background-clip:text cuando hay backdrop-filter en el document.
   Solución: color sólido old-gold con text-shadow de brillo, sin gradiente clip. */
.hero__name{
  background:none !important;
  -webkit-background-clip:unset !important;
  background-clip:unset !important;
  -webkit-text-fill-color:unset !important;
  color:#D8A830 !important;
  text-shadow:
    0 0 30px rgba(237,197,90,0.75),
    0 0 65px rgba(212,168,67,0.45),
    0 2px 12px rgba(100,60,10,0.5) !important;
  will-change:auto !important;
  isolation:auto !important;
  filter:none !important;
}

/* ═══════════════════════════════════════════════════════
   1K-C.2A-R · DOCTRINE FIX — Sacred-Minimal Refinement
   Elimina artefactos visuales añadidos incorrectamente.
   Principio: Atmosphere over ornament. No floating cards.
   ═══════════════════════════════════════════════════════ */

/* ── GATE FIX: Oscurecer el fondo GENERAL, no poner un "hoyo" ──
   La cruz destaca porque el fondo ES más oscuro atmosféricamente.
   Se elimina el .pre-door__cross-basin (hover basin).
   Se refuerza el vignette global del gate y el drop-shadow de la cruz. */
.pre-door__cross-basin{ display:none !important }

/* Gate background — radial atmosférico, sin triángulo de esquina */
.pre-door{
  background:
    radial-gradient(ellipse 80% 55% at 50% 28%, rgba(194,162,90,0.55) 0%, transparent 60%),
    radial-gradient(ellipse 110% 90% at 50% 105%, rgba(20,12,3,0.50) 0%, transparent 55%),
    radial-gradient(ellipse 140% 140% at 50% 50%, #7A6238 0%, #5A4820 50%, #3A3010 100%) !important;
}
/* Cross shadow — más profundo y definido sobre fondo más oscuro */
.entry-cross{
  filter:
    drop-shadow(0 0 18px rgba(255,220,120,0.90))
    drop-shadow(0 0 42px rgba(214,179,106,0.55))
    drop-shadow(0 8px 28px rgba(10,6,0,0.65)) !important;
}

/* Pre-door vignette — bordes oscuros para enmarcar la cruz */
.pre-door__vignette{
  background:
    radial-gradient(ellipse 90% 90% at 50% 50%, transparent 45%, rgba(18,10,2,0.60) 100%) !important;
  pointer-events:none;z-index:1;
}

/* ── HERO FIX: Eliminar la "caja oscura" (::before tarjeta artificial) ──
   Doctrina: No floating cards. El texto vive sobre el hero, no dentro de un box.
   El hero tiene su propio fondo más oscuro — el texto respira sobre él. */
.hero__text{
  background:transparent !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 1rem !important;
  margin:0 !important;
  position:relative !important;
}
.hero__text::before{ display:none !important }
.hero__text > *{ position:relative;z-index:1 }

/* Hero bg — el propio fondo da el contraste, no una caja interior */
.hero{
  background:
    radial-gradient(ellipse 65% 45% at 50% 20%, rgba(90,70,30,0.45) 0%, transparent 55%),
    radial-gradient(ellipse 80% 60% at 80% 90%, rgba(50,65,80,0.22) 0%, transparent 60%),
    linear-gradient(175deg, #9A8C68 0%, #7A6C4E 30%, #5E5238 60%, #3E3828 100%) !important;
}

/* Hero name — gold luminoso, text-shadow, sin clip-text para evitar bug Chromium */
.hero__name{
  background:none !important;
  -webkit-background-clip:unset !important;
  background-clip:unset !important;
  -webkit-text-fill-color:#D8A830 !important;
  color:#D8A830 !important;
  text-shadow:
    0 0 28px rgba(237,197,90,0.80),
    0 0 60px rgba(212,168,67,0.40),
    0 2px 8px rgba(10,6,0,0.55) !important;
  will-change:auto !important;
  isolation:auto !important;
  filter:none !important;
  display:block;
  font-size:clamp(2.8rem,9vw,4.8rem) !important;
}

/* Hero texts — legibles sobre el fondo oscuro-dorado */
.hero__label{
  color:rgba(245,229,176,0.85) !important;
  text-shadow:0 1px 10px rgba(0,0,0,0.55) !important;
  letter-spacing:0.28em;
}
.hero__subtitle{
  color:rgba(240,222,175,0.90) !important;
  text-shadow:0 1px 8px rgba(0,0,0,0.45) !important;
}
.hero__date-stamp{
  color:rgba(215,190,120,0.80) !important;
  text-shadow:0 1px 6px rgba(0,0,0,0.4) !important;
}
/* Hero phrase — mantiene su glassmorphism pero más contenido */
.hero__phrase{
  background:rgba(18,12,4,0.45) !important;
  border:1px solid rgba(214,179,106,0.22) !important;
  color:rgba(238,220,175,0.92) !important;
  text-shadow:0 1px 6px rgba(0,0,0,0.4) !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.hero__phrase-ref{ color:rgba(198,162,85,0.65) !important }
.hero__cross-ornament svg line,
.hero__cross-ornament svg path{
  stroke:rgba(214,179,106,0.55) !important;
}

/* ── PADRINOS FIX: Sección más oscura para que las tarjetas ivory destaquen ── */
.padrinos-section{
  background:
    radial-gradient(ellipse 55% 40% at 50% 5%, rgba(245,232,190,0.55) 0%, transparent 50%),
    linear-gradient(175deg, #9A8C68 0%, #7A6C4E 40%, #5C5038 80%, #3E3820 100%) !important;
}
.padrinos-section .section-label{ color:#EDD07A !important; text-shadow:0 2px 12px rgba(0,0,0,0.4) }
.padrinos-verse{ color:rgba(220,195,135,0.75) !important }

/* ── DETALLES FIX: Fondo más definido, 2 tarjetas centradas ── */
.details-section{
  background:
    radial-gradient(ellipse 60% 45% at 50% 5%, rgba(255,248,225,0.65) 0%, transparent 50%),
    linear-gradient(175deg, #D8C898 0%, #BCA87A 45%, #9A8A5E 100%) !important;
}

/* Center 2 cards without orphan — override grid */
.details-grid{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:1.6rem !important;
  max-width:420px !important;
  margin:0 auto !important;
}
.detail-card{
  flex:0 0 calc(50% - 0.8rem) !important;
  min-width:140px !important;
  max-width:200px !important;
}

/* ── TIMELINE FIX: Fondo más cálido y oscuro para legibilidad ── */
.timeline-section{
  background:
    radial-gradient(ellipse 55% 40% at 50% 3%, rgba(255,248,220,0.60) 0%, transparent 48%),
    linear-gradient(180deg, #B8A878 0%, #988860 40%, #786840 80%, #584820 100%) !important;
}
.timeline-section .section-label{ color:#EDD07A !important; text-shadow:0 2px 10px rgba(0,0,0,0.4) }

/* ── RSVP FIX: Card separation accentuada ── */
.rsvp-section{
  background:
    radial-gradient(ellipse 55% 40% at 50% 0%, rgba(80,55,20,0.4) 0%, transparent 50%),
    linear-gradient(175deg, #1C1208 0%, #110B03 55%, #1C1208 100%) !important;
}
.rsvp-form-wrap{
  background:rgba(14,9,2,0.80) !important;
  border:1.5px solid rgba(185,143,74,0.42) !important;
  box-shadow:
    0 0 0 1px rgba(185,143,74,0.10),
    0 20px 55px rgba(0,0,0,0.70),
    inset 0 1px 0 rgba(255,248,210,0.07) !important;
}

/* ── PHOTO SECTION FIX: más oscura para que las fotos tengan presencia ── */
.photo-section{
  background:
    radial-gradient(ellipse 55% 45% at 50% 5%, rgba(245,232,195,0.70) 0%, transparent 50%),
    linear-gradient(175deg, #D8C898 0%, #B8A870 45%, #9A8856 100%) !important;
}

/* ── COUNTDOWN FIX: preservar el fuerte brown bíblico ── */
.countdown-section{
  background:
    radial-gradient(ellipse 55% 40% at 50% 12%, rgba(214,179,106,0.18) 0%, transparent 52%),
    radial-gradient(ellipse 90% 70% at 80% 90%, rgba(180,130,40,0.08) 0%, transparent 60%),
    linear-gradient(170deg, #241808 0%, #160e03 55%, #241808 100%) !important;
}

/* ── FAMILIA FIX: preservar pero ajustar contraste de texto ── */
.familia-section .section-label{ color:#4a3010 !important }
.familia-names{ color:#5a3818 !important; text-shadow:0 1px 12px rgba(212,168,67,0.20) }
.familia-blessing{ color:#2e1e0a !important }

/* ── MOBILE finales ── */
@media(max-width:430px){
  .hero__name{ font-size:clamp(2.4rem,8.5vw,3.2rem) !important }
  .hero__text{ padding:0 0.75rem !important }
  .details-grid{ gap:1rem !important; max-width:100% !important }
  .detail-card{ flex:0 0 calc(50% - 0.5rem) !important; min-width:120px !important }
}
