:root{--ink:#0b1c2b;--blue:#1266ba;--line:#c7d0d6;--paper:#f2f3f0;--white:#fafbf9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--ink);color:var(--ink);font:16px/1.5 Arial,Helvetica,sans-serif}a{color:inherit}a:focus-visible,summary:focus-visible{outline:3px solid #4c9bfa;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.06em}.shell{width:min(calc(100% - 8vw),1480px);margin:auto}.site-header{background:var(--ink);color:#f4f8fd;border-bottom:1px solid #344758;position:relative;z-index:10}.header-inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:40px}.brand{display:block;width:255px;line-height:0;flex:none}.brand img{width:100%;height:auto}.site-header nav{display:flex;align-items:center;gap:38px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.site-header nav a{text-decoration:none}.site-header nav a:hover{color:#7fbcfa}.nav-contact{border-bottom:1px solid #84bbec;padding:9px 0}.nav-contact span{font-size:19px;margin-left:11px;color:#83bfff}.kicker{font-size:11px;line-height:1.5;letter-spacing:.17em;font-weight:800;text-transform:uppercase}.hero{background:var(--paper)}.hero-copy{padding-top:96px;padding-bottom:65px}.hero .kicker{margin-bottom:41px;color:#335875}.hero .kicker span{color:#2277ca;padding:0 8px}.hero h1{font-size:clamp(68px,8.2vw,148px);line-height:.95;margin:0 0 54px;font-weight:800;max-width:1400px}.hero h1 em{font-style:normal;color:var(--blue)}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:50px}.hero-bottom p{font-size:clamp(18px,1.45vw,23px);max-width:660px;line-height:1.48;margin:0}.text-link{text-decoration:none;border-bottom:2px solid var(--ink);padding:0 0 10px;display:inline-flex;gap:60px;white-space:nowrap;font-weight:800}.text-link span{font-size:23px;color:var(--blue);line-height:1}.hero-visual{position:relative;height:clamp(360px,44vw,650px);overflow:hidden;background:#17293a}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center 55%}.image-tag{position:absolute;bottom:0;left:4vw;display:flex;gap:45px;background:var(--blue);color:#fff;padding:17px 23px;font-size:11px;letter-spacing:.16em;font-weight:800}.hero-index{padding:16px 4vw;display:flex;justify-content:space-between;background:var(--paper);font-size:10px;letter-spacing:.19em;font-weight:800}.trace-band{height:75px;background:var(--blue);color:#fff;display:flex;align-items:center;gap:28px;padding:0 4vw;font-size:11px;font-weight:800;letter-spacing:.18em}.trace-band i{height:1px;background:rgba(255,255,255,.52);flex:1;position:relative}.trace-band b{width:15px;height:15px;border:2px solid white;transform:rotate(45deg)}.services{background:#f8f9f7;padding:125px 0 142px}.services-head{display:grid;grid-template-columns:19% 49% 32%;align-items:start;gap:0;margin-bottom:84px}.services .kicker{color:var(--blue);margin:16px 0}.services h2,.method h2{font-size:clamp(55px,5.7vw,100px);line-height:1.01;margin:0}.services h2 em,.method h2 em{font-style:normal;color:var(--blue)}.services-head>p:last-child{font-size:18px;line-height:1.58;color:#4b606e;margin:15px 0 0;padding-left:30px}.services-list{border-top:2px solid var(--ink)}.services-list article{display:grid;grid-template-columns:10% 37% 1fr 30px;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:40px 5px;transition:background .2s,padding .2s}.services-list article:hover{background:#e9f2f8;padding-left:22px}.service-num{font-size:13px;color:var(--blue);font-weight:800;align-self:start;margin-top:10px}.services-list h3{font-size:clamp(30px,3vw,50px);line-height:1.06;margin:0}.services-list p{color:#536574;font-size:17px;line-height:1.55;max-width:440px;margin:0}.service-mark{font-size:27px;color:var(--blue);align-self:start}.profile{position:relative;overflow:hidden;background:#0d2132;color:#f4f7fa;padding:125px 0 150px}.profile-grid{display:grid;grid-template-columns:19% 1fr auto;gap:20px;position:relative;z-index:1}.profile .kicker{color:#72b5f4;padding-top:20px}.profile h2{font-size:clamp(66px,7.4vw,120px);line-height:.98;margin:0 0 50px}.profile h2 em{font-style:normal;color:#67b2f4}.profile-grid>div p{max-width:740px;color:#c7d6e3;font-size:20px;line-height:1.55}.profile-coordinate{align-self:end;color:#80a0b7;font-size:10px;line-height:1.7;letter-spacing:.14em;font-weight:800;padding-bottom:8px}.profile-stitch{position:absolute;right:-4vw;bottom:34px;width:70vw;height:200px;border-top:2px dashed rgba(79,156,224,.36);transform:rotate(-17deg);pointer-events:none}.method{background:#dfe9ed;padding:122px 0 132px}.method-head{display:grid;grid-template-columns:19% 1fr;margin-bottom:105px}.method .kicker{color:#165f9c;padding-top:18px}.method-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid #456a82;position:relative}.method-steps:after{content:"";position:absolute;top:-7px;left:0;right:0;border-top:2px dashed #2478ba;opacity:.65}.method-steps>div{padding:37px 24px 0 0;position:relative}.method-steps>div:before{content:"";position:absolute;top:-10px;left:0;width:15px;height:15px;background:var(--blue);transform:rotate(45deg);z-index:1}.method-steps span{color:var(--blue);font-size:12px;font-weight:800}.method-steps h3{font-size:clamp(25px,2.5vw,38px);margin:16px 0 13px}.method-steps p{color:#4b626f;max-width:260px;font-size:16px}.contact{background:var(--blue);color:white;padding:126px 0 98px}.contact .kicker{color:#c5e2ff;margin-bottom:48px}.contact h2{font-size:clamp(70px,8.2vw,132px);line-height:.96;margin:0 0 36px}.contact h2 em{font-style:normal;color:#b5ddff}.contact p:not(.kicker){font-size:19px;max-width:600px;color:#e7f2fc;margin-bottom:65px}.contact-email{border-top:1px solid rgba(255,255,255,.65);border-bottom:1px solid rgba(255,255,255,.65);padding:22px 0;display:flex;justify-content:space-between;gap:20px;text-decoration:none;font-size:clamp(27px,5vw,75px);font-weight:800;letter-spacing:-.055em}.contact-email span:first-child{overflow-wrap:anywhere}.contact-email span:last-child{font-weight:400}.contact-email:hover{color:#cee9ff}.contact-place{font-size:11px;letter-spacing:.18em;font-weight:800;margin-top:30px}.site-footer{background:var(--ink);color:#adc4d7;padding:26px 0 44px}.footrow{display:flex;justify-content:space-between;gap:25px;font-size:14px}.legal{display:flex;gap:30px}.legal a{text-decoration:none}.legal a:hover{text-decoration:underline}.legaltext{width:min(calc(100% - 8vw),900px);margin:25px auto 0;color:#d3dfeb;font-size:15px;line-height:1.65}.legaltext summary{cursor:pointer;font-weight:700;color:white}.legaltext h3{font-size:19px;margin:28px 0 10px}.legaltext a{overflow-wrap:anywhere}
@media(max-width:1000px){.services-head{grid-template-columns:25% 75%}.services-head>p:last-child{grid-column:2;padding:20px 0 0;max-width:650px}.services-list article{grid-template-columns:7% 43% 1fr 20px}.profile-grid{grid-template-columns:24% 1fr}.profile-coordinate{grid-column:2}.method-head{grid-template-columns:25% 1fr}}
@media(max-width:700px){.shell{width:calc(100% - 38px)}.header-inner{min-height:68px;gap:12px}.brand{width:180px}.site-header nav{gap:0}.site-header nav a:not(.nav-contact){display:none}.nav-contact{font-size:11px}.hero-copy{padding-top:63px;padding-bottom:46px}.hero .kicker{font-size:9px;letter-spacing:.1em;margin-bottom:30px}.hero .kicker span{padding:0 3px}.hero h1{font-size:clamp(52px,10.4vw,75px);margin-bottom:35px}.hero-bottom{display:block}.hero-bottom p{font-size:17px}.text-link{margin-top:30px;gap:30px}.hero-visual{height:370px}.image-tag{left:19px;padding:12px 15px;font-size:9px}.hero-index{padding:13px 19px;font-size:8px}.trace-band{height:55px;gap:13px;font-size:8px;padding:0 19px}.services{padding:76px 0 90px}.services-head{display:block;margin-bottom:47px}.services h2,.method h2{font-size:clamp(48px,10vw,69px)}.services-head>p:last-child{padding:0;font-size:17px;margin-top:24px}.services-list article{grid-template-columns:35px 1fr 20px;gap:0;padding:29px 0}.services-list article:hover{padding-left:0}.service-num{grid-row:1/3}.services-list h3{font-size:30px}.services-list p{grid-column:2;font-size:15px;margin-top:14px}.service-mark{grid-column:3;grid-row:1}.profile{padding:78px 0 95px}.profile-grid{display:block}.profile h2{font-size:clamp(56px,10.6vw,78px);margin:28px 0 32px}.profile-grid>div p{font-size:17px}.profile-coordinate{display:block;margin-top:40px}.method{padding:80px 0 90px}.method-head{display:block;margin-bottom:64px}.method h2{margin-top:28px}.method-steps{grid-template-columns:1fr 1fr;row-gap:30px}.method-steps>div{padding:23px 15px 0 0}.method-steps h3{font-size:25px}.method-steps p{font-size:14px}.contact{padding:83px 0 75px}.contact .kicker{margin-bottom:31px}.contact h2{font-size:clamp(57px,11vw,86px)}.contact p:not(.kicker){font-size:17px;margin-bottom:45px}.contact-email{font-size:clamp(24px,5vw,39px)}.footrow{flex-direction:column;gap:15px}.legaltext{width:calc(100% - 38px)}}
@media(max-width:380px){.brand{width:152px}.hero h1{font-size:49px}.method-steps{grid-template-columns:1fr}.contact-email{font-size:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Editorial material system — restrained image rhythm and continuous stitch markers. */
.site-header .brand{width:268px}
.services{padding-bottom:105px}
.services-list .service-num{display:flex;flex-direction:column;gap:16px;white-space:nowrap}
.services-list .service-num strong{font-size:10px;letter-spacing:.13em;color:#526b7b;writing-mode:vertical-rl;transform:rotate(180deg)}
.material-interlude{height:clamp(310px,36vw,570px);position:relative;overflow:hidden;background:#0c1c2b}
.material-interlude img{width:100%;height:100%;object-fit:cover;object-position:center 47%;display:block}
.material-interlude-label{position:absolute;left:4vw;bottom:0;background:#f8f9f7;color:#0b1c2b;display:flex;gap:28px;padding:17px 24px;font-size:11px;font-weight:800;letter-spacing:.16em}
.material-interlude-label span{color:#1266ba}
.method{background:#e3edf0}
.profile{padding-bottom:78px}
.profile-stitch{bottom:17%;width:85vw;opacity:.9}
.profile-media{position:relative;height:clamp(280px,32vw,480px);margin-top:85px;overflow:hidden;z-index:1}
.profile-media img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 52%}
.profile-media span{position:absolute;bottom:0;right:0;background:#0d2132;color:#d4e5f2;padding:14px 20px;font-size:10px;letter-spacing:.16em;font-weight:800}
.contact{padding-top:115px}
@media(max-width:1000px){.site-header .brand{width:220px}.services-list .service-num strong{font-size:9px}}
@media(max-width:700px){.site-header .brand{width:180px}.services{padding-bottom:76px}.services-list .service-num{gap:11px}.services-list .service-num strong{font-size:8px}.material-interlude{height:320px}.material-interlude-label{left:19px;padding:12px 15px;font-size:9px}.profile{padding-bottom:48px}.profile-media{margin-top:50px;height:285px}.contact-email{font-size:clamp(21px,4.35vw,33px)}.contact-email span:last-child{flex:none}}
@media(max-width:380px){.site-header .brand{width:152px}.contact-email{font-size:20px}}

/* Consistent geometric arrows instead of platform-dependent Unicode emoji. */
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.icon-arrow{display:inline-block;width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:square;stroke-linejoin:miter;vertical-align:middle}
.nav-contact .icon-arrow{color:#83bfff;margin-left:11px;width:17px;height:17px}
.text-link .icon-arrow{color:#1266ba;width:23px;height:23px}
.service-mark .icon-arrow{width:23px;height:23px}
.contact-email .icon-arrow{width:clamp(23px,3vw,42px);height:clamp(23px,3vw,42px)}
.hero-meta .meta-primary,.hero-meta .meta-secondary{padding:0;color:#335875}
.hero-meta .meta-separator{padding:0 8px;color:#2277ca}
@media(max-width:700px){
 .hero-meta{display:flex;flex-direction:column;gap:5px}
 .hero-meta .meta-separator{display:none}
 .hero-meta .meta-secondary{color:#1266ba;font-size:9px}
 .method-steps{grid-template-columns:1fr;row-gap:0;border-top:0;padding-left:38px}
 .method-steps:after{display:none}
 .method-steps>div{padding:3px 0 32px}
 .method-steps>div:last-child{padding-bottom:0}
 .method-steps>div:before{top:5px;left:-38px}
 .method-steps>div:not(:last-child):after{content:"";position:absolute;top:19px;bottom:-6px;left:-31px;border-left:2px dashed #2478ba}
 .method-steps h3{margin:9px 0 5px}
 .method-steps p{max-width:100%;margin-bottom:0}
 .contact h2{font-size:clamp(36px,10.4vw,65px);letter-spacing:-.065em}
 .contact h2 em{white-space:nowrap}
}
@media(max-width:380px){.contact h2{font-size:clamp(32px,10vw,38px)}}

/* Content rows are informational, so they have no link affordance. */
.services-list article{grid-template-columns:10% 37% 1fr;transition:none}
.services-list article:hover{background:transparent;padding-left:5px}
.profile-stitch{display:none}
.legaltext summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px}
.legaltext summary::-webkit-details-marker{display:none}
.legaltext summary::after{content:"";width:8px;height:8px;flex:none;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);transition:transform .2s}
.legaltext[open] summary::after{transform:rotate(225deg)}
@media(max-width:1000px){.services-list article{grid-template-columns:7% 43% 1fr}}
@media(max-width:700px){
 .services-list article{grid-template-columns:35px 1fr}
 .services-list article:hover{padding-left:0}
 .method-steps{padding-left:30px}
 .method-steps>div{padding-bottom:29px}
 .method-steps>div:before{left:-30px}
 .method-steps>div:not(:last-child):after{left:-23px}
}

/* Desktop: keep the service statement in two lines and align the profile location with its text. */
@media(min-width:1001px){
 .services-head{grid-template-columns:19% 57% 24%}
 .services h2{font-size:clamp(55px,5.1vw,88px)}
 .services-head>p:last-child{padding-left:20px}
 .services-list p{font-size:18px}
 .method{padding-bottom:112px}
 .profile-grid{grid-template-columns:19% 1fr}
 .profile-grid>div p{margin-bottom:0}
 .profile-coordinate{grid-column:2;grid-row:2;align-self:start;margin-top:24px;padding-bottom:0}
}
