@font-face{font-family:Cabinet;src:url('/assets/fonts/CabinetGrotesk-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Cabinet;src:url('/assets/fonts/CabinetGrotesk-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Cabinet;src:url('/assets/fonts/CabinetGrotesk-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:Cabinet;src:url('/assets/fonts/CabinetGrotesk-800.woff2') format('woff2');font-weight:800;font-display:swap}
:root{--paper:#f4f3ef;--ink:#171d1e;--muted:#525858;--line:#c5c8c5;--surface:#e9eae5;--accent:#087787;--md-sys-color-primary:var(--accent);--md-sys-color-on-primary:#fff;--md-sys-color-primary-container:#d3e9e8;--md-sys-color-on-primary-container:#173c40;--md-sys-color-surface:var(--paper);--md-sys-color-surface-container-low:var(--surface);--md-sys-color-surface-container:var(--surface);--md-sys-color-on-surface:var(--ink);--md-sys-color-on-surface-variant:var(--muted);--md-sys-color-outline:#788482;--md-sys-color-outline-variant:var(--line);--page-width:1512px;--md-sys-shape-corner-full:3px}
[data-theme=dark]{--paper:#0c0c0e;--ink:#f2f2f2;--muted:#bcbcc2;--line:#3c3c42;--surface:#171719;--accent:#75d6dc;--md-sys-color-primary:var(--accent);--md-sys-color-on-primary:#101014;--md-sys-color-primary-container:#242428;--md-sys-color-on-primary-container:#eeeeef;--md-sys-color-secondary-container:#242428;--md-sys-color-on-secondary-container:#eeeeef;--md-sys-color-surface:var(--paper);--md-sys-color-surface-container-low:var(--surface);--md-sys-color-surface-container:var(--surface);--md-sys-color-on-surface:var(--ink);--md-sys-color-on-surface-variant:var(--muted);--md-sys-color-outline-variant:var(--line)}
body{font-family:Cabinet,sans-serif;font-size:18px;line-height:1.55;background:var(--paper);color:var(--ink)}
html{scrollbar-color:#84908d var(--paper);scroll-padding-top:106px}main{overflow:clip}::selection{background:#69d4de;color:#112b2e}a,button{touch-action:manipulation}input,select{font:inherit;accent-color:var(--accent);caret-color:var(--accent)}button,a,select,input{outline-offset:5px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent)}h1,h2,h3{font-weight:700;letter-spacing:-.035em}h1{font-weight:800}h2{font-size:clamp(34px,3.9vw,60px);line-height:1.07}h3{font-size:30px}p{color:var(--muted)}.small{font-size:14px}.container{width:min(var(--page-width),calc(100% - 112px))}.section{padding:140px 0}.section-intro{display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:90px;margin-bottom:64px}.section-intro p{font-size:20px;max-width:50ch}.masthead{background:var(--paper);border-bottom:1px solid var(--line)}.nav-inner{min-height:96px;gap:24px}.brand{font-size:29px;font-weight:800;letter-spacing:-.04em;gap:10px}.brand img{width:69px;height:49px;object-fit:contain}.desktop-nav{gap:28px}.desktop-nav a{font-size:16px;font-weight:500}.nav-actions{gap:18px}.nav-cta{border-left:1px solid var(--line);padding:0 0 0 23px;background:transparent;color:var(--ink);border-radius:0;font-size:16px;font-weight:500}.theme-toggle{border-radius:0;width:44px;height:44px}.btn{border-radius:3px;min-height:56px;padding:14px 24px;font-size:18px;font-weight:700;gap:24px}.btn--primary{background:var(--ink);color:var(--paper)}.btn--primary:hover{background:var(--accent);color:var(--md-sys-color-on-primary);transform:none}.btn svg,.text-link svg{transition:transform .25s cubic-bezier(.16,1,.3,1)}.btn:hover svg,.text-link:hover svg{transform:translateX(4px)}.text-link{font-size:17px;font-weight:700;gap:18px}.assembly-hero{padding:30px 0 28px}.assembly-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:0;min-height:630px}.assembly-intro{padding:20px 0 72px;position:relative;z-index:1}.assembly-intro h1{font-size:clamp(42px,4.25vw,70px);line-height:1.04;letter-spacing:-.038em;width:115%;max-width:810px;text-wrap:initial;margin-bottom:30px}.assembly-intro p{font-size:clamp(20px,1.8vw,28px);line-height:1.35;max-width:600px}.hero-actions{display:flex;align-items:center;gap:24px;margin-top:40px}.hero-actions>span{font-size:16px;color:var(--muted)}.assembly-experience{min-width:0;position:relative;align-self:center}.assembly-viewport{height:460px;position:relative;isolation:isolate}.assembly-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .45s}.assembly-viewport canvas{position:absolute;inset:0;width:100%;height:100%;cursor:grab;touch-action:pan-y}.assembly-viewport canvas:active{cursor:grabbing}.assembly-experience[data-state=ready] .assembly-poster{opacity:0;pointer-events:none}.assembly-hint{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted);padding-bottom:12px}.assembly-hint>span:last-child{text-align:right}.assembly-controls{border-top:1px solid var(--line);padding-top:8px;font-size:14px}.assembly-toolbar{display:flex;justify-content:space-between;gap:8px}.assembly-controls button{min-height:44px;color:var(--ink);padding:8px 10px;background:transparent;border:0;border-radius:3px;font-size:14px;white-space:nowrap}.assembly-controls button:hover{background:var(--surface)}.assembly-controls button:disabled{opacity:.45}.assembly-range{display:flex;gap:12px;align-items:center;min-height:44px}.assembly-range>label{font-weight:700;margin-right:auto}.assembly-range>span{font-size:12px;color:var(--muted)}.assembly-range input{width:45%;min-width:80px;height:36px}.part-picker{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.part-picker label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.part-picker select{flex:1;min-width:120px;max-width:100%;min-height:44px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:6px;font-size:14px}.part-description{font-size:13px;line-height:1.4;min-height:38px;margin-top:8px;max-width:100%}.touch-enable{position:absolute;z-index:3;bottom:12px;left:50%;transform:translateX(-50%);min-height:48px;padding:10px 20px;border:0;border-radius:3px;background:var(--ink);color:var(--paper);white-space:nowrap}.offer-index{display:grid;grid-template-columns:1.15fr .95fr 1fr;border-top:1px solid var(--line);padding:34px 0 40px}.offer-index>a{position:relative;padding:0 26px;border-left:1px solid var(--line)}.offer-index>a:first-child{padding-left:0;border-left:0}.offer-index>a:last-child{padding-right:0}.offer-index h2{font-size:clamp(28px,3vw,44px);font-weight:500;margin-bottom:8px;letter-spacing:-.04em}.offer-index p{font-size:18px;max-width:32ch}.offer-index>a>svg{position:absolute;right:18px;top:10px;width:20px;opacity:0;transition:opacity .2s,transform .2s}.offer-index>a:hover{text-decoration:none}.offer-index>a:hover>svg{opacity:1;transform:translateX(4px)}.offer-index>a:hover h2{color:var(--accent)}.client-strip{background:var(--surface);border:0;margin-top:25px}.client-strip .container{display:flex;align-items:center;gap:60px;padding-block:36px}.client-strip p{font-size:15px;flex-shrink:0;color:var(--muted)}.client-logos{width:100%;display:flex;align-items:center;justify-content:space-between;gap:35px}.client-logos img{object-fit:contain;width:140px;height:52px;filter:grayscale(1);opacity:.8;mix-blend-mode:multiply}.client-logos img:hover{filter:grayscale(0);opacity:1}[data-theme=dark] .client-logos img{background:#f0f1ed;padding:8px;mix-blend-mode:normal;filter:grayscale(1);opacity:1}.problem-studio{display:grid;grid-template-columns:.85fr 1.15fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.problem-tabs{display:flex;flex-direction:column;padding-right:40px;border-right:1px solid var(--line)}.problem-tabs button{display:flex;align-items:center;justify-content:space-between;gap:24px;text-align:left;min-height:96px;padding:22px 0;color:var(--muted);font-size:22px;line-height:1.2;border:0;border-bottom:1px solid var(--line);background:transparent}.problem-tabs button:last-child{border:0}.problem-tabs button[aria-selected=true]{color:var(--ink);font-weight:700}.problem-tabs button svg{color:var(--accent)}.problem-panels{padding:42px 0 40px 56px}.problem-panels article+article{margin-top:40px}.has-tabs .problem-panels article+article{margin-top:0}.problem-panels h3{font-size:34px;margin-bottom:20px}.problem-panels p{max-width:57ch;margin-bottom:18px}.problem-panels .example-line{font-size:16px}.private-note,.support-line{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:25px}.autocount-section{background:var(--surface)}.autocount-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:end}.autocount-heading p{max-width:44ch;font-size:20px}.autocount-flow{display:flex;align-items:center;margin-top:68px;gap:25px}.autocount-flow>div{flex:1;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:190px}.autocount-flow span{font-size:14px;color:var(--muted)}.autocount-flow strong{display:block;font-size:30px;line-height:1.1;margin:16px 0 10px;letter-spacing:-.025em}.autocount-flow>div:last-child strong{color:var(--accent)}.autocount-flow p{font-size:16px}.autocount-flow i{color:var(--accent)}.architecture-foot{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:24px}.architecture-foot p{font-size:14px}.connected-row{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--line);padding:40px 0}.connected-row h3{font-size:39px;max-width:500px}.connected-row h3 a{display:flex;gap:30px;align-items:center}.connected-row p{max-width:56ch;font-size:20px;margin-bottom:14px}.support-line{border-top:1px solid var(--line);padding-top:24px}.approach-section{background:var(--surface)}.approach-layout{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:start}.approach-intro p{font-size:21px;max-width:38ch;margin:25px 0 32px}.approach-steps{margin:0;padding:0;list-style:none}.approach-steps li{padding:24px 0 50px;border-top:1px solid var(--line)}.approach-steps li:last-child{padding-bottom:0}.approach-steps h3{font-size:35px;margin:0 0 24px}.approach-steps p{font-size:20px}.contact-section{padding:130px 0;background:var(--ink);color:var(--paper)}.contact-section h2{font-size:clamp(48px,6vw,92px);line-height:1.03}.contact-section p{color:color-mix(in srgb,var(--paper) 78%,var(--ink));font-size:21px;margin:24px 0 30px;max-width:44ch}.contact-section .small{font-size:14px}.contact-section .btn--primary{background:var(--paper);color:var(--ink)}.contact-section .btn--primary:hover{background:#7bdde4;color:#122b2f}.contact-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:100px}.contact-details{border:0;padding:18px 0 0}.contact-details h3{font-size:34px;line-height:1.15;margin-bottom:28px}.contact-details a{color:var(--paper);font-size:20px}.contact-details p{font-size:16px}.site-footer{padding:64px 0 24px;background:var(--paper);border:0}.footer-grid{grid-template-columns:1.4fr .8fr 1fr;gap:64px}.footer-grid h2{font-size:17px;letter-spacing:0}.footer-grid a{font-size:16px;min-height:38px}.footer-grid .brand{font-size:27px}.footer-grid p{font-size:17px;max-width:38ch}.footer-grid .small{font-size:14px}.footer-bottom{font-size:12px;line-height:1.6;border-color:var(--line);margin-top:52px}.faq-layout{grid-template-columns:1fr 1.15fr;gap:100px}.faq-item{border-color:var(--line)}.faq-item summary{font-size:21px;padding:24px 32px 24px 0}.faq-item p,.faq-item .faq-answer{font-size:18px;color:var(--muted)}
/* Shared service and reading surfaces keep the original published content. */
.editorial-service{padding-block:80px}.breadcrumb{font-size:15px;color:var(--muted);display:inline-block;margin-bottom:30px}.editorial-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:90px;align-items:end}.editorial-intro h1{font-size:clamp(46px,5.2vw,78px);line-height:1.06}.editorial-lead p{font-size:23px;margin-bottom:30px}.service-scene{margin-block:0 30px}.service-scene img{width:100%;max-height:500px;object-fit:cover;border-radius:0}.service-scene figcaption{font-size:13px;color:var(--muted);padding-top:10px}.capability-list article{padding:42px 0;grid-template-columns:1fr 1.25fr 24px;gap:70px}.capability-list h3{font-size:32px}.capability-list p{font-size:20px}.capability-tags{font-size:14px;margin-top:16px;display:block}.service-note{background:var(--surface);padding-block:88px}.service-note h2{font-size:45px}.service-note p{font-size:20px}.delivery-steps{gap:40px}.delivery-steps h3{font-size:26px}.delivery-steps p{font-size:17px}.application-example{padding:0 0 35px}.workflow-demo{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:none;border-radius:0;max-width:960px;margin:auto;--demo-text:var(--ink);--demo-muted:var(--muted);--demo-surface:var(--surface);--demo-elevated:var(--paper);--demo-line:var(--line)}.demo-top,.demo-options button,.demo-foot,.demo-source,.demo-record{font-size:14px}.demo-options button{min-height:44px}.demo-answer{background:var(--paper);border-radius:0;color:var(--ink)}.demo-question p{font-size:24px}.demo-answer p{font-size:19px}.insights-hero,.article-hero{padding-block:85px;background:var(--paper);border-bottom:1px solid var(--line)}.insights-hero h1,.article-hero h1{font-size:clamp(42px,5vw,76px);font-weight:800;max-width:1120px}.article-deck{font-size:24px;max-width:920px}.article-meta,.insight-meta,.article-breadcrumb{font-size:14px}.insight-copy h2{font-size:38px}.insight-copy p{font-size:19px}.insight-visual{border-radius:0;background:var(--surface)}.article-shell{grid-template-columns:minmax(0,790px) 235px;gap:85px;max-width:1150px}.article-body{font-size:20px;line-height:1.75}.article-body h2{font-size:37px}.article-body h3{font-size:28px}.article-body table{font-size:15px}.article-toc ol{font-size:15px}.article-toc h2{font-size:18px}.article-summary,.article-callout,.article-cta{border-radius:0}.article-body figcaption{font-size:14px}.page-article .btn--primary{color:var(--paper)}.page-article .btn--primary:hover{color:var(--md-sys-color-on-primary)}.legal{max-width:850px;font-size:20px}.legal h1{font-size:60px}.not-found{padding-block:100px}.not-found h1{margin:24px 0}.not-found .btn{margin:24px 20px 0 0}
@media(min-width:1650px){.assembly-viewport{height:530px}.assembly-hero-grid{min-height:710px}}
@media(max-width:1250px){.container{width:calc(100% - 72px)}.desktop-nav{gap:18px}.desktop-nav a{font-size:15px}.brand{font-size:25px}.brand img{width:58px}.nav-actions{gap:8px}.nav-cta{padding-left:14px}.nav-inner{gap:16px}.assembly-intro h1{font-size:4.2vw;width:116%}.assembly-viewport{height:410px}.assembly-hero-grid{min-height:600px}.hero-actions{gap:16px}.hero-actions>span{font-size:14px}.hero-actions .btn{font-size:16px;padding:14px 18px}.section-intro,.autocount-heading,.approach-layout{gap:55px}.client-strip .container{gap:35px}.client-logos{gap:20px}.client-logos img{width:112px}}
@media(max-width:1099px){.desktop-nav{display:none}.nav-toggle{display:grid}.nav-actions{margin-left:auto}.nav-inner{min-height:80px}.nav-cta{display:flex}.section{padding:100px 0}.assembly-hero-grid{grid-template-columns:1fr 1fr}.assembly-viewport{height:360px}.assembly-intro{padding-bottom:90px}.assembly-intro h1{font-size:4.15vw}.assembly-intro p{font-size:20px}.hero-actions{flex-wrap:wrap;gap:12px}.hero-actions>span{display:none}.assembly-hint>span:last-child{display:none}.assembly-controls button{padding:7px;font-size:13px}.part-picker select{font-size:13px}.offer-index h2{font-size:31px}.offer-index p{font-size:16px}.client-strip .container{flex-direction:column;gap:24px;align-items:flex-start}.client-strip p br{display:none}.client-logos img{width:125px}.section-intro p,.autocount-heading p{font-size:18px}.connected-row{gap:45px}.connected-row h3{font-size:34px}.contact-layout{gap:50px}.footer-grid{gap:40px}.faq-layout{gap:50px}}
@media(max-width:839px){.container{width:calc(100% - 48px)}.section{padding:85px 0}.assembly-hero{padding-top:40px}.assembly-hero-grid{grid-template-columns:1fr;gap:10px}.assembly-intro{padding:0}.assembly-intro h1{font-size:clamp(39px,6.6vw,58px);width:100%;max-width:760px;line-height:1.06}.assembly-intro p{font-size:23px}.hero-actions{margin-top:26px}.hero-actions>span{display:block}.assembly-experience{max-width:650px;width:100%;margin:0 auto}.assembly-viewport{height:430px}.assembly-hint>span:last-child{display:block}.assembly-controls{padding-bottom:10px}.assembly-controls button{font-size:14px;padding:8px 10px}.part-picker select{font-size:14px}.assembly-intro h1 br{display:initial}.offer-index{margin-top:20px}.offer-index h2{font-size:28px}.offer-index>a{padding-inline:18px}.offer-index p{font-size:15px}.offer-index>a>svg{display:none}.client-logos{flex-wrap:wrap;justify-content:flex-start;gap:24px 40px}.client-logos img{width:115px;height:45px}.section-intro,.autocount-heading,.approach-layout,.editorial-intro{grid-template-columns:1fr;gap:25px}.section-intro h2,.autocount-heading h2{max-width:650px}.section-intro p{max-width:60ch}.problem-studio{grid-template-columns:1fr}.problem-tabs{padding:0;border-right:0;display:grid;grid-template-columns:repeat(3,1fr);gap:15px;border-bottom:1px solid var(--line)}.problem-tabs button{font-size:18px;min-height:115px;border-bottom:0}.problem-tabs button svg{display:none}.problem-tabs button[aria-selected=true]{box-shadow:inset 0 -2px var(--accent)}.problem-panels{padding:35px 0}.problem-panels h3{font-size:32px}.autocount-flow{gap:15px;margin-top:35px}.autocount-flow strong{font-size:25px}.autocount-flow>div{min-height:215px}.autocount-flow span,.autocount-flow p{font-size:14px}.architecture-foot{align-items:flex-start;flex-direction:column;gap:8px}.connected-row{grid-template-columns:1fr;gap:22px}.connected-row p{font-size:19px}.approach-steps{margin-top:20px}.approach-steps li{padding-bottom:40px}.approach-intro p{max-width:50ch}.contact-section{padding:85px 0}.contact-layout{grid-template-columns:1fr;gap:32px}.contact-details h3 br{display:none}.contact-details{max-width:100%}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:last-child{grid-column:auto}.faq-layout{grid-template-columns:1fr;gap:35px}.editorial-service{padding-block:55px}.editorial-intro h1{font-size:54px}.editorial-lead p{font-size:22px}.service-scene img{max-height:380px}.capability-list article{grid-template-columns:1fr;gap:20px}.service-note h2{font-size:38px}.article-shell{width:calc(100% - 48px);gap:35px}.article-body{font-size:19px}.article-hero,.insights-hero{padding-block:55px}.article-deck{font-size:22px}.article-body h2{font-size:34px}.insight-copy h2{font-size:33px}.delivery-steps{grid-template-columns:1fr 1fr}}
@media(max-width:599px){.container{width:calc(100% - 36px)}.nav-inner{min-height:74px;gap:8px}.brand{font-size:24px;gap:7px}.brand img{width:48px;height:36px}.nav-actions{gap:3px}.nav-cta{display:none}.theme-toggle,.nav-toggle{width:44px;height:44px}.assembly-hero{padding-top:31px}.assembly-intro h1{font-size:clamp(31px,7.7vw,45px);margin-bottom:24px;letter-spacing:-.04em}.assembly-intro p{font-size:20px}.assembly-intro p br{display:none}.hero-actions{gap:15px;margin-top:24px}.hero-actions .btn{font-size:16px;min-height:53px;padding:13px 18px}.hero-actions>span{font-size:13px}.assembly-viewport{height:350px;margin-top:4px}.assembly-hint{font-size:12px}.assembly-controls button{font-size:12px;padding:6px}.part-picker select{font-size:13px;min-width:145px}.assembly-range{gap:8px}.assembly-range>label{font-size:13px}.part-description{font-size:12px;min-height:34px}.offer-index{grid-template-columns:1fr;margin-top:12px;padding:0;border-top:0}.offer-index>a,.offer-index>a:first-child{padding:23px 0;border-left:0;border-top:1px solid var(--line)}.offer-index h2{font-size:32px;margin-bottom:4px}.offer-index p{font-size:17px;max-width:none}.offer-index>a>svg{display:block;opacity:1;top:29px;right:0}.client-strip .container{padding-block:30px;gap:22px}.client-logos{gap:23px 20px}.client-logos img{width:calc((100% - 40px)/3);height:40px}.client-strip p{font-size:14px}.section{padding:70px 0}h2{font-size:36px}.section-intro{margin-bottom:36px}.section-intro p{font-size:18px}.problem-tabs{grid-template-columns:1fr;gap:0}.problem-tabs button{min-height:64px;font-size:19px;border-bottom:1px solid var(--line);padding:16px 0}.problem-tabs button svg{display:block}.problem-tabs button[aria-selected=true]{box-shadow:none}.problem-tabs button:last-child{border:0}.problem-panels h3{font-size:30px}.problem-panels p{font-size:18px}.private-note,.support-line{align-items:flex-start;flex-direction:column;gap:4px}.private-note p,.support-line p{font-size:17px}.autocount-flow{flex-direction:column;align-items:stretch;gap:12px}.autocount-flow>div{padding:24px 0;min-height:0;border-bottom:0}.autocount-flow strong{font-size:32px;margin-top:10px}.autocount-flow i{align-self:center;transform:rotate(90deg)}.autocount-flow span,.autocount-flow p{font-size:16px}.autocount-heading p{font-size:18px}.architecture-foot{margin-top:30px}.connected-row{padding-block:28px}.connected-row h3{font-size:32px}.connected-row p{font-size:18px}.approach-steps h3{font-size:30px}.approach-steps p{font-size:18px}.approach-intro p{font-size:19px}.contact-section{padding:65px 0}.contact-section h2{font-size:56px}.contact-section p{font-size:19px}.contact-details h3{font-size:29px}.contact-details a{font-size:18px}.contact-details p{font-size:16px}.footer-grid{gap:30px}.footer-grid>div:last-child{grid-column:1/-1}.footer-bottom{font-size:12px;gap:15px}.footer-grid .brand{font-size:26px}.faq-item summary{font-size:19px}.faq-item p{font-size:17px}.editorial-intro h1{font-size:41px}.editorial-lead p{font-size:20px}.service-note{padding-block:55px}.service-note h2{font-size:34px}.capability-list h3{font-size:29px}.capability-list p{font-size:18px}.capability-tags{font-size:14px}.service-scene{margin-bottom:0}.service-scene img{max-height:260px}.workflow-demo{padding:20px}.demo-options button{font-size:13px}.demo-question p{font-size:21px}.demo-top>span:last-child{font-size:12px}.demo-answer p{font-size:17px}.demo-foot{font-size:12px}.data-path{font-size:11px}.delivery-steps{grid-template-columns:1fr}.delivery-steps h3{margin-top:0}.article-shell{width:calc(100% - 36px)}.article-body{font-size:18px}.article-hero h1,.insights-hero h1{font-size:40px}.article-deck{font-size:20px}.article-body table{font-size:14px}.article-body h2{font-size:31px}.article-body h3{font-size:26px}.article-body .btn{font-size:16px}.legal h1{font-size:43px}.legal{font-size:18px}.not-found h1{font-size:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.assembly-poster{transition:none}}

.contact-section h2,.contact-details h3{color:var(--paper)}
/* Review correction: restore the approved desktop scale and vertical rhythm. */
@media(min-width:1100px){
 .assembly-hero{padding-top:0}
 .assembly-hero-grid{align-items:start;min-height:690px}
 .assembly-intro{padding:130px 0 0}
 .assembly-intro h1{font-size:clamp(61px,5.6vw,86px);line-height:1.1;letter-spacing:-.035em;width:140%;max-width:none;transform:scaleX(.9);transform-origin:left center;margin-bottom:30px}
 .assembly-intro p{font-size:clamp(22px,1.95vw,30px);line-height:1.35}
 .hero-actions{margin-top:40px}
 .assembly-viewport{height:500px}
 .assembly-controls .part-description{min-height:20px}
 .offer-index{padding:42px 0 45px}
 .offer-index h2{font-size:clamp(40px,3.65vw,56px);line-height:1.08;letter-spacing:-.035em}
 .offer-index p{font-size:20px}
}
/* Direct manipulation is the normal interface. Keyboard tools appear only when tabbed to. */
.assembly-keyboard-controls{position:absolute!important;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.assembly-keyboard-controls:focus-within{position:relative!important;width:auto;height:auto;margin:0;padding:12px 0;overflow:visible;clip-path:none;white-space:normal;border-top:1px solid var(--line)}
.assembly-viewport canvas{touch-action:pan-y}
.assembly-viewport:has(canvas:focus-visible)::after{content:'Arrow keys rotate. + and − open and close. Tab for component controls.';position:absolute;bottom:0;left:12px;right:12px;background:var(--paper);color:var(--ink);font-size:13px;line-height:1.4;padding:10px;pointer-events:none}
/* The original robot replaces the appliance; the rest of the approved page remains. */
.robot-experience{position:relative;min-width:0;width:100%;align-self:center}
.robot-stage{position:relative;isolation:isolate;width:100%;height:580px;overflow:hidden}
.robot-stage canvas,.robot-poster{position:absolute;inset:0;width:100%;height:100%;display:block}
.robot-stage canvas[hidden]{display:none}
.robot-poster{object-fit:cover;pointer-events:none;transition:opacity .3s}
.robot-stage canvas{touch-action:pan-y;cursor:grab;opacity:0;transition:opacity .18s}
.robot-experience[data-state=ready] canvas{opacity:1}
@media(prefers-reduced-motion:reduce){.robot-stage canvas{transition:none}}
.robot-stage canvas:active{cursor:grabbing}
.robot-experience[data-state=ready] .robot-poster{opacity:0}
.robot-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
.robot-experience[data-state=fallback] .robot-status{position:static;width:auto;height:auto;clip-path:none;text-align:center;font-size:14px;margin-top:10px}
.robot-keyboard-help{position:absolute;left:18px;right:18px;bottom:8px;padding:10px 14px;background:var(--paper);color:var(--ink);font-size:13px;line-height:1.4;visibility:hidden;pointer-events:none}
.robot-stage:has(canvas:focus-visible) .robot-keyboard-help{visibility:visible}
.robot-static-note{font-size:14px;text-align:center;margin:0 0 12px}
@media(min-width:1100px){.robot-stage{height:630px}}
@media(max-width:1099px){.robot-stage{height:480px}}
@media(max-width:839px){.robot-experience{max-width:630px;margin-inline:auto}.robot-stage{height:460px}}
@media(max-width:599px){.robot-stage{height:370px}.robot-keyboard-help{font-size:12px;left:8px;right:8px}}
@media(prefers-reduced-motion:reduce){.robot-poster{transition:none}}
/* September comparison: compact display lettering and an open, oversized robot. */
@font-face{font-family:'NexLink Display';src:url('/assets/fonts/RobotoCondensed-Latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
.assembly-intro h1{font-family:'NexLink Display',sans-serif;font-weight:900;font-stretch:normal;letter-spacing:-.035em;transform:none;line-height:1.02}
.assembly-hero{overflow:clip;position:relative}
.assembly-hero-grid{position:relative}
.assembly-intro{position:relative;z-index:2}
.robot-stage{overflow:visible;isolation:auto}
@media(min-width:1100px){
 .assembly-hero-grid{display:block;min-height:690px}
 .assembly-intro{width:66%;padding:115px 0 100px;pointer-events:none}
 .assembly-intro a{pointer-events:auto}
 .assembly-intro h1{font-size:clamp(64px,5.65vw,88px);width:100%;max-width:950px;line-height:1.05}
 .assembly-intro p{font-size:clamp(22px,1.8vw,28px);max-width:620px}
 .robot-experience{position:absolute;right:-12%;top:-25px;width:74%;height:940px;align-self:auto}
 .robot-stage{height:940px;width:100%}
 .robot-keyboard-help{bottom:280px;left:22%;right:14%}
 .robot-experience[data-state=fallback] .robot-status{position:absolute;bottom:250px;left:20%;right:12%}
}
@media(min-width:840px) and (max-width:1099px){
 .assembly-hero-grid{display:block;min-height:600px}
 .assembly-intro{width:68%;padding:70px 0 120px;pointer-events:none}
 .assembly-intro a{pointer-events:auto}
 .assembly-intro h1{font-size:clamp(48px,5.65vw,63px);width:100%;line-height:1.05}
 .robot-experience{position:absolute;right:-12%;top:15px;width:80%;height:790px}
 .robot-stage{height:790px}
 .robot-keyboard-help{bottom:230px;left:25%;right:15%}
}
@media(max-width:839px){
 .assembly-intro h1{font-size:clamp(34px,6.8vw,58px);width:100%;line-height:1.05}
 .robot-experience{width:calc(100% + 48px);max-width:none;margin:0 -24px;height:410px}
 .robot-stage{height:620px;width:100%;position:absolute;top:-15px}
 .robot-keyboard-help{bottom:220px}
 .robot-experience[data-state=fallback] .robot-status{position:absolute;bottom:0;left:24px;right:24px}
}
@media(max-width:599px){
 .assembly-intro h1{font-size:clamp(31px,7.7vw,45px)}
 .robot-experience{height:370px;width:calc(100% + 36px);margin:0 -18px}
 .robot-stage{height:580px;top:-4px}
}

/* One continuous client-logo row. Focus or hover pauses it for reading. */
.client-strip.client-marquee{padding:28px 0;overflow:hidden}
.client-marquee-window{width:100%;overflow:hidden;outline-offset:-4px}
.client-marquee-window:focus-visible{outline:2px solid var(--accent)}
.client-marquee-track{display:flex;width:max-content;animation:client-marquee-travel 30.769s linear infinite;animation-play-state:paused}
.client-marquee-group{display:flex;flex:0 0 auto;flex-wrap:nowrap;align-items:center;justify-content:space-around;gap:60px;width:max(100vw,1100px);padding:10px 40px;box-sizing:border-box}
.client-marquee-group img{display:block;flex:0 0 150px;width:150px;height:60px;object-fit:contain;filter:grayscale(1);opacity:.85;mix-blend-mode:multiply}
.client-marquee-group img:hover{filter:grayscale(0);opacity:1}
[data-theme=dark] .client-marquee-group img{background:#f0f1ed;padding:8px;mix-blend-mode:normal;opacity:1}
.client-marquee[data-motion=running] .client-marquee-track{animation-play-state:running}
.client-marquee:hover .client-marquee-track,.client-marquee:focus-within .client-marquee-track{animation-play-state:paused}
@keyframes client-marquee-travel{to{transform:translateX(-50%)}}
@media(max-width:760px){.client-strip.client-marquee{padding-block:22px}.client-marquee-group{width:940px;gap:50px;padding-inline:35px}.client-marquee-group img{flex-basis:130px;width:130px;height:54px}}
@media(prefers-reduced-motion:reduce){.client-marquee-window{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface)}.client-marquee-track{animation:none;transform:none}.client-marquee-group[aria-hidden=true]{display:none}}

/* Full navigation and the owner's preferred transparent logo lockup. */
.desktop-nav{gap:20px}.desktop-nav a{font-size:15px;white-space:nowrap}
@media(min-width:1100px) and (max-width:1279px){.desktop-nav{display:none}.nav-toggle{display:flex}.nav-inner{justify-content:space-between}.nav-actions{margin-left:auto}}
@media(min-width:1280px){.mobile-nav{display:none!important}}
/* Give the standing robot room below its hips, keeping it in the foreground. */
@media(min-width:1100px){
 .assembly-hero-grid{min-height:830px}
 .robot-experience{top:-65px}
 .robot-keyboard-help{bottom:145px}
}
@media(min-width:840px) and (max-width:1099px){.assembly-hero-grid{min-height:710px}.robot-experience{top:-20px}.robot-keyboard-help{bottom:110px}}
@media(max-width:839px){.robot-experience{height:515px}.robot-stage{top:-32px}.robot-keyboard-help{bottom:100px}}
@media(max-width:599px){.robot-experience{height:465px}.robot-stage{top:-24px}.robot-keyboard-help{bottom:100px}}

/* Error recovery is separate from the robot's normal, control-free gestures. */
.robot-retry{position:absolute;z-index:4;left:50%;bottom:150px;transform:translateX(-50%);min-height:44px;padding:12px 18px;border:1px solid var(--line);border-radius:3px;background:var(--paper);color:var(--ink);font:600 15px Cabinet,sans-serif;cursor:pointer;white-space:nowrap}
.robot-experience[data-state=fallback] .robot-status{bottom:200px}
@media(max-width:839px){.robot-retry{bottom:120px}.robot-experience[data-state=fallback] .robot-status{bottom:70px}}

/* Four equal service paths on the home page. */
.offer-index{grid-template-columns:repeat(4,minmax(0,1fr))}.offer-index h2{font-size:clamp(24px,2.45vw,38px)}.offer-index p{font-size:17px}
@media(max-width:860px){.offer-index{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.offer-index>a{padding:22px 18px}.offer-index>a:nth-child(3){border-left:0}.offer-index>a:nth-child(n+3){border-top:1px solid var(--line)}.offer-index h2{font-size:27px}.offer-index p{font-size:16px}}
@media(max-width:480px){.offer-index>a{padding:20px 12px}.offer-index h2{font-size:23px}.offer-index>a>svg{display:none}}

/* Opt-in robot playground, kept separate from the homepage composition. */
.robot-maximize{position:absolute;right:18%;bottom:110px;z-index:5;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:12px 18px;font:700 16px Cabinet,sans-serif;min-height:44px;cursor:pointer}
.robot-playground{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;margin:0;padding:0;overflow:hidden;background:var(--paper,#f4f3ef);color:var(--ink,#171d1e)}
.robot-playground::backdrop{background:#171d1e}
.robot-play-toolbar{position:absolute;inset:20px 28px auto;z-index:10;display:flex;gap:14px;align-items:center;font-family:Cabinet,sans-serif}
.robot-play-toolbar>div{margin-right:auto}.robot-play-toolbar strong{font-size:24px}.robot-play-toolbar p{font-size:16px;margin:8px 0}
.robot-play-toolbar button{font:700 16px Cabinet,sans-serif;padding:12px 18px;min-height:44px;background:var(--ink,#171d1e);color:var(--paper,#f4f3ef);border:0;cursor:pointer}
.robot-playground .robot-stage{position:absolute;top:50%;left:50%;width:min(460px,70vw);height:72vh;margin-left:calc(min(460px,70vw)/-2);margin-top:-34vh;overflow:visible;will-change:transform}
.robot-playground .robot-stage canvas{opacity:1;touch-action:none}.robot-playground .robot-poster,.robot-playground .robot-keyboard-help{display:none}
.robot-play-floor{position:absolute;bottom:7%;left:10%;right:10%;border-bottom:1px solid var(--line,#c5c8c5)}
@media(max-width:600px){.robot-play-toolbar{inset:14px;flex-wrap:wrap;gap:10px}.robot-play-toolbar>div{width:100%}.robot-play-toolbar strong{font-size:21px}.robot-play-toolbar p{font-size:14px}.robot-maximize{right:24px;bottom:70px}.robot-playground .robot-stage{height:60vh;margin-top:-24vh}}
@media(prefers-reduced-motion:reduce){.robot-maximize{display:none}}

/* Keep the maximise control inside the visible hero, above its clipping edge. */
.robot-experience .robot-maximize{top:145px;right:19%;bottom:auto;width:48px;height:48px;padding:0;border-radius:50%;display:grid;place-items:center;z-index:8;box-shadow:0 3px 12px #00000012}
.robot-maximize:hover{background:var(--ink);color:var(--paper)}
.robot-maximize:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(max-width:839px){.robot-experience .robot-maximize{top:35px;right:32px}}
@media(prefers-reduced-motion:reduce){.robot-experience .robot-maximize{display:none}}

.robot-experience .robot-maximize{background:#555;color:#fff;border:1px solid #555;box-shadow:none}.robot-experience .robot-maximize:hover{background:#171d1e;border-color:#171d1e}

/* Preserve the live canvas's ready-state ancestry when opening the playground. */
.robot-playground .robot-experience{position:static;inset:auto;width:100%;height:100%;max-width:none;margin:0;transform:none}
.robot-playground .robot-maximize{display:none}
.robot-playground .robot-stage{z-index:1;visibility:visible}
.robot-playground canvas{display:block!important;opacity:1!important;visibility:visible!important}
.robot-playground:fullscreen{width:100vw;height:100vh}

.robot-fullscreen-host:fullscreen{width:100vw;height:100vh;background:var(--paper,#f4f3ef)}

/* Full-body framing leaves room for connected hands and running feet. */
.robot-playground .robot-stage{width:min(640px,88vw);height:74vh;margin-left:calc(min(640px,88vw)/-2);margin-top:-32vh}
@media(max-width:600px){.robot-playground .robot-stage{height:65vh;margin-top:-24vh}}

/* A smaller full-body stage gives the robot room to chase in both dimensions. */
.robot-playground .robot-stage{width:min(460px,70vw);height:48vh;margin-left:calc(min(460px,70vw)/-2);margin-top:-24vh}
@media(max-width:600px){.robot-playground .robot-stage{width:72vw;height:42vh;margin-left:-36vw;margin-top:-21vh}}

/* Full-view WebGL buffer leaves room for freely rotating ragdoll limbs. */
.robot-playground .robot-stage{width:100vw;height:100vh;margin-left:-50vw;margin-top:-50vh}
