@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');

:root{color-scheme:light;--paper:#f7f9fc;--bluewash:#eaf1f8;--ink:#182d46;--muted:#52647b;--blue:#315e9c;--line:#d9e3ed;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #315e9c;outline-offset:6px}svg{display:block}p,h1,h2,h3{margin:0}p{line-height:1.65}h1,h2,h3{font-weight:500}header,main,footer{max-width:1240px;margin:auto}.page{padding:0 64px;background:linear-gradient(180deg,var(--bluewash) 0%,var(--bluewash) 690px,var(--paper) 960px)}header{display:flex;justify-content:space-between;align-items:center;height:120px}.brand{display:flex;align-items:center;gap:10px;font-size:23px;font-weight:650;letter-spacing:-.8px}.brand svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:3.3}.brand-dot{width:6px;height:6px;border-radius:50%;background:#7d9fcb;align-self:flex-end;margin:0 0 8px -6px}nav{display:flex;gap:32px;font-size:14px;font-weight:500}nav a:hover,.text-link:hover{color:var(--blue);text-decoration:underline;text-underline-offset:5px}.hero{min-height:625px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center;padding:25px 0 90px}.intro{font-size:14px;font-weight:500;color:var(--muted);margin-bottom:23px}h1{font-size:clamp(50px,5.45vw,76px);line-height:1.06;letter-spacing:-3.6px}.lead{max-width:420px;font-size:18px;color:var(--muted);margin-top:28px}.button{display:inline-flex;align-items:center;gap:24px;background:var(--ink);color:white;padding:15px 21px;border-radius:7px;font-size:14px;font-weight:500;margin-top:30px}.button:hover{background:var(--blue)}.button svg{height:19px;width:19px;fill:none;stroke:currentColor;stroke-width:1.5}.hero-art{margin-left:-15px}.hero-art>svg{width:100%;height:auto;overflow:visible}.hero-art>p{font-size:12px;text-align:center;color:var(--muted);margin-top:6px}.expertise{padding:62px 0 82px;scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;gap:48px;align-items:start;margin-bottom:55px}h2{font-size:34px;line-height:1.15;letter-spacing:-1.1px}.section-heading>p{max-width:365px;font-size:16px;color:var(--muted)}.services{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}.services svg{height:38px;width:38px;fill:none;stroke:#4774ae;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-bottom:26px}.services h3{font-size:18px;letter-spacing:-.3px;margin-bottom:12px}.services p{font-size:14px;color:var(--muted);max-width:245px}.work{background:#e6edf5;border-radius:18px;padding:43px 48px;display:grid;grid-template-columns:1fr 1.35fr;gap:55px;align-items:center;margin-bottom:85px}.work .intro{margin-bottom:12px}.work h2{font-size:42px}.work-copy p{font-size:16px;max-width:545px}.text-link{display:inline-flex;gap:25px;align-items:center;font-size:14px;font-weight:550;margin-top:18px}.text-link span{font-size:20px}footer{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:50px 0 25px;border-top:1px solid var(--line)}footer h2{font-size:24px;letter-spacing:-.6px;margin-bottom:15px}.company-copy>p{font-size:14px;max-width:340px;color:var(--muted)}.company-copy .legal{font-size:12px;margin-top:21px}.address{justify-self:end}.address h3{font-size:14px;font-weight:550;margin-bottom:14px}address{font-style:normal;font-size:12px;color:var(--muted);line-height:1.85}.copyright{grid-column:1/-1;font-size:11px;color:var(--muted);margin-top:30px}.skip{position:absolute;top:-80px;left:20px;padding:12px;background:white;z-index:2}.skip:focus{top:20px}
@media(min-width:1500px){.hero{min-height:690px}}
@media(max-width:1000px){.page{padding:0 36px}.hero{min-height:570px;padding-bottom:65px}h1{font-size:58px;letter-spacing:-2.7px}.hero-art{margin:0}.services{gap:25px;grid-template-columns:repeat(2,1fr)}.services article{padding-bottom:20px}.services p{max-width:320px}.section-heading{gap:35px}.work{padding:35px}.lead{font-size:16px}}
@media(max-width:650px){.page{padding:0 24px;background:linear-gradient(180deg,var(--bluewash),var(--bluewash) 900px,var(--paper) 1150px)}header{height:92px}.brand{font-size:21px}nav{gap:18px;font-size:12px}nav a:last-child{display:none}.hero{grid-template-columns:1fr;padding:36px 0 30px;gap:15px}.hero .intro{font-size:13px;margin-bottom:21px}h1{font-size:58px;letter-spacing:-2.7px}.lead{max-width:360px;margin-top:25px}.button{margin-top:25px}.hero-art{width:100%;max-width:420px;margin:6px auto 0}.hero-art>p{margin-top:-12px}.expertise{padding:60px 0 45px}.section-heading{display:block;margin-bottom:38px}h2{font-size:30px}.section-heading>p{margin-top:18px;font-size:15px}.services{gap:30px 23px}.services svg{margin-bottom:19px}.services h3{font-size:17px;line-height:1.3}.services p{font-size:13px}.work{grid-template-columns:1fr;gap:23px;padding:30px 26px;margin-bottom:50px}.work h2{font-size:36px}.work-copy p{font-size:14px}footer{grid-template-columns:1fr;padding-top:36px;gap:30px}.address{justify-self:start}.copyright{margin-top:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Reserve artwork dimensions before it paints and keep grid content within its track. */
.hero-copy,.hero-art,.work-copy{min-width:0}
.hero-art>svg{aspect-ratio:1}
.brand,nav a,.text-link{min-height:44px}
.brand-dot{align-self:center;margin:11px 0 0 -6px}
nav a{display:inline-flex;align-items:center;position:relative}
nav a::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
nav a:hover,nav a:focus-visible{text-decoration:none}
nav a:hover::after,nav a:focus-visible::after{transform:scaleX(1)}
.button{min-height:50px;box-shadow:0 4px 12px #182d4610;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.button svg,.text-link span{transition:transform .25s ease}
.button:active{transform:translateY(1px)}
.text-link{align-items:center;margin-top:10px}
.services article{border-top:1px solid var(--line);padding-top:24px}
.services svg{transition:transform .3s ease}
.work{position:relative;overflow:hidden;border:1px solid #d9e3ee}
.work::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,#ffffff45,transparent 60%)}
.work>*{position:relative;z-index:1}
@media(hover:hover){.button:hover{transform:translateY(-2px);box-shadow:0 8px 22px #182d461b}.button:hover svg{transform:translateX(3px)}.text-link:hover span{transform:translate(2px,-2px)}.services article:hover svg{transform:translateY(-4px)}}
@media(prefers-reduced-motion:no-preference){
  .hero-copy>*{animation:arrive .8s cubic-bezier(.2,.7,.2,1) backwards}
  .hero-copy>h1{animation-delay:.07s}
  .hero-copy>.lead{animation-delay:.14s}
  .hero-copy>.button{animation-delay:.21s}
  .hero-art{animation:art-arrive 1.4s cubic-bezier(.16,1,.3,1) backwards}
  .ribbon{transform-origin:300px 300px;animation:ribbon-settle 2.4s cubic-bezier(.16,1,.3,1) backwards}
}
@keyframes arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes art-arrive{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes ribbon-settle{from{transform:rotate(-7deg) scale(.96)}to{transform:rotate(0) scale(1)}}
@media(min-width:651px) and (max-width:1000px){
  h1{font-size:clamp(40px,5.8vw,58px);letter-spacing:-2px}
  .hero{gap:12px;min-height:535px}
  .hero-art>p{font-size:11px}
}
@media(max-width:650px){
  header{height:auto;min-height:112px;flex-wrap:wrap;gap:4px 20px;padding:20px 0 8px}
  .brand{font-size:22px}
  nav{width:100%;gap:25px;font-size:13px}
  nav a:last-child{display:inline-flex}
  .brand-dot{align-self:center;margin:11px 0 0 -6px}
  .hero{padding-top:32px;gap:22px}
  h1{font-size:clamp(43px,12.8vw,66px);letter-spacing:-2.4px}
  .hero-art{max-width:370px;margin-top:4px}
  .hero-art>p{margin-top:0}
  .lead{font-size:16px;line-height:1.65}
  .services{gap:20px 24px}
  .services article{padding-top:22px;padding-bottom:6px}
  .work{padding:30px 25px}
  .copyright{padding-bottom:12px}
}
@media(max-width:370px){
  .page{padding:0 20px}
  .hero .intro{font-size:12px}
  .services{grid-template-columns:1fr;gap:26px}
  .services article{display:grid;grid-template-columns:38px 1fr;gap:0 18px}
  .services svg{grid-row:1/3;margin:0}
  .services h3{margin-bottom:8px}
  .services p{grid-column:2;font-size:14px}
  .work{padding:27px 22px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

.services{gap:20px}
.services article{position:relative;padding:27px 22px 24px;border:1px solid var(--line);border-radius:12px;background:#ffffff30;transition:transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease}
.services article::after{content:'';position:absolute;left:22px;top:-1px;width:36px;height:2px;background:#6d94c7;transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.services h3{line-height:1.35}
.services p{font-size:14px}
.process{padding:20px 0 88px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:46px}
.steps article{position:relative;border-top:1px solid var(--line);padding-top:27px}
.step-number{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #c6d7e9;border-radius:50%;color:var(--blue);font-size:12px;margin-bottom:22px;background:var(--paper);transition:background .3s ease,color .3s ease,transform .3s ease}
.steps h3{font-size:19px;margin-bottom:13px;letter-spacing:-.3px}
.steps p{font-size:14px;color:var(--muted);max-width:340px}
.work{margin-bottom:80px;transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}
.work h2{transition:transform .35s ease}
.work:focus-within{border-color:#7296c3;box-shadow:0 8px 30px #182d460a}
.support{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:0 0 85px}
.support .intro{margin-bottom:18px}
.support-description{max-width:410px;font-size:16px;color:var(--muted);margin-top:23px}
.support-details{margin:0;padding:0}
.support-details>div{padding:21px 0;border-bottom:1px solid var(--line)}
.support-details>div:first-child{padding-top:0}
.support-details dt{font-size:17px;font-weight:500;margin-bottom:7px}
.support-details dd{margin:0;max-width:440px;font-size:14px;line-height:1.65;color:var(--muted)}
.hero-art>svg{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.brand svg{transition:transform .35s ease}
.brand:focus-visible svg{transform:rotate(-7deg)}
.button:focus-visible svg{transform:translateX(3px)}
.text-link:focus-visible span{transform:translate(2px,-2px)}
@media(hover:hover){
  .services article:hover{transform:translateY(-5px);background:#ffffff90;border-color:#aac3df;box-shadow:0 14px 30px #2545760a}
  .services article:hover::after{transform:scaleX(1)}
  .services article:hover svg{transform:translateY(-3px) rotate(-5deg)}
  .steps article:hover .step-number{background:var(--ink);color:#fff;transform:translateY(-3px)}
  .work:hover{background:#dfe9f5;border-color:#bdd0e7;box-shadow:0 15px 35px #2545760a}
  .work:hover h2{transform:translateX(4px)}
  .hero-art:hover>svg{transform:rotate(2deg) scale(1.015)}
  .brand:hover svg{transform:rotate(-7deg)}
}
@media(max-width:1000px){.steps{gap:26px}.support{gap:40px}.services{gap:22px}.services p{max-width:320px}}
@media(max-width:650px){
  .services{grid-template-columns:1fr;gap:16px}
  .services article{display:grid;grid-template-columns:38px 1fr;gap:0 19px;padding:24px 20px}
  .services svg{grid-row:1/3;margin:0}
  .services h3{margin-bottom:9px}
  .services p{grid-column:2;font-size:14px}
  .process{padding:25px 0 55px}
  .steps{grid-template-columns:1fr;gap:29px}
  .steps article{display:grid;grid-template-columns:36px 1fr;gap:0 18px;padding-top:25px}
  .step-number{grid-row:1/3;margin:0}
  .steps h3{font-size:18px;margin:5px 0 12px}
  .steps p{grid-column:2}
  .work{margin-bottom:55px}
  .support{grid-template-columns:1fr;gap:32px;padding-bottom:55px}
  .support-description{font-size:15px;max-width:360px}
  .support-details>div{padding:19px 0}
}
@media(prefers-reduced-motion:reduce){
  .services article:hover,.services article:hover svg,.steps article:hover .step-number,.work:hover h2,.hero-art:hover>svg,.brand:hover svg,.brand:focus-visible svg,.button:hover,.button:active,.button:hover svg,.button:focus-visible svg,.text-link:hover span,.text-link:focus-visible span{transform:none}
}
