/* Motion system */
:root{--motion-ease:cubic-bezier(.16,1,.3,1);--duration-fast:.22s;--duration-medium:.38s;--duration-slow:.55s}
html{scroll-behavior:smooth}

/* Section entrances */
.motion-ready .reveal-item{opacity:0;transform:translateY(28px)}
.motion-entered{opacity:1;transform:translateY(0);transition:opacity .75s var(--motion-ease) var(--reveal-delay,0ms),transform .85s var(--motion-ease) var(--reveal-delay,0ms)}
.hero-enter{opacity:0;transform:translateY(24px);filter:blur(3px)}
.hero-enter.hero-entered{opacity:1;transform:translateY(0);filter:blur(0);transition:opacity .9s var(--motion-ease) var(--hero-delay,0ms),transform 1s var(--motion-ease) var(--hero-delay,0ms),filter .7s ease var(--hero-delay,0ms)}

/* Decorative geometry */
.home-hero,.page-hero,.closing-cta{position:relative;isolation:isolate;overflow:hidden}
.home-hero>.container,.page-hero>.container,.closing-cta>.container{position:relative;z-index:1}
.connection-art{position:absolute;right:-80px;top:-70px;width:min(650px,65vw);height:650px;pointer-events:none;z-index:0;color:var(--cyan);opacity:.22;transform:none;contain:layout style}
.connection-art span{position:absolute;display:block;pointer-events:none}
.geometry-square{width:360px;height:360px;right:100px;top:120px;border:1px solid currentColor;transform:rotate(24deg)}
.geometry-small{width:160px;height:160px;right:40px;top:90px;border-width:2px;transform:rotate(24deg)}
.geometry-ring{width:570px;height:570px;right:-170px;top:20px;border:1px solid currentColor;border-radius:50%;transform:none}
.geometry-axis{width:540px;height:1px;right:30px;top:380px;background:currentColor;transform:rotate(-38deg);transform-origin:right}
.light-hero .connection-art{color:var(--navy);opacity:.085}
.closing-cta .connection-art{top:-160px;right:-100px;opacity:.14}
.page-hero>.connection-art{right:-190px;opacity:.16}

/* Header and reading progress */
.site-header{transition:box-shadow .45s ease,border-color .45s ease}
.site-header.is-scrolled{box-shadow:0 8px 30px #102e4912;border-color:#c4d3dd}
.site-header:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--cyan);transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
.manifesto-line{display:table;position:relative;padding-bottom:8px;margin-bottom:3px}
.manifesto-line:after{content:"";position:absolute;bottom:1px;left:0;right:0;height:2px;background:var(--cyan);transform:scaleX(var(--line-progress,0));transform-origin:left}

/* Static imagery stability */
.motion-photo{overflow:hidden}
.motion-photo img{transform:none;will-change:auto}
.identity-type{transform:translateY(var(--scroll-shift,0px))}

/* Synchronized interactive card transitions */
.button{position:relative;isolation:isolate;overflow:hidden;transition:transform var(--duration-medium) var(--motion-ease),background-color var(--duration-medium) var(--motion-ease),color var(--duration-fast) ease,border-color var(--duration-fast) ease,box-shadow var(--duration-medium) var(--motion-ease)}
.button span{display:inline-grid;place-items:center;transform:rotate(0);transition:transform var(--duration-medium) var(--motion-ease),background-color var(--duration-fast) ease,color var(--duration-fast) ease,border-color var(--duration-fast) ease}

.service-row,.industries-grid article,.why-grid article,.approach-grid article,.vision-mission article{position:relative;transition:transform var(--duration-medium) var(--motion-ease),box-shadow var(--duration-medium) var(--motion-ease),background-color var(--duration-medium) var(--motion-ease),border-color var(--duration-medium) var(--motion-ease)}
.service-row:before,.service-row:after,.industries-grid article:before,.industries-grid article:after,.why-grid article:before,.why-grid article:after,.approach-grid article:before,.approach-grid article:after,.vision-mission article:before,.vision-mission article:after{content:none!important;display:none!important;animation:none!important;transform:none!important}

.service-name h3,.industry-title h2,.why-grid h3,.approach-grid h3,.vision-mission h2{transform:translateX(0);transition:transform var(--duration-medium) var(--motion-ease),color var(--duration-fast) ease}
.service-name .index,.industry-title .index,.why-grid .index,.approach-grid .index,.vision-mission .index{transition:transform var(--duration-medium) var(--motion-ease),background-color var(--duration-fast) ease,border-color var(--duration-fast) ease,color var(--duration-fast) ease,box-shadow var(--duration-medium) var(--motion-ease)}

