/* Progressive motion: links keep their native navigation and history behavior. */
@view-transition{navigation:auto}
.site-header{view-transition-name:ths-header}
::view-transition-old(root){animation:document-out 190ms cubic-bezier(.4,0,.6,1) both;mix-blend-mode:normal}
::view-transition-new(root){animation:document-in 430ms cubic-bezier(.2,.7,.2,1) both;mix-blend-mode:normal}
::view-transition-group(ths-header){animation-duration:240ms}
::view-transition-old(ths-header),::view-transition-new(ths-header){animation:none;mix-blend-mode:normal}
::view-transition-image-pair(root){isolation:isolate}
:root{--motion-ease:cubic-bezier(.16,1,.3,1)}
.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:0 50%;z-index:80;pointer-events:none}
.motion-ready .hero h1>span{animation:headline-in 1000ms var(--motion-ease) both;animation-delay:80ms}
.motion-ready .hero h1>span:nth-child(2){animation-delay:220ms}
.motion-ready .hero-copy>p{animation:soft-in 850ms var(--motion-ease) 330ms both}
.motion-ready .hero-copy>.button{animation:soft-in 850ms var(--motion-ease) 440ms both}
.motion-ready .hero-eyebrow{animation:soft-in 800ms var(--motion-ease) 60ms both}
.motion-ready .page-hero .page-eyebrow{animation:headline-in 850ms var(--motion-ease) 60ms both}
.motion-ready .page-hero h1{animation:headline-in 850ms var(--motion-ease) 170ms both}
.motion-ready .page-hero .page-subtitle{animation:soft-in 850ms var(--motion-ease) 280ms both}
.motion-ready .page-hero .hero-arrow{animation:arrow-in 900ms var(--motion-ease) 200ms both}
.motion-ready .motion-item{opacity:0;transform:translateY(24px);transition:opacity 850ms var(--motion-ease),transform 850ms var(--motion-ease);transition-delay:var(--motion-delay,0ms)}
.motion-ready .motion-item.motion-visible{opacity:1;transform:none}
.motion-ready .section-label.motion-visible .square{animation:marker-in 700ms var(--motion-ease) both}
.service-card,.leader-portrait,.sales-role-card>.service-art{transition:transform 450ms var(--motion-ease),box-shadow 450ms ease}
.service-art:before{content:'';position:absolute;inset:-20%;z-index:1;pointer-events:none;background:linear-gradient(115deg,transparent 30%,#fff2 46%,transparent 60%);transform:translateX(-100%);transition:transform 850ms var(--motion-ease)}
.service-card:hover .service-art:before,.sales-role-card:hover .service-art:before{transform:translateX(100%)}
.leader-card:hover .leader-portrait{transform:translateY(-5px);box-shadow:0 16px 35px #20160b12}
.button .circle-arrow,.card-arrow,.band-link>span,.text-link>span{transition:transform 350ms var(--motion-ease),background 350ms ease}
.button:hover .circle-arrow,.button:focus-visible .circle-arrow{transform:translate(2px,-2px)}
.text-link:hover>span,.role-business-link:hover>span{transform:translate(3px,-3px)}
.nav-business[open] .nav-dropdown{animation:menu-in 260ms var(--motion-ease) both}
.mobile-nav:not([hidden]){animation:menu-in 300ms var(--motion-ease) both}
.mobile-nav:not([hidden])>a,.mobile-nav:not([hidden])>.mobile-services{animation:soft-in 350ms var(--motion-ease) both}
.mobile-nav:not([hidden])>a:nth-child(2){animation-delay:35ms}.mobile-nav:not([hidden])>a:nth-child(3){animation-delay:65ms}.mobile-nav:not([hidden])>a:nth-child(4){animation-delay:95ms}
.motion-toggle{white-space:nowrap}.motion-toggle[aria-pressed=true]{color:#f8a18f}
/* A little more space and type size for the actual reading, not just the titles. */
.about-body p:not(.lead),.service-prose>p,.intro-statement>p,.president-message>p:not(.mini-label):not(.signature),.philosophy-content p{font-size:14px;line-height:2.15}
.service-card-body>p,.sales-role-copy>p,.sales-steps p,.learning-grid p,.value-grid p,.support-detail-list p,.work-list p,.recruit-info .profile-layout p{font-size:13px;line-height:2.05}
.leader-meta>p,.people-intro>p{font-size:12.5px;line-height:2.1}
.section-heading-row>p,.recruit-main p,.partner-intro p{font-size:13px;line-height:2.1}
.sales-role-copy>p{min-height:87px}
@keyframes headline-in{from{opacity:0;transform:translateY(25px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
@keyframes soft-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes arrow-in{from{opacity:0;transform:translate(-14px,14px)}to{opacity:1;transform:none}}
@keyframes menu-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes marker-in{from{transform:scaleX(.15)}to{transform:scaleX(1)}}
@keyframes document-out{to{opacity:0;transform:translateY(-9px)}}
@keyframes document-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@supports not (view-transition-name:root){.motion-ready main{animation:document-in 420ms var(--motion-ease) both}}
.motion-ready.motion-fallback main{animation:fallback-in 420ms var(--motion-ease) both}
.motion-ready.motion-fallback.motion-leaving main{animation:none;opacity:.45;transform:translateY(-8px);transition:opacity 150ms ease,transform 150ms ease}
@keyframes fallback-in{from{opacity:.55;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(hover:none){.leader-card:hover .leader-portrait{transform:none;box-shadow:none}.service-art:before{display:none}}
@media(max-width:760px){.about-body p:not(.lead),.service-prose>p,.intro-statement>p,.president-message>p:not(.mini-label):not(.signature),.philosophy-content p{font-size:12.5px;line-height:2.15}.service-card-body>p,.sales-role-copy>p,.sales-steps p,.learning-grid p,.value-grid p,.support-detail-list p,.work-list p,.recruit-info .profile-layout p{font-size:12px;line-height:2.05}.leader-meta>p,.people-intro>p,.section-heading-row>p,.recruit-main p,.partner-intro p{font-size:12px;line-height:2.1}.sales-role-copy>p{min-height:0}.motion-ready .motion-item{transform:translateY(16px)}.motion-ready .motion-item.motion-visible{transform:none}}
.motion-reduced *,.motion-reduced *:before,.motion-reduced *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.motion-reduced .motion-item,.motion-reduced .reveal{opacity:1!important;transform:none!important;clip-path:none!important}
.motion-reduced .reading-progress{display:none}.motion-reduced .service-art:before{display:none}
.motion-reduced::view-transition-old(root),.motion-reduced::view-transition-new(root){animation:none!important}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}.motion-item,.reveal{opacity:1!important;transform:none!important;clip-path:none!important}.reading-progress{display:none}}

/* Letter rhythm and moving artwork: the text remains live and selectable. */
.motion-ready .motion-heading .motion-glyph{display:inline-block;opacity:0;transform:translateY(.65em) rotate(3deg);filter:blur(3px)}
.motion-ready .motion-heading.type-visible .motion-glyph{animation:glyph-arrive 800ms var(--motion-ease) both;animation-delay:var(--glyph-delay,0ms)}
.motion-ready .hero h1 .outline-text>.motion-glyph{-webkit-text-stroke:inherit;color:transparent}
.motion-ready .page-hero-rule{transform-origin:0 50%;animation:rule-open 1150ms var(--motion-ease) 200ms both}
.motion-ready .service-art>img{animation:art-breathe 7s ease-in-out infinite;animation-play-state:paused;will-change:auto}
.motion-ready .service-art.art-in-view>img{animation-play-state:running}
.motion-ready .service-card:nth-child(2n) .service-art>img,.motion-ready .sales-role-card:nth-child(2n) .service-art>img{animation-delay:-3.5s}
.motion-ready .hero-art .orbit-front{transform-origin:325px 325px;animation:orbit-turn 12s ease-in-out infinite;animation-play-state:paused}
.motion-ready .hero-art.art-in-view .orbit-front{animation-play-state:running}
.motion-ready .hero .status-dot{animation:signal-pulse 3s ease-in-out infinite}
.motion-ready .scroll-link>span:last-child{animation:scroll-nudge 2s ease-in-out infinite}
.motion-ready .recruit-art .step{animation:step-rise 6s ease-in-out infinite;animation-play-state:paused}
.motion-ready .recruit-art.art-in-view .step{animation-play-state:running}
.motion-ready .recruit-art .s2{animation-delay:-2s}.motion-ready .recruit-art .s3{animation-delay:-4s}
.motion-ready .service-art:after{transform-origin:0 50%;animation:accent-length 4s ease-in-out infinite;animation-play-state:paused}
.motion-ready .service-art.art-in-view:after{animation-play-state:running}
.motion-ready .nav-business a:after,.motion-ready .desktop-nav>a:after{transition:transform 400ms var(--motion-ease)}
.motion-reduced .motion-glyph{opacity:1!important;transform:none!important;filter:none!important}
@keyframes glyph-arrive{to{opacity:1;transform:none;filter:blur(0)}}
@keyframes rule-open{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes art-breathe{0%,100%{transform:translateY(3px) scale(1.035)}50%{transform:translateY(-7px) scale(1.065)}}
@keyframes orbit-turn{0%,100%{transform:rotate(43deg)}50%{transform:rotate(51deg)}}
@keyframes signal-pulse{0%,100%{box-shadow:0 0 0 0 #e7302140}50%{box-shadow:0 0 0 7px #e7302100}}
@keyframes scroll-nudge{0%,100%{transform:translateY(0)}55%{transform:translateY(6px)}}
@keyframes step-rise{0%,100%{transform:skewY(-20deg) translateY(0)}50%{transform:skewY(-20deg) translateY(-12px)}}
@keyframes accent-length{0%,100%{transform:scaleX(1)}50%{transform:scaleX(1.8)}}
@media(max-width:760px){@keyframes art-breathe{0%,100%{transform:translateY(2px) scale(1.03)}50%{transform:translateY(-4px) scale(1.055)}}}
@media(prefers-reduced-motion:reduce){.motion-glyph{opacity:1!important;transform:none!important;filter:none!important}}
