.technical{background-color:#f5f7f4;background-image:linear-gradient(#233e3710 1px,transparent 1px),linear-gradient(90deg,#233e3710 1px,transparent 1px);background-size:28px 28px;color:#172129;padding:85px 0 95px}.technical .eyebrow{color:#52723b}.technical .eyebrow:before{background:#52723b}.tech-heading{max-width:880px;margin-bottom:45px}.tech-heading h2{font-size:clamp(30px,3.6vw,46px);line-height:1.2;letter-spacing:-.04em;margin:18px 0}.tech-heading p{color:#586778;font-size:17px;line-height:1.8;margin:0}.technical .grid-cards{gap:22px}.technical .service{background:#ffffffed;border:1px solid #d3dbdf;border-radius:15px;padding:26px 25px 30px;min-height:300px}.technical .service:hover{border-color:#7c9e8f;transform:translateY(-3px)}.tech-diagram{height:112px;display:flex;justify-content:center;align-items:center;color:#14839a}.tech-diagram svg{width:132px;height:112px}.technical .service h3{font-size:23px;letter-spacing:-.035em;margin:20px 0 12px;color:#172129}.technical .service p{color:#586778;font-size:14px;line-height:1.85}@media(max-width:740px){.technical{padding:60px 0}.technical .grid-cards{gap:14px}.technical .service{padding:20px;min-height:280px}.tech-heading p{font-size:15px}}.tech-diagram{color:#17243a}
.tech-diagram svg{width:148px;max-width:100%;overflow:visible;stroke-width:2.25}
.tech-diagram .tech-nodes{fill:#fff;stroke:#16877e;stroke-width:1.45}
.tech-diagram .tech-nodes rect{rx:1px}
.tech-diagram .tech-nodes circle{stroke-width:1.6}
.tech-diagram .tech-scan{stroke-width:2.25}
.tech-diagram .tech-trace{stroke-width:3}
.tech-diagram .tech-cutout{fill:#e6f5ef}
.tech-diagram .tech-grid{stroke-dasharray:3 4}
.tech-diagram .tech-accent{stroke:#16877e}
.tech-diagram .tech-ghost{stroke:#388e88;stroke-width:1.35;opacity:.5;stroke-dasharray:3 4}
.tech-skew,.tech-cutout,.tech-stack{transform-box:fill-box;transform-origin:center}
@media(prefers-reduced-motion:no-preference){
 .tech-scan{animation:tech-scan 3.4.4s ease-in-out infinite}
 .tech-skew{animation:tech-align 4.4s ease-in-out infinite}
 .tech-trace{stroke-dasharray:1;animation:tech-trace 4.4s ease-in-out infinite}
 .tech-crack,.tech-grid{animation:tech-fade 4.4s ease-in-out infinite}
 .tech-cutout{animation:tech-star-spin 4.4s linear infinite}
 .tech-stack{animation:tech-stack 2.8s linear infinite}
 .tech-stack-back{animation-delay:-1.4s}
}
@keyframes tech-scan{0%,100%{transform:translateY(-27px);opacity:.65}50%{transform:translateY(27px);opacity:1}}
@keyframes tech-align{0%,100%{transform:translateX(-8px) skewY(-10deg);opacity:.8}55%,75%{transform:translateX(4px) skewY(0) scale(.82,.86);opacity:.2}}
@keyframes tech-trace{0%,100%{stroke-dashoffset:1;opacity:.15}48%,78%{stroke-dashoffset:0;opacity:1}}
@keyframes tech-fade{0%,100%{opacity:.85}55%,78%{opacity:.05}}
@keyframes tech-star-spin{to{transform:rotate(360deg)}}
@keyframes tech-stack{0%{transform:translate(-10px,-7px);opacity:0}15%,85%{opacity:.55}100%{transform:translate(10px,7px);opacity:0}}

@media(prefers-reduced-motion:no-preference){
 .tech-scan{animation-duration:2.2s}
 .tech-diagram:has(.tech-scan) .tech-nodes{animation:tech-lock 2.2s ease-in-out infinite}
 .tech-crack{animation:tech-fade 2.8s ease-in-out infinite}
 .tech-diagram:has(.tech-crack) .tech-trace{animation-duration:2.8s}
 .tech-diagram:has(.tech-crack) .tech-nodes{animation:tech-lock 2.8s ease-in-out infinite}
 .tech-detail-base{animation:tech-detail 3s ease-in-out infinite}
 .tech-diagram:has(.tech-detail-base) .tech-trace{animation-duration:3s}
 .tech-grid{animation:tech-grid-pulse 2.2s ease-in-out infinite}
}
@keyframes tech-lock{0%,100%{opacity:.35}45%,75%{opacity:1}}
@keyframes tech-detail{0%,100%{opacity:.2}50%,78%{opacity:1}}
@keyframes tech-grid-pulse{0%,100%{opacity:.18}50%{opacity:.8}}.tech-select{stroke-dasharray:4 4;transform-origin:center;transform-box:fill-box}

@media(prefers-reduced-motion:no-preference){
 .tech-select{animation:tech-frame-grow 4s ease-in-out infinite}
 .tech-scan{animation:tech-scan-pass 4s ease-in-out infinite}
 .tech-curve-line{animation:tech-curve-flex 3.5s ease-in-out infinite}
 .tech-curve-guides{animation:tech-guide-flex 3.5s ease-in-out infinite}
 .tech-curve-points{animation:tech-point-flex 3.5s ease-in-out infinite}
}
@keyframes tech-frame-grow{0%{transform:scale(.18);opacity:0}25%,85%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes tech-scan-pass{0%,25%{transform:translateY(-27px);opacity:0}32%{opacity:1}65%{transform:translateY(27px);opacity:1}73%,100%{transform:translateY(27px);opacity:0}}
@keyframes tech-curve-flex{0%,100%{d:path("M22 78 C42 38 90 38 110 78")}50%{d:path("M22 78 C42 6 90 6 110 78")}}
@keyframes tech-guide-flex{0%,100%{d:path("M22 78 L42 48 L90 48 L110 78")}50%{d:path("M22 78 L42 24 L90 24 L110 78")}}
@keyframes tech-point-flex{0%,100%{transform:translateY(12px)}50%{transform:translateY(-12px)}}

.tech-repair-guide,.tech-repair-seam{opacity:0}
@media(prefers-reduced-motion:no-preference){
 .tech-diagram .tech-repair-guide{opacity:.65}
 .tech-repair-draw{animation:tech-repair-draw 4s ease-in-out infinite}
 .tech-repair-seam{animation:tech-repair-seam 4s ease-in-out infinite}
}
@keyframes tech-repair-draw{0%,18%,100%{clip-path:inset(0 100% 0 0)}62%,88%{clip-path:inset(0)}89%{clip-path:inset(0 100% 0 0)}}
@keyframes tech-repair-seam{0%,20%,100%{opacity:.8}55%,88%{opacity:0}}