*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:#0E0C1F;color:#fff;font-family:-apple-system,'Helvetica Neue',Arial,sans-serif;overflow-x:hidden;}

.reveal{opacity:0;transform:translateY(40px);transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),transform 0.9s cubic-bezier(0.16,1,0.3,1);}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),transform 0.9s cubic-bezier(0.16,1,0.3,1);}
.reveal-left.visible{opacity:1;transform:translateX(0);}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity 0.9s cubic-bezier(0.16,1,0.3,1),transform 0.9s cubic-bezier(0.16,1,0.3,1);}
.reveal-right.visible{opacity:1;transform:translateX(0);}
.reveal-scale{opacity:0;transform:scale(0.93);transition:opacity 1s cubic-bezier(0.16,1,0.3,1),transform 1s cubic-bezier(0.16,1,0.3,1);}
.reveal-scale.visible{opacity:1;transform:scale(1);}
.delay-1{transition-delay:0.1s;}.delay-2{transition-delay:0.2s;}.delay-3{transition-delay:0.3s;}.delay-4{transition-delay:0.4s;}

/* NAV */
nav{position:sticky;top:0;z-index:100;background:rgba(14,12,31,0.95);backdrop-filter:blur(24px);border-bottom:1px solid rgba(201,168,76,0.15);padding:0 24px;height:52px;display:flex;align-items:center;justify-content:space-between;}
.nav-logo{color:#C9A84C;font-size:10px;letter-spacing:3px;font-weight:700;}
.nav-links{display:flex;gap:24px;}
.nav-links a{color:rgba(255,255,255,0.55);font-size:11px;letter-spacing:1px;text-decoration:none;}
.nav-links a:hover{color:#C9A84C;}
.nav-cta{background:#C9A84C;color:#0E0C1F;font-size:10px;letter-spacing:1px;padding:8px 16px;border:none;cursor:pointer;font-weight:700;border-radius:24px;white-space:nowrap;}

/* HERO */
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:100px 32px 80px;background:#0E0C1F;position:relative;overflow:hidden;}
.hero-glow{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(201,168,76,0.07) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;}
.hero-logo{width:160px;margin:0 auto 44px;opacity:0;animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 0.2s forwards;display:block;}
.hero-eyebrow{color:#C9A84C;font-size:10px;letter-spacing:4px;font-weight:500;margin-bottom:24px;display:flex;align-items:center;justify-content:center;gap:14px;opacity:0;animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 0.4s forwards;}
.hero-eyebrow::before,.hero-eyebrow::after{content:'';display:inline-block;width:32px;height:1px;background:#C9A84C;opacity:0.4;}
.hero-h{font-size:52px;line-height:1.0;font-weight:700;letter-spacing:-2px;margin-bottom:10px;color:#fff;opacity:0;animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 0.55s forwards;}
.hero-h em{color:#C9A84C;font-style:normal;}
.hero-sub{font-size:18px;color:rgba(255,255,255,0.38);font-weight:300;margin-bottom:32px;opacity:0;animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 0.7s forwards;}
.hero-p{font-size:14px;color:rgba(255,255,255,0.48);max-width:440px;line-height:1.85;margin:0 auto 48px;opacity:0;animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 0.85s forwards;}
.hero-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;opacity:0;animation:fadeUp 1.2s cubic-bezier(0.16,1,0.3,1) 1s forwards;}
.btn-gold{background:#C9A84C;color:#0E0C1F;padding:14px 30px;font-size:13px;font-weight:700;border:none;cursor:pointer;border-radius:32px;}
.btn-out{background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.18);color:#fff;padding:14px 30px;font-size:13px;cursor:pointer;border-radius:32px;}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}

/* FULL PHOTO */
.full-photo{width:100%;height:480px;overflow:hidden;position:relative;}
.full-photo img{width:100%;height:100%;object-fit:cover;filter:brightness(0.62);transform:scale(1.06);transition:transform 1.6s cubic-bezier(0.16,1,0.3,1);}
.full-photo.visible img{transform:scale(1);}
.full-photo-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding:40px 32px;background:linear-gradient(to top,rgba(14,12,31,0.9) 0%,transparent 55%);}
.fpo-tag{color:#C9A84C;font-size:9px;letter-spacing:4px;margin-bottom:8px;}
.fpo-text{color:#fff;font-size:24px;font-weight:300;letter-spacing:-0.3px;}

/* STATS */
.stats-section{background:#14112A;padding:56px 24px;border-top:1px solid rgba(201,168,76,0.1);}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(201,168,76,0.12);}
.s-cell{padding:28px 16px;border-right:1px solid rgba(201,168,76,0.12);text-align:center;}
.s-cell:last-child{border-right:none;}
.s-num{font-size:40px;font-weight:700;color:#C9A84C;letter-spacing:-2px;line-height:1;}
.s-lbl{font-size:8px;color:rgba(255,255,255,0.3);letter-spacing:2px;margin-top:8px;}

/* SPLIT */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:480px;}
.split-img{overflow:hidden;}
.split-img img{width:100%;height:100%;object-fit:cover;object-position:center center;filter:brightness(0.62) saturate(0.85);display:block;}
.split-text{background:#1C1735;padding:60px 40px;display:flex;flex-direction:column;justify-content:center;}
.sec-eye{color:#C9A84C;font-size:9px;letter-spacing:4px;margin-bottom:22px;}
.split-h{font-size:30px;font-weight:700;line-height:1.15;color:#fff;margin-bottom:20px;letter-spacing:-0.5px;}
.split-body{font-size:14px;color:rgba(255,255,255,0.48);line-height:1.9;}
.pull-quote{margin-top:28px;padding-left:20px;border-left:2px solid #C9A84C;font-size:15px;color:rgba(255,255,255,0.82);line-height:1.75;font-weight:300;font-style:italic;}

/* EVENTO */
.evento-section{background:#1C1735;padding:80px 72px;border-top:1px solid rgba(201,168,76,0.12);}
.evento-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.evento-h{font-size:48px;font-weight:700;letter-spacing:-2px;color:#fff;line-height:1.0;margin-bottom:48px;}
.evento-h em{color:#C9A84C;font-style:normal;}
.ev-list{display:flex;flex-direction:column;}
.ev-row{display:grid;grid-template-columns:120px 1fr;padding:24px 0;border-bottom:1px solid rgba(201,168,76,0.1);}
.ev-row:first-child{border-top:1px solid rgba(201,168,76,0.1);}
.ev-key{font-size:9px;color:rgba(255,255,255,0.3);letter-spacing:3px;padding-top:3px;}
.ev-val{font-size:16px;color:#fff;font-weight:400;line-height:1.6;}
.ev-val-sub{font-size:13px;color:rgba(255,255,255,0.5);margin-top:4px;line-height:1.6;}
.ev-formal{display:inline-block;border:1px solid rgba(201,168,76,0.4);color:#C9A84C;font-size:11px;letter-spacing:3px;padding:7px 16px;margin-top:2px;}
.org-right{padding-top:88px;}
.org-label{font-size:9px;color:rgba(255,255,255,0.25);letter-spacing:4px;margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid rgba(201,168,76,0.1);}
.org-list{display:flex;flex-direction:column;}
.org-item{font-size:14px;color:rgba(255,255,255,0.55);padding:13px 0;border-bottom:1px solid rgba(255,255,255,0.05);letter-spacing:0.5px;transition:color 0.2s;}
.org-item:hover{color:#C9A84C;}
.org-item::before{content:'—';color:rgba(201,168,76,0.3);margin-right:14px;font-size:12px;}

/* HISTORIA */
.historia-section{background:#0E0C1F;padding:80px 72px;}
.historia-h{font-size:48px;font-weight:700;letter-spacing:-2px;color:#fff;line-height:1.05;margin-bottom:14px;}
.historia-h em{color:#C9A84C;font-style:normal;}
.historia-sub{font-size:14px;color:rgba(255,255,255,0.4);line-height:1.7;max-width:500px;margin-bottom:52px;}
.hist-hero{width:100%;height:480px;overflow:hidden;position:relative;margin-bottom:3px;}
.hist-hero img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:brightness(0.7);transform:scale(1.04);transition:transform 1.4s cubic-bezier(0.16,1,0.3,1);}
.hist-hero.visible img{transform:scale(1);}
.hist-cap{position:absolute;bottom:0;left:0;right:0;padding:40px 40px;background:linear-gradient(to top,rgba(14,12,31,0.9),transparent);}
.hist-cap-tag{color:#C9A84C;font-size:9px;letter-spacing:4px;margin-bottom:8px;}
.hist-cap-txt{color:#fff;font-size:22px;font-weight:300;letter-spacing:-0.3px;}
.hist-grid2{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-bottom:3px;}
.hist-grid3{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.hg-wrap{position:relative;height:320px;overflow:hidden;}
.hg-wrap img{width:100%;height:100%;object-fit:cover;filter:brightness(0.65);display:block;transition:transform 0.7s cubic-bezier(0.16,1,0.3,1);}
.hg-wrap:hover img{transform:scale(1.04);}
.hg-cap{position:absolute;bottom:0;left:0;right:0;padding:24px 28px;background:linear-gradient(to top,rgba(14,12,31,0.9),transparent);}
.hg-tag{color:#C9A84C;font-size:9px;letter-spacing:4px;margin-bottom:5px;}
.hg-txt{color:#fff;font-size:14px;font-weight:300;}
.hist-campeon{width:100%;height:440px;overflow:hidden;position:relative;margin-top:3px;}
.hist-campeon img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:brightness(0.68);transform:scale(1.04);transition:transform 1.4s cubic-bezier(0.16,1,0.3,1);}
.hist-campeon.visible img{transform:scale(1);}

/* 2+4 FOTOS */
.two-photos{display:grid;grid-template-columns:1fr 1fr;gap:3px;}
.ph-wrap{position:relative;height:380px;overflow:hidden;}
.ph-wrap img{width:100%;height:100%;object-fit:cover;filter:brightness(0.58) saturate(0.82);display:block;transition:transform 0.7s cubic-bezier(0.16,1,0.3,1);}
.ph-wrap:hover img{transform:scale(1.04);}
.ph-cap{position:absolute;bottom:0;left:0;right:0;padding:28px 32px;background:linear-gradient(to top,rgba(14,12,31,0.88),transparent);}
.ph-cap-tag{color:#C9A84C;font-size:9px;letter-spacing:4px;margin-bottom:6px;}
.ph-cap-txt{color:#fff;font-size:16px;font-weight:300;}
.four-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;}
.fp-wrap{position:relative;height:240px;overflow:hidden;}
.fp-wrap img{width:100%;height:100%;object-fit:cover;filter:brightness(0.52) saturate(0.8);display:block;transition:transform 0.7s cubic-bezier(0.16,1,0.3,1);}
.fp-wrap:hover img{transform:scale(1.06);}
.fp-cap{position:absolute;bottom:0;left:0;right:0;padding:16px 18px;background:linear-gradient(to top,rgba(14,12,31,0.9),transparent);}
.fp-cap-tag{color:#C9A84C;font-size:8px;letter-spacing:3px;margin-bottom:4px;}
.fp-cap-txt{color:#fff;font-size:12px;font-weight:300;}

/* LOGO */
.logo-section{background:#14112A;padding:72px 24px;display:flex;flex-direction:column;align-items:center;border-top:1px solid rgba(201,168,76,0.1);border-bottom:1px solid rgba(201,168,76,0.1);}
.logo-section-eyebrow{color:rgba(255,255,255,0.2);font-size:9px;letter-spacing:4px;margin-bottom:36px;text-align:center;}
.logo-section img{width:180px;}
.logo-section-sub{color:rgba(255,255,255,0.2);font-size:10px;letter-spacing:4px;margin-top:32px;}

/* PROGRAMA */
.prog-section{background:#0E0C1F;padding:80px 72px;}
.prog-eyebrow{color:#C9A84C;font-size:9px;letter-spacing:4px;margin-bottom:24px;}
.prog-h{font-size:48px;font-weight:700;letter-spacing:-2px;color:#fff;max-width:560px;margin-bottom:52px;line-height:1.05;}
.prog-h em{color:#C9A84C;font-style:normal;}
.prog-list{border-top:1px solid rgba(201,168,76,0.1);}
.p-row{display:grid;grid-template-columns:90px 1fr 180px;align-items:center;padding:22px 0;border-bottom:1px solid rgba(201,168,76,0.07);opacity:0;transform:translateX(-20px);transition:opacity 0.7s cubic-bezier(0.16,1,0.3,1),transform 0.7s cubic-bezier(0.16,1,0.3,1);}
.p-row.visible{opacity:1;transform:translateX(0);}
.p-time{font-size:13px;color:#C9A84C;font-weight:600;letter-spacing:1px;}
.p-name{font-size:15px;color:#fff;}
.p-loc{font-size:11px;color:rgba(255,255,255,0.28);text-align:right;letter-spacing:1px;}

/* RSVP */
.rsvp-section{background:#1C1735;padding:80px 72px;}
.rsvp-eyebrow{color:#C9A84C;font-size:9px;letter-spacing:4px;margin-bottom:24px;}
.rsvp-h{font-size:48px;font-weight:700;letter-spacing:-2px;color:#fff;max-width:540px;margin-bottom:52px;line-height:1.05;}
.rsvp-h em{color:#C9A84C;font-style:normal;}
.form-wrap{max-width:540px;}
.inv-card{background:rgba(201,168,76,0.06);border:1px solid rgba(201,168,76,0.22);border-radius:14px;padding:22px 24px;margin-bottom:32px;}
.inv-tag{font-size:9px;color:#C9A84C;letter-spacing:4px;margin-bottom:8px;}
.inv-n{font-size:16px;color:#fff;font-weight:700;letter-spacing:1px;}
.inv-c{font-size:12px;color:rgba(255,255,255,0.35);margin-top:4px;}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.fg{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;}
.fg label{font-size:9px;color:rgba(255,255,255,0.35);letter-spacing:3px;}
.fg input,.fg select{background:rgba(255,255,255,0.05);border:1px solid rgba(201,168,76,0.15);border-radius:10px;color:#fff;padding:13px 16px;font-size:14px;outline:none;width:100%;transition:border-color 0.2s;}
.fg input:focus,.fg select:focus{border-color:rgba(201,168,76,0.6);}
.fg input::placeholder{color:rgba(255,255,255,0.2);}
.fg select option{background:#1C1735;}
.btn-send{width:100%;background:#C9A84C;color:#0E0C1F;padding:16px;font-size:14px;font-weight:700;border:none;cursor:pointer;border-radius:32px;margin-top:6px;letter-spacing:1px;}

/* FOOTER */
footer{background:#0E0C1F;border-top:1px solid rgba(201,168,76,0.12);padding:28px 32px;display:flex;flex-direction:column;gap:8px;}
.f-logo{color:#C9A84C;font-size:10px;letter-spacing:3px;font-weight:600;}
.f-date{font-size:10px;color:rgba(255,255,255,0.2);letter-spacing:2px;}

/* ================================
   RESPONSIVE MOBILE
================================ */
@media(max-width:768px){

  /* NAV mobile */
  nav{padding:0 20px;}
  .nav-links{display:none;}
  .nav-logo{font-size:9px;letter-spacing:2px;}
  .nav-cta{font-size:10px;padding:7px 14px;}

  /* HERO mobile */
  .hero{padding:80px 24px 72px;min-height:100svh;}
  .hero-logo{width:130px;margin-bottom:36px;}
  .hero-eyebrow{font-size:8px;letter-spacing:3px;gap:10px;}
  .hero-eyebrow::before,.hero-eyebrow::after{width:24px;}
  .hero-h{font-size:42px;letter-spacing:-1.5px;}
  .hero-sub{font-size:16px;}
  .hero-p{font-size:13px;}
  .hero-btns{flex-direction:column;align-items:center;gap:10px;}
  .btn-gold,.btn-out{width:100%;max-width:280px;text-align:center;}

  /* FOTO FULL */
  .full-photo{height:300px;}
  .fpo-text{font-size:20px;}

  /* STATS 2x2 mobile */
  .stats-section{padding:40px 20px;}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .s-cell{padding:24px 16px;}
  .s-cell:nth-child(2){border-right:none;}
  .s-cell:nth-child(3){border-top:1px solid rgba(201,168,76,0.12);border-right:1px solid rgba(201,168,76,0.12);}
  .s-cell:nth-child(4){border-top:1px solid rgba(201,168,76,0.12);border-right:none;}
  .s-num{font-size:36px;}
  .s-lbl{font-size:7px;}

  /* SPLIT 1 col mobile */
  .split{grid-template-columns:1fr;}
  .split-img{height:clamp(300px,52vw,380px);}
  .split-img img{object-position:center 30%;}
  .split-text{padding:44px 24px;}
  .split-h{font-size:26px;}
  .split-body{font-size:13px;}
  .pull-quote{font-size:14px;}

  /* EVENTO mobile */
  .evento-section{padding:56px 24px;}
  .evento-inner{grid-template-columns:1fr;gap:48px;}
  .evento-h{font-size:34px;margin-bottom:36px;}
  .ev-row{grid-template-columns:90px 1fr;padding:18px 0;}
  .ev-key{font-size:8px;}
  .ev-val{font-size:14px;}
  .ev-val-sub{font-size:12px;}
  .org-right{padding-top:0;}
  .org-label{font-size:8px;}
  .org-item{font-size:13px;padding:11px 0;}

  /* HISTORIA mobile */
  .historia-section{padding:56px 24px;}
  .historia-h{font-size:36px;}
  .historia-sub{font-size:13px;margin-bottom:40px;}
  .hist-hero{height:280px;}
  .hist-cap-txt{font-size:18px;}
  .hist-cap{padding:28px 24px;}
  .hist-grid2,.hist-grid3{grid-template-columns:1fr;}
  .hg-wrap{height:260px;}
  .hist-campeon{height:280px;}

  /* 2 FOTOS mobile */
  .two-photos{grid-template-columns:1fr;}
  .ph-wrap{height:280px;}

  /* 4 FOTOS 2x2 mobile */
  .four-photos{grid-template-columns:1fr 1fr;}
  .fp-wrap{height:200px;}

  /* LOGO mobile */
  .logo-section{padding:56px 24px;}
  .logo-section img{width:150px;}

  /* PROGRAMA mobile */
  .prog-section{padding:56px 24px;}
  .prog-h{font-size:34px;margin-bottom:40px;}
  .p-row{grid-template-columns:70px 1fr;gap:0;padding:18px 0;}
  .p-loc{display:none;}
  .p-time{font-size:12px;}
  .p-name{font-size:13px;}

  /* RSVP mobile */
  .rsvp-section{padding:56px 24px;}
  .rsvp-h{font-size:34px;margin-bottom:40px;}
  .f2{grid-template-columns:1fr;}

  /* FOOTER mobile */
  footer{padding:24px 20px;}
  .f-logo{font-size:9px;}
  .f-date{font-size:9px;}
}

@media(max-width:400px){
  .hero-h{font-size:36px;}
  .s-num{font-size:30px;}
}
/* ---- RSVP DYNAMIC STATES ---- */
.rsvp-loading{text-align:center;padding:48px 20px;}
.rsvp-loading p{font-size:13px;color:rgba(255,255,255,0.35);letter-spacing:2px;}
.rsvp-empty-wrap{text-align:center;padding:40px 20px;}
.rsvp-empty-wrap .inv-tag{margin-bottom:14px;}
.rsvp-empty-wrap p{font-size:13px;color:rgba(255,255,255,0.4);line-height:1.8;max-width:360px;margin:0 auto;}
.rsvp-err{display:flex;align-items:flex-start;gap:12px;background:rgba(168,84,47,0.1);border:1px solid rgba(168,84,47,0.3);border-radius:12px;padding:16px 18px;margin-bottom:20px;font-size:13px;color:rgba(255,255,255,0.75);}
.rsvp-err-dot{width:7px;height:7px;border-radius:50%;background:#A8542F;flex-shrink:0;margin-top:4px;}
.rsvp-success-wrap{text-align:center;padding:32px 20px;}
.rsvp-success-check{width:56px;height:56px;border-radius:50%;border:1px solid #C9A84C;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}
.rsvp-success-h{font-size:22px;font-weight:700;letter-spacing:-0.5px;color:#fff;margin-bottom:8px;}
.rsvp-success-p{font-size:13px;color:rgba(255,255,255,0.4);line-height:1.75;}
.btn-send:disabled{opacity:0.45;cursor:not-allowed;}
@media(max-width:768px){
  .rsvp-section{padding:56px 24px;}
  .rsvp-h{font-size:32px;}
  .f2{grid-template-columns:1fr;}
}

/* Utilidades agregadas para quitar estilos inline */
.is-hidden{display:none!important;}
.rsvp-extra{font-size:12px;color:rgba(255,255,255,0.3);margin-top:8px;}
.gold-text{color:#C9A84C;}
.mt-18{margin-top:18px;}

.success-actions{display:flex;flex-direction:column;gap:12px;margin-top:18px;}
.btn-calendar{width:100%;background:transparent;color:#fff;padding:15px 16px;font-size:14px;font-weight:700;border:1px solid rgba(201,168,76,0.45);cursor:pointer;border-radius:32px;letter-spacing:1px;transition:background 0.2s,border-color 0.2s,color 0.2s;}
.btn-calendar:hover{background:rgba(201,168,76,0.12);border-color:rgba(201,168,76,0.8);color:#C9A84C;}
.calendar-note{font-size:11px;color:rgba(255,255,255,0.32);line-height:1.65;margin-top:14px;}


@media(max-width:420px){
  .split-img{height:300px;}
  .split-img img{object-position:center 28%;}
}
