@font-face{font-family:Onest;src:url('assets/onest.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
:root{--paper:#fff;--soft:#f5f6fa;--ink:#11131b;--muted:#626a80;--line:#d7dce8;--accent:#3525d9;--action:#3525d9;--on-action:#fff;--focus:#3525d9;--error:#ab283b;--grid:#d9deea;--rail:12.6vw;--gutter:3.8vw;--ease-out:cubic-bezier(.23,1,.32,1);color-scheme:light}
:root[data-theme=dark]{--paper:#121620;--soft:#191e2a;--ink:#f0f2f9;--muted:#afb7cc;--line:#363f52;--accent:#aaa2ff;--action:#5544e5;--on-action:#fff;--focus:#c8c2ff;--error:#ff9cab;--grid:#344056;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;scrollbar-color:var(--muted) var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.55 Onest,Arial,sans-serif;-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--paper)}a{color:inherit;text-decoration:none;text-underline-offset:.22em}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--focus);outline-offset:5px}input,textarea{caret-color:var(--accent)}button{touch-action:manipulation}svg{width:24px;height:24px;flex:none}img{max-width:100%;display:block}figure,p,h1,h2,h3,ol,ul{margin:0}p+p{margin-top:20px}h1,h2,h3{font-weight:650;line-height:1.15;letter-spacing:-.035em}h1{font-weight:780}h2{font-size:clamp(28px,3.2vw,48px)}h3{font-size:22px}button{border:0}a,button{transition:color 150ms ease,background-color 150ms ease,transform 150ms var(--ease-out)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:10px;left:16px;transform:translateY(-180%);z-index:50;background:var(--action);color:#fff;padding:12px 20px}.skip:focus{transform:none}.page-layout{display:grid;grid-template-columns:var(--rail) minmax(0,1fr)}main{display:contents}.site-header{grid-column:1;grid-row:1;border-right:1px solid var(--line);padding:28px 22px;display:flex;flex-direction:column;align-items:flex-start;position:relative}.brand{display:block;width:100%;max-width:130px}.brand-image{display:block}.brand img{width:100%;height:auto}.brand-mobile{display:none}.site-header nav{display:flex;flex-direction:column;gap:14px;margin-top:60px;width:100%}.site-header nav a{font-size:clamp(12px,1.1vw,16px);min-height:36px;display:flex;align-items:center;position:relative;color:var(--muted);line-height:1.35}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--accent)}.site-header nav a[aria-current]:before{content:'';position:absolute;width:4px;height:4px;left:-12px;background:var(--accent);transform:rotate(45deg)}[data-theme=dark] .brand-image img{filter:invert(1) hue-rotate(180deg);mix-blend-mode:screen}.menu-toggle{display:none}.hero,.page-heading{grid-column:2;grid-row:1;position:relative;min-width:0}.hero{min-height:80.6vw;padding:3.2vw var(--gutter) 0}.hero-meta{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.technical-caption{display:flex;gap:18px;color:var(--muted);font-size:clamp(11px,.76vw,12px);font-weight:500;text-transform:uppercase;line-height:1.4;letter-spacing:.08em}.technical-caption i{display:block;width:8vw;height:1px;background:var(--line);margin-top:8px;flex:none}.slide-controls{display:flex;align-items:center;gap:20px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.slide-controls i{width:7vw;height:1px;background:var(--line)}.slide-controls button{background:transparent;padding:0;min-width:36px;min-height:36px;display:grid;place-items:center}.slide-controls button:first-of-type svg{transform:rotate(180deg)}.slide-controls button:hover{color:var(--accent)}.slide-controls svg{width:22px}.hero-copy{position:relative;z-index:2;pointer-events:none}.hero-copy>*{pointer-events:auto}.hero h1{font-size:7.2vw;line-height:.99;letter-spacing:-.055em;margin-top:2.4vw;white-space:nowrap}.hero h1>span{color:var(--accent)}.stop{color:var(--ink)}.hero-description{font-size:2.06vw;line-height:1.25;color:var(--muted);letter-spacing:-.035em;margin-top:2.1vw}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:52px;padding:14px 24px;background:var(--action);color:var(--on-action);font-size:15px;font-weight:550;border-radius:4px;border:1px solid transparent;line-height:1.3}.hero .button{margin-top:2vw;min-height:4.7vw;padding:1.15vw 2.4vw;font-size:1.4vw}.button:hover{background:var(--ink);color:var(--paper)}.button:active{transform:scale(.98)}.button:disabled{opacity:.65}.system-diagram{position:absolute;top:30.9vw;left:0;width:100%;height:47vw}.system-canvas{width:100%;height:100%;position:absolute;inset:0;pointer-events:none}.system-node{position:absolute;display:block;width:28%;aspect-ratio:1;background:none;padding:0;z-index:1;transform:translate(-50%,-50%);border-radius:3px}.system-node img{width:100%;height:100%;object-fit:contain;transition:transform 250ms var(--ease-out)}.node-goal{left:21%;top:51%}.node-interface{left:53%;top:27%}.node-logic{left:82%;top:54%}.node-data{left:51%;top:79%}.node-label{position:absolute;display:flex;flex-direction:column;align-items:flex-start;text-align:left;line-height:1.25;white-space:nowrap}.node-number{font-size:1.4vw;color:var(--accent);font-variant-numeric:tabular-nums;font-weight:450;margin-bottom:2px}.node-label strong{font-size:1.8vw;font-weight:650;letter-spacing:-.025em}.node-goal .node-label{left:16%;top:78%}.node-interface .node-label{left:76%;top:36%}.node-logic .node-label{left:79%;top:36%}.node-data .node-label{left:61%;top:80%}.node-caption{display:none}.diagram-callout{position:absolute;text-transform:uppercase;font-size:clamp(11px,.82vw,12px);line-height:1.4;letter-spacing:.04em;color:var(--muted);pointer-events:none}.callout-goal{left:6%;top:88%}.callout-logic{left:82%;top:7%}.callout-data{left:80%;top:97%}.system-detail{position:absolute;bottom:-16px;left:27%;width:48%;font-size:14px;line-height:1.4;padding:12px 18px;background:var(--paper);border:1px solid var(--line);color:var(--muted);z-index:3}.system-node[aria-pressed=true] .node-label strong{color:var(--accent)}.home-services,.process,.company-section,.closing,.catalog-section,.category-nav,.faq-layout,.contact-layout,.privacy-copy{grid-column:1/-1}.home-services{border-top:1px solid var(--line);padding:36px var(--gutter) 24px}.section-label{display:flex;align-items:center;gap:24px;color:var(--muted);font-size:11px;text-transform:uppercase;line-height:1.4;letter-spacing:.06em;font-weight:450}.section-label i{height:1px;background:var(--line);flex:1}.section-label span:last-child{max-width:45%}.section-label span:only-child{max-width:none}.home-services-layout{display:grid;grid-template-columns:2.05fr 1fr;gap:28px;margin-top:28px}.summary-row{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(0,1.05fr) 40px;gap:24px;align-items:start;padding:22px 0;border-bottom:1px solid var(--line)}.summary-row:last-child{border-bottom:0}.summary-row>svg{color:var(--accent)}.summary-row h2{font-size:clamp(17px,1.8vw,26px);letter-spacing:-.03em;line-height:1.2}.summary-row p{font-size:clamp(12px,1.15vw,16px);line-height:1.35;color:var(--muted)}.row-index{font-size:clamp(25px,2.7vw,40px);font-weight:250;color:var(--muted);line-height:1;font-variant-numeric:tabular-nums;padding-bottom:15px;position:relative}.row-index:after{content:'';height:1px;width:28px;position:absolute;left:0;bottom:0;background:var(--muted)}.summary-row:hover h2{color:var(--accent)}.picture{overflow:hidden}.picture img{width:100%;height:100%;object-fit:cover}.home-code{align-self:stretch;min-height:250px}.home-code img{object-position:48% 50%}.process{background:var(--soft);padding:34px var(--gutter) 40px}.process-steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:28px}.process-track{display:flex;align-items:center;gap:13px;position:relative;color:var(--ink);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.process-dot{width:31px;height:31px;border:1px solid var(--muted);border-radius:50%;position:relative;flex:none}.process-dot:before{content:'';position:absolute;inset:8px;border:1px solid var(--muted);border-radius:50%}.process-track i{flex:1;border-bottom:1px dotted var(--muted)}.process-steps li:last-child i{display:none}.process-steps h3{margin:6px 0 8px 45px;font-size:18px}.process-steps p{margin-left:45px;color:var(--muted);font-size:14px;line-height:1.4;max-width:28ch}.process-steps li.is-reached .process-dot{border-color:var(--accent)}.process-steps li.is-reached .process-dot:before{background:var(--accent);border-color:var(--accent)}.process-steps li.is-reached .process-track{color:var(--accent)}.company-section{padding:85px var(--gutter)}.company-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:42px}.company-grid h2{max-width:16ch}.company-grid p{max-width:64ch;color:var(--muted)}.lead{font-size:clamp(21px,2vw,29px);line-height:1.35;letter-spacing:-.025em;color:var(--muted)}.company-grid .lead{color:var(--ink);margin-bottom:24px}.text-link,.service-order{display:inline-flex;align-items:center;gap:22px;min-height:44px;color:var(--accent);font-weight:550}.text-link{margin-top:20px}.text-link:hover,.service-order:hover{text-decoration:underline}.company-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:52px}.company-photos .picture{aspect-ratio:1.7}.closing{padding:40px var(--gutter) 68px;border-top:1px solid var(--line)}.closing>div:last-child{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:38px}.closing h2{font-size:clamp(32px,4vw,60px)}footer{padding:38px var(--gutter) 24px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;font-size:14px;color:var(--muted)}.footer-brand{font-size:22px;font-weight:650;color:var(--ink);letter-spacing:-.04em}footer nav{display:flex;gap:24px;justify-content:flex-end;align-items:flex-start;flex-wrap:wrap}footer a:hover{color:var(--accent)}.footer-bottom{grid-column:1/-1;display:flex;gap:30px;border-top:1px solid var(--line);padding-top:22px;margin-top:14px;font-size:12px}.footer-bottom a:last-child{margin-left:auto}.page-heading{padding:46px var(--gutter) 64px;min-height:430px;border-bottom:1px solid var(--line);overflow:hidden}.page-heading h1{font-size:clamp(52px,6.1vw,92px);line-height:1.02;letter-spacing:-.045em;margin-top:50px;position:relative;z-index:1}.page-heading h1 span{color:var(--accent)}.page-heading .lead{font-size:clamp(18px,1.75vw,25px);margin-top:24px;position:relative;z-index:1}.heading-plate{position:absolute;right:-.7vw;bottom:4px;width:23vw;max-width:320px;opacity:1;z-index:0}.page-heading>div{position:relative;z-index:1}.category-nav{display:flex;align-items:center;gap:40px;border-bottom:1px solid var(--line);padding:22px var(--gutter);font-size:15px;color:var(--muted);flex-wrap:wrap}.category-nav a{min-height:32px;display:flex;align-items:center}.category-nav a:hover{color:var(--accent)}.catalog-section{padding:44px var(--gutter) 20px}.catalog-section .section-label{margin-bottom:18px}.service{display:grid;grid-template-columns:40px minmax(130px,.9fr) minmax(180px,1.25fr) minmax(220px,1.3fr);gap:28px;padding:32px 0;border-top:1px solid var(--line);align-items:start;scroll-margin-top:25px}.service-index{font-size:27px;font-weight:250;line-height:1;color:var(--muted);font-variant-numeric:tabular-nums}.service h3{font-size:clamp(21px,2.15vw,30px)}.service .picture{aspect-ratio:1.4}.service-copy p{font-size:16px;color:var(--muted);line-height:1.5}.service-copy .service-outcome{font-size:13px;line-height:1.45;margin-top:16px}.service-order{margin-top:20px}.faq-layout{display:grid;grid-template-columns:minmax(200px,.65fr) minmax(0,1.35fr);gap:9vw;padding:52px var(--gutter) 75px}.faq-layout aside h2{font-size:25px}.faq-layout aside>p{margin-top:20px;color:var(--muted);max-width:30ch}.faq-layout aside nav{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:28px 0}.faq-layout aside nav a{min-height:32px;color:var(--muted)}.faq-layout aside nav a:hover{color:var(--accent)}.faq-group{margin-bottom:45px;scroll-margin-top:28px}.faq-group .section-label{margin-bottom:20px}.faq-group details{border-top:1px solid var(--line)}.faq-group details:last-child{border-bottom:1px solid var(--line)}summary{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:76px;padding:20px 0;cursor:pointer;font-size:20px;line-height:1.35;letter-spacing:-.025em;list-style:none;font-weight:550}summary::-webkit-details-marker{display:none}summary svg{color:var(--accent)}details[open] summary svg{transform:rotate(45deg)}summary:hover{color:var(--accent)}.faq-answer{padding:0 46px 24px 0;color:var(--muted);max-width:70ch}.contact-layout{padding:55px var(--gutter) 85px;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:10vw}.contact-aside h2{margin:30px 0 24px}.contact-aside>p,.contact-aside li{color:var(--muted);max-width:45ch}.contact-aside ul{padding-left:20px;margin-top:24px}.contact-aside li+li{margin-top:10px}.contact-picture{margin-top:40px;aspect-ratio:1.65}.email-contact{margin-top:35px}.email-contact h3{font-size:16px;color:var(--muted);margin-bottom:8px}.email-contact a{color:var(--accent);overflow-wrap:anywhere}.enquiry-wrap{max-width:710px;min-width:0}.enquiry-wrap>h2{font-size:28px}.form-intro{color:var(--muted);font-size:14px;margin-top:16px;margin-bottom:30px;max-width:50ch}.field{margin-bottom:26px}.field label{display:block;font-size:15px;font-weight:550;margin-bottom:10px}input:not([type=checkbox]),select,textarea{display:block;width:100%;min-height:52px;border:1px solid var(--line);border-radius:0;background:var(--paper);padding:13px 15px;color:var(--ink);font-size:16px;line-height:1.5;box-shadow:none}textarea{resize:vertical;min-height:150px}select{padding-right:36px}input:hover,textarea:hover,select:hover{border-color:var(--muted)}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--error)}.field-hint,.field-error{font-size:13px;line-height:1.4;margin-top:9px;color:var(--muted)}.field-error{color:var(--error)}.consent-field{margin:0 0 26px}.consent-field label{display:flex;align-items:flex-start;gap:12px;font-size:13px;color:var(--muted);line-height:1.5}.consent-field input{width:19px;height:19px;margin:2px 0 0;flex:none;accent-color:var(--accent)}.consent-field a{text-decoration:underline;color:var(--ink)}.form-status{color:var(--error);margin-top:22px;font-size:15px;line-height:1.5}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-success{padding:32px;border:1px solid var(--line)}.form-success h3{font-size:30px}.form-success p{color:var(--muted);margin:18px 0 24px}.privacy-copy{max-width:1000px;width:100%;padding:60px var(--gutter) 80px;margin:auto}.privacy-copy h1{display:none}.privacy-copy h2{font-size:26px;margin:40px 0 15px}.privacy-copy h2:first-of-type{margin-top:0}.privacy-copy p{color:var(--muted)}.privacy-copy ul{padding-left:22px;margin-top:15px;color:var(--muted)}.privacy-copy a{color:var(--accent);text-decoration:underline;overflow-wrap:anywhere}
@media(hover:hover) and (pointer:fine){.system-node:hover img{transform:translateY(-6px)}.system-node:hover .node-label strong{color:var(--accent)}}
@media(min-width:1600px){.page-layout{max-width:1800px;margin:auto;--rail:202px;--gutter:61px}.hero{min-height:1288px;padding-top:51px}.hero h1{font-size:115px;margin-top:38px}.hero-description{font-size:33px;margin-top:34px}.hero .button{margin-top:32px;min-height:75px;padding:18px 38px;font-size:22px}.system-diagram{top:494px;height:752px}.node-number{font-size:22px}.node-label strong{font-size:29px}.page-heading h1{font-size:98px}}
@media(max-width:1100px) and (min-width:701px){.site-header{padding:22px 16px}.site-header nav{margin-top:50px;gap:10px}.slide-controls{gap:10px;font-size:11px}.hero h1{margin-top:2vw}.technical-caption{gap:12px}.slide-controls button{min-width:28px;min-height:28px}.home-services{padding-top:30px}.home-services-layout{gap:22px;margin-top:24px}.summary-row{gap:18px;padding:20px 0;grid-template-columns:24px 1.05fr 1fr 32px}.home-code{min-height:230px}.process-steps{gap:20px}.process-steps h3{font-size:16px}.process-steps p{font-size:12px}.section-label{font-size:11px;gap:20px}.process-dot{width:29px;height:29px}.process-track{font-size:12px;gap:9px}.process-steps h3,.process-steps p{margin-left:38px}.service{grid-template-columns:32px .8fr 1fr 1.15fr;gap:20px}.service-copy p{font-size:14px}.service-copy .service-outcome{font-size:12px}.page-heading{min-height:400px}.heading-plate{width:24vw}.contact-layout{gap:7vw}.company-section{padding-top:65px;padding-bottom:65px}}
@media(max-width:850px) and (min-width:701px){.site-header{padding-left:12px;padding-right:12px}.site-header nav a{font-size:11px}.hero-meta .technical-caption{font-size:11px}.slide-controls i{width:30px}.slide-controls{gap:7px}.hero .button{font-size:12px;min-height:40px}.hero-description{font-size:17px}.service{grid-template-columns:30px .8fr 1fr;gap:20px}.service h3{grid-column:2/4;grid-row:1}.service .picture{grid-column:2}.service-copy{grid-column:3}.faq-layout{gap:40px}.contact-layout{gap:40px}.page-heading .lead br{display:none}}
@media(max-width:700px){:root{--gutter:24px}.page-layout,main{display:block}.site-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:17px 24px;border-right:0;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:0}.brand{display:flex;width:auto;max-width:none;align-items:center;gap:9px}.brand-image{position:relative;width:36px;height:30px;overflow:hidden}.brand-image img{position:absolute;width:39px;max-width:none;height:auto;left:-1px;top:-1px}.brand-mobile{display:flex;flex-direction:column;font-size:13px;line-height:1.03;letter-spacing:-.03em;color:var(--ink)}.brand-mobile b{color:var(--accent);font-weight:750}.menu-toggle{display:none;background:transparent;width:44px;height:40px;padding:10px 7px;flex-direction:column;justify-content:center;gap:6px;margin-right:-7px}.js .menu-toggle{display:flex}.menu-toggle span{display:block;width:23px;height:1.5px;background:var(--ink)}.site-header nav{width:100%;margin-top:22px;gap:0;padding-bottom:4px}.site-header nav a{min-height:46px;font-size:16px;border-top:1px solid var(--line)}.site-header nav a[aria-current]:before{display:none}.js .site-header nav{display:none}.js .site-header.is-open nav{display:flex}.hero{padding:24px 24px 0;min-height:0}.hero-meta{display:block}.technical-caption{font-size:11px;letter-spacing:.1em;gap:0}.technical-caption i{display:none}.slide-controls{position:absolute;right:20px;top:17px;gap:2px}.slide-controls>span,.slide-controls i{display:none}.slide-controls button{min-width:32px;min-height:32px}.slide-controls svg{width:17px;height:17px}.hero-copy{pointer-events:auto}.hero h1{font-size:clamp(35px,10vw,65px);line-height:1;white-space:normal;letter-spacing:-.05em;margin-top:25px}.hero h1>span{display:inline}.hero-description{font-size:20px;line-height:1.25;margin-top:23px;letter-spacing:-.035em;max-width:30ch}.hero-description br{display:none}.hero .button{font-size:15px;min-height:52px;width:100%;margin-top:23px;padding:14px 20px}.system-diagram{position:relative;left:auto;top:auto;width:100%;height:auto;margin-top:24px;display:flex;flex-direction:column;gap:0;padding-bottom:12px}.system-canvas{display:none}.system-diagram:before{content:'';position:absolute;top:3px;bottom:30px;left:3px;width:1px;background:var(--line)}.system-node{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-rows:27px 100px;width:100%;height:143px;aspect-ratio:auto;left:auto;top:auto;transform:none;text-align:left;padding:0 0 0 23px}.system-node:before{content:'';position:absolute;left:0;top:74px;width:7px;height:7px;background:var(--accent);transform:rotate(45deg)}.system-node:after{content:'';position:absolute;left:72px;bottom:5px;width:1px;height:19px;background:var(--accent)}.system-node img{grid-row:2;grid-column:1;width:123px;height:123px;max-width:none;align-self:center;margin-left:-11px}.node-label{position:static!important;grid-row:1;grid-column:1/-1;display:flex;flex-direction:row;align-items:center;gap:18px;white-space:normal}.node-number{font-size:14px;min-width:18px;margin:0}.node-label strong{font-size:17px}.node-caption{display:block;grid-column:2;grid-row:2;align-self:center;text-transform:uppercase;font-size:11px;letter-spacing:.06em;line-height:1.4;color:var(--muted);max-width:20ch;margin-left:10px;position:relative}.node-caption:before{content:'';position:absolute;left:-29px;top:7px;width:20px;border-top:1px dotted var(--muted)}.system-node:last-of-type:after{display:none}.diagram-callout{display:none}.system-detail{position:relative;left:auto;bottom:auto;width:auto;margin:15px 0 5px 24px;padding:12px;font-size:14px}.home-services{padding:24px 24px 20px}.section-label{font-size:11px;gap:15px;letter-spacing:.07em}.section-label>span:last-child:not(:first-child){display:none}.home-services-layout{display:block;margin-top:12px}.home-code{display:none}.summary-row{grid-template-columns:20px minmax(0,1fr) 15px;column-gap:18px;row-gap:5px;padding:18px 0}.summary-row h2{font-size:19px;grid-column:2;grid-row:1}.summary-row>svg{width:20px;height:20px;grid-column:1;grid-row:1}.summary-row p{font-size:14px;line-height:1.4;grid-column:2;grid-row:2;max-width:34ch}.row-index{font-size:12px;padding:0;grid-column:3;grid-row:1;color:var(--muted);align-self:center}.row-index:after{display:none}.process{padding:28px 24px 35px}.process-steps{grid-template-columns:1fr;gap:25px;margin-top:25px}.process-steps li{position:relative}.process-track i{display:none}.process-steps h3{font-size:19px;margin-left:44px;margin-top:-24px;padding-left:29px}.process-steps p{font-size:15px;margin:14px 0 0 44px;max-width:36ch}.process-track{gap:13px;font-size:13px}.process-dot{width:30px;height:30px}.company-section{padding:44px 24px}.company-grid{display:block;margin-top:27px}.company-grid h2{font-size:32px;margin-bottom:25px}.company-grid p{font-size:16px}.company-grid .lead{font-size:22px}.company-photos{gap:14px;margin-top:28px;grid-template-columns:1fr}.company-photos .picture{aspect-ratio:1.6}.company-photos .picture+figure{display:none}.closing{padding:30px 24px 40px}.closing>div:last-child{display:block;margin-top:26px}.closing h2{font-size:31px}.closing .button{margin-top:24px;width:100%}footer{padding:28px 24px 22px;grid-template-columns:1fr;gap:20px;font-size:13px}.footer-brand{font-size:22px}footer nav{justify-content:flex-start;gap:15px 24px}footer nav a{min-height:32px;display:flex;align-items:center}.footer-bottom{flex-wrap:wrap;font-size:11px;gap:14px 22px;margin:0;padding-top:20px}.footer-bottom span{width:100%}.footer-bottom a:last-child{margin-left:auto}.page-heading{padding:28px 24px 34px;min-height:0;overflow:visible}.page-heading h1{font-size:clamp(37px,10vw,62px);margin-top:30px;letter-spacing:-.045em;line-height:1.05}.page-heading .lead{font-size:19px;line-height:1.4;margin-top:24px}.page-heading .lead br{display:none}.heading-plate{display:none}.category-nav{padding:12px 24px;gap:7px 24px;font-size:13px}.category-nav a{min-height:36px}.catalog-section{padding:29px 24px 4px}.catalog-section .section-label{margin-bottom:16px}.service{display:grid;grid-template-columns:25px minmax(0,1fr);gap:19px 12px;padding:27px 0 30px}.service-index{font-size:20px;line-height:1.2}.service h3{font-size:25px;grid-column:2;line-height:1.15}.service .picture{grid-column:1/-1;aspect-ratio:1.55}.service-copy{grid-column:1/-1}.service-copy p{font-size:16px}.service-copy .service-outcome{font-size:13px;margin-top:14px}.service-order{margin-top:15px;font-size:16px}.faq-layout{display:block;padding:30px 24px 20px}.faq-layout aside h2{font-size:23px}.faq-layout aside>p{font-size:15px;max-width:36ch;margin-top:13px}.faq-layout aside nav{gap:2px;margin-top:20px}.faq-layout aside nav a{font-size:14px;min-height:36px}.faq-layout aside{padding-bottom:36px}.faq-layout aside .text-link{margin-top:8px}.faq-group{margin-bottom:35px}.faq-group .section-label{margin-bottom:14px}summary{font-size:18px;min-height:72px;padding:19px 0;gap:15px}.faq-answer{font-size:15px;padding-right:20px}.contact-layout{display:block;padding:30px 24px 45px}.contact-aside h2{font-size:29px;margin-top:24px}.contact-aside p,.contact-aside li{font-size:15px}.contact-aside ul{margin-top:20px}.contact-picture{display:none}.enquiry-wrap{padding-top:38px;margin-top:32px;border-top:1px solid var(--line)}.enquiry-wrap>h2{font-size:26px}.form-intro{font-size:13px;max-width:38ch;margin-bottom:25px}.field{margin-bottom:23px}.submit{width:100%}.form-success{padding:22px}.form-success h3{font-size:26px}.form-success .button{font-size:13px;gap:14px;width:100%;padding:13px}.privacy-copy{padding:30px 24px 45px}.privacy-copy h2{font-size:24px}.privacy-copy p,.privacy-copy li{font-size:15px}}
@media(max-width:350px){:root{--gutter:20px}.site-header{padding-left:20px;padding-right:20px}.hero{padding-left:20px;padding-right:20px}.hero h1{font-size:34px}.hero-description{font-size:19px}.system-node{grid-template-columns:103px minmax(0,1fr)}.node-caption{font-size:11px;margin-left:7px}.home-services,.process,.company-section,.closing,.page-heading,.faq-layout,.contact-layout,.privacy-copy{padding-left:20px;padding-right:20px}.catalog-section,.category-nav{padding-left:20px;padding-right:20px}.summary-row h2{font-size:17px}.summary-row{column-gap:13px}.page-heading h1{font-size:34px}.service h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.system-node:hover img{transform:none!important}}
html[data-keyboard=true]{scroll-behavior:auto}html[data-keyboard=true] *{transition:none!important}html[data-keyboard=true] .system-node:hover img{transform:none}
@media(min-width:701px){.brand{display:flex;flex-direction:column;align-items:flex-start}.brand-image{width:100%;height:5.3vw;max-height:78px;overflow:hidden}.brand-image img{width:100%;height:auto}.brand-mobile{display:flex;flex-direction:column;font-size:clamp(12px,1.3vw,19px);line-height:1.02;letter-spacing:-.035em}.brand-mobile b{color:var(--accent);font-weight:750}.site-header nav{margin-top:5.5vw}}
/* Optical alignment to the approved desktop composition. */
@media(min-width:701px){.hero h1{font-size:8.15vw;font-weight:750}.node-goal{top:44%}.node-interface{top:26%}.node-logic{top:51%}.node-data{top:71%}.node-goal .node-label{top:72%}.node-interface .node-label{top:34%}.node-data .node-label{top:74%}}
@media(max-width:1100px) and (min-width:701px){.home-services{padding-top:28px;padding-bottom:20px}.home-services-layout{margin-top:20px}.summary-row{padding:14px 0;grid-template-columns:24px .9fr 1.1fr 32px}.home-code{min-height:210px;height:210px;align-self:start}.process{padding-top:28px;padding-bottom:30px}}
@media(min-width:1600px){.hero h1{font-size:130px}}
@media(min-width:701px){.hero .button{width:20.5vw;margin-top:1.6vw;gap:18px}.hero .button svg{width:20px;height:20px}.node-goal{left:21.4%;top:45.6%;width:26%}.node-goal .node-label{top:70%}.node-interface{left:51.7%;top:27%;width:29%}.node-logic{left:79.2%;top:52.6%;width:26%}.node-logic .node-label{left:86%;top:35%}.node-data{left:49.2%;top:68.8%;width:31%}.callout-goal{top:81%}.callout-data{top:92%}}
@media(min-width:701px){.hero .button{padding-inline:16px;gap:16px;white-space:nowrap}.hero .button span{white-space:nowrap}}
.heading-plate{height:auto}
@media(max-width:700px){.brand-image{height:24px}.hero h1{font-size:clamp(40px,13vw,65px)}.system-node{height:155px;grid-template-columns:126px minmax(0,1fr);grid-template-rows:28px 110px}.system-node img{width:140px;height:140px;margin-left:-16px}.system-node:after{left:76px}}
@media(max-width:350px){.hero h1{font-size:40px}.system-node{grid-template-columns:112px minmax(0,1fr)}.system-node img{width:126px;height:126px;margin-left:-15px}}
@media(max-width:700px){.hero h1{min-height:clamp(120px,39vw,195px)}.hero h1[data-slide="1"]{font-size:clamp(36px,11.5vw,65px)}}
@media(min-width:1101px){.slide-controls{font-size:1.15vw;gap:1.6vw}.slide-controls button{min-width:3.8vw;min-height:3vw}.slide-controls svg{width:2.4vw;height:2.4vw}.section-label{font-size:.97vw}.process-track{font-size:1.3vw;gap:1.4vw}.process-dot{width:3.13vw;height:3.13vw}.process-dot:before{inset:.86vw}.process-steps h3{font-size:1.73vw;margin-left:4.53vw}.process-steps p{font-size:1.3vw;margin-left:4.53vw}.process-steps{gap:3vw}}
@media(min-width:1101px){.home-services{padding-top:46px;padding-bottom:30px}.home-services-layout{margin-top:34px}.summary-row{padding-top:28px;padding-bottom:28px}.home-code{height:22.7vw;min-height:0;align-self:start}}
.field input:not([type=checkbox]),.field select,.field textarea{border-color:#8c94a6}
[data-theme=dark] .field input:not([type=checkbox]),[data-theme=dark] .field select,[data-theme=dark] .field textarea{border-color:#68748e}
.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--error)}
.technical-caption{font-size:clamp(11px,.9vw,14px)}.diagram-callout{font-size:clamp(11px,.82vw,14px)}.section-label{font-size:clamp(11px,.97vw,16px)}.slide-controls{font-size:max(11px,1.15vw)}
@media(min-width:701px){.node-number{font-size:clamp(11px,1.4vw,22px)}}
@media(min-width:1101px){.home-services{padding-bottom:48px}}
@media(max-width:700px){.technical-caption{font-size:11px}.node-caption{font-size:11px}}

.section-label h2{font:inherit;letter-spacing:inherit;line-height:inherit}.hero-description{line-height:1.3}
@media(min-width:1101px){.home-services{padding-bottom:40px}}
@media(min-width:1101px){.process .section-label{position:relative;top:10px}}

/* One geometry for track, thumb and travel; the button retains its 44px hit area. */
.theme-control{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;align-self:center;margin-top:auto;padding:40px 0 38px;color:var(--muted)}
.theme-control>svg{display:block;width:clamp(12px,1.7vw,20px);height:clamp(12px,1.7vw,20px);stroke:currentColor;stroke-width:1.3;flex:none}
.theme-toggle{--switch-width:44px;--switch-height:26px;--switch-knob:18px;--switch-inset:3px;display:inline-grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:4px;background:transparent;color:var(--ink)}
.theme-track{display:block;position:relative;box-sizing:border-box;width:var(--switch-width);height:var(--switch-height);border:1px solid var(--muted);border-radius:999px;background:var(--paper)}
.theme-thumb{display:block;position:absolute;top:var(--switch-inset);left:var(--switch-inset);width:var(--switch-knob);height:var(--switch-knob);border-radius:50%;background:currentColor;transform:translateX(0);transition:transform 150ms var(--ease-out)}
[data-theme=dark] .theme-thumb{transform:translateX(calc(var(--switch-width) - var(--switch-knob) - var(--switch-inset) * 2 - 2px))}
@media(min-width:701px) and (max-width:900px){.theme-control>svg{display:none}}
@media(max-width:700px){.site-header .theme-control{position:absolute;right:75px;top:15px;width:44px;height:44px;margin:0;padding:0}.theme-control>svg{display:none}.theme-toggle{--switch-width:38px;--switch-height:24px;--switch-knob:16px}}
@media(min-width:701px){.node-goal .node-label{left:0;top:82%}.node-data .node-label{left:68%;top:91%}.system-detail{top:calc(100% + 14px);bottom:auto;left:22%;width:56%;margin:0}.hero:has(.system-detail:not([hidden])){min-height:calc(80.6vw + 110px)}}
@media(min-width:1600px){.hero:has(.system-detail:not([hidden])){min-height:1398px}}

.picture.illustration{background:var(--soft)}.picture.illustration img{object-fit:contain;object-position:center;opacity:1}

/* Requested hero reading order: copy, system, then caption and manual controls. */
@media(min-width:701px){
 .hero{padding-top:2vw;min-height:calc(71.4vw + 104px)}
 .hero h1{margin-top:0}
 .system-diagram{top:24.4vw}
 .hero-meta{position:absolute;left:var(--gutter);right:var(--gutter);top:calc(71.4vw + 24px);min-height:44px;align-items:center}
 .hero:has(.system-detail:not([hidden])){min-height:calc(71.4vw + 220px)}
 .hero:has(.system-detail:not([hidden])) .hero-meta{top:calc(71.4vw + 140px)}
 .site-header .theme-control{margin-top:16px;padding:0}
 .site-header nav{margin-top:32px}
}
@media(min-width:1600px){.hero{padding-top:32px;min-height:1246px}.system-diagram{top:390px}.hero-meta{top:1166px}.hero:has(.system-detail:not([hidden])){min-height:1362px}.hero:has(.system-detail:not([hidden])) .hero-meta{top:1282px}}
@media(max-width:700px){.hero{padding-top:20px}.hero h1{margin-top:0}.hero-meta{position:static;display:flex;justify-content:space-between;align-items:center;gap:16px;margin:20px 0 26px}.hero-meta .technical-caption{font-size:11px;max-width:26ch}.slide-controls{position:static;gap:4px;flex:none}.slide-controls button{min-width:44px;min-height:44px}.slide-controls>span,.slide-controls i{display:none}}
body:focus{outline:none}
.back-to-top{display:inline-flex;align-items:center;justify-content:center;flex:none;width:48px;height:48px;min-height:48px;border:1px solid var(--accent);border-radius:4px;background:var(--paper);color:var(--accent);line-height:1}
.back-to-top svg{width:22px;height:22px}
.back-to-top:hover{background:var(--action);color:var(--on-action)}
.js .back-to-top{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));z-index:20;margin:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out),background-color 150ms ease,color 150ms ease,visibility 0s 180ms}
.js .back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
@media(max-width:700px){.js .back-to-top{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}}

