:root {
  --sis-motion-duration: 560ms;
  --sis-motion-distance: 14px;
  --sis-motion-ease: cubic-bezier(.22, 1, .36, 1);
  --sis-page-progress: 0;
  --sis-scroll-shift: 0px;
}

html.sis-motion-ready .sis-motion-target {
  opacity: 1;
  transform: none;
  transition: none;
  will-change: auto;
}

html.sis-motion-ready .sis-motion-copy.sis-motion-from-left {
  --sis-motion-entry-x: -22px;
}

html.sis-motion-ready .sis-motion-copy.sis-motion-from-right {
  --sis-motion-entry-x: 22px;
}

html.sis-motion-ready .sis-motion-target.sis-motion-delay-1 {
  --sis-motion-entry-delay: 45ms;
}

html.sis-motion-ready .sis-motion-target.sis-motion-delay-2 {
  --sis-motion-entry-delay: 90ms;
}

html.sis-motion-ready .sis-motion-target.sis-motion-delay-3 {
  --sis-motion-entry-delay: 135ms;
}

html.sis-motion-ready .sis-motion-target.is-motion-visible {
  opacity: 1;
  transform: none;
  animation: sis-section-arrival 760ms var(--sis-motion-ease) both;
  animation-delay: var(--sis-motion-entry-delay, 0ms);
}

html.sis-intro-ready .sis-motion-intro {
  opacity: 1;
  filter: none;
  transform: none;
  transition: none;
  will-change: auto;
}

html.sis-intro-ready .sis-motion-intro.is-intro-visible {
  opacity: 1;
  filter: blur(0);
  transform: none;
  animation: sis-intro-arrival 820ms var(--sis-motion-ease) both;
  animation-delay: var(--sis-intro-delay, 60ms);
}

html.sis-motion-ready .sis-motion-heading {
  clip-path: none;
  transition: none;
}

html.sis-motion-ready .sis-motion-target.is-motion-visible.sis-motion-heading,
html.sis-motion-ready .sis-motion-target.is-motion-visible .sis-motion-heading {
  clip-path: none;
}

@keyframes sis-section-arrival {
  from {
    opacity: .22;
    filter: blur(4px);
    transform: translate3d(var(--sis-motion-entry-x, 0), 28px, 0);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes sis-intro-arrival {
  from {
    opacity: .18;
    filter: blur(5px);
    transform: translate3d(0, 24px, 0);
  }

  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }
}

.sis-motion-line,
.sis-motion-media,
.sis-motion-scan {
  position: relative;
}

.sis-motion-rule {
  position: absolute;
  z-index: 6;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, #075acb, rgba(7, 90, 203, .16) 72%, transparent);
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 840ms var(--sis-motion-ease);
  transition-delay: var(--sis-stagger-delay, 140ms);
}

.sis-motion-target.is-motion-visible > .sis-motion-rule {
  transform: scaleX(1);
}

.sis-motion-media {
  isolation: isolate;
  overflow: hidden;
}

.sis-motion-curtain {
  position: absolute;
  z-index: 12;
  inset: 0;
  background:
    linear-gradient(110deg, rgba(7, 90, 203, .18), transparent 24%),
    #10141b;
  pointer-events: none;
  transform: translate3d(0, 0, 0);
  transform-origin: 100% 50%;
  transition: transform 920ms var(--sis-motion-ease);
  transition-delay: var(--sis-curtain-delay, 90ms);
}

.sis-motion-target.is-motion-visible > .sis-motion-curtain {
  transform: translate3d(101%, 0, 0);
}

.sis-motion-scan {
  isolation: isolate;
  overflow: hidden;
}

.sis-motion-scanline {
  position: absolute;
  z-index: 14;
  top: -18%;
  right: 0;
  left: 0;
  height: 18%;
  background: linear-gradient(180deg, transparent, rgba(79, 140, 255, .14), transparent);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 0, 0);
}

