/* V90 Living Storybook — decorative overlays only. Never modifies the master paintings. */
.olu-v90-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;max-width:1120px;margin:12px auto 18px;padding:12px 14px;border:1px solid rgba(236,199,140,.30);border-radius:18px;background:linear-gradient(115deg,rgba(39,28,62,.92),rgba(33,53,70,.89));color:#fff3df;box-shadow:0 8px 26px rgba(15,11,32,.14);font-family:system-ui,-apple-system,sans-serif}
.olu-v90-controls .olu-v90-heading{display:flex;flex:1 1 210px;flex-direction:column;gap:2px;min-width:0}
.olu-v90-controls .olu-v90-heading strong{font:600 clamp(18px,3.6vw,23px)/1.1 Georgia,serif;letter-spacing:.02em;color:#fff2d3}
.olu-v90-controls .olu-v90-heading small{font:400 12px/1.35 system-ui,sans-serif;color:#e6d9e2}
.olu-v90-controls button{font:600 13px/1.25 system-ui,sans-serif;border:1px solid rgba(248,218,160,.5);border-radius:999px;background:rgba(255,246,217,.12);color:#fff3dc;padding:10px 14px;cursor:pointer;min-height:42px;touch-action:manipulation}
.olu-v90-controls button:hover,.olu-v90-controls button:focus-visible{background:rgba(255,228,176,.23);outline:2px solid #ffde9d;outline-offset:2px}
.olu-v90-controls button[aria-pressed="false"]{background:rgba(12,19,34,.45);color:#e8e4e9}
.olu-v90-atmosphere{position:absolute;inset:0;z-index:11;overflow:hidden;pointer-events:none;isolation:isolate}
.olu-v90-atmosphere .olu-v90-mote{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:radial-gradient(circle,#fffce4 0%,#ffdb9d 35%,rgba(255,184,112,0) 76%);box-shadow:0 0 9px 1px rgba(255,221,158,.4);opacity:0;animation:olu-v90-float var(--duration) ease-in-out var(--delay) infinite;will-change:transform,opacity}
.olu-v90-atmosphere .olu-v90-mote:nth-child(4n){background:radial-gradient(circle,#fff 0%,#b7d5f8 40%,transparent 76%);box-shadow:0 0 8px rgba(179,206,255,.5)}
.olu-v90-atmosphere .olu-v90-shooting-star{position:absolute;top:17%;left:-30%;width:32%;height:2px;opacity:0;transform:rotate(-15deg);transform-origin:right center;background:linear-gradient(90deg,transparent,rgba(255,233,170,.2) 30%,#fff9db 95%,#fff);filter:drop-shadow(0 0 5px #ffd68a)}
.olu-v90-atmosphere.olu-v90-play .olu-v90-shooting-star{animation:olu-v90-streak 2.7s cubic-bezier(.17,.65,.27,1) .4s both}
.olu-v90-atmosphere .olu-v90-caption{position:absolute;left:50%;top:11%;transform:translateX(-50%) translateY(8px);max-width:min(86%,560px);padding:10px 18px;border-radius:16px;border:1px solid rgba(255,229,182,.55);background:rgba(25,25,46,.76);color:#fff7e9;font:italic clamp(15px,3.4vw,24px)/1.35 Georgia,serif;text-align:center;text-shadow:0 2px 5px #100b24;box-shadow:0 8px 24px rgba(0,0,0,.18);opacity:0}
.olu-v90-atmosphere.olu-v90-play .olu-v90-caption{animation:olu-v90-message 6s ease both}
.olu-v90-atmosphere.olu-v90-paused .olu-v90-mote{animation-play-state:paused;opacity:0}
.olu-v90-atmosphere.olu-v90-paused .olu-v90-shooting-star,.olu-v90-atmosphere.olu-v90-paused .olu-v90-caption{animation:none!important;opacity:0!important}
@keyframes olu-v90-float{0%,100%{transform:translate3d(0,8px,0) scale(.65);opacity:0}25%{opacity:.52}55%{transform:translate3d(9px,-12px,0) scale(1.15);opacity:.75}80%{opacity:.28}}
@keyframes olu-v90-streak{0%{left:-35%;top:20%;opacity:0}12%{opacity:1}65%{opacity:1}100%{left:110%;top:52%;opacity:0}}
@keyframes olu-v90-message{0%,8%{opacity:0;transform:translateX(-50%) translateY(8px)}20%,75%{opacity:1;transform:translateX(-50%) translateY(0)}100%{opacity:0;transform:translateX(-50%) translateY(-7px)}}
@media(max-width:600px){.olu-v90-controls{margin:10px 8px 14px;padding:12px}.olu-v90-controls .olu-v90-heading{flex-basis:100%;text-align:center}.olu-v90-controls button{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){.olu-v90-atmosphere .olu-v90-mote,.olu-v90-atmosphere .olu-v90-shooting-star,.olu-v90-atmosphere .olu-v90-caption{animation:none!important;opacity:0!important}}

/* V90.1: give scene scroll-to-play a small comfortable top inset. */
#cwStage,#gardenScene,#skyTheater{scroll-margin-top:14px}
