/* Small elements only: no full-screen canvas, blur or repaint loop. */
.hero-copy[data-daily-copy] { text-wrap: pretty; }
#thank-you > div:not(#seasonal-thanks-decor) { max-width: 620px; }
#thank-you p { max-width: 32em; margin: 24px auto 0; font-size: clamp(1rem, 3.9vw, 1.3rem); line-height: 1.5; letter-spacing: .025em; text-transform: none; text-wrap: pretty; }
#thank-you:not(.show) { visibility: hidden; }
#thank-you .thank-you-close { position: absolute; top: max(16px,env(safe-area-inset-top)); right: 16px; z-index: 4; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #ffffff40; border-radius: 50%; background: #30172966; color: #fff; font: 400 1.8rem/1 sans-serif; cursor: pointer; }
#thank-you .thank-you-close:focus-visible { outline: 2px solid white; outline-offset: 3px; }
#thank-you.show .thanks-ornament { animation: thanks-ornament-arrive .9s ease-out both; }
#thank-you.show .thanks-top-right { animation-delay: .12s; }
@keyframes thanks-ornament-arrive { from { opacity: 0; translate: 0 12px; } to { opacity: .92; translate: 0 0; } }
html[data-season-event="birthday"] { --accent: #f2a1bf; --accent-soft: #ffe2ac; --season-edge: #edb0c263; --season-wash: #a64b7230; }
html[data-season-event="birthday"] #thank-you { background: radial-gradient(ellipse at 50% 45%,#b85b88,#743d6a 62%,#3b2949); }
#birthday-party { position: relative; z-index: 2; isolation: isolate; margin-top: 28px; padding: 25px 76px 22px; border: 1px solid #f3c9a64d; border-radius: 28px; background: linear-gradient(130deg,#482b49,#352337); color: #fff1f6; text-align: center; overflow: hidden; }
.birthday-copy { position: relative; z-index: 2; }
#birthday-party .birthday-kicker { margin: 0 0 9px; color: #eec6a2; font-size: .7rem; line-height: 1.5; font-weight: 800; letter-spacing: .12em; }
#birthday-party h2 { margin: 0; font-family: "Playfair Display",serif; font-size: clamp(1.65rem,4vw,2.3rem); line-height: 1.15; letter-spacing: -.025em; }
#birthday-party .birthday-hint { margin: 12px 0 0; color: #eddae5; font-size: .92rem; line-height: 1.5; }
.birthday-balloon { position: absolute; z-index: 1; width: 66px; height: 124px; pointer-events: none; color: #cf8eae; animation: birthday-balloon-sway 6s ease-in-out infinite alternate; }
.birthday-balloon svg { width: 100%; height: 100%; }
.balloon-left { top: 42px; left: 14px; }
.balloon-right { right: 16px; top: 70px; color: #ddbc7b; animation-delay: -3s; }
@keyframes birthday-balloon-sway { from { transform: translateY(0) rotate(-4deg); } to { transform: translateY(-8px) rotate(4deg); } }
.birthday-cake { position: relative; z-index: 2; width: 210px; margin: 12px auto 0; }
.birthday-candles { display: flex; justify-content: center; gap: 8px; }
.birthday-candle { position: relative; display: grid; place-items: end center; width: 48px; height: 82px; padding: 0; border: 0; border-radius: 10px; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.birthday-candle:focus-visible { outline: 2px solid #fff2c8; outline-offset: 2px; }
.birthday-wax { position: relative; display: block; width: 17px; height: 46px; border-radius: 4px 4px 0 0; background: repeating-linear-gradient(135deg,transparent 0 7px,#ffffff55 7px 10px),var(--candle-color); }
.birthday-wax::before { content: ''; position: absolute; width: 2px; height: 7px; top: -6px; left: 7px; background: #ecdbb5; }
.birthday-flame { position: absolute; left: 16px; top: 5px; width: 16px; height: 24px; background: #ffd88c; border: 3px solid #eeba71; border-radius: 60% 40% 55% 45%; transform: rotate(5deg); transition: opacity .2s,transform .2s; }
.birthday-candle[aria-pressed="true"] { cursor: default; }
.birthday-candle[aria-pressed="true"] .birthday-flame { opacity: 0; transform: translateY(-6px) scale(.2); }
.birthday-cake-body { position: relative; height: 58px; border-radius: 9px 9px 5px 5px; background: linear-gradient(#d894af 0 18px,#f2d6cf 18px 34px,#d894af 34px 43px,#efc8b7 43px); border: 1px solid #edc3b2; }
.birthday-cake-body::before { content: ''; position: absolute; top: -3px; left: -1px; right: -1px; height: 18px; border-radius: 9px 9px 40% 35%; background: #ffeadd; }
.birthday-cake-body span { display: block; margin: 33px auto 0; width: 120px; border-top: 3px dotted #fff1de; }
.birthday-plate { margin-left: -10px; width: 230px; height: 7px; border-radius: 50%; background: #d3b4ca; }
#birthday-party .birthday-progress { position: relative; z-index: 2; margin: 13px 0 0; min-height: 1.5em; color: #f4d995; font-size: .85rem; line-height: 1.5; font-weight: 700; }
#birthday-party .birthday-surprise { position: relative; z-index: 2; max-width: 34em; margin: 13px auto 0; font-size: .98rem; line-height: 1.5; text-wrap: pretty; }
.birthday-confetti { position: absolute; z-index: 3; left: 50%; bottom: 90px; width: 1px; height: 1px; pointer-events: none; }
.birthday-confetti i { position: absolute; display: block; width: 6px; height: 10px; background: var(--confetti-color); animation: birthday-confetti-burst 1.5s ease-out both; }
@keyframes birthday-confetti-burst { 0% { opacity: 0; transform: translate(0,0) rotate(0); } 15% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--confetti-x),-160px) rotate(var(--confetti-r)); } }
#night-owl { position: relative; z-index: 45; }
.night-owl-flight { position: fixed; z-index: 45; left: 12px; bottom: 93px; width: 72px; height: 64px; animation: night-owl-crossing 38s ease-in-out infinite alternate; }
.night-owl-button { position: relative; display: block; width: 72px; height: 64px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.night-owl-button svg { display: block; width: 72px; height: 60px; overflow: visible; }
.night-owl-button:focus-visible { outline: 2px solid #f6dca3; outline-offset: 4px; background: #31223be6; }
.owl-wings { transform-origin: 60px 40px; animation: night-owl-wings 1.8s ease-in-out infinite alternate; }
.owl-spark { position: absolute; right: -1px; top: 1px; color: #f4d99e; font-size: 15px; }
@keyframes night-owl-crossing { 0% { transform: translate(0,0); } 33% { transform: translate(calc((100vw - 100px) * .33),-25px); } 67% { transform: translate(calc((100vw - 100px) * .67),-8px); } 100% { transform: translate(calc(100vw - 100px),-28px); } }
@keyframes night-owl-wings { from { transform: scaleY(.83); } to { transform: scaleY(1.05); } }
#night-owl.is-open .night-owl-flight, .night-owl-flight:has(:focus-visible) { animation-play-state: paused; }
#night-owl.is-open .owl-wings { animation-play-state: paused; }
@media (hover:hover) { .night-owl-flight:hover { animation-play-state: paused; } }
.night-owl-message { position: fixed; z-index: 46; right: 16px; bottom: 183px; width: min(340px,calc(100vw - 32px)); box-sizing: border-box; padding: 24px; border: 1px solid #d9bbdf66; border-radius: 24px; background: #282035; color: #fff0f7; box-shadow: 0 12px 32px #100b1d40; text-align: left; }
.night-owl-message[hidden] { display: none; }
.night-owl-message h2 { margin: 0 24px 12px 0; color: #efd5a5; font: 700 .75rem/1.4 Inter,sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.night-owl-message p { margin: 0; font-size: 1rem; line-height: 1.55; }
.night-owl-close { position: absolute; right: 3px; top: 3px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: #e4d7ed; font-size: 1.65rem; cursor: pointer; }
.night-owl-close:focus-visible { outline: 2px solid #efd5a5; outline-offset: -5px; }
body.age-check-pending #night-owl, body.age-gate-open #night-owl,
body:has(.qr-modal.show,.thank-you.show) #night-owl { display: none; }
html[data-season-paused="true"] :is(.night-owl-flight,.owl-wings,.birthday-balloon) { animation-play-state: paused; }
@media (max-width:720px) {
  #birthday-party { padding: 22px 18px; margin-top: 22px; border-radius: 22px; }
  #birthday-party .birthday-copy { padding: 0 12px; }
  .birthday-balloon { width: 41px; height: 85px; opacity: .7; }
  .balloon-left { top: 145px; left: 0; }
  .balloon-right { top: 158px; right: 0; }
  .night-owl-flight { bottom: calc(108px + env(safe-area-inset-bottom)); animation-duration: 32s; }
  .night-owl-message { bottom: calc(197px + env(safe-area-inset-bottom)); }
  .birthday-cake { width: 180px; }
  .birthday-plate { width: 200px; }
}
@media (prefers-reduced-motion:reduce) {
  .night-owl-flight,.owl-wings,.birthday-balloon,#thank-you.show .thanks-ornament { animation: none; }
  .birthday-flame { transition: none; }
  .birthday-confetti { display: none; }
}
html[data-season-motion="still"] :is(.night-owl-flight,.owl-wings,.birthday-balloon) { animation: none; }
