/* All layers are optional. Unenhanced and reduced-motion text remains fully visible. */
.motion-type .motion-readable {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  user-select: none;
}
html[data-motion-paused=true] .wordmark span { animation-play-state: paused; }
.motion-type .motion-ink {
  display: inline-block;
  position: relative;
  white-space: pre;
  vertical-align: bottom;
  padding: .12em .025em;
  margin: -.12em -.025em;
  overflow: clip;
  font-kerning: none;
}
.motion-type .motion-glyph {
  display: inline-block;
  transform-origin: 50% 85%;
  transition: none;
}
.motion-type .motion-reflection {
  display: block;
  position: absolute;
  inset: 0;
  padding: inherit;
  pointer-events: none;
  user-select: none;
  opacity: 0;
  color: transparent;
  background: linear-gradient(105deg, transparent 37%, #f43679 44%, #fff 49%, #aaa 52%, #fff 54%, transparent 62%);
  background-size: 260% 100%;
  background-clip: text;
  -webkit-background-clip: text;
}
.motion-type .motion-reflection .motion-glyph { color: transparent; }
.footer-title .motion-ink, .footer-title .motion-glyph, .footer-title .motion-reflection {
  letter-spacing: inherit;
  transition: none;
}
.footer-title:hover > span:not(.arrow) { letter-spacing: inherit; }
.service summary { position: relative; }
.service summary::after {
  content: '';
  position: absolute;
  bottom: 18px;
  left: 0;
  right: 50px;
  height: 3px;
  background: var(--orange);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .45s cubic-bezier(.16,1,.3,1);
}
.service summary:hover::after, .service summary:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}
.header nav a > span {
  display: inline-block;
  transition: transform .3s cubic-bezier(.16,1,.3,1);
}
.header nav a:hover > span { transform: translateY(-3px); }
.field { position: relative; }
.field > span { transition: color .2s, transform .25s; transform-origin: left; }
.field:focus-within > span { color: #a12b10; transform: translateX(5px); }
html[data-motion=off] .motion-reflection { display: none; }
html[data-motion=off] *::after { animation: none !important; transition: none !important; }
html[data-motion=off]::view-transition-old(root), html[data-motion=off]::view-transition-new(root) { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  .motion-reflection { display: none !important; }
  *::after { animation: none !important; transition: none !important; }
}
