:root,[data-theme=dark]{--surface:#12141d;--surface-raised:#20222e;--surface-sunken:#1a1c27;--surface-edge:#08090d;--line:#34374a;--line-strong:#7c8092;--rim:var(--surface-raised);--ink:#fff;--ink-muted:#a3a7b7;--ink-subtle:#7c8092;--green:#3ccf91;--green-edge:#1f9e69;--on-green:#12141d;--green-text:#3ccf91;--sky:#68d4ff;--sky-edge:#2b9fd0;--magenta:#f217f1;--magenta-edge:#b30fb2;--purple:#7567f8;--purple-edge:#4a3cd1;--purple-strong:#5b4cf0;--on-signal:#12141d;--link:#68d4ff;--focus:#68d4ff;--danger:#ff8a7a;--edge-card:0 6px 0 #08090d;--edge-green:0 6px 0 #1f9e69;--edge-green-sm:0 4px 0 #1f9e69;--edge-raised-sm:0 4px 0 #08090d;--lift:0 30px 60px #00000073}[data-theme=light]{--surface:#fafafa;--surface-raised:#fff;--surface-sunken:#ededf2;--surface-edge:#d5d6de;--line:#e4e5eb;--line-strong:#8a8fa0;--rim:var(--line);--ink:#12141d;--ink-muted:#555a6b;--ink-subtle:#6b7080;--green:#3ccf91;--green-edge:#1f9e69;--on-green:#12141d;--green-text:#007f5f;--sky:#68d4ff;--sky-edge:#2b9fd0;--magenta:#f217f1;--magenta-edge:#b30fb2;--purple:#7567f8;--purple-edge:#4a3cd1;--purple-strong:#5b4cf0;--on-signal:#12141d;--link:#0b6a93;--focus:#0b6a93;--danger:#b42318;--edge-card:0 6px 0 #d5d6de;--edge-green:0 6px 0 #1f9e69;--edge-green-sm:0 4px 0 #1f9e69;--edge-raised-sm:0 4px 0 #d5d6de;--lift:0 24px 48px #12141d24}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--radius-xs:6px;--radius-control:16px;--radius-tile:20px;--radius-panel:24px;--radius-card:28px;--radius-mark:25%;--radius-pill:999px;--depth-sm:4px;--depth-lg:6px;--depth-pressed:1px;--lift-hover:2px;--duration-fast:.15s;--duration-press:.37s;--duration-rise:.7s;--duration-pop:.8s;--stagger-item:80ms;--type-char:85ms;--type-hold:1.1s;--caret-blink:1s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-pop:linear(0, .06 3%, .24 7%, .52 12%, .82 18%, 1.03 24%, 1.12 30%, 1.13 34%, 1.09 40%, 1.02 48%, .98 56%, .975 62%, .99 72%, 1.005 84%, 1);--ease-soft:linear(0, .08 4%, .3 10%, .6 18%, .85 27%, .98 36%, 1.03 45%, 1.035 52%, 1.02 62%, 1.005 75%, 1);--font-display:Gabarito, "Trebuchet MS", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, Menlo, monospace}@font-face{font-family:Gabarito;src:url(/fonts/Gabarito-Variable.woff2)format("woff2");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}.t-display-xl{font-family:var(--font-display);letter-spacing:-.05em;font-size:100px;font-weight:800;line-height:.94}.t-display{font-family:var(--font-display);letter-spacing:-.045em;font-size:84px;font-weight:800;line-height:.95}.t-stat{font-family:var(--font-display);letter-spacing:-.06em;font-size:160px;font-weight:900;line-height:.8}.t-h1{font-family:var(--font-display);letter-spacing:-.035em;font-size:52px;font-weight:800;line-height:1}.t-h2{font-family:var(--font-display);letter-spacing:-.025em;font-size:36px;font-weight:800;line-height:1.1}.t-h3{font-family:var(--font-display);letter-spacing:-.015em;font-size:24px;font-weight:700;line-height:1.2}.t-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1.3}.t-body-lg{font-family:var(--font-display);font-size:20px;font-weight:400;line-height:1.5}.t-body{font-family:var(--font-display);font-size:18px;font-weight:400;line-height:1.55}.t-body-sm{font-family:var(--font-display);font-size:16px;font-weight:400;line-height:1.5}.t-button{font-family:var(--font-display);font-size:17px;font-weight:700;line-height:1}.t-label{font-family:var(--font-mono);font-size:13px;font-weight:500;line-height:1.3}.t-label-lg{font-family:var(--font-mono);font-size:15px;font-weight:500;line-height:1.4}.t-code{font-family:var(--font-mono);font-size:14px;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html{color-scheme:dark;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--surface);min-height:100dvh;color:var(--ink);font-family:var(--font-display);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:18px;line-height:1.55}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}a{color:var(--link)}img,svg,video{max-width:100%;height:auto;display:block}h1,h2,h3,h4,p{margin:0}.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}.container{width:100%;max-width:calc(1280px + 2 * var(--space-4));padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.container{padding-inline:var(--space-6)}}@keyframes osm-pop{0%{transform:scale(.4)}to{transform:none}}@keyframes osm-rise{0%{transform:translateY(26px)scale(.96)}to{transform:none}}@keyframes osm-blink{0%,49%{opacity:0}50%,to{opacity:1}}.m-pop{animation:osm-pop var(--duration-pop) var(--ease-pop) both}.m-rise{animation:osm-rise var(--duration-rise) var(--ease-out) both}.m-blink{animation:osm-blink var(--caret-blink) steps(1) 12 both}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.m-pop,.m-rise,.m-blink{animation:none}}.osm-tactile{--e:var(--depth-sm);box-shadow:0 var(--e) 0 var(--edge-c);transition:transform var(--duration-press) var(--ease-soft), box-shadow var(--duration-press) var(--ease-soft)}.osm-tactile:hover{transform:translateY(calc(-1 * var(--lift-hover)));box-shadow:0 calc(var(--e) + var(--lift-hover)) 0 var(--edge-c)}.osm-tactile:active{transform:translateY(calc(var(--e) - var(--depth-pressed)));box-shadow:0 var(--depth-pressed) 0 var(--edge-c)}.osm-caret{background:var(--green);vertical-align:-.04em;border-radius:.03em;width:.09em;height:.74em;margin-left:.07em;display:inline-block}.osm-caret--ink{background:currentColor}.osm-caret--thin{vertical-align:-.2em;border-radius:0;width:2px;height:1.1em;margin-left:2px}.osm-logo{--osm-logo-size:44px;align-items:center;gap:calc(var(--osm-logo-size) * .24);color:var(--ink);text-decoration:none;display:inline-flex}.osm-logo--on-dark{color:#fff}.osm-logo--on-light{color:#12141d}.osm-logo__tile{width:var(--osm-logo-size);height:var(--osm-logo-size);flex:none;display:block}.osm-logo__word{font-family:var(--font-display);font-weight:800;font-size:calc(var(--osm-logo-size) * .42);letter-spacing:-.045em;white-space:nowrap;line-height:1;display:inline-block}.osm-logo__bar{vertical-align:-.06em;background:currentColor;border-radius:.06em;width:.44em;height:.12em;margin:0 .03em;display:inline-block}.osm-logo__typed{color:var(--green-text)}.osm-logo--on-light .osm-logo__typed{color:#007f5f}.osm-logo--on-dark .osm-logo__typed{color:#3ccf91}.osm-btn{--e:var(--depth-sm);appearance:none;box-sizing:border-box;justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-6);border-radius:var(--radius-pill);font-family:var(--font-display);white-space:nowrap;cursor:pointer;border:0;font-size:17px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.osm-btn--lg{--e:var(--depth-lg);min-height:58px;padding:0 var(--space-8);font-size:19px}.osm-btn--primary{--edge-c:var(--green-edge);background:var(--green);color:var(--on-green)}.osm-btn--secondary{--edge-c:var(--surface-edge);background:var(--surface-raised);color:var(--ink);border:1px solid var(--rim)}@media (width<=400px){.osm-btn{white-space:normal;text-align:center;max-width:100%;padding-block:12px;line-height:1.15}}.osm-tag{box-sizing:border-box;min-height:30px;padding:6px var(--space-3);border-radius:var(--radius-pill);font-family:var(--font-mono);white-space:nowrap;background:var(--surface-sunken);color:var(--ink-muted);align-items:center;font-size:13px;font-weight:500;line-height:1.3;display:inline-flex}.osm-tag--green{background:var(--green);color:var(--on-green);box-shadow:0 var(--depth-sm) 0 var(--green-edge)}.osm-tag--sky{background:var(--sky);color:var(--on-signal);box-shadow:0 var(--depth-sm) 0 var(--sky-edge)}.osm-tag--magenta{background:var(--magenta);color:var(--on-signal);box-shadow:0 var(--depth-sm) 0 var(--magenta-edge)}.osm-tag--purple{background:var(--purple-strong);color:#fff;box-shadow:0 var(--depth-sm) 0 var(--purple-edge)}.osm-tags{flex-wrap:wrap;gap:6px;display:flex}.osm-typeline{min-height:1.4em;font-family:var(--font-mono);color:var(--ink-muted);white-space:nowrap;align-items:center;font-size:15px;font-weight:500;line-height:1.4;display:inline-flex}.osm-typeline__typed{color:var(--green-text)}.osm-eyebrow{font-family:var(--font-mono);color:var(--ink-muted);font-size:13px;font-weight:500;line-height:1.3;display:block}.osm-eyebrow--lg{font-size:15px;line-height:1.4}.osm-card{box-sizing:border-box;background:var(--surface-raised);color:var(--ink);border:1px solid var(--rim);border-radius:var(--radius-card);box-shadow:var(--edge-card);padding:var(--space-6)}.osm-card>:first-child{margin-top:0}.osm-card>:last-child{margin-bottom:0}.osm-card__title{margin:0 0 var(--space-2);letter-spacing:-.015em;font-size:24px;font-weight:700;line-height:1.2}.osm-card__body{color:var(--ink-muted);margin:0;font-size:16px;line-height:1.5}.osm-project{--e:var(--depth-lg);--edge-c:var(--surface-edge);gap:var(--space-3);color:var(--ink);box-shadow:var(--edge-card);flex-direction:column;padding:14px 14px 20px;text-decoration:none;display:flex}a.osm-project{box-shadow:0 var(--e) 0 var(--edge-c)}.osm-project__media{aspect-ratio:16/10;border-radius:var(--radius-control);font-family:var(--font-mono);color:var(--on-signal);justify-content:center;align-items:center;font-size:13px;display:flex;position:relative;overflow:hidden}.osm-project__media img{object-fit:cover;width:100%;height:100%;display:block}.osm-project__media--green{background:var(--green)}.osm-project__media--sky{background:var(--sky)}.osm-project__media--magenta{background:var(--magenta)}.osm-project__media--purple{background:var(--purple-strong);color:#fff}.osm-project__media--ink{background:var(--surface-sunken);color:var(--ink-muted)}.osm-project__phone{background:var(--ink);border-radius:22px;width:46%;max-width:180px;padding:6px;position:absolute;top:14%;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000059}.osm-project__phone img{border-radius:16px;width:100%;height:auto;display:block}.osm-project__head{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:0 6px;display:flex}.osm-project__title{letter-spacing:-.02em;font-size:22px;font-weight:800;line-height:1.15}.osm-project__line{color:var(--ink-muted);margin:0;padding:0 6px;font-size:16px;line-height:1.5}.osm-project .osm-tags{padding:0 6px}.osm-project .osm-tag{background:var(--surface);min-height:26px;padding:4px 10px;font-size:12px}.osm-status{font-family:var(--font-mono);color:var(--ink-muted);white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.osm-status:before{content:"";background:var(--line-strong);border-radius:50%;width:8px;height:8px}.osm-status--live:before{background:var(--green)}.osm-status--live{color:var(--green-text)}.osm-stat{gap:var(--space-6);flex-direction:column;display:flex}.osm-stat__figure{letter-spacing:-.06em;font-variant-numeric:tabular-nums;align-items:baseline;gap:.12em;font-size:clamp(96px,14vw,160px);font-weight:900;line-height:.8;display:flex}.osm-stat__unit{letter-spacing:-.045em;align-items:baseline;font-size:.3em;font-weight:800;line-height:1;display:inline-flex}.osm-stat__label{max-width:30ch;color:var(--ink-muted);margin:0;font-size:20px;line-height:1.5}.osm-quote{gap:var(--space-6);border-radius:var(--radius-panel);padding:var(--space-8);flex-direction:column;margin:0;display:flex}.osm-quote__text{letter-spacing:-.015em;text-wrap:pretty;margin:0;font-size:24px;font-weight:600;line-height:1.3}.osm-quote__text p{margin:0}.osm-quote__who{flex-direction:column;gap:2px;display:flex}.osm-quote__name{font-size:18px;font-weight:700}.osm-quote__role{color:var(--ink-muted);font-size:16px}.osm-field{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.osm-field__label{color:var(--ink);font-size:16px;font-weight:700}.osm-field__optional{color:var(--ink-muted);font-weight:400}.osm-field__hint{color:var(--ink-muted);font-size:15px;line-height:1.4}.osm-field__control{box-sizing:border-box;width:100%;min-height:52px;padding:13px var(--space-4);border:1.5px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface-raised);color:var(--ink);font-family:var(--font-display);font-size:17px;line-height:1.4}.osm-field__control::placeholder{color:var(--ink-muted)}.osm-field__control:focus-visible{outline:3px solid var(--focus);outline-offset:2px}textarea.osm-field__control{resize:vertical;min-height:140px}.osm-field--error .osm-field__control{border-color:var(--danger)}.osm-field__error{align-items:center;gap:var(--space-2);color:var(--danger);font-size:15px;font-weight:600;display:flex}.osm-field__error[hidden]{display:none}.osm-field__error svg{flex:none;width:18px;height:18px}.osm-choices{gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.osm-choices legend{margin-bottom:var(--space-2);padding:0;font-size:16px;font-weight:700}.osm-choice{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--line-strong);color:var(--ink);cursor:pointer;align-items:center;font-size:16px;font-weight:600;display:inline-flex;position:relative}.osm-choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.osm-choice:has(input:checked){background:var(--green);border-color:var(--green);color:var(--on-green)}.osm-choice:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}.osm-nav{justify-content:space-between;align-items:center;gap:20px var(--space-8);padding:var(--space-6) 0;flex-wrap:wrap;display:flex}.osm-nav__links{align-items:center;gap:var(--space-2) 28px;flex-wrap:wrap;display:flex}.osm-nav__link{color:var(--ink);transition:color var(--duration-fast);padding:10px 0;font-size:17px;font-weight:600;text-decoration:none}.osm-nav__link:hover,.osm-nav__link[aria-current=page],.osm-nav__link[aria-current=true]{color:var(--green-text)}@media (prefers-reduced-motion:reduce){.osm-tactile,.osm-nav__link{transition:none}}.section{padding-block:var(--space-16)}.section--tight{padding-block:var(--space-12)}.section--rel{position:relative}.section--flush-top{padding-top:0}@media (width>=768px){.section{padding-block:var(--space-24)}.section--tight{padding-block:var(--space-16)}}.theme-light{background:var(--surface);color:var(--ink);color-scheme:light}.display-xl{letter-spacing:-.05em;text-wrap:balance;font-size:clamp(52px,7vw,100px);font-weight:800;line-height:.94}.display{letter-spacing:-.045em;text-wrap:balance;font-size:clamp(44px,6vw,84px);font-weight:800;line-height:.95}.h1{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(38px,4.6vw,52px);font-weight:800;line-height:1}.h2{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(30px,3.4vw,36px);font-weight:800;line-height:1.1}.h3{letter-spacing:-.015em;font-size:24px;font-weight:700;line-height:1.2}.title{letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1.3}.body-lg{font-size:20px;line-height:1.5}.body-sm{font-size:16px;line-height:1.5}.muted{color:var(--ink-muted)}.measure{max-width:62ch}.measure-narrow{max-width:48ch}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack--lg{gap:var(--space-8)}.stack--xl{gap:var(--space-12)}.row{gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.grid{gap:var(--space-6);grid-template-columns:1fr;display:grid}@media (width>=768px){.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}.section-head{gap:var(--space-4);max-width:760px;margin-bottom:var(--space-12);flex-direction:column;display:flex}.section-head .osm-eyebrow{margin-bottom:var(--space-2)}.split{gap:var(--space-8);grid-template-columns:1fr;align-items:start;display:grid}@media (width>=900px){.split{gap:var(--space-16);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.discs{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.discs>span{background:var(--surface-sunken);border-radius:50%;position:absolute}.prose{font-size:18px;line-height:1.55}.prose>*+*{margin-top:var(--space-4)}.prose h2{margin-top:var(--space-12);letter-spacing:-.025em;font-size:clamp(28px,3.2vw,36px);font-weight:800;line-height:1.1}.prose h3{margin-top:var(--space-8);letter-spacing:-.015em;font-size:24px;font-weight:700;line-height:1.2}.prose p,.prose li{max-width:68ch}.prose ul,.prose ol{padding-left:1.2em}.prose li+li{margin-top:var(--space-2)}.prose a{color:var(--link);text-underline-offset:.15em}.prose blockquote{margin:var(--space-8) 0;padding:var(--space-6) var(--space-8);border-radius:var(--radius-panel);background:var(--surface-raised);border:1px solid var(--rim);box-shadow:var(--edge-card);letter-spacing:-.01em;font-size:22px;font-weight:600;line-height:1.3}.prose code{font-family:var(--font-mono);border-radius:var(--radius-xs);background:var(--surface-sunken);padding:.1em .35em;font-size:.9em}.prose pre{padding:var(--space-4) var(--space-6);border-radius:var(--radius-control);background:var(--surface-sunken);font-size:14px;line-height:1.5;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose img{border-radius:var(--radius-control)}.prose hr{border:0;border-top:1px solid var(--line);margin:var(--space-12) 0}.prose table{border-collapse:collapse;width:100%;font-size:16px}.prose th,.prose td{text-align:left;padding:var(--space-3) var(--space-3);border-bottom:1px solid var(--line);vertical-align:top}.prose th{font-weight:700}.link{color:var(--link);text-underline-offset:.15em}.skip{left:var(--space-4);top:var(--space-4);z-index:100;border-radius:var(--radius-pill);background:var(--green);color:var(--on-green);padding:12px 20px;font-weight:700;text-decoration:none;position:absolute;transform:translateY(-200%)}.skip:focus{transform:none}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:var(--stagger-item)}.stagger>:nth-child(3){animation-delay:calc(2 * var(--stagger-item))}.stagger>:nth-child(4){animation-delay:calc(3 * var(--stagger-item))}.stagger>:nth-child(5){animation-delay:calc(4 * var(--stagger-item))}.stagger>:nth-child(6){animation-delay:calc(5 * var(--stagger-item))}.band.band--green,.band.band--sky{color:var(--on-signal);background-image:none}.band.band--green{background-color:var(--green)}.band.band--sky{background-color:var(--sky)}.band--green .muted,.band--sky .muted,.band--green .osm-eyebrow,.band--sky .osm-eyebrow{color:var(--on-signal);opacity:.78}.band--green .statement .light,.band--sky .statement .light,.band--green strong,.band--sky strong{color:var(--on-signal)}.band .btn-on-band,.band .btn-on-band:hover{--edge-c:#000;background:var(--on-signal);color:#fff;border-color:#0000}.sheet{padding-block:var(--space-16)}@media (width>=768px){.sheet{padding-block:var(--space-24)}}html.js [data-reveal]:not(.is-in)>.rv,html.js [data-reveal]:not(.is-in).rv{transform:translateY(26px)scale(.96)}html.js [data-reveal].is-in>.rv,html.js [data-reveal].is-in.rv{animation:osm-rise var(--duration-rise) var(--ease-out) both}html.js [data-reveal].is-in>.rv:nth-child(2){animation-delay:var(--stagger-item)}html.js [data-reveal].is-in>.rv:nth-child(3){animation-delay:calc(2 * var(--stagger-item))}html.js [data-reveal].is-in>.rv:nth-child(4){animation-delay:calc(3 * var(--stagger-item))}html.js [data-reveal].is-in>.rv:nth-child(5){animation-delay:calc(4 * var(--stagger-item))}html.js [data-reveal].is-in>.rv:nth-child(6){animation-delay:calc(5 * var(--stagger-item))}html.js [data-reveal].is-in>.rv:nth-child(n+7){animation-delay:calc(6 * var(--stagger-item))}html.js [data-reveal].is-in .osm-tag{animation:osm-pop var(--duration-pop) var(--ease-pop) both;animation-delay:calc(var(--duration-rise) * .6)}@keyframes osm-pulse{0%{transform:scale(1)}40%{transform:scale(1.8)}to{transform:scale(1)}}html.js [data-reveal].is-in .osm-status--live:before{animation:osm-pulse .9s var(--ease-pop) both;animation-delay:var(--duration-rise)}.prose a,.link{transition:background-size var(--duration-press) var(--ease-out);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;text-decoration:none}.prose a:hover,.link:hover,.prose a:focus-visible,.link:focus-visible{background-size:100% 1px}.osm-project[data-tilt]{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d}.osm-project[data-tilt]:hover{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(calc(-1 * var(--lift-hover)))}.osm-project[data-tilt]:active{transform:perspective(900px) translateY(calc(var(--e) - var(--depth-pressed)))}@supports (animation-timeline:view()){html.js .hero__card{animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:exit exit 70%}html.js .hero__card--1{animation-name:hero-straighten-1}html.js .hero__card--2{animation-name:hero-straighten-2}html.js .hero__card--3{animation-name:hero-straighten-3}}@keyframes hero-straighten-1{to{transform:rotate(0)translate(-6%,10%)}}@keyframes hero-straighten-2{to{transform:rotate(0)translate(6%,10%)}}@keyframes hero-straighten-3{to{transform:rotate(0)translateY(14%)}}.services[open] .services__list{animation:osm-rise .36s var(--ease-out) both}.osm-nav__link[aria-current]:after{content:"";background:var(--green);vertical-align:.05em;border-radius:.06em;width:.45em;height:.12em;margin-left:.35em;display:inline-block}.glyph{flex:none;width:44px;height:44px;overflow:visible}.glyph *{transform-box:fill-box;transform-origin:50%}.glyph--ai .g-line{transform-origin:0;transition:transform .5s var(--ease-out);transform:scaleX(.35)}.pillar:hover .glyph--ai .g-line,.pillar:focus-within .glyph--ai .g-line{transform:scaleX(1)}.pillar:hover .glyph--ai .g-line:nth-child(2),.pillar:focus-within .glyph--ai .g-line:nth-child(2){transition-delay:.12s}.pillar:hover .glyph--ai .g-line:nth-child(3),.pillar:focus-within .glyph--ai .g-line:nth-child(3){transition-delay:.24s}.pillar:hover .glyph--ai .g-caret,.pillar:focus-within .glyph--ai .g-caret{animation:1s step-end 4 both osm-blink}.glyph--software .g-row{transform-origin:0;transition:transform .45s var(--ease-out);transform:scaleX(.3)}.glyph--software .g-cell{transition:transform .3s var(--ease-pop);transform:scale(0)}.pillar:hover .glyph--software .g-row,.pillar:focus-within .glyph--software .g-row{transform:scaleX(1)}.pillar:hover .glyph--software .g-cell,.pillar:focus-within .glyph--software .g-cell{transform:scale(1)}.pillar:hover .glyph--software .g-row:nth-of-type(2),.pillar:focus-within .glyph--software .g-row:nth-of-type(2){transition-delay:90ms}.pillar:hover .glyph--software .g-row:nth-of-type(3),.pillar:focus-within .glyph--software .g-row:nth-of-type(3){transition-delay:.18s}.pillar:hover .glyph--software .g-cell:first-of-type,.pillar:focus-within .glyph--software .g-cell:first-of-type{transition-delay:.3s}.pillar:hover .glyph--software .g-cell:nth-of-type(2),.pillar:focus-within .glyph--software .g-cell:nth-of-type(2){transition-delay:.39s}.pillar:hover .glyph--software .g-cell:nth-of-type(3),.pillar:focus-within .glyph--software .g-cell:nth-of-type(3){transition-delay:.48s}.glyph--web .g-hero{transform-origin:top;transition:transform .35s var(--ease-out);transform:scaleY(0)}.glyph--web .g-col{transform-origin:0;transition:transform .35s var(--ease-out) .25s;transform:translateY(6px)scaleX(0)}.glyph--web .g-col--2{transition-delay:.35s}.pillar:hover .glyph--web .g-hero,.pillar:focus-within .glyph--web .g-hero{transform:scaleY(1)}.pillar:hover .glyph--web .g-col,.pillar:focus-within .glyph--web .g-col{transform:none}.glyph--apps .g-phone{transition:transform .45s var(--ease-pop);transform:rotate(-14deg)}.glyph--apps .g-screen{opacity:.35;transition:opacity .3s linear .2s}.pillar:hover .glyph--apps .g-phone,.pillar:focus-within .glyph--apps .g-phone{transform:rotate(0)}.pillar:hover .glyph--apps .g-screen,.pillar:focus-within .glyph--apps .g-screen{opacity:1}.glyph--search .g-lens{transition:transform .55s var(--ease-pop)}.glyph--search .g-dot{transition:transform .3s var(--ease-pop) .35s;transform:scale(.6)}.pillar:hover .glyph--search .g-lens,.pillar:focus-within .glyph--search .g-lens{transform:translate(12px,10px)}.pillar:hover .glyph--search .g-dot,.pillar:focus-within .glyph--search .g-dot{transform:scale(1.3)}.flow__step:after{content:"";border-radius:inherit;background:var(--sky);opacity:0;pointer-events:none;position:absolute;inset:0}.flow__step--human:after{background:var(--on-green)}.flow__check{right:var(--space-4);width:22px;height:22px;margin-top:-11px;position:absolute;top:50%;transform:scale(0)}html.js .flow.is-in .flow__step:first-child{animation:flow-step .9s var(--ease-out) .3s both}html.js .flow.is-in .flow__step:first-child:after{animation:.9s linear .3s both flow-light}html.js .flow.is-in .flow__step:nth-child(2){animation:flow-step .9s var(--ease-out) 1s both}html.js .flow.is-in .flow__step:nth-child(2):after{animation:.9s linear 1s both flow-light}html.js .flow.is-in .flow__step:nth-child(3){animation:flow-step .9s var(--ease-out) 1.7s both}html.js .flow.is-in .flow__step:nth-child(3):after{animation:.9s linear 1.7s both flow-light}html.js .flow.is-in .flow__step:nth-child(4){animation:flow-step-hold .9s var(--ease-pop) 2.4s both}html.js .flow.is-in .flow__check{animation:osm-pop var(--duration-pop) var(--ease-pop) 2.7s both;transform:scale(1)}html.js .flow.is-in .flow__step:nth-child(5){animation:flow-step .9s var(--ease-out) 3.5s both}html.js .flow.is-in .flow__step:nth-child(5):after{animation:.9s linear 3.5s both flow-light}@keyframes flow-step{0%{transform:none}30%{transform:translate(8px)}to{transform:none}}@keyframes flow-step-hold{0%{transform:scale(1)}40%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes flow-light{0%{opacity:0}30%{opacity:.16}to{opacity:0}}html.js .method.is-in .method__draw{animation:method-draw 1.6s var(--ease-out) .2s both}@keyframes method-draw{to{transform:scaleX(1)}}.stage .stage__node{transition:transform var(--duration-press) var(--ease-pop), background-color var(--duration-fast)}.stage.is-current .stage__node{background:var(--green);transform:scale(1.35)}.stage.is-current .stage__num{color:var(--green-text)}.stack-track{--stack-gap:var(--space-4);gap:var(--stack-gap);scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 0 18px;display:flex;overflow:auto hidden}.stack-track::-webkit-scrollbar{display:none}.stack-track>*{scroll-snap-align:start;flex:0 0 100%}@media (width>=900px){.stack-track>*{flex-basis:calc((100% - var(--stack-gap)) / 2)}}.stack-track:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.stack-controls{align-items:center;gap:var(--space-3);margin-top:var(--space-6);display:flex}.stack-btn{--e:var(--depth-sm);--edge-c:var(--surface-edge);border:1px solid var(--rim);background:var(--surface-raised);width:48px;height:48px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.stack-btn:disabled{opacity:.35;cursor:default}.stack-btn svg{width:18px;height:18px}.stack-dots{margin-left:var(--space-2);gap:2px;display:flex}.stack-dot{cursor:pointer;background:0 0;border:0;width:24px;height:24px;padding:0;position:relative}.stack-dot:before{content:"";background:var(--line-strong);width:10px;height:10px;transition:transform var(--duration-fast);border-radius:50%;position:absolute;top:7px;left:7px}.stack-dot[aria-current=true]:before{background:var(--green);transform:scale(1.3)}@media (prefers-reduced-motion:reduce){html.js [data-reveal]:not(.is-in)>.rv,html.js [data-reveal]:not(.is-in).rv{transform:none}html.js [data-reveal].is-in>.rv,html.js [data-reveal].is-in.rv,html.js [data-reveal].is-in .osm-tag,html.js [data-reveal].is-in .osm-status--live:before,.services[open] .services__list,html.js .flow.is-in .flow__step,html.js .flow.is-in .flow__step:after,html.js .flow.is-in .flow__check,html.js .method.is-in .method__draw{animation:none}.flow__check,html.js .method.is-in .method__draw{transform:scale(1)}.stage .stage__node,.glyph *,.prose a,.link,.stack-dot:before{transition:none}html.js .hero__card{animation:none}}body:before{content:"";z-index:60;pointer-events:none;opacity:.045;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;position:fixed;inset:0}[data-theme=light] body:before,.theme-light:before{opacity:.06}.discs>span,.theme-light .discs>span{background:radial-gradient(circle at 50% 50%, var(--surface-sunken) 0%, var(--surface-sunken) 38%, transparent 72%)}.band{background-color:var(--surface-sunken);background-image:radial-gradient(var(--line) 1px, transparent 1.2px);background-position:12px 12px;background-size:24px 24px}@media (width>=1400px){.rules{z-index:0;pointer-events:none;position:fixed;inset:0}.rules:before,.rules:after{content:"";background:var(--line);opacity:.6;width:1px;position:absolute;top:0;bottom:0}.rules:before{left:calc(50% - 640px - var(--space-6))}.rules:after{right:calc(50% - 640px - var(--space-6))}}.note{z-index:3;border-radius:var(--radius-pill);background:var(--surface);font-family:var(--font-mono);color:var(--ink-muted);white-space:nowrap;pointer-events:none;align-items:center;gap:8px;padding:3px 8px 3px 0;font-size:12px;line-height:1;display:inline-flex;position:absolute}.note:before{content:"";background:var(--line-strong);width:18px;height:1px}.note--right{flex-direction:row-reverse}.note--green{color:var(--green-text)}.note--green:before{background:var(--green)}.note__tick{background:var(--line-strong);width:1px;height:10px;display:inline-block}@media (width<=899px){.note--desktop{display:none}}.coord{top:var(--space-6);right:var(--space-4);font-family:var(--font-mono);color:var(--ink-subtle);letter-spacing:.02em;font-size:12px;position:absolute}@media (width>=768px){.coord{right:var(--space-6)}}.statement{letter-spacing:-.045em;text-wrap:balance;font-size:clamp(40px,6.2vw,84px);font-weight:800;line-height:.96}.statement .light{letter-spacing:-.02em;font-weight:400}.statement .accent{color:var(--green-text)}.head-split{gap:var(--space-6);margin-bottom:var(--space-12);grid-template-columns:1fr;display:grid}@media (width>=900px){.head-split{grid-template-columns:repeat(12,minmax(0,1fr));align-items:end}.head-split>.head-split__main{grid-column:1/span 8}.head-split>.head-split__aside{grid-column:9/span 4;padding-bottom:.4em}}.cursor{z-index:70;pointer-events:none;background:var(--ink);mix-blend-mode:difference;opacity:0;width:10px;height:10px;transition:transform .12s var(--ease-out), opacity .2s linear;border-radius:50%;margin:-5px 0 0 -5px;position:fixed;top:0;left:0}.cursor:after{content:"";background:var(--green);transform-origin:0;width:14px;height:3px;transition:transform .18s var(--ease-pop);border-radius:2px;margin-left:-7px;position:absolute;top:14px;left:50%}html.cursor-on .cursor{opacity:1}html.cursor-on,html.cursor-on a,html.cursor-on button,html.cursor-on label,html.cursor-on summary{cursor:none}.cursor.is-link{transform:scale(1.6)}.cursor.is-link:after{transform:scaleX(1.8)}.cursor.is-text{border-radius:2px;transform:scaleX(.3)scaleY(1.8)}.cursor.is-text:after{transform:scaleX(0)}.cursor.is-down{transform:scale(.8)}@media (hover:none),(pointer:coarse){.cursor{display:none}}@media (prefers-reduced-motion:reduce){.cursor{display:none}html.cursor-on,html.cursor-on a,html.cursor-on button{cursor:auto}}.consent[data-astro-cid-bm4qem4n]{z-index:65;left:var(--space-4);right:var(--space-4);bottom:var(--space-4);pointer-events:none;position:fixed}.consent[data-astro-cid-bm4qem4n][hidden]{display:none}@media (width>=640px){.consent[data-astro-cid-bm4qem4n]{right:auto;left:var(--space-6);bottom:var(--space-6);width:min(440px, calc(100vw - 2 * var(--space-6)))}}.consent__card[data-astro-cid-bm4qem4n]{pointer-events:auto;gap:var(--space-3);padding:var(--space-5,20px) var(--space-6) var(--space-6);border-radius:var(--radius-card);background:var(--surface-raised);border:1px solid var(--rim);box-shadow:0 var(--depth-lg) 0 var(--surface-edge), 0 24px 60px #00000073;flex-direction:column;display:flex}.consent[data-astro-cid-bm4qem4n].is-open .consent__card[data-astro-cid-bm4qem4n]{animation:osm-rise var(--duration-rise) var(--ease-out) both}.consent__head[data-astro-cid-bm4qem4n]{justify-content:space-between;align-items:center;display:flex}.consent__close[data-astro-cid-bm4qem4n]{appearance:none;width:32px;height:32px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;margin:-6px -8px -6px 0;display:inline-flex}.consent__close[data-astro-cid-bm4qem4n]:hover{color:var(--ink);background:var(--surface-sunken)}.consent__close[data-astro-cid-bm4qem4n][hidden]{display:none}.consent__title[data-astro-cid-bm4qem4n]{letter-spacing:-.02em;font-size:20px;font-weight:800;line-height:1.15}.consent__text[data-astro-cid-bm4qem4n]{color:var(--ink-muted);font-size:15px;line-height:1.5}.consent__state[data-astro-cid-bm4qem4n]{font-family:var(--font-mono);color:var(--green-text);font-size:12px}.consent__state[data-astro-cid-bm4qem4n][hidden]{display:none}.consent__actions[data-astro-cid-bm4qem4n]{gap:var(--space-3);margin-top:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.consent__actions[data-astro-cid-bm4qem4n] .osm-btn[data-astro-cid-bm4qem4n]{width:100%;padding-inline:var(--space-3);justify-content:center}.consent__actions[data-astro-cid-bm4qem4n] .osm-btn[data-astro-cid-bm4qem4n][aria-pressed=true]{outline:2px solid var(--green);outline-offset:2px}@media (width<=359px){.consent__actions[data-astro-cid-bm4qem4n]{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.consent[data-astro-cid-bm4qem4n].is-open .consent__card[data-astro-cid-bm4qem4n]{animation:none}}.cta__box[data-astro-cid-amjew3wo]{border-radius:var(--radius-card);background:var(--surface-raised);border:1px solid var(--rim);box-shadow:var(--edge-card);padding:var(--space-12) var(--space-6);position:relative;overflow:hidden}@media (width>=768px){.cta__box[data-astro-cid-amjew3wo]{padding:var(--space-16) var(--space-12)}}.cta__inner[data-astro-cid-amjew3wo]{z-index:1;gap:var(--space-6);flex-direction:column;max-width:760px;display:flex;position:relative}.cta__or[data-astro-cid-amjew3wo]{color:var(--ink-muted);font-size:17px}.footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);padding-block:var(--space-16) var(--space-8);font-size:16px}.footer__grid[data-astro-cid-jo6i4kqk]{gap:var(--space-8);grid-template-columns:1fr;display:grid}@media (width>=640px){.footer__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.footer__grid[data-astro-cid-jo6i4kqk]{gap:var(--space-12);grid-template-columns:minmax(0,4fr) repeat(4,minmax(0,2fr))}}.footer__brand[data-astro-cid-jo6i4kqk]{align-items:flex-start;gap:var(--space-4);flex-direction:column;display:flex}.footer__line[data-astro-cid-jo6i4kqk]{max-width:40ch;color:var(--ink-muted)}.footer__email[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);color:var(--ink);font-size:14px}.footer__loc[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);color:var(--ink-subtle);font-size:13px}.footer__head[data-astro-cid-jo6i4kqk]{margin:0 0 var(--space-3);font-family:var(--font-mono);color:var(--ink-muted);font-size:13px;font-weight:500}.footer__head[data-astro-cid-jo6i4kqk]:before{content:"_";color:var(--green-text)}.footer__col[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--ink);padding:4px 0;text-decoration:none;display:inline-block}.footer__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--green-text)}.footer__btn[data-astro-cid-jo6i4kqk]{appearance:none;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:4px 0}.footer__btn[data-astro-cid-jo6i4kqk]:hover{color:var(--green-text)}.footer__legal[data-astro-cid-jo6i4kqk]{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--line);max-width:90ch;color:var(--ink-subtle);font-size:14px;line-height:1.5}.site-header[data-astro-cid-wpvy4v7s]{z-index:20;position:relative}.menu[data-astro-cid-wpvy4v7s]{position:relative}.menu__button[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--line-strong);color:var(--ink);cursor:pointer;font-weight:700;list-style:none;display:inline-flex}.menu__button[data-astro-cid-wpvy4v7s]::-webkit-details-marker{display:none}.menu__bars[data-astro-cid-wpvy4v7s]{flex-direction:column;gap:4px;display:inline-flex}.menu__bars[data-astro-cid-wpvy4v7s] i[data-astro-cid-wpvy4v7s]{background:currentColor;border-radius:1px;width:18px;height:2px;display:block}.menu__panel[data-astro-cid-wpvy4v7s]{right:0;top:calc(100% + var(--space-2));width:min(360px, calc(100vw - 2 * var(--space-4)));gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-panel);background:var(--surface-raised);border:1px solid var(--rim);box-shadow:var(--edge-card);flex-direction:column;display:flex;position:absolute}.menu__panel[data-astro-cid-wpvy4v7s] .osm-nav__link[data-astro-cid-wpvy4v7s]{padding:10px var(--space-3)}.menu__cta[data-astro-cid-wpvy4v7s]{margin-top:var(--space-2);width:100%}.services__summary[data-astro-cid-wpvy4v7s]{cursor:pointer;align-items:center;gap:6px;list-style:none;display:inline-flex}.services__summary[data-astro-cid-wpvy4v7s]::-webkit-details-marker{display:none}.services__summary[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{width:14px;height:14px;transition:transform var(--duration-fast)}.services[data-astro-cid-wpvy4v7s][open] .services__summary[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{transform:rotate(180deg)}.services__list[data-astro-cid-wpvy4v7s]{padding:var(--space-2) 0 var(--space-2) var(--space-3);flex-direction:column;gap:2px;margin:0;list-style:none;display:flex}.services__list[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{padding:10px var(--space-3);border-radius:var(--radius-control);color:var(--ink);flex-direction:column;gap:2px;text-decoration:none;display:flex}.services__list[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover,.services__list[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{background:var(--surface-sunken)}.services__list[data-astro-cid-wpvy4v7s] strong[data-astro-cid-wpvy4v7s]{font-size:16px;font-weight:700}.services__list[data-astro-cid-wpvy4v7s] span[data-astro-cid-wpvy4v7s]{color:var(--ink-muted);font-size:14px}@media (width>=900px){.menu__button[data-astro-cid-wpvy4v7s]{display:none}.menu__panel[data-astro-cid-wpvy4v7s]{align-items:center;gap:var(--space-2) 28px;width:auto;box-shadow:none;background:0 0;border:0;flex-direction:row;padding:0;position:static}.menu__panel[data-astro-cid-wpvy4v7s] .osm-nav__link[data-astro-cid-wpvy4v7s]{padding:10px 0}.menu__cta[data-astro-cid-wpvy4v7s]{width:auto;margin:0}.services[data-astro-cid-wpvy4v7s]{position:relative}.services__list[data-astro-cid-wpvy4v7s]{left:0;top:calc(100% + var(--space-2));width:360px;padding:var(--space-3);border-radius:var(--radius-panel);background:var(--surface-raised);border:1px solid var(--rim);box-shadow:var(--edge-card);position:absolute}}@media (prefers-reduced-motion:reduce){.services__summary[data-astro-cid-wpvy4v7s] svg[data-astro-cid-wpvy4v7s]{transition:none}}main:focus{outline:none}
