/* Content is visible at rest, including before the observer runs or without JS. */
.v4-navigation > a,.v4-menu,.v4-button,.v4-text-link {
  transition:color .22s ease,background-color .22s ease,border-color .22s ease;
}
.v4-menu[aria-expanded="true"] { background:#ffffff12; border-color:#a5c5e788; }
@media (hover:hover) {
  .v4-menu:hover { background:#ffffff14; }
  .v4-footer nav a:hover { text-decoration:underline; text-underline-offset:.22em; }
}
.v4-button:active,.v4-menu:active { filter:brightness(.91); }

.hero-light { position:absolute; pointer-events:none; overflow:visible; display:none; }
.p-reference-contact > .hero-light { inset:0; width:100%; height:100%; clip-path:polygon(39% 100%,100% 25%,100% 100%); z-index:0; }
.p-reference-contact > .v4-container { position:relative; z-index:1; }
.hero-light-edge { fill:none; stroke:#c9edff; stroke-width:3; stroke-linecap:round; stroke-dasharray:12 100; }
.hero-light-halo { stroke-width:10; opacity:.54; filter:blur(5px); }
.hero-light-ribbon { mix-blend-mode:screen; }

@media (prefers-reduced-motion:no-preference) {
  .v4-hero-copy h1 > span,.v4-hero-copy .v4-hero-intro,.v4-hero-copy .v4-actions > a {
    animation:rc2-enter .98s cubic-bezier(.2,.65,.24,1) var(--entrance-delay,0s) both;
  }
  .v4-hero-copy h1 > span + span { --entrance-delay:.16s; }
  .v4-hero-copy .v4-hero-intro { --entrance-delay:.34s; }
  .v4-hero-copy .v4-actions > a { --entrance-delay:.52s; }
  .v4-hero-copy .v4-actions > a + a { --entrance-delay:.68s; }
  .v4-hero-copy .v4-actions:focus-within > a,.rc2-revealed:focus-within { animation:none; }
  .rc2-revealed { animation:rc2-reveal .72s cubic-bezier(.2,.65,.24,1) var(--reveal-delay,0ms) both; }
  .p-services article,.p-commerce-topics article,.v4-hero-base a {
    transition:background-color .24s ease,border-color .24s ease,box-shadow .24s ease;
  }
  @media (min-width:901px) {
    .hero-light { display:block; }
    .hero-light:not(.is-in-view) * { animation-play-state:paused; }
    .hero-light-edge { animation:rc2-edge 14s linear infinite both; }
    .p-reference-contact .hero-light-edge { animation-delay:.5s; }
    .hero-light-reflection { animation:rc2-ribbon 15s linear infinite; }
  }
}

@media (hover:hover) {
  .p-engineering .p-services article:hover { background-color:#e8f1fa; border-color:#a8bfd6; }
  .p-commerce-topics article:hover,.v4-hero-base a:hover { background-color:#eaf1f899; }
}
.p-engineering .p-services article:focus-within { border-color:#537ca7; }

@keyframes rc2-enter {
  from { opacity:.66; transform:translateY(12px); }
  to { opacity:1; transform:none; }
}
@keyframes rc2-reveal {
  from { opacity:.72; transform:translateY(10px); }
  to { opacity:1; transform:none; }
}
@keyframes rc2-edge {
  0% { opacity:0; stroke-dashoffset:12; }
  10% { opacity:.78; }
  28% { opacity:.82; }
  37%,100% { opacity:0; stroke-dashoffset:-88; }
}
@keyframes rc2-ribbon {
  0% { opacity:0; transform:translate(1200px,455px) rotate(-28deg); }
  9% { opacity:.62; transform:translate(1330px,389px) rotate(-26deg); }
  26% { opacity:.55; transform:translate(1630px,276px) rotate(-22deg); }
  35%,100% { opacity:0; transform:translate(1770px,231px) rotate(-19deg); }
}
