:root{--bp-phone:390px;--bp-tablet:768px;--bp-desktop:1024px;--bp-wide:1440px;--color-bg:#fff;--color-bg-soft:#f7f6fa;--color-text:#111;--color-text-secondary:#555;--color-accent:#5b2be0;--color-accent-dark:#4720b9;--color-accent-light:#eee9ff;--color-accent-on-dark:var(--color-accent-light);--color-border:#e3e3e8;--color-field-border:#8a8a94;--color-placeholder:#767676;--color-error:#d92d20;--color-error-bg:#fff1f0;--color-success:#067647;--color-success-bg:#ecfdf3;--color-success-decor:#12b76a;--color-warning:#b54708;--color-warning-bg:#fff7ed;--color-warning-decor:#f79009;--color-overlay:#111111b8;--color-transparent:transparent;--font-family:"Roboto Flex", Arial, sans-serif;--font-wdth-heading:48;--font-wdth-body:100;--font-weight-regular:400;--font-weight-medium:520;--font-weight-bold:760;--font-weight-black:790;--font-h1:clamp(2.5rem, 5.2vw, 4.5rem);--font-h1-long:clamp(2.25rem, 9vw, 4.5rem);--font-h2:clamp(2rem, 3.7vw, 3rem);--font-h3:clamp(1.375rem, 2.2vw, 2rem);--font-body-lg:clamp(1.0625rem, 1.4vw, 1.125rem);--font-body:1rem;--font-small:.875rem;--font-overline:.75rem;--line-heading:.94;--line-body:1.6;--line-tight:1.2;--tracking-overline:.18em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--section-space:clamp(4rem, 8vw, 6rem);--gutter:clamp(1rem, 4vw, 2rem);--grid-gap:clamp(1rem, 2vw, 1.5rem);--radius-1:.5rem;--radius-2:.75rem;--radius-3:1rem;--radius-4:1.5rem;--radius-round:100%;--shadow-small:0 .5rem 1.5rem #1111110d;--shadow-focus:0 0 0 .25rem #eee9ff;--shadow-modal:0 1.5rem 4rem #11111129;--duration-fast:.15s;--duration-base:.22s;--duration-slow:.3s;--duration-spin:.8s;--stagger:50ms;--ease:cubic-bezier(.2, .8, .2, 1);--container:80rem;--header-height:5rem;--target-size:2.75rem;--field-height:3.5rem;--icon-size:1.5rem;--icon-size-lg:2rem;--line-width:1.5px;--ring-size:clamp(17rem, 32vw, 25rem);--modal-width:35rem;--content-measure:70ch;--narrow-measure:48ch;--reveal-offset:1rem;--active-shift:1px;--ui-min:16rem;--ui-state-min:9rem;--module-height:13rem;--module-height-mobile:10rem;--service-height:18rem;--service-height-large:25rem;--service-height-mobile:15rem;--hero-height-mobile:34rem;--hero-height-desktop:43rem;--hero-ring-size:19rem;--diagram-node:3rem;--diagram-line:5rem;--illustration-height:6rem;--problem-visual-min:7rem;--service-visual-min:8rem;--case-metric-size:clamp(3rem, 5vw, 5rem);--demo-height:6rem;--demo-height-large:8rem;--opacity-disabled:.48;--opacity-line:.35;--hover-shift:-.25rem;--hover-scale:1.015;--hero-image-ratio:4 / 5;--case-image-ratio:4 / 3;--team-image-ratio:4 / 5}@media (max-width:47.999rem){:root{--font-h1:clamp(2.5rem, 11vw, 2.75rem);--font-h2:clamp(1.75rem, 8vw, 2rem);--font-h3:clamp(1.375rem, 6vw, 1.625rem);--section-space:var(--space-16);--header-height:4.5rem}}
@layer base{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--color-text);background:var(--color-bg);font-family:var(--font-family);font-size:var(--font-body);font-variation-settings:"wdth" var(--font-wdth-body);line-height:var(--line-body);margin:0;overflow-x:clip}body.menu-open,body.modal-open{overflow:hidden}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:var(--color-transparent)}a{color:inherit;text-underline-offset:var(--space-1);text-decoration-thickness:1px}p,h1,h2,h3{margin-block:0}ul,ol{margin:0;padding:0}button{color:inherit}:focus-visible{outline:var(--line-width) solid var(--color-accent);outline-offset:var(--space-1)}.container{width:min(100% - (var(--gutter) * 2), var(--container));margin-inline:auto}.grid{gap:var(--grid-gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.section{padding-block:var(--section-space)}.section--soft{background:var(--color-bg-soft)}.section-heading{gap:var(--space-4);max-width:var(--content-measure);margin-block-end:var(--space-12);display:grid}.section-heading--split{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;max-width:none}.section-heading--split>div{gap:var(--space-4);display:grid}.section-heading--split>p{max-width:var(--narrow-measure);justify-self:end}.overline{color:var(--color-accent);font-size:var(--font-overline);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-overline);text-transform:uppercase}h1,h2,h3,.display{overflow-wrap:anywhere;font-variation-settings:"wdth" var(--font-wdth-heading);font-weight:var(--font-weight-black);line-height:var(--line-heading)}h1{font-size:var(--font-h1)}h2{font-size:var(--font-h2)}h3{font-size:var(--font-h3)}.body-lg{font-size:var(--font-body-lg)}.muted{color:var(--color-text-secondary)}.accent{color:var(--color-accent)}.small{font-size:var(--font-small)}.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}.contact-icon{width:var(--target-size);height:var(--target-size);color:var(--color-text-secondary);transition:color var(--duration-fast) var(--ease);justify-content:center;align-items:center;display:inline-flex}.contact-icon:hover,.contact-icon:focus-visible{color:var(--color-accent)}.reveal{opacity:1;transition:opacity var(--duration-slow) var(--ease), transform var(--duration-slow) var(--ease);transform:translateY(0)}.reveal.is-entering{opacity:0;transform:translateY(var(--reveal-offset))}.reveal.is-entering.is-visible{opacity:1;transform:translateY(0)}.ui-page main{padding-block:var(--space-12) var(--section-space)}.ui-section{padding-block:var(--space-12);border-block-end:1px solid var(--color-border)}.ui-grid{grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--ui-min)), 1fr));gap:var(--space-6);margin-block-start:var(--space-8);display:grid}.state-row{align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;margin-block-start:var(--space-6);display:flex}.state-item{gap:var(--space-2);min-width:var(--ui-state-min);display:grid}.state-label{color:var(--color-text-secondary);font-size:var(--font-small)}@media (max-width:47.999rem){.grid{grid-template-columns:1fr}.section-heading,.section-heading--split{grid-template-columns:1fr;margin-block-end:var(--space-8)}.section-heading--split p{justify-self:start}.ui-page main{padding-block-start:var(--space-6)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}}@layer components;
