/* Another8percent reduction,20px higher and30px left. */
#evidence.world-stage .world-prop-diver{transform:translate(-10px,-90px) rotate(-10deg) scale(.723672)}
#evidence.world-stage .world-prop-radio{left:58%;top:-27px;bottom:auto;width:150px;z-index:1;transform:rotate(7deg)}
#evidence.world-stage .world-prop-radio img{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 6px #060a0c88);animation:winter-radio-drift 11s ease-in-out infinite}
@keyframes winter-radio-drift{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}
#evidence.world-stage .world-prop-letter{right:-18px;bottom:9%;width:270px;z-index:3;transform:rotate(5deg)}
#evidence.world-stage .world-prop-letter img{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 5px #13080877);animation:winter-letter-rest 12s ease-in-out infinite}
@keyframes winter-letter-rest{0%,100%{transform:rotate(-.7deg)}50%{transform:rotate(.7deg)}}
#evidence.world-stage[data-world-scene=ozomb] .world-prop-radio,#evidence.world-stage[data-world-scene=omerta] .world-prop-letter{opacity:1;translate:0 0}
#evidence.world-stage:not([data-world-scene=ozomb]) .world-prop-radio .ambient-motion,#evidence.world-stage:not([data-world-scene=omerta]) .world-prop-letter .ambient-motion{animation-play-state:paused!important}
/* The drum stays solid while its photographed flame texture curls independently. */
#evidence.world-stage .barrel-live-fire{position:absolute;inset:0;width:100%;height:100%;display:none;pointer-events:none}
#evidence.world-stage .has-live-fire .barrel-live-fire{display:block}
#evidence.world-stage .has-live-fire .barrel-flame{visibility:hidden}
#evidence.world-stage .has-live-fire .barrel-art{position:relative}
/* Reversible season change, confined to the existing individual glass panes. */
#record .winter-outside{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .65s;pointer-events:none;filter:brightness(.88);z-index:0}
#record .room-weather.is-winter .winter-outside{opacity:1}
#record .room-weather.is-winter :is(.window-rain,.window-flash,.outside-lightning){display:none!important}
#record .window-snow{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;opacity:0}
#record .room-weather.is-winter .window-snow{opacity:1}
#record .snowflake{position:absolute;left:40%;top:-8%;width:4px;height:100%;animation:winter-window-snow 7s linear infinite;opacity:.7}
#record .snowflake::before{content:'';position:absolute;top:0;left:0;width:3px;height:3px;background:#eff9ff;border-radius:50%;box-shadow:0 0 2px #e1f2ff66}
#record .snowflake:nth-child(1){left:4%;animation-delay:-1.1s;animation-duration:6.4s;--snow-sway:7px}
#record .snowflake:nth-child(2){left:12%;animation-delay:-4.3s;animation-duration:8.2s;--snow-sway:-9px;opacity:.5}
#record .snowflake:nth-child(3){left:19%;animation-delay:-2.6s;animation-duration:7.1s;--snow-sway:14px}
#record .snowflake:nth-child(4){left:27%;animation-delay:-6.2s;animation-duration:9.3s;--snow-sway:-11px;opacity:.45}
#record .snowflake:nth-child(5){left:34%;animation-delay:-.8s;animation-duration:6.9s;--snow-sway:8px}
#record .snowflake:nth-child(6){left:42%;animation-delay:-3.7s;animation-duration:8.6s;--snow-sway:-13px;opacity:.55}
#record .snowflake:nth-child(7){left:49%;animation-delay:-5.6s;animation-duration:7.5s;--snow-sway:10px}
#record .snowflake:nth-child(8){left:57%;animation-delay:-1.9s;animation-duration:9.7s;--snow-sway:-9px;opacity:.4}
#record .snowflake:nth-child(9){left:64%;animation-delay:-4.8s;animation-duration:6.2s;--snow-sway:12px}
#record .snowflake:nth-child(10){left:72%;animation-delay:-2.4s;animation-duration:8.9s;--snow-sway:-15px;opacity:.5}
#record .snowflake:nth-child(11){left:79%;animation-delay:-6.4s;animation-duration:7.3s;--snow-sway:9px}
#record .snowflake:nth-child(12){left:87%;animation-delay:-.5s;animation-duration:9.2s;--snow-sway:-12px;opacity:.45}
#record .snowflake:nth-child(13){left:94%;animation-delay:-3.1s;animation-duration:6.7s;--snow-sway:8px}
#record .snowflake:nth-child(14){left:8%;animation-delay:-5.8s;animation-duration:9.5s;--snow-sway:13px;opacity:.4}
#record .snowflake:nth-child(15){left:23%;animation-delay:-1.6s;animation-duration:7.7s;--snow-sway:-8px}
#record .snowflake:nth-child(16){left:38%;animation-delay:-4.9s;animation-duration:8.4s;--snow-sway:11px;opacity:.55}
#record .snowflake:nth-child(17){left:53%;animation-delay:-2.8s;animation-duration:6.6s;--snow-sway:-10px}
#record .snowflake:nth-child(18){left:68%;animation-delay:-6.6s;animation-duration:9.1s;--snow-sway:15px;opacity:.45}
#record .snowflake:nth-child(19){left:83%;animation-delay:-.9s;animation-duration:7.8s;--snow-sway:-9px}
#record .snowflake:nth-child(20){left:97%;animation-delay:-3.9s;animation-duration:8.7s;--snow-sway:-14px;opacity:.5}
@keyframes winter-window-snow{from{transform:translate(0,-12%)}to{transform:translate(var(--snow-sway,12px),120%)}}
#record:not(:has(.is-winter)) .snowflake{animation-play-state:paused!important}
body:not(.hearth-in-view) #record .snowflake{animation-play-state:paused!important}
#record .window-season-toggle{position:absolute;z-index:9;pointer-events:auto;min-width:44px;min-height:44px;border:0;background:none;cursor:pointer;padding:0;border-radius:7px;-webkit-tap-highlight-color:transparent}
#record .window-season-toggle .season-icon{position:absolute;right:7px;top:7px;color:#f2e7ce;font:18px/1 Georgia,serif;text-shadow:0 1px 4px #101c28;opacity:.72}
#record .window-season-toggle::after{content:attr(data-season-hint);position:absolute;right:0;top:100%;width:155px;padding:7px 9px;border:1px solid #cbb57e80;background:#211d19e8;color:#fff1cd;font:11px/1.4 'DM Sans',sans-serif;opacity:0;pointer-events:none;transition:opacity .2s}
#record .window-season-toggle:is(:hover,:focus-visible)::after{opacity:1}
#record .window-season-toggle:focus-visible{outline:2px solid #e3c386;outline-offset:2px}
/* Twelve seconds each way, with five seconds offscreen between each leg. */
#idea.contact-finale .patrick-flight{aspect-ratio:2/1}
#idea.contact-finale .contact-performance .patrick-flight{animation:balanced-flight-cycle 34s linear 5s infinite both}
@keyframes balanced-flight-cycle{
 0%{opacity:1;transform:translateX(var(--flight-entry,calc(100vw + 80px))) translateY(0) rotate(1deg)}
 35.294%{opacity:1;transform:translateX(var(--flight-exit,calc(-100vw - 100%))) translateY(18px) rotate(-2deg)}
 35.3%,49.999%{opacity:0;transform:translateX(var(--flight-exit,calc(-100vw - 100%))) translateY(18px) rotate(-2deg)}
 50%{opacity:1;transform:translateX(var(--flight-exit,calc(-100vw - 100%))) translateY(18px) rotate(-2deg)}
 85.294%{opacity:1;transform:translateX(var(--flight-entry,calc(100vw + 80px))) translateY(0) rotate(1deg)}
 85.3%,100%{opacity:0;transform:translateX(var(--flight-entry,calc(100vw + 80px))) translateY(0) rotate(1deg)}
}
#idea .flight-pose{position:absolute;inset:0;display:block;pointer-events:none}
#idea .flight-pose-left{opacity:1}
#idea .flight-pose-right{opacity:0}
#idea.contact-finale .contact-performance .flight-pose-left{animation:winter-pose-left 34s steps(1,end) 5s infinite both}
#idea.contact-finale .contact-performance .flight-pose-right{animation:winter-pose-right 34s steps(1,end) 5s infinite both}
@keyframes winter-pose-left{0%,49.999%{opacity:1}50%,100%{opacity:0}}
@keyframes winter-pose-right{0%,49.999%{opacity:0}50%,100%{opacity:1}}
#idea.contact-finale.flight-loop-active .contact-performance .flight-pose{animation-play-state:running!important}
#idea.contact-finale:not(.flight-loop-active) .flight-pose{animation-play-state:paused!important}
@media(min-width:701px) and (max-width:1100px){
 #evidence.world-stage .world-prop-radio{width:125px;top:-20px;left:59%}
 #evidence.world-stage .world-prop-letter{width:215px;right:-14px;bottom:11%}
}
@media(max-width:700px){
 #evidence.world-stage .world-prop-radio{width:82px;left:62%;top:8%}
 #evidence.world-stage .world-prop-letter{width:115px;right:-10px;bottom:21%;z-index:4}
 #record .window-season-toggle .season-icon{font-size:15px;right:5px;top:4px}
 #record .snowflake::before{width:2px;height:2px}
}
@media(prefers-reduced-motion:reduce){
 #evidence.world-stage :is(.world-prop-radio,.world-prop-letter) .ambient-motion,#record .snowflake{animation:none!important}
 #record .window-snow{display:none}
 #record .winter-outside{transition:none}
 #idea .flight-pose{animation:none!important}
}
@media print{#evidence :is(.world-prop-radio,.world-prop-letter),#record .window-season-toggle{display:none}}

/* Pane-specific winter coverage reaches the sill; a subpixel fade removes its hard seam. */
#record .room-weather.is-winter{clip-path:url(#polish-winter-glass-wide);mask-image:linear-gradient(to bottom,#000 85.7%,transparent 86.7%);mask-repeat:no-repeat;mask-size:100% 100%}
#record .winter-outside{image-rendering:auto;object-position:50% 50%}
/* The icon always describes the weather available on the next tap. */
#record .window-season-toggle .season-icon{display:block;width:21px;height:21px;color:#f2e7ce;filter:drop-shadow(0 1px 2px #101c28);text-shadow:none;opacity:.9}
#record .season-icon svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
#record .season-icon .weather-rain{display:none}
#record .season-icon[data-weather=rain] .weather-snow{display:none}
#record .season-icon[data-weather=rain] .weather-rain{display:block}
@media(max-width:700px){
 #record .room-weather.is-winter{clip-path:url(#polish-winter-glass-phone);mask-image:linear-gradient(to bottom,#000 89.7%,transparent 90.7%)}
 #record .window-season-toggle .season-icon{width:18px;height:18px}
}