/* Manual slide controls belong to their changing headline and description. */
.hero-copy .slide-controls{position:static;display:flex;align-items:center;justify-content:flex-start;width:max-content;max-width:100%;gap:12px;margin-top:12px;pointer-events:auto}
.hero-copy .slide-controls>[data-slide-counter]{display:inline-block;font-size:14px}
.hero-copy .slide-controls i{display:block;width:clamp(48px,7vw,100px)}
.hero-copy .slide-controls button{min-width:44px;min-height:44px}
.hero-copy .slide-controls svg{width:24px;height:24px}
@media(max-width:700px){.hero-copy .slide-controls{margin-top:16px}.hero-meta{justify-content:flex-start}}

/* Direct email contact, replacing the enquiry form. */
.contact-details{max-width:710px;min-width:0;scroll-margin-top:32px}.contact-details>h2{font-size:28px}.contact-invitation{margin-top:24px;max-width:46ch;color:var(--muted);font-size:20px;line-height:1.5}.contact-details .email-contact{margin-top:36px}.contact-details .email-contact a{display:inline-block;max-width:100%;font-size:clamp(20px,2.2vw,30px);line-height:1.4;letter-spacing:-.02em}.contact-details .email-contact a:hover{text-decoration:underline}.legal-contact{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}.legal-contact h3{font-size:16px;color:var(--muted);margin-bottom:12px}.legal-contact address{font-style:normal;max-width:42ch;font-size:18px;line-height:1.6;overflow-wrap:anywhere}@media(max-width:700px){.contact-details{padding-top:32px;margin-top:32px;border-top:1px solid var(--line);scroll-margin-top:24px}.contact-details>h2{font-size:26px}.contact-invitation{font-size:17px;margin-top:20px}.contact-details .email-contact{margin-top:28px}.legal-contact{margin-top:28px;padding-top:24px}.legal-contact address{font-size:16px}}
