:root{--ink:#24324a;--blue:#78c8e8;--yellow:#ffd75a;--pink:#ff9db7;--cream:#fff8e7;--paper:#fffdf8;--shadow:0 18px 50px rgba(62,72,92,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Comfortaa",system-ui,sans-serif;overflow-x:hidden}main{width:min(100%,760px);margin:auto;background:var(--paper);box-shadow:0 0 80px rgba(82,68,42,.08)}
.hero{min-height:100svh;padding:42px 22px 54px;text-align:center;position:relative;background:radial-gradient(circle at 8% 13%,#fff 0 5px,transparent 6px),radial-gradient(circle at 90% 27%,#ffe178 0 8px,transparent 9px),linear-gradient(165deg,#fffdf8,#fff4d9)}
.eyebrow{display:inline-block;background:var(--blue);color:white;border-radius:99px;padding:9px 16px;font-size:11px;font-weight:700;letter-spacing:1.4px;box-shadow:0 6px 0 #53acd1}.kicker{margin:26px 0 0;color:#69748a;font-size:15px}.hero h1{font-family:"Marck Script",cursive;font-size:clamp(66px,19vw,104px);line-height:.95;color:#f29ab4;margin:2px 0 18px;text-shadow:3px 3px 0 white}
.photo-frame{position:relative;width:min(82vw,360px);aspect-ratio:4/5;margin:0 auto 28px;padding:9px;background:white;border-radius:48% 48% 24px 24px;box-shadow:var(--shadow);transform:rotate(-1deg)}.photo-frame:before{content:"";position:absolute;inset:-13px;border:3px dashed #ffd15a;border-radius:49% 49% 30px 30px}.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:center 30%;border-radius:47% 47% 18px 18px;display:block}.star{position:absolute;color:#ffd13b;font-size:31px;filter:drop-shadow(0 3px 0 white);animation:float 2.8s ease-in-out infinite}.star-one{top:4%;right:-11%}.star-two{bottom:6%;left:-9%;font-size:23px;animation-delay:-1.3s}.intro{max-width:590px;margin:auto;font-size:15px;line-height:1.9}.scroll-cue{display:grid;place-items:center;margin:26px auto 0;width:42px;height:42px;border-radius:50%;background:white;color:#e884a4;text-decoration:none;box-shadow:0 8px 22px #e9d9b9;font-size:22px;animation:bob 1.8s infinite}
.wish-card{margin:0;padding:66px 27px;position:relative;overflow:hidden;text-align:center;background:#77c8e8;color:#fff}.wish-card p{position:relative;z-index:2;margin:0 auto;max-width:590px;font-size:16px;font-weight:600;line-height:2}.quote-mark{font-family:Georgia,serif;font-size:72px;position:absolute;top:18px;left:25px;color:#d9f4ff}.quote-mark.closing{top:auto;left:auto;right:25px;bottom:-16px}.cloud{position:absolute;width:110px;height:34px;background:rgba(255,255,255,.18);border-radius:50px}.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.cloud:before{width:48px;height:48px;left:17px;bottom:4px}.cloud:after{width:60px;height:60px;right:8px;bottom:2px}.cloud-left{left:-35px;bottom:15px}.cloud-right{right:-45px;top:30px}
.event-card{margin:38px 18px;padding:24px;background:white;border:2px solid #fff0c2;border-radius:28px;box-shadow:var(--shadow);display:grid;gap:22px}.date-badge{display:flex;align-items:center;justify-content:center;gap:17px;background:#fff4c7;border-radius:20px;padding:15px}.date-badge strong{font-size:48px;line-height:1;color:#ef89a5}.date-badge span{text-align:left;font-size:13px;line-height:1.65;font-weight:700}.detail{display:flex;align-items:flex-start;gap:14px;padding:0 6px}.icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:14px;background:#e8f7fc;color:#3eafd8;font-size:23px}.detail small{display:block;color:#8a93a5;font-size:10px;font-weight:700;letter-spacing:1px;margin-bottom:5px}.detail strong,.detail a{font-size:14px;line-height:1.65;color:var(--ink);text-decoration:none}
.parents{text-align:center;padding:14px 24px 45px}.parents>p{font-family:"Marck Script";font-size:30px;color:#ec8ba5;margin:0 0 15px}.parents div{display:flex;justify-content:center;gap:10px;margin:8px}.parents span{color:#8590a4;font-size:12px}.parents strong{font-size:13px}
.rsvp{padding:48px 20px 55px;background:#fff0f4;text-align:center}.mini-stars{color:#f2b72e;letter-spacing:10px}.rsvp h2{font-family:"Marck Script";font-size:43px;color:#e87f9e;margin:5px 0}.rsvp .kicker{margin-top:12px}.deadline{font-size:12px;color:#7d8799;margin-bottom:25px}form{max-width:520px;margin:auto;text-align:left}fieldset{border:0;padding:0;margin:0 0 18px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{cursor:pointer;display:flex;min-height:95px;padding:14px 8px;flex-direction:column;justify-content:center;align-items:center;gap:7px;border:2px solid transparent;border-radius:18px;background:white;text-align:center;transition:.2s}.choice span{font-size:25px}.choice b{font-size:11px}.choice input{position:absolute;opacity:0}.choice.selected{border-color:var(--pink);box-shadow:0 6px 18px rgba(255,117,154,.16);transform:translateY(-2px)}.field{display:block;margin:13px 0}.field>span{display:block;margin:0 0 7px 5px;font-size:12px;font-weight:700}.field em{font-style:normal;font-weight:500;color:#8d96a8}.field input,.field textarea{width:100%;border:2px solid #f1dde2;border-radius:14px;background:white;padding:14px 15px;font:inherit;font-size:14px;color:var(--ink);outline:none;resize:vertical}.field input:focus,.field textarea:focus{border-color:#f29ab4;box-shadow:0 0 0 4px rgba(242,154,180,.15)}.honey{position:absolute;left:-10000px}button{border:0;width:100%;padding:16px;border-radius:16px;background:linear-gradient(135deg,#ff9db7,#ef7899);color:white;font:700 14px "Comfortaa";cursor:pointer;box-shadow:0 8px 0 #d96183;transition:.15s}button:active{transform:translateY(5px);box-shadow:0 3px 0 #d96183}button:disabled{opacity:.65;cursor:wait}.form-status{min-height:22px;text-align:center;font-size:13px;font-weight:700;margin:17px 0 0}.form-status.success{color:#278562}.form-status.error{color:#bd3859}
footer{text-align:center;padding:36px 20px;background:#24324a;color:white}footer span,footer b{display:block}footer span{font-size:11px;opacity:.7}footer b{font-family:"Marck Script";font-size:26px;color:#ffd75a;margin-top:7px}.confetti i{position:fixed;z-index:10;width:9px;height:15px;border-radius:3px;top:-30px;animation:fall 8s linear infinite;pointer-events:none}.confetti i:nth-child(1){left:6%;background:#ff9db7;animation-delay:-1s}.confetti i:nth-child(2){left:23%;background:#78c8e8;animation-delay:-5s}.confetti i:nth-child(3){left:45%;background:#ffd75a;animation-delay:-3s}.confetti i:nth-child(4){left:64%;background:#acda82;animation-delay:-7s}.confetti i:nth-child(5){left:82%;background:#ff9db7;animation-delay:-2s}.confetti i:nth-child(6){left:94%;background:#78c8e8;animation-delay:-6s}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes float{50%{transform:translateY(-10px) rotate(9deg)}}@keyframes bob{50%{transform:translateY(7px)}}@keyframes fall{to{transform:translateY(110vh) rotate(600deg)}}
@media(min-width:620px){.hero{padding-inline:54px}.event-card{margin:50px auto;width:570px;padding:30px 42px}.wish-card p{font-size:18px}.rsvp{padding-inline:65px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important}}
