/* Taiwu v3: a coordinated infrastructure practice. */
.services-disclosure{position:relative;color:#526f7e}.services-toggle{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:14px 0;font-size:12px;white-space:nowrap}.services-toggle::-webkit-details-marker{display:none}.services-toggle:after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .25s}.services-disclosure[open] .services-toggle:after{transform:rotate(225deg)}.services-toggle:focus-visible{outline:2px solid #087b92;outline-offset:5px;border-radius:3px}.services-toggle[aria-current],.services-disclosure[open] .services-toggle{color:#087b92}.services-menu{position:absolute;top:100%;left:-24px;width:340px;padding:12px;background:#fffffff7;border:1px solid #dce8ee;border-radius:16px;box-shadow:0 20px 60px #204f671a;backdrop-filter:blur(20px)}.services-menu a{display:block;padding:12px 14px;border-radius:9px;font-size:13px;line-height:1.45;color:#365969;white-space:normal}.services-menu a:hover,.services-menu a:focus-visible,.services-menu a[aria-current]{background:#edf7fa;color:#086e84}.services-menu .services-all{font-size:11px;letter-spacing:.08em;color:#087b92;border-bottom:1px solid #e0edf1;margin-bottom:5px;border-radius:0}.nav-contact{align-items:center;justify-content:center}.nav-label{line-height:1.2}.v3-hero{position:relative;background:radial-gradient(ellipse at 88% 42%,#e1f4f7,transparent 51%),linear-gradient(115deg,#fff,#f6fafc);border-bottom:1px solid #e1edf1;overflow:hidden}.v3-hero:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#9ec5cf 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,transparent 45%,#000);opacity:.3}.v3-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:15px;align-items:center;padding-top:76px;padding-bottom:55px;position:relative}.v3-hero h1{font-size:clamp(46px,5.1vw,72px);line-height:1.07;letter-spacing:-.065em;max-width:650px}.v3-hero h1 span{color:#087b92}.v3-hero .lead{font-size:16px;max-width:540px;margin-top:25px}.v3-hero .actions{justify-content:flex-start;flex-wrap:wrap;gap:12px}.v3-hero .eyebrow{font-size:9px}.service-illustration{position:relative;min-width:0}.service-illustration svg{width:100%;height:auto;display:block;overflow:visible}.service-illustration .flow-line{stroke-dasharray:12 22;animation:v3-flow 5s linear infinite;animation-play-state:paused}.service-illustration .status-dot{animation:v3-status 4s ease-in-out infinite;animation-play-state:paused}.service-illustration.art-visible .flow-line,.service-illustration.art-visible .status-dot{animation-play-state:running}.motion-paused .service-illustration .flow-line,.motion-paused .service-illustration .status-dot{animation-play-state:paused}.art-caption{font-size:9px;letter-spacing:.08em;color:#617e8d;text-align:center;margin-top:-10px}.v3-services{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}.v3-service-card{grid-column:span 2;padding:0!important;overflow:hidden;display:flex;background:linear-gradient(135deg,#fff,#f9fcfd)}.v3-service-card:nth-child(4),.v3-service-card:nth-child(5){grid-column:span 3}.v3-service-card .service-illustration{height:210px;background:radial-gradient(ellipse,#eaf6f9,transparent 70%);border-bottom:1px solid #e8f0f3;padding:0 12px}.v3-service-card .service-illustration svg{height:100%;width:100%;object-fit:contain}.v3-card-body{padding:27px;display:flex;flex:1;flex-direction:column}.v3-card-body h3{min-height:0;font-size:23px;line-height:1.19;transform-origin:left center}.v3-card-body p{font-size:13px;margin-top:17px;line-height:1.75}.v3-card-link{display:flex;align-items:center;justify-content:space-between;gap:18px;color:#087b92;font-size:11px;margin-top:auto;padding-top:26px}.v3-service-card:nth-child(4) .service-illustration,.v3-service-card:nth-child(5) .service-illustration{height:240px}.v3-solution-band{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:65px;padding:40px 0}.v3-solution-band .lead{font-size:17px}.v3-solution-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.v3-solution-links a{padding:8px 14px;border:1px solid #cddfe7;border-radius:25px;font-size:11px;color:#21647b;background:#fff}.v3-process{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:45px}.v3-process article{border-top:1px solid #d4e4eb;padding-top:24px}.v3-process .step-number{font-size:11px;color:#087b92;letter-spacing:.1em;margin-bottom:25px;display:block}.v3-process h3{font-size:23px}.v3-process p{font-size:14px;line-height:1.75;margin-top:17px}.v3-service-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:35px;align-items:center;padding-top:65px;padding-bottom:60px}.v3-service-hero h1{font-size:clamp(42px,4.5vw,64px);line-height:1.1;letter-spacing:-.058em}.v3-service-hero .lead{font-size:17px}.v3-service-hero .actions{justify-content:flex-start;margin-top:28px}.v3-breadcrumb{font-size:11px;color:#507988;margin-bottom:26px;display:inline-block}.v3-support{padding-top:65px}.v3-deliverables{display:grid;grid-template-columns:1fr 1fr;gap:14px;list-style:none;padding:0;margin:28px 0 0}.v3-deliverables li{padding:18px 20px;background:#f3f9fb;border:1px solid #dfebef;border-radius:10px;font-size:14px;color:#355d6d}.v3-scope{padding:22px 25px;border-left:3px solid #58b4c3;background:#f3f9fb;font-size:13px;color:#526e7d;margin-top:30px}.v3-related{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.v3-related a{font-size:12px;color:#087b92;text-decoration:underline;text-underline-offset:5px}.v3-about-visual{max-width:570px;margin:auto}.v3-contact-fields{border:1px solid #dce7ed;border-radius:12px;padding:8px 20px 22px;margin:25px 0}.v3-contact-fields legend{font-size:12px;padding:0 8px;color:#087b92}.v3-contact-fields label{font-size:12px}.v3-contact-fields input{font-size:13px}.v3-contact-note{font-size:12px;color:#526e7d}.v3-contact-page .page-hero h1{max-width:820px}.v3-contact-page .contact-layout{grid-template-columns:.8fr 1.5fr;gap:65px}.v3-market-links{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.v3-market-links article{padding:30px;border:1px solid #dce8ed;border-radius:15px;background:#fff}.v3-market-links h3{font-size:26px}.v3-market-links p{font-size:14px;margin-top:18px}.v3-market-links .service-illustration{height:175px;margin-bottom:18px}.v3-market-links svg{height:100%}.footer-top{grid-template-columns:1.5fr 1.3fr 1fr}.footer-service-links a{font-size:11px!important}.v3-service-card:focus-visible{outline-offset:5px}.v3-service-card:focus-visible h3{color:#087b92}.v3-hero .button,.v3-service-hero .button{font-size:11px}.v3-service-card:hover{transform:none}
@keyframes v3-flow{to{stroke-dashoffset:-136}}@keyframes v3-status{0%,100%{opacity:.45}50%{opacity:1}}
@media(max-width:1100px){.v3-service-card .service-illustration{height:175px}.v3-card-body{padding:23px}.v3-card-body h3{font-size:21px}.v3-hero h1{font-size:56px}.v3-solution-band{gap:35px}.v3-service-hero{gap:15px}.v3-contact-page .contact-layout{gap:35px}}
@media(max-width:850px){.services-disclosure{width:100%}.services-toggle{font-size:14px;padding:13px 0;justify-content:space-between}.services-menu{position:static;width:100%;padding:7px 10px;border-radius:12px;box-shadow:none;background:#f4f9fb;margin:5px 0 12px}.services-menu a{padding:12px 9px;font-size:13px}.v3-hero-grid{grid-template-columns:1fr;padding-top:55px;gap:25px}.v3-hero h1{font-size:58px;max-width:650px}.v3-hero .service-illustration{max-width:570px;margin:auto;width:100%}.v3-services{grid-template-columns:1fr 1fr}.v3-service-card,.v3-service-card:nth-child(4),.v3-service-card:nth-child(5){grid-column:auto}.v3-service-card:last-child{grid-column:1/-1}.v3-service-card .service-illustration,.v3-service-card:nth-child(4) .service-illustration,.v3-service-card:nth-child(5) .service-illustration{height:220px}.v3-process{grid-template-columns:1fr 1fr}.v3-service-hero{grid-template-columns:1fr;padding-top:45px;gap:25px}.v3-service-hero .service-illustration{max-width:580px;margin:auto;width:100%}.v3-service-hero h1{max-width:750px;font-size:55px}.v3-market-links{grid-template-columns:1fr}.v3-market-links article{display:block}.v3-contact-page .contact-layout{grid-template-columns:1fr}.v3-contact-page aside{max-width:620px}.v3-solution-band{grid-template-columns:1fr;gap:30px}.v3-solution-band .service-illustration{max-width:580px;margin:auto}.v3-contact-page #navigation{max-height:calc(100dvh - 72px);overflow-y:auto}#navigation.open{max-height:calc(100dvh - 72px);overflow-y:auto}}
@media(max-width:600px){.v3-hero-grid{padding-top:42px;padding-bottom:35px;gap:20px}.v3-hero h1{font-size:46px;line-height:1.08}.v3-hero .lead{font-size:15px}.v3-hero .eyebrow{font-size:8px;letter-spacing:.12em}.v3-hero .actions{flex-direction:column;align-items:flex-start}.v3-hero .button{font-size:11px}.v3-hero .service-illustration{margin:10px -10px 0;width:calc(100% + 20px);max-width:none}.v3-services{grid-template-columns:1fr;gap:22px}.v3-service-card:last-child{grid-column:auto}.v3-card-body{padding:27px}.v3-card-body h3{font-size:26px;line-height:1.19}.v3-card-body p{font-size:14px}.v3-service-card .service-illustration,.v3-service-card:nth-child(4) .service-illustration,.v3-service-card:nth-child(5) .service-illustration{height:220px}.v3-process{grid-template-columns:1fr;gap:24px}.v3-process .step-number{margin-bottom:15px}.v3-service-hero{padding-top:35px;padding-bottom:35px}.v3-service-hero h1{font-size:41px;line-height:1.11}.v3-service-hero .lead{font-size:16px}.v3-deliverables{grid-template-columns:1fr}.v3-support{padding-top:45px}.v3-solution-band{padding:15px 0}.v3-market-links article{padding:27px}.v3-contact-fields{padding:7px 15px 18px}.footer-top{grid-template-columns:1fr 1fr}.footer-top>div:first-child{grid-column:1/-1}.footer-service-links a{font-size:11px!important}.v3-contact-page .contact-layout{gap:32px}.art-caption{font-size:8px;margin-top:0}.services-menu a{font-size:12px}}
@media(prefers-reduced-motion:reduce){.service-illustration .flow-line,.service-illustration .status-dot{animation:none!important;opacity:1}.services-toggle:after{transition:none}}
/* Text links: deliberate feedback without moving surrounding layout or body copy. */
footer a:not(.brand),.text-link{position:relative;transform-origin:left center;transition:color .3s ease,text-shadow .3s ease,transform .35s cubic-bezier(.22,.68,.2,1),text-decoration-color .3s ease;text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:5px;text-decoration-thickness:1px}
footer a.text-pointer-hover,footer a:not(.brand):focus-visible,.text-link.text-pointer-hover,.text-link:focus-visible{color:#08657a;text-shadow:0 0 12px #139ab65c;text-decoration-color:#60b6c8;transform:translateX(3px)}
footer a:not(.brand):active,.text-link:active{color:#08657a;text-shadow:0 0 12px #139ab65c;text-decoration-color:#60b6c8}
@media(any-hover:hover) and (any-pointer:fine){html:not(.motion-ready) footer a:not(.brand):hover,html:not(.motion-ready) .text-link:hover{color:#08657a;text-shadow:0 0 12px #139ab65c;text-decoration-color:#60b6c8;transform:translateX(3px)}}
@media(prefers-reduced-motion:reduce){footer a:not(.brand),.text-link{transition:none!important;transform:none!important}}
