.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:2rem}.hero-background{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#0a0e27,#1a1f3a,#2d1b3d,#4a148c,#6a1b9a);z-index:0;animation:gradientShift 15s ease infinite;background-size:200% 200%}.hero-background:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 30% 50%,rgba(255,179,217,.25) 0%,rgba(255,105,180,.15) 30%,transparent 60%);animation:pulseGlow 8s ease-in-out infinite}.hero-background:after{content:"";position:absolute;top:0;right:0;width:100%;height:100%;background:radial-gradient(circle at 70% 50%,rgba(118,75,162,.25) 0%,rgba(138,43,226,.15) 30%,transparent 60%);animation:pulseGlow 10s ease-in-out infinite reverse}@keyframes pulseGlow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.hero-content{position:relative;z-index:10;max-width:1200px;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;opacity:1!important;transform:none!important}.hero-text{display:flex;flex-direction:column;gap:0;align-items:center;width:100%;text-align:center}.birthday-header{display:flex;align-items:center;justify-content:flex-start;gap:.75rem;margin-bottom:.5rem;animation:fadeInDown .8s ease-out forwards;opacity:0}.birthday-text{font-size:1.5rem;font-weight:600;color:#ffb3d9;text-transform:uppercase;letter-spacing:.15em;text-shadow:0 0 20px rgba(255,179,217,.8),0 0 40px rgba(255,179,217,.4);animation:glow 2s ease-in-out infinite}.birthday-sparkle{font-size:1.3rem;animation:sparkleRotate 3s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,255,255,.8))}@keyframes glow{0%,to{text-shadow:0 0 20px rgba(255,179,217,.8),0 0 40px rgba(255,179,217,.4)}50%{text-shadow:0 0 30px rgba(255,179,217,1),0 0 60px rgba(255,179,217,.6),0 0 80px rgba(255,179,217,.4)}}@keyframes sparkleRotate{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.2)}}.hero-title{font-size:4.5rem;font-weight:800;line-height:1.15;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.3rem;font-family:Georgia,Times New Roman,serif;letter-spacing:-.02em}.title-line{display:block;position:relative;animation:fadeInUp 1s ease-out forwards;opacity:0}.hero-content .title-line{animation:fadeInUp 1s ease-out forwards}.hero-content .title-line-1{animation:fadeInUp 1s ease-out .2s forwards}.hero-content .title-line-2{animation:gradientText 3s ease infinite,fadeInUp 1s ease-out .4s forwards}.hero-content .title-line-3{animation:fadeInUp 1s ease-out .6s forwards}.title-line-1{font-size:.45em;color:#ffffffd9;text-shadow:0 0 15px rgba(255,255,255,.3);animation-delay:.2s;font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.2rem}.title-line-2{background:linear-gradient(135deg,#ff6b9d,#ff8cc8,#ffb3d9,#ffd6e8,#ffebf5,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:200% 200%;animation:gradientText 3s ease infinite,fadeInUp 1s ease-out .4s forwards;filter:drop-shadow(0 0 20px rgba(255,179,217,.6)) drop-shadow(0 0 40px rgba(255,179,217,.3));font-size:1.2em;font-weight:900;position:relative;margin:.3rem 0}.title-line-2:after{content:"";position:absolute;bottom:-10px;left:0;width:60%;height:3px;background:linear-gradient(90deg,#ff6b9d,#ffb3d9,transparent);border-radius:2px;box-shadow:0 0 15px #ffb3d9cc}.title-line-3{font-size:.4em;color:#ffffffbf;text-shadow:0 0 10px rgba(255,255,255,.2);animation-delay:.6s;font-weight:400;letter-spacing:.1em;font-style:italic;margin-top:.5rem}@keyframes gradientText{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.hero-subtitle{font-size:1.2rem;color:#ffffffe6;font-weight:400;line-height:1.9;margin-bottom:1rem;font-style:italic;letter-spacing:.03em;display:flex;flex-direction:column;gap:.4rem;animation:fadeInUp 1s ease-out .8s forwards;opacity:0;will-change:opacity,transform}.subtitle-line{display:block;text-shadow:0 1px 3px rgba(0,0,0,.3)}.highlight-word{color:#ffd6e8;font-weight:500;position:relative;display:inline-block;text-shadow:0 0 15px rgba(255,179,217,.6),0 0 30px rgba(255,179,217,.3);transition:all .3s ease}.highlight-word:hover{color:#ffb3d9;text-shadow:0 0 20px rgba(255,179,217,.8),0 0 40px rgba(255,179,217,.5);transform:translateY(-2px)}@keyframes wordFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hero-note{font-size:1.05rem;color:#fffc;font-style:italic;display:flex;align-items:flex-start;gap:.7rem;margin-top:1rem;padding:1rem 1.5rem;background:#ffffff08;border-left:3px solid rgba(255,179,217,.5);border-radius:8px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fadeInUp 1s ease-out 1.2s forwards;opacity:0;will-change:opacity,transform}.note-icon{font-size:1.3rem;animation:rotateGlow 3s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(255,255,255,.6));flex-shrink:0;margin-top:2px}.note-text{line-height:1.7;letter-spacing:.02em}@keyframes rotateGlow{0%,to{transform:rotate(0) scale(1);opacity:1}50%{transform:rotate(180deg) scale(1.2);opacity:.8}}.highlight{color:#ffb3d9;font-weight:600;text-shadow:0 0 15px rgba(255,179,217,.8),0 0 30px rgba(255,179,217,.4);animation:highlightPulse 2s ease-in-out infinite;position:relative}.highlight:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#ffb3d9,transparent);animation:shimmer 2s ease-in-out infinite}@keyframes highlightPulse{0%,to{text-shadow:0 0 15px rgba(255,179,217,.8),0 0 30px rgba(255,179,217,.4)}50%{text-shadow:0 0 25px rgba(255,179,217,1),0 0 50px rgba(255,179,217,.6)}}@keyframes shimmer{0%{transform:translate(-100%);opacity:0}50%{opacity:1}to{transform:translate(100%);opacity:0}}.hero-buttons{display:flex;gap:1rem;margin-top:0;flex-wrap:wrap;justify-content:center;align-items:center}.cta-button{padding:1rem 2rem;font-size:1rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;text-transform:none;font-family:Inter,sans-serif;position:relative;overflow:hidden;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.button-shine{position:absolute;top:-50%;left:-100%;width:50%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:skew(-20deg);animation:shine 3s infinite}@keyframes shine{0%{left:-100%}50%,to{left:200%}}.button-text{position:relative;z-index:1;display:flex;align-items:center;gap:.5rem}.cta-button.primary{background:linear-gradient(135deg,#e74c8c,#ff6b9d,#ff8cc8);color:#fff;box-shadow:0 4px 20px #ff6b9d80;background-size:200% 200%;animation:buttonGradient 3s ease infinite}@keyframes buttonGradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.cta-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 30px #ff6b9db3}.cta-button.secondary{background:#ffffff26;color:#ffb3d9f2;border:2px solid rgba(255,255,255,.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.cta-button.secondary:hover{background:#ffffff40;border-color:#ffffff80;transform:translateY(-2px);color:#fff}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.hero-image{position:relative;display:flex;justify-content:center;align-items:center;z-index:10;opacity:1}.image-frame{position:relative;padding:20px;animation:fadeInScale 1s ease-out .5s forwards;opacity:0}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.frame-corner{position:absolute;width:30px;height:30px;border:3px solid;border-image:linear-gradient(135deg,#ff6b9d,#ffb3d9) 1;z-index:2;animation:cornerGlow 3s ease-in-out infinite}@keyframes cornerGlow{0%,to{box-shadow:0 0 10px #ff6b9d80}50%{box-shadow:0 0 20px #ff6b9dcc}}.frame-corner.tl{top:0;left:0;border-right:none;border-bottom:none}.frame-corner.tr{top:0;right:0;border-left:none;border-bottom:none}.frame-corner.bl{bottom:0;left:0;border-right:none;border-top:none}.frame-corner.br{bottom:0;right:0;border-left:none;border-top:none}.image-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120%;height:120%;background:radial-gradient(circle,rgba(255,107,157,.3),transparent 70%);z-index:-1;animation:glowPulse 4s ease-in-out infinite;pointer-events:none}@keyframes glowPulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.1)}}.portrait-photo{width:100%;max-width:450px;height:auto;border-radius:25px;box-shadow:0 25px 80px #0009,0 0 60px #ffb3d966,inset 0 0 40px #ffffff1a;border:3px solid rgba(255,255,255,.3);object-fit:cover;position:relative;animation:photoFloat 6s ease-in-out infinite;filter:brightness(1.05) contrast(1.05);opacity:1;display:block}.portrait-photo:before{content:"";position:absolute;top:-5px;left:-5px;right:-5px;bottom:-5px;border-radius:25px;background:linear-gradient(135deg,#ff6b9d4d,#8a2be24d,#ff6b9d4d);background-size:200% 200%;z-index:-1;animation:borderGlow 4s ease infinite,photoFloat 6s ease-in-out infinite;opacity:.6}@keyframes photoFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(1deg)}}@keyframes borderGlow{0%,to{background-position:0% 50%;opacity:.6}50%{background-position:100% 50%;opacity:.8}}.floating-hearts{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.heart{position:absolute;font-size:1.5rem;opacity:.6;animation:floatUp 4s ease-in-out infinite}@keyframes floatUp{0%,to{transform:translateY(0) translate(0) scale(1);opacity:.6}50%{transform:translateY(-30px) translate(10px) scale(1.1);opacity:.8}}.sparkles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.sparkle{position:absolute;font-size:1.2rem;opacity:0;animation:sparkle 3s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(255,255,255,.8))}@keyframes sparkle{0%,to{opacity:0;transform:scale(0) rotate(0)}50%{opacity:1;transform:scale(1.2) rotate(180deg)}}.magical-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.particle{position:absolute;width:4px;height:4px;background:radial-gradient(circle,#ffb3d9,transparent);border-radius:50%;box-shadow:0 0 10px #ffb3d9cc,0 0 20px #ffb3d966;animation:particleFloat 5s ease-in-out infinite}@keyframes particleFloat{0%{transform:translateY(0) translate(0) scale(.5);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100vh) translate(20px) scale(1);opacity:0}}.twinkling-stars{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.star{position:absolute;font-size:.8rem;opacity:0;animation:twinkle 4s ease-in-out infinite;filter:drop-shadow(0 0 5px rgba(255,255,255,.6))}@keyframes twinkle{0%,to{opacity:0;transform:scale(.5)}25%,75%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}@media (max-width: 968px){.hero-content{grid-template-columns:1fr;gap:4rem}.hero-text{align-items:center}.hero-buttons{justify-content:center;width:100%}.portrait-photo{max-width:380px}}@media (max-width: 568px){.hero-text{align-items:center;width:100%}.cta-button{padding:1rem 2rem;font-size:.95rem;width:100%}.button-text{gap:.3rem}.hero-buttons{width:100%;flex-direction:column}.portrait-photo{max-width:300px}.frame-corner{width:20px;height:20px}}.hero-text{text-align:center;align-items:center!important}.birthday-header-simple{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem;animation:fadeInDown .8s ease-out forwards;opacity:0}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.sparkle-icon{font-size:1rem;animation:sparkleFloat 2s ease-in-out infinite}.sparkle-icon:first-child{animation-delay:0s}.sparkle-icon:last-child{animation-delay:1s}@keyframes sparkleFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.2)}}.header-label{font-size:.85rem;font-weight:600;letter-spacing:.15em;color:#ffd6e8e6;text-transform:uppercase;font-family:Inter,sans-serif}.hero-title-simple{display:flex;flex-direction:column;align-items:center;gap:.2rem;margin-bottom:1.5rem;line-height:1.1}.title-to{font-size:2.5rem;font-weight:700;color:#fff;font-family:Inter,sans-serif;text-transform:none;animation:fadeInUp .8s ease-out .2s forwards;opacity:0;text-shadow:0 2px 10px rgba(0,0,0,.3)}.title-galaxy{font-size:4rem;font-weight:800;background:linear-gradient(135deg,#d4a5ff,#e5b3ff,#f5c2ff,#ffd6e8,#ffb3d9,#ffa5d8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:200% 200%;animation:gradientShift 4s ease infinite,fadeInUp .8s ease-out .4s forwards;opacity:0;font-family:Inter,sans-serif;letter-spacing:-.02em;filter:drop-shadow(0 0 30px rgba(213,165,255,.4));margin:.3rem 0}.title-age{font-size:2.5rem;font-weight:700;color:#fff;font-family:Inter,sans-serif;animation:fadeInUp .8s ease-out .6s forwards;opacity:0;text-shadow:0 2px 10px rgba(0,0,0,.3)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.hero-description{font-size:1.1rem;line-height:1.7;color:#ffffffe6;font-weight:400;max-width:650px;margin:0 auto 1.5rem;font-family:Inter,sans-serif;animation:fadeInUp .8s ease-out .8s forwards;opacity:0;text-shadow:0 1px 3px rgba(0,0,0,.3)}.hero-date-note{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1rem;color:#ffffffd9;margin-bottom:2rem;font-family:Inter,sans-serif;animation:fadeInUp .8s ease-out 1s forwards;opacity:0}.heart-emoji{font-size:1.2rem;animation:heartBeat 1.5s ease-in-out infinite}@keyframes heartBeat{0%,to{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(1)}}.hero-buttons{display:flex;gap:1rem;justify-content:center;margin-top:0;animation:fadeInUp .8s ease-out 1.2s forwards;opacity:0}.button-icon{font-size:1.1rem;margin-right:.3rem}@media (max-width: 968px){.title-to{font-size:2rem}.title-galaxy{font-size:3.2rem}.title-age{font-size:2rem}.hero-description{font-size:1rem;max-width:90%}}@media (max-width: 568px){.header-label{font-size:.75rem}.title-to{font-size:1.8rem}.title-galaxy{font-size:2.5rem}.title-age{font-size:1.8rem}.hero-description{font-size:.95rem;line-height:1.6}.hero-date-note{font-size:.9rem;flex-wrap:wrap;text-align:center}.hero-buttons{flex-direction:column;width:100%}.cta-button{width:100%}}.star-map-section{padding:5rem 2rem;background:linear-gradient(180deg,#0a0e27,#1a1f3a)}.star-map-container{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.star-map-text{display:flex;align-items:center}.star-map-message{font-size:1.3rem;line-height:1.8;color:#ffffffe6;font-weight:300;padding:2rem;background:#ffffff08;border-radius:20px;border-left:3px solid var(--blush-pink)}.highlight-date{color:var(--blush-pink);font-weight:600;font-style:italic}.star-map-image-container{display:flex;flex-direction:column;gap:1rem}.star-map-image{width:100%;height:auto;border-radius:20px;box-shadow:0 10px 40px #00000080;border:2px solid rgba(255,179,217,.2);object-fit:cover}.star-map-caption{text-align:center;font-size:1rem;color:#ffffffb3;font-style:italic;padding:.5rem}@media (max-width: 968px){.star-map-container{grid-template-columns:1fr;gap:3rem}.star-map-message{font-size:1.1rem;padding:1.5rem}}@media (max-width: 568px){.star-map-message{font-size:1rem;padding:1rem}}.who-she-is-section{padding:5rem 2rem;background:linear-gradient(180deg,#1a1f3a,#0a0e27);contain:layout style;will-change:auto}.section-header{grid-column:1 / -1;text-align:center;margin-bottom:2rem}.section-title{font-size:2.5rem;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;gap:1rem;font-family:Playfair Display,serif}.title-icon{font-size:2rem;animation:bounce 2s ease-in-out infinite;will-change:transform;transform:translateZ(0)}@keyframes bounce{0%,to{transform:translateY(0) translateZ(0)}50%{transform:translateY(-10px) translateZ(0)}}.who-she-is-container{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3rem}.strength-card,.beauty-card{transition:transform .3s ease,box-shadow .3s ease;will-change:auto;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.strength-card:hover,.beauty-card:hover{transform:translateY(-5px) translateZ(0);box-shadow:0 12px 40px #1f268780}.card-title{font-size:2rem;font-weight:600;margin-bottom:1.5rem;background:linear-gradient(135deg,#ffb3d9,#ffd6e8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.card-text{font-size:1.1rem;line-height:1.8;color:#ffffffe6;font-weight:300}.family-love-card{grid-column:1 / -1;background:linear-gradient(135deg,#ff6b9d1a,#8a2be21a);border:2px solid rgba(255,179,217,.3);padding:2.5rem;position:relative;overflow:hidden;will-change:auto;transform:translateZ(0)}.family-love-card:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,179,217,.1),transparent 50%);animation:pulse 4s ease-in-out infinite;will-change:transform,opacity;transform:translateZ(0)}@keyframes pulse{0%,to{opacity:.6;transform:scale(1) translateZ(0)}50%{opacity:1;transform:scale(1.1) translateZ(0)}}.birthday-badge-small{display:inline-block;padding:.5rem 1.2rem;background:linear-gradient(135deg,#ff6b9d,#ff8cc8);border-radius:50px;font-size:.85rem;font-weight:600;color:#fff;margin-bottom:1.5rem;box-shadow:0 4px 15px #ff6b9d66;text-transform:uppercase;letter-spacing:.05em}.highlight-text{background:#ffb3d91a;padding:1.5rem;border-left:4px solid #ff6b9d;border-radius:8px;margin-top:1rem;font-weight:500;color:#ffd6e8;position:relative;z-index:1}@media (max-width: 968px){.who-she-is-container{grid-template-columns:1fr;gap:2rem}.section-title{font-size:2rem}.card-title{font-size:1.75rem}.card-text{font-size:1rem}.family-love-card{padding:2rem}}@media (max-width: 568px){.section-title{font-size:1.6rem}.title-icon{font-size:1.5rem}}.apology-gratitude-section{padding:5rem 2rem;background:linear-gradient(180deg,#0a0e27,#1a1f3a);contain:layout style;will-change:auto}.apology-gratitude-container{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:3rem}.birthday-wish-card{background:linear-gradient(135deg,#ff6b9d26,#8a2be226);border:2px solid rgba(255,179,217,.4);padding:3rem;text-align:center;position:relative;overflow:hidden;will-change:auto;transform:translateZ(0)}.birthday-wish-card:before{content:"🎂";position:absolute;top:20px;left:20px;font-size:3rem;opacity:.2;will-change:auto}.birthday-wish-card:after{content:"🎂";position:absolute;bottom:20px;right:20px;font-size:3rem;opacity:.2;will-change:auto}.birthday-badge-large{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem}.badge-emoji{font-size:1.5rem;animation:rotate 3s ease-in-out infinite;will-change:transform;transform:translateZ(0)}@keyframes rotate{0%,to{transform:rotate(0) translateZ(0)}25%{transform:rotate(-15deg) translateZ(0)}75%{transform:rotate(15deg) translateZ(0)}}.badge-text{font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,#ff6b9d,#ffb3d9,#ffd6e8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-family:Playfair Display,serif}.birthday-message{font-size:1.2rem;line-height:1.8;color:#fffffff2;font-weight:400;font-style:italic;position:relative;z-index:1}.reflection-card{background:linear-gradient(135deg,#8a2be21a,#ff6b9d1a);border:2px solid rgba(255,179,217,.3);padding:2.5rem;text-align:center;will-change:auto;transform:translateZ(0)}.reflection-title{font-size:2rem;font-weight:600;color:#ffd6e8;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center;gap:.8rem;font-family:Playfair Display,serif}.sparkle{animation:sparkle 2s ease-in-out infinite;will-change:transform,opacity;transform:translateZ(0)}@keyframes sparkle{0%,to{opacity:1;transform:scale(1) translateZ(0)}50%{opacity:.5;transform:scale(1.3) translateZ(0)}}.reflection-text{font-size:1.15rem;line-height:1.9;color:#ffffffe6;margin-bottom:1.5rem;font-weight:300}.reflection-highlight{font-size:1.3rem;font-weight:600;color:#ffb3d9;font-style:italic;margin-top:1rem;text-shadow:0 0 20px rgba(255,179,217,.5)}.apology-gratitude-card{padding:3rem}.apology-text,.gratitude-text{font-size:1.2rem;line-height:1.9;color:#ffffffe6;font-weight:300;margin-bottom:1.5rem}.gratitude-text{margin-bottom:0;font-style:italic;color:#ffffffd9}.photo-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.gallery-item{position:relative;overflow:hidden;border-radius:15px;aspect-ratio:1;cursor:pointer;transition:transform .3s ease;will-change:auto;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.gallery-item:hover{transform:scale(1.05) translateZ(0)}.gallery-photo{width:100%;height:100%;object-fit:cover;border-radius:15px;border:2px solid rgba(255,179,217,.2);transition:transform .3s ease;will-change:auto;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.gallery-item:hover .gallery-photo{transform:scale(1.1) translateZ(0)}@media (max-width: 768px){.apology-gratitude-card{padding:2rem}.apology-text,.gratitude-text{font-size:1.1rem}.photo-gallery{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (max-width: 568px){.apology-text,.gratitude-text{font-size:1rem}.photo-gallery{grid-template-columns:1fr}.birthday-wish-card{padding:2rem}.badge-text{font-size:1.4rem}.badge-emoji{font-size:1.2rem}.birthday-message{font-size:1.05rem}.reflection-card{padding:2rem}.reflection-title{font-size:1.6rem}.reflection-text{font-size:1rem}.reflection-highlight{font-size:1.15rem}}.birthday-message-section{padding:5rem 2rem;background:linear-gradient(180deg,#1a1f3a,#0a0e27);min-height:60vh;display:flex;align-items:center;justify-content:center;contain:layout style;will-change:auto}.birthday-message-container{max-width:800px;margin:0 auto;width:100%}.birthday-card{text-align:center;padding:4rem 3rem;position:relative;overflow:hidden;border:2px solid rgba(255,179,217,.3)}.birthday-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,179,217,.1) 0%,transparent 70%);opacity:.8;will-change:auto;transform:translateZ(0)}.birthday-crown{font-size:3rem;margin-bottom:1rem;animation:floatCrown 3s ease-in-out infinite;will-change:transform;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}@keyframes floatCrown{0%,to{transform:translateY(0) rotate(-10deg) translateZ(0)}50%{transform:translateY(-10px) rotate(10deg) translateZ(0)}}@keyframes pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.birthday-title{font-size:3rem;font-weight:700;margin-bottom:2rem;background:linear-gradient(135deg,#ffb3d9,#ffd6e8,#fff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:1}.birthday-text{font-size:1.3rem;line-height:1.9;color:#ffffffe6;font-weight:300;margin-bottom:2rem;position:relative;z-index:1}.highlight-name{color:var(--blush-pink);font-weight:600;font-style:italic}.birthday-wishes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin:3rem 0;position:relative;z-index:1}.wish-item{background:#ffffff0d;padding:1.5rem;border-radius:15px;border:1px solid rgba(255,179,217,.2);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;will-change:transform;transform:translateZ(0)}.wish-item:hover{background:#ffffff14;border-color:#ffb3d966;transform:translateY(-5px) translateZ(0);box-shadow:0 10px 30px #ffb3d94d}.wish-icon{font-size:2rem;display:block;margin-bottom:.8rem}.wish-text{font-size:1rem;color:#ffffffe6;font-weight:500;line-height:1.5}.final-message{margin:2rem 0;padding:2rem;background:linear-gradient(135deg,#ff6b9d26,#8a2be226);border-radius:15px;border-left:4px solid #ff6b9d;position:relative;z-index:1}.final-text{font-size:1.3rem;line-height:1.8;color:#ffd6e8;font-weight:500;font-style:italic;margin:0}.signature{font-size:1.5rem;color:#fffc;font-style:italic;margin-top:2rem;position:relative;z-index:1;font-family:Playfair Display,serif}@media (max-width: 768px){.birthday-card{padding:3rem 2rem}.birthday-title{font-size:2.5rem}.birthday-text{font-size:1.1rem}.signature{font-size:1.2rem}}@media (max-width: 768px){.birthday-wishes-grid{grid-template-columns:1fr;gap:1rem}.wish-item{padding:1.2rem}.final-message{padding:1.5rem}.final-text{font-size:1.15rem}}@media (max-width: 568px){.birthday-title{font-size:2rem}.birthday-text{font-size:1rem}.birthday-crown{font-size:2.5rem}.wish-icon{font-size:1.5rem}.wish-text{font-size:.95rem}.final-text{font-size:1.05rem}.signature{font-size:1.1rem}}.app{width:100%;min-height:100vh}.fade-in{opacity:0;transform:translateY(30px) translateZ(0);transition:opacity .8s ease-out,transform .8s ease-out;will-change:opacity,transform}.fade-in.revealed{opacity:1;transform:translateY(0) translateZ(0)}.glass-card{background:#ffffff0d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:2rem;box-shadow:0 8px 32px #1f26875e;will-change:auto;transform:translateZ(0)}section{padding:5rem 2rem;max-width:1200px;margin:0 auto}@media (max-width: 768px){section{padding:3rem 1.5rem}}*{margin:0;padding:0;box-sizing:border-box}img{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}:root{--blush-pink: #ffb3d9;--deep-navy: #0a0e27;--soft-pink: #ffd6e8;--navy-light: #1a1f3a;--gradient-1: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-2: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--gradient-3: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)}html{scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--deep-navy);color:#fff;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:100%;min-height:100vh}
