@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@600;700;800&family=Nunito:wght@600;700;900&display=swap');
:root{--pink:#f34691;--hot:#ff76b0;--purple:#813aa5;--blue:#25b6ce;--yellow:#ffd342;--cream:#fff9f1;--ink:#66366f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7bed7;color:var(--ink);font-family:Nunito,sans-serif}main{width:min(100%,760px);margin:auto;overflow:hidden;background:white;box-shadow:0 0 70px #74304d44}section{position:relative;text-align:center;padding:82px 28px}.hero{min-height:100vh;padding-top:58px;background:linear-gradient(#ffb8d4aa,#fff9f0dd),url('assets/fondo-rosa.png') center/cover}.overline{text-transform:uppercase;letter-spacing:3px;font-size:13px;font-weight:900;color:var(--pink)}h1,h2,h3{font-family:'Baloo 2',cursive;margin:.1em 0;line-height:1}h1{font-size:clamp(58px,14vw,94px);color:var(--pink);text-shadow:0 3px white}h1 small{display:block;font-size:.45em;color:var(--purple)}h1 b{display:inline-block;padding:3px 24px 9px;border-radius:999px;background:var(--pink);color:white;font-size:.78em;box-shadow:0 8px 0 #c42a70}.portrait{position:relative;width:min(66vw,360px);aspect-ratio:1;margin:30px auto 20px}.portrait img{position:relative;width:100%;height:100%;object-fit:cover;border-radius:50%;border:9px solid white;box-shadow:0 14px 38px #85365a44;z-index:1}.ring{position:absolute;inset:-12px;border-radius:50%;background:conic-gradient(var(--pink),var(--yellow),var(--blue),var(--purple),var(--pink));animation:spin 8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.plim{position:absolute;z-index:3;object-fit:contain;filter:drop-shadow(0 12px 8px #67314840)}.hero-plim{width:165px;right:-28px;top:420px;animation:float 3s ease-in-out infinite}@keyframes float{50%{transform:translateY(-18px) rotate(4deg)}}.welcome{max-width:480px;margin:25px auto;font-size:19px;font-weight:800}.count-label{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:900}.countdown{display:flex;justify-content:center;align-items:center;gap:8px;margin:12px auto 25px}.countdown div{min-width:85px;padding:13px 8px;border:3px solid white;border-radius:20px;background:linear-gradient(145deg,var(--pink),var(--hot));color:white;box-shadow:0 8px 20px #81365b33;animation:pulse 2.3s ease-in-out infinite}.countdown div:nth-of-type(2){animation-delay:.25s;background:linear-gradient(145deg,var(--purple),#ad65c5)}.countdown div:nth-of-type(3){animation-delay:.5s;background:linear-gradient(145deg,var(--blue),#6ad9dc)}@keyframes pulse{50%{transform:translateY(-5px)}}.countdown b{display:block;font-size:34px;line-height:1}.countdown span{text-transform:uppercase;font-size:11px}.countdown em{font-size:28px;font-style:normal;color:var(--pink)}.down{display:inline-grid;place-items:center;width:50px;height:50px;border-radius:50%;background:white;color:var(--pink);font-size:35px;text-decoration:none;box-shadow:0 8px 22px #80365530;animation:bounce 1.5s infinite}@keyframes bounce{50%{transform:translateY(7px)}}.sparkles i{position:absolute;color:var(--yellow);font-size:28px;animation:twinkle 1.8s alternate infinite}.sparkles i:nth-child(1){left:9%;top:12%}.sparkles i:nth-child(2){right:10%;top:19%;animation-delay:.4s}.sparkles i:nth-child(3){left:6%;top:47%;animation-delay:.7s}.sparkles i:nth-child(4){right:8%;top:65%;animation-delay:1s}@keyframes twinkle{to{transform:scale(1.6) rotate(25deg);opacity:.45}}.details{background:linear-gradient(145deg,#fff,#ffe4f0)}h2{font-size:clamp(48px,11vw,76px);color:var(--purple)}.details h2 strong{color:var(--pink)}.pill{display:inline-block;margin:24px 0;padding:14px 22px;border-radius:999px;background:var(--yellow);font-size:20px}.card{display:flex;align-items:center;gap:14px;max-width:480px;margin:10px auto 25px;padding:18px 24px;border-radius:25px;background:white;text-align:left;box-shadow:0 10px 30px #7331511c}.card>span{font-size:42px}.card small{text-transform:uppercase;letter-spacing:2px}.card h3{font-size:26px;color:var(--pink)}.button{display:inline-block;padding:15px 25px;border-radius:999px;background:var(--purple);color:white;text-decoration:none;font-weight:900;box-shadow:0 7px 0 #57226f}.side-plim{width:130px;left:-34px;bottom:40px;animation:peek 3s ease-in-out infinite}@keyframes peek{50%{transform:translateX(14px) rotate(6deg)}}.party{background:linear-gradient(#65cee4,#c9f4f5)}.activities{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:30px}.activities article{padding:28px 15px;border-radius:30px;background:white;box-shadow:0 12px 30px #286c7d24;transition:.25s}.activities article:hover{transform:translateY(-8px) rotate(-1deg)}.icon{font-size:58px;animation:wiggle 2s ease-in-out infinite}.activities article:nth-child(2) .icon{animation-delay:.5s}@keyframes wiggle{50%{transform:rotate(10deg) scale(1.08)}}.activities h3{font-size:28px;color:var(--pink)}.rsvp{min-height:700px;padding-bottom:180px;background:linear-gradient(155deg,#8a3bab,#f45799);color:white}.rsvp .overline,.rsvp h2{color:white}.phones{display:flex;gap:13px;justify-content:center;flex-wrap:wrap;margin-top:25px}.phones a{padding:15px 20px;border-radius:999px;background:#25d366;color:white;text-decoration:none;font-weight:900;box-shadow:0 6px 0 #168f45}.rsvp-plim{width:190px;left:50%;bottom:8px;transform:translateX(-50%);animation:dance 1.7s ease-in-out infinite}@keyframes dance{25%{transform:translateX(-50%) rotate(-6deg)}75%{transform:translateX(-50%) rotate(6deg)}}.signoff{margin-top:40px;font-size:18px}.confetti{position:fixed;inset:0;z-index:20;pointer-events:none;overflow:hidden}.confetti span{position:absolute;top:-20px;width:9px;height:15px;border-radius:3px;animation:fall linear forwards}@keyframes fall{to{transform:translate3d(var(--drift),110vh,0) rotate(720deg)}}.reveal{opacity:0;transform:translateY(45px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}@media(max-width:520px){section{padding-left:20px;padding-right:20px}.hero-plim{width:125px;top:455px}.countdown{gap:4px}.countdown div{min-width:76px}.countdown em{font-size:20px}.activities{grid-template-columns:1fr}.side-plim{width:95px}.rsvp-plim{width:165px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
