/* Cyan pulses use the same pixel coordinates and placement as the stair artwork. */
.duv-ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none;visibility:hidden;opacity:1;contain:layout paint}
.duv-ambient[data-running="true"]{visibility:visible}
.duv-ambient[hidden]{display:none!important}
.duv-ambient .ambient-art{position:absolute;top:0;left:0;right:auto;max-width:none;overflow:hidden;mask-image:linear-gradient(to right,transparent 0%,#000 32%,#000 100%)}
.duv-ambient .ambient-portrait{display:none}
.duv-ambient .ambient-trace{fill:none;stroke:#c3f6ff;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:16 120;stroke-dashoffset:136;opacity:0;filter:drop-shadow(0 0 4px #00c3ff) drop-shadow(0 0 9px #008bffc0);animation:duv-line-travel var(--period,4.2s) linear var(--phase,0s) infinite;animation-play-state:paused}
.duv-ambient .ambient-node{opacity:.12;animation:duv-node-light var(--period,3.2s) ease-in-out var(--phase,0s) infinite;animation-play-state:paused}
.duv-ambient[data-running="true"] .ambient-trace,.duv-ambient[data-running="true"] .ambient-node{animation-play-state:running}
.duv-ambient .ambient-node-halo{fill:#04b5ff;opacity:.2;filter:blur(4px)}
.duv-ambient .ambient-node-ring{fill:none;stroke:#85edff;stroke-width:1;opacity:.52;filter:drop-shadow(0 0 3px #02baff)}
.duv-ambient .ambient-node-core{fill:#e8fcff;filter:drop-shadow(0 0 5px #48dbff) drop-shadow(0 0 10px #009eff)}
@keyframes duv-line-travel{0%{stroke-dashoffset:136;opacity:0}12%{opacity:.86}75%{opacity:.86}100%{stroke-dashoffset:-20;opacity:0}}
@keyframes duv-node-light{0%,100%{opacity:.12}48%{opacity:.92}72%{opacity:.44}}
@media(max-aspect-ratio:1/1){
 .duv-ambient .ambient-landscape{display:none}
 .duv-ambient .ambient-portrait{display:block;mask-image:linear-gradient(to right,transparent 0%,#000 40%,#000 100%)}
}
@media(prefers-reduced-motion:reduce){.duv-ambient{display:none!important}.duv-ambient .ambient-trace,.duv-ambient .ambient-node{animation:none!important}}
