/* Short, local accents: text remains visible and stationary throughout. */
.consulting-lane li,.team-summary{position:relative}
.consulting-lane li::after,.team-summary::after{content:"";position:absolute;top:-1px;left:0;width:76px;height:2px;background:currentColor;opacity:0;pointer-events:none}
.consulting-lane li::after{color:#415d45}
.team-summary::after{color:#903c26;width:48px}
@media(prefers-reduced-motion:no-preference){
.consulting-lane li.motion-visited::after,.team-summary.motion-visited::after{animation:section-rule 1.3s cubic-bezier(.16,1,.3,1) both}
.motion-visited .consulting-icon svg{animation:service-ink 1.1s ease-out}
.process-path li.motion-visited .process-node{animation:process-acknowledge 1.4s ease-out;animation-delay:calc(var(--step, 4)*.2s)}
@keyframes section-rule{0%{transform:scaleX(0);transform-origin:left;opacity:0}20%{opacity:.8}75%{opacity:.8}100%{transform:scaleX(1);transform-origin:left;opacity:.55}}
@keyframes service-ink{0%{stroke-dasharray:60;stroke-dashoffset:60;color:#6e866e}100%{stroke-dasharray:60;stroke-dashoffset:0;color:#415d45}}
@keyframes process-acknowledge{0%,100%{background:#e5d3bf;color:#763b25}35%,65%{background:#763b25;color:#fff7ed}}
}

@media(max-width:700px){.process-path li.motion-visited .process-node{animation-delay:0s}}

/* Client identities take focus once; descriptions never move. */
.project-row::before{content:"";position:absolute;top:-1px;left:0;width:112px;height:2px;background:#f0bc92;pointer-events:none;opacity:0}
@media(prefers-reduced-motion:no-preference){
.project-row.client-visited::before{animation:client-rule 1.2s cubic-bezier(.16,1,.3,1) both}
.client-visited .project-visual .logo-art,.client-visited .project-visual .app-art,.client-visited .mobile-logo-badge{animation:client-unveil 1.1s cubic-bezier(.16,1,.3,1) both}
.project-link svg{transition:transform .2s ease-out}
.project-link:hover svg,.project-link:focus-visible svg{transform:translate(3px,-3px)}
.project-link[href^="#"]:hover svg,.project-link[href^="#"]:focus-visible svg{transform:translateY(3px)}
@keyframes client-rule{from{transform:scaleX(0);transform-origin:left;opacity:.2}to{transform:scaleX(1);transform-origin:left;opacity:.8}}
@keyframes client-unveil{from{clip-path:inset(0 22% 0 0);opacity:.55}to{clip-path:inset(0);opacity:1}}
}
