:root{--ink:#222629;--muted:#59636f;--paper:#ffffff;--soft:#f5f6f7;--blue:#2aa6e0;--green:#6baf7c;--orange:#ff8a26;--line:#d9dfe5;--accent:#24617a;--focus:#116f9b;--bodyFont:-apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--headingFont:-apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--button:#243444;--buttonHover:#344b60;--radius:7px;--blueSoft:#edf7fc;--greenSoft:#eff6f0;--orangeSoft:#fff5eb}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:112px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.7 var(--bodyFont)}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--headingFont);line-height:1.17;letter-spacing:-.035em;font-weight:650;text-wrap:balance}h1{font-size:clamp(2.6rem,4.55vw,4.25rem);letter-spacing:-.05em;line-height:1.1}h2{font-size:clamp(2rem,3.05vw,3rem)}h3{font-size:1.32rem;letter-spacing:-.025em}p{color:var(--muted)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{display:block;max-width:100%}button,a,input,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.wrap,.header-inner,.footer-main,.footer-bottom{width:min(1240px,calc(100% - 96px));margin-inline:auto}.section{padding-block:94px}.eyebrow{font-size:.76rem;letter-spacing:.17em;font-weight:650;line-height:1.65;color:var(--muted);margin-bottom:23px}.brand-rule,.hero .eyebrow:after,.services h2:after,.contact h2:after{content:"";display:block;width:64px;height:3px;margin-top:23px;background:linear-gradient(90deg,var(--blue),var(--green),var(--orange))}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 24px;background:var(--button);color:var(--paper);border:1px solid var(--button);border-radius:var(--radius);font-size:1rem;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s}.button:hover{background:var(--buttonHover);border-color:var(--buttonHover)}header{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:inline-flex;align-items:center;gap:13px;min-height:44px;flex-shrink:0}.brand img{width:36px;height:43px;object-fit:contain}.brand>span{font-size:1.16rem;font-weight:650;letter-spacing:-.035em}nav{display:flex;align-items:center;gap:30px;font-size:.94rem;color:var(--muted)}nav a{min-height:44px;display:inline-flex;align-items:center}nav a:not(.button):hover{text-decoration:underline;text-underline-offset:5px}.nav-cta{font-size:.94rem}.menu-toggle{display:none}.skip{position:fixed;z-index:30;top:-120px;left:20px;padding:12px 18px;border-radius:var(--radius);color:var(--paper);background:var(--button)}.skip:focus{top:12px}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:76px;align-items:center;padding-block:90px 100px}.hero h1>span{display:block}.hero .eyebrow{margin-bottom:31px}.hero-body{font-size:1.12rem;line-height:1.7;max-width:660px;margin:30px 0 34px}.software-figure{margin:0;padding-top:26px;min-width:0}.software-layers{padding:0 14px}.software-layer{position:relative;border:1.5px solid var(--blue);border-radius:var(--radius);padding:17px 20px;background:var(--paper)}.software-layer:nth-child(3){border-color:var(--green)}.software-layer:nth-child(5){border-color:var(--orange)}.software-layer .layer-title{font:500 .7rem/1.5 var(--bodyFont);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}.diagram-visual svg{display:block;width:100%;height:auto;max-height:64px;overflow:visible}.layer-connector{display:flex;justify-content:space-evenly;height:48px}.layer-connector span{border-left:1px solid #a9b4be}.software-figure figcaption{color:var(--muted);font-size:.88rem;text-align:center;line-height:1.6;margin:22px 14px 0;padding-top:18px;border-top:3px solid transparent;border-image:linear-gradient(90deg,var(--blue),var(--green),var(--orange)) 1}.intro{background:var(--soft);border-block:1px solid var(--line);padding-block:48px}.intro-grid{display:grid;grid-template-columns:.7fr 1.5fr;gap:55px}.intro .eyebrow{margin:7px 0 0}.intro h2{font-size:clamp(1.7rem,2.65vw,2.3rem)}.intro p:not(.eyebrow){margin-top:18px;max-width:850px}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:52px 64px;margin-top:54px}.service{border-top:1px solid var(--line);padding-top:28px}.number{display:block;color:var(--muted);font-size:.85rem;font-weight:600;margin-bottom:20px}.service h3{margin-bottom:16px}.service p{font-size:1.03rem;line-height:1.75}.service-symbol{display:none}.experience{background:var(--soft);border-block:1px solid var(--line)}.experience h2{max-width:690px}.experience-intro{max-width:790px;font-size:1.08rem;margin-top:25px}.experience-grid{display:grid;grid-template-columns:1.4fr .85fr;gap:64px;margin-top:48px}.experience-examples article{display:grid;grid-template-columns:.72fr 1.15fr;gap:28px;padding:26px 0;border-top:1px solid var(--line)}.experience-examples article:last-child{border-bottom:1px solid var(--line)}.experience-examples h3{font-size:1.08rem;line-height:1.5;letter-spacing:-.02em;text-wrap:initial}.experience-examples p{font-size:1rem}.attribution{padding-left:22px;border-left:3px solid var(--blue);font-size:.92rem;line-height:1.65}.experience-context h3{font-size:1.25rem;margin:34px 0 18px}.experience-context>p:last-child{font-size:1rem}.approach h2{max-width:730px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;list-style:none;margin:48px 0 0;padding:0}.steps li{border-top:4px solid var(--blue);padding-top:24px}.steps li:nth-child(2){border-color:var(--green)}.steps li:nth-child(3){border-color:var(--orange)}.steps h3{font-size:1.35rem}.steps p{margin-top:20px;font-size:1rem}.contact{background:var(--soft);border-top:1px solid var(--line)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.contact h2{max-width:540px}.contact-grid>div>p:not(.eyebrow){margin-top:28px}.small{font-size:.86rem;line-height:1.7}.contact-note{max-width:480px}.contact-form{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:32px;display:grid;gap:21px;min-width:0}.form-preview{font-size:.87rem;line-height:1.6;padding:17px 18px;border-left:4px solid var(--orange);border-radius:5px;background:var(--soft);color:var(--ink);margin-bottom:3px}.form-row{display:grid;gap:21px}.contact-form label{display:grid;gap:9px;font-size:.94rem;font-weight:500}.contact-form input,.contact-form textarea{width:100%;min-width:0;border:1px solid #87929d;border-radius:5px;background:var(--paper);padding:11px 12px;font-size:1rem;line-height:1.5;color:var(--ink)}.contact-form input{min-height:48px}.contact-form textarea{resize:vertical;min-height:155px}.contact-form a,.legal p a{text-decoration:underline;text-underline-offset:4px}.contact-form .button{width:100%;margin-top:2px}.contact-form .button:disabled{background:#e1e5e9;border-color:#c9d0d7;color:#56606b;cursor:not-allowed}.contact-form [role=status]:empty{display:none}footer{background:var(--soft);border-top:1px solid var(--line)}.footer-main,.footer-bottom{display:flex;justify-content:space-between;gap:32px;align-items:center}.footer-main{padding-block:36px}.footer-main p{font-size:.9rem;max-width:460px;text-align:right}.footer-bottom{border-top:1px solid var(--line);padding-block:20px;font-size:.78rem;color:var(--muted)}.footer-bottom nav{font-size:.82rem;gap:24px}.legal{max-width:860px;padding-block:45px 85px}.back{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px;margin-bottom:25px}.draft{border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:var(--radius);background:var(--soft);padding:20px;font-size:.9rem;margin-bottom:35px}.draft p{margin-top:8px}.legal h1{font-size:clamp(2.2rem,4vw,3.2rem);margin-bottom:22px}.legal>p{margin-bottom:25px}.legal section{margin-block:32px}.legal section h2{font-size:1.4rem;margin-bottom:14px}.legal .updated{font-size:.82rem}.legal-index{display:flex;flex-wrap:wrap;gap:8px 20px;padding:22px 0;border-block:1px solid var(--line);margin-bottom:30px}.legal-index a{font-size:.85rem;min-height:36px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1100px){.wrap,.header-inner,.footer-main,.footer-bottom{width:calc(100% - 64px)}.hero{gap:42px;padding-block:70px}.hero h1{font-size:clamp(2.4rem,4.6vw,3.4rem)}.hero-body{font-size:1.02rem}.header-inner{gap:20px}nav{gap:21px;font-size:.88rem}.nav-cta{padding-inline:17px}.brand>span{font-size:1.05rem}.software-layer{padding:14px}.experience-grid,.contact-grid{gap:38px}.experience-examples article{grid-template-columns:1fr;gap:10px}.section{padding-block:76px}}
@media(max-width:820px){.header-inner{min-height:77px;flex-wrap:wrap;gap:0}.header-inner nav{width:100%;padding:12px 0 20px;flex-wrap:wrap}.js .header-inner nav{display:none}.js .header-inner nav.open{display:flex;flex-direction:column;align-items:stretch;gap:5px}.menu-toggle:not([hidden]){display:flex;align-items:center;gap:16px;min-height:44px;border:0;background:none;color:var(--ink);padding:10px 0 10px 15px;font-size:.9rem}.menu-toggle span{font-size:1.5rem}.menu-toggle[aria-expanded=true] span{transform:rotate(45deg)}.hero{grid-template-columns:1fr;padding-block:48px 58px;gap:35px}.hero h1{font-size:clamp(2.5rem,7.3vw,4rem)}.hero-body{max-width:620px;font-size:1.06rem}.software-figure{max-width:560px;width:100%;justify-self:center;padding-top:0}.software-layer .layer-title{font-size:.72rem}.intro-grid{grid-template-columns:1fr;gap:18px}.intro .eyebrow{margin:0}.intro h2{max-width:680px}.service-list{gap:38px}.experience-grid{grid-template-columns:1fr;gap:30px}.experience-examples article{grid-template-columns:.75fr 1.3fr;gap:25px}.experience-context{max-width:650px}.steps{gap:25px}.contact-grid{grid-template-columns:1fr;gap:35px}.contact h2 br{display:none}.contact-form{max-width:650px;width:100%}.footer-main{align-items:flex-start}.footer-main p{max-width:330px}}
@media(max-width:520px){body{font-size:16px}.wrap,.header-inner,.footer-main,.footer-bottom{width:calc(100% - 40px)}.section{padding-block:58px}.brand img{width:31px;height:38px}.brand{gap:10px}.brand>span{font-size:1.03rem}.hero{padding-block:32px 45px}.hero h1{font-size:clamp(2.1rem,8.5vw,2.8rem)}.hero .eyebrow{font-size:.68rem;letter-spacing:.11em;margin-bottom:25px;max-width:310px}.hero-body{font-size:1rem;margin:24px 0 28px}.hero .eyebrow:after{margin-top:19px}.button{font-size:.94rem;padding:13px 20px}.software-layers{padding-inline:0}.software-layer{padding:12px}.software-layer .layer-title{font-size:.64rem;letter-spacing:.12em;margin-bottom:11px}.layer-connector{height:32px}.software-figure figcaption{font-size:.8rem;margin-inline:0}.intro{padding-block:34px}.intro h2{font-size:1.7rem}.eyebrow{font-size:.7rem;letter-spacing:.14em;margin-bottom:18px}.service-list{grid-template-columns:1fr;gap:30px;margin-top:35px}.service{padding-top:23px}.number{margin-bottom:13px}.service h3{font-size:1.2rem;margin-bottom:13px}.service p{font-size:1rem}.experience-intro{font-size:1rem;margin-top:20px}.experience-grid{margin-top:30px}.experience-examples article{grid-template-columns:1fr;gap:11px;padding-block:23px}.experience-examples h3{font-size:1.12rem}.steps{grid-template-columns:1fr;gap:30px;margin-top:33px}.steps li{padding-top:20px}.steps p{margin-top:13px}.contact-form{padding:21px 18px;gap:20px}.form-preview{padding:14px;font-size:.82rem}.contact h2{font-size:2rem}.footer-main,.footer-bottom{flex-direction:column;align-items:flex-start;gap:18px}.footer-main p{text-align:left;max-width:none}.footer-bottom nav{flex-wrap:wrap;gap:25px}.legal{padding-block:30px 60px}.legal h1{font-size:2.2rem}.draft{padding:17px}}
@media(max-height:500px) and (min-width:821px){header{position:relative}.hero{padding-block:35px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.hero-image-review{padding-top:0}.hero-image-review img{width:100%;height:auto}.hero-image-review figcaption{border:0;padding-top:0;margin:16px 0 0}
.form-status:empty{display:none}.form-status{padding:16px;border-radius:7px;background:var(--soft);line-height:1.6}.contact-form[data-state="success"] .form-status{border-left:4px solid #377347;color:#245334;background:#eff6f0}.contact-form[data-state="error"] .form-status{border-left:4px solid #a14521;color:#78361e;background:#fff5eb}.contact-form[data-state="sending"] button:before{content:"";width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:10px;animation:form-spin .8s linear infinite}.contact-form button:disabled{cursor:wait}@keyframes form-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.contact-form[data-state="sending"] button:before{animation:none}}

footer{background:var(--button);color:#f5f7fa;border-top:1px solid #435363}footer p,.footer-bottom,.footer-bottom nav{color:#dce5ed}.footer-bottom{border-top-color:#526170}footer a:focus-visible{outline-color:#8bd7fb}footer a:hover{color:#ffffff}
