*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0a0a12;--pink:#ff2e9a;--cyan:#23e0ff;--yellow:#ffe34d;--ink:#f3f0ff}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Space Grotesk',sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;overflow-x:hidden}
.bungee{font-family:'Bungee',cursive}
a{color:inherit;text-decoration:none}
.ribbon{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(0,0,0,.6);color:var(--cyan);font-size:11px;letter-spacing:.5px;text-align:center;padding:8px 14px;backdrop-filter:blur(6px)}
.ribbon a{color:var(--yellow);font-weight:700}
.glow-p{text-shadow:0 0 8px var(--pink),0 0 24px var(--pink)}
.glow-c{text-shadow:0 0 8px var(--cyan),0 0 24px var(--cyan)}
.glow-y{text-shadow:0 0 8px var(--yellow),0 0 24px var(--yellow)}
.blob{position:fixed;border-radius:50%;filter:blur(70px);opacity:.35;z-index:0;pointer-events:none}
.b1{width:340px;height:340px;background:var(--pink);top:-60px;left:-60px}.b2{width:300px;height:300px;background:var(--cyan);bottom:10%;right:-80px}.b3{width:260px;height:260px;background:var(--yellow);top:40%;left:-90px}
section,header{position:relative;z-index:2}
.wrap{max-width:840px;margin:0 auto;padding:0 22px}
/* hero poster */
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:90px 22px}
.hero .tag{font-family:'Bungee',cursive;font-size:13px;letter-spacing:3px;color:var(--cyan);transform:rotate(-3deg);border:2px dashed var(--cyan);padding:6px 16px;border-radius:8px}
.hero h1{font-family:'Bungee',cursive;font-size:clamp(3rem,15vw,8rem);line-height:.92;margin:22px 0 6px;color:#fff}
.hero h1 .l1{color:var(--pink);text-shadow:0 0 14px var(--pink),0 0 40px var(--pink)}
.hero h1 .l2{color:var(--cyan);text-shadow:0 0 14px var(--cyan),0 0 40px var(--cyan);display:block}
.hero .sub{font-family:'Bungee',cursive;font-size:clamp(1.4rem,6vw,2.6rem);color:var(--yellow);text-shadow:0 0 14px var(--yellow)}
.hero .when{margin-top:18px;font-weight:700;letter-spacing:1px}
/* GIANT countdown right after hero */
.cdsec{text-align:center;padding:40px 22px 70px}
.cd{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.cd .b{background:rgba(255,255,255,.04);border:2px solid var(--pink);border-radius:16px;padding:18px 16px;min-width:92px;box-shadow:0 0 24px rgba(255,46,154,.35)}
.cd .b:nth-child(2){border-color:var(--cyan);box-shadow:0 0 24px rgba(35,224,255,.35)}
.cd .b:nth-child(3){border-color:var(--yellow);box-shadow:0 0 24px rgba(255,227,77,.3)}
.cd .b:nth-child(4){border-color:#a96bff;box-shadow:0 0 24px rgba(169,107,255,.3)}
.cd .n{font-family:'Bungee',cursive;font-size:2.6rem;color:#fff}.cd .l{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#b8b3d6;margin-top:4px}
.flicker{animation:fl 5s infinite}@keyframes fl{0%,19%,21%,100%{opacity:1}20%{opacity:.5}}
/* the star */
.star-sec{text-align:center;padding:60px 22px}
.kick{font-family:'Bungee',cursive;font-size:12px;letter-spacing:3px;color:var(--cyan)}
.h2{font-family:'Bungee',cursive;font-size:clamp(1.5rem,6vw,2.6rem);margin:8px 0 24px}
.star-card{display:inline-block;background:linear-gradient(135deg,rgba(255,46,154,.12),rgba(35,224,255,.12));border:2px solid var(--yellow);border-radius:24px;padding:34px 40px;transform:rotate(-2deg)}
.star-card .big{font-family:'Bungee',cursive;font-size:3rem;color:var(--yellow);text-shadow:0 0 14px var(--yellow)}
.star-card p{color:#cfcae8;margin-top:6px}
/* party details cards (tilted) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
@media(max-width:620px){.cards{grid-template-columns:1fr}}
.pc{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:26px;text-align:center}
.pc:nth-child(1){transform:rotate(-2deg)}.pc:nth-child(3){transform:rotate(2deg)}
.pc .ic{font-size:2rem}.pc h3{font-family:'Bungee',cursive;font-size:1rem;margin:10px 0 6px;color:var(--cyan)}.pc small{color:#b8b3d6}
/* photo wall */
.wall{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}
@media(max-width:620px){.wall{grid-template-columns:repeat(2,1fr)}}
.ph{aspect-ratio:1;border-radius:14px;background:linear-gradient(135deg,var(--pink),var(--cyan));display:flex;align-items:center;justify-content:center;font-family:'Bungee',cursive;font-size:.7rem;color:#fff;opacity:.9}
.ph:nth-child(even){background:linear-gradient(135deg,var(--cyan),var(--yellow))}
.ph:nth-child(3n){background:linear-gradient(135deg,var(--yellow),var(--pink))}
/* rsvp */
.rsvp form{max-width:460px;margin:20px auto 0;display:flex;flex-direction:column;gap:14px}
.rsvp input,.rsvp select{padding:14px 16px;border:2px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.05);color:#fff;font-family:inherit;font-size:1rem}
.rsvp input:focus,.rsvp select:focus{outline:none;border-color:var(--cyan)}
.btn{display:inline-block;font-family:'Bungee',cursive;font-size:.85rem;letter-spacing:1px;padding:15px 30px;border-radius:100px;cursor:pointer;border:none;background:var(--pink);color:#fff;box-shadow:0 0 24px rgba(255,46,154,.5);transition:transform .2s}
.btn:hover{transform:scale(1.04)}
.btn-c{background:var(--cyan);color:#04222a;box-shadow:0 0 24px rgba(35,224,255,.5)}
.rsvp .ok{display:none;text-align:center;font-family:'Bungee',cursive;color:var(--yellow);margin-top:10px}.rsvp .ok.show{display:block}
.cta{text-align:center;padding:70px 22px}
.cta h2{font-family:'Bungee',cursive;font-size:clamp(1.4rem,5vw,2.2rem)}
.cta p{color:#b8b3d6;max-width:460px;margin:12px auto 22px}.cta .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.foot{text-align:center;padding:30px 22px;color:#8883a8;font-size:.85rem}.foot a{color:var(--cyan);font-weight:700}
.rv{opacity:0;transform:translateY(22px) scale(.97);transition:.7s}.rv.in{opacity:1;transform:none}
