:root{--plum:#24152e;--plum-light:#38213f;--pink:#df9ab5;--pink-light:#f0bfd0;--gold:#e9cb8c;--cream:#fff8ef;--muted:#dbcbd9;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 22%,#422544 0,#2b1b36 34%,var(--plum) 75%);color:var(--cream);font-family:var(--sans);line-height:1.65;overflow-x:hidden}a{color:inherit}.skip-link{position:absolute;top:-100px;left:1rem;background:#fff;color:#111;padding:.7rem;z-index:20}.skip-link:focus{top:1rem}.stars{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.stars i{position:absolute;color:var(--gold);font-style:normal;opacity:.4;animation:twinkle 3.8s ease-in-out infinite}.stars i:nth-child(1){left:8%;top:15%}.stars i:nth-child(2){left:87%;top:20%;animation-delay:1s}.stars i:nth-child(3){left:17%;top:48%;animation-delay:2s}.stars i:nth-child(4){left:78%;top:61%;animation-delay:.6s}.stars i:nth-child(5){left:9%;top:82%;animation-delay:1.7s}.stars i:nth-child(6){left:91%;top:84%;animation-delay:2.5s}.stars i:nth-child(7){left:52%;top:8%;animation-delay:.4s}header,main,footer{position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.2rem 1rem;color:var(--gold);font-size:.68rem;letter-spacing:.27em;font-weight:700}.brand-mark{font-size:1rem}.hero{min-height:calc(100svh - 56px);padding:5rem 1.5rem 4rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;isolation:isolate}.hero-halo{position:absolute;z-index:-1;width:min(86vw,680px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(214,127,168,.14),rgba(214,127,168,.04) 45%,transparent 70%)}.kicker{color:var(--gold);font-weight:700;letter-spacing:.22em;font-size:.68rem;margin:0 0 1rem}.hero h1{font:500 clamp(4.5rem,12vw,9rem)/.91 var(--serif);letter-spacing:-.055em;margin:.25rem 0 1.4rem}.hero h1 span{font-style:italic;color:var(--pink-light)}.rule{width:125px;border-top:1px solid rgba(233,203,140,.55);height:1px;margin:.6rem auto 1.3rem;position:relative}.rule span{position:absolute;top:-.78rem;left:calc(50% - .6rem);padding:0 .35rem;background:#38213f;color:var(--gold)}.subtitle{max-width:420px;color:var(--muted);margin:0 auto 1.5rem}.guest-greeting{margin:.2rem 0;color:#f7e4b9}.guest-greeting strong{color:#fff;font-weight:700}.invitation-copy{color:var(--muted);margin:.15rem 0 1.2rem}.down-link{text-decoration:none;color:var(--gold);font-weight:700;font-size:.86rem;margin-top:.7rem}.down-link span{display:block;font-size:1.3rem;animation:bob 1.8s ease-in-out infinite}.floating-petals span{position:absolute;color:#f2bdd0;opacity:.6;animation:drift 7s ease-in-out infinite}.floating-petals span:nth-child(1){top:22%;left:15%;font-size:2rem}.floating-petals span:nth-child(2){top:63%;right:13%;font-size:1.5rem;animation-delay:1s}.floating-petals span:nth-child(3){top:33%;right:18%;color:var(--gold);animation-delay:2s}.floating-petals span:nth-child(4){top:73%;left:17%;font-size:1.2rem;animation-delay:3s}.countdown-section,.details,.video-section,.reply-section{padding:5.5rem 1.4rem;text-align:center;max-width:850px;margin:0 auto}.countdown-section h2,.details h2,.video-section h2,.reply-section h2{font:500 clamp(2.7rem,7vw,4.5rem)/1.08 var(--serif);margin:.35rem 0 2rem}.countdown-section h2 em,.details h2 em,.video-section h2 em,.reply-section h2 em{color:var(--pink-light);font-weight:500}.countdown{display:flex;align-items:center;justify-content:center;gap:clamp(.5rem,3vw,1.8rem);margin:0 auto;max-width:650px}.countdown>div{min-width:clamp(58px,13vw,100px);display:grid;gap:.25rem}.countdown strong{font:500 clamp(2rem,7vw,4rem)/1 var(--serif);color:var(--gold);font-variant-numeric:tabular-nums}.countdown span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.countdown>b{font:400 2rem var(--serif);color:var(--pink);align-self:flex-start}.countdown-message{min-height:1.5em;color:var(--muted);font-size:.87rem;margin:1.4rem auto 0}.details{border-top:1px solid rgba(233,203,140,.2)}.details-card{max-width:570px;margin:2.5rem auto 1.5rem;padding:1.7rem 2rem;border:1px solid rgba(233,203,140,.48);border-radius:1.3rem;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.015));box-shadow:0 18px 60px rgba(0,0,0,.13)}.detail-item{display:flex;align-items:flex-start;gap:1rem;text-align:left;padding:.7rem}.detail-icon{font-size:1.8rem;color:var(--gold);width:2rem;text-align:center}.detail-item h3{font:600 1.25rem var(--serif);margin:.15rem 0;color:var(--pink-light)}.detail-item p{margin:.15rem 0;color:var(--cream)}.detail-item .address{color:var(--muted)}.detail-item a{display:inline-block;color:var(--gold);margin-top:.4rem;font-size:.88rem}.detail-divider{height:1px;background:rgba(233,203,140,.22);margin:.75rem 0}.closing{font:italic 1.2rem var(--serif);color:var(--muted);margin-top:2rem}.closing span{color:var(--pink)}.video-section{border-top:1px solid rgba(233,203,140,.2)}.video-section video{width:100%;max-width:720px;max-height:70vh;border-radius:1.1rem;border:1px solid rgba(233,203,140,.35);background:#100d16;box-shadow:0 20px 60px #160d1e}.reply-section{border-top:1px solid rgba(233,203,140,.2)}.mini-ornament{color:var(--gold);letter-spacing:.3em;margin-bottom:1rem}.reply-copy{color:var(--muted);max-width:450px;margin:0 auto 1.4rem}.button{display:inline-flex;border-radius:2rem;padding:.9rem 1.4rem;background:var(--pink-light);color:#301b34;text-decoration:none;font-weight:700}.small-note{font-size:.83rem;color:var(--muted)}footer{text-align:center;padding:2.8rem 1rem 3rem;border-top:1px solid rgba(233,203,140,.2);background:rgba(10,7,14,.16)}.footer-title{margin:0;color:var(--muted);font:italic 1rem var(--serif)}.footer-name{font:500 2rem var(--serif);color:var(--pink-light);margin:.1rem 0 .7rem}.footer-controls{display:flex;justify-content:center;gap:.65rem;flex-wrap:wrap}.control-button{background:transparent;color:var(--gold);border:1px solid rgba(233,203,140,.45);border-radius:2rem;padding:.6rem 1rem;font:600 .85rem var(--sans);cursor:pointer}.control-button:hover{background:rgba(233,203,140,.1)}button:focus-visible,a:focus-visible{outline:3px solid #fff0ae;outline-offset:3px}@keyframes twinkle{0%,100%{opacity:.22;transform:scale(.8)}50%{opacity:.8;transform:scale(1.25)}}@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes drift{0%,100%{transform:translateY(0) rotate(-8deg);opacity:.35}50%{transform:translateY(-18px) rotate(14deg);opacity:.85}}@media(max-width:600px){.topbar{font-size:.58rem;letter-spacing:.19em}.hero{min-height:calc(94svh - 52px);padding:4rem 1.15rem 3rem}.subtitle{font-size:.96rem}.countdown-section,.details,.video-section,.reply-section{padding:4.4rem 1.1rem}.countdown{gap:.35rem}.countdown span{font-size:.58rem;letter-spacing:.06em}.countdown>b{font-size:1.4rem}.details-card{padding:1rem .8rem}.detail-item{gap:.6rem}.floating-petals span:nth-child(1){left:6%}.floating-petals span:nth-child(2){right:5%}.floating-petals span:nth-child(3){right:7%}.floating-petals span:nth-child(4){left:7%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.music-hint{display:inline-block;margin:.35rem auto .6rem;padding:.42rem .8rem;border:1px solid rgba(233,203,140,.38);border-radius:2rem;background:rgba(36,21,46,.74);color:var(--gold);font-size:.78rem;box-shadow:0 0 22px rgba(233,203,140,.1);animation:rise-in .5s both}
/* Agenda centrada: cada hora y actividad queda alineada al centro de la página. */
.timeline{max-width:560px;margin:2rem auto;padding:0;text-align:center}.timeline::before{left:50%;top:.5rem;bottom:.5rem}.timeline li{display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:0 0 1.15rem}.timeline li::before{left:calc(50% - .4rem);top:.65rem;z-index:1;background:var(--plum);padding:0 .12rem}.timeline time{position:relative;z-index:2;padding:.2rem .7rem;border:1px solid rgba(233,203,140,.4);border-radius:2rem;background:var(--plum);text-align:center}.timeline li div{width:min(390px,100%);padding:.75rem 1rem 1rem;border:1px solid rgba(233,203,140,.18);border-radius:.85rem;background:rgba(255,255,255,.025);text-align:center}.timeline li div strong,.timeline li div span{text-align:center}

/* Centrar las secciones completas de calendario y programa. */
.calendar-section,
.program-section {
  width: min(100% - 2.8rem, 850px);
  margin: 0 auto;
  padding: 5.5rem 1.4rem;
  text-align: center;
}
.calendar-section {
  border-top: 1px solid rgba(233, 203, 140, .2);
}
.calendar-section h2,
.program-section h2 {
  font: 500 clamp(2.7rem, 7vw, 4.5rem)/1.08 var(--serif);
  margin: .35rem auto 2rem;
  text-align: center;
}
.calendar-section h2 em,
.program-section h2 em {
  color: var(--pink-light);
  font-weight: 500;
}
.calendar-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .9rem;
  width: 100%;
  text-align: center;
}
.calendar-actions .button,
.calendar-download {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.calendar-download {
  color: var(--gold);
}
.calendar-section .small-note,
.program-section .small-note {
  max-width: 560px;
  margin: 1rem auto 0;
  text-align: center;
}
.program-section {
  border-top: 1px solid rgba(233, 203, 140, .2);
}
.timeline li > div > strong {
  display: block;
  margin: 0 0 .22rem;
}
.timeline li > div > span {
  display: block;
}
@keyframes rise-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 600px) {
  .calendar-section,
  .program-section {
    width: 100%;
    padding: 4.4rem 1.1rem;
  }
}
