/* Blue hour, candlelight and a little company outside Shishi's. */
body{--village-paper:#fff;background-color:var(--village-paper);transition:background-color 2s ease}
body.is-night{--village-paper:#9da8bd}
.world-viewport,.village-scene{background-color:var(--village-paper);transition:background-color 2s ease}
.village-scene{transition:transform .65s cubic-bezier(.22,1,.36,1),background-color 2s ease}
.dragging .village-scene{transition:background-color 2s ease}
.village-art{mix-blend-mode:multiply}
.evening .village-art{filter:saturate(.75)}
.evening-wash{display:none}
.warm-interiors{opacity:0;transition:opacity 2s;mix-blend-mode:screen}
.lights-on .warm-interiors{opacity:.64}
.evening.lights-on .warm-interiors{opacity:1}
.lights-off .warm-interiors{opacity:0}
.night-lamplight,.night-moon{opacity:0;transition:opacity 2s}
.evening .night-lamplight,.evening .night-moon{opacity:1}
.string-lights circle{fill:#eee0bc;stroke:#aa9983;stroke-width:.5;animation:none}
.evening .string-lights circle{fill:#fff5d6;filter:drop-shadow(0 0 2px #fff2cb) drop-shadow(0 0 7px #f4cf9266)}
.evening .sky-stars{opacity:.7;animation:twinkle 7s ease-in-out infinite}
.is-night .village-title img{filter:drop-shadow(0 0 15px #ffc7e044)}
.is-night .world-controls{background:#64738b25}
.is-night .world-controls button,.is-night .world-controls #zoom-in,.is-night .world-controls #zoom-out,.is-night .world-controls #zoom-reset,.is-night .world-controls .motion-toggle{color:#f6eddf}
.is-night .world-controls #time-toggle>span:first-child{color:#fff2ce}
.is-night .world-controls button:hover{background:#fff5f02b;color:#fff}
.world-controls #sound-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
#sound-toggle .sound-waves{display:none}.sound-on #sound-toggle .sound-waves{display:inline}.sound-on #sound-toggle .sound-slash{display:none}
.world-controls #sound-toggle[aria-pressed="true"]{color:#d36a96;background:#fce8f044}
.is-night .world-controls #sound-toggle[aria-pressed="true"]{color:#fff3cc;background:#fff7db20}

.porsche{display:block;width:100%;height:auto;overflow:visible;animation:porsche-bob .8s ease-in-out infinite alternate}
.porsche-wheel{transform-origin:var(--wheel-x) 85px;animation:porsche-wheel .85s linear infinite}
.car-headlights{opacity:0;transition:opacity 2s}.evening .car-headlights{opacity:1}
@keyframes porsche-wheel{to{transform:rotate(360deg)}}
@keyframes porsche-bob{to{transform:translateY(.7px)}}
.party-scene{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;opacity:0;transition:opacity 1.8s;overflow:visible}
.evening .party-scene{opacity:1}
.party-notes text{animation:party-music 4s ease-out infinite;opacity:0}.party-notes text:nth-child(2){animation-delay:1.3s}.party-notes text:nth-child(3){animation-delay:2.6s}
@keyframes party-music{0%{opacity:0;transform:translateY(6px)}30%{opacity:.7}100%{opacity:0;transform:translateY(-19px)}}
.motion-paused .day-traffic *,.motion-paused .party-scene *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){body:not(.motion-opt-in) .day-traffic *,body:not(.motion-opt-in) .porsche *,body:not(.motion-opt-in) .party-scene *{animation-play-state:paused!important}body:not(.motion-opt-in),body:not(.motion-opt-in) .village-scene,body:not(.motion-opt-in) .world-viewport{transition:none}}

/* Each mode has its own cast. Daytime traffic and effects are absent at night. */
.day-traffic{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none;overflow:visible}
.porsche-position,.porsche-side{transform-box:view-box;transform-origin:0 0}
.day-traffic .porsche{animation:none}
.evening .day-life{display:none!important}
.evening .day-life *{animation-play-state:paused!important}
.party-scene{visibility:hidden;opacity:0}
.evening .party-scene{visibility:visible;opacity:1}
.village-scene:not(.evening) .party-scene *{animation-play-state:paused!important}
.party-scene symbol{overflow:visible}
.music-notes{display:none}
.evening .door-marker{animation:none}
.evening .petal-layer,.evening .wish-layer{display:none}
