/* Content is visible by default: motion is progressive enhancement. */
.image-reveal{isolation:isolate}.image-reveal img{will-change:auto}.word-wrap{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}.split-word{display:inline-block;transform-origin:0 100%}.split-char{display:inline-block}.split-space{white-space:pre}.hero-orbit{animation:float-note 6s ease-in-out infinite}.code-cursor{animation:caret 1s steps(2,end) infinite}.status-dot{animation:status-pulse 3s ease-in-out infinite}.mobile-menu[open]{animation:drawer-in .4s cubic-bezier(.22,1,.36,1)}.mobile-menu[open] nav a{animation:nav-in .55s cubic-bezier(.22,1,.36,1) both}.mobile-menu[open] nav a:nth-child(2){animation-delay:.06s}.mobile-menu[open] nav a:nth-child(3){animation-delay:.12s}.mobile-menu[open] nav a:nth-child(4){animation-delay:.18s}.mobile-menu[open] nav a:nth-child(5){animation-delay:.24s}.journey-panel:not([hidden]){animation:panel-in .4s ease both}.consent-dialog[open]{animation:panel-in .3s ease}.project-card.filter-enter{animation:panel-in .45s ease both}@keyframes float-note{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}@keyframes caret{50%{opacity:0}}@keyframes status-pulse{50%{box-shadow:0 0 0 7px #4b168c08}}@keyframes drawer-in{from{transform:translateX(100%);opacity:0}to{transform:none;opacity:1}}@keyframes nav-in{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}@keyframes panel-in{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@media(hover:hover) and (pointer:fine){.button{will-change:transform}.image-reveal img{backface-visibility:hidden}.service-card:hover .service-index{background:var(--purple)}.industry-card:hover>span{background:#fff;color:var(--purple)}}
