.brand-icon {
  overflow: visible;
}

.brand-icon img,
.footer-brand .brand-icon img {
  position: static;
  width: 100%;
  height: 100%;
  max-width: 100%;
  transform: none;
  object-fit: contain;
}

.cta-mark {
  overflow: visible;
}

.cta-mark img {
  position: static;
  width: 100%;
  height: 100%;
  max-width: 100%;
  transform: none;
  object-fit: contain;
}

.spin-logo {
  isolation: isolate;
}

.spin-logo .logo-fins,
.spin-logo .logo-dots {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform-origin: 50% 50%;
}

.spin-logo .logo-fins {
  z-index: 1;
}

.spin-logo .logo-dots {
  z-index: 2;
}

body.is-loading {
  overflow: hidden;
}

.site-loader {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 1rem;
  overflow: hidden;
  background: #fff;
  color: #08256d;
  opacity: 1;
  visibility: visible;
  transition: opacity .28s ease, visibility 0s linear .28s;
}

.loader-mark {
  position: relative;
  width: clamp(9rem, 22vw, 15rem);
  aspect-ratio: 1;
  transform: scale(.78);
  animation: loader-arrive .55s cubic-bezier(.2,.8,.2,1) forwards;
  will-change: transform;
}

.loader-mark .logo-fins {
  animation: loader-spin 1.05s cubic-bezier(.45,.05,.25,1) infinite;
}

.loader-name {
  font-size: clamp(.9rem, 2vw, 1.2rem);
  font-weight: 800;
  letter-spacing: .22em;
}

.loader-status {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #1764d9;
}

body:not(.is-loading) .site-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

body.loader-exit .loader-mark {
  animation: loader-zoom .76s cubic-bezier(.72,0,.18,1) forwards;
}

body.loader-exit .loader-name,
body.loader-exit .loader-status {
  opacity: 0;
  transform: translateY(.5rem);
  transition: opacity .18s ease, transform .18s ease;
}

body.is-loading > :not(.site-loader):not(.skip) {
  opacity: 0;
}

body:not(.is-loading) > :not(.site-loader):not(.skip) {
  animation: site-reveal .55s ease both;
}

@keyframes loader-arrive {
  to { transform: scale(1); }
}

@keyframes loader-spin {
  to { transform: rotate(360deg); }
}

@keyframes loader-zoom {
  0% { transform: scale(1); opacity: 1; }
  72% { transform: scale(5.5); opacity: 1; }
  100% { transform: scale(15); opacity: 0; }
}

@keyframes site-reveal {
  from { opacity: 0; transform: scale(.985); }
  to { opacity: 1; transform: scale(1); }
}

.spin-logo:hover .logo-fins,
.brand:focus-visible .logo-fins {
  animation: whirl-logo-spin 1.05s cubic-bezier(.2,.75,.25,1) both;
}

@keyframes whirl-logo-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .loader-mark,
  .loader-mark .logo-fins,
  body.loader-exit .loader-mark,
  body:not(.is-loading) > :not(.site-loader):not(.skip) {
    animation: none;
  }

  .site-loader {
    transition-duration: .15s;
  }

  .spin-logo:hover .logo-fins,
  .brand:focus-visible .logo-fins {
    animation-duration: .01ms;
  }
}

@media (prefers-color-scheme: dark) {
  .site-loader {
    background: #06142c;
    color: #ffffff;
  }

  .site-loader .loader-status {
    color: #8bbcff;
  }

  .site-loader .logo-fins,
  .site-loader .logo-dots,
  .site-header .brand-icon .logo-fins,
  .site-header .brand-icon .logo-dots,
  footer .brand-icon .logo-fins,
  footer .brand-icon .logo-dots {
    filter: brightness(0) invert(1);
  }

  .site-header .brand-icon,
  footer .brand-icon {
    overflow: hidden;
    border-radius: 50%;
    background: #06142c;
    box-shadow: 0 0 0 3px #06142c;
  }
}
