/* v44: seven independent ambient scenes. Content stays still and readable. */
[data-ambient]{--mbp-ambient-ready:1;position:relative;isolation:isolate;overflow:hidden}
[data-ambient]::before{content:none!important;animation:none!important}
[data-ambient]>.wrap{position:relative;z-index:1}
.ambient-scene{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:#AF6535}
.ambient-art{position:absolute;right:-12%;top:-100px;width:clamp(700px,80vw,1120px);height:auto;opacity:.7;overflow:visible}
.ambient-line{fill:none;stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:.27}
.ambient-dot{fill:currentColor;opacity:.7}
.ambient-sage{color:#718567}
.ambient-warm{color:#CE8D48}
.ambient-motion{transform-box:view-box;transform-origin:400px 300px;animation-play-state:paused}
.ambient-orbit{transform-origin:410px 300px}
.ambient-orbit-reverse{transform-origin:410px 300px}
.ambient-leaves{transform-origin:420px 620px}
/* Replace the old nearly stationary logo/photo loops with the new scenes. */
[data-ambient] .labs-hero-art,[data-ambient] .labs-hero-orbit,
[data-ambient] .hero-media img{animation:none!important}
[data-ambient="book"] .ambient-art{opacity:.85}
[data-ambient="movement"] .ambient-art{top:-20px;width:clamp(800px,95vw,1400px);right:-18%;color:#829074}
[data-ambient="events"] .ambient-art{color:#84916C;top:-50px}
[data-ambient="start"] .ambient-art{color:#CC8B43;top:-110px}
[data-ambient="nature"] .ambient-art{color:#768968;top:-30px;right:-5%}
[data-ambient="contact"] .ambient-art{color:#B9794E;top:-140px}
/* Keep the quieter scenes in open paper, where an opaque photo cannot hide them. */
@media(min-width:821px){
  [data-ambient="book"] .ambient-art{right:9%}
  [data-ambient="events"] .ambient-art{right:3%}
  [data-ambient="start"] .ambient-art{right:8%}
}

@media(prefers-reduced-motion:no-preference){
  [data-motion-state] .ambient-orbit{animation:ambientOrbit 24s linear infinite}
  [data-motion-state] .ambient-orbit-reverse{animation:ambientOrbit 32s linear infinite reverse}
  [data-motion-state] .ambient-glow{animation:ambientSunlight 10s ease-in-out infinite alternate}
  [data-motion-state] .ambient-motes{animation:ambientMotes 8s ease-in-out infinite alternate}
  [data-motion-state] .ambient-wave{animation:ambientWave 7s ease-in-out infinite alternate}
  [data-motion-state] .ambient-wave-late{animation:ambientWave 9s -3s ease-in-out infinite alternate-reverse}
  [data-motion-state] .ambient-gather{animation:ambientGather 10s ease-in-out infinite alternate}
  [data-motion-state] .ambient-gather-late{animation:ambientGather 13s -4s ease-in-out infinite alternate-reverse}
  [data-motion-state] .ambient-sun{animation:ambientSunrise 8s ease-in-out infinite alternate}
  [data-motion-state] .ambient-rays{animation:ambientRays 11s ease-in-out infinite alternate}
  [data-motion-state] .ambient-leaves{animation:ambientLeaves 8s ease-in-out infinite alternate}
  [data-motion-state] .ambient-leaf-light{animation:ambientMotes 12s -3s ease-in-out infinite alternate}
  [data-motion-state] .ambient-ripple{animation:ambientRipple 9s ease-in-out infinite}
  [data-motion-state] .ambient-ripple-late{animation:ambientRipple 9s -4.5s ease-in-out infinite}
  [data-motion-state="paused"] .ambient-motion,
  [data-motion-suspended] .ambient-motion{animation-play-state:paused!important}
  [data-motion-state="running"]:not([data-motion-suspended]) .ambient-motion{animation-play-state:running}
}
@keyframes ambientOrbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes ambientSunlight{from{transform:translate(-28px,-10px) rotate(-5deg);opacity:.5}to{transform:translate(26px,18px) rotate(5deg);opacity:.9}}
@keyframes ambientMotes{from{transform:translate(0,18px);opacity:.4}to{transform:translate(14px,-24px);opacity:.85}}
@keyframes ambientWave{from{transform:translate(-24px,-14px) rotate(-2deg)}to{transform:translate(30px,14px) rotate(2deg)}}
@keyframes ambientGather{from{transform:translate(-18px,12px) rotate(-4deg)}to{transform:translate(22px,-14px) rotate(4deg)}}
@keyframes ambientSunrise{from{transform:translateY(18px);opacity:.45}to{transform:translateY(-14px);opacity:.85}}
@keyframes ambientRays{from{transform:rotate(-6deg);opacity:.4}to{transform:rotate(6deg);opacity:.75}}
@keyframes ambientLeaves{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}
@keyframes ambientRipple{0%{transform:scale(.84);opacity:.15}45%{opacity:.8}100%{transform:scale(1.16);opacity:.15}}
@media(max-width:820px){
  .ambient-art{width:760px;right:-295px;top:-70px}
  [data-ambient="movement"] .ambient-art{width:840px;right:-340px;top:0}
  [data-ambient="nature"] .ambient-art{width:760px;right:-290px;top:-30px}
  [data-ambient="contact"] .ambient-art{top:-110px}
}
@media(max-width:480px){
  .ambient-art{width:660px;right:-270px;top:-35px;opacity:.58}
  [data-ambient="movement"] .ambient-art{width:740px;right:-300px;top:-30px}
  [data-ambient="events"] .ambient-art{top:5px}
  [data-ambient="nature"] .ambient-art{width:660px;right:-250px;top:-20px}
  [data-ambient="start"] .ambient-art{top:-90px}
  [data-ambient="contact"] .ambient-art{top:-90px}
}
@media(prefers-reduced-motion:reduce){
  [data-ambient] .ambient-motion{animation:none!important;transform:none!important;opacity:.6}
}

/* Keep decoration out of flow until the controller verifies containment. */
[data-ambient] .ambient-scene[hidden]{display:none!important}

/* v45: orbital geometry shares the brand mark's native centre and proportions. */
.labs-logo-lockup{position:relative;width:min(100%,485px);isolation:isolate}
.labs-hero-art .labs-logo-lockup>img{display:block;width:100%;height:auto;position:relative;z-index:1}
[data-ambient="labs"] .labs-logo-lockup .ambient-scene{inset:0;overflow:visible;z-index:0}
[data-ambient="labs"] .labs-logo-lockup .ambient-art{inset:0;width:100%;height:100%;opacity:.8;overflow:visible}
[data-ambient="labs"] .ambient-orbit,[data-ambient="labs"] .ambient-orbit-reverse{transform-origin:214px 211px}
[data-ambient="labs"] .labs-hero-art{padding:clamp(30px,4vw,54px) clamp(24px,3vw,44px);background:radial-gradient(ellipse at 24% 47%,#F6E6CF88,transparent 70%),#FBF6EECB}
[data-ambient="labs"] .labs-hero-art p{margin-top:22px}
[data-mbp-motion="labs"] .labs-project .labs-desktop-frame img{aspect-ratio:1440 / 800;object-fit:contain}
.labs-service .labs-content-link{margin-top:10px;font-size:.88rem}
.labs-content .center-head{max-width:900px}
.labs-content .reel figcaption a{display:inline-block;margin-top:8px;font-size:.82rem}

/* A distinct night field, separate from the screen and all readable content. */
[data-ambient="night"] .ambient-art{right:-5%;top:-20px;width:clamp(720px,75vw,1100px);color:#B08543;opacity:.95}
.ambient-night-paths{fill:none;stroke:currentColor;stroke-width:1.2;opacity:.18;vector-effect:non-scaling-stroke}
.ambient-fireflies,.ambient-fireflies-late{fill:#B57A2A;filter:drop-shadow(0 0 5px #D9AA61);transform-origin:500px 350px}
@media(prefers-reduced-motion:no-preference){
  [data-motion-state] .ambient-night-glow{animation:ambientNightGlow 9s ease-in-out infinite alternate}
  [data-motion-state] .ambient-fireflies{animation:ambientFireflies 7s ease-in-out infinite alternate}
  [data-motion-state] .ambient-fireflies-late{animation:ambientFireflies 10s -4s ease-in-out infinite alternate-reverse}
  [data-motion-state="paused"] .ambient-motion,[data-motion-suspended] .ambient-motion{animation-play-state:paused!important}
}
@keyframes ambientNightGlow{from{transform:translate(-28px,14px) scale(.95);opacity:.4}to{transform:translate(16px,-12px) scale(1.06);opacity:.95}}
@keyframes ambientFireflies{from{transform:translate(-13px,22px);opacity:.22}to{transform:translate(19px,-26px);opacity:.95}}
@media(max-width:820px){
  [data-ambient="night"] .ambient-art{top:0;bottom:auto;width:820px;right:-240px}
}
@media(max-width:480px){
  [data-ambient="night"] .ambient-art{right:-260px;top:-20px;bottom:auto;width:780px}
}
