/* Non-interactive decorative background shared across every page. */
.sakura-bg { position: fixed; right: -30px; bottom: -40px; width: min(58vw,560px); z-index: -1; pointer-events: none; filter: blur(2px); opacity: .38; }
.falling-leaves { position: fixed; inset: 0; pointer-events: none; z-index: 6; overflow: hidden; -webkit-mask-image: linear-gradient(to right, #000 0 10%, transparent 10% 90%, #000 90% 100%); mask-image: linear-gradient(to right, #000 0 10%, transparent 10% 90%, #000 90% 100%); }
.falling-leaf { position: absolute; top: -36px; width: 22px; height: 22px; opacity: .64; will-change: transform; animation: maple-leaf-fall var(--fall-duration) cubic-bezier(.38,.05,.62,.96) forwards; }
.falling-leaf:nth-of-type(n+2) { display: none !important; }
.falling-leaf::before { content: '🍁'; display: block; font-size: var(--leaf-size); line-height: 1; filter: var(--leaf-filter) drop-shadow(0 1px 1px rgba(71,45,21,.2)); }
/* Irregular sideways gusts and tumbles keep each leaf from following a straight path. */
@keyframes maple-leaf-fall {
  0% { transform: translate3d(0,-4vh,0) rotate(0deg); }
  22% { transform: translate3d(var(--drift-one),22vh,0) rotate(var(--spin-one)); }
  48% { transform: translate3d(var(--drift-two),48vh,0) rotate(var(--spin-two)); }
  74% { transform: translate3d(var(--drift-three),74vh,0) rotate(var(--spin-three)); }
  100% { transform: translate3d(var(--drift-four),108vh,0) rotate(var(--spin-four)); }
}

@media (prefers-reduced-motion: reduce) { .falling-leaves { display: none; } }
