/* Final visual pass: light specular pass on glass, accessible focus, restrained motion */
:root{--focus:0 0 0 3px rgba(47,125,250,.35)}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{
  outline:none;box-shadow:var(--focus);border-radius:10px}
.button:focus-visible{box-shadow:var(--focus),0 10px 26px -6px rgba(47,125,250,.5)}

/* specular top highlight for every glass card, subtle */
.liquid-glass:after{content:"";position:absolute;left:6%;right:6%;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent);pointer-events:none}

.hero-copy{animation:heroArrival .8s cubic-bezier(.2,.8,.2,1) both}
.phone{animation:heroArrival .9s .12s cubic-bezier(.2,.8,.2,1) both,float2 8s 1.1s ease-in-out infinite alternate}
@keyframes heroArrival{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes float2{to{transform:translateY(-8px) rotate(2deg) perspective(1200px) rotateY(-7deg)}}
.phone:hover{animation-play-state:paused}

.section h2,.infrastructure-heading h2{color:var(--ink)}

/* header shrinks slightly once scrolled, handled via .scrolled class from app.js */
.site-header.scrolled .navigation{height:56px;box-shadow:inset 0 1px 1px rgba(255,255,255,.3),0 10px 26px -12px rgba(2,10,25,.6)}

.mini-button:disabled{cursor:default}

.app-shell{background:radial-gradient(circle at 90% 0,#0d1c36 0,transparent 30%),radial-gradient(circle at 10% 100%,#0a1830 0,transparent 30%),#f3f7fd}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
