
:root{
  --ui-field:#05060B;--ui-mist:#F3F7FC;--ui-ice:#B8EEF6;--ui-cyan:#7ADCEC;--ui-cyan-hi:#96E6F0;--ui-indigo:#A3AEF8;--ui-violet:#B79BF4;
  --ui-brand:linear-gradient(135deg,#B8EEF6,#7ADCEC 30%,#A3AEF8 68%,#B79BF4);
  --ui-ease:cubic-bezier(.2,.8,.2,1);--ui-spring:cubic-bezier(.34,1.56,.64,1);
  --ui-fast:160ms;--ui-mid:320ms;--ui-slow:720ms;
}


@view-transition{navigation:auto}
.as-nav{view-transition-name:as-nav}
::view-transition-old(root){animation:ui-vt-out 260ms var(--ui-ease) both}
::view-transition-new(root){animation:ui-vt-in 420ms var(--ui-ease) both}
::view-transition-group(as-nav){animation-duration:0s}
@keyframes ui-vt-out{to{opacity:0;transform:translateY(-6px) scale(.995);filter:blur(3px)}}
@keyframes ui-vt-in{from{opacity:0;transform:translateY(10px) scale(1.005);filter:blur(4px)}}


.btn,.btn-primary,.btn-secondary,.btn-ghost,.ap-btn,.as-cta a,button.primary,a.primary.btn{
  position:relative;isolation:isolate;overflow:hidden;
  -webkit-tap-highlight-color:transparent;
  transition:transform var(--ui-fast) var(--ui-ease),box-shadow var(--ui-mid) var(--ui-ease),border-color var(--ui-mid) var(--ui-ease),color var(--ui-mid) var(--ui-ease),filter var(--ui-mid) var(--ui-ease);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.28),0 1px 2px rgba(0,0,0,.4);
}

.btn::before,.ap-btn::before,.as-cta a::before,button.primary::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;
  background:radial-gradient(160px circle at var(--ui-mx,50%) var(--ui-my,50%),rgba(184,238,246,.30),rgba(163,174,248,.10) 40%,transparent 70%);
  transition:opacity var(--ui-mid) var(--ui-ease);
}
.btn::after,.ap-btn::after,.as-cta a::after,button.primary::after{
  content:"";position:absolute;inset:-1px;z-index:-1;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.26) 48%,rgba(184,238,246,.14) 52%,transparent 65%);
  transform:translateX(-120%);
}
@media (hover:hover){
  .btn:hover,.ap-btn:hover,.as-cta a:hover,button.primary:hover{
    transform:translateY(-1px);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(0,0,0,.25),0 10px 28px -10px rgba(122,220,236,.45),0 2px 6px rgba(0,0,0,.45);
  }
  .btn:hover::before,.ap-btn:hover::before,.as-cta a:hover::before,button.primary:hover::before{opacity:1}
  .btn:hover::after,.ap-btn:hover::after,.as-cta a:hover::after,button.primary:hover::after{transform:translateX(120%);transition:transform 900ms var(--ui-ease)}
  .btn-ghost:hover,.btn-secondary:hover{border-color:rgba(184,238,246,.55)}
}
.btn:active,.ap-btn:active,.as-cta a:active,button.primary:active{transform:translateY(0) scale(.975);transition-duration:80ms;filter:brightness(1.08)}
.btn:focus-visible,.ap-btn:focus-visible,.as-cta a:focus-visible,button.primary:focus-visible{
  outline:0;box-shadow:0 0 0 2px var(--ui-field),0 0 0 4px var(--ui-cyan-hi),0 0 24px -4px rgba(150,230,240,.6);
}

.ui-ripple{position:absolute;border-radius:50%;pointer-events:none;z-index:-1;transform:translate(-50%,-50%) scale(0);
  width:var(--ui-rs,240px);height:var(--ui-rs,240px);background:radial-gradient(circle,rgba(243,247,252,.38),rgba(184,238,246,.16) 45%,transparent 70%);
  animation:ui-ripple 620ms var(--ui-ease) forwards}
@keyframes ui-ripple{to{transform:translate(-50%,-50%) scale(1);opacity:0}}


.as-nav-in{transition:min-height var(--ui-mid) var(--ui-ease)}
html.ui-scrolled .as-nav-in{min-height:54px}
html.ui-scrolled .as-nav{box-shadow:0 12px 32px -18px rgba(0,0,0,.9)}

.ui-progress{position:absolute;left:0;bottom:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(var(--ui-p,0));
  background:var(--ui-brand);box-shadow:0 0 12px rgba(122,220,236,.55);pointer-events:none;z-index:2;transition:transform 90ms linear}

.as-menu a{position:relative}
.as-menu li:not(.as-cta) a::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:1px;background:var(--ui-brand);
  transform:scaleX(0);transform-origin:0 50%;transition:transform var(--ui-mid) var(--ui-ease)}
.as-menu li:not(.as-cta) a:hover::after,.as-menu li:not(.as-cta) a:focus-visible::after,.as-menu li:not(.as-cta) a[aria-current]::after{transform:scaleX(1)}


html.ui-js .ui-reveal{opacity:0;transform:translateY(14px);filter:blur(2px);
  transition:opacity var(--ui-slow) var(--ui-ease),transform var(--ui-slow) var(--ui-ease),filter var(--ui-slow) var(--ui-ease);transition-delay:var(--ui-d,0ms)}
html.ui-js .ui-reveal.ui-in{opacity:1;transform:none;filter:none}

html.ui-js h2.ui-reveal{background-image:var(--ui-brand);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;padding-bottom:.18em;
  transition:opacity var(--ui-slow) var(--ui-ease),transform var(--ui-slow) var(--ui-ease),filter var(--ui-slow) var(--ui-ease),background-size 1100ms var(--ui-ease) 240ms}
html.ui-js h2.ui-reveal.ui-in{background-size:min(72px,30%) 1px}


.as-sky{inset:-56px !important;will-change:transform;transform:translate3d(var(--ui-sx0,0px),var(--ui-sy0,0px),0)}
.as-sky i{will-change:transform;transform:translate3d(var(--ui-sx1,0px),var(--ui-sy1,0px),0)}
.as-sky i+i{transform:translate3d(var(--ui-sx2,0px),var(--ui-sy2,0px),0)}
.as-sky::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--ui-glow,0);
  background:radial-gradient(420px circle at var(--ui-gx,50%) var(--ui-gy,50%),rgba(122,220,236,.07),rgba(163,174,248,.035) 45%,transparent 70%)}


@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  .btn,.ap-btn,.as-cta a,button.primary,.as-nav-in,.ui-progress,.as-menu a::after{transition:none!important}
  .btn::after,.ap-btn::after,.as-cta a::after,button.primary::after,.ui-ripple{display:none!important}
  .btn:hover,.btn:active,.ap-btn:hover,.as-cta a:hover,button.primary:hover{transform:none!important}
  html.ui-js .ui-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  .as-sky,.as-sky i{transform:none!important}.as-sky::after{display:none}
}
@media print{html.ui-js .ui-reveal{opacity:1!important;transform:none!important;filter:none!important}.ui-progress{display:none}}
