@font-face{font-family:Pacifico;src:url('/fonts/pacifico.ttf') format('truetype');font-display:swap}
@font-face{font-family:Fredoka;src:url('/fonts/fredoka-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Fredoka;src:url('/fonts/fredoka-600.ttf') format('truetype');font-weight:600 900;font-display:swap}
body{font-family:Fredoka,Arial,sans-serif;font-size:17px}
.brand{font-family:Fredoka,sans-serif;font-weight:600;letter-spacing:1.8px}
.eyebrow{font-family:Fredoka,sans-serif;font-weight:600;letter-spacing:2.3px}
.hero{padding-top:105px;padding-bottom:35px}
.hero .eyebrow{margin-bottom:17px;text-shadow:0 2px 10px #002f4f}
.welcome{font-family:Fredoka,sans-serif;font-style:normal;font-size:18px;letter-spacing:1px;color:#d9f9ff}
h1{margin:5px 0 12px;line-height:1.05;letter-spacing:0;filter:drop-shadow(0 6px 12px #001b5480)}
h1>span{display:block;position:relative}
.ivy-name{font:400 clamp(95px,16vw,155px)/1.35 Pacifico,cursive;padding:0 20px;background:linear-gradient(175deg,#fff 25%,#d3faff 45%,#67c8ff 64%,#f1ffff 83%);background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;letter-spacing:-5px;transform:rotate(-5deg)}
.magical-word{font:400 clamp(31px,6vw,51px)/1.2 Pacifico,cursive;color:#9cf9f0;text-shadow:0 2px 0 #0c6d9d,0 0 26px #68e5ff80;margin-top:-12px;transform:rotate(-5deg)}
.ocean-word{font:600 clamp(65px,10vw,97px)/1.12 Fredoka,sans-serif;letter-spacing:3px;background:linear-gradient(#fff 15%,#e0fbff 40%,#80dfff 70%,#e3ffff);background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;padding:0 15px 10px}
h1 .spark{font-family:Georgia,serif;font-size:36px;right:-10px;bottom:30px;-webkit-text-fill-color:#a6f8fa;text-shadow:0 0 20px #89f5ff}
.birthday{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 21px;text-align:left;font-size:23px;line-height:1.15;font-weight:600;color:#fff}
.birthday-age{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:65px;height:65px;border-radius:50%;font-size:45px;letter-spacing:-2px;color:#07367a;background:radial-gradient(circle at 30% 22%,#fff 0,#e6feff 27%,#96d9f7 61%,#82aee1 80%,#d2f6ff);border:2px solid #d3fcff;box-shadow:0 0 0 4px #9beaff20,0 6px 18px #001c6170,inset 0 0 9px #fff;text-shadow:0 1px white;transform:rotate(-9deg)}
.birthday-age>span{font-size:16px;align-self:flex-start;margin:14px 0 0 1px;letter-spacing:0}
.birthday small{display:block;font-size:12px;font-weight:400;color:#b9e9fc;margin-top:6px;letter-spacing:.4px}
.date-pill{position:relative;gap:20px;background:linear-gradient(120deg,#064473d9,#042c59d9);border:1px solid #92dfff90;border-radius:20px;padding:11px 20px;margin-bottom:23px;box-shadow:inset 0 1px 0 #eaffff40,0 7px 25px #001b4c60;text-shadow:none;min-width:265px}
.date-pill .date-day{text-align:center;font:600 10px/1.05 Fredoka,sans-serif;letter-spacing:2px;color:#bbf1ff;padding-right:20px;border-right:1px solid #a9eaff50}
.date-day strong{display:block;font-size:33px;color:#fff;letter-spacing:-1px;margin:2px 0}
.date-pill .date-time{font-size:12px;color:#b4eafb;letter-spacing:.3px;text-align:left}
.date-time strong{display:block;font:600 21px/1.3 Fredoka,sans-serif;color:#fff;letter-spacing:.3px;margin-top:5px}
.date-pill .date-star{position:absolute;right:-10px;top:-20px;color:#cbfaff;font-size:34px;filter:drop-shadow(0 0 10px #3fdaff)}
.button{position:relative;isolation:isolate;overflow:hidden;justify-content:center;gap:14px;border-radius:40px;padding:16px 24px;min-height:61px;font:600 18px Fredoka,sans-serif;letter-spacing:.3px;color:white;border:1px solid #c7f7ff;background:linear-gradient(180deg,#84eaff 0%,#289fe8 42%,#147ad0 60%,#1264ba 100%);box-shadow:inset 0 2px 0 #e5ffffb0,inset 0 -3px 0 #073b8b80,0 5px 0 #043c89,0 9px 0 #031c4133,0 10px 32px #0ba7ff60;text-shadow:0 2px 2px #00488f;transition:transform .2s,filter .2s}
.button::before{content:'';position:absolute;z-index:-1;inset:3px 12px 50%;border-radius:50%;background:linear-gradient(#ffffff65,#ffffff00);pointer-events:none}
.button::after{content:'';position:absolute;top:-50%;bottom:-50%;width:40px;background:linear-gradient(90deg,transparent,#fff5,transparent);transform:rotate(25deg);left:-70px;animation:pearl-shine 7s ease-in-out infinite;pointer-events:none}
.button:hover{background:linear-gradient(#a3f2ff,#339ce9 52%,#146cbd);transform:translateY(-2px);filter:brightness(1.09)}
.button:active{transform:translateY(3px);box-shadow:inset 0 2px 5px #002c7880,0 2px 0 #043c89,0 6px 22px #0ba7ff50}
.button-shell{font-size:25px;filter:drop-shadow(0 2px 2px #003e6b70)}
.button-arrow{width:28px;height:28px;border-radius:50%;background:#ffffff20;font-size:18px;display:grid;place-items:center}
.hero .tiny{margin-top:18px;color:#ceefff;opacity:1;font-size:13px}
.scroll{margin-top:8px;font-size:28px}
.panel{position:relative;border-radius:30px;border:1px solid #82d8ff90;background:radial-gradient(ellipse at 0 0,#167aa74d,transparent 60%),linear-gradient(145deg,#063e68f5,#031f49f5);box-shadow:inset 0 1px 0 #cbf7ff50,inset 0 -1px 0 #44aaff40,0 15px 65px #00183390;padding:40px}
.panel::before{content:'✧';position:absolute;right:24px;top:20px;font-size:36px;line-height:1;color:#9be8ff;text-shadow:0 0 15px #60d5ff80}
h2{font:400 38px/1.4 Pacifico,cursive;color:#d2f9ff;letter-spacing:-.5px;text-shadow:0 3px 0 #075181,0 0 24px #3ba8ff35;margin-bottom:18px}
.panel>p{font-size:16px;color:#c6e7f4;line-height:1.65}
.panel .eyebrow{font-size:10px;max-width:85%;color:#91e9ff}
.details{gap:13px;border:0;padding:0;margin:25px 0}
.details>div{padding:22px 18px;border-radius:20px;background:linear-gradient(145deg,#1677ad55,#0a315d80);border:1px solid #66bfe95e;box-shadow:inset 0 1px 0 #ffffff19;position:relative}
.detail-icon{font-style:normal;font-size:28px;display:block;color:#a6edff;margin-bottom:9px;line-height:1}
.details span{font-size:10px;letter-spacing:1.8px;color:#92dbfa;font-weight:600}
.details strong{font-size:18px;font-weight:600;line-height:1.4;display:block;margin-top:8px}
.details p{font-size:16px;margin:6px 0 0;color:#bfe5fb}
.host{background:#9fe4ff0c;border-radius:15px;padding:14px 18px;text-align:center}
.host a{display:inline-block;color:#9deeff;font-weight:600;text-underline-offset:4px}
legend{font-size:17px;font-weight:600}
.choices{gap:14px}
.choices span{align-items:center;text-align:center;padding:18px 8px 21px;border:1px solid #6ac8f890;border-radius:23px;background:linear-gradient(150deg,#1675b340,#0c285a70);box-shadow:inset 0 1px 0 #ffffff20,0 5px 15px #001b3c50;transition:transform .2s,background .2s}
.choices label:hover span{transform:translateY(-3px);background:#207fa744}
.choice-icon{font-size:43px;font-style:normal;filter:drop-shadow(0 3px 6px #001d4060);line-height:1.4}
.choices b{font-size:19px;font-weight:600;color:#e6faff}
.choices small{font-size:11px;margin-top:5px;color:#abd6ef}
.choices input:checked+span{border:2px solid #b6f7ff;background:linear-gradient(140deg,#319dce70,#2260a680);padding:17px 7px 20px;box-shadow:0 0 0 3px #80dfff22,inset 0 1px 0 #ffffff40,0 6px 20px #067dca50}
.field{font-size:16px;font-weight:600;margin:24px 0}
.field input,.field textarea{font-family:Fredoka,Arial,sans-serif;font-size:16px;font-weight:400;border-radius:15px;background:#001d4070;border:1px solid #80c7ef6e;padding:16px;box-shadow:inset 0 3px 8px #00132f40}
.field small{font-size:12px;font-weight:400;color:#abcfe5;margin-top:9px}
.privacy{font-size:12px;line-height:1.65}.secondary{font-family:Fredoka,sans-serif;font-size:15px;border-radius:30px;background:#173e6970;padding:16px}.success-icon{filter:drop-shadow(0 0 20px #2aaaff);color:#b3f4ff}h3{font-family:Pacifico,cursive;font-size:30px;line-height:1.5}#saved{font-size:16px}footer{font-size:13px}
@keyframes pearl-shine{0%,65%{left:-70px}90%,100%{left:125%}}
@media(min-width:700px){.hero{min-height:980px}.hero-cta{min-width:290px}.birthday{font-size:26px}}
@media(max-width:600px){.hero{padding:90px 18px 23px;min-height:830px;min-height:max(830px,100svh)}.hero .eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:14px}.welcome{font-size:16px}.ivy-name{font-size:112px}.magical-word{font-size:38px}.ocean-word{font-size:77px}.birthday{margin-bottom:20px}.hero-cta{min-width:272px}.date-pill{margin-bottom:24px}.panel{padding:30px 23px;border-radius:25px;margin-top:25px}h2{font-size:31px}.panel::before{right:15px;top:18px;font-size:27px}.details{grid-template-columns:1fr;gap:12px}.details>div{padding:19px 20px 19px 66px}.detail-icon{position:absolute;left:21px;top:25px}.details strong{font-size:19px}.details p{font-size:16px}.choices b{font-size:17px}.choices small{font-size:10px}.panel .eyebrow{font-size:9px;letter-spacing:1.7px}.host{font-size:14px!important;padding:13px 8px}}
@media(max-width:360px){.ivy-name{font-size:100px}.ocean-word{font-size:68px}.choices b{font-size:15px}.choices small{font-size:9px}.birthday{font-size:21px}.panel{margin-left:12px;margin-right:12px;padding:28px 19px}}
@media(prefers-reduced-motion:reduce){.button::after{animation:none}}
