:root{--bg:#07000d;--panel:rgba(25,5,37,.88);--text:#fff7fd;--muted:#d7bfd8;--pink:#ff4fa3;--hotpink:#ff2bd6;--cyan:#39efff;--purple:#9354ff;--orange:#ff9c3a;--yellow:#ffd85b}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}
body{margin:0;min-height:100vh;overflow-x:hidden;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:radial-gradient(circle at 18% 8%,rgba(255,79,163,.16),transparent 28%),radial-gradient(circle at 86% 10%,rgba(57,239,255,.12),transparent 28%),linear-gradient(180deg,#0c0114,#07000d 70%,#090012)}
body:before{content:"";position:fixed;inset:0;z-index:-3;pointer-events:none;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.4px),radial-gradient(circle,#ff9ddd 0 1px,transparent 1.5px),radial-gradient(circle,#b8dbff 0 1px,transparent 1.5px);background-size:180px 180px,240px 240px,310px 310px;background-position:0 0,40px 70px,120px 20px;opacity:.55}
.grid-bg{position:fixed;inset:68% -20% -15%;z-index:-2;opacity:.34;background-image:linear-gradient(rgba(255,79,163,.32) 1px,transparent 1px),linear-gradient(90deg,rgba(57,239,255,.25) 1px,transparent 1px);background-size:54px 54px;transform:perspective(520px) rotateX(62deg) scale(1.45);transform-origin:top center}
.site-header{width:min(1100px,calc(100% - 32px));margin:0 auto;padding:24px 0 12px;display:flex;justify-content:space-between;gap:20px;align-items:center;position:relative;z-index:10}
.brand{text-decoration:none;line-height:1}.brand span{display:block;color:var(--pink);font-weight:1000;letter-spacing:.08em;text-shadow:0 0 20px rgba(255,79,163,.55)}.brand small{display:block;margin-top:5px;color:var(--cyan);font-size:.66rem;font-weight:900;letter-spacing:.22em}
nav{display:flex;gap:16px;flex-wrap:wrap}nav a{color:var(--text);text-decoration:none;font-weight:750;opacity:.88}nav a:hover{color:var(--cyan)}
.wrap{width:min(980px,calc(100% - 28px));margin:12px auto 80px}
.hero-v2{min-height:79vh;position:relative;display:grid;place-items:center;text-align:center;padding:72px 18px 52px}.hero-content{width:min(820px,100%);position:relative;z-index:3}
.disco-ball{position:absolute;width:210px;height:210px;left:-48px;top:20px;border-radius:50%;background:linear-gradient(90deg,transparent 48%,rgba(0,0,0,.18) 49% 51%,transparent 52%),linear-gradient(transparent 48%,rgba(0,0,0,.18) 49% 51%,transparent 52%),radial-gradient(circle at 35% 28%,#fff 0 2%,#ffc9ee 5%,#d7e9ff 14%,#ff94cb 31%,#8e79c9 55%,#3b275c 79%,#160a25 100%);background-size:25px 25px,25px 25px,auto;box-shadow:0 0 30px rgba(255,255,255,.35),0 0 75px rgba(255,79,163,.42)}
.disco-ball:before{content:"";position:absolute;width:2px;height:95px;left:50%;bottom:100%;background:rgba(255,255,255,.72)}
.script-title{font-family:"Brush Script MT","Segoe Script",cursive;color:var(--pink);font-size:clamp(2.2rem,6vw,4.6rem);line-height:1;transform:rotate(-3deg);text-shadow:0 0 24px rgba(255,79,163,.5);margin-bottom:6px}
.dirk-title{font-weight:1000;font-size:clamp(4.2rem,13vw,8.6rem);letter-spacing:-.045em;line-height:.88;background:linear-gradient(180deg,#effcff 0%,#64d6ff 28%,#3463b5 54%,#ff86c7 77%,#4a194f 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 6px 0 rgba(3,8,30,.6))}
.birthday-title{display:inline-block;margin-top:10px;padding:5px 14px 8px;color:var(--yellow);font-size:clamp(2rem,6.5vw,4.4rem);line-height:.94;font-style:italic;font-weight:1000;letter-spacing:-.03em;text-shadow:4px 5px 0 rgba(255,43,214,.55)}
.event-date{margin-top:28px;color:#ffd68b;font-weight:1000;font-style:italic;letter-spacing:.035em;font-size:clamp(.92rem,2.3vw,1.22rem)}
.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:min(660px,100%);margin:24px auto}.countdown>div{padding:17px 8px 14px;border-radius:16px;background:linear-gradient(180deg,rgba(29,9,42,.9),rgba(7,2,16,.92));border:1px solid rgba(57,239,255,.25)}.countdown strong,.countdown span{display:block}.countdown strong{color:var(--cyan);font-size:clamp(1.8rem,5vw,3rem);line-height:1;text-shadow:0 0 15px rgba(57,239,255,.45)}.countdown span{margin-top:7px;color:var(--muted);font-size:.76rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.party-now{grid-column:1/-1;color:var(--yellow);font-size:1.6rem;font-weight:1000}
.hero-lead{max-width:660px;margin:24px auto 28px;color:#f3dfee;font-size:clamp(1.03rem,2.3vw,1.2rem);line-height:1.65}
.btn{display:inline-block;width:fit-content;padding:15px 22px;border:0;border-radius:13px;font-weight:1000;cursor:pointer;text-decoration:none;font-size:1rem}.primary{background:linear-gradient(90deg,var(--hotpink),var(--purple));color:white;box-shadow:0 0 28px rgba(255,43,214,.33)}.secondary{color:var(--cyan);border:1px solid rgba(57,239,255,.42);background:rgba(57,239,255,.06)}.hero-button{padding:16px 28px;font-size:1.05rem}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:10px 0 22px}.info-card,.panel{border:1px solid rgba(255,79,163,.25);border-radius:22px;background:linear-gradient(180deg,rgba(28,6,41,.9),rgba(13,3,23,.9));box-shadow:0 16px 70px rgba(0,0,0,.28)}.info-card{padding:27px 24px;min-height:230px}.eyebrow{color:var(--cyan);font-weight:1000;letter-spacing:.18em;font-size:.77rem}.info-card h2,.panel h2{margin:9px 0 12px;font-size:clamp(1.55rem,3.4vw,2.4rem);line-height:1.04}.info-card p,.panel p{color:var(--muted);line-height:1.65}.panel{padding:clamp(22px,5vw,42px);margin-bottom:22px}.panel h1{font-size:clamp(2.3rem,7vw,4.5rem);line-height:.92;margin:14px 0 22px;letter-spacing:-.045em}.invitation-note{text-align:center;padding-top:44px;padding-bottom:44px}.invitation-note h2,.deadline{color:#ffd17b!important}.narrow{max-width:620px;margin-left:auto;margin-right:auto}
.form{display:grid;gap:18px}label{font-weight:750}input[type=text],input[type=password],input[name=name],input[name=code]{width:100%;margin-top:8px;padding:15px 16px;border-radius:12px;border:1px solid rgba(57,239,255,.28);background:rgba(0,0,0,.28);color:white;font-size:1rem;outline:none}input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(57,239,255,.1)}
.attendance{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{padding:18px;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:white;font-weight:900;cursor:pointer}.choice.active{border-color:var(--cyan);box-shadow:inset 0 0 0 1px var(--cyan),0 0 25px rgba(57,239,255,.12)}
.songs{display:grid;gap:10px;margin:24px 0}.song{display:flex;align-items:center;gap:14px;padding:15px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);border-radius:14px;cursor:pointer}.song input{width:21px;height:21px;accent-color:var(--hotpink)}.song-copy{flex:1}.song-copy strong,.song-copy small{display:block}.song-copy small{margin-top:3px;color:var(--muted)}.badge{min-width:44px;text-align:center;color:var(--cyan);font-weight:1000;font-size:1.05rem}
.flash{padding:14px 16px;border-radius:12px;margin-bottom:16px;border:1px solid rgba(255,255,255,.12)}.flash.success{background:rgba(57,239,255,.1)}.flash.error{background:rgba(255,43,80,.13)}
.stats{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0}.stats div{padding:18px;border:1px solid rgba(57,239,255,.22);background:rgba(10,4,19,.56);border-radius:16px}.stats strong,.stats span{display:block}.stats strong{font-size:2rem;color:var(--cyan)}.stats span{margin-top:4px;color:var(--muted)}
.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 10px;border-bottom:1px solid rgba(255,255,255,.09)}th{color:var(--cyan)}
.site-footer{width:min(980px,calc(100% - 28px));margin:0 auto 34px;display:flex;justify-content:space-between;gap:16px;color:#9f87a8;font-size:.84rem}.footer-neon{color:var(--pink);text-shadow:0 0 13px rgba(255,79,163,.35)}
@media(max-width:760px){.info-grid{grid-template-columns:1fr}.info-card{min-height:0}.disco-ball{width:145px;height:145px;left:-45px;top:10px;background-size:20px 20px,20px 20px,auto}.hero-v2{min-height:73vh;padding-top:92px}.countdown{gap:7px}.countdown>div{padding:14px 4px 11px}}
@media(max-width:680px){.stats,.attendance{grid-template-columns:1fr}.site-header{align-items:flex-start;padding-top:18px}nav{font-size:.88rem;justify-content:flex-end}.site-footer{flex-direction:column;align-items:center;text-align:center}}
@media(max-width:450px){.wrap{width:min(100% - 20px,980px)}.site-header{width:min(100% - 22px,1100px)}.brand span{font-size:.9rem}.brand small{font-size:.54rem}.countdown strong{font-size:1.65rem}.countdown span{font-size:.64rem;letter-spacing:.08em}}
