:root{color:#20152f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#fff7ad 0%,#ffd6e8 45%,#c9f4ff 100%);font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button{font-family:inherit}.birthday-app{place-items:center;min-height:100dvh;padding:18px;display:grid;position:relative;overflow-x:hidden}.background-orb{filter:blur(20px);opacity:.35;pointer-events:none;border-radius:999px;width:360px;height:360px;position:fixed}.orb-one{background:#ffd6e8;top:-120px;left:-100px}.orb-two{background:#c9f4ff;bottom:-120px;right:-120px}.intro-card,.loading-card,.section-card,.final-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffb8;border:1px solid #ffffffb3;border-radius:32px;width:min(720px,100%);padding:42px;animation:.7s both cardIn;box-shadow:0 24px 80px #5241782e}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#9b5de5;margin:0 0 12px;font-size:.75rem;font-weight:800}h1,h2{color:#20152f;margin:0;line-height:1.05}h1{font-size:clamp(2.6rem,8vw,5.8rem)}h2{font-size:clamp(2rem,5vw,4rem)}.intro-copy{color:#62536f;max-width:560px;margin:22px auto 32px;font-size:1.1rem}.primary-button{font:inherit;color:#fff;cursor:pointer;background:linear-gradient(135deg,#9b5de5,#f15bb5);border:0;border-radius:999px;padding:16px 28px;font-weight:800;transition:transform .18s,box-shadow .18s;box-shadow:0 14px 30px #9b5de54d}.primary-button:hover{transform:translateY(-3px);box-shadow:0 18px 36px #9b5de566}.progress-track{background:#2b2d66;border-radius:999px;height:26px;margin-top:30px;overflow:hidden;box-shadow:inset 0 2px 8px #0003,0 4px 12px #0000001a}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#67c08b 0%,#2eb8c7 50%,#3696e0 100%);height:100%;box-shadow:0 0 15px #2eb8c773,0 0 30px #2eb8c733}.progress-text{color:#62536f;margin-top:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.progress-fill-wrap{height:100%;clip-path:inherit;transition:width .12s;overflow:hidden}.item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:30px;display:grid}.card-image{width:140px;max-width:85%;height:auto}.info-pill{text-align:center;color:#342244;opacity:0;background:#ffffffbf;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:220px;padding:18px;animation:.6s forwards pillIn;display:flex;transform:translateY(16px)scale(.98);box-shadow:0 10px 24px #5241781f}.final-card{gap:30px;display:grid}.birthday-message{white-space:pre-wrap;text-align:left;color:#342244;margin:0;font-family:inherit;font-size:clamp(1rem,2.6vw,1.2rem);line-height:1.65}.cake{width:220px;height:190px;margin:0 auto;animation:.9s both cakePop;position:relative}.plate{background:#dfe7fd;border-radius:999px;width:184px;height:22px;position:absolute;bottom:0;left:18px}.cake-bottom,.cake-middle,.cake-top{border-radius:18px;width:150px;position:absolute;left:35px;box-shadow:inset 0 -8px #00000012}.cake-bottom{background:#9b5de5;height:48px;animation:.5s both dropIn;bottom:18px}.cake-middle{background:#f15bb5;height:42px;animation:.5s .18s both dropIn;bottom:62px}.cake-top{background:#fee440;height:36px;animation:.5s .36s both dropIn;bottom:100px}.candle{background:repeating-linear-gradient(45deg,#fff 0 6px,#00bbf9 6px 12px);border-radius:999px;width:14px;height:42px;animation:.5s .6s both dropIn;position:absolute;bottom:132px;left:103px}.flame{z-index:2;background:#ff9f1c;border-radius:999px 999px 999px 0;width:18px;height:26px;animation:.8s infinite alternate flameFlicker;position:absolute;bottom:172px;left:101px;transform:rotate(-45deg)}.replay-button{font:inherit;color:#fff;cursor:pointer;background:linear-gradient(135deg,#9b5de5,#f15bb5);border:0;border-radius:999px;justify-self:center;padding:14px 24px;font-weight:800;transition:transform .18s,box-shadow .18s;box-shadow:0 14px 30px #9b5de54d}.replay-button:hover{transform:translateY(-3px);box-shadow:0 18px 36px #9b5de566}@keyframes cardIn{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pillIn{to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cakePop{0%{transform:scale(.85)}to{transform:scale(1)}}@keyframes dropIn{0%{opacity:0;transform:translateY(-80px)rotate(-4deg)}to{opacity:1;transform:translateY(0)rotate(0)}}.mobile-single-card{display:none}@media (width<=640px){.desktop-grid{display:none}.mobile-single-card{margin-top:30px;display:grid}.mobile-info-pill{min-height:380px;animation:.7s both mobileCardFade}.mobile-info-pill .card-image{width:240px;max-width:95%;height:auto}}@keyframes mobileCardFade{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes flameFlicker{0%{opacity:.85;transform:rotate(-45deg)scale(1)}to{opacity:1;transform:rotate(-42deg)scale(1.12)}}@media (width<=640px){.birthday-app{align-content:center;place-items:stretch stretch;padding:14px}.intro-card,.loading-card,.section-card,.final-card{border-radius:24px;width:100%;padding:26px 18px}.intro-copy{font-size:1rem}.primary-button{width:100%;padding:16px 20px}.item-grid{grid-template-columns:1fr}.info-pill{padding:15px 16px}.cake{margin-block:-10px;transform:scale(.86)}.birthday-message{font-size:.98rem;line-height:1.6}.replay-button{width:100%;padding:16px 20px}}
