.hero-depth-scene{position:absolute;inset:0;z-index:0;pointer-events:none;transform-style:preserve-3d;transition:transform .5s ease-out}.hero-depth-frames{position:absolute;inset:0;pointer-events:none;z-index:0}.hero-depth-frame{position:absolute;display:block;width:min(78vw,1150px);height:85%;opacity:.2;filter:blur(85px) saturate(1.35);border:0;border-radius:50%;overflow:visible;box-shadow:none;transform:translateZ(-80px) scale(1.1);-webkit-mask-image:radial-gradient(ellipse,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse,#000 30%,transparent 80%)}.hero-depth-frame img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.hero-depth-frame--1{left:-20%;top:-10%}.hero-depth-frame--2{right:-22%;bottom:-25%;opacity:.17;transform:translateZ(-140px) scale(1.15)}.page-work .cases-hero{position:relative;isolation:isolate;overflow:clip}.page-work .cases-hero>.container{position:relative;z-index:2}.studio-pages--about .sp-hero-scene>.hero-depth-frames{z-index:0}.studio-pages--about .sp-hero-scene>.sp-hero-bubble,.studio-pages--about .sp-hero-scene>.sp-hero-accent{z-index:1}.studio-pages--about .sp-hero-scene:after{z-index:2}.studio-pages--about .sp-hero--cinematic:before{z-index:1}.page-work .cases-hero:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background-image:
    radial-gradient(circle at 8% 22%, rgba(255, 255, 255, 0.62) 0 1px, transparent 2px),
    radial-gradient(circle at 18% 78%, rgba(255, 255, 255, 0.5) 0 1px, transparent 2px),
    radial-gradient(circle at 27% 36%, rgba(255, 255, 255, 0.46) 0 1px, transparent 2px),
    radial-gradient(circle at 39% 14%, rgba(255, 255, 255, 0.7) 0 1px, transparent 2px),
    radial-gradient(circle at 48% 68%, rgba(255, 255, 255, 0.44) 0 1px, transparent 2px),
    radial-gradient(circle at 58% 28%, rgba(255, 255, 255, 0.58) 0 1px, transparent 2px),
    radial-gradient(circle at 68% 82%, rgba(255, 255, 255, 0.42) 0 1px, transparent 2px),
    radial-gradient(circle at 78% 42%, rgba(255, 255, 255, 0.66) 0 1px, transparent 2px),
    radial-gradient(circle at 91% 18%, rgba(255, 255, 255, 0.5) 0 1px, transparent 2px),
    radial-gradient(circle at 94% 72%, rgba(255, 255, 255, 0.56) 0 1px, transparent 2px),
    radial-gradient(circle at 14% 48%, rgba(255, 255, 255, 0.98) 0 1px, rgba(255, 255, 255, 0.28) 2px, transparent 5px),
    radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.9) 0 1px, rgba(255, 255, 255, 0.18) 2px, transparent 6px),
    radial-gradient(circle at 53% 46%, rgba(255, 255, 255, 0.86) 0 1px, rgba(255, 255, 255, 0.18) 2px, transparent 6px),
    radial-gradient(circle at 73% 20%, rgba(255, 255, 255, 0.96) 0 1px, rgba(255, 255, 255, 0.22) 2px, transparent 6px),
    radial-gradient(circle at 86% 62%, rgba(255, 255, 255, 0.9) 0 1px, rgba(255, 255, 255, 0.18) 2px, transparent 6px);opacity:.34;filter:drop-shadow(0 0 10px #ffffff40)}@media(max-width:767px){.hero-depth-frame{width:100vw;height:80%;opacity:.12;filter:blur(65px) saturate(1.25);left:-32%;top:10%;transform:none}.hero-depth-frame--2{display:none}.hero-depth-scene{transform:none!important;transition:none}}@media(prefers-reduced-motion:reduce){.hero-depth-scene{transform:none!important;transition:none}.hero-depth-frame{transform:none}}
/* Fade only photographic atmosphere; stars and foreground stay independently visible. */
.hero-depth-frames{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 140px),transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 140px),transparent 100%)}
@media(max-width:767px){.hero-depth-frames{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 100px),transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 100px),transparent 100%)}}

/* Footer atmosphere is deliberately quieter than the heroes and never gains stars or motion. */
.footer:has(>.footer-photo-nebula){position:relative;isolation:isolate;overflow:clip}
.footer:has(>.footer-photo-nebula)>.container{position:relative;z-index:1}
.footer-photo-nebula{position:absolute;inset:auto 0 0;height:min(430px,70%);pointer-events:none;z-index:0;overflow:clip}
.footer-photo-nebula .hero-depth-frames{-webkit-mask-image:linear-gradient(transparent,#000 65%);mask-image:linear-gradient(transparent,#000 65%)}
.footer-photo-nebula .hero-depth-frame{width:65%;height:110%;top:auto;bottom:-48%;opacity:.085;filter:blur(95px) saturate(1.15);transform:none;-webkit-mask-image:radial-gradient(ellipse,#000 15%,transparent 85%);mask-image:radial-gradient(ellipse,#000 15%,transparent 85%)}
.footer-photo-nebula .hero-depth-frame--1{left:-8%}.footer-photo-nebula .hero-depth-frame--2{left:auto;right:-8%;opacity:.065}
@media(max-width:767px){.footer-photo-nebula{height:280px}.footer-photo-nebula .hero-depth-frame{width:115%;opacity:.055;filter:blur(70px);left:-30%}.footer-photo-nebula .hero-depth-frame--2{display:none}}

/* Work hero atmosphere half as prominent; stars are a separate unchanged layer. */
.page-work .hero-depth-frame--1{opacity:.10}.page-work .hero-depth-frame--2{opacity:.085}
@media(max-width:767px){.page-work .hero-depth-frame--1{opacity:.06}}
/* Match needs links to the contact/support/address text rhythm in the actual site footer. */
footer.footer .footer-needs-list{margin-top:.5rem;line-height:1.5}
footer.footer .footer-needs-list>li{margin:0!important;padding:0;line-height:inherit}
footer.footer .footer-needs-list .footer-link{line-height:inherit}
