:root{--font-sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;--paper:#d9d9d9;--ink:#262525;--ink-soft:#4a4a4a;--line:#26252524;--line-strong:#26252573;--accent:#8a4b36;--accent-deep:#6a3826;--accent-soft:#cf9a76;--bg-2:#d1d1d1;--bg-deep:#c9c9c9;--bg-card:#e3e3e3;--header-bg:#d9d9d9eb;--on-accent:#f6f1e4;--hero-fade:#c9c9c9;--footer-bg:#c9c9c9;--max:1240px;--gutter:clamp(16px,5vw,48px);--radius:16px;--radius-sm:10px;--fs-display:clamp(2rem,5.5vw,3.5rem);--fs-body:1rem;--fs-label:.8125rem;--hit-min:24px;--bp-sm:360px;--bp-md:640px;--bp-lg:900px;--space-1:.45rem;--space-2:.5rem;--space-3:.55rem;--space-4:.6rem;--space-5:.7rem;--space-6:.75rem;--space-7:.8rem;--space-8:.85rem;--space-9:.9rem;--space-10:1rem;--space-11:1.1rem;--space-12:1.15rem;--space-13:1.25rem;--space-14:1.5rem;--space-15:1.75rem;--space-16:2rem;--space-17:2.25rem;--space-18:2.5rem;--space-xl:4rem;--space-section:clamp(4rem,10vw,7.5rem);--space-product:clamp(4rem,10vw,8rem);--space-hero-top:clamp(2.5rem,6vw,5rem);--space-product-head-mb:clamp(2.5rem,6vw,4rem);--lh-body:1.65;--lh-heading:1.06;--lh-btn:1;--lh-lede:1.5;--lh-tech-list:1.55;--ls-email:.01em;--ls-logo:.12em;--ls-eyebrow:.22em;--max-hero-copy:820px;--max-section-title:18ch;--max-hero-sub:34ch;--max-intro-body:56ch;--max-contacts-inner:760px;--max-contacts-note:46ch;--size-header-h:68px;--size-header-h-sm:58px;--size-logo-h:36px;--size-logo-h-sm:28px;--size-logo-hero:clamp(320px,60vw,680px);--size-icon-copy:14px;--size-icon-copy-offset:3px;--size-icon-radius:3px;--size-bullet:6px;--size-border:1px;--size-border-thick:1.5px;--radius-pill:999px;--opacity-soft:.82;--opacity-disabled:.5;--z-skip:100;--z-header:50;--duration-fast:.2s;--duration-base:.3s;--delay-stagger:60ms;--ease-out:cubic-bezier(.22,1,.36,1);--btn-min-width:8.5em;--nav-gap:2.25rem;--nav-gap-md:1.25rem;--nav-gap-sm:.9rem;--nav-gap-xs:.7rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;margin:0}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}h1,h2,h3{font-weight:600;line-height:var(--lh-heading);margin:0}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}figure{margin:0}:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}.container{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--gutter);z-index:var(--z-skip);padding:var(--space-6)var(--space-11);background:var(--ink);color:var(--paper);border-radius:var(--radius-sm);position:absolute;inset-inline-start:var(--gutter);transform:translateY(-300%)}.skip-link:focus-visible{transform:translateY(0)}.site-header{z-index:var(--z-header);background:var(--header-bg);border-bottom:var(--size-border)solid var(--line-strong);position:sticky;top:0}.header-inner{height:var(--size-header-h);justify-content:space-between;align-items:center;display:flex}.logo{min-height:var(--hit-min);border-radius:var(--radius-sm);align-items:center;display:inline-flex}.logo-img{height:var(--size-logo-h);width:auto}.nav{align-items:center;gap:var(--nav-gap);display:flex}.nav-link{min-height:var(--hit-min);font-size:var(--fs-label);color:var(--ink-soft);border-radius:var(--radius-sm);align-items:center;font-weight:500;display:inline-flex}.nav-link:hover{color:var(--ink)}.nav-link:active{color:var(--accent-deep)}.nav-link--cta{padding:var(--space-3)var(--space-11);border:var(--size-border)solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink)}.nav-link--cta:hover{border-color:var(--accent)}.nav-link--cta:active{border-color:var(--accent-deep)}.hero{background:linear-gradient(var(--paper),var(--hero-fade));color:var(--ink);aspect-ratio:1033/500;overflow:hidden}.hero-logo{width:100%;height:100%;margin:0;display:block}.hero-logo img{object-fit:cover;object-position:center center;width:100%;height:100%;transform:translate(-7.6468%)}.btn{justify-content:center;align-items:center;gap:var(--space-3);min-height:var(--hit-min);padding:var(--space-7)var(--space-14);appearance:none;border:var(--size-border)solid var(--line);border-radius:var(--radius-pill);font-family:inherit;font-size:var(--fs-label);font-weight:600;line-height:var(--lh-btn);cursor:pointer;text-decoration:none;display:inline-flex}.btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover,.btn--primary:active{background:var(--accent-deep)}.btn--ghost{border-color:var(--line-strong);color:var(--ink)}.btn--ghost:hover{border-color:var(--accent)}.btn--ghost:active{background:var(--line)}.btn--accent{min-width:var(--btn-min-width);background:var(--accent);color:var(--on-accent)}.btn--accent:hover,.btn--accent:active{background:var(--accent-deep)}.btn--accent.is-copied{background:var(--accent-soft);color:var(--ink)}.btn--accent.is-error{background:var(--paper);color:var(--accent-deep);border-color:var(--accent-deep)}.section{padding:var(--space-section)0}.section-title{font-size:var(--fs-display);max-width:var(--max-section-title)}.eyebrow{font-size:var(--fs-label);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;margin-bottom:var(--space-13);color:var(--accent-deep)}.section--intro{background:var(--paper)}.section--alt{background:var(--bg-2);color:var(--ink)}.section--contacts{background:var(--bg-deep);color:var(--ink);border-top:var(--size-border)solid var(--line-strong)}.intro-grid{gap:var(--space-xl);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;display:grid}.intro-grid .eyebrow{grid-column:1/-1}.intro-body{gap:var(--space-13);display:grid}.intro-body .lede{font-size:var(--fs-body);line-height:var(--lh-lede);color:var(--ink);font-weight:500}.intro-body p{color:var(--ink-soft);max-width:var(--max-intro-body)}.intro-actions{gap:var(--space-9);margin-top:var(--space-13);flex-wrap:wrap;display:flex}.tech-grid{gap:var(--space-13);margin-top:var(--space-product-head-mb);grid-template-columns:repeat(3,1fr);display:grid}.tech-card{padding:var(--space-16);background:var(--bg-card);border:var(--size-border)solid var(--line-strong);border-radius:var(--radius)}.tech-card__title{font-size:var(--fs-body);color:var(--accent-deep);margin-bottom:var(--space-11);font-weight:600}.tech-list{gap:var(--space-8);display:grid}.tech-list li{color:var(--ink-soft);font-size:var(--fs-body);line-height:var(--lh-tech-list);padding-inline-start:var(--space-12);position:relative}.tech-list li:before{content:"";width:var(--size-bullet);height:var(--size-bullet);background:var(--accent);border-radius:50%;position:absolute;top:.62em;left:0}.cycle{gap:var(--space-13);margin-top:var(--space-product-head-mb);counter-reset:cycle;grid-template-columns:repeat(3,1fr);display:grid}.cycle__item{counter-increment:cycle;padding:var(--space-16);background:var(--bg-card);border:var(--size-border)solid var(--line-strong);border-radius:var(--radius);color:var(--ink);font-size:var(--fs-body);line-height:var(--lh-tech-list)}.cycle__item:before{content:counter(cycle,decimal-leading-zero);margin-bottom:var(--space-11);font-size:var(--fs-label);letter-spacing:var(--ls-eyebrow);color:var(--accent-deep);font-weight:700;display:block}.list--cards{gap:var(--space-13);margin-top:var(--space-product-head-mb);grid-template-columns:repeat(2,1fr);display:grid}.list--cards li{padding:var(--space-16);background:var(--bg-card);border:var(--size-border)solid var(--line-strong);border-radius:var(--radius);color:var(--ink-soft);font-size:var(--fs-body);line-height:var(--lh-tech-list)}.clients-grid{gap:var(--space-13);margin-top:var(--space-product-head-mb);grid-template-columns:repeat(2,1fr);display:grid}.clients-grid li{padding:var(--space-16);background:var(--bg-card);border:var(--size-border)solid var(--line-strong);border-radius:var(--radius);color:var(--ink);font-size:var(--fs-body)}.patents{margin-top:var(--space-17);padding-top:var(--space-16);border-top:var(--size-border)solid var(--line-strong)}.patents__title{font-size:var(--fs-body);color:var(--accent-deep);margin:0 0 var(--space-11);font-weight:600}.patents__list{gap:var(--space-4);flex-wrap:wrap;display:flex}.patents__list li{display:flex}.patents__link{min-height:var(--hit-min);padding:var(--space-2)var(--space-10);border:var(--size-border)solid var(--line-strong);border-radius:var(--radius-pill);font-size:var(--fs-label);color:var(--ink);align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.patents__link:hover{border-color:var(--accent);color:var(--accent-deep)}.patents__link:active{border-color:var(--accent-deep)}.team-grid{gap:var(--space-13);margin-top:var(--space-product-head-mb);grid-template-columns:repeat(2,1fr);display:grid}.team-card{justify-content:space-between;align-items:baseline;gap:var(--space-10);padding:var(--space-16);background:var(--bg-card);border:var(--size-border)solid var(--line-strong);border-radius:var(--radius);display:flex}.team-role{color:var(--ink);font-size:var(--fs-body)}.team-count{color:var(--ink-soft);font-size:var(--fs-label);white-space:nowrap}.contacts-inner{max-width:var(--max-contacts-inner);text-align:center}.contacts-inner .section-title{margin-inline:auto}.contacts-note{margin:var(--space-14)auto 0;max-width:var(--max-contacts-note);color:var(--ink-soft)}.contact-card{margin-top:var(--space-18);justify-content:center;align-items:center;gap:var(--space-10);padding:var(--space-10);background:var(--bg-card);border:var(--size-border)solid var(--line-strong);border-radius:var(--radius);flex-wrap:wrap;display:flex}.contact-value{font-size:var(--fs-label);color:var(--ink);letter-spacing:var(--ls-email)}.copy-icon{width:var(--size-icon-copy);height:var(--size-icon-copy);border:var(--size-border-thick)solid currentColor;border-radius:var(--size-icon-radius);flex:none;position:relative}.copy-icon:after{content:"";top:calc(var(--size-icon-copy-offset)*-1);width:var(--size-icon-copy);height:var(--size-icon-copy);border:var(--size-border-thick)solid currentColor;border-radius:var(--size-icon-radius);position:absolute;inset-inline-start:var(--size-icon-copy-offset)}.site-footer{background:var(--footer-bg);color:var(--ink-soft);border-top:var(--size-border)solid var(--line-strong);padding:var(--space-16)0}.footer-inner{justify-content:space-between;align-items:center;gap:var(--space-6)var(--space-16);font-size:var(--fs-label);flex-wrap:wrap;display:flex}.footer-brand{letter-spacing:var(--ls-logo);color:var(--ink);font-weight:700}@media (width<=900px){.nav{gap:var(--nav-gap-md)}.intro-grid,.tech-grid,.cycle{grid-template-columns:1fr}}@media (width<=640px){.header-inner{height:var(--size-header-h-sm)}.logo-img{height:var(--size-logo-h-sm)}.nav{gap:var(--nav-gap-sm)}.nav-link--hide-sm{display:none}.nav-link--cta{padding:var(--space-1)var(--space-7)}.list--cards,.clients-grid,.team-grid{grid-template-columns:1fr}.team-card{align-items:flex-start;gap:var(--space-4);flex-direction:column}.contact-card{gap:var(--space-9);flex-direction:column}.footer-inner{text-align:center;justify-content:center}}@media (width<=360px){.nav{gap:var(--nav-gap-xs)}}.btn,.nav-link,.nav-link--cta,.skip-link{transition:transform var(--duration-fast)var(--ease-out)}.btn:hover,.nav-link:hover,.nav-link--cta:hover{transform:translateY(-1px)}.btn:active,.nav-link:active,.nav-link--cta:active{transform:translateY(1px)}.btn:disabled{transform:none}@keyframes motion-fade-in{0%{opacity:0}to{opacity:1}}.hero-logo{animation:motion-fade-in var(--duration-base)var(--ease-out)backwards}@supports (animation-timeline:view()){.intro-body,.intro-actions,.tech-card,.cycle__item,.list--cards li,.team-card,.clients-grid li,.patents,.contacts-inner{animation:motion-fade-in var(--duration-base)var(--ease-out)both;animation-timeline:view();animation-range:entry entry 60%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;transition-delay:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:.001ms!important}@supports (animation-timeline:view()){*,:before,:after{animation-timeline:auto!important}}}