/* Clip decorative entrances at the viewport without changing inner galleries or sticky navigation. */
.home-page{overflow-x:clip}
.home-page .hero-orbits{position:absolute;inset:6% -4%;overflow:clip;pointer-events:none}
.home-page .hero-orbits span{position:absolute;inset:8% 0;border:1px solid rgba(0,122,255,.18);border-radius:50%;transform:rotate(-25deg);background:linear-gradient(145deg,rgba(255,255,255,.2),transparent 58%)}
.home-page .hero-orbits span+span{inset:0 12%;border-color:rgba(0,122,255,.1);transform:rotate(28deg)}
.home-page .hero-orbits span::before{content:"";position:absolute;top:16%;left:13%;width:9px;height:9px;border:2px solid #fff;border-radius:50%;background:#78bbff;box-shadow:0 0 0 6px rgba(0,122,255,.06)}
.home-page .hero-orbits span+span::before{top:auto;bottom:9%;left:76%;width:7px;height:7px;background:#92d6cb}
@media(prefers-reduced-motion:no-preference){
    .home-page .hero h1 span{background:linear-gradient(105deg,#007aff 15%,#005bbb 35%,#389cdb 48%,#007aff 65%);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:home-title-light 2.8s ease-out .4s both}
    .home-page .hero-orbits{animation:home-orbit-enter 1.8s cubic-bezier(.16,1,.3,1) .25s both}
    .home-page .hero-visual-glow{animation:home-glow-enter 2s ease-out both}
    .home-page .hero-depth-ready .hero-shot picture{transform:perspective(1100px) translate3d(0,var(--hero-lift,0px),0) rotateX(var(--hero-tilt-x,0deg)) rotateY(var(--hero-tilt-y,0deg));transition:transform .65s cubic-bezier(.16,1,.3,1)}
    .home-page .hero-depth-ready .hero-visual-glow{translate:var(--hero-light-x,0px) var(--hero-light-y,0px);transition:translate .8s ease-out}
    .motion-ready .home-page [data-reveal="left"]:not(.is-visible){transform:translate3d(-20px,14px,0)}
    .motion-ready .home-page [data-reveal="right"]:not(.is-visible){transform:translate3d(20px,14px,0)}
    .home-page .section-kicker{display:inline-block;position:relative;padding-bottom:10px}
    .home-page .section-kicker::after{content:"";position:absolute;bottom:0;left:0;width:30px;height:2px;border-radius:2px;background:currentColor;opacity:.45;transform-origin:left;transition:transform .8s cubic-bezier(.16,1,.3,1) .15s}
    .home-page .section-heading--center .section-kicker::after{left:calc(50% - 15px);transform-origin:center}
    .motion-ready .home-page [data-reveal]:not(.is-visible) .section-kicker::after{transform:scaleX(0)}
    .home-page .faq-toggle{transition:transform .3s cubic-bezier(.16,1,.3,1)}
    .home-page .faq-item[open] .faq-answer{animation:home-answer-enter .28s ease-out}
    .home-page .contact-form input,.home-page .contact-form textarea{transition:border-color .2s,box-shadow .2s}
    .home-page .contact-form input:focus,.home-page .contact-form textarea:focus{box-shadow:0 5px 20px rgba(0,122,255,.09)}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
    .home-page .feature-card{position:relative;isolation:isolate;overflow:hidden}
    .home-page .feature-card::after{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:radial-gradient(ellipse at top right,rgba(0,122,255,.08),transparent 70%);opacity:0;transition:opacity .4s}
    .home-page .feature-card:hover::after,.home-page .feature-card:focus-within::after{opacity:1}
}
@media(max-width:700px){.home-page .hero-visual-glow{width:100%}.home-page .hero-orbits{inset:8% 4%}.motion-ready .home-page [data-reveal="left"]:not(.is-visible),.motion-ready .home-page [data-reveal="right"]:not(.is-visible){transform:translate3d(0,20px,0)}}
@media(prefers-reduced-motion:reduce){.home-page .hero-shot picture{transform:none!important}.home-page .hero-visual-glow{translate:none!important}}
@keyframes home-title-light{from{background-position:100% 50%}to{background-position:0% 50%}}
@keyframes home-orbit-enter{from{opacity:0;transform:rotate(-14deg) scale(.82)}to{opacity:1;transform:rotate(0) scale(1)}}
@keyframes home-glow-enter{from{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@keyframes home-answer-enter{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
