.btn[data-astro-cid-ekguhzzh]{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);border-radius:var(--r-control);font-size:var(--fs-small);font-weight:var(--fw-strong);letter-spacing:var(--ls-name);border:var(--rule-hair) solid transparent;cursor:pointer;transition:background var(--d-fast) var(--ease), border-color var(--d-fast) var(--ease), color var(--d-fast) var(--ease), transform var(--d-fast) var(--ease);line-height:1;text-decoration:none;display:inline-flex}.btn--lg[data-astro-cid-ekguhzzh]{padding:var(--sp-4) var(--sp-7);font-size:var(--fs-body);border-radius:var(--r-control-lg)}.btn--sm[data-astro-cid-ekguhzzh]{padding:var(--sp-2) var(--sp-4);font-size:var(--fs-caption)}.btn--primary[data-astro-cid-ekguhzzh]{background:var(--c-accent);color:var(--c-on-accent);border-color:var(--c-accent)}.btn--primary[data-astro-cid-ekguhzzh]:hover{background:var(--c-accent-dark);border-color:var(--c-accent-dark)}.btn--ghost[data-astro-cid-ekguhzzh]{color:inherit;border-color:var(--c-line);background:0 0}.btn--ghost[data-astro-cid-ekguhzzh]:hover{border-color:var(--c-accent);color:var(--c-accent-dark)}.btn--quiet[data-astro-cid-ekguhzzh]{color:var(--c-accent-dark);background:0 0;padding-inline:0}.btn--quiet[data-astro-cid-ekguhzzh]:hover{text-underline-offset:.2em;text-decoration:underline}.section--dark .btn--ghost[data-astro-cid-ekguhzzh]{border-color:var(--c-line-dark);color:var(--c-ivory)}.section--dark .btn--ghost[data-astro-cid-ekguhzzh]:hover{border-color:var(--c-accent);color:var(--c-accent)}.section--dark .btn--quiet[data-astro-cid-ekguhzzh]{color:var(--c-accent)}.btn[data-astro-cid-ekguhzzh]:active{transform:translateY(1px)}@media (prefers-reduced-motion:reduce){.btn[data-astro-cid-ekguhzzh]:active{transform:none}}html:root{--header:100px;--container:1300px}.hdr[data-astro-cid-nen7h5rs]{z-index:50;background:var(--c-topbar-bg);backdrop-filter:saturate(140%)blur(10px);border-bottom:var(--rule-hair) solid var(--c-line);transition:background-color var(--d-panel,.32s) var(--ease), border-color var(--d-panel,.32s) var(--ease);position:sticky;top:0}.hdr[data-astro-cid-nen7h5rs] .hdr__bar{align-items:center;gap:var(--sp-6);min-height:var(--header);grid-template-columns:1fr auto 1fr;display:grid}.hdr__brand[data-astro-cid-nen7h5rs]{grid-column:1;justify-self:start;align-items:center;text-decoration:none;display:flex}.hdr__logo[data-astro-cid-nen7h5rs]{background:0 0;width:auto;height:32px}.hdr__logo--reversed[data-astro-cid-nen7h5rs]{display:none}.hdr__word[data-astro-cid-nen7h5rs]{font-weight:var(--fw-display);letter-spacing:var(--ls-name);font-size:var(--fs-h4);color:var(--c-ink)}.hdr__nav[data-astro-cid-nen7h5rs]{grid-column:2;justify-self:center;gap:40px;display:flex}.hdr__link[data-astro-cid-nen7h5rs]{color:var(--c-text-body);transition:color var(--d-panel,.32s) var(--ease), opacity var(--d-panel,.32s) var(--ease);font-size:16px;font-weight:500;text-decoration:none}.hdr__link[data-astro-cid-nen7h5rs]:hover{opacity:.7}.hdr__link[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--c-accent-dark)}.hdr[data-astro-cid-nen7h5rs] .hdr__cta{border-radius:8px;grid-column:3;justify-self:end;padding:14px 24px;font-size:16px}.hdr__cta-arrow[data-astro-cid-nen7h5rs]{transition:transform var(--d-fast) var(--ease)}.hdr[data-astro-cid-nen7h5rs] .hdr__cta:hover .hdr__cta-arrow[data-astro-cid-nen7h5rs]{transform:translate(2px)}.hdr__menu[data-astro-cid-nen7h5rs]{grid-column:3;justify-self:end;display:none}.hdr__menu[data-astro-cid-nen7h5rs] summary[data-astro-cid-nen7h5rs]{cursor:pointer;padding:var(--sp-2);color:var(--c-ink);list-style:none}.hdr__menu[data-astro-cid-nen7h5rs] summary[data-astro-cid-nen7h5rs]::-webkit-details-marker{display:none}.hdr__drawer[data-astro-cid-nen7h5rs]{background:var(--c-paper);border-bottom:var(--rule-hair) solid var(--c-line);padding:var(--sp-3) var(--gutter) var(--sp-6);flex-direction:column;display:flex;position:absolute;top:100%;left:0;right:0}.hdr__drawer[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding:var(--sp-4) 0;font-size:var(--fs-h4);font-weight:var(--fw-strong);color:var(--c-ink);border-bottom:var(--rule-hair) solid var(--c-line);text-decoration:none}.hdr__drawer[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--c-accent-dark)}.hdr__drawer-cta[data-astro-cid-nen7h5rs]{color:var(--c-accent-dark)!important;border-bottom:0!important}.hdr--overlay[data-astro-cid-nen7h5rs]{margin-bottom:calc(-1 * var(--header))}.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid){background:linear-gradient(to bottom, color-mix(in srgb, var(--c-dark) 55%, transparent), color-mix(in srgb, var(--c-dark) 12%, transparent));backdrop-filter:none;border-bottom-color:#0000}.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid) .hdr__logo--primary[data-astro-cid-nen7h5rs]{display:none}.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid) .hdr__logo--reversed[data-astro-cid-nen7h5rs]{display:block}.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid) .hdr__word[data-astro-cid-nen7h5rs],.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid) .hdr__link[data-astro-cid-nen7h5rs],.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid) .hdr__menu[data-astro-cid-nen7h5rs] summary[data-astro-cid-nen7h5rs]{color:var(--c-ivory)}.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid) .hdr__link[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--c-paper)}.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid) .hdr__cta{background:var(--c-paper);color:var(--c-ink);border-color:var(--c-paper)}.js .hdr--overlay[data-astro-cid-nen7h5rs]:not(.hdr--solid) .hdr__cta:hover{background:var(--c-ivory);border-color:var(--c-ivory)}@media (prefers-reduced-motion:reduce){.hdr[data-astro-cid-nen7h5rs],.hdr__link[data-astro-cid-nen7h5rs]{transition:none}}@media (width<=860px){.hdr__nav[data-astro-cid-nen7h5rs],.hdr[data-astro-cid-nen7h5rs] .hdr__cta{display:none}.hdr__menu[data-astro-cid-nen7h5rs]{display:block}}.ftr[data-astro-cid-jo6i4kqk]{padding-block:var(--sp-10) var(--sp-7)}.ftr__grid[data-astro-cid-jo6i4kqk]{gap:var(--sp-7);grid-template-columns:1.4fr repeat(3,minmax(0,1fr));display:grid}.ftr__name[data-astro-cid-jo6i4kqk]{font-size:var(--fs-h4);font-weight:var(--fw-display);color:var(--c-ivory)}.ftr__desc[data-astro-cid-jo6i4kqk]{margin-top:var(--sp-3);font-size:var(--fs-small);max-width:34ch}.ftr__col[data-astro-cid-jo6i4kqk]{gap:var(--sp-2);flex-direction:column;display:flex}.ftr__lbl[data-astro-cid-jo6i4kqk]{font-size:var(--fs-caption);font-weight:var(--fw-strong);letter-spacing:var(--ls-eyebrow);color:var(--c-ivory-muted);margin-bottom:var(--sp-1)}.ftr__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{font-size:var(--fs-small);text-decoration:none}.ftr__col[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--c-accent);text-underline-offset:.2em;text-decoration:underline}.ftr__addr[data-astro-cid-jo6i4kqk]{font-style:normal;font-size:var(--fs-small)}.ftr__legal[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-9);padding-top:var(--sp-5);border-top:var(--rule-hair) solid var(--c-line-dark);font-size:var(--fs-caption);flex-wrap:wrap;display:flex}@media (width<=860px){.ftr__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}.ftr__about[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}@media (width<=480px){.ftr__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr}}@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-400.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-500.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-700.woff2)format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/poppins-800.woff2)format("woff2")}:root{--c-accent:#0878b0;--c-accent-dark:#065e8c;--c-ink:#084870;--c-ink-strong:#063049;--c-dark:#062a42;--c-dark2:#041f30;--c-paper:#fff;--c-surface:#f0f5f9;--c-surface2:#e3edf4;--c-line:#d8e4ec;--c-line-dark:#163650;--c-muted:#5c7385;--c-ivory:#eef4f8;--c-ivory-muted:#aac0d0;--c-text-body:#1b567b;--c-text-body-strong:#145177;--c-text-body-soft:#225b7f;--c-line-hover:#cad9e4;--c-shadow-tint:#1a1a1a;--c-on-accent:#fff;--c-ok:#0a7d3b;--c-ok-bg:#f3f9f5;--c-bad-bg:#f5fafc;--c-alert-bg:#eef6f9;--c-alert-border:#cee4ef;--c-alert-text:#086293;--c-scrim-lightbox:#041f30b8;--c-scrim-drawer:#1a1a1a80;--c-topbar-bg:#ffffffeb;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:48px;--sp-10:64px;--sp-11:80px;--sp-12:96px;--sp-section:74px;--sp-section-lg:96px;--fs-caption:12px;--fs-small:14px;--fs-body:16px;--fs-lead:clamp(17px,1.2vw,20px);--fs-h4:20px;--fs-h3:clamp(21px,1.6vw,26px);--fs-h2:clamp(26px,2.6vw,38px);--fs-h1:clamp(32px,4.4vw,56px);--fs-display:clamp(40px,7vw,84px);--fw-display:600;--fw-strong:600;--fw-body:500;--fw-soft:400;--lh-body:1.45;--lh-copy:1.4;--lh-list:1.4;--lh-small:1.3;--lh-heading:1.05;--lh-display:1;--lh-hero:1;--lh-flat:1;--lh-poster:.85;--ls-poster:-.02em;--ls-hero:-.01em;--ls-display:-.01em;--ls-heading:-.005em;--ls-name:0;--ls-group:.01em;--ls-label:.02em;--ls-micro:.03em;--ls-eyebrow:.04em;--font:"Poppins", system-ui, sans-serif;--r-hair:2px;--r-chip-sm:3px;--r-code:5px;--r-tag:6px;--r-dot:7px;--r-control:8px;--r-control-lg:9px;--r-tile:10px;--r-card:12px;--r-panel:14px;--r-modal:16px;--r-avatar:26px;--r-circle:50%;--r-pill:999px;--rule-hair:1px;--rule-dash:1.5px;--rule-tab:2px;--rule-mark:2.5px;--rule-accent:3px;--rule-accent-lg:4px;--rule-accent-xl:5px;--rule-accent-xxl:6px;--shadow-sm:0 16px 38px #1a1a1a1f;--shadow-md:0 16px 38px #1a1a1a21;--shadow-lg:0 16px 40px #1a1a1a21;--shadow-xl:0 20px 62px #1a1a1a26;--rise-sm:-3px;--rise-lg:-4px;--d-micro:.15s;--d-fast:.18s;--d-base:.2s;--d-mid:.25s;--d-slow:.3s;--d-panel:.32s;--d-bar:.4s;--d-reveal:.6s;--ease:cubic-bezier(.22,.7,.2,1);--reveal-shift:0px;--reveal-blur:10px;--reveal-dur:.3s;--reveal-ease:linear(0, .0411, .1342, .2478, .3638, .4725, .5692, .6524, .7222, .7798, .8267, .8644, .8944, .9181, .9367, .9513, .9626, .9714, .9782, .9834, .9874, .9904, .9927, .9945, .9959, .9969, .9976, .9982, .9987, 1);--reveal-step:80ms;--container:1160px;--container-sm:760px;--gutter:24px;--measure:66ch;--header:72px;--cols-g2:2;--cols-g3:3;--cols-g4:4;--cols-pillars:4;--cols-lockups:3;--cols-typespec:3;--cols-mospec:3;--cols-donts:3;--cols-voice:3;--cols-appgrid:2;--cols-dlcards:2}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font);font-size:var(--fs-body);font-weight:var(--fw-body);line-height:var(--lh-body);color:var(--c-text-body);background:var(--c-paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4,h5,h6{font-weight:var(--fw-display);color:var(--c-ink);margin:0}h1{font-size:var(--fs-h1);line-height:var(--lh-hero);letter-spacing:var(--ls-hero)}h2{font-size:var(--fs-h2);line-height:var(--lh-heading);letter-spacing:var(--ls-display)}h3{font-size:var(--fs-h3);line-height:var(--lh-heading);letter-spacing:var(--ls-heading)}h4{font-size:var(--fs-h4);line-height:var(--lh-heading);letter-spacing:var(--ls-name);font-weight:var(--fw-strong)}h1,h2{text-wrap:balance;max-width:20ch}h3,h4{text-wrap:balance}p,ul,ol,dl,figure,blockquote,table{margin:0}p{max-width:var(--measure)}a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-underline-offset:.18em}a:hover{text-decoration-color:currentColor}img,svg,video{max-width:100%;height:auto;display:block}img{background:var(--c-surface)}strong,b{font-weight:var(--fw-strong)}small{font-size:var(--fs-small);line-height:var(--lh-small)}hr{border:0;border-top:var(--rule-hair) solid var(--c-line);margin:var(--sp-8) 0}ul,ol{padding-left:var(--sp-5)}li{line-height:var(--lh-list)}li+li{margin-top:var(--sp-1)}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}pre{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}th,td{text-align:left;padding:var(--sp-3) var(--sp-4);border-bottom:var(--rule-hair) solid var(--c-line)}th{font-weight:var(--fw-strong);color:var(--c-ink)}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:var(--rule-tab) solid var(--c-accent);outline-offset:var(--sp-1);border-radius:var(--r-hair)}:focus:not(:focus-visible){outline:none}.skip{left:var(--sp-4);top:var(--sp-4);z-index:100;background:var(--c-ink);color:var(--c-ivory);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-control);font-weight:var(--fw-strong);text-decoration:none;position:absolute;transform:translateY(-200%)}.skip:focus{transform:translateY(0)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.container--sm{max-width:var(--container-sm)}.section{padding-block:var(--sp-section)}.section--lg{padding-block:var(--sp-section-lg)}.section--tight{padding-block:var(--sp-9)}.section--sunk{background:var(--c-surface)}.section--sunk+.section--sunk{padding-top:0}.section--dark{background:var(--c-dark);color:var(--c-ivory-muted)}.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4,.section--dark a{color:var(--c-ivory)}.section--dark .eyebrow{color:var(--c-accent)}.section--dark .lead,.section--dark .muted,.section--dark p{color:var(--c-ivory-muted)}.section--dark th{color:var(--c-ivory)}.section--dark td,.section--dark th,.section--dark hr{border-color:var(--c-line-dark)}.stack>*+*{margin-top:var(--stack-gap,var(--sp-4))}.grid{gap:var(--grid-gap,var(--sp-6));display:grid}.cluster{gap:var(--cluster-gap,var(--sp-3));flex-wrap:wrap;align-items:center;display:flex}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--sp-5)}.prose>h2{margin-top:var(--sp-9)}.prose>h3{margin-top:var(--sp-8)}.prose>h2+*,.prose>h3+*{margin-top:var(--sp-4)}.prose li+li{margin-top:var(--sp-2)}.prose figure{margin-top:var(--sp-8)}.prose figcaption{margin-top:var(--sp-3);font-size:var(--fs-small);color:var(--c-muted)}.prose blockquote{border-left:var(--rule-accent) solid var(--c-accent);padding-left:var(--sp-5);font-size:var(--fs-lead);line-height:var(--lh-copy)}.prose .cite{font-size:var(--fs-caption);color:var(--c-muted)}.prose .cite a{color:var(--c-accent-dark)}.eyebrow{font-size:var(--fs-caption);font-weight:var(--fw-strong);letter-spacing:var(--ls-eyebrow);color:var(--c-accent-dark);margin:0}.lead{font-size:var(--fs-lead);line-height:var(--lh-copy);color:var(--c-text-body-soft)}.muted{color:var(--c-muted)}.numeric{font-variant-numeric:tabular-nums}.js .reveal{opacity:0;transform:translateY(var(--reveal-shift,var(--sp-5)));filter:blur(var(--reveal-blur,0));transition:opacity var(--reveal-dur,var(--d-reveal)) var(--reveal-ease,var(--ease)) var(--reveal-delay,0s), transform var(--reveal-dur,var(--d-reveal)) var(--reveal-ease,var(--ease)) var(--reveal-delay,0s), filter var(--reveal-dur,var(--d-reveal)) var(--reveal-ease,var(--ease)) var(--reveal-delay,0s);will-change:opacity, transform, filter}.js .reveal.in{opacity:1;filter:none;will-change:auto;transform:none}.js .reveal--left{transform:translateX(calc(var(--sp-5) * -1))}.js .reveal--right{transform:translateX(var(--sp-5))}.js .reveal--scale{transform:scale(.96)}.js .reveal--fade{transform:none}.reveal-group>.reveal:first-child{--reveal-delay:0s}.reveal-group>.reveal:nth-child(2){--reveal-delay:calc(var(--reveal-step,calc(var(--d-micro) * .8)) * 1)}.reveal-group>.reveal:nth-child(3){--reveal-delay:calc(var(--reveal-step,calc(var(--d-micro) * .8)) * 2)}.reveal-group>.reveal:nth-child(4){--reveal-delay:calc(var(--reveal-step,calc(var(--d-micro) * .8)) * 3)}.reveal-group>.reveal:nth-child(5){--reveal-delay:calc(var(--reveal-step,calc(var(--d-micro) * .8)) * 4)}.reveal-group>.reveal:nth-child(n+6){--reveal-delay:calc(var(--reveal-step,calc(var(--d-micro) * .8)) * 5)}.mask{display:block;overflow:hidden}.mask>span{transition:transform var(--d-bar) var(--ease) var(--reveal-delay,0s);display:block;transform:translateY(100%)}.reveal.in .mask>span,.mask.in>span{transform:none}.swap{vertical-align:bottom;display:inline-block;position:relative;overflow:hidden}.swap>span{transition:transform var(--d-mid) var(--ease);display:block}.swap>span:last-child{position:absolute;inset:0;transform:translateY(100%)}.swap:hover>span:first-child,a:hover .swap>span:first-child,button:hover .swap>span:first-child{transform:translateY(-100%)}.swap:hover>span:last-child,a:hover .swap>span:last-child,button:hover .swap>span:last-child{transform:none}.link-draw{text-decoration:none;position:relative}.link-draw:after{content:"";height:var(--rule-hair);transform-origin:0;transition:transform var(--d-mid) var(--ease);background:currentColor;position:absolute;bottom:-.12em;left:0;right:0;transform:scaleX(0)}.link-draw:hover:after,.link-draw:focus-visible:after{transform:scaleX(1)}.lift{transition:transform var(--d-base) var(--ease), box-shadow var(--d-base) var(--ease)}.lift:hover{transform:translateY(var(--rise-lg));box-shadow:var(--shadow-md)}.counter{font-variant-numeric:tabular-nums}.marquee{overflow:hidden;mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee__track{width:max-content;animation:marquee var(--marquee-dur,40s) linear infinite;display:flex}.marquee:hover .marquee__track{animation-play-state:paused}@keyframes marquee{to{transform:translate(-50%)}}.stack-pin>*{top:var(--header);position:sticky}@supports (animation-timeline:scroll()){.read-progress{transform-origin:0;animation:linear progress scroll(root)}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}@supports (animation-timeline:view()){.reveal--view{animation:linear both reveal-in view();animation-range:entry 10% cover 26%}@keyframes reveal-in{0%{opacity:0;transform:translateY(var(--reveal-shift,var(--sp-5)))}to{opacity:1;transform:none}}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.js .reveal,.js .reveal--left,.js .reveal--right,.js .reveal--scale{opacity:1!important;filter:none!important;transform:none!important}.mask>span{transform:none!important}.marquee__track{animation:none!important;transform:none!important}.lift:hover{transform:none!important}}
