.birthday-page{min-height:100vh;padding:1.5rem 1rem 3rem;position:relative}.confetti-burst{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;background:radial-gradient(circle at 50% 50%,transparent 0%,transparent 40%,rgba(232,180,188,.3) 50%,transparent 60%);animation:confettiPulse .5s ease-out}.confetti-burst:before,.confetti-burst:after{content:"";position:absolute;width:100%;height:100%;background-image:radial-gradient(circle,#e8b4bc 2px,transparent 2px),radial-gradient(circle,#c4a35a 2px,transparent 2px),radial-gradient(circle,#c9a9a6 2px,transparent 2px);background-size:50px 50px,80px 80px,60px 60px;background-position:0 0,40px 20px,20px 40px;animation:confettiFall 2s ease-in-out forwards;opacity:.8}@keyframes confettiPulse{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1)}to{opacity:.8}}@keyframes confettiFall{0%{opacity:0;transform:translateY(-20px)}20%{opacity:.8}to{opacity:.6;transform:translateY(10px)}}.birthday-header{text-align:center;padding:2rem 0 3rem;max-width:36rem;margin:0 auto}.date-badge{display:inline-block;padding:.35rem .9rem;background:linear-gradient(135deg,var(--blush) 0%,var(--blush-dark) 100%);color:var(--burgundy);font-size:.8rem;font-weight:600;letter-spacing:.08em;border-radius:2rem;margin-bottom:1rem;text-transform:uppercase}.birthday-title{font-size:clamp(2rem,8vw,3.2rem);font-weight:600;color:var(--charcoal);line-height:1.2;margin-bottom:.75rem;white-space:nowrap}.name-flip-wrapper{display:inline-block;perspective:120px;vertical-align:bottom}.name-flip-wrapper .name-accent{background:linear-gradient(135deg,var(--burgundy),var(--rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.name-flip-sizer{visibility:hidden;display:inline-block;font:inherit;pointer-events:none}.name-flip{display:inline-block;background:linear-gradient(135deg,var(--burgundy),var(--rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:absolute;left:0;top:0;transform-origin:center bottom;backface-visibility:hidden}.name-flip-wrapper{position:relative;display:inline-block;min-width:10ch;text-align:center}.name-flip-out{position:relative;z-index:2;animation:flipOut .45s ease-in forwards}.name-flip-in{z-index:1;animation:flipIn .45s ease-out forwards}@keyframes flipOut{0%{transform:rotateX(0)}to{transform:rotateX(-90deg)}}@keyframes flipIn{0%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.name-accent{background:linear-gradient(135deg,var(--burgundy),var(--rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.birthday-subtitle{font-size:1rem;color:var(--rose);font-weight:300;margin-bottom:1.5rem}.celebrate-btn{padding:.65rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:500;color:var(--cream);background:linear-gradient(135deg,var(--burgundy) 0%,var(--rose) 100%);border:none;border-radius:2rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.celebrate-btn:hover{transform:scale(1.03);box-shadow:0 6px 20px #722f3740}.celebrate-btn:active{transform:scale(.98)}.favorites-section{padding:2rem 0}.favorites-section h2{font-size:1.5rem;font-weight:600;color:var(--charcoal);text-align:center;margin-bottom:1.5rem}.favorites-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;max-width:28rem;margin:0 auto}.favorite-card{background:var(--soft-white);padding:1.25rem;border-radius:1rem;text-align:center;box-shadow:0 4px 16px #0000000f;border:1px solid rgba(232,180,188,.3);transition:transform .2s,box-shadow .2s}.favorite-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #e8b4bc33}.favorite-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:.75rem;margin-bottom:.75rem}.favorite-image--top{object-position:top center}.favorite-card h3{font-size:1rem;font-weight:600;color:var(--charcoal);margin-bottom:.25rem}.favorite-card p{font-size:.8rem;color:var(--rose);font-weight:300;line-height:1.3}.wish-section{padding:2rem 0}.wish-card{max-width:28rem;margin:0 auto;padding:2rem;background:linear-gradient(145deg,#e8b4bc40,#c9a9a626);border-radius:1.25rem;border:1px solid rgba(232,180,188,.4)}.wish-card h2{font-size:1.25rem;font-weight:600;color:var(--burgundy);margin-bottom:1rem}.wish-card p{font-size:.95rem;line-height:1.6;color:var(--charcoal);font-weight:300}.wish-card .sign-off{margin-top:1rem;font-weight:500;color:var(--rose)}.birthday-footer{text-align:center;padding:2rem 1rem;font-size:.8rem;color:var(--rose);font-weight:300}@media (min-width: 480px){.birthday-page{padding:2rem 2rem 4rem}.favorites-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}@media (min-width: 768px){.birthday-page{padding:3rem 2rem 5rem}.birthday-header{padding:3rem 0 4rem}.favorites-grid{max-width:36rem}.wish-card{max-width:32rem}}.valentine-page{min-height:100vh;padding:1.5rem 1rem 3rem;position:relative;overflow:hidden}.valentine-hearts{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.floating-heart{position:absolute;font-size:1.2rem;opacity:.2;animation:floatHeart 8s ease-in-out infinite;animation-delay:calc(var(--i) * -.6s)}.floating-heart:nth-child(odd){left:calc(var(--i) * 8%);top:10%}.floating-heart:nth-child(2n){right:calc(var(--i) * 6%);top:60%}@keyframes floatHeart{0%,to{transform:translateY(0) rotate(0);opacity:.2}50%{transform:translateY(-20px) rotate(10deg);opacity:.35}}.valentine-header{position:relative;z-index:1;text-align:center;padding:2rem 0 2.5rem}.valentine-badge{display:inline-block;padding:.35rem .9rem;background:linear-gradient(135deg,#e8b4bc,#d4a5ad);color:var(--burgundy);font-size:.8rem;font-weight:600;letter-spacing:.08em;border-radius:2rem;margin-bottom:1rem}.valentine-header h1{font-size:clamp(1.8rem,7vw,2.8rem);font-weight:600;color:var(--burgundy);margin-bottom:.5rem}.valentine-subtitle{font-size:.95rem;color:var(--rose);font-weight:300}.valentine-content{position:relative;z-index:1;padding:1rem 0}.valentine-card{max-width:28rem;margin:0 auto;padding:2rem;background:linear-gradient(145deg,#e8b4bc59,#c9a9a633);border-radius:1.25rem;border:1px solid rgba(232,180,188,.5)}.valentine-image-wrapper{width:100%;aspect-ratio:4/3;border-radius:1rem;overflow:hidden;margin-bottom:1.5rem;background:#e8b4bc33}.valentine-main-image{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .5s ease}.valentine-image-reveal{animation:imageReveal .6s ease-out}@keyframes imageReveal{0%{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.valentine-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;position:relative;min-height:2.75rem}.valentine-btn{padding:.65rem 1.75rem;font-family:inherit;font-size:1rem;font-weight:600;border:none;border-radius:2rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.valentine-btn-yes{color:var(--cream);background:linear-gradient(135deg,var(--burgundy) 0%,var(--rose) 100%)}.valentine-btn-yes:hover{transform:scale(1.05);box-shadow:0 6px 20px #722f3759}.valentine-btn-no{color:var(--burgundy);background:#e8b4bc80;transition:left .15s ease-out,top .15s ease-out,transform .2s,box-shadow .2s,background .2s}.valentine-btn-no:hover{background:#e8b4bcb3}.valentine-yes-message{font-size:1.1rem;font-weight:600;color:var(--burgundy);text-align:center;margin-top:.5rem;animation:fadeIn .5s ease-out}.flower-emojis{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;overflow:hidden}.flower-emoji{position:absolute;font-size:1.8rem;top:-10%;animation:flowerFall 4s ease-in forwards}@keyframes flowerFall{0%{opacity:0;transform:translateY(0) rotate(0)}15%{opacity:1;transform:translateY(0) rotate(0)}to{opacity:.8;transform:translateY(100vh) rotate(360deg)}}.valentine-card h2{font-size:1.25rem;font-weight:600;color:var(--burgundy);margin-bottom:1rem}.valentine-card.valentine-ask-card h2{font-size:1.35rem;margin-bottom:1.25rem;text-align:center}.valentine-card p{font-size:.95rem;line-height:1.65;color:var(--charcoal);font-weight:300;margin-bottom:1rem}.valentine-card p:last-of-type{margin-bottom:1.5rem}.heart-btn{padding:.6rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:500;color:var(--cream);background:linear-gradient(135deg,var(--burgundy) 0%,var(--rose) 100%);border:none;border-radius:2rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.heart-btn:hover{transform:scale(1.03);box-shadow:0 6px 20px #722f3740}.heart-message{margin-top:1rem!important;font-weight:500;color:var(--burgundy);animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.valentine-footer{position:relative;z-index:1;text-align:center;padding:2rem 1rem;font-size:.8rem;color:var(--rose);font-weight:300}@media (min-width: 480px){.valentine-page{padding:2rem 2rem 4rem}.valentine-card{padding:2.5rem}}@media (min-width: 768px){.valentine-page{padding:3rem 2rem 5rem}.valentine-card{max-width:32rem}}*{margin:0;padding:0;box-sizing:border-box}:root{--blush: #e8b4bc;--blush-dark: #d4a5ad;--rose: #c9a9a6;--cream: #fff8f5;--gold: #c4a35a;--burgundy: #722f37;--charcoal: #2d2d2d;--soft-white: #fefefe}html{scroll-behavior:smooth}body{font-family:Outfit,sans-serif;background:var(--cream);color:var(--charcoal);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Cormorant Garamond,serif}
