:root{--ink:#17121d;--ivory:#f7f3ee;--milk:#eee6f6;--lilac:#cdb6e8;--violet:#7e5aa7;--deep:#171020;--line:rgba(23,18,29,.16)}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip;max-width:100%}body{margin:0;background:var(--ivory);color:var(--ink);font-family:Manrope,Arial,sans-serif;overflow-x:clip;max-width:100%;min-width:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.noise{position:fixed;inset:0;z-index:99;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}#scene{position:fixed;inset:0;z-index:0;pointer-events:none}.cursor-orb{position:fixed;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(199,166,232,.22),transparent 68%);filter:blur(10px);pointer-events:none;z-index:1;transform:translate(-50%,-50%)}.kicker{font-size:11px;letter-spacing:.28em;font-weight:600}.intro{position:fixed;inset:0;z-index:200;background:transparent;color:#fff;display:grid;place-items:center;overflow:hidden;isolation:isolate}.intro__curtain{position:absolute;top:0;bottom:0;width:50.5%;z-index:-2;background:linear-gradient(145deg,#171020 0%,#21142d 58%,#171020 100%);will-change:transform}.intro__curtain--left{left:0;border-right:1px solid rgba(255,255,255,.055)}.intro__curtain--right{right:0;border-left:1px solid rgba(255,255,255,.055)}.intro__halo{position:absolute;z-index:-1;width:min(72vw,900px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(193,150,231,.28),transparent 62%);filter:blur(12px)}.intro>.kicker{position:absolute;top:6vh;left:6vw}.intro__type{position:relative;z-index:2;text-align:center;line-height:.76}.intro__type span,.intro__type strong{display:block;font-family:Italiana,serif;font-size:clamp(64px,12vw,190px);font-weight:400;letter-spacing:-.055em}.intro__type strong{font-style:italic;color:#d9c3ee}.intro__xv{position:absolute;font-family:Italiana,serif;font-size:clamp(260px,45vw,680px);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.08);line-height:1}.intro__line{position:absolute;bottom:11vh;left:6vw;font-family:Italiana,serif;font-size:clamp(20px,2.2vw,32px)}.enter{position:absolute;right:6vw;bottom:8vh;width:130px;height:130px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:.35s}.enter:hover{background:#fff;color:#171020;transform:scale(1.05)}.enter i{font-size:22px}.topbar{position:fixed;top:0;left:0;width:100%;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:24px 4vw;mix-blend-mode:difference;color:#fff}.brand{font-family:Italiana,serif;font-size:24px}.brand span{color:#cbb1e6}.topbar nav{display:flex;gap:28px;font-size:12px}.mini-cta{font-size:12px;display:flex;gap:8px;align-items:center}.hero{height:100svh;min-height:720px;position:relative;display:flex;align-items:center;padding:10vh 7vw;overflow:hidden;background:linear-gradient(135deg,#f6f0e9,#e8ddf3)}.hero__ghost{position:absolute;right:-2vw;top:46%;transform:translateY(-50%);font-family:Italiana,serif;font-size:clamp(300px,48vw,760px);line-height:.7;color:rgba(255,255,255,.5);letter-spacing:-.08em}.hero__halo{position:absolute;right:8vw;top:10%;width:42vw;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#d5bceb 0,rgba(213,188,235,.2) 48%,transparent 70%)}.hero__copy{position:relative;z-index:4}.hero h1{font-family:Italiana,serif;font-size:clamp(76px,11vw,170px);line-height:.72;margin:30px 0 42px;letter-spacing:-.06em;font-weight:400}.hero h1 span,.hero h1 strong{display:block;font-weight:400}.hero h1 strong{margin-left:10vw;color:#765399;font-style:italic}.lead{font-family:Italiana,serif;font-size:clamp(19px,2vw,29px);line-height:1.45}.date-lockup{display:flex;align-items:end;gap:14px;margin-top:50px}.date-lockup b{font-family:Italiana,serif;font-size:46px;font-weight:400}.date-lockup span{font-size:11px;letter-spacing:.2em;padding-bottom:9px}.hero__art{position:absolute;right:7vw;bottom:8vh;width:min(34vw,480px);aspect-ratio:1}.glass-sphere{position:absolute;inset:18%;border-radius:50%;background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(188,146,225,.16));box-shadow:inset -30px -30px 70px rgba(105,69,139,.18),inset 20px 20px 50px rgba(255,255,255,.7),0 35px 80px rgba(84,51,112,.12);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.6)}.petal{position:absolute;width:38%;height:58%;border-radius:100% 0 100% 0;background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(181,139,218,.35));box-shadow:0 20px 60px rgba(86,54,112,.1);transform-origin:100% 100%}.p1{left:30%;top:-4%;transform:rotate(8deg)}.p2{right:-2%;top:24%;transform:rotate(80deg)}.p3{left:17%;bottom:-6%;transform:rotate(176deg)}.p4{left:-6%;top:25%;transform:rotate(265deg)}.scroll-mark{position:absolute;bottom:5vh;left:50%;display:flex;gap:12px;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:.18em}.statement{min-height:110vh;background:#f8f5f0;position:relative;padding:18vh 7vw;overflow:hidden}.statement__small{letter-spacing:.3em;font-size:11px}.statement h2{margin:8vh 0 0;font-family:Italiana,serif;font-weight:400;line-height:.82}.statement h2 span{display:block;font-size:clamp(90px,18vw,280px);letter-spacing:-.07em}.statement h2 em{display:block;font-size:clamp(48px,8vw,120px);color:#8b69ac;margin-left:30vw;font-weight:400}.statement__end{margin:10vh 0 0 50vw;max-width:340px;font-family:Italiana,serif;font-size:27px;line-height:1.35}.signature{position:absolute;right:-2vw;bottom:1vh;font-family:Italiana,serif;font-style:italic;font-size:clamp(100px,18vw,260px);color:rgba(124,86,158,.08);transform:rotate(-8deg)}.moments{background:#ddd0e9;padding:14vh 0 0;position:relative}.moments__intro{padding:0 7vw 12vh}.moments h2,.padrinos h2,.dress h2,.night h2,.rsvp h2{font-family:Italiana,serif;font-size:clamp(64px,9vw,140px);line-height:.82;font-weight:400;margin:25px 0}.moments h2 em,.padrinos h2 em,.dress h2 em,.night h2 em,.rsvp h2 em{font-weight:400;color:#765399}.moment-track{border-top:1px solid rgba(23,18,29,.15)}.moment{min-height:70vh;display:grid;grid-template-columns:1.1fr .3fr 1fr;align-items:center;padding:7vw;border-bottom:1px solid rgba(23,18,29,.15);position:relative;overflow:hidden}.moment__big{font-family:Italiana,serif;font-size:clamp(190px,30vw,470px);line-height:.7;color:rgba(255,255,255,.42);letter-spacing:-.09em}.moment__icon{width:92px;height:92px;border:1px solid rgba(23,18,29,.22);border-radius:50%;display:grid;place-items:center}.moment__icon i{font-size:42px}.moment__copy span{font-size:12px;letter-spacing:.2em}.moment__copy h3{font-family:Italiana,serif;font-size:clamp(36px,4vw,64px);font-weight:400;margin:16px 0}.moment__copy p{opacity:.7}.moment__copy a{display:inline-flex;gap:8px;margin-top:20px;font-size:12px;border-bottom:1px solid;padding-bottom:6px}.padrinos{min-height:100vh;background:#f5f0eb;padding:12vh 7vw;display:grid;grid-template-columns:1fr 1.2fr;align-items:center;position:relative;overflow:hidden}.orbit-art{width:min(42vw,540px);aspect-ratio:1;position:relative;display:grid;place-items:center}.orbit{position:absolute;border:1px solid rgba(119,82,153,.25);border-radius:50%;inset:10%}.o2{inset:23%;transform:rotate(60deg);border-radius:44% 56% 48% 52%}.o3{inset:35%;border-color:rgba(119,82,153,.45)}.orbit-art span{font-family:Italiana,serif;font-size:120px;color:#765399}.names{margin-top:55px}.names p{font-family:Italiana,serif;font-size:28px;margin:10px 0}.names i{font-size:26px;color:#8d67af}.thanks{position:absolute;bottom:-4vh;right:-1vw;font-family:Italiana,serif;font-size:clamp(120px,20vw,300px);font-style:italic;color:rgba(124,86,158,.07)}.dress{padding:14vh 7vw 18vh;background:#efe7f4}.dress__head{max-width:800px}.dress__head>p:last-child{max-width:530px;line-height:1.7}.palette{display:flex;align-items:flex-end;justify-content:center;gap:clamp(8px,1.2vw,18px);margin-top:10vh;min-height:420px;position:relative;isolation:isolate}.palette::before{content:'';position:absolute;left:50%;top:50%;width:min(70vw,900px);height:280px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(166,124,203,.18),transparent 68%);filter:blur(18px);z-index:-1;pointer-events:none}.swatch-card{width:18%;max-width:220px;height:300px;opacity:1;visibility:visible;border-radius:120px 120px 18px 18px;padding:28px 24px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 30px 70px rgba(40,25,52,.10),inset 0 1px 0 rgba(255,255,255,.38);border:1px solid rgba(44,30,55,.07);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s;position:relative;overflow:hidden}.swatch-card::after{content:'';position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.22),transparent 42%);pointer-events:none}.swatch-card:hover{box-shadow:0 42px 90px rgba(40,25,52,.15)}.swatch-card:hover{transform:translateY(-22px) rotate(-2deg)}.swatch-card span{font-size:10px;letter-spacing:.18em}.swatch-card b{font-family:Italiana,serif;font-size:27px;font-weight:400}.cream{background:#f3eadb}.black{background:#17151a;color:#fff;transform:rotate(-5deg)}.rose{background:#e8cbd0;transform:rotate(4deg)}.navy{background:#25283a;color:#fff;transform:rotate(-3deg)}.lilac{height:380px;background:linear-gradient(160deg,rgba(255,255,255,.78),rgba(190,151,226,.75));border:1px solid rgba(255,255,255,.75);backdrop-filter:blur(10px);transform:rotate(5deg);color:#5c3c78}.lilac i{position:absolute;top:35px;right:32px;font-size:38px}.lilac small{margin-top:4px}.night{background:#171020;color:#f7f2fa;padding:8vh 0 15vh;overflow:hidden;position:relative}.night__marquee{display:flex;width:max-content;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);padding:25px 0;font-family:Italiana,serif;font-size:clamp(34px,5vw,72px);color:#d2b7e8}.night__marquee span{white-space:nowrap}.count-wrap{padding:15vh 7vw 0;display:grid;grid-template-columns:1fr 1.3fr;gap:7vw;align-items:end}.night h2 em{color:#c7a8df}.clock{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}.clock div{padding:35px clamp(18px,2.5vw,38px) 26px;border-right:1px solid rgba(255,255,255,.18)}.clock div:last-child{border-right:0}.clock strong{display:block;font-family:Italiana,serif;font-size:clamp(55px,7vw,105px);font-weight:400;line-height:1}.clock span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.6}.rsvp{background:#f6f1eb;padding:15vh 7vw;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.rsvp__head>p:last-child{max-width:390px;line-height:1.7}form{padding-top:4vh}form>label{display:block;border-bottom:1px solid var(--line);padding:22px 0}form>label>span,legend{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.18em;margin-bottom:12px}input,textarea{border:0;background:transparent;width:100%;outline:none;font-family:Italiana,serif;font-size:25px;color:var(--ink)}textarea{min-height:80px;resize:vertical}fieldset{border:0;padding:25px 0;margin:0;border-bottom:1px solid var(--line)}.choice{display:flex;align-items:center;gap:12px;margin:12px 0;cursor:pointer}.choice input{display:none}.choice>span{width:24px;height:24px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}.choice>span i{opacity:0}.choice input:checked+span{background:#765399;color:#fff}.choice input:checked+span i{opacity:1}.stepper{display:flex;align-items:center;gap:18px}.stepper button{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:transparent}.stepper input{width:50px;text-align:center}.submit{margin-top:35px;width:100%;padding:22px 25px;background:#171020;color:#fff;border:0;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.submit i{font-size:22px}.status{font-size:13px}.rsvp small{opacity:.5}footer{background:#171020;color:#fff;padding:40px 7vw;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.12em}

@media(max-width:800px){
html,body{width:100%;max-width:100%;overflow-x:clip}
main,section,header,footer{max-width:100%;min-width:0}
.cursor-orb,.topbar nav{display:none}
.topbar{padding:18px 20px}.brand{font-size:21px}
.mini-cta{font-size:0;width:42px;height:42px;justify-content:center;border:1px solid rgba(255,255,255,.25);border-radius:50%}.mini-cta i{font-size:20px}
.kicker{font-size:10px;letter-spacing:.22em;line-height:1.5}
.intro>.kicker{top:28px;left:20px;right:20px}.intro__halo{width:130vw;max-width:none}.intro__type{width:100%;padding:0 20px}.intro__type span,.intro__type strong{font-size:clamp(62px,19vw,96px);letter-spacing:-.065em}.intro__xv{font-size:min(115vw,520px)}.intro__line{left:20px;right:145px;bottom:7vh;font-size:19px;line-height:1.25}.enter{width:104px;height:104px;right:20px;bottom:5.5vh;font-size:11px}
.hero{height:auto;min-height:100svh;padding:118px 20px 88px;align-items:flex-start}.hero__copy{width:100%;max-width:100%}.hero__ghost{font-size:min(82vw,360px);right:-10vw;top:54%;letter-spacing:-.1em}.hero__halo{width:95vw;right:-32vw;top:18%}.hero h1{font-size:clamp(70px,21vw,104px);line-height:.78;margin:24px 0 30px;max-width:100%}.hero h1 strong{margin-left:8vw}.lead{font-size:20px;line-height:1.4;max-width:310px}.date-lockup{margin-top:34px;gap:11px}.date-lockup b{font-size:38px}.hero__art{width:min(68vw,290px);right:-14vw;bottom:5vh;opacity:.72}.scroll-mark{left:20px;bottom:28px}
.statement{min-height:auto;padding:110px 20px 125px}.statement h2{margin-top:56px;max-width:100%}.statement h2 span{font-size:clamp(82px,24vw,120px);line-height:.82}.statement h2 em{font-size:clamp(50px,14vw,72px);margin-left:12vw}.statement__end{margin:65px 0 0 auto;width:min(76%,320px);font-size:23px}.signature{right:-10px;bottom:12px;font-size:30vw}
.moments{padding-top:100px}.moments__intro{padding:0 20px 76px}.moments h2,.padrinos h2,.dress h2,.night h2,.rsvp h2{font-size:clamp(62px,18vw,88px);line-height:.86;overflow-wrap:anywhere}
.moment{min-height:610px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:54px 20px 48px;isolation:isolate}.moment__big{font-size:min(54vw,230px);position:absolute;top:42px;right:10px;line-height:.75;z-index:-1;transform:none!important}.moment__icon{width:68px;height:68px;flex:0 0 68px;background:rgba(255,255,255,.16);backdrop-filter:blur(8px)}.moment__icon i{font-size:31px}.moment__copy{width:100%;max-width:330px;align-self:flex-start}.moment__copy h3{font-size:clamp(39px,11vw,52px);line-height:.96;margin:13px 0}.moment__copy p{line-height:1.55}.moment__copy a{padding:10px 0 7px}
.padrinos{min-height:auto;grid-template-columns:1fr;padding:100px 20px 125px}.orbit-art{width:min(78vw,330px);margin:0 auto 35px}.orbit-art span{font-size:86px}.padrinos__copy{margin-top:0}.names{margin-top:38px}.names p{font-size:25px;line-height:1.2}.thanks{right:-10px;bottom:0;font-size:32vw}
.dress{padding:105px 20px 120px}.dress__head>p:last-child{font-size:15px;line-height:1.7}.palette{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:64px;min-height:0;overflow:visible;padding:0}.palette::before{width:120vw;height:360px}.swatch-card{width:100%;max-width:none;min-width:0;height:210px;border-radius:90px 90px 18px 18px;padding:22px 18px;transform:none!important;opacity:1!important;visibility:visible!important}.swatch-card:hover{transform:none}.swatch-card b{font-size:24px}.lilac{height:250px;grid-column:1/-1;border-radius:125px 125px 18px 18px}.lilac i{top:26px;right:24px;font-size:32px}
.night{padding:58px 0 110px}.night__marquee{font-size:38px;padding:19px 0;will-change:transform}.count-wrap{grid-template-columns:1fr;gap:42px;padding:92px 20px 0}.clock{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4px}.clock div{min-width:0;padding:24px 20px 20px;border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}.clock div:nth-child(2n){border-right:0}.clock div:nth-last-child(-n+2){border-bottom:0}.clock strong{font-size:clamp(58px,18vw,82px)}.clock span{font-size:9px;letter-spacing:.16em}
.rsvp{grid-template-columns:1fr;gap:30px;padding:105px 20px}.rsvp__head>p:last-child{line-height:1.65}form{padding-top:15px;min-width:0}input,textarea{font-size:23px;max-width:100%}.choice{font-size:14px}.submit{padding:20px}
footer{padding:34px 20px;flex-direction:column;gap:12px;line-height:1.5}
}
@media(max-width:390px){
.hero h1{font-size:20vw}.intro__line{right:128px;font-size:17px}.enter{width:94px;height:94px}.statement h2 span{font-size:23vw}.moment{min-height:570px}.moment__big{font-size:52vw}.palette{gap:9px}.swatch-card{height:190px;padding:20px 15px}.lilac{height:230px}.clock div{padding-left:16px;padding-right:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.cursor-orb,#scene{display:none}}

.intro__type,.intro__xv,.intro__line,.intro>.kicker,.enter{will-change:transform,opacity}
@media(max-width:800px){
  .intro__curtain{width:50.8%}
  .intro__type{z-index:3}
  .intro__xv{z-index:1}
  .enter{z-index:4}
}

/* Ajuste solicitado: únicamente XV más grande. Conserva color, opacidad y posición originales. */
.hero__ghost{font-size:clamp(390px,48vw,760px)}
@media(max-width:800px){.hero__ghost{font-size:min(108vw,470px)}}
@media(max-width:390px){.hero__ghost{font-size:112vw}}

/* V8 — SOLO ajustes móviles solicitados. Desktop permanece intacto. */
@media(max-width:800px){

  /* Firma Geraidi: un poco hacia dentro para que no se corte la i. */
  .signature{
    right:18px;
  }

  /* 03 / 06 / 08: alejarlos del borde derecho. */
  .moment__big{
    right:28px;
  }

  /* Mantener "acompañas?" unido sin alterar el layout desktop.
     Se reduce solo lo necesario en móvil para que el signo no salte solo. */
  .rsvp h2 em{
    white-space:nowrap;
    font-size:.82em;
    letter-spacing:-.04em;
  }

  /* El círculo con G no aporta suficiente en móvil: se elimina SOLO en móvil. */
  .orbit-art{
    display:none;
  }

  .padrinos__copy{
    margin-top:0;
  }
}

@media(max-width:390px){
  .signature{right:16px}
  .moment__big{right:24px}
  .rsvp h2 em{font-size:.76em}
}

/* V9 — únicamente ajustes móviles solicitados */
@media(max-width:800px){

  /* Header: deja de quedarse fijo/sticky en móvil. */
  .topbar{
    position:absolute;
  }

  /* CTA circular: centrado real del icono dentro del círculo. */
  .mini-cta{
    display:grid;
    place-items:center;
    padding:0;
    line-height:1;
  }
  .mini-cta i{
    display:block;
    margin:0;
    line-height:1;
    transform:none;
  }

  /* "Gracias": menor tamaño y separado del borde derecho. */
  .thanks{
    font-size:28vw;
    right:26px;
  }
}

/* V10 — únicamente correcciones móviles solicitadas */
@media(max-width:800px){

  /* Centrado óptico de la flecha dentro del círculo. */
  .mini-cta{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0!important;
    text-indent:0;
  }
  .mini-cta i{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    margin:0!important;
    padding:0!important;
    line-height:1;
    transform:translate(-1px,1px);
  }
  .mini-cta i::before{
    display:block;
    margin:0!important;
    line-height:1;
  }

  .thanks{
    font-size:28vw;
    right:26px;
    margin-bottom:12px;
  }
}

/* V11 — ajuste desktop solicitado */
@media(min-width:801px){
  .signature{
    right:3vw;
  }
}

/* V11.2 — ajuste solicitado únicamente en desktop */
@media(min-width:801px){
  .thanks{
    position:absolute;
    bottom:3vh;
    right:4vw;
  }
}

/* V11.3 — bloquear completamente el fondo mientras el intro está abierto */
html.intro-locked,
body.intro-locked{
  overflow:hidden!important;
  overscroll-behavior:none;
}
body.intro-locked{
  position:fixed;
  width:100%;
  left:0;
  right:0;
  touch-action:none;
}

/* V11.4 — scrollbar personalizado acorde a la invitación */
html{
  scrollbar-width:thin;
  scrollbar-color:#8b63ad #f4eef6;
}
::-webkit-scrollbar{
  width:10px;
}
::-webkit-scrollbar-track{
  background:#f4eef6;
}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#b89bce 0%,#7d579f 100%);
  border:2px solid #f4eef6;
  border-radius:999px;
}
::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#a982c3 0%,#684487 100%);
}
::-webkit-scrollbar-corner{
  background:#f4eef6;
}
@media(max-width:800px){
  ::-webkit-scrollbar{
    width:6px;
  }
}
