.hero-copy h1,
.hero-copy > p,
.hero-copy .actions,
.hero-media {
  opacity: 0;
  transform: translateY(24px);
}

.home-effects-ready .hero-copy h1 {
  animation: home-rise .8s cubic-bezier(.2,.75,.25,1) .08s forwards;
}

.home-effects-ready .hero-copy > p {
  animation: home-rise .8s cubic-bezier(.2,.75,.25,1) .22s forwards;
}

.home-effects-ready .hero-copy .actions {
  animation: home-rise .8s cubic-bezier(.2,.75,.25,1) .36s forwards;
}

.home-effects-ready .hero-media {
  animation: home-media-in 1s cubic-bezier(.2,.75,.25,1) .18s forwards;
}

.hero-media::after {
  content: "";
  position: absolute;
  inset: 10% -5% -8% 12%;
  z-index: -1;
  border-radius: 35% 8% 35% 8%;
  background: rgba(8,122,120,.1);
  filter: blur(28px);
  animation: home-glow 6s ease-in-out infinite alternate;
}

.media-note {
  animation: home-note-float 4.5s ease-in-out 1.3s infinite;
}

.hero .btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.hero .btn::after {
  content: "";
  position: absolute;
  inset: -40% auto -40% -40%;
  width: 28%;
  z-index: -1;
  transform: skewX(-18deg);
  background: rgba(255,255,255,.22);
  transition: left .55s ease;
}

.hero .btn:hover::after {
  left: 115%;
}

.hero .btn span {
  transition: transform .25s ease;
}

.hero .btn:hover span {
  transform: translateX(5px);
}

.reveal {
  filter: blur(5px);
  transform: translateY(30px);
  transition: opacity .75s ease, transform .75s ease, filter .75s ease;
}

.reveal.in {
  filter: none;
  transform: none;
}

.process-list article,
.achievement-list article {
  opacity: 0;
  transform: translateX(18px);
}

.process.in .process-list article,
.achievements-section.in .achievement-list article {
  animation: home-row-in .58s ease forwards;
}

.process.in .process-list article:nth-child(2),
.achievements-section.in .achievement-list article:nth-child(2) { animation-delay: .09s; }
.process.in .process-list article:nth-child(3),
.achievements-section.in .achievement-list article:nth-child(3) { animation-delay: .18s; }
.process.in .process-list article:nth-child(4),
.achievements-section.in .achievement-list article:nth-child(4) { animation-delay: .27s; }
.achievements-section.in .achievement-list article:nth-child(5) { animation-delay: .36s; }

.achievement-list strong {
  transition: color .25s ease, transform .25s ease;
}

.achievement-list article:hover strong {
  color: #ffc07a;
  transform: translateX(5px);
}

.india-map img {
  transition: transform .55s cubic-bezier(.2,.75,.25,1);
}

.india-map:hover img {
  transform: translateY(-7px) scale(1.015);
}

.gallery figure {
  box-shadow: 0 0 0 rgba(16,42,67,0);
  transition: transform .4s ease, box-shadow .4s ease;
}

.gallery figure:hover {
  z-index: 2;
  transform: translateY(-7px);
  box-shadow: 0 20px 45px rgba(16,42,67,.16);
}

.gallery figcaption {
  transition: padding .3s ease, color .3s ease;
}

.gallery figure:hover figcaption {
  padding-inline: 22px;
  color: var(--teal);
}

.trust-list b {
  display: inline-block;
  transition: color .25s ease, transform .25s ease;
}

.trust-list b:hover {
  color: var(--teal);
  transform: translateY(-3px);
}

.achievements-section {
  padding-bottom: 52px;
}

.field {
  padding-top: 52px;
}

@keyframes home-rise {
  to { opacity: 1; transform: none; }
}

@keyframes home-media-in {
  from { opacity: 0; transform: translateX(34px) scale(.975); }
  to { opacity: 1; transform: none; }
}

@keyframes home-row-in {
  to { opacity: 1; transform: none; }
}

@keyframes home-note-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}

@keyframes home-glow {
  from { transform: translate(-2%, 2%) scale(.96); opacity: .55; }
  to { transform: translate(2%, -2%) scale(1.04); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-copy h1,
  .hero-copy > p,
  .hero-copy .actions,
  .hero-media,
  .process-list article,
  .achievement-list article {
    opacity: 1;
    transform: none;
    animation: none !important;
  }

  .media-note,
  .hero-media::after {
    animation: none;
  }

  .reveal {
    opacity: 1;
    filter: none;
    transform: none;
    transition: none;
  }
}

@media (max-width: 650px) {
  .achievements-section {
    padding-bottom: 38px;
  }

  .field {
    padding-top: 38px;
  }
}
