
.pixel-wave :is(.pixel-text,.pixel-word,.pixel-char,.pixel-original,.pixel-face) { margin: 0; padding: 0; float: none; font-size: inherit; }
.pixel-wave .pixel-text { display: inline; }
.pixel-wave .pixel-word { display: inline-block; white-space: nowrap; }
.contact-email .pixel-word, .email-link .pixel-word { display: contents; }
.pixel-wave .pixel-char { display: inline-block; position: relative; vertical-align: baseline; }
.pixel-wave .pixel-original { display: inline; opacity: 1; transition: opacity 300ms ease-in-out; }
.pixel-wave .pixel-face {
  position: absolute;
  inset: 0;
  display: block;
  font-family: inherit;
  font-weight: inherit;
  font-style: inherit;
  font-kerning: inherit;
  letter-spacing: inherit;
  text-align: left;
  overflow: hidden;
  color: inherit;
  opacity: 0;
  pointer-events: none;
  user-select: none;
  transform: none;
  transform-origin: center;
  transition: opacity 300ms ease-in-out;
}
.pixel-char.is-pixel > .pixel-original { opacity: 0; }
.pixel-char.is-pixel > .pixel-face { opacity: 1; }
.pixel-char.is-pixel:not(.is-resolving) > :is(.pixel-original,.pixel-face) { transition: opacity 120ms ease-out; }
.pixel-char.is-resolving > .pixel-original { opacity: 1; }
.pixel-char.is-resolving > .pixel-face { opacity: 0; }
.role-stack { position: relative; }
.role-stack.is-pixel-morphing > .role-word:not(.pixel-morph) { opacity: 0; visibility: hidden; }
.role-stack > .pixel-morph { position: absolute; inset: 0; white-space: pre; pointer-events: none; }
.pixel-morph .pixel-char { position: absolute; top: 0; height: 100%; transition: none; }
.pixel-morph .pixel-original { position: absolute; top: 0; }

.pixel-char.is-pixel:not(.is-resolving) > .pixel-face {
  animation: pixel-glitch 180ms steps(1,end) infinite;
  text-shadow: 1px 0 #d63e7c, -1px 0 #359da5;
}
@keyframes pixel-glitch {
  0%,100% { transform: translateX(0); clip-path: inset(0); }
  22% { transform: translateX(1px); clip-path: inset(6% 0 28%); }
  46% { transform: translateX(-1px); clip-path: inset(24% 0 3%); }
  68% { transform: translateX(0); clip-path: inset(0); }
  84% { transform: translateX(1px); clip-path: inset(12% 0 18%); }
}

.role-word::before,
:is(.text-link,.email-link,.contact-email,.copy-email,.study-source)::after,
.header .navigation a::after { content: none!important; }
.header .navigation a:is(:hover,:focus-visible) .nav-label-track { transform: none!important; }
.prose a:is(:hover,:focus-visible), .footer-bottom a:is(:hover,:focus-visible) { text-decoration: none; }
.header .navigation a[aria-current] .pixel-face { color: var(--accent-ink); }

:is(.text-link,.email-link,.contact-email,.copy-email,.study-source,.prose a,.footer-bottom a):focus-visible {
  text-decoration: underline;
  text-underline-offset: .2em;
}
@media (prefers-reduced-motion: reduce) {
  .pixel-char.is-pixel > .pixel-original { opacity: 1; }
  .pixel-char.is-pixel > .pixel-face { opacity: 0; animation: none; text-shadow: none; }
}
[data-motion=off] .pixel-char.is-pixel > .pixel-original { opacity: 1; }
[data-motion=off] .pixel-char.is-pixel > .pixel-face { opacity: 0; animation: none; text-shadow: none; }


.pixel-intro-wait :is([data-pixel-wave-intro], [data-pixel-wave-page-intro], .hero-roles .role-word.is-current) { visibility:visible; }
.pixel-wave .pixel-char.is-intro-pending { opacity:1; }
