@font-face{font-family:Montserrat;src:url(/fonts/montserrat-latin.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-latin.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}:root,[data-theme=light]{color-scheme:light;--viti-navy:#092a41;--viti-blue:#00649f;--viti-teal:#008e9d;--viti-green:#19b99b;--viti-orange:#ff8a3d;--viti-orange-deep:#b54708;--viti-arrow-left-start:#0b3047;--viti-arrow-left-end:#063d50;--viti-arrow-right-start:#075365;--viti-arrow-right-end:#006f76;--viti-ink:#304f63;--viti-white:#fff;--viti-black:#000;--viti-surface:#f3f6f8;--viti-border:#cbd5dc;--viti-muted:#526978;--viti-dark-surface:#14384b;--viti-dark-muted:#bbcbd4;--background:var(--viti-white);--surface:var(--viti-surface);--text:var(--viti-navy);--muted:var(--viti-muted);--link:var(--viti-blue);--border:var(--viti-border);--control-border:var(--viti-muted);--action:var(--viti-navy);--on-action:var(--viti-white);--accent:var(--viti-orange);--on-accent:var(--viti-navy);--accent-text:var(--viti-orange-deep);--focus:var(--viti-blue);--code-surface:var(--viti-navy);--code-text:var(--viti-white);--code-muted:var(--viti-dark-muted)}[data-theme=dark]{color-scheme:dark;--background:var(--viti-navy);--surface:var(--viti-dark-surface);--text:var(--viti-white);--muted:var(--viti-dark-muted);--link:var(--viti-green);--border:var(--viti-muted);--control-border:var(--viti-dark-muted);--action:var(--viti-green);--on-action:var(--viti-navy);--accent-text:var(--viti-orange);--focus:var(--viti-green);--code-surface:var(--viti-dark-surface)}:root{--space-0:0px;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-48:48px;--space-64:64px;--space-96:96px;--radius-0:0px;--radius-4:4px;--radius-8:8px;--radius-12:12px;--radius-999:999px;--viti-gradient:linear-gradient(90deg, #00649f 0%, #008e9d 50%, #19b99b 100%);--viti-arrow-left-gradient:linear-gradient(90deg, #0b3047, #063d50);--viti-arrow-right-gradient:linear-gradient(90deg, #075365, #006f76);--font-heading:"Montserrat", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}@layer base{.vg-btn{justify-content:center;align-items:center;gap:var(--space-8);min-height:48px;padding:var(--space-12) var(--space-24);border-radius:var(--radius-4);font-family:var(--font-body);cursor:pointer;white-space:nowrap;border:1px solid #0000;font-size:16px;font-weight:500;line-height:24px;text-decoration:none;display:inline-flex}.vg-btn-primary{background:var(--action);color:var(--on-action)}.vg-btn-accent{background:var(--accent);color:var(--on-accent);font-weight:600}.vg-btn-secondary{color:var(--text);border-color:var(--control-border);background:0 0}.vg-btn-quiet{color:var(--link);text-underline-offset:.2em;background:0 0;padding-inline:0;text-decoration:underline}.vg-btn-primary:hover,.vg-btn-accent:hover,.vg-btn-secondary:hover{text-underline-offset:.2em;text-decoration:underline}.vg-btn[aria-disabled=true]{cursor:not-allowed;opacity:.55}.vg-btn[aria-disabled=true]:hover{text-decoration:none}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.vg-link{color:var(--link);text-underline-offset:.15em;text-decoration:underline 1px}.vg-link:hover{text-decoration-thickness:2px}.vg-badge{padding:var(--space-4) 10px;border:1px solid var(--control-border);border-radius:var(--radius-999);background:var(--surface);color:var(--text);font-family:var(--font-body);align-items:center;gap:6px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.vg-badge-dot{border-radius:50%;flex:none;width:8px;height:8px}.vg-badge-live .vg-badge-dot{background:var(--link)}.vg-badge-soon .vg-badge-dot{background:var(--accent-text)}.vg-header{align-items:center;gap:var(--space-16) var(--space-32);padding:var(--space-16) max(var(--gutter), calc((100% - var(--content-max)) / 2));background:var(--background);border-bottom:1px solid var(--border);font-family:var(--font-body);flex-wrap:wrap;display:flex}.vg-header-logo{flex:none;display:inline-flex}.vg-header-logo img{width:auto;height:32px;display:block}.vg-header-nav{gap:var(--space-8) var(--space-24);flex-wrap:wrap;flex:auto;display:flex}.vg-header-link{color:var(--text);font-size:15px;font-weight:500;line-height:24px;text-decoration:none}.vg-header-link:hover{text-underline-offset:.3em;text-decoration:underline}.vg-header-link[aria-current=page]{text-underline-offset:.3em;text-decoration:underline 2px}.vg-header-end{align-items:center;gap:var(--space-16);display:flex}.vg-header-lang{color:var(--muted);font-size:14px;text-decoration:none}.vg-header-lang:hover{text-decoration:underline}@media (width<=640px){.vg-header-end{order:1;margin-left:auto}.vg-header-nav{flex-basis:100%;order:2}}.vg-logo-dark,[data-theme=dark] .vg-logo-light{display:none!important}[data-theme=dark] .vg-logo-dark{display:block!important}.vg-card{gap:var(--space-12);padding:var(--space-24);background:var(--surface);border-radius:var(--radius-8);color:var(--text);font-family:var(--font-body);flex-direction:column;font-size:16px;line-height:1.5;display:flex}.vg-card-title{font-family:var(--font-heading);text-wrap:balance;margin:0;font-size:24px;font-weight:600;line-height:1.25}.vg-card-body{color:var(--text)}.vg-card-body p{margin:0}.vg-card-more{margin:auto 0 0}.vg-code{background:var(--code-surface);color:var(--code-text);border-radius:var(--radius-8);margin:0;overflow:hidden}.vg-code-label{padding:var(--space-8) var(--space-16) 0;font-family:var(--font-mono);color:var(--code-muted);font-size:12px;line-height:18px}.vg-code-pre{padding:var(--space-12) var(--space-16) var(--space-16);font-family:var(--font-mono);color:var(--code-text);margin:0;font-size:14px;line-height:1.5;overflow-x:auto}.vg-footer{padding:var(--space-48) var(--gutter) var(--space-32);border-top:1px solid var(--border);background:var(--background);color:var(--text);font-family:var(--font-body)}.vg-footer-cols{gap:var(--space-32);max-width:var(--content-max);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-inline:auto;display:grid}.vg-footer-title{margin:0 0 var(--space-12);color:var(--text);font-size:14px;font-weight:600;line-height:20px}.vg-footer ul{gap:var(--space-8);margin:0;padding:0;list-style:none;display:grid}.vg-footer-col a{color:var(--muted);font-size:14px;text-decoration:none}.vg-footer-col a:hover{color:var(--text);text-decoration:underline}.vg-footer-legal{align-items:center;gap:var(--space-16);max-width:var(--content-max);margin:var(--space-48) auto 0;padding-top:var(--space-24);border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;font-size:12px;line-height:1.5;display:flex}.vg-footer-legal p{margin:0}.vg-footer-logo{width:auto;height:24px;display:block}:root{--content-max:1200px;--gutter:24px;--section-pad:112px;--display:76px;--h1:64px;--h2:44px;--font-app:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (width<=900px){:root{--gutter:16px;--section-pad:64px;--display:44px;--h1:40px;--h2:30px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}.site-header{z-index:5;position:sticky;top:0}body{background:var(--background);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}h1,h2,h3{text-wrap:balance}img,svg{max-width:100%}a{color:var(--link)}.num{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.container{width:100%;max-width:calc(var(--content-max) + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-pad);background:var(--background);color:var(--text)}.band{background:var(--background);color:var(--text)}.section--surface{background:var(--surface)}.section--flush-top{padding-top:0}.stack{gap:var(--stack-gap,24px);flex-direction:column;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:48px 32px;display:grid}.grid--top{align-items:start}.grid--end{align-items:end}[class*=span-]{grid-column:var(--start,auto) / span var(--span)}.span-4{--span:4}.span-5{--span:5}.span-6{--span:6}.span-7{--span:7}.span-8{--span:8}.start-6{--start:6}.start-7{--start:7}.start-8{--start:8}.start-9{--start:9}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}@media (width<=900px){.grid{grid-template-columns:minmax(0,1fr)}.grid>*{grid-column:1/-1}.cards{grid-template-columns:minmax(0,1fr);gap:24px}}.display,.h1,.h2,.h3{overflow-wrap:break-word}.eyebrow{color:var(--accent-text);font-size:14px;font-weight:600;line-height:20px}.display,.h1{font-family:var(--font-heading);letter-spacing:-.02em;font-weight:800;line-height:1.03}.display{font-size:var(--display)}.h1{font-size:var(--h1)}.h2{font-family:var(--font-heading);font-size:var(--h2);letter-spacing:-.01em;font-weight:700;line-height:1.12}.h3{font-family:var(--font-heading);font-size:24px;font-weight:700;line-height:1.25}.accent{color:var(--accent-text)}.lead{max-width:56ch;font-size:20px;line-height:1.5}.muted{color:var(--muted)}.small{font-size:14px}.measure{max-width:720px}.mono{font-family:var(--font-mono)}@media (width<=900px){.lead{font-size:18px}}.prose{max-width:72ch;font-size:17px;line-height:1.6}.prose>*+*{margin-top:1em}.prose h2{font-family:var(--font-heading);margin-top:2em;font-size:26px;font-weight:700;line-height:1.2}.prose h3{font-family:var(--font-heading);margin-top:1.6em;font-size:20px;font-weight:700;line-height:1.25}.prose ul,.prose ol{padding-left:1.25em}.prose dl{grid-template-columns:max-content 1fr;gap:8px 24px;display:grid}.prose dt{font-weight:600}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:10;background:var(--accent);color:var(--on-accent);border-radius:var(--radius-4);padding:12px 16px;font-weight:600;text-decoration:none;position:absolute;top:-64px;left:16px}.skip:focus{top:16px}}.vg-placeholder{color:var(--muted);text-underline-offset:3px;font-weight:500;text-decoration:underline dotted}.vg-placeholder--block{display:block}
