/* Kai illustrations: geometry belongs to the page. Always give images their
   intrinsic width="1536" height="1024"; keep the page's fixed 3:2 frame.
   JS animates only individual translate/rotate on .kai-scene-art, preserving
   the transform animation used by studio-motion.js when the lab changes. */
[data-kai-scene]{position:relative;isolation:isolate;--kai-scene-accent:#66e6ed;--kai-scene-glint-duration:6.8s}
[data-kai-scene] .kai-scene-art{transform-origin:50% 78%;backface-visibility:hidden}
[data-kai-scene="boutique"],.lab-canvas[data-lab-scene="shop"] [data-kai-scene]{--kai-scene-accent:#ff8c7b;--kai-scene-glint-duration:7.6s}
[data-kai-scene="contenu"],.lab-canvas[data-lab-scene="visibility"] [data-kai-scene]{--kai-scene-accent:#ffb9a7;--kai-scene-glint-duration:6.2s}
[data-kai-scene="ia"],.lab-canvas[data-lab-scene="ai"] [data-kai-scene]{--kai-scene-accent:#66e6ed;--kai-scene-glint-duration:7.2s}
[data-kai-scene] .kai-scene-effects{position:absolute;inset:0;display:block;z-index:-1;overflow:clip;pointer-events:none;user-select:none}
[data-kai-scene] .kai-scene-glint{position:absolute;display:block;width:11px;height:11px;background:var(--kai-scene-accent);opacity:.16;clip-path:polygon(50% 0,60% 37%,100% 50%,60% 61%,50% 100%,39% 61%,0 50%,39% 39%);animation:kai-scene-glint var(--kai-scene-glint-duration) ease-in-out var(--kai-scene-delay,0s) infinite;animation-play-state:paused}
[data-kai-scene] .kai-scene-glint:nth-child(1){left:15%;top:28%;--kai-scene-delay:-1.4s}
[data-kai-scene] .kai-scene-glint:nth-child(2){right:13%;top:20%;width:8px;height:8px;--kai-scene-delay:-3.6s}
[data-kai-scene] .kai-scene-glint:nth-child(3){right:9%;bottom:23%;width:6px;height:6px;--kai-scene-delay:-5.2s}
[data-kai-scene][data-kai-active="true"] .kai-scene-glint{animation-play-state:running}
@keyframes kai-scene-glint{0%,100%{opacity:.12;translate:0 2px;scale:.82}40%{opacity:.5;translate:0 -2px;scale:1}65%{opacity:.2;translate:0 0;scale:.9}}
@media(max-width:600px){[data-kai-scene] .kai-scene-glint{width:8px;height:8px}[data-kai-scene] .kai-scene-glint:nth-child(2){width:6px;height:6px}}
@media(prefers-reduced-motion:reduce){
  [data-kai-scene] .kai-scene-glint{animation:none!important;opacity:.15;translate:none;scale:1}
  body:not(.studio-motion-manual) [data-kai-scene] .kai-scene-art{translate:none!important;rotate:none!important}
  /* A voluntary activation of the site's existing animation control wins over
     its default reduced-motion setting, consistently with studio-motion.js. */
  body.studio-motion-manual.studio-motion-on [data-kai-scene] .kai-scene-glint{animation:kai-scene-glint var(--kai-scene-glint-duration) ease-in-out var(--kai-scene-delay,0s) infinite!important;animation-play-state:paused!important}
  body.studio-motion-manual.studio-motion-on [data-kai-scene][data-kai-active="true"] .kai-scene-glint{animation-play-state:running!important}
}
