/* Motion layer: reference-inspired technical framing in the U-Tech palette. */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.header{position:sticky;top:0;will-change:transform;background:rgba(252,253,253,.94);backdrop-filter:blur(16px)}
.brand img{width:100%;height:auto}
.mobile-menu:not([hidden]){position:fixed;top:74px;left:0;right:0;z-index:29;max-height:calc(100dvh - 74px);overflow:auto}
.page-progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--teal);transform:scaleX(0);transform-origin:left;z-index:90;pointer-events:none}
.motion-toggle{position:fixed;bottom:18px;right:18px;z-index:35;display:flex;align-items:center;gap:9px;border:1px solid #b9d3d5;background:rgba(252,253,253,.92);backdrop-filter:blur(12px);color:var(--teal-dark);padding:9px 12px;font:9px/1.3 var(--mono);box-shadow:0 3px 16px #103e4710}
.motion-toggle i{display:block;width:7px;height:10px;border-inline:2px solid currentColor}
.motion-toggle[aria-pressed=true] i{width:0;height:0;border:5px solid transparent;border-left:7px solid currentColor;border-right:0}
.hero{isolation:isolate}
.hero:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 70% 20%,#00aaa816,transparent 50%);pointer-events:none}
.hero-field{height:270px;overflow:visible}
.hero-field:after{transform:scaleY(var(--line-progress,1));transform-origin:top}
.hero-field:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 54.5%,#009da506 54.5%);z-index:-1}
.halo{width:830px;height:830px;top:-330px;left:calc(54.55% - 415px);background:radial-gradient(ellipse,#009da537,transparent 66%);animation:none}
.motion-on .halo{animation:scene-drift 22s ease-in-out infinite alternate}
.dot-field{width:100%;height:100%;left:0;top:0;background-size:15px 15px;mask-image:radial-gradient(ellipse at 55% 50%,black,transparent 74%);animation:none;opacity:.75}
.hero-target{width:260px;height:260px;position:absolute;left:54.55%;top:50%;transform:translate(-50%,-50%);color:var(--teal-dark);opacity:.9}
.hero-target svg{width:100%;height:100%;overflow:visible}
.target-ring{transform-origin:160px 160px}
.motion-on .ring-outer{animation:orbit 38s linear infinite}
.motion-on .ring-middle{animation:orbit 24s linear infinite reverse}
.motion-on .ring-inner{animation:orbit 18s linear infinite}
.target-core{transform-origin:160px 160px}
.motion-on .target-core{animation:core-pulse 4s ease-in-out infinite}
.target-data{position:absolute;top:50%;left:calc(54.55% + 155px);font:9px/1.9 var(--mono);color:var(--teal-dark);letter-spacing:.05em}
.target-data:before{content:'';display:block;width:50px;height:1px;background:#009da56b;margin-bottom:12px}
.field-cross{z-index:5}
.hero-aside{position:relative}
.hero-aside:before{content:'';position:absolute;top:34%;left:12%;right:12%;height:55px;background:repeating-linear-gradient(90deg,transparent 0 18px,#009da540 18px 19px,transparent 19px 26px);mask-image:linear-gradient(90deg,transparent,black,transparent);transform:scaleY(.6);opacity:.4}
.motion-on .hero-aside:before{animation:signal 6s ease-in-out infinite alternate}
.line-clip{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.line-content{display:block;transform-origin:0 100%}
.word-clip{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.word-content{display:inline-block;transform-origin:0 100%}
.section h2>.word-clip,.statement>.word-clip{color:inherit}
.statement .word-content,.approach-intro h2 .word-content{color:inherit}
.approach-intro h2>.word-clip{color:var(--chapter-ink)}
.section-top{border-top:0}
.section-top:after{content:'';position:absolute;left:0;right:0;top:0;border-top:1px dashed var(--line);transform:scaleX(var(--rule-progress,1));transform-origin:left}
.section-top:before{z-index:1}
.scroll-link span{display:inline-block}
.motion-on .scroll-link span{animation:scroll-nudge 2.5s ease-in-out infinite}
.rotating-label{min-height:42px;align-content:center}
#changing-word:after{content:'';display:inline-block;height:1em;width:1px;background:currentColor;vertical-align:-.1em;margin-left:4px}
.motion-on #changing-word:after{animation:cursor-blink 1s steps(1) infinite}
.partner-strip{overflow:hidden;position:relative}
.partner-window{flex:1;min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,black 5%,black 95%,transparent)}
.partner-names{width:max-content;display:flex;gap:0;justify-content:start;flex-wrap:nowrap}
.partner-run{display:flex;align-items:center;gap:55px;padding-right:55px;flex-shrink:0}
.partner-run span{font-size:18px}
.motion-on .partner-names{animation:partner-run 28s linear infinite}
.partner-window:hover .partner-names{animation-play-state:paused}
.approach{--chapter-ink:#f5fbfb;--chapter-muted:#c6e0e2;--chapter-accent:#67e0db;--chapter-line:#8dd7d64d;isolation:isolate;background:#10262c;color:var(--chapter-ink);padding-block:95px}
.approach-glow{position:absolute;inset:-45% -30%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 60% 45%,#00b7b95c,transparent 55%);transform:translateY(25%)}
.approach .eyebrow,.approach-intro>p,.principles p{color:var(--chapter-muted)}
.approach-intro h2 span,.principles .number{color:var(--chapter-accent)}
.approach .section-top:before{background:transparent;color:var(--chapter-accent)}
.approach .section-top:after,.principles article{border-color:var(--chapter-line)}
.approach-visual{border:1px solid var(--chapter-line);aspect-ratio:1;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;isolation:isolate}
.approach-visual:before,.approach-visual:after{content:'';position:absolute;inset:6%;border:1px dashed var(--chapter-line);border-radius:50%;z-index:-1}
.approach-visual:after{inset:-5%;border:1px solid transparent;border-top-color:var(--chapter-accent);border-bottom-color:var(--chapter-accent)}
.motion-on .approach-visual:after{animation:orbit 24s linear infinite}
.approach-visual>img{width:82%;margin:0;max-height:85%;object-fit:contain}
.approach-visual>.eyebrow{position:absolute;bottom:-45px;white-space:nowrap}
.principles article{transition:opacity .3s}
.principles .number:before{content:'';display:block;width:5px;height:5px;background:var(--chapter-accent);position:absolute;left:0;top:-12px;box-shadow:0 0 16px var(--chapter-accent)}
.button{gap:14px;position:relative;isolation:isolate;overflow:hidden}
.roll-label{display:inline-flex;white-space:pre;position:relative;overflow:hidden;line-height:1.6}
.roll-char{display:inline-block;position:relative;transition:transform .45s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--char-i)*.009s)}
.roll-char:after{content:attr(data-char);position:absolute;left:0;top:100%}
.roll-char:nth-child(even):after{top:-100%}
.motion-on .button:is(:hover,:focus-visible) .roll-char:nth-child(odd){transform:translateY(-100%)}
.motion-on .button:is(:hover,:focus-visible) .roll-char:nth-child(even){transform:translateY(100%)}
.button-arrow{display:block;width:15px;height:17px;overflow:hidden;flex-shrink:0;position:relative;font-size:19px;line-height:17px}
.button-arrow:before,.button-arrow:after{content:'↗';position:absolute;left:0;top:0;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.button-arrow:after{transform:translate(-110%,110%)}
.button:is(:hover,:focus-visible) .button-arrow:before{transform:translate(110%,-110%)}
.button:is(:hover,:focus-visible) .button-arrow:after{transform:translate(0,0)}
.desktop-nav a,.footer nav a,.contact-email{position:relative;width:fit-content}
.desktop-nav a:after,.footer nav a:after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--teal);transform:scaleX(0);transform-origin:right;transition:transform .35s}
.desktop-nav a:hover:after,.footer nav a:hover:after{transform:scaleX(1);transform-origin:left}
.solution-tabs button{position:relative;transition:color .25s,background .25s}
.solution-tabs button:after{content:'';height:3px;background:var(--teal);position:absolute;left:0;right:0;bottom:-3px;transform:scaleX(0);transform-origin:left;transition:transform .45s}
.solution-tabs button[aria-selected=true]{border-color:transparent}
.solution-tabs button[aria-selected=true]:after{transform:scaleX(1)}
.solution-card{isolation:isolate;overflow:hidden;transition:background .35s,color .35s}
.solution-card:before{content:'';position:absolute;inset:0;background:#009da512;transform:translateY(101%);transition:transform .5s cubic-bezier(.22,1,.36,1);z-index:-1}
.solution-card:hover:before{transform:translateY(0)}
.solution-card .solution-icon{transition:transform .5s}
.solution-card:hover .solution-icon{transform:translateY(-5px)}
.card-action b{display:inline-block;transition:transform .4s}
button:hover .card-action b{transform:rotate(90deg)}
.service-row{position:relative;isolation:isolate;overflow:hidden;transition:padding .4s}
.service-row:before{content:'';position:absolute;inset:0;z-index:-1;background:#009da50c;transform:scaleY(0);transform-origin:bottom;transition:transform .45s}
.service-row:hover:before{transform:scaleY(1);transform-origin:top}
.service-row:hover{padding-inline:10px}
.partner-grid>div{overflow:hidden}
.partner-grid img{transition:filter .4s,opacity .4s,transform .6s}
.partner-grid>div:hover img{transform:scale(1.08)}
.project-image>img{height:115%;position:absolute;top:-7.5%;transition:filter .6s}
.project-image:after{content:'↗';position:absolute;right:18px;top:18px;width:38px;height:38px;display:grid;place-items:center;background:var(--paper);font:24px var(--mono);color:var(--teal-dark);transform:translateY(-65px);transition:transform .45s}
.project-card:hover .project-image:after,.project-card:focus-visible .project-image:after{transform:translateY(0)}
.project-card:hover .project-image>img{transform:none}
.project-card{transition:border-color .3s,box-shadow .3s}
.project-card:hover{box-shadow:0 15px 40px #00676d12}
.step-line{--step-progress:0}
.step-line:before{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--teal);transform:scaleX(var(--step-progress));transform-origin:left}
.process-grid article .step-line b{color:#acc9cb;transition:color .4s}
.process-grid article.is-active .step-line b{color:var(--teal-dark)}
.process-grid article.is-active .step-line:after{color:var(--teal-dark)}
.faq-list details,.vendor-list details,.client-more{overflow:hidden}
.faq-list summary:after{content:'+'!important;transition:transform .35s}
.faq-list details[open] summary:after{transform:rotate(45deg)}
.vendor-list summary span{transition:transform .35s}
.vendor-list details[open] summary span{transform:rotate(45deg)}
.intro-screen{position:fixed;inset:0;z-index:95;background:var(--paper);pointer-events:none;display:grid;place-items:center;overflow:hidden}
.intro-screen .intro-target{width:min(40vw,320px);height:min(40vw,320px);color:var(--teal)}
.intro-screen .intro-target svg{width:100%;height:100%}
.intro-axis{position:absolute;background:#009da544}
.intro-x{top:50%;left:0;width:100%;height:1px;transform:scaleX(0)}
.intro-y{left:50%;top:0;width:1px;height:100%;transform:scaleY(0)}
.intro-word{position:absolute;top:calc(50% + 190px);left:0;right:0;text-align:center;font:11px var(--mono);letter-spacing:.25em;color:var(--teal-dark)}
.intro-skip{position:absolute;bottom:25px;right:25px;pointer-events:auto;border:0;background:none;color:var(--teal-dark);font:10px var(--mono);padding:12px}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition:none!important}
.motion-paused .step-line b{color:var(--teal-dark)}
@keyframes scene-drift{0%{transform:translate(-13%,-4%) scale(.85)}50%{transform:translate(14%,15%) scale(1.15)}100%{transform:translate(38%,-8%) scale(.95)}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes core-pulse{50%{opacity:.35;transform:scale(.75)}}
@keyframes signal{to{transform:scaleY(1.4);opacity:.8}}
@keyframes scroll-nudge{0%,70%,100%{transform:translateY(0)}85%{transform:translateY(7px)}}
@keyframes cursor-blink{50%{opacity:0}}
@keyframes partner-run{to{transform:translateX(-50%)}}
@media(max-width:1100px){.hero-target{left:58.33%}.target-data{left:calc(58.33% + 145px);font-size:8px}.button{gap:10px}}
@media(max-width:760px){
 .header{min-height:74px}.hero-field{height:225px}.hero-target{left:50%;width:205px;height:205px}.target-data{display:none}.hero-field:before{background:none}.halo{left:calc(50% - 415px)}
 .hero-actions{flex-wrap:nowrap}.hero-actions .button{gap:7px;padding-inline:11px}.hero-actions .button-arrow{width:13px;font-size:16px}.hero-aside:before{display:none}
 .partner-strip{padding-block:24px}.partner-run{gap:36px;padding-right:36px}.partner-run span{font-size:16px}.partner-strip>.eyebrow{margin-bottom:20px}.partner-window{width:100%}
 .approach{padding-block:60px 75px}.approach-visual{width:265px;margin-bottom:28px}.approach-visual>.eyebrow{font-size:8px;bottom:-32px}
 .approach-intro h2{font-size:25px}.process-grid article:before{content:'';position:absolute;bottom:-1px;left:0;height:2px;width:100%;background:var(--teal);transform:scaleX(var(--step-progress,0));transform-origin:left}.step-line:before{display:none}
 .intro-screen .intro-target{width:230px;height:230px}.intro-word{top:calc(50% + 155px);font-size:9px}.motion-toggle{right:12px;bottom:12px;padding:9px;font-size:8px}.motion-toggle span{display:none}.motion-toggle i{height:9px}.footer{padding-bottom:55px}
}
@media(prefers-reduced-motion:reduce){.intro-screen{display:none!important}.halo,.dot-field,.partner-names,.target-ring,.target-core{animation:none!important}.header{will-change:auto}.motion-on .button:is(:hover,:focus-visible) .roll-char{transform:none!important}.motion-toggle{display:none}}
