/* Scoped to Experiment 002. Signal Garden retains its original styles. */
.mood-machine{margin-top:32px;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--bg);min-width:0}
.mood-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 32px;border-bottom:1px solid var(--line);background:#111610}
html[data-theme=light] .mood-heading{background:#eeeee6}
.mood-heading .eyebrow{font-family:'Courier New',monospace;font-size:10px;font-weight:500;letter-spacing:1.5px}
.mood-heading h3{font:500 29px 'Manrope',Arial;letter-spacing:-1px;margin:10px 0 6px}
.mood-heading p{font-size:11px}
.mood-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:0;align-items:stretch}
.mood-scene{position:relative;min-width:0;width:100%;height:100%;min-height:420px;max-height:none;aspect-ratio:auto;justify-self:stretch;align-self:stretch;overflow:hidden;isolation:isolate;background:#0c1120;--mood-skyTop:#0c1120;--mood-skyBottom:#32304c;--mood-horizon:#73607c;--mood-far:#35364c;--mood-middle:#252839;--mood-front:#171c28;--mood-street:#141924;--mood-cloud:#68728c;--mood-mist:#8695ae;--mood-neon:.75;--mood-windows:.72;--mood-reflections:.67;--mood-rain:.45;--mood-fog:.18;--mood-hue:1.5deg;--mood-surprise:0}
.mood-world{position:absolute;inset:0;width:100%;height:100%;display:block;filter:hue-rotate(var(--mood-hue));transition:filter .35s ease}
.mood-world .mood-sky-top{stop-color:var(--mood-skyTop)}
.mood-world .mood-sky-bottom{stop-color:var(--mood-skyBottom)}
.mood-world .mood-sky-horizon{stop-color:var(--mood-horizon)}
.mood-world stop{transition:stop-color .4s ease}
.mood-far-buildings{fill:var(--mood-far)}.mood-middle-buildings{fill:var(--mood-middle)}.mood-front-buildings{fill:var(--mood-front)}.mood-road{fill:var(--mood-street)}
.mood-far-buildings,.mood-middle-buildings,.mood-front-buildings,.mood-road{transition:fill .4s ease}
.mood-clouds{fill:var(--mood-cloud);opacity:.55;transition:fill .4s,opacity .4s}
.mood-machine[data-weather=clear] .mood-clouds{opacity:.08}
.mood-machine[data-weather=overcast] .mood-clouds{opacity:.78}
.mood-moon{opacity:1;transition:opacity .4s}
.mood-machine:not([data-time=night]) .mood-moon{opacity:0}
.mood-machine[data-time=night][data-weather=overcast] .mood-moon{opacity:.3}
.mood-machine[data-time=night][data-weather=rain] .mood-moon{opacity:.5}
.mood-stars{opacity:.32;transition:opacity .4s}
.mood-machine:not([data-time=night]) .mood-stars,.mood-machine[data-weather=overcast] .mood-stars{opacity:0}
.mood-machine[data-weather=rain] .mood-stars{opacity:.06}
.mood-lit-windows{fill:var(--mood-windowColor,#e0cbd0);opacity:var(--mood-windows);transition:opacity .35s ease,fill .35s ease}
.mood-neon{opacity:var(--mood-neon);transition:opacity .35s ease}
.mood-reflections{opacity:var(--mood-reflections);transition:opacity .4s ease}
.mood-impossible-window{opacity:var(--mood-surprise);transition:opacity .4s ease}
.mood-surface-light{opacity:var(--mood-surfaceGlow,0);transition:opacity .35s ease}
.mood-neon-bloom{fill-opacity:.4;opacity:var(--mood-neonBloom,0);transition:opacity .35s ease}
.mood-wet-road{opacity:var(--mood-wetRoad,0);transition:opacity .35s ease}
.mood-soft-window{opacity:var(--mood-softWindow,0);transition:opacity .35s ease}
.mood-isolated-window{opacity:var(--mood-isolatedWindow,0);transition:opacity .35s ease}
.mood-strange-door{opacity:var(--mood-strangeDoor,0);transition:opacity .4s ease}
.mood-dream-door{opacity:var(--mood-dreamDoor,0);transition:opacity .4s ease}
.mood-extra-moon{opacity:var(--mood-extraMoon,0);transition:opacity .4s ease}
.mood-window-sequence{opacity:var(--mood-sequence,0);transition:opacity .4s ease}
.mood-bending-building{transform-box:view-box;transform-origin:350px 470px;transform:skewX(calc(var(--mood-distortion,0)*-2.2deg)) scaleY(calc(1 + var(--mood-proportion,0)*.045));transition:transform .4s ease}
.mood-cloud-drift{animation:mood-cloud-drift 42s ease-in-out infinite alternate}
.mood-sign-breathe{animation:mood-sign-breathe 16s ease-in-out infinite alternate}
.mood-strange-sign{animation:mood-sign-waver 19s ease-in-out infinite}
.mood-reflection-shimmer{animation:mood-reflection-shimmer 26s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}
.mood-sequence-one,.mood-sequence-two,.mood-sequence-three{animation:mood-window-wander 18s ease-in-out infinite}
.mood-sequence-two{animation-delay:-6s}.mood-sequence-three{animation-delay:-12s}
.mood-fog{position:absolute;inset:34% -12% -4%;z-index:2;pointer-events:none;opacity:var(--mood-fog);background:radial-gradient(ellipse at 55% 48%,var(--mood-mist),transparent 62%);filter:blur(18px);transform:translateX(-1%);animation:mood-mist-drift 24s ease-in-out infinite alternate;transition:opacity .4s}
.mood-fog:after{content:'';position:absolute;inset:12% -8% 26%;background:linear-gradient(8deg,transparent 20%,var(--mood-mist) 49%,transparent 68%);opacity:.35}
.mood-rain{position:absolute;inset:-28% -10%;z-index:3;pointer-events:none;background:repeating-linear-gradient(105deg,transparent 0 34px,#ccd8ec55 35px,#ccd8ec55 36px,transparent 37px 78px);background-size:110px 120px;mask-image:repeating-linear-gradient(0deg,transparent 0 74px,#000 76px 90px,transparent 92px 120px);-webkit-mask-image:repeating-linear-gradient(0deg,transparent 0 74px,#000 76px 90px,transparent 92px 120px);opacity:var(--mood-rain);animation:mood-rain-fall 1.8s linear infinite;transition:opacity .4s;transform:translate3d(0,-30px,0)}
.mood-rain-far{background-size:83px 100px;animation-duration:2.8s;opacity:calc(var(--mood-rain)*.38);filter:blur(.6px)}
.mood-scene:before{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(180deg,#080c1855 0,transparent 24%,transparent 54%,#080c19d9 100%)}
.mood-scene:after{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23g)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.mood-scene-meta{position:absolute;inset:18px 20px auto;display:flex;justify-content:space-between;gap:12px;z-index:5;color:#e2dce6;font:8px/1.5 monospace;letter-spacing:1px}
.mood-scene-meta span{white-space:nowrap}
.mood-caption{position:absolute;left:24px;right:22px;bottom:24px;z-index:5;color:#f8eef3;transition:opacity .2s ease;min-height:85px;pointer-events:none}
.mood-caption-changing{opacity:0}
.mood-caption-label{display:block;font:8px/1.5 monospace;letter-spacing:1.3px;color:#d7becd;margin-bottom:9px}
.mood-caption h4{margin:0;color:#f8eef3;font:500 clamp(21px,2vw,29px)/1.2 'Manrope',Arial,sans-serif;letter-spacing:-.6px}
.mood-caption p{font-size:12px;line-height:1.65;color:#cec4d2;margin-top:7px;max-width:43ch}
.mood-controls{padding:24px 26px;border-left:1px solid var(--line);min-width:0}
.mood-controls fieldset{min-width:0;border:0;border-bottom:1px solid var(--line);padding:0 0 17px;margin:0 0 17px}
.mood-controls legend,.mood-range-label{width:100%;padding:0;font:9px/1.5 monospace;letter-spacing:1.1px;color:var(--muted)}
.mood-segments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:10px}
.mood-segments button{min-width:0;height:44px;min-height:44px;padding:6px 4px;border:1px solid var(--line);border-radius:2px;background:transparent;font-size:11px;line-height:1.2;color:var(--muted);transition:background .2s,border-color .2s,color .2s;touch-action:manipulation}
.mood-segments button:hover{border-color:var(--pink);color:var(--ink)}
.mood-segments button[aria-pressed=true]{background:var(--pink);border-color:var(--pink);color:var(--bg)}
.mood-range{padding-bottom:13px;margin-bottom:17px;border-bottom:1px solid var(--line)}
.mood-range-label{display:flex;align-items:center;justify-content:space-between;gap:6px}
.mood-range-label output{color:var(--pink);font-variant-numeric:tabular-nums;letter-spacing:0;min-width:4ch;text-align:right}
.mood-range-endpoints{display:flex;justify-content:space-between;gap:14px;margin-top:1px;font:7px/1.6 monospace;letter-spacing:.9px;color:var(--muted)}
.mood-range input{display:block;width:100%;min-width:0;height:32px;margin:8px 0 0;accent-color:var(--pink);cursor:pointer}
.mood-privacy{font-size:11px;line-height:1.8;max-width:34ch;margin-top:2px}
.mood-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 24px;border-top:1px solid var(--line)}
.mood-footer>span{font:8px/1.6 monospace;letter-spacing:1px;color:var(--muted)}
.mood-reset{background:transparent;border:0;padding:7px 0;font:9px/1.6 monospace;letter-spacing:.5px;color:var(--pink);white-space:nowrap}
.mood-reset:hover{color:var(--ink)}
.mood-footer-actions{display:flex;align-items:center;gap:22px;flex-shrink:0}
.mood-machine[data-still=true] .mood-world,.mood-machine[data-still=true] .mood-world *,.mood-machine[data-still=true] .mood-caption,.mood-machine[data-still=true] .mood-rain,.mood-machine[data-still=true] .mood-fog{animation:none!important;transition:none!important}
.mood-machine[data-visible=false] .mood-rain,.mood-machine[data-visible=false] .mood-fog{animation-play-state:paused}
.mood-machine[data-visible=false] .mood-ambient{animation-play-state:paused}
@keyframes mood-rain-fall{to{transform:translate3d(-24px,90px,0)}}
@keyframes mood-mist-drift{to{transform:translateX(2%)}}
@keyframes mood-cloud-drift{from{transform:translateX(-9px)}to{transform:translateX(12px)}}
@keyframes mood-sign-breathe{from{opacity:.93}to{opacity:1}}
@keyframes mood-sign-waver{0%,35%,61%,100%{opacity:1}48%{opacity:calc(1 - var(--mood-signStrangeness,0))}78%{opacity:calc(1 - var(--mood-signStrangeness,0)*.4)}}
@keyframes mood-reflection-shimmer{from{opacity:.85;transform:translateY(0)}to{opacity:1;transform:translateY(2px)}}
@keyframes mood-window-wander{0%,100%{opacity:.28}28%{opacity:.3}48%{opacity:.68}67%{opacity:.75}85%{opacity:.36}}
@media(max-width:1000px) and (min-width:701px){.mood-layout{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.mood-controls{padding:22px 18px}.mood-segments button{font-size:10px}}
@media(max-width:700px){.mood-heading{padding:24px;align-items:start;flex-direction:column}.mood-heading h3{font-size:26px}.mood-layout{grid-template-columns:minmax(0,1fr)}.mood-scene{height:330px;min-height:330px;max-height:none;aspect-ratio:auto}.mood-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;border-left:0;border-top:1px solid var(--line);padding:20px}.mood-controls fieldset,.mood-privacy{grid-column:1/-1}.mood-controls fieldset{padding-bottom:15px;margin-bottom:15px}.mood-segments button{min-height:44px;font-size:12px}.mood-range input{height:44px}.mood-range-label{font-size:8px;letter-spacing:.6px}.mood-privacy{max-width:none}.mood-scene-meta{inset:15px 17px auto;font-size:7px;letter-spacing:.7px}.mood-caption{left:19px;right:18px;bottom:20px;min-height:105px}.mood-caption h4{font-size:23px}.mood-caption p{font-size:11px;max-width:34ch}.mood-footer{padding:8px 19px;align-items:stretch;flex-direction:column;gap:4px}.mood-footer>span{max-width:none;font-size:7px}.mood-footer-actions{justify-content:space-between;gap:16px}.mood-reset{min-height:44px;font-size:8px}}
@media(prefers-reduced-motion:reduce){.mood-machine *,.mood-machine *:before,.mood-machine *:after{animation:none!important;transition:none!important}}