.hero-pillars a,.jump-bar a,.industry-link-list a,.section-nav a,.text-link{position:relative;transition:transform var(--duration-fast) var(--motion-ease),color var(--duration-fast) ease,background-color var(--duration-fast) ease}
.hero-pillars a>span:last-child,.jump-bar a>span,.text-link>span,.industry-link-list a>span:last-child,.section-nav a>span{display:inline-block;transform:translate(0,0);transition:transform var(--duration-medium) var(--motion-ease),color var(--duration-fast) ease}

.numbered-capabilities li,.capability-list li,.checkbox-option{transition:transform var(--duration-fast) var(--motion-ease),background-color var(--duration-fast) ease,color var(--duration-fast) ease,border-color var(--duration-fast) ease}
.numbered-capabilities li .index{transition:transform var(--duration-medium) var(--motion-ease),color var(--duration-fast) ease}
.capability-list li:before{transition:transform var(--duration-fast) var(--motion-ease),background-color var(--duration-fast) ease}

.field label{transition:color var(--duration-fast) ease,transform var(--duration-medium) var(--motion-ease);transform-origin:left}
.field:focus-within label{color:var(--teal);transform:translateX(4px)}
input:not([type=checkbox]),textarea{transition:border-color var(--duration-fast) ease,box-shadow var(--duration-medium) var(--motion-ease),background-color var(--duration-fast) ease}
.field:focus-within input,.field:focus-within textarea{background:#f7fbfc;border-color:var(--teal);box-shadow:0 5px 20px #163a5a0a}
.checkbox-option.is-selected{background:#edf6f7;border-color:#b4dde2;color:var(--navy)}

/* Mobile menu animation */
.menu-toggle[aria-expanded=true] .menu-icon{border-color:transparent}
.menu-icon{transition:border-color .2s}.menu-icon:after{transition:transform .3s}
.menu-toggle[aria-expanded=true] .menu-icon:after{transform:rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-icon:before{content:"";position:absolute;top:5px;left:0;right:0;border-top:1px solid var(--navy);transform:rotate(-45deg)}
.menu-ready .site-header nav.is-open{animation:menu-open .35s var(--motion-ease)}

/* First-session home introduction */
.site-intro{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;visibility:hidden;opacity:0;overflow:hidden;pointer-events:none;background:var(--navy);color:#fff;isolation:isolate}
.site-intro:before{content:"";position:absolute;inset:-20%;background:linear-gradient(#00c7d91c 1px,transparent 1px),linear-gradient(90deg,#00c7d91c 1px,transparent 1px);background-size:72px 72px;transform:rotate(-8deg) scale(1.2);opacity:.5}
.site-intro-frame{position:relative;z-index:1;width:min(640px,84vw);display:grid;justify-items:center;gap:24px;text-align:center}
.site-intro-logo{width:min(520px,76vw);height:auto;opacity:0;transform:translateY(14px) scale(.96);will-change:transform,opacity,clip-path}
.site-intro-kicker{font-size:clamp(.72rem,1.4vw,.9rem);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#d7edf1;opacity:0;transform:translateY(8px)}
.site-intro-line{display:block;width:min(420px,58vw);height:1px;background:#ffffff45;overflow:hidden;opacity:0}
.site-intro-line:after{content:"";display:block;width:42%;height:3px;margin-top:-1px;background:var(--cyan);transform:translateX(-110%)}
.site-intro.is-playing{visibility:visible;animation:intro-shell 2.15s cubic-bezier(.65,0,.25,1) both}
.site-intro.is-playing .site-intro-logo{animation:intro-logo 1.72s var(--motion-ease) .12s both}
.site-intro.is-playing .site-intro-kicker{animation:intro-kicker 1.4s var(--motion-ease) .42s both}
.site-intro.is-playing .site-intro-line{animation:intro-line 1.4s ease .25s both}
.site-intro.is-playing .site-intro-line:after{animation:intro-scan 1.12s var(--motion-ease) .34s both}

/* Route transition */
.route-transition{position:fixed;inset:0;z-index:1000;pointer-events:none;visibility:hidden;overflow:hidden;color:#fff;isolation:isolate;contain:strict}
.route-plane{position:absolute;will-change:transform;backface-visibility:hidden}
.route-plane-a{inset:-2px -10vw;bottom:-2px;background:var(--navy);clip-path:polygon(0 0,calc(100% - 84px) 0,100% 50%,calc(100% - 84px) 100%,0 100%);transform:translate3d(-105%,0,0)}
.route-plane-a:after{content:"";position:absolute;top:0;bottom:0;right:82px;width:2px;background:var(--cyan);opacity:.9}
.route-plane-b{display:none}
.route-signal{position:absolute;left:50%;top:50%;width:min(560px,78vw);min-height:150px;opacity:0;transform:translate3d(-50%,-50%,0) scale(.96);display:flex;align-items:center;justify-content:center}
.route-signal:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#ffffff38}
.route-signal:after{content:"";position:absolute;inset:calc(50% - 7px) auto auto 0;width:12px;height:12px;border:1px solid var(--cyan);transform:rotate(45deg)}
.route-logo{position:relative;z-index:1;width:min(360px,70vw);height:auto;padding:16px clamp(20px,4vw,38px);background:var(--navy)}
.route-signal i{position:absolute;left:0;top:calc(50% - 1px);width:32%;height:3px;background:var(--cyan);transform:translate3d(-110%,0,0)}
.route-transition.is-leaving,.route-transition.is-arriving{visibility:visible}
.route-transition.is-leaving .route-plane-a{animation:curtain-in .58s cubic-bezier(.72,0,.2,1) both}
.route-transition.is-leaving .route-signal{animation:signal-in .3s var(--motion-ease) .2s both}
.route-transition.is-leaving .route-signal i{animation:signal-run .48s var(--motion-ease) .14s both}
.route-transition.is-arriving .route-plane-a{transform:translate3d(0,0,0);animation:curtain-out .7s cubic-bezier(.72,0,.2,1) both}
.route-transition.is-arriving .route-signal{animation:signal-out .38s ease both}
.route-changing body{cursor:progress}

@keyframes menu-open{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-shell{0%,76%{opacity:1}to{opacity:0}}
@keyframes intro-logo{0%{opacity:0;transform:translateY(14px) scale(.96);clip-path:inset(0 48% 0 48%)}28%,76%{opacity:1;transform:translateY(0) scale(1);clip-path:inset(0 0 0 0)}to{opacity:0;transform:translateY(-6px) scale(1.015);clip-path:inset(0 0 0 0)}}
@keyframes intro-kicker{0%{opacity:0;transform:translateY(8px)}30%,72%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}
@keyframes intro-line{0%{opacity:0;transform:scaleX(.55)}28%,78%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}
@keyframes intro-scan{from{transform:translate3d(-110%,0,0)}to{transform:translate3d(350%,0,0)}}
@keyframes curtain-in{from{transform:translate3d(-105%,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes curtain-out{from{transform:translate3d(0,0,0)}to{transform:translate3d(105%,0,0)}}
@keyframes signal-in{from{opacity:0;transform:translate3d(-50%,-50%,0) scale(.96)}to{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)}}
@keyframes signal-out{0%,28%{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)}to{opacity:0;transform:translate3d(-50%,-50%,0) scale(1.02)}}
@keyframes signal-run{from{transform:translate3d(-110%,0,0)}to{transform:translate3d(345%,0,0)}}

/* Hover and fine-pointer interactions with float response */
@media(hover:hover) and (pointer:fine){
 .button:not(:disabled):hover{transform:translateY(-2px);background:#00aebf;color:#082c48;border-color:#00e1ed;box-shadow:0 8px 24px rgba(0,199,217,.32)}
 .button:not(:disabled):hover span{transform:rotate(45deg);background:var(--navy);border-color:var(--navy);color:var(--cyan)}
 
 .service-row:hover{transform:translateY(-5px);border-left-color:var(--cyan);border-color:#b4dde2;box-shadow:0 14px 32px rgba(22,58,90,.12)}
 .service-row:hover h3{transform:translateX(6px);color:var(--teal)}
 .service-row:hover .index{background:var(--cyan);border-color:var(--cyan);color:var(--navy);box-shadow:0 0 14px rgba(0,199,217,.4)}

 .why-grid article:hover{transform:translateY(-6px);background:rgba(255,255,255,.08);border-color:var(--cyan);box-shadow:0 16px 36px rgba(0,0,0,.32),0 0 0 1px rgba(0,199,217,.3)}
 .why-grid article:hover h3{transform:translateX(6px);color:#fff}
 .why-grid article:hover .index{background:var(--cyan);color:var(--navy);border-color:var(--cyan);box-shadow:0 0 16px rgba(0,199,217,.5)}

 .industries-grid article:hover{transform:translateY(-5px);border-top-color:var(--cyan);border-color:#b4dde2;background:#fff;box-shadow:0 14px 34px rgba(22,58,90,.12)}
 .industries-grid article:hover h2{transform:translateX(6px);color:var(--teal)}
 .industries-grid article:hover .index{background:var(--cyan);border-color:var(--cyan);color:var(--navy);box-shadow:0 0 14px rgba(0,199,217,.4)}

 .approach-grid article:hover{transform:translateY(-6px);background:rgba(255,255,255,.08);border-color:var(--cyan);box-shadow:0 16px 36px rgba(0,0,0,.32)}
 .approach-grid article:hover h3{transform:translateX(6px);color:#fff}
 .approach-grid article:hover .index{background:var(--cyan);color:var(--navy);border-color:var(--cyan);box-shadow:0 0 16px rgba(0,199,217,.5)}

 .vision-mission article:hover{transform:translateY(-5px);border-top-color:var(--cyan);border-color:#b4dde2;box-shadow:0 14px 32px rgba(22,58,90,.1)}
 .vision-mission article:hover h2{transform:translateX(6px);color:var(--teal)}

 .numbered-capabilities li:hover,.capability-list li:hover{transform:translateX(6px);background:#ebf4f7;color:var(--teal)}
 .numbered-capabilities li:hover .index{color:var(--teal);border-color:var(--teal)}
 .capability-list li:hover:before{transform:scale(1.4);background:var(--cyan)}

 .hero-pillars a:hover{transform:translateY(-2px);background:#ffffff0f}
 .hero-pillars a:hover>span:last-child,.text-link:hover>span,.industry-link-list a:hover>span:last-child{transform:translate(4px,-4px);color:var(--cyan)}
 .jump-bar a:hover{transform:translateY(-2px);background:var(--pale)}
 .jump-bar a:hover>span{transform:translateY(4px);color:var(--teal)}
 .industry-link-list a:hover{transform:translateX(4px);background:var(--pale)}
 .section-nav a:hover{color:var(--teal);text-decoration:underline;text-underline-offset:4px}
 .section-nav a:hover span{color:var(--teal);transform:translateX(3px)}
 .checkbox-option:hover{background:#f2f6f8}
}

/* Reduced motion preference */
@media(max-width:800px){.connection-art{width:450px;right:-180px;opacity:.16}.geometry-square{width:260px;height:260px;right:100px}.geometry-small{width:120px;height:120px;right:60px}.geometry-ring{width:400px;height:400px;right:0}.page-hero>.connection-art{right:-240px}}

@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .connection-art,.home-ambient-canvas,.site-ambient-canvas{transform:none!important}
 .identity-type{transform:none!important;display:none!important}
 .motion-photo img{transform:none!important;will-change:auto}
 .site-intro,.route-transition{display:none!important}
 .site-header:after{display:none}
 .manifesto-line:after{transform:scaleX(1)}
 .reveal-item,.motion-entered,.hero-enter,.hero-entered{opacity:1!important;transform:none!important;filter:none!important}
 .button:hover,.button:hover span,.service-row:hover,.service-row:hover h3,.industries-grid article:hover,.industries-grid article:hover h2,.why-grid article:hover,.why-grid article:hover h3,.approach-grid article:hover,.approach-grid article:hover h3,.vision-mission article:hover,.vision-mission article:hover h2,.text-link:hover>span,.industry-link-list a:hover,.industry-link-list a:hover>span:last-child,.hero-pillars a:hover,.hero-pillars a:hover>span:last-child,.jump-bar a:hover,.jump-bar a:hover>span,.section-nav a:hover span,.field:focus-within label,.numbered-capabilities li:hover,.numbered-capabilities li:hover .index,.capability-list li:hover,.service-row:hover .service-name .index,.industries-grid article:hover .industry-title .index{transform:none!important;box-shadow:none!important}
}
@media print{
 .connection-art,.home-ambient-canvas,.site-ambient-canvas{display:none}.motion-photo img,.identity-type{transform:none!important}.site-header{box-shadow:none}
}
