/* Native vector ident: circles, monogram, hairline and Simplon type. */
.engine-motion{--motion-paper:#f2f2f2;--motion-ink:#141414;--motion-line:#a1a1a1;--motion-grid:#999;--motion-duration:7.8s;--motion-ease:cubic-bezier(.22,1,.36,1);background:var(--motion-paper);color:var(--motion-ink);overflow:hidden;container-type:inline-size;isolation:isolate}
.engine-motion--dark{--motion-paper:#202020;--motion-ink:#f4f4f4;--motion-line:#777;--motion-grid:#777}
.engine-motion .engine-motion-monogram{position:absolute;left:15%;top:50%;width:6.8%;height:auto;max-width:none;transform:translate(-50%,-50%);filter:brightness(0)}
.engine-motion--dark .engine-motion-monogram{filter:none}
.engine-motion-orbits{position:absolute;left:50%;top:50%;width:28%;aspect-ratio:1;transform:translate(-50%,-50%);opacity:0}
.engine-motion-orbits svg{display:block;width:100%;height:100%;overflow:visible}
.engine-motion-orbits circle{fill:none;stroke:var(--motion-line);stroke-width:.7;vector-effect:non-scaling-stroke;transform-origin:center;transform:rotate(-90deg);stroke-dasharray:100;stroke-dashoffset:0}
.engine-motion-orbits .engine-orbit-inner{stroke-dasharray:.35 1.4;stroke-width:.6}
.engine-motion-connector{position:absolute;left:21%;top:50%;width:13%;height:1px;background:var(--motion-line);opacity:.65;transform-origin:left}
.engine-motion-bracket{position:absolute;left:88%;top:32%;height:36%;width:4px;border-right:1px solid var(--motion-line);transform-origin:center}
.engine-motion-bracket::before,.engine-motion-bracket::after{content:"";position:absolute;right:0;width:4px;height:1px;background:var(--motion-line)}
.engine-motion-bracket::before{top:0}.engine-motion-bracket::after{bottom:0}
.engine-motion-grid{position:absolute;left:39%;top:31%;width:40%;height:38%;opacity:0;background-image:linear-gradient(var(--motion-grid) .5px,transparent .5px),linear-gradient(90deg,var(--motion-grid) .5px,transparent .5px);background-size:4.1cqi 4.1cqi;mask-image:radial-gradient(ellipse,#000 10%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse,#000 10%,transparent 70%)}
.engine-motion-pixel{position:absolute;left:calc(var(--x)*4.1cqi);top:calc(var(--y)*4.1cqi);width:4.1cqi;height:4.1cqi;background:var(--motion-ink);opacity:0}
.engine-motion-title{position:absolute;left:39%;top:50%;max-width:47%;margin:0;transform:translateY(-50%);font-family:Simplon,Arial,sans-serif;font-size:var(--engine-type,8.2cqi);font-weight:400;line-height:1.05;letter-spacing:-.035em;white-space:nowrap}
.engine-motion-letter{display:inline-block;white-space:pre}
.engine-motion.is-playing .engine-motion-monogram{animation:engine-monogram var(--motion-duration) var(--motion-ease) infinite both}
.engine-motion.is-playing .engine-motion-orbits{animation:engine-orbits var(--motion-duration) ease-in-out infinite both}
.engine-motion.is-playing .engine-orbit-outer{animation:engine-circle var(--motion-duration) var(--motion-ease) infinite both}
.engine-motion.is-playing .engine-motion-connector{animation:engine-connector var(--motion-duration) var(--motion-ease) infinite both}
.engine-motion.is-playing .engine-motion-bracket{animation:engine-bracket var(--motion-duration) var(--motion-ease) infinite both}
.engine-motion.is-playing .engine-motion-grid{animation:engine-grid var(--motion-duration) ease infinite both}
.engine-motion.is-playing .engine-motion-pixel{animation:engine-pixel var(--motion-duration) ease infinite both;animation-delay:calc(var(--pixel)*55ms)}
.engine-motion.is-playing .engine-motion-letter{animation:engine-letter var(--motion-duration) var(--motion-ease) infinite both;animation-delay:calc(var(--letter)*38ms)}
@keyframes engine-monogram{0%,4%{opacity:0;transform:translate(calc(-50% + 35cqi),-50%)}11%,20%{opacity:1;transform:translate(calc(-50% + 35cqi),-50%)}36%,88%{opacity:1;transform:translate(-50%,-50%)}97%,100%{opacity:0;transform:translate(-50%,-50%)}}
@keyframes engine-orbits{0%{opacity:0;transform:translate(-50%,-50%) scale(.68)}9%,19%{opacity:.8;transform:translate(-50%,-50%) scale(1)}30%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.08)}}
@keyframes engine-circle{0%{stroke-dashoffset:100}20%,100%{stroke-dashoffset:0}}
@keyframes engine-connector{0%,33%{opacity:0;transform:scaleX(0)}44%,68%{opacity:.65;transform:scaleX(1)}78%,100%{opacity:0;transform:scaleX(1)}}
@keyframes engine-bracket{0%,15%{opacity:0;transform:scaleY(0)}31%,81%{opacity:.8;transform:scaleY(1)}95%,100%{opacity:0;transform:scaleY(0)}}
@keyframes engine-grid{0%,28%{opacity:0}39%{opacity:.33}53%{opacity:.17}62%,72%{opacity:0}80%{opacity:.2}90%,100%{opacity:0}}
@keyframes engine-pixel{0%,31%{opacity:0}37%{opacity:.18}42%{opacity:.04}47%{opacity:.13}54%,74%{opacity:0}81%{opacity:.08}88%,100%{opacity:0}}
@keyframes engine-letter{0%,36%{opacity:0;filter:blur(2px);transform:translateY(5px);clip-path:inset(0 0 100% 0)}47%,68%{opacity:1;filter:blur(0);transform:translateY(0);clip-path:inset(0 0 0 0)}77%,100%{opacity:0;filter:blur(1px);transform:translateY(-3px);clip-path:inset(100% 0 0 0)}}
@media(min-width:960px){
 .expertise-preview.engine-motion{width:450px;height:auto;aspect-ratio:450/253;transition:opacity 320ms ease,transform 650ms var(--motion-ease),visibility 320ms;will-change:auto}
 .expertise-row:focus-visible .engine-motion{opacity:1;visibility:visible;transform:none}
}
@media(min-width:960px) and (max-width:1499px){
 .expertise-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,42%);grid-template-rows:auto 1fr;column-gap:32px;row-gap:20px;min-height:280px;padding:28px 0 36px}
 .expertise-heading{grid-column:1;grid-row:1;align-self:end}
 .expertise-heading h3{font-size:clamp(3.5rem,6.25vw,5rem);text-wrap:balance}
 .expertise-detail{display:contents}
 .expertise-copy{grid-column:1;grid-row:2;max-width:360px}
 .expertise-copy p{font-size:1.125rem;line-height:1.25}
 .expertise-visual{display:block;position:relative;grid-column:2;grid-row:1 / span 2;align-self:center;aspect-ratio:450/253;min-width:0}
 .expertise-mark{display:none}
 .expertise-preview.engine-motion{position:absolute;inset:0;width:100%;max-width:100%;opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none}
}
@media(min-width:960px) and (hover:hover){.expertise-row:hover .engine-motion{opacity:1;visibility:visible;transform:none}}
@media(prefers-reduced-motion:reduce){.expertise-preview.engine-motion,.engine-motion *{animation:none!important;transition:none!important}.engine-motion-orbits,.engine-motion-grid{display:none}}
@media print{.expertise-preview.engine-motion{display:none}}
