/* Small CSS-only movements live in artwork, never in archival portraits or text. */
.has-section-atmosphere { isolation: isolate; }
.landmark-keepsake.has-section-atmosphere, .family-flag-art picture { position: relative; }
.landmark-keepsake picture, .chauraha-art picture { display: block; position: relative; }
.section-atmosphere { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; user-select: none; overflow: hidden; }
.section-atmosphere .ambient-crow { opacity: 0; }
.ambient-wings { fill: none; stroke: #344238; stroke-width: 1.7; stroke-linecap: round; transform-origin: 0 0; animation: ambient-flap .85s ease-in-out infinite alternate; }
.crow-a { animation: ambient-flight-a 23s linear -5s infinite; }
.crow-b { animation: ambient-flight-b 31s linear -18s infinite; }
.crow-b .ambient-wings { animation-duration: 1s; }
.rain-stroke { fill: none; stroke: #536b71; stroke-width: .9; stroke-linecap: round; opacity: 0; animation: ambient-rain 4.3s linear infinite; }
.rain-1 { animation-delay: -1.5s; }.rain-2 { animation-delay: -2.9s; }
.ambient-lamplight { fill: #e5ab4c; opacity: .03; mix-blend-mode: soft-light; animation: ambient-glow 6s ease-in-out infinite alternate; }
.ambient-petal { fill: #ad5b6d; opacity: 0; animation: ambient-petal-drift 12s ease-in-out infinite; }
.petal-1 { animation-delay: -4s; }.petal-2 { animation-delay: -8s; }
.courtyard-flame { animation: courtyard-flame 4.5s ease-in-out infinite alternate; mix-blend-mode: screen; }
@keyframes courtyard-flame { 0%, 100% { opacity: .24; } 35% { opacity: .47; } 70% { opacity: .32; } }
.market-steam { fill: none; stroke: #fff9eb; stroke-width: 2.7; stroke-linecap: round; opacity: 0; transform-box: fill-box; transform-origin: center bottom; animation: market-steam-rise 4.6s ease-out infinite; }
.market-steam.steam-1 { animation-delay: -1.6s; animation-duration: 5.2s; }.market-steam.steam-2 { animation-delay: -3.2s; animation-duration: 4.3s; }
.market-lamp { fill: #ffcf61; opacity: .16; mix-blend-mode: screen; filter: blur(3px); animation: market-lamp-breathe 4.5s ease-in-out infinite alternate; }
.lamp-1 { animation-delay: -2.4s; }
@keyframes market-steam-rise { 0% { opacity: 0; transform: translate(0,8px) scaleX(.8); } 25%,65% { opacity: .7; } 100% { opacity: 0; transform: translate(7px,-25px) scaleX(1.15); } }
@keyframes market-lamp-breathe { from { opacity: .13; } to { opacity: .42; } }
.section-atmosphere.is-paused, .section-atmosphere.is-paused * { animation-play-state: paused !important; }
@keyframes ambient-flap { from { transform: scaleY(-.2); } to { transform: scaleY(1); } }
@keyframes ambient-flight-a { 0% { transform: translate(50px,80px) scale(.7); opacity: 0; } 9%,90% { opacity: .64; } 50% { transform: translate(520px,48px) scale(.85); } 100% { transform: translate(970px,88px) scale(.7); opacity: 0; } }
@keyframes ambient-flight-b { 0% { transform: translate(960px,110px) scale(.5); opacity: 0; } 9%,90% { opacity: .45; } 50% { transform: translate(550px,72px) scale(.6); } 100% { transform: translate(40px,98px) scale(.5); opacity: 0; } }
@keyframes ambient-rain { 0% { transform: translate(8px,-24px); opacity: 0; } 20%,65% { opacity: .17; } 100% { transform: translate(-20px,100px); opacity: 0; } }
@keyframes ambient-glow { from { opacity: .03; } to { opacity: .12; } }
@keyframes ambient-petal-drift { 0% { transform: translate(0,-20px) rotate(-12deg); opacity: 0; } 18%,70% { opacity: .5; } 100% { transform: translate(38px,75px) rotate(18deg); opacity: 0; } }
@media (max-width: 540px) { .ambient-wings { stroke-width: 2.1; } .rain-stroke { stroke-width: 1.2; } }
@media (prefers-reduced-motion: reduce), print { .section-atmosphere { display: none !important; } }
