/* AOG final polish */

/* right side trial button fixed */
.trial-tab,
.frtrl_btn{
  position:fixed !important;
  right:18px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  z-index:120 !important;
  display:block !important;
}

.trial-tab a,
.frtrl_btn a{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  min-height:168px;
  padding:18px 12px !important;
  border-radius:999px !important;
  background:linear-gradient(135deg,#5b7cff,#8b5cf6,#ef5da8) !important;
  color:#fff !important;
  font-weight:900 !important;
  letter-spacing:.04em;
  box-shadow:0 22px 48px rgba(91,124,255,.32) !important;
  border:1px solid rgba(255,255,255,.28);
  cursor:pointer;
  display:flex !important;
  align-items:center;
  justify-content:center;
  text-align:center;
}

/* header scroll polish */
.site-header.is-scrolled .site-nav{
  height:66px;
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 55px rgba(15,23,42,.16);
}

/* reveal animations */
[data-polish]{
  opacity:0;
  transform:translateY(32px) scale(.985);
  transition:
    opacity .75s cubic-bezier(.22,1,.36,1),
    transform .75s cubic-bezier(.22,1,.36,1),
    box-shadow .3s ease,
    border-color .3s ease;
}

[data-polish].is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}

.intro-card,
.program-card,
.why-cards div,
.team-card,
.gallery-link,
.footer-cta,
.contact-card,
.image-stack,
.hero-stats div{
  will-change:transform;
}

.intro-card:hover,
.program-card:hover,
.why-cards div:hover,
.team-card:hover,
.gallery-link:hover,
.hero-stats div:hover{
  transform:translateY(-8px) !important;
}

.program-card:hover,
.intro-card:hover,
.why-cards div:hover{
  box-shadow:0 34px 90px rgba(15,23,42,.18) !important;
  border-color:rgba(77,231,243,.38) !important;
}

/* soft motion details */
.hero::before{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  left:5vw;
  top:18%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(77,231,243,.22),transparent 68%);
  animation:aogFloatBlob 7s ease-in-out infinite alternate;
}

.hero-orbit{
  animation:aogOrbitPulse 5s ease-in-out infinite alternate;
}

.floating-note{
  animation:aogFloatCard 4.8s ease-in-out infinite alternate;
}

.note-two{
  animation-delay:.8s;
}

@keyframes aogFloatBlob{
  from{transform:translate3d(0,0,0) scale(1);}
  to{transform:translate3d(18px,22px,0) scale(1.08);}
}

@keyframes aogOrbitPulse{
  from{transform:scale(1);}
  to{transform:scale(1.025);}
}

@keyframes aogFloatCard{
  from{transform:translateY(0);}
  to{transform:translateY(-12px);}
}

/* prettier program cards */
.program-card{
  position:relative;
}

.program-card::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:4px;
  background:linear-gradient(90deg,#4de7f3,#8b5cf6,#ef5da8);
}

.program-content h3,
.intro-card h3,
.why-cards h3,
.section-title,
.hero h1,
.footer-cta h2,
.form-box h2{
  text-wrap:balance;
}

/* footer more alive */
.site-footer{
  position:relative;
  overflow:hidden;
}

.site-footer::before{
  content:"";
  position:absolute;
  width:460px;
  height:460px;
  border-radius:50%;
  left:-150px;
  top:-150px;
  background:radial-gradient(circle,rgba(77,231,243,.25),transparent 68%);
  animation:aogFooterGlow 6s ease-in-out infinite alternate;
}

.site-footer::after{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  border-radius:50%;
  right:-160px;
  bottom:-160px;
  background:radial-gradient(circle,rgba(239,93,168,.20),transparent 68%);
  animation:aogFooterGlow 7s ease-in-out infinite alternate-reverse;
}

.site-footer .container{
  position:relative;
  z-index:2;
}

.footer-cta{
  background:
    radial-gradient(circle at 15% 10%,rgba(77,231,243,.18),transparent 32%),
    radial-gradient(circle at 88% 20%,rgba(239,93,168,.16),transparent 32%),
    linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.045)) !important;
}

.footer-social a{
  transition:.25s ease;
}

.footer-social a:hover{
  transform:translateY(-4px);
  background:rgba(77,231,243,.16);
}

@keyframes aogFooterGlow{
  from{transform:translate3d(0,0,0) scale(1);}
  to{transform:translate3d(20px,16px,0) scale(1.08);}
}

/* form focus */
.form-control input,
.form-control textarea,
.form-control select{
  transition:border-color .25s ease, box-shadow .25s ease;
}

.form-control input:focus,
.form-control textarea:focus,
.form-control select:focus{
  border-bottom-color:#4de7f3 !important;
  box-shadow:0 10px 20px rgba(77,231,243,.08);
}

/* mobile polish */
@media(max-width:980px){
  .site-nav{
    height:68px;
  }

  .hero{
    min-height:auto;
  }

  .hero-grid{
    gap:24px;
  }

  .intro-strip{
    margin-top:0;
    padding-top:20px;
  }

  .trial-tab,
  .frtrl_btn{
    display:none !important;
  }
}

@media(max-width:640px){
  .site-header{
    padding:0 8px;
  }

  .site-nav{
    height:62px;
    padding:8px 10px 8px 14px;
    gap:12px;
  }

  .brand img{
    width:92px;
  }

  .nav-links{
    top:74px;
    left:8px;
    right:8px;
  }

  .hero{
    padding-top:96px;
    text-align:center;
  }

  .hero-grid{
    display:flex;
    flex-direction:column;
  }

  .hero-copy{
    width:100%;
  }

  .eyebrow,
  .section-kicker{
    margin-left:auto;
    margin-right:auto;
    font-size:10.5px;
    padding:8px 12px;
  }

  .hero h1{
    font-size:42px;
    line-height:.96;
    letter-spacing:-1.8px;
  }

  .hero h1::after{
    width:120px;
    height:8px;
  }

  .hero p{
    font-size:15.5px;
  }

  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }

  .hero-actions .btn{
    width:100%;
  }

  .hero-visual{
    min-height:330px;
    width:100%;
  }

  .hero-orbit{
    inset:40px 20px 12px;
  }

  .hero-photo{
    width:235px;
  }

  .intro-card,
  .why-cards div,
  .program-content{
    padding:22px;
  }

  .section-title{
    font-size:34px;
    line-height:1;
    letter-spacing:-1.3px;
  }

  .image-stack{
    padding:10px;
    border-radius:26px;
  }

  .image-stack > img{
    height:330px;
    border-radius:20px;
  }

  .image-badge{
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    margin-top:12px;
  }

  .why-image img{
    min-height:320px;
  }

  .program-card{
    border-radius:26px;
  }

  .program-card img{
    height:250px;
  }

  .team-card{
    margin:0 4px;
  }

  .gallery-link{
    height:230px;
  }

  .contact-card{
    border-radius:26px;
  }

  .form-box{
    padding:24px 18px 28px;
  }

  .footer-cta,
  .footer-grid{
    text-align:center;
  }

  .footer-cta .btn{
    width:100%;
  }

  .footer-brand img,
  .footer-social{
    margin-left:auto;
    margin-right:auto;
    justify-content:center;
  }

  .mobile-bottom-bar{
    box-shadow:0 18px 45px rgba(0,0,0,.28);
  }
}
