/* Keep the birthday controls independent and comfortable to tap. */
.album-controls { display:flex; align-items:center; justify-content:center; gap:22px; margin:24px auto 0; padding:0 16px; width:100%; }
.album-controls button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 48px; width:48px; height:48px; min-width:48px; padding:0; line-height:1; }
.album-controls button svg { width:22px; height:22px; display:block; }
.adult-album-count { position:relative; margin:0; padding:12px 0; background:var(--cream); color:var(--dark); font-size:14px; }
/* Give the full invitation message its own space below the organic header. */
.story .countdown { margin:32px auto 80px; aspect-ratio:auto; min-height:360px; padding:56px 36px; width:360px; max-width:100%; }
.story .countdown > p { font-size:20px; line-height:1.45; max-width:235px; margin:0 auto 28px; }
.count-grid { gap:14px; }
.count-grid span { font-size:14px; letter-spacing:.06em; }
@media(max-width:650px) { .story .countdown { margin:28px auto 64px; padding:52px 28px; } .story .countdown > p { max-width:225px; font-size:19px; } .count-grid strong { font-size:39px; } }

/* Preserve the gentle zoom with a wider portrait throughout the cycle. */
.birthday-photo--hero { animation:camelia-header-zoom 15s ease-in-out infinite alternate; }
@keyframes camelia-header-zoom { from { transform:scale(1.015); } to { transform:scale(1.065); } }
@media(prefers-reduced-motion:reduce) { .birthday-photo--hero { animation:none; } }