.sis-motion-target.is-motion-visible > .sis-motion-scanline {
  animation: sis-interface-scan 1050ms 260ms var(--sis-motion-ease) both;
}

@keyframes sis-interface-scan {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0);
  }

  18% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translate3d(0, 660%, 0);
  }
}

.sis-reading-progress {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, #075acb, #7ca8ff 72%, #f5f7fb);
  box-shadow: 0 0 14px rgba(7, 90, 203, .32);
  pointer-events: none;
  transform: scaleX(var(--sis-page-progress));
  transform-origin: 0 50%;
  transition: transform 80ms linear;
}

.sis-motion-surface {
  --sis-tilt-x: 0deg;
  --sis-tilt-y: 0deg;
  --sis-glow-x: 50%;
  --sis-glow-y: 50%;
}

.sis-motion-light {
  position: absolute;
  z-index: 2;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(
    420px circle at var(--sis-glow-x) var(--sis-glow-y),
    rgba(91, 143, 255, .105),
    transparent 56%
  );
  opacity: 0;
  pointer-events: none;
  transition: opacity 240ms ease;
}

.sis-motion-reactive {
  position: relative;
  transform-style: preserve-3d;
}

.sis-motion-reactive > :not(.sis-motion-light) {
  position: relative;
  z-index: 3;
}

.sis-motion-reactive.is-pointer-active .sis-motion-light {
  opacity: 1;
}

.institution-hero,
.sis-hero {
  --sis-local-scroll-shift: var(--sis-scroll-shift);
}

.institution-hero {
  background-position:
    0 var(--sis-local-scroll-shift),
    var(--sis-local-scroll-shift) 0,
    0 0;
}

.sis-hero .hero-media {
  transform: translate3d(0, var(--sis-local-scroll-shift), 0);
}

.button,
.text-link,
.institution-action,
.nav-cta,
.product-description > a,
.evidence-open {
  transition:
    color 220ms ease,
    background-color 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease,
    transform 220ms var(--sis-motion-ease);
}

.button [aria-hidden="true"],
.text-link [aria-hidden="true"],
.institution-action [aria-hidden="true"],
.nav-cta [aria-hidden="true"],
.product-description > a [aria-hidden="true"] {
  display: inline-block;
  transition: transform 220ms var(--sis-motion-ease);
}

.product-explorer a {
  transition:
    color 260ms ease,
    background-color 360ms var(--sis-motion-ease),
    transform 260ms var(--sis-motion-ease);
}

.product-explorer a::before {
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 420ms var(--sis-motion-ease), background-color 220ms ease;
}

.product-explorer a.is-active::before {
  transform: scaleX(1);
}

.product-explorer strong,
.product-explorer small,
.product-jump-index {
  transition: color 260ms ease, transform 360ms var(--sis-motion-ease), opacity 260ms ease;
}

.product-explorer a.is-active strong {
  transform: translate3d(2px, 0, 0);
}

html.sis-motion-ready .products .product-row.sis-motion-target > .product-order,
html.sis-motion-ready .products .product-row.sis-motion-target > .product-description,
html.sis-motion-ready .products .product-row.sis-motion-target > .product-evidence,
html.sis-motion-ready .products .product-row.sis-motion-target > .product-instrument {
  opacity: 1;
  transform: none;
  transition: none;
}

html.sis-motion-ready .products .product-row.sis-motion-target.is-motion-visible > .product-order {
  animation: sis-product-part-arrival 620ms 80ms var(--sis-motion-ease) both;
}

html.sis-motion-ready .products .product-row.sis-motion-target.is-motion-visible > .product-description {
  animation: sis-product-part-arrival 680ms 170ms var(--sis-motion-ease) both;
}

html.sis-motion-ready .products .product-row.sis-motion-target.is-motion-visible > .product-evidence,
html.sis-motion-ready .products .product-row.sis-motion-target.is-motion-visible > .product-instrument {
  animation: sis-product-part-arrival 740ms 280ms var(--sis-motion-ease) both;
}

