/* Shared, first-screen lighting. No image filters, canvas or layout dimensions. */
:root{
 --ambient-blue:55,117,220;
 --ambient-purple:108,80,178;
 --ambient-strength:.62;
 --ambient-blue-cycle:26s;
 --ambient-purple-cycle:29s;
 --ambient-point-cycle:24s;
}
.ambient-host{position:relative;isolation:isolate}
.ambient-field,.ambient-field *{pointer-events:none;user-select:none}
.ambient-field{position:absolute;inset:86px auto auto 0;width:45%;height:calc(100% - 86px);max-height:680px;z-index:0;overflow:hidden;opacity:0;contain:layout paint}
.ambient-host[data-ambient-ready] .ambient-field{opacity:var(--ambient-strength)}
/* The fade ends before the device/medical screen area on the right. */
.ambient-wash{position:absolute;inset:0;overflow:hidden;mask-image:linear-gradient(90deg,#000 20%,#0008 60%,transparent 100%)}
.ambient-glow{position:absolute;width:620px;max-width:140%;height:440px;border-radius:50%;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-play-state:paused}
.ambient-blue{left:-190px;top:-180px;background:radial-gradient(ellipse,rgba(var(--ambient-blue),.25),rgba(var(--ambient-blue),.08) 35%,transparent 70%);animation-name:ambient-blue-drift;animation-duration:var(--ambient-blue-cycle);animation-delay:-7s}
.ambient-purple{left:-270px;bottom:-180px;background:radial-gradient(ellipse,rgba(var(--ambient-purple),.18),rgba(var(--ambient-purple),.05) 35%,transparent 70%);animation-name:ambient-purple-drift;animation-duration:var(--ambient-purple-cycle);animation-delay:-19s}
/* Points stay in the empty left gutter, never over text or product imagery. */
.ambient-specks{position:absolute;inset:24px auto 30px 0;width:clamp(14px,3vw,52px);overflow:hidden}
.ambient-specks i{position:absolute;width:3px;height:3px;border-radius:50%;background:#aac8ff;box-shadow:0 0 7px #82aeff66;opacity:.35;animation:ambient-point var(--ambient-point-cycle) ease-in-out infinite paused}
.ambient-specks i:nth-child(1){left:24%;top:12%;animation-delay:-3s}
.ambient-specks i:nth-child(2){left:68%;top:27%;animation-duration:28s;animation-delay:-17s;width:2px;height:2px}
.ambient-specks i:nth-child(3){left:38%;top:43%;animation-duration:23s;animation-delay:-9s}
.ambient-specks i:nth-child(4){left:72%;top:59%;animation-duration:30s;animation-delay:-22s;width:2px;height:2px}
.ambient-specks i:nth-child(5){left:22%;top:75%;animation-duration:27s;animation-delay:-13s;width:2px;height:2px}
.ambient-specks i:nth-child(6){left:60%;top:89%;animation-duration:25s;animation-delay:-6s}
.ambient-host[data-ambient-running="true"] .ambient-glow,.ambient-host[data-ambient-running="true"] .ambient-specks i{animation-play-state:running}
.catalog-showcase.ambient-host>.wrap{position:relative;z-index:1}
@keyframes ambient-blue-drift{0%,100%{transform:translate3d(0,0,0);opacity:.64}50%{transform:translate3d(85px,48px,0);opacity:1}}
@keyframes ambient-purple-drift{0%,100%{transform:translate3d(15px,0,0);opacity:.8}50%{transform:translate3d(75px,-38px,0);opacity:.5}}
@keyframes ambient-point{0%,100%{transform:translate3d(0,0,0);opacity:.18}50%{transform:translate3d(3px,-10px,0);opacity:.62}}
@media(max-width:980px){.ambient-field{top:78px;height:calc(100% - 78px)}}
@media(max-width:767px){
 .ambient-field{top:72px;width:100%;height:330px;max-height:330px;--ambient-strength:.48;--ambient-blue-cycle:32s;--ambient-point-cycle:32s}
 .ambient-wash{mask-image:linear-gradient(0deg,transparent,#000 45%)}
 .ambient-blue{width:410px;height:320px;left:-220px;top:-160px}
 .ambient-purple{display:none}
 .ambient-specks{width:13px;bottom:45px}
 .ambient-specks i:nth-child(n+3){display:none}
 .ambient-specks i:nth-child(2){top:65%;animation-duration:36s}
 @keyframes ambient-blue-drift{0%,100%{transform:translate3d(0,0,0);opacity:.65}50%{transform:translate3d(25px,18px,0);opacity:.85}}
}
@media(prefers-reduced-motion:reduce){
 .ambient-field .ambient-glow,.ambient-field .ambient-specks i{animation:none;transform:none}
 .ambient-specks{display:none}
}
