:root{--bg-black:#050505;--bg-black-deep:#000;--silver:#c7c9cc;--silver-bright:#e8e9ec;--white:#fff;--glow:#ffffff8c;--font-script:"Great Vibes", cursive;--font-modern:"Montserrat", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--white);font-family:var(--font-modern);-webkit-font-smoothing:antialiased;background-color:#020202;justify-content:center;display:flex;overflow-x:hidden}#card-container{background-color:var(--bg-black);width:100%;max-width:560px;min-height:100vh;position:relative;box-shadow:0 0 50px #000c,0 0 0 1px #ffffff14}@media (width<=560px){#card-container{box-shadow:none;border:none}}.bg-system{z-index:0;pointer-events:none;width:100%;max-width:560px;height:100vh;position:fixed;top:0;left:50%;transform:translate(-50%)}.bg-base{background:radial-gradient(circle at center, var(--bg-black) 20%, var(--bg-black-deep) 100%);position:absolute;inset:0}.bg-grain{display:none}.bg-layer{opacity:0;transition:opacity .5s;position:absolute;inset:0}.glow-blob{background:radial-gradient(circle, var(--silver-bright) 0%, transparent 70%);filter:blur(80px);opacity:.2;border-radius:50%;position:absolute}.blob-1{width:80vw;max-width:400px;height:80vw;max-height:400px;top:-5vh;left:-10vw}.blob-2{background:radial-gradient(circle, var(--silver) 0%, transparent 70%);width:90vw;max-width:500px;height:90vw;max-height:500px;bottom:-15vh;right:-10vw}.bg-mirror-layer{background:conic-gradient(from 45deg at 50% 50%, transparent 0deg, var(--silver) 15deg, transparent 30deg, var(--white) 45deg, transparent 60deg), repeating-linear-gradient(45deg, transparent, transparent 10px, #c7c9cc0d 10px, #c7c9cc0d 20px);opacity:.15;mix-blend-mode:screen;background-size:50px 50px}.bg-gallery-layer{background-image:linear-gradient(#0006,#000000d9),url(/assets/decorativos/bolas-disco-bg.png);background-position:50%;background-size:cover}.bg-dresscode-layer{filter:blur(2px);background-image:linear-gradient(#0009,#0009),url(/assets/decorativos/estrellas-bg.png);background-position:50%;background-size:cover;transform:scale(1.05)}.bg-timeline-layer{background-image:linear-gradient(#000000a6,#000000a6),url(/assets/discoballs/techo-fiesta.jpg);background-position:50%;background-size:cover}.bg-gifts-layer{background-image:linear-gradient(#000000b3,#000000b3),url(/assets/texturas/papel-metalico.jpg);background-position:50%;background-size:cover}.bg-intro-layer{background-image:linear-gradient(#0009,#0009),url(/assets/decorativos/botas-brillo.jpg);background-position:50%;background-size:cover}.bg-rsvp-layer{background-image:linear-gradient(#000000bf,#000000d9),url(/assets/decorativos/fondo-lentejuelas.jpg);background-position:50%;background-size:cover}.signature-discoball{opacity:.15;mix-blend-mode:multiply;z-index:1;pointer-events:none;background-image:url(/assets/discoballs/bola-esquina.jpg);background-position:50%;background-repeat:no-repeat;background-size:contain;width:350px;max-width:60vw;height:350px;max-height:60vw;animation:60s linear infinite rotateSlowly;position:fixed;top:-20px;right:-20px}@media (width>=560px){.signature-discoball{right:calc(50% - 280px)}}@keyframes rotateSlowly{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hidden-initially{opacity:0;display:none}main{z-index:10;position:relative}.section{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:100px 20px;display:flex;position:relative}@media (width<=560px){.section{padding:60px 20px}}.container{text-align:center;width:100%;max-width:500px;margin:0 auto}.title-large{text-transform:uppercase;letter-spacing:2px;text-shadow:0 0 10px var(--glow);margin-bottom:30px;font-size:2.5rem;line-height:1.1}h3{color:var(--silver);margin-bottom:30px;font-size:1.2rem;font-weight:400}p{color:var(--silver-bright);margin-bottom:20px;font-size:1.1rem;line-height:1.6}.btn{color:var(--white);border:1px solid var(--silver);text-transform:uppercase;letter-spacing:2px;cursor:pointer;background:0 0;border-radius:40px;padding:15px 35px;font-size:1rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block;box-shadow:0 0 15px #c7c9cc33}.btn:hover{background:var(--white);color:var(--bg-black);box-shadow:0 0 25px var(--glow);transform:translateY(-2px)}.section-divider{opacity:.7;justify-content:center;gap:15px;padding:40px 0;display:flex}.star-icon{width:32px;height:auto}.music-btn{border:1px solid var(--silver);width:60px;height:60px;color:var(--white);cursor:pointer;z-index:100;backdrop-filter:blur(5px);background:#050505cc;border-radius:50%;justify-content:center;align-items:center;font-size:1.8rem;transition:all .3s;display:flex;position:fixed;bottom:20px;right:20px}.music-btn.playing i{color:var(--silver-bright);text-shadow:0 0 10px var(--glow);animation:3s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.section-intro{justify-content:center;padding:0 20px}.intro-content{z-index:1;text-align:center;width:100%;position:relative}.pre-title{z-index:2;font-family:var(--font-script);color:var(--silver-bright);margin-bottom:-15px;font-size:3rem;position:relative;transform:rotate(-5deg)}.main-title{z-index:2;flex-direction:column;align-items:center;margin-bottom:40px;line-height:.8;display:flex;position:relative}.main-title .name{font-family:var(--font-script);background:linear-gradient(to bottom, var(--white), var(--silver));-webkit-text-fill-color:transparent;text-shadow:0 0 30px #fff3;-webkit-background-clip:text;font-size:7rem;font-weight:400}.main-title .fest{font-family:var(--font-modern);letter-spacing:5px;text-shadow:0 0 20px var(--glow);font-size:5rem;font-weight:900}.three-decorative{pointer-events:none;width:200px;height:200px;margin:0 auto 20px;position:relative}.three-decorative:before{content:"";z-index:-2;filter:blur(4px);background-image:conic-gradient(#0000 60deg,#ffffff40 70deg,#0000 80deg 88deg,#fffc 90deg,#0000 92deg 105deg,#ffffff80 110deg,#0000 115deg 240deg,#fff9 248deg,#0000 251deg 270deg,#ffffff59 280deg,#0000 290deg 360deg);border-radius:50%;width:380px;height:380px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(circle,#000 25%,#0000 60%);mask-image:radial-gradient(circle,#000 25%,#0000 60%)}.disco-chain{opacity:.35;filter:blur(1.5px);z-index:-1;background-image:radial-gradient(#3c3c3ccc 40%,#0000 70%);background-repeat:repeat-y;background-size:6px 10px;width:6px;height:100vh;position:absolute;bottom:50%;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#0000 0%,#000 15% 100%);mask-image:linear-gradient(#0000 0%,#000 15% 100%)}.tap-indicator{cursor:pointer;margin-top:10px;animation:2s infinite pulse}.tap-indicator p{text-transform:uppercase;letter-spacing:2px;color:var(--white);text-shadow:0 0 10px var(--glow);margin-bottom:5px;font-size:1rem;font-weight:700}@keyframes pulse{0%,to{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(5px)}}.section-gallery{padding:0 0 50px;position:relative;overflow:hidden}.gallery-wrapper{margin:60px -20px;position:relative;transform:rotate(-6deg)scale(1.1)}.film-row{background-color:#0e0e0e;margin-bottom:10px;padding:25px 0;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #000c}.film-row:before,.film-row:after{content:"";opacity:.8;background-image:linear-gradient(90deg,#0000 4px,#fff 4px 16px,#0000 16px);background-repeat:repeat-x;background-size:24px 12px;height:12px;position:absolute;left:0;right:0}.film-row:before{top:6px}.film-row:after{bottom:6px}.marquee-track{width:max-content;display:flex}.track-right{animation:45s linear infinite marqueeRight}.track-left{animation:45s linear infinite marqueeLeft}@keyframes marqueeLeft{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes marqueeRight{0%{transform:translate(-50%)}to{transform:translate(0)}}.film-frame{flex-shrink:0;width:250px;margin:0 10px}.film-frame img{object-fit:cover;filter:grayscale(20%)contrast(1.1);border-radius:4px;width:100%;height:180px;display:block}.gallery-note{z-index:10;background:#e6dac3;padding:10px 25px;position:absolute;bottom:-40px;left:10%;transform:rotate(6deg);box-shadow:2px 4px 15px #00000080}.gallery-note p{color:#333;margin:0;font-family:Great Vibes,cursive;font-size:1.8rem}.countdown-big{justify-content:center;gap:20px;display:flex}.cd-item{flex-direction:column;align-items:center;display:flex}.cd-number{color:var(--white);min-width:80px;text-shadow:0 0 20px var(--glow);background:#ffffff1a;border:1px solid #c7c9cc4d;border-radius:12px;padding:15px 20px;font-size:3rem;font-weight:900}.cd-label{text-transform:uppercase;color:var(--silver);letter-spacing:1px;margin-top:10px;font-size:.9rem}.section-countdown{overflow:hidden}.bg-star{opacity:.15;filter:blur(6px);pointer-events:none;z-index:0;width:250px;height:auto;position:absolute}.star-top-left{animation:25s linear infinite rotateStar;top:-50px;left:-80px}.star-bottom-right{animation:30s linear infinite reverse rotateStar;bottom:-50px;right:-80px}.section-location{overflow:hidden}.loc-star-1{animation:28s linear infinite rotateStar;top:5%;left:-70px}.loc-star-2{animation:35s linear infinite reverse rotateStar;bottom:5%;right:-80px}.loc-star-3{opacity:.12;width:130px;animation:20s linear infinite rotateStar;top:35%;right:-30px}@keyframes rotateStar{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.date-cursive{color:var(--white);margin-bottom:40px;font-family:Great Vibes,cursive;font-size:3rem;font-weight:400}.calendar-illustration{background:#ffffff08;border:1px solid #ffffff1a;border-radius:12px;max-width:350px;margin:0 auto;padding:30px}.cal-header{text-transform:uppercase;letter-spacing:2px;border-bottom:1px solid #fff3;margin-bottom:20px;padding-bottom:15px;font-size:1.2rem;font-weight:700}.cal-grid{color:var(--silver);grid-template-columns:repeat(7,1fr);gap:12px;font-size:1rem;display:grid}.cal-grid span{aspect-ratio:1;justify-content:center;align-items:center;display:flex}.cal-grid .marked{color:var(--white);z-index:1;font-weight:700;position:relative}.cal-grid .marked:after{content:"";border:2px solid var(--white);width:35px;height:35px;box-shadow:0 0 10px var(--glow);border-radius:40% 60% 70% 30%/40% 50% 60%;animation:2s ease-in-out infinite alternate drawCircle;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes drawCircle{0%{border-radius:40% 60% 70% 30%/40% 50% 60%}to{border-radius:60% 40% 30% 70%/50% 60% 50% 40%}}.calendar-note{color:var(--silver);text-shadow:0 2px 8px #000c;margin-top:35px;font-family:Great Vibes,cursive;font-size:2.2rem}.section-dresscode{color:var(--silver-bright)}.section-dresscode .title-large{letter-spacing:2px;color:#fff;text-shadow:0 0 10px #000c;white-space:nowrap;margin-bottom:0;font-size:2.2rem}.subtitle-cursive{color:var(--silver-bright);text-shadow:0 0 10px #000c;margin-top:-5px;margin-bottom:30px;font-family:Great Vibes,cursive;font-size:2.5rem}.dresscode-columns{justify-content:center;align-items:stretch;gap:15px;margin-bottom:40px;display:flex}.dc-col{flex-direction:column;flex:1;align-items:center;display:flex}.dc-divider{background:var(--silver);opacity:.3;width:1px}.dc-icon{filter:url(#remove-white)invert();height:90px;margin-bottom:15px}.dc-title{letter-spacing:2px;color:#fff;text-shadow:0 0 10px #000c;margin-bottom:15px;font-size:1.2rem;font-weight:900}.dc-list{text-align:center;padding:0;list-style:none}.dc-list li{color:var(--silver-bright);white-space:nowrap;text-shadow:0 0 5px #000c;margin-bottom:8px;font-size:.85rem;font-weight:700}.dc-list li:before{content:"•";color:var(--silver-bright);margin-right:5px}.reserved-colors{margin-top:20px}.reserved-title{letter-spacing:1px;text-transform:uppercase;color:#fff;text-shadow:0 0 10px #000c;margin-bottom:15px;font-size:1rem;font-weight:900}.color-circles{justify-content:center;gap:20px;margin-bottom:10px;display:flex}.circle{border:1px solid #ffffff4d;border-radius:50%;width:50px;height:50px;box-shadow:0 5px 15px #000c}.circle.white{background-color:#fff}.circle.beige{background-color:#dcbfa6}.reserved-note{color:var(--silver-bright);text-shadow:0 0 5px #000c;font-size:1rem;font-style:italic;font-weight:700}.timeline-title{text-shadow:0 0 15px #fff,0 0 30px #fffc;margin-bottom:50px;font-size:3rem!important}.timeline-container{max-width:400px;margin:0 auto 30px;position:relative}.timeline-line{background:linear-gradient(to bottom, transparent, var(--white), transparent);width:2px;box-shadow:0 0 10px var(--glow);position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{justify-content:center;align-items:center;width:100%;margin-bottom:80px;display:flex;position:relative}.timeline-item:last-child{margin-bottom:0}.timeline-item .time,.timeline-item .content{width:45%}.timeline-item .time{text-align:right;color:var(--white);text-shadow:0 0 10px var(--glow);padding-right:35px;font-size:1.4rem;font-weight:900}.timeline-item .content{text-align:left;color:var(--white);padding-left:35px;font-size:1.25rem;font-weight:800}.timeline-item .node{background:var(--bg-black);border:3px solid var(--white);z-index:2;width:55px;height:55px;box-shadow:0 0 25px var(--glow);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.timeline-item .node i{color:var(--white);font-size:1.5rem}.location-icon{color:var(--white);text-shadow:0 0 25px var(--glow);margin-bottom:40px;font-size:5rem;animation:2s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.gift-cards{flex-direction:column;gap:20px;margin-top:30px;display:flex}.gift-card{text-align:left;backdrop-filter:blur(5px);background:#0006;border:1px solid #ffffff4d;border-radius:12px;justify-content:space-between;align-items:center;padding:20px 25px;display:flex}.data-group{flex-direction:column;gap:4px;display:flex}.data-group span{color:var(--silver-bright);text-transform:uppercase;letter-spacing:1px;font-size:.8rem}.data-group strong{color:var(--white);letter-spacing:1px;word-break:break-word;font-size:1.2rem}.btn-copy{color:var(--silver);cursor:pointer;background:0 0;border:none;padding:10px;font-size:1.5rem;transition:color .3s}.btn-copy:hover{color:var(--white)}.rsvp-limit{color:var(--white);margin-bottom:40px;font-size:1.2rem;font-weight:700}.rsvp-form{text-align:left;backdrop-filter:blur(5px);background:#00000080;border:1px solid #ffffff1a;border-radius:15px;width:100%;max-width:400px;margin:0 auto;padding:30px}.form-group{margin-bottom:25px}.form-group input[type=text]{width:100%;color:var(--white);font-family:var(--font-modern);background:#ffffff1a;border:1px solid #ffffff4d;border-radius:8px;padding:15px 18px;font-size:1.1rem}.form-group input::placeholder{color:#fff9}.form-group input:focus{border-color:var(--white);background:#ffffff26;outline:none;box-shadow:0 0 15px #ffffff4d}.attendance-group label{color:var(--white);margin-bottom:15px;font-weight:700;display:block}.radio-options{gap:25px;display:flex}.radio-label{cursor:pointer;align-items:center;gap:10px;font-size:1.1rem;display:flex}.btn-submit{background:var(--white);width:100%;color:var(--bg-black);margin-top:15px;padding:18px;font-size:1.1rem}.btn-submit:hover{color:var(--white);background:0 0}.site-footer{text-align:center;padding:60px 20px 100px}.site-footer p{font-family:var(--font-script);color:var(--white);margin-bottom:20px;font-size:3.5rem}.footer-stars{justify-content:center;align-items:center;gap:15px;display:flex}.star-icon-small{width:24px;height:auto}.center-star{width:40px;transform:translateY(-5px)}.toast{background:var(--white);color:var(--bg-black);opacity:0;z-index:1000;border-radius:30px;padding:12px 25px;font-weight:700;transition:all .3s cubic-bezier(.68,-.55,.265,1.55);position:fixed;bottom:30px;left:50%;transform:translate(-50%)translateY(100px);box-shadow:0 0 20px #fff6}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (width<=480px){.main-title .name{font-size:5rem}.main-title .fest{font-size:3.5rem}.title-large{font-size:2rem}.timeline-item .time,.timeline-item .content{width:40%;font-size:1.1rem}.cd-number{min-width:65px;padding:10px 15px;font-size:2.2rem}}
