:root{--emerald:#0b3d2e;--forest:#0a2a20;--night:#050d1c;--deep:#06231c;--gold:#d9b86c;--gold-soft:#f1dba0;--champagne:#f4e6c8;--ivory:#fbf6ea;--text:#efe7d2;--muted:#c9c1a8;--serif:"Cormorant Garamond","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;--script:"Snell Roundhand","Apple Chancery","Lucida Calligraphy","Segoe Script","Brush Script MT","URW Chancery L",cursive}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--serif);color:var(--text);background:radial-gradient(1200px 700px at 15% -5%,#1a6e5073,#0000 60%),radial-gradient(1000px 800px at 90% 35%,#0e465f66,#0000 60%),radial-gradient(900px 700px at 10% 75%,#145f4661,#0000 60%),linear-gradient(#07281f 0%,#0a2f24 30%,#071a24 65%,#050d1c 100%);background-color:var(--night);flex-direction:column;min-height:100dvh;font-size:clamp(1.08rem,1.5vw + .8rem,1.3rem);line-height:1.65;display:flex;overflow-x:hidden}html{background:#050d1c}main{flex:1 0 auto;overflow:clip}#stars{pointer-events:none;z-index:1;width:100%;height:100%;position:fixed;inset:0}.skip{background:var(--gold);color:#101;z-index:100;border-radius:0 0 8px;padding:.6rem 1rem;position:absolute;top:0;left:-999px}.skip:focus{left:0}main{z-index:2;position:relative}section{text-align:center;flex-direction:column;align-items:center;padding:clamp(3.5rem,11vw,8rem) 1.25rem;display:flex;position:relative}.wrap{width:100%;max-width:640px;margin-inline:auto;position:relative}.eyebrow{letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem;font-size:.82rem}h2{color:var(--champagne);letter-spacing:.04em;font-size:clamp(1.9rem,5vw,2.7rem);font-weight:500;line-height:1.2}.script{font-family:var(--script);font-weight:400}.divider{max-width:320px;color:var(--gold);justify-content:center;align-items:center;gap:.9rem;margin:1.6rem auto;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg,transparent,var(--gold),transparent);flex:1;height:1px}.divider svg{flex:none;width:20px;height:20px}p.lead{color:var(--text);max-width:34em;margin-inline:auto}.card{-webkit-backdrop-filter:blur(6px);background:linear-gradient(160deg,#fff1,#ffffff04);border:1px solid #d9b86c59;border-radius:22px;padding:clamp(1.8rem,5vw,3rem) clamp(1.2rem,4vw,2.6rem);position:relative;box-shadow:0 30px 70px -30px #000000b3,inset 0 0 0 6px #050d1c40,inset 0 0 0 7px #d9b86c1f}.reveal{opacity:0;transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s);transform:translateY(28px)}.reveal.in{opacity:1;transform:none}.hero{justify-content:center;min-height:100svh;padding-top:5rem;padding-bottom:5rem;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(closest-side at 50% 45%,#f1dba024,#0000 70%);position:absolute;inset:0}.hero .eyebrow{animation:1.4s .2s both fadeUp}.hero-title{letter-spacing:.5em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:1.4rem;font-size:clamp(1.1rem,3.2vw,1.5rem);animation:1.4s .5s both fadeUp}.name{font-family:var(--script);background:linear-gradient(180deg,#fff7de 0%,var(--gold-soft) 45%,var(--gold) 100%);color:#0000;filter:drop-shadow(0 4px 22px #d9b86c59);-webkit-background-clip:text;background-clip:text;flex-direction:column;align-items:center;font-size:clamp(3.1rem,13vw,6.6rem);font-weight:400;line-height:1.08;display:flex}.name span{opacity:0;filter:blur(14px);animation:2s cubic-bezier(.2,.7,.2,1) forwards nameIn;display:block;transform:translateY(18px)scale(.97)}.name span:first-child{animation-delay:.9s}.name span:nth-child(2){animation-delay:1.5s}.name span:nth-child(3){animation-delay:2.1s}.hero-sub{color:var(--muted);letter-spacing:.3em;text-transform:uppercase;margin-top:2rem;font-size:.85rem;animation:1.4s 3s both fadeUp}.scroll-cue{color:var(--gold);margin-top:3rem;animation:1.4s 3.4s both fadeUp}.scroll-cue a{color:inherit;letter-spacing:.35em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.5rem;font-size:.75rem;text-decoration:none;display:inline-flex}.scroll-cue svg{width:20px;height:20px;animation:2.4s ease-in-out infinite bob}@keyframes nameIn{to{opacity:1;filter:blur();transform:none}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes bob{50%{transform:translateY(6px)}}.floral{pointer-events:none;z-index:0;opacity:.3;position:absolute}.floral svg{width:100%;height:auto;display:block}.f-tl{transform-origin:0 0;width:min(52vw,330px);animation:9s ease-in-out infinite sway;top:-10px;left:-30px}.f-br{transform-origin:100% 100%;width:min(52vw,330px);animation:11s ease-in-out infinite sway2;bottom:-10px;right:-30px;transform:rotate(180deg)}.f-tr{transform-origin:100% 0;opacity:.55;width:min(34vw,200px);animation:12s ease-in-out -3s infinite sway;top:-10px;right:-30px;transform:scaleX(-1)}.f-bl{transform-origin:0 100%;opacity:.55;width:min(34vw,200px);animation:13s ease-in-out -5s infinite sway2;bottom:-10px;left:-30px;transform:scaleY(-1)}@keyframes sway{50%{transform:rotate(2.2deg)translateY(4px)}}@keyframes sway2{0%,to{transform:rotate(180deg)}50%{transform:rotate(177.8deg)translateY(-4px)}}.f-tr{animation-name:swayTR}.f-bl{animation-name:swayBL}@keyframes swayTR{0%,to{transform:scaleX(-1)rotate(0)}50%{transform:scaleX(-1)rotate(2.4deg)}}@keyframes swayBL{0%,to{transform:scaleY(-1)rotate(0)}50%{transform:scaleY(-1)rotate(2.4deg)}}.butterfly{pointer-events:none;z-index:1;opacity:.85;width:34px;height:34px;position:absolute}.butterfly svg{transform-origin:50%;width:100%;height:100%;animation:.9s ease-in-out infinite flap}.b1{animation:22s ease-in-out infinite drift1;top:22%;left:12%}.b2{width:26px;height:26px;animation:26s ease-in-out infinite drift2;top:62%;right:10%}@keyframes flap{50%{transform:scaleX(.45)}}@keyframes drift1{0%,to{transform:translate(0)rotate(-8deg)}33%{transform:translate(60px,-40px)rotate(10deg)}66%{transform:translate(20px,50px)rotate(-14deg)}}@keyframes drift2{0%,to{transform:translate(0)rotate(8deg)}40%{transform:translate(-70px,30px)rotate(-10deg)}70%{transform:translate(-20px,-50px)rotate(12deg)}}.sparkle{pointer-events:none;width:14px;height:14px;color:var(--gold-soft);opacity:0;animation:4.5s ease-in-out infinite twinkle;position:absolute}.sparkle svg{width:100%;height:100%}@keyframes twinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}50%{opacity:.95;transform:scale(1)rotate(45deg)}}.date-grid{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin-top:1.5rem;display:grid}.date-grid .day,.date-grid .time{letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-size:.9rem}.big-day{font-family:var(--script);color:var(--gold-soft);border-inline:1px solid #d9b86c66;padding:0 .6rem;font-size:clamp(4.5rem,18vw,7.5rem);line-height:1}.date-line{color:var(--ivory);margin-top:1.6rem;font-size:clamp(1.3rem,3.6vw,1.8rem)}.time-line{color:var(--gold-soft);letter-spacing:.2em;margin-top:.4rem}.cd-grid{grid-template-columns:repeat(4,1fr);gap:clamp(.5rem,2vw,1rem);margin-top:2rem;display:grid}.cd-item{background:#050d1c73;border:1px solid #d9b86c59;border-radius:16px;padding:1.1rem .3rem}.cd-num{color:var(--gold-soft);font-variant-numeric:tabular-nums;font-size:clamp(1.9rem,8vw,3.2rem);font-weight:500;line-height:1;display:block}.cd-lab{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:.55rem;font-size:clamp(.62rem,2.3vw,.8rem);display:block}.cd-msg{min-height:2em;font-family:var(--script);color:var(--champagne);margin-top:1.6rem;font-size:clamp(1.6rem,5vw,2.2rem)}.btn{cursor:pointer;font-family:var(--serif);letter-spacing:.14em;text-transform:uppercase;color:#2a1d05;background:linear-gradient(135deg,#f6e4ac,#d9b86c 55%,#b8923f);border:1px solid #fff4cd99;border-radius:999px;justify-content:center;align-items:center;gap:.7rem;margin-top:2rem;padding:1rem 2.2rem;font-size:1.05rem;font-weight:600;text-decoration:none;transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s,filter .5s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 12px 30px -10px #d9b86c8c}.btn:after{content:"";background:linear-gradient(100deg,#0000,#ffffff8c,#0000);width:60%;height:100%;transition:left .9s;position:absolute;top:0;left:-120%;transform:skew(-20deg)}.btn:hover,.btn:focus-visible{filter:brightness(1.05);transform:translateY(-3px);box-shadow:0 18px 38px -10px #f1dba0b3}.btn:hover:after,.btn:focus-visible:after{left:140%}.btn:active{transform:translateY(0)}.btn svg{flex:none;width:20px;height:20px}a:focus-visible,button:focus-visible{outline:3px solid var(--gold-soft);outline-offset:4px}.venue{color:var(--ivory);margin-top:.4rem;font-size:clamp(1.8rem,5vw,2.4rem)}.address{color:var(--muted);margin-top:.8rem;max-width:24em;margin-inline:auto;font-style:normal}.icon-top{width:54px;height:54px;color:var(--gold);margin:0 auto 1.1rem}.dress-code{font-family:var(--script);color:var(--gold-soft);margin:.4rem 0 1rem;font-size:clamp(2.6rem,9vw,3.8rem)}.palette{flex-wrap:wrap;justify-content:center;gap:clamp(2rem,4vw,2rem);margin-top:1.6rem;display:flex}.swatch{flex-direction:column;align-items:center;gap:.7rem;width:59px;display:flex}.dot{border:2px solid #ffffff8c;border-radius:50%;width:68px;height:68px;position:relative;box-shadow:0 8px 22px -8px #000000b3}.dot:after{content:"";background:#fbf6ea;width:84px;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-45deg);box-shadow:0 0 0 1px #00000059}.swatch span{color:var(--champagne);font-size:.92rem;line-height:1.25}.note{color:var(--muted);margin-top:1.4rem;font-size:.95rem}.closing .name-sm{font-family:var(--script);background:linear-gradient(180deg,#fff7de,var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text;margin-top:1rem;font-size:clamp(2.4rem,9vw,4.2rem);line-height:1.15}footer{z-index:2;text-align:center;padding:1rem 1rem calc(1.1rem + env(safe-area-inset-bottom));letter-spacing:.3em;text-transform:uppercase;color:var(--muted);flex-shrink:0;font-size:.8rem;position:relative}.ambient{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.orb{filter:blur(70px);opacity:.38;mix-blend-mode:screen;will-change:transform;border-radius:50%;position:absolute}.orb.o1{background:radial-gradient(circle,#7a3fe0,#0000 65%);width:46vmax;height:46vmax;animation:26s ease-in-out infinite orbA;top:8vh;left:-14vmax}.orb.o2{background:radial-gradient(circle,#2f6bff,#0000 65%);width:40vmax;height:40vmax;animation:31s ease-in-out infinite orbB;top:42vh;right:-14vmax}.orb.o3{opacity:.22;background:radial-gradient(circle,#ff8fc1,#0000 65%);width:34vmax;height:34vmax;animation:36s ease-in-out -9s infinite orbA;bottom:-12vmax;left:18vw}@keyframes orbA{50%{transform:translate(8vw,-6vh)scale(1.12)}}@keyframes orbB{50%{transform:translate(-9vw,7vh)scale(1.1)}}.sky{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fly{will-change:transform;position:absolute;top:0;left:0}.tulle{filter:drop-shadow(0 0 8px);width:100%;height:100%;display:block;overflow:visible}.tulle-flap{transform-origin:50%;animation:flapT var(--fl,1.1s) ease-in-out infinite}@keyframes flapT{0%,to{transform:scaleX(1)}50%{transform:scaleX(.5)}}.c-blue{color:#5f8dff}.c-violet{color:#b57cff}.c-pink{color:#ff9fd0}.c-champ{color:#f1dc9c}.c-aqua{color:#7fe3ea}.corner-bf{pointer-events:none;opacity:.95;width:46px;height:46px;animation:6s ease-in-out infinite bobBf;position:absolute}.corner-bf.tl{top:-18px;left:-12px;transform:rotate(-20deg)}.corner-bf.br{animation-delay:-3s;bottom:-18px;right:-12px;transform:rotate(18deg)}@keyframes bobBf{50%{translate:0 -6px}}.garland{pointer-events:none;z-index:0;transform-origin:50% 0;filter:drop-shadow(0 6px 14px #ff8c7840);width:min(17vw,86px);animation:7s ease-in-out infinite garlandSway;position:absolute;top:-4px}.garland svg{width:100%;height:auto;display:block}.garland.g-l{left:5%}.garland.g-r{animation-delay:-3.5s;right:5%}@keyframes garlandSway{0%,to{transform:rotate(-2.2deg)}50%{transform:rotate(2.2deg)}}.hero .wrap{animation:8s ease-in-out 4s infinite floatY}@keyframes floatY{50%{transform:translateY(-6px)}}.card{transition:transform .7s cubic-bezier(.2,.7,.2,1),box-shadow .7s,border-color .7s}.card:hover{border-color:#f1dba0b3;transform:translateY(-5px);box-shadow:0 36px 70px -28px #7846dc8c,0 0 40px -6px #d9b86c40,inset 0 0 0 6px #050d1c40,inset 0 0 0 7px #d9b86c33}.cd-item{transition:transform .5s,border-color .5s,background .5s}.cd-item:hover{border-color:#ffbedcb3;transform:translateY(-4px)}.cd-num.pulse{animation:.6s ease-out pulse}@keyframes pulse{0%{color:#fff;text-shadow:0 0 18px #ffc8e6e6;transform:scale(1.18)}to{transform:scale(1)}}.heart{pointer-events:none;z-index:50;color:#ffb3d4;width:16px;height:16px;position:fixed;top:0;left:0}.heart svg{width:100%;height:100%}.swatch .dot{transition:transform .5s cubic-bezier(.2,.7,.2,1)}.swatch:hover .dot{transform:scale(1.1)rotate(8deg)}.divider svg{animation:9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=480px){.date-grid{grid-template-columns:1fr;gap:.4rem}.big-day{border:1px solid #d9b86c66;border-inline:0;padding:.3rem 1.5rem}.btn{letter-spacing:.1em;width:100%;padding-inline:1.2rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.orb{opacity:.25}.reveal{opacity:1;transform:none}.name span{opacity:1;filter:none;transform:none}.hero .eyebrow,.hero-title,.hero-sub,.scroll-cue{opacity:1}.sparkle{opacity:.7}#stars{display:none}}#app{display:contents}.sr-only{position:absolute;left:-9999px}button.btn{line-height:inherit}.btn[disabled]{opacity:.6;cursor:progress;filter:none;transform:none}.btn-sec{color:var(--champagne);box-shadow:none;background:0 0;border-color:#d9b86c8c}.btn-sec:hover,.btn-sec:focus-visible{box-shadow:0 12px 30px -14px #d9b86c80}.pantalla{justify-content:center;min-height:100svh}.rsvp-cerrado{color:var(--champagne);margin-top:1.2rem}.dialogo{width:100%;max-width:min(92vw,480px);color:var(--text);background:linear-gradient(160deg,#0d3328,#0a1f2c);border:1px solid #d9b86c73;border-radius:22px;margin:auto;padding:0;box-shadow:0 30px 80px -20px #000c,inset 0 0 0 6px #050d1c40,inset 0 0 0 7px #d9b86c1f}.dialogo::backdrop{-webkit-backdrop-filter:blur(3px);background:#030812b8}.dialogo[open]{animation:.5s cubic-bezier(.2,.7,.2,1) fadeUp}.dialogo-cuerpo{text-align:center;padding:clamp(2.4rem,7vw,3rem) clamp(1.2rem,5vw,2.2rem) clamp(1.6rem,5vw,2.2rem);position:relative}.dialogo-cerrar{z-index:2;width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:1.7rem;line-height:1;position:absolute;top:.5rem;right:.5rem}.dialogo-cerrar:hover{color:var(--gold-soft)}.invitado-nombre{color:var(--ivory);overflow-wrap:anywhere;margin-top:.3rem;font-size:clamp(1.6rem,6vw,2.1rem);font-weight:500;line-height:1.2}.dialogo-pregunta{color:var(--champagne);margin-top:1rem}.opciones{flex-direction:column;gap:.9rem;margin-top:1.6rem;display:flex}.opciones .btn{letter-spacing:.1em;width:100%;margin-top:0;padding-inline:1.2rem}.aviso-error{color:#ffc2c2;margin-top:1.2rem;font-size:.95rem}.dialogo-mensaje{color:var(--ivory)}.dialogo-mensaje+.btn{width:100%}:root{--lavanda:#c9b6ff;--tinta-lavanda:#1d1842;--cafe:#2a1d05}.dialogo{overflow:auto}.dialogo.no{background:linear-gradient(160deg,#1a1840,#0c1430);border-color:#c9b6ff80;box-shadow:0 30px 80px -20px #000c,inset 0 0 0 6px #050d1c40,inset 0 0 0 7px #c9b6ff1f}.dialogo.no .btn-sec{color:var(--ivory);border-color:#c9b6ff8c}.dialogo.con-franja .dialogo-cerrar{color:#2a1d05b3}.dialogo.no .dialogo-cerrar{color:var(--tinta-lavanda)}.franja{color:var(--cafe);background:linear-gradient(135deg,#f6e4ac,#d9b86c 55%,#b8923f);border-bottom:1px solid #fff4cd80;flex-direction:column;align-items:center;gap:.5rem;padding:2.4rem 1.4rem 1.4rem;display:flex}.franja.ya{background:linear-gradient(135deg,#fbf2d6,#ecd9a2 60%,#d8bd78)}.franja.no{color:var(--tinta-lavanda);background:linear-gradient(135deg,#ece6ff,#cdbcff 55%,#a993f0);border-bottom-color:#ffffff80}.franja-icono{background:#2a1d051f;border:1px solid #2a1d0540;border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.franja-icono svg{width:24px;height:24px}.franja.no .franja-icono{color:#3d2d8f;background:#1d18421a;border-color:#1d184240}.franja.no .franja-icono svg{width:44px;height:44px;overflow:visible}.franja-titulo{font-family:var(--script);letter-spacing:0;color:inherit;text-wrap:balance;font-size:clamp(1.9rem,7vw,2.3rem);font-weight:400;line-height:1.15}.dialogo-resultado{text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:1.4rem clamp(1.2rem,5vw,2.2rem) clamp(1.6rem,5vw,2.2rem);display:flex}.dialogo-resultado .btn{width:100%;margin-top:.2rem}.chip{letter-spacing:.16em;text-transform:uppercase;border-radius:999px;align-items:center;gap:.45rem;padding:.3rem .9rem;font-size:.74rem;font-weight:600;line-height:1.5;display:inline-flex}.chip svg{flex:none;width:14px;height:14px}.chip-si{color:var(--gold-soft);background:#d9b86c24;border:1px solid #d9b86c80}.chip-no{color:var(--lavanda);background:#c9b6ff1f;border:1px solid #c9b6ff73}.rsvp-estado{margin-top:.4rem}.pase{text-align:center;background:#d9b86c12;border:1px dashed #d9b86c8c;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;padding:.75rem .25rem;display:grid;position:relative}.pase:before,.pase:after{content:"";background:var(--muesca,#0c2a2c);border:1px dashed #d9b86c8c;border-radius:50%;width:14px;height:14px;margin-top:-7px;position:absolute;top:50%}.pase:before{left:-8px}.pase:after{right:-8px}.pase div{flex-direction:column;gap:.1rem;min-width:0;padding:0 .4rem;display:flex}.pase div+div{border-left:1px solid #d9b86c40}.pase dt{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-size:.62rem}.pase dd{color:var(--ivory);font-size:.95rem;line-height:1.25}.card>.pase{--muesca:#0b1c2a;max-width:380px;margin:1.2rem auto 0}.rsvp-franja{border-radius:21px 21px 0 0;gap:.3rem;margin:calc(-1*clamp(1.8rem,5vw,3rem)) calc(-1*clamp(1.2rem,4vw,2.6rem)) 1.4rem;padding:1.8rem 1.2rem 1.5rem}.rsvp-franja .eyebrow{color:#2a1d05b3;margin-bottom:0}.fly.guia{z-index:40;pointer-events:none;position:fixed}.chispa-guia{z-index:40;width:14px;height:14px;color:var(--gold-soft);pointer-events:none;filter:drop-shadow(0 0 6px #f1dba0e6);position:fixed;top:0;left:0}.chispa-guia svg{width:100%;height:100%;display:block}#mensaje:focus{outline:none}
