body {
  animation: pageEnter .32s ease both;
}

@keyframes pageEnter {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.hero .tag,
.hero h1,
.hero .lead,
.hero .actions,
.hero .lead-box,

.subpage-hero .tag,
.subpage-hero h1,
.subpage-hero .lead,
.subpage-hero .actions,
.subpage-hero .info-box,

.publications-hero .tag,
.publications-hero h1,
.publications-hero .lead,
.publications-hero .publications-info,

.article-hero .article-back,
.article-hero .article-category,
.article-hero h1,
.article-hero .article-lead,
.article-hero .article-meta,
.article-image-wrap,

.error-content .tag,
.error-content h1,
.error-content .error-description,
.error-content .error-actions,

.faq-hero .tag,
.faq-hero h1,
.faq-hero .lead,

.contact-intro .tag,
.contact-intro h1,
.contact-intro > p {
  opacity: 0;
  animation: heroElementEnter .58s cubic-bezier(.22, 1, .36, 1) forwards;
}

.hero .tag,
.subpage-hero .tag,
.faq-hero .tag,
.contact-intro .tag,
.publications-hero .tag {
  animation-delay: .05s;
}

.hero h1,
.subpage-hero h1,
.faq-hero h1,
.contact-intro h1,
.publications-hero h1 {
  animation-delay: .12s;
}

.hero .lead,
.subpage-hero .lead,
.faq-hero .lead,
.publications-hero .lead,
.contact-intro > p {
  animation-delay: .19s;
}

.hero .actions,
.subpage-hero .actions {
  animation-delay: .26s;
}

.hero .lead-box,
.subpage-hero .info-box,
.publications-hero .publications-info {
  animation-delay: .18s;
}

.info-box,
.training-module,
.training-options article,
.training-image-box,
.contact-card,
.contact-flow > div,
.contact-documents,
.contact-cta,
.faq-item {
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.info-box:hover {
  border-color: rgba(15, 68, 153, .22);
  box-shadow: 0 24px 56px rgba(15, 68, 153, .14);
}

.info-box p,
.document-list p {
  transition:
    transform .2s ease,
    background-color .2s ease;
}

.info-box p:hover,
.document-list p:hover {
  transform: translateX(4px);
  background: rgba(15, 68, 153, .035);
}

.training-module:hover {
  transform: translateX(5px);
  border-color: rgba(15, 68, 153, .24);
  box-shadow: 0 24px 56px rgba(15, 68, 153, .14);
}

.training-module span {
  transition: transform .25s ease;
}

.training-module:hover span {
  transform: scale(1.08);
}

.training-options article:hover {
  transform: translateY(-7px);
  border-color: rgba(15, 68, 153, .24);
  box-shadow: 0 24px 56px rgba(15, 68, 153, .14);
}

.training-image-box img {
  transition: transform .6s cubic-bezier(.22, 1, .36, 1);
}

.training-image-box:hover img {
  transform: scale(1.035);
}

.contact-flow > div:hover {
  transform: translateY(-6px);
  border-color: rgba(15, 68, 153, .24);
  box-shadow: 0 24px 56px rgba(15, 68, 153, .14);
}

.contact-flow span {
  transition: transform .25s ease;
}

.contact-flow > div:hover span {
  transform: scale(1.08);
}

.contact-card-link .link-arrow {
  transition: transform .22s ease;
}

.contact-card:hover .contact-card-link .link-arrow {
  transform: translate(4px, 1px);
}

.contact-cta:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 65px rgba(8, 45, 109, .22);
}

.faq-item:hover {
  border-color: rgba(15, 68, 153, .24);
  box-shadow: 0 24px 56px rgba(15, 68, 153, .14);
}

.faq-question {
  transition:
    background-color .2s ease,
    color .2s ease;
}

.faq-question:hover {
  background: #f8fafd;
}

.faq-categories button {
  transition:
    transform .2s ease,
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

.faq-categories button:hover {
  transform: translateY(-2px);
}

.faq-categories button:active {
  transform: scale(.97);
}

@keyframes heroElementEnter {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity .58s ease,
    transform .58s cubic-bezier(.22, 1, .36, 1);
}

.reveal.reveal-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-item {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity .48s ease,
    transform .48s cubic-bezier(.22, 1, .36, 1);
  transition-delay: var(--reveal-delay, 0ms);
}

.publication-card {
  animation: none !important;
}

.reveal.reveal-visible .reveal-item {
  opacity: 1;
  transform: translateY(0);
}

.cards article,
.steps article,
.checklist,
.contact {
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.cards article:hover,
.steps article:hover {
  transform: translateY(-6px);
  border-color: rgba(15, 68, 153, .25);
  box-shadow: 0 24px 56px rgba(15, 68, 153, .14);
}

.cards article:hover .icon-box {
  transform: scale(1.06);
}

.icon-box {
  transition: transform .25s ease;
}

.steps article:hover > span {
  transform: scale(1.08);
}

.steps article > span {
  transition: transform .25s ease;
}

.btn,
.pill {
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    background-color .2s ease,
    border-color .2s ease;
}

.btn:hover,
.pill:hover {
  transform: translateY(-2px);
}

.btn.primary:hover,
.pill:hover {
  box-shadow: 0 12px 26px rgba(15, 68, 153, .24);
}

.btn:active,
.pill:active {
  transform: translateY(0) scale(.98);
}

input,
select,
textarea {
  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background-color .2s ease;
}

input:focus,
textarea:focus {
  outline: none;
  border-color: rgba(15, 68, 153, .48);
  box-shadow: 0 0 0 4px rgba(15, 68, 153, .09);
  background-color: #fff;
}

select:focus {
  outline: none;
  border-color: rgba(15, 68, 153, .48);
  box-shadow: 0 0 0 4px rgba(15, 68, 153, .09);
}

.checklist p {
  transition:
    transform .2s ease,
    background-color .2s ease;
}

.checklist p:hover {
  transform: translateX(4px);
  background: rgba(15, 68, 153, .035);
}

.post-link .link-arrow,
.card-link .link-arrow {
  transition: transform .22s ease;
}

.post-link:hover .link-arrow,
.card-link:hover .link-arrow {
  transform: translate(4px, 1px);
}

.footer a:not(.footer-logo) {
  transition:
    color .2s ease,
    transform .2s ease;
}

.footer a:not(.footer-logo):hover {
  transform: translateX(3px);
}

.publications-info {
  transition:
    transform .25s ease,
    box-shadow .25s ease,
    border-color .25s ease;
}

.publications-info:hover {
  border-color: rgba(15, 68, 153, .22);
  box-shadow: 0 24px 56px rgba(15, 68, 153, .14);
}

.publications-info-item {
  transition:
    transform .2s ease,
    background-color .2s ease;
}

.publications-info-item:hover {
  transform: translateX(4px);
}

.publication-filters button {
  transition:
    transform .2s ease,
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

.publication-filters button:hover {
  transform: translateY(-2px);
}

.publication-filters button:active {
  transform: scale(.97);
}

.publication-card:not(.hidden) {
  animation: publicationCardEnter .3s ease;
}

@keyframes publicationCardEnter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.publication-link .link-arrow {
  transition: transform .22s ease;
}

.publication-link:hover .link-arrow {
  transform: translate(4px, .65px);
}

.publication-pagination button {
  transition:
    transform .2s ease,
    background-color .2s ease,
    color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

.publication-pagination button:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(15, 68, 153, .12);
}

.publication-pagination button:active {
  transform: scale(.94);
}

.article-hero .article-back {
  animation-delay: .03s;
}

.article-hero .article-category {
  animation-delay: .08s;
}

.article-hero h1 {
  animation-delay: .14s;
}

.article-hero .article-lead {
  animation-delay: .21s;
}

.article-hero .article-meta {
  animation-delay: .28s;
}

.article-image-wrap {
  animation-delay: .22s;
}

.article-back .link-arrow {
  transition: transform .22s ease;
}

.article-back:hover .link-arrow {
  transform: translateX(-4px);
}

.article-image-wrap img {
  transition:
    transform .55s cubic-bezier(.22, 1, .36, 1),
    box-shadow .3s ease;
}

.article-image-wrap:hover img {
  transform: scale(1.012);
  box-shadow: 0 26px 64px rgba(15, 68, 153, .16);
}

.article-cta {
  transition:
    transform .25s ease,
    box-shadow .25s ease;
}

.article-cta:hover {
  transform: translateY(-4px);
  box-shadow: 0 28px 65px rgba(8, 45, 109, .22);
}

.related-link .link-arrow {
  transition: transform .22s ease;
}

.related-link:hover .link-arrow {
  transform: translate(4px, 1px);
}

.error-content .error-code {
  animation-delay: .03s;
}

.error-content .tag {
  animation-delay: .05s;
}

.error-content h1 {
  animation-delay: .12s;
}

.error-content .error-description {
  animation-delay: .19s;
}

.error-content .error-actions {
  animation-delay: .26s;
}

@media (max-width: 980px) {
  .menu {
    display: flex;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-8px) scale(.985);
    transform-origin: top;
    transition:
      opacity .22s ease,
      transform .22s ease,
      visibility .22s ease;
  }

  .menu.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body,
  .hero .tag,
  .hero h1,
  .hero .lead,
  .hero .actions,
  .hero .lead-box,
  .subpage-hero .tag,
  .subpage-hero h1,
  .subpage-hero .lead,
  .subpage-hero .actions,
  .subpage-hero .info-box,
  .publications-hero .tag,
  .publications-hero h1,
  .publications-hero .lead,
  .publications-hero .publications-info,
  .article-hero .article-back,
  .article-hero .article-category,
  .article-hero h1,
  .article-hero .article-lead,
  .article-hero .article-meta,
  .article-image-wrap,
  .error-content .tag,
  .error-content h1,
  .error-content .error-description,
  .error-content .error-actions,
  .faq-hero .tag,
  .faq-hero h1,
  .faq-hero .lead,
  .contact-intro .tag,
  .contact-intro h1,
  .contact-intro > p {
    animation: none !important;
    opacity: 1;
    transform: none;
  }

  .reveal,
  .reveal-item {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .post-link .link-arrow,
  .card-link .link-arrow {
    transition: none;
  }

  .cards article,
  .steps article,
  .checklist,
  .contact,
  .btn,
  .pill,
  input,
  select,
  textarea,
  .checklist p,
  .footer a,
  .icon-box,
  .steps article > span {
    transition: none;
  }

  .cards article:hover,
  .steps article:hover,
  .btn:hover,
  .pill:hover,
  .checklist p:hover,
  .footer a:hover {
    transform: none;
  }

  .info-box,
  .training-module,
  .training-options article,
  .training-image-box img,
  .contact-card,
  .contact-flow > div,
  .contact-card-link .link-arrow,
  .contact-cta,
  .faq-item,
  .faq-question,
  .faq-categories button {
    transition: none;
  }

  .info-box:hover,
  .training-module:hover,
  .training-options article:hover,
  .training-image-box:hover img,
  .contact-card:hover,
  .contact-flow > div:hover,
  .contact-cta:hover,
  .faq-item:hover,
  .faq-categories button:hover {
    transform: none;
  }

  .publications-info,
  .publications-info-item,
  .publication-filters button,
  .publication-card,
  .publication-link .link-arrow,
  .publication-pagination button,
  .article-back .link-arrow,
  .article-image-wrap img,
  .article-cta,
  .related-link .link-arrow {
    transition: none;
  }

  .publications-info:hover,
  .publications-info-item:hover,
  .publication-filters button:hover,
  .publication-pagination button:hover,
  .article-image-wrap:hover img,
  .article-cta:hover {
    transform: none;
  }
}