@keyframes sis-product-part-arrival {
  from {
    opacity: .16;
    transform: translate3d(0, 20px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root) {
  animation: sis-page-out 150ms ease-in both;
}

::view-transition-new(root) {
  animation: sis-page-in 360ms var(--sis-motion-ease) both;
}

@keyframes sis-page-out {
  to {
    opacity: .82;
    transform: translate3d(0, -4px, 0);
  }
}

@keyframes sis-page-in {
  from {
    opacity: 0;
    transform: translate3d(0, 9px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (hover: hover) and (pointer: fine) {
  html.sis-motion-ready .sis-motion-surface.is-motion-visible {
    transition:
      opacity var(--sis-motion-duration) var(--sis-motion-ease),
      transform 300ms var(--sis-motion-ease),
      border-color 220ms ease,
      box-shadow 300ms ease;
  }

  html.sis-motion-ready .sis-motion-surface.is-motion-visible:hover {
    transform: translate3d(0, -3px, 0);
  }

  html.sis-motion-ready .sis-motion-surface.is-motion-visible.sis-motion-reactive.is-pointer-active {
    transform:
      perspective(1200px)
      translate3d(0, -3px, 0)
      rotateX(var(--sis-tilt-x))
      rotateY(var(--sis-tilt-y));
    box-shadow: 0 24px 64px rgba(9, 16, 29, .12);
  }

  .button:hover,
  .institution-action:hover,
  .nav-cta:hover,
  .product-description > a:hover {
    transform: translate3d(0, -2px, 0);
  }

  .text-link:hover {
    transform: translate3d(3px, 0, 0);
  }

  .button:hover [aria-hidden="true"],
  .text-link:hover [aria-hidden="true"],
  .institution-action:hover [aria-hidden="true"],
  .nav-cta:hover [aria-hidden="true"],
  .product-description > a:hover [aria-hidden="true"] {
    transform: translate3d(4px, 0, 0);
  }

  .sis-motion-surface img {
    transition: transform 680ms var(--sis-motion-ease), filter 380ms ease;
  }

  .sis-motion-surface:hover img {
    transform: scale(1.012);
  }
}

@media (max-width: 720px) {
  :root {
    --sis-motion-duration: 480ms;
    --sis-motion-distance: 10px;
  }

  html.sis-intro-ready .sis-motion-intro {
    filter: none;
    transform: translate3d(0, 10px, 0);
    transition-duration: 440ms;
    transition-delay: var(--sis-intro-delay-mobile, 20ms);
  }

  html.sis-motion-ready .sis-motion-heading {
    transition-duration: 560ms;
  }

  .sis-motion-curtain {
    transition-duration: 680ms;
  }

  .sis-motion-target.is-motion-visible > .sis-motion-scanline {
    animation-duration: 760ms;
  }

  html.sis-motion-ready .sis-motion-target.sis-motion-delay-1,
  html.sis-motion-ready .sis-motion-target.sis-motion-delay-2,
  html.sis-motion-ready .sis-motion-target.sis-motion-delay-3 {
    transition-delay: 35ms;
  }

  html.sis-motion-ready .sis-motion-copy.sis-motion-from-left,
  html.sis-motion-ready .sis-motion-copy.sis-motion-from-right {
    transform: translate3d(0, var(--sis-motion-distance), 0);
  }

  .sis-reading-progress {
    height: 3px;
    background: linear-gradient(90deg, #075acb, #8db7ff);
    box-shadow: 0 1px 8px rgba(7, 90, 203, .22);
  }

  .institution-hero {
    background-position: 0 0, 0 0, 0 0;
  }

  .sis-hero .hero-media {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --sis-scroll-shift: 0px;
  }

  html.sis-intro-ready .sis-motion-intro,
  html.sis-intro-ready .sis-motion-intro.is-intro-visible,
  html.sis-motion-ready .sis-motion-target,
  html.sis-motion-ready .sis-motion-target.is-motion-visible,
  html.sis-motion-ready .sis-motion-heading,
  html.sis-motion-ready .sis-motion-target.is-motion-visible.sis-motion-heading,
  html.sis-motion-ready .sis-motion-target.is-motion-visible .sis-motion-heading,
  html.sis-motion-ready .sis-motion-copy.sis-motion-from-left,
  html.sis-motion-ready .sis-motion-copy.sis-motion-from-right,
  html.sis-motion-ready .sis-motion-surface.is-motion-visible:hover,
  html.sis-motion-ready .sis-motion-surface.is-motion-visible.sis-motion-reactive.is-pointer-active,
  html.sis-motion-ready .products .product-row.sis-motion-target > .product-order,
  html.sis-motion-ready .products .product-row.sis-motion-target > .product-description,
  html.sis-motion-ready .products .product-row.sis-motion-target > .product-evidence,
  html.sis-motion-ready .products .product-row.sis-motion-target > .product-instrument,
  .button:hover,
  .text-link:hover,
  .institution-action:hover,
  .nav-cta:hover,
  .product-description > a:hover,
  .sis-hero .hero-media {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }

  .sis-motion-rule,
  .sis-motion-target.is-motion-visible > .sis-motion-rule {
    transform: scaleX(1);
    transition: none;
  }

  .sis-motion-curtain,
  .sis-motion-scanline {
    display: none;
    animation: none;
    transition: none;
  }

  html.sis-motion-ready .sis-motion-target {
    opacity: 1;
    transform: none;
    transition: none;
  }

  html.sis-motion-ready .sis-motion-target.is-motion-visible,
  html.sis-intro-ready .sis-motion-intro.is-intro-visible,
  html.sis-motion-ready .products .product-row.sis-motion-target.is-motion-visible > .product-order,
  html.sis-motion-ready .products .product-row.sis-motion-target.is-motion-visible > .product-description,
  html.sis-motion-ready .products .product-row.sis-motion-target.is-motion-visible > .product-evidence,
  html.sis-motion-ready .products .product-row.sis-motion-target.is-motion-visible > .product-instrument {
    opacity: 1;
    transform: none;
    animation-name: sis-reduced-arrival !important;
    animation-duration: 650ms !important;
    animation-timing-function: ease-out !important;
    animation-fill-mode: both !important;
  }

  html.sis-intro-ready .sis-motion-intro {
    opacity: 1;
    filter: none;
    transform: none;
    transition: none;
  }

  .sis-reading-progress,
  .sis-motion-light {
    display: none;
  }

  @keyframes sis-reduced-arrival {
    from { opacity: .42; }
    to { opacity: 1; }
  }

  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
  }
}

.sis-typewriter-heading {
  position: relative;
}

.sis-typewriter-character {
  opacity: 0;
  transition: opacity 55ms linear;
}

.sis-typewriter-character.is-visible {
  opacity: 1;
}

.sis-typewriter-character.is-caret {
  position: relative;
}

.sis-typewriter-character.is-caret::after {
  content: "";
  position: absolute;
  top: .08em;
  left: calc(100% + .04em);
  width: 2px;
  height: .76em;
  background: #4f8cff;
  box-shadow: 0 0 12px rgba(79, 140, 255, .38);
}

.sis-typewriter-heading.is-complete .sis-typewriter-character.is-caret::after {
  animation: sis-typewriter-caret 650ms steps(1, end) 3;
}

@keyframes sis-typewriter-caret {
  0%,
  46% { opacity: 1; }
  47%,
  100% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .sis-typewriter-character {
    opacity: 1;
    transition: none;
  }

  .sis-typewriter-character.is-caret::after {
    display: none;
    animation: none;
  }
}
