:root{--color-neon-violet:#a855f7;--color-neon-pink:#ec4899;--color-neon-blue:#3b82f6;--color-neon-cyan:#22d3ee;--color-dark:#0a0a0f;--color-dark-card:#111118;--color-text-light:#f0f0f5;--color-text-muted:#8888a0;--font-display:"Baguet Script", cursive;--font-heading:"Playfair Display", serif;--font-body:"Outfit", sans-serif;--glow-violet:0 0 20px #a855f766, 0 0 60px #a855f726;--glow-pink:0 0 20px #ec489966, 0 0 60px #ec489926;--glow-blue:0 0 20px #3b82f666, 0 0 60px #3b82f626;--spacing-section:5rem}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--color-dark);color:var(--color-text-light);-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:500}.script-font{font-family:var(--font-display);font-weight:400}.text-neon{background:linear-gradient(135deg, var(--color-neon-violet), var(--color-neon-pink), var(--color-neon-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.particles-container{pointer-events:none;z-index:5;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.particle{will-change:transform, opacity;border-radius:50%;animation:linear infinite floatParticle;position:absolute}@keyframes floatParticle{0%{opacity:0;transform:translateY(110vh)scale(.3)}10%{opacity:.8}50%{opacity:1;transform:translate(20px,50vh)scale(1)}90%{opacity:.6}to{opacity:0;transform:translate(-10px,-10vh)scale(.5)}}.disco-bg{pointer-events:none;z-index:1;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.disco-beam{opacity:.03;transform-origin:top;width:2px;height:200vh;animation:linear infinite rotateBeam;position:absolute}@keyframes rotateBeam{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.intro-overlay{z-index:9999;background:radial-gradient(#15101f 0%,#0a0a0f 100%);justify-content:center;align-items:center;width:100%;height:100%;transition:opacity 1.2s cubic-bezier(.85,0,.15,1) .5s;display:flex;position:fixed;top:0;left:0}.intro-overlay.opened{opacity:0;pointer-events:none}.intro-content{text-align:center;cursor:pointer;flex-direction:column;align-items:center;max-width:90%;padding:2rem;display:flex}.intro-logo{width:clamp(160px,40vw,220px);height:clamp(160px,40vw,220px);margin-bottom:2rem;animation:3s ease-in-out infinite logoGlow}.intro-logo img{object-fit:contain;filter:drop-shadow(0 0 25px #a855f766);width:100%;height:100%}@keyframes logoGlow{0%,to{filter:drop-shadow(0 0 20px #a855f74d);transform:scale(1)}50%{filter:drop-shadow(0 0 40px #ec489980);transform:scale(1.03)}}.intro-label{font-family:var(--font-heading);letter-spacing:.4em;text-transform:uppercase;color:var(--color-text-muted);margin-top:.5rem;font-size:clamp(.8rem,2.5vw,1rem)}.intro-name-display{margin-bottom:.5rem}.intro-name-display .script-font{background:linear-gradient(135deg, var(--color-neon-violet), var(--color-neon-pink), var(--color-neon-blue));-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 30px #a855f74d);-webkit-background-clip:text;background-clip:text;font-size:clamp(3.5rem,12vw,6rem);line-height:1.1}.intro-surname{font-family:var(--font-heading);letter-spacing:.5em;text-transform:uppercase;color:#a855f799;margin-top:.3rem;font-size:clamp(.7rem,2vw,1.1rem)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes glowPulse{0%,to{opacity:.5}50%{opacity:1}}.animate-fade-up{opacity:0;animation:1.2s cubic-bezier(.2,.8,.2,1) forwards fadeInUp}.btn{color:var(--color-neon-violet);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.15em;cursor:pointer;background:0 0;border:1px solid #a855f780;border-radius:50px;padding:.9rem 2.5rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:inline-block;position:relative;overflow:hidden}.btn:before{content:"";background:linear-gradient(135deg, var(--color-neon-violet), var(--color-neon-pink));opacity:0;z-index:-1;border-radius:50px;transition:opacity .4s;position:absolute;inset:0}.btn:hover{color:#fff;box-shadow:var(--glow-violet);border-color:#0000;transform:translateY(-2px)}.btn:hover:before{opacity:1}.btn-solid{background:linear-gradient(135deg, var(--color-neon-violet), var(--color-neon-pink));color:#fff;border:none}.btn-solid:hover{box-shadow:var(--glow-pink);transform:translateY(-2px)scale(1.02)}.btn-solid:before{display:none}.app-container{z-index:2;flex-direction:column;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.hero{text-align:center;justify-content:center;align-items:center;height:100svh;padding:1rem;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:-1;background-position:top;background-size:cover;width:100%;height:100%;position:absolute;top:0;left:0}.hero-bg:after{content:"";background:linear-gradient(#0a0a0f8c 0%,#0a0a0f99 30%,#0a0a0fbf 60%,#0a0a0feb 85%,#0a0a0f 100%);position:absolute;inset:0}.hero-content{z-index:1;max-width:100%;padding:1.5rem}.hero-tag{font-family:var(--font-body);letter-spacing:.4em;text-transform:uppercase;color:#fff;text-shadow:0 0 20px #a855f7cc,0 0 40px #a855f766,0 2px 4px #000c;margin-bottom:.8rem;font-size:clamp(.75rem,2.5vw,1rem)}.hero-title{font-family:var(--font-display);color:#fff;-webkit-text-fill-color:#fff;text-shadow:0 0 30px #a855f799,0 0 60px #ec48994d,0 4px 20px #000000e6,0 2px 6px #000;margin-bottom:.3rem;font-size:clamp(5rem,20vw,10rem);line-height:.9}.hero-surname{font-family:var(--font-heading);letter-spacing:.5em;text-transform:uppercase;color:#fff;text-shadow:0 0 15px #a855f780,0 2px 8px #000000e6;margin-bottom:1.5rem;font-size:clamp(1rem,3.5vw,1.6rem)}.hero-invite-text{font-family:var(--font-body);letter-spacing:.2em;text-transform:uppercase;color:#fff;text-shadow:0 0 15px #a855f780,0 2px 6px #000c;margin-bottom:.5rem;font-size:clamp(.8rem,3vw,1rem)}.hero-date-pill{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);color:#fff;font-family:var(--font-heading);letter-spacing:.15em;text-shadow:0 2px 4px #0009;background:#0006;border:1px solid #ffffff40;border-radius:50px;align-items:center;gap:.8rem;margin-top:1rem;padding:.7rem 1.8rem;font-size:clamp(.75rem,2.5vw,1rem);display:inline-flex}.hero-date-pill .dot{background:var(--color-neon-pink);width:4px;height:4px;box-shadow:0 0 8px var(--color-neon-pink);border-radius:50%}.section{padding:var(--spacing-section) 1.5rem;text-align:center;flex-direction:column;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.section-title{font-family:var(--font-display);background:linear-gradient(135deg, var(--color-neon-violet), var(--color-neon-pink));-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 20px #a855f733);-webkit-background-clip:text;background-clip:text;margin-bottom:2rem;font-size:clamp(2.5rem,10vw,4rem)}.section-divider{background:linear-gradient(90deg, transparent, var(--color-neon-violet), var(--color-neon-pink), transparent);width:60px;height:2px;margin:0 auto 1.5rem;position:relative}.section-divider:after{content:"✦";color:var(--color-neon-violet);background:var(--color-dark);text-shadow:0 0 10px var(--color-neon-violet);padding:0 12px;font-size:.8rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bg-darker{background:linear-gradient(180deg, var(--color-dark) 0%, #08080e 50%, var(--color-dark) 100%)}.countdown-container{flex-wrap:nowrap;justify-content:center;gap:1rem;width:100%;display:flex}.countdown-box{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#a855f70d;border:1px solid #a855f726;border-radius:16px;flex:1;min-width:65px;max-width:100px;padding:1.2rem .5rem;transition:all .3s}.countdown-box:hover{box-shadow:var(--glow-violet);border-color:#a855f766;transform:translateY(-3px)}.countdown-number{font-size:clamp(1.8rem,7vw,3rem);font-weight:400;font-family:var(--font-heading);background:linear-gradient(135deg, var(--color-neon-violet), var(--color-neon-pink));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;line-height:1}.countdown-label{text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);margin-top:.5rem;font-size:.7rem}.rotating-gallery{grid-template-columns:repeat(3,1fr);gap:.6rem;width:100%;max-width:900px;margin:0 auto;display:grid}.rotating-cell{aspect-ratio:3/4;cursor:pointer;border:1px solid #a855f71a;border-radius:12px;transition:all .4s;position:relative;overflow:hidden}.rotating-cell:hover{border-color:#a855f780;transform:scale(1.03);box-shadow:0 0 20px #a855f726,0 0 40px #ec489914}.rotating-cell img{object-fit:cover;width:100%;height:100%;transition:opacity .6s;display:block}.rotating-cell img.fading{opacity:0}@media (width<=480px){.rotating-gallery{gap:.4rem}.rotating-cell{border-radius:8px}}.details-vertical{flex-direction:column;width:100%;max-width:500px;margin:0 auto;display:flex}.detail-block{flex-direction:column;align-items:center;padding:2rem 0;display:flex}.detail-icon-wrapper{width:56px;height:56px;color:var(--color-neon-violet);background:#a855f70d;border:1px solid #a855f733;border-radius:50%;justify-content:center;align-items:center;margin-bottom:1.2rem;transition:all .3s;display:flex}.detail-block:hover .detail-icon-wrapper{box-shadow:var(--glow-violet);border-color:#a855f780}.detail-title{font-family:var(--font-heading);color:var(--color-text-light);letter-spacing:.08em;margin-bottom:.8rem;font-size:1.6rem;font-weight:400}.detail-text{color:var(--color-text-muted);font-size:.95rem;line-height:1.7}.detail-text strong{color:var(--color-neon-violet)}.detail-line{background:linear-gradient(#a855f766,#0000);width:1px;height:35px;margin:0 auto}.detail-btn{margin-top:1.5rem;padding:.8rem 2rem;font-size:.8rem}.info-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#a855f708,#ec489908);border:1px solid #a855f71a;border-radius:20px;padding:2.5rem 1.5rem;transition:all .4s}.info-card:hover{border-color:#a855f740;box-shadow:0 0 40px #a855f70d}.info-card-icon{width:60px;height:60px;color:var(--color-neon-violet);background:linear-gradient(135deg,#a855f71a,#ec48991a);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;display:flex}.theme-badge{font-family:var(--font-heading);color:var(--color-neon-violet);background:linear-gradient(135deg,#a855f71a,#ec48991a);border:1px solid #a855f733;border-radius:50px;align-items:center;gap:.5rem;margin-top:.5rem;padding:.5rem 1.5rem;font-size:1rem;display:inline-flex}.whatsapp-fab{color:#fff;z-index:1000;background:linear-gradient(135deg,#25d366,#128c7e);border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;text-decoration:none;transition:all .3s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 15px #25d36666}.whatsapp-fab:hover{transform:scale(1.1)translateY(-3px);box-shadow:0 8px 25px #25d36680}.footer{text-align:center;color:var(--color-text-muted);border-top:1px solid #a855f714;padding:3rem 1rem;font-size:.85rem}.footer a{color:var(--color-neon-violet);font-weight:500;text-decoration:none;transition:color .3s}.footer a:hover{color:var(--color-neon-pink)}.song-card{text-align:left;background:#ffffff08;border:1px solid #a855f71a;border-radius:12px;align-items:center;gap:1rem;margin-bottom:.8rem;padding:1rem 1.2rem;transition:all .3s;display:flex}.song-card:hover{background:#a855f70d;border-color:#a855f74d}.song-icon{background:linear-gradient(135deg, var(--color-neon-violet), var(--color-neon-pink));color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.song-info{flex:1}.song-info .song-title{color:var(--color-text-light);font-size:.9rem;font-weight:500}.song-info .song-artist{color:var(--color-text-muted);margin-top:.15rem;font-size:.75rem}.lightbox-overlay{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:10000;cursor:pointer;background:#000000eb;justify-content:center;align-items:center;padding:1rem;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.lightbox-overlay img{object-fit:contain;border-radius:12px;max-width:95%;max-height:90vh;box-shadow:0 0 60px #a855f733}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.5rem;transition:all .3s;display:flex;position:absolute;top:1.5rem;right:1.5rem}.lightbox-close:hover{background:#a855f74d}@media (width>=768px){:root{--spacing-section:6rem}.gallery-container{gap:1rem}}@media (width<=400px){.countdown-container{gap:.5rem}.countdown-box{min-width:55px;padding:.8rem .3rem}}
