/* Shared ambient sparkles — matches /app workspace + /webui */
.amt-sparkles{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:0;
  transition:opacity .45s ease;
}
.amt-sparkles.is-active{opacity:1}
body.amt-ambient{
  position:relative;
  overflow-x:hidden;
}
body.amt-ambient::before,
body.amt-ambient::after{
  content:'';
  position:fixed;
  border-radius:50%;
  pointer-events:none;
  z-index:0;
}
body.amt-ambient::before{
  width:min(520px,70vw);
  height:min(520px,70vw);
  top:-12%;
  left:-8%;
  background:radial-gradient(circle,rgba(215,184,79,.12),transparent 68%);
  animation:amtGeoFloat1 20s ease-in-out infinite;
}
body.amt-ambient::after{
  width:min(380px,55vw);
  height:min(380px,55vw);
  bottom:-10%;
  right:-6%;
  background:radial-gradient(circle,rgba(114,212,158,.07),transparent 68%);
  animation:amtGeoFloat2 24s ease-in-out infinite;
}
@keyframes amtGeoFloat1{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(4%,6%)}
}
@keyframes amtGeoFloat2{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(-5%,-4%)}
}
@media (max-width:700px){
  body.amt-ambient::before{opacity:.75}
  body.amt-ambient::after{opacity:.7}
}
@media (prefers-reduced-motion:reduce){
  body.amt-ambient::before,
  body.amt-ambient::after{animation:none}
  .amt-sparkles{display:none}
}
/* Keep chrome and page content above sparkles */
body.amt-ambient .amt-nav,
body.amt-ambient .amt-site-footer,
body.amt-ambient main,
body.amt-ambient .page,
body.amt-ambient .w-main,
body.amt-ambient.amt-guide-article > :not(.amt-sparkles):not(canvas):not(script){
  position:relative;
  z-index:1;
}
