/* Native, decorative process scenes. Their state is controlled by the section observer. */
.cl-build-scene {
  --cl-build-duration:9s;
  --cl-build-stroke:color-mix(in srgb,var(--cl-accent) 32%,var(--cl-border));
  --cl-build-line:color-mix(in srgb,var(--cl-accent-soft) 24%,var(--cl-border));
  --cl-build-face:color-mix(in srgb,var(--cl-surface) 95%,var(--cl-accent));
  --cl-build-panel:color-mix(in srgb,var(--cl-raised) 92%,var(--cl-accent));
  --cl-build-shadow:oklch(8% .006 77 / .42);
  isolation:isolate;
  position:relative;
  width:100%;
  height:100%;
  min-height:280px;
  perspective:850px;
  color:var(--cl-text);
}
.cl-build-scene::before {
  content:"";
  position:absolute;
  inset:18% -12% -5%;
  z-index:-1;
  background:radial-gradient(ellipse at 50% 68%,color-mix(in srgb,var(--cl-accent) 23%,transparent),transparent 65%);
  opacity:.6;
}
.cl-build-scene::after {
  content:"";
  position:absolute;
  left:15%;right:15%;bottom:12px;
  height:28px;
  border-radius:50%;
  background:radial-gradient(ellipse,color-mix(in srgb,var(--cl-accent-soft) 38%,transparent),transparent 70%);
  filter:blur(9px);
  transform:scaleY(.5);
}
.cl-build-plane {
  position:absolute;
  inset:20px 30px 42px;
  display:flex;
  flex-direction:column;
  z-index:1;
  overflow:hidden;
  border:1px solid var(--cl-build-stroke);
  border-radius:15px;
  background:linear-gradient(140deg,color-mix(in srgb,var(--cl-raised) 93%,var(--cl-accent)),var(--cl-build-face) 65%);
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--cl-accent-soft) 22%,transparent),inset 0 0 0 3px color-mix(in srgb,var(--cl-bg) 55%,transparent),0 22px 28px -18px var(--cl-build-shadow),4px 5px 0 -2px var(--cl-build-face),5px 6px 0 -2px var(--cl-build-stroke);
  transform:rotateY(-7deg) rotateX(6deg) rotateZ(-2deg);
  animation:cl-build-scene-float var(--cl-build-duration) ease-in-out infinite;
}
.cl-build-scene-prototype .cl-build-plane {
  transform:rotateY(6deg) rotateX(6deg) rotateZ(1.5deg);
  animation-name:cl-build-scene-float-reverse;
  animation-delay:-2.5s;
}
.cl-build-scene-launch .cl-build-plane { animation-delay:-5s; }
.cl-build-window-head {
  flex:none;
  height:37px;
  padding:0 12px;
  display:flex;
  align-items:center;
  gap:9px;
  border-bottom:1px solid var(--cl-build-line);
  color:var(--cl-muted);
  background:linear-gradient(90deg,color-mix(in srgb,var(--cl-accent) 6%,transparent),transparent);
}
.cl-build-window-head>strong {
  flex:1;
  font-size:10px;
  font-weight:600;
  letter-spacing:.015em;
  text-align:center;
  white-space:nowrap;
}
.cl-build-window-dots { display:flex;gap:3px; }
.cl-build-window-dots i { width:3px;height:3px;border-radius:50%;background:var(--cl-subtle);opacity:.5; }
.cl-build-window-dots i:first-child { background:var(--cl-accent-soft);opacity:1; }
.cl-build-window-signal { width:5px;height:5px;border-radius:50%;background:var(--cl-accent);box-shadow:0 0 8px var(--cl-glow); }
.cl-build-graphic { display:block;width:100%;min-height:0;flex:1;height:auto;overflow:visible; }
.cl-build-graphic text { fill:var(--cl-text);font-family:var(--cl-font);font-weight:500;font-size:13px;letter-spacing:-.02em; }
.cl-build-graphic .cl-build-muted-label { fill:var(--cl-muted);font-size:12px; }
.cl-build-graphic .cl-build-small-label { fill:var(--cl-muted);font-size:12px; }
.cl-build-fill { fill:var(--cl-build-panel);stroke:var(--cl-build-stroke);stroke-width:1; }
.cl-build-fill-soft { fill:var(--cl-build-face);stroke:var(--cl-build-line);stroke-width:1; }
.cl-build-connector { fill:none;stroke:var(--cl-build-line);stroke-width:1.25; }
.cl-build-route-pulse {
  fill:none;
  stroke:var(--cl-accent-soft);
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-dasharray:16 170;
  stroke-dashoffset:186;
  opacity:.9;
  animation:cl-build-route-travel var(--cl-build-duration) linear infinite;
}
.cl-build-route-two { animation-delay:-3s; }
.cl-build-route-three { animation-delay:-6s; }
.cl-build-glyph { fill:none;stroke:var(--cl-accent-soft);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round; }
.cl-build-glyph-muted { fill:none;stroke:var(--cl-muted);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.7; }
.cl-build-footer {
  flex:none;
  min-height:40px;
  margin:0 12px;
  padding:8px 0;
  border-top:1px solid var(--cl-build-line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:var(--cl-muted);
  font-size:10px;
  line-height:1.3;
}
.cl-build-status {
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:var(--cl-accent-soft);
  font-size:10px;
  font-weight:600;
  white-space:nowrap;
}
.cl-build-status::before { content:"";width:4px;height:4px;flex:none;border-radius:50%;background:currentColor;box-shadow:0 0 8px var(--cl-glow); }
.cl-build-discovery-ring {
  fill:none;
  stroke:var(--cl-accent-soft);
  stroke-width:1;
  opacity:.5;
  transform-origin:237px 88px;
  animation:cl-build-discovery-ring var(--cl-build-duration) ease-out infinite;
}
.cl-build-map-core { transform-origin:237px 88px;animation:cl-build-core-breathe var(--cl-build-duration) ease-in-out infinite; }
.cl-build-check-line { fill:none;stroke:var(--cl-accent-soft);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:22;stroke-dashoffset:0;animation:cl-build-check-reveal var(--cl-build-duration) ease-in-out infinite; }
.cl-build-selection {
  fill:color-mix(in srgb,var(--cl-accent) 7%,transparent);
  stroke:var(--cl-accent-soft);
  stroke-width:1.5;
  opacity:.9;
  transform-origin:183px 100px;
  animation:cl-build-prototype-selection var(--cl-build-duration) ease-in-out infinite;
}
.cl-build-prototype-cursor {
  fill:var(--cl-accent-soft);
  stroke:var(--cl-build-face);
  stroke-width:1.3;
  transform:translate(230px,85px);
  animation:cl-build-prototype-cursor var(--cl-build-duration) cubic-bezier(.2,.65,.25,1) infinite;
}
.cl-build-prototype-tile { transform-origin:182px 106px;animation:cl-build-prototype-tile var(--cl-build-duration) ease-in-out infinite; }
.cl-build-prototype-tile-two { animation-delay:-.4s; }
.cl-build-prototype-tile-three { animation-delay:-.8s; }
.cl-build-new-module { transform-origin:230px 137px;animation:cl-build-new-module var(--cl-build-duration) cubic-bezier(.2,.65,.25,1) infinite; }
.cl-build-module-plus { fill:none;stroke:var(--cl-accent-soft);stroke-width:1.75;stroke-linecap:round; }
.cl-build-launch-core { transform-origin:150px 88px;animation:cl-build-core-breathe var(--cl-build-duration) ease-in-out -2s infinite; }
.cl-build-launch-ring { fill:none;stroke:var(--cl-accent);stroke-width:1;stroke-dasharray:3 5;opacity:.45;transform-origin:150px 88px;animation:cl-build-launch-orbit 22s linear infinite; }

.cl-build-scene *,.cl-build-scene::before,.cl-build-scene::after { animation-play-state:paused; }
.cl-build-demo[data-running=true] .cl-build-scene *,.cl-build-demo[data-running=true] .cl-build-scene::before,.cl-build-demo[data-running=true] .cl-build-scene::after { animation-play-state:running; }
main[data-visual-motion=off] .cl-build-demo .cl-build-scene *,main[data-visual-motion=off] .cl-build-demo .cl-build-scene::before,main[data-visual-motion=off] .cl-build-demo .cl-build-scene::after { animation-play-state:paused; }

main[data-landing-theme=light] .cl-build-scene {
  --cl-build-face:color-mix(in srgb,var(--cl-surface) 97%,var(--cl-accent));
  --cl-build-panel:color-mix(in srgb,var(--cl-raised) 95%,var(--cl-accent));
  --cl-build-shadow:oklch(28% .025 77 / .23);
}
main[data-landing-theme=light] .cl-build-status { color:var(--cl-accent); }
main[data-landing-theme=light] .cl-build-glyph,main[data-landing-theme=light] .cl-build-module-plus { stroke:var(--cl-accent); }
main[data-landing-theme=light] .cl-build-route-pulse { stroke:var(--cl-accent); }
main[data-landing-theme=light] .cl-build-selection { stroke:var(--cl-accent); }

@keyframes cl-build-scene-float {
  0%,100% { transform:translateY(0) rotateY(-7deg) rotateX(6deg) rotateZ(-2deg); }
  50% { transform:translateY(-6px) rotateY(-4deg) rotateX(4deg) rotateZ(-1deg); }
}
@keyframes cl-build-scene-float-reverse {
  0%,100% { transform:translateY(-3px) rotateY(6deg) rotateX(6deg) rotateZ(1.5deg); }
  50% { transform:translateY(4px) rotateY(3deg) rotateX(4deg) rotateZ(.5deg); }
}
@keyframes cl-build-route-travel {
  0%,8% { stroke-dashoffset:186;opacity:.25; }
  35%,65% { opacity:.95; }
  92%,100% { stroke-dashoffset:0;opacity:.25; }
}
@keyframes cl-build-discovery-ring {
  0%,20% { opacity:.25;transform:scale(.9); }
  50% { opacity:.65;transform:scale(1.08); }
  82%,100% { opacity:.25;transform:scale(.9); }
}
@keyframes cl-build-core-breathe {
  0%,100% { opacity:.8;transform:scale(.98); }
  50% { opacity:1;transform:scale(1.035); }
}
@keyframes cl-build-check-reveal {
  0%,8% { stroke-dashoffset:22;opacity:.2; }
  28%,86% { stroke-dashoffset:0;opacity:1; }
  100% { stroke-dashoffset:22;opacity:.2; }
}
@keyframes cl-build-prototype-selection {
  0%,15% { transform:translateY(0);opacity:.3; }
  30%,70% { transform:translateY(0);opacity:.95; }
  88%,100% { transform:translateY(0);opacity:.3; }
}
@keyframes cl-build-prototype-cursor {
  0%,8% { transform:translate(258px,144px);opacity:0; }
  24%,34% { transform:translate(223px,75px);opacity:1; }
  37% { transform:translate(223px,75px) scale(.85);opacity:1; }
  43%,62% { transform:translate(223px,75px);opacity:1; }
  80%,100% { transform:translate(259px,151px);opacity:0; }
}
@keyframes cl-build-prototype-tile {
  0%,12% { transform:translateY(4px);opacity:.5; }
  38%,82% { transform:translateY(0);opacity:1; }
  100% { transform:translateY(4px);opacity:.5; }
}
@keyframes cl-build-new-module {
  0%,10% { transform:translateY(9px) scale(.94);opacity:.38; }
  32%,88% { transform:translateY(0) scale(1);opacity:1; }
  100% { transform:translateY(9px) scale(.94);opacity:.38; }
}
@keyframes cl-build-launch-orbit { to { transform:rotate(360deg); } }

@media (width<=420px) {
  .cl-build-plane { inset-inline:26px; }
  .cl-build-window-head { padding-inline:10px; }
  .cl-build-window-head>strong { font-size:10px; }
  .cl-build-footer { margin-inline:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .cl-build-scene *,.cl-build-scene::before,.cl-build-scene::after { animation:none!important; }
  .cl-build-route-pulse { stroke-dashoffset:50;opacity:.8; }
  .cl-build-check-line { stroke-dashoffset:0;opacity:1; }
  .cl-build-selection,.cl-build-prototype-tile,.cl-build-new-module { opacity:1;transform:none; }
  .cl-build-prototype-cursor { display:none; }
}
