/* Five local details; reflections retain the exact source photograph and its grain. */
.town-atmosphere{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;z-index:1;pointer-events:none}
.town-atmosphere *{pointer-events:none}
.atmosphere-fibre{fill:none;stroke:#f9e2b3;stroke-width:.72;stroke-linecap:round;filter:url(#atmosphere-fibre-soft);opacity:0;animation:atmosphere-fibre-drift var(--fibre-duration) var(--fibre-delay) ease-in-out infinite}
.atmosphere-smoke{fill:none;stroke:#bec1c9;stroke-width:3.4;stroke-linecap:round;filter:url(#atmosphere-distant-smoke);opacity:0;animation:atmosphere-flue-drift 14s -4s ease-out infinite}
.atmosphere-smoke-later{stroke-width:2.3;animation-duration:19s;animation-delay:-12s}
.atmosphere-brass-pixels{filter:brightness(1.15) saturate(1.02)}
.atmosphere-rim-sweep{transform-origin:999px 153px;opacity:0;animation:atmosphere-brass-catchlight 17s -5s ease-in-out infinite}
.atmosphere-threshold-pixels{filter:brightness(1.1) saturate(1.025)}
.atmosphere-threshold{opacity:0;animation:atmosphere-door-warmth 21s -6s ease-in-out infinite}
.atmosphere-attic-pixels{filter:brightness(1.14) saturate(1.02)}
.atmosphere-attic{opacity:.15;animation:atmosphere-attic-warmth 18s -4s ease-in-out infinite}
.object-light .atmosphere-lamplight{display:none}
.object-light .atmosphere-smoke{stroke:#a4a9b2}
@keyframes atmosphere-fibre-drift{
 0%{opacity:0;transform:translate(0,5px) rotate(0deg)}
 18%{opacity:.52}
 52%{opacity:.4;transform:translate(5px,-11px) rotate(25deg)}
 83%,100%{opacity:0;transform:translate(12px,-28px) rotate(55deg)}
}
@keyframes atmosphere-flue-drift{
 0%{opacity:0;transform:translate(0,2px) scaleX(.8)}
 17%{opacity:.34}
 50%{opacity:.23;transform:translate(4px,-8px) scaleX(1.15)}
 84%,100%{opacity:0;transform:translate(11px,-20px) scaleX(1.4)}
}
@keyframes atmosphere-brass-catchlight{
 0%,15%{opacity:0;transform:rotate(-28deg)}
 23%{opacity:.8}
 35%{opacity:.62;transform:rotate(42deg)}
 45%,100%{opacity:0;transform:rotate(86deg)}
}
@keyframes atmosphere-door-warmth{0%,100%{opacity:.08}26%{opacity:.64}53%{opacity:.2}75%{opacity:.58}}
@keyframes atmosphere-attic-warmth{0%,100%{opacity:.1}33%{opacity:.72}51%{opacity:.4}78%{opacity:.6}}
:is(.ambience-paused,.ambience-background) .town-atmosphere *,body:has(dialog[open]) .town-atmosphere *{animation-play-state:paused!important}
.reduced .town-atmosphere{display:none}
@media(prefers-reduced-motion:reduce){.town-atmosphere{display:none}}
