.host-part[data-astro-cid-f3bw7soj]{white-space:nowrap}.footer-lockup[data-astro-cid-sz7xmlte]{display:inline-flex;align-items:center;gap:.6rem;font-size:1.0625rem;font-weight:640;letter-spacing:-.015em;color:var(--ink)}.footer-live[data-astro-cid-sz7xmlte]{display:grid;gap:.1rem;text-decoration:none}.footer-live__name[data-astro-cid-sz7xmlte]{font-weight:560;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:.2em}.footer-live[data-astro-cid-sz7xmlte]:hover .footer-live__name[data-astro-cid-sz7xmlte]{text-decoration-color:currentColor}.footer-live__host[data-astro-cid-sz7xmlte]{font-family:var(--font-frame-mono);font-size:var(--fs-mono);color:var(--ink-3)}.site-footer__grid[data-astro-cid-sz7xmlte] nav[data-astro-cid-sz7xmlte] li[data-astro-cid-sz7xmlte]+li[data-astro-cid-sz7xmlte]{margin-block-start:var(--s2)}@font-face{font-family:Geist;src:url(/fonts/Geist-var-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;src:url(/fonts/GeistMono-var-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;src:url(/fonts/Inter-var-latin.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;src:url(/fonts/BarlowCondensed-700-latin.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;src:url(/fonts/IBMPlexSans-var-latin.woff2) format("woff2");font-weight:100 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-400-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-500-latin.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Anton;src:url(/fonts/Anton-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--paper: #ffffff;--paper-sunk: #f4f6f9;--paper-raised: #ffffff;--ink: #0d1117;--ink-2: #434b57;--ink-3: #5a6370;--accent: #0a6488;--edge: #6c7582;--line: #e3e7ec;--line-2: #c9cfd7;--live: #12805c;--pill-bg: #0d1117;--pill-ink: #f6f7f9;--pill-bg-hover: #2a313b;--panel: #0d1117;--panel-ink: #f6f7f9;--panel-ink-2: #b9c0ca;--panel-line: #2a313b;--shadow: 0 1px 2px rgb(13 17 23 / .05), 0 18px 40px -30px rgb(13 17 23 / .35);--swatch-city: #22b8d6;--swatch-drawing: #2f6fd0;--swatch-poster: #ec5b26;--color-bg: var(--paper);--color-text: var(--ink);--color-text-muted: var(--ink-2);--color-surface-muted: var(--paper-sunk);--color-border: var(--edge);--color-heading: var(--ink);--color-link: var(--accent);--color-on-surface: var(--ink);--color-banner-bg: #0d1117;--color-banner-text: #f6f7f9;--font-frame: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--font-frame-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-body: var(--font-frame);--font-heading: var(--font-frame);--fs-h1: clamp(2.25rem, 1.3rem + 3.3vw, 4.125rem);--fs-h2: clamp(1.75rem, 1.25rem + 1.9vw, 2.875rem);--fs-h3: clamp(1.125rem, 1.05rem + .3vw, 1.25rem);--fs-lead: clamp(1.0625rem, 1rem + .35vw, 1.25rem);--fs-body: 1.0625rem;--fs-small: .9375rem;--fs-mono: .8125rem;--s1: .25rem;--s2: .5rem;--s3: .75rem;--s4: 1rem;--s5: 1.5rem;--s6: 2rem;--s7: 3rem;--s8: 4rem;--s9: clamp(4.5rem, 3rem + 5vw, 8rem);--gutter: clamp(1.25rem, .6rem + 3vw, 3.5rem);--container: 75rem;--measure: 62ch;--radius: 14px;--radius-sm: 8px;--space: 1rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}@media(prefers-color-scheme:dark){:root{--paper: #0b0d11;--paper-sunk: #08090c;--paper-raised: #12151b;--ink: #e8ebef;--ink-2: #b0b7c1;--ink-3: #959dab;--accent: #67c7f0;--edge: #6b7480;--line: #1f242c;--line-2: #2c333d;--live: #3fcf8e;--pill-bg: #e8ebef;--pill-ink: #0b0d11;--pill-bg-hover: #ffffff;--panel: #12151b;--panel-ink: #e8ebef;--panel-ink-2: #b0b7c1;--panel-line: #2c333d;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 18px 40px -30px rgb(0 0 0 / .9);--swatch-city: #2fd3ec;--swatch-drawing: #4f8ae0;--swatch-poster: #f06a37;--color-banner-bg: #1b2028;--color-banner-text: #e8ebef}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font-frame);font-size:var(--fs-body);line-height:1.6;color:var(--ink);background-color:var(--paper);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-wrap:anywhere}main :is(p,li,dt,dd,figcaption,th,td){overflow-wrap:anywhere}main :is(h1,h2,h3,h4,h5,h6){overflow-wrap:break-word;word-break:normal}img,svg{max-inline-size:100%;block-size:auto}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-heading);color:var(--ink);font-weight:600;text-wrap:balance}p{margin:0;text-wrap:pretty}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--ink);color:var(--paper)}.sr-only{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.wrap{inline-size:min(100% - 2 * var(--gutter),var(--container));margin-inline:auto}.mono{font-family:var(--font-frame-mono);font-size:var(--fs-mono);letter-spacing:.01em}.pill{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-block-size:2.75rem;max-inline-size:100%;padding-block:.6rem;padding-inline:1.25rem;border:0;border-radius:999px;background:var(--pill-bg);color:var(--pill-ink);font:550 .9375rem/1.25 var(--font-frame);letter-spacing:-.005em;text-align:center;text-decoration:none;text-wrap:balance;cursor:pointer;transition:background-color .18s ease,transform .18s ease}.pill:hover{background:var(--pill-bg-hover)}.pill:active{transform:translateY(1px)}.pill .arrow{flex:none;transition:transform .18s ease}.pill:hover .arrow{transform:translate(3px)}.live-dot{display:inline-block;flex:none;inline-size:.5rem;block-size:.5rem;border-radius:50%;background:var(--live);box-shadow:0 0 0 3px color-mix(in srgb,var(--live) 22%,transparent)}.live-row{display:inline-flex;align-items:baseline;gap:.55rem;min-inline-size:0}.live-row .live-dot{align-self:center}.live-word{font-family:var(--font-frame-mono);font-size:var(--fs-mono);font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.host{font-family:var(--font-frame-mono);font-size:var(--fs-mono);overflow-wrap:normal}.swatches{display:inline-flex;gap:3px}.swatches i{display:block;inline-size:.5rem;block-size:.5rem;border-radius:2px}.swatches i:nth-child(1){background:var(--swatch-city)}.swatches i:nth-child(2){background:var(--swatch-drawing)}.swatches i:nth-child(3){background:var(--swatch-poster)}.demo-banner{margin:0;padding-block:.55rem;padding-inline:var(--gutter);background:var(--color-banner-bg);color:var(--color-banner-text);text-align:center;font-family:var(--font-frame);font-size:.875rem;font-weight:500;line-height:1.45;text-wrap:balance}.site-header{position:relative;z-index:10;background:var(--paper);border-block-end:1px solid var(--line)}.site-header__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s5);min-block-size:4.25rem;padding-block:.6rem}.site-header__row>*{min-inline-size:0}.site-header .brand{display:inline-flex;align-items:center;gap:.7rem;flex-shrink:0;min-block-size:2.75rem;color:var(--ink);text-decoration:none}.lockup{display:inline-flex;align-items:center;gap:.6rem;min-inline-size:max-content;white-space:nowrap}.lockup__name{font-size:1.0625rem;font-weight:640;letter-spacing:-.015em}.lockup__note{display:none;padding-inline-start:.7rem;border-inline-start:1px solid var(--line-2);font-size:.9375rem;font-weight:450;color:var(--ink-2)}.site-nav{display:none;margin-inline-start:auto;gap:var(--s5)}.site-nav a{display:inline-flex;align-items:center;min-block-size:2.75rem;color:var(--ink-2);font-size:.9375rem;font-weight:500;text-decoration:none;overflow-wrap:anywhere}.site-nav a:hover{color:var(--ink);text-decoration:underline}.header-cta{margin-inline-start:auto;flex-shrink:0;min-block-size:2.5rem;padding-inline:1.1rem;white-space:nowrap}@media(min-width:40em){.lockup__note{display:inline}}@media(min-width:60em){.site-nav{display:flex}.header-cta{margin-inline-start:0}}@media(max-width:29.99em){.site-header .brand{gap:.55rem}.lockup__name{font-size:1rem}.header-cta{min-block-size:2.5rem;padding-inline:.95rem;font-size:.875rem}}@media(max-width:23.99em){.lockup__name{font-size:.9375rem}.site-header .swatches{display:none}.header-cta{padding-inline:.8rem;font-size:.8125rem}}.site-footer{margin-block-start:0;padding-block:var(--s8) var(--s7);background:var(--paper-sunk);border-block-start:1px solid var(--line);color:var(--ink);font-size:var(--fs-small)}.site-footer__grid{display:grid;gap:var(--s6) var(--s7);grid-template-columns:minmax(0,1fr)}@media(min-width:48em){.site-footer__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(min-width:72em){.site-footer__grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1.1fr) minmax(0,.8fr)}}.footer-title{margin-block-end:var(--s3);font-family:var(--font-frame-mono);font-size:var(--fs-mono);font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.footer-blurb{max-inline-size:34ch;margin-block-start:var(--s3);color:var(--ink-2)}.site-footer ul{display:grid;gap:.15rem;margin:0;padding:0;list-style:none}.site-footer a{display:inline-block;padding-block:.3rem;margin-block:-.3rem;color:var(--ink);text-decoration-color:var(--line-2)}.site-footer a:hover{text-decoration-color:currentColor}.site-footer li{padding-block:.3rem}.footer-contact{font-style:normal}.footer-contact dl{display:grid;gap:var(--s2);margin:0}.footer-contact dt{font-size:var(--fs-mono);color:var(--ink-3)}.footer-contact dd{margin:0}.footer-contact .addr{max-inline-size:12.15em}.footer-note{margin-block-start:var(--s3);color:var(--ink-3);font-size:.875rem}.site-footer__base{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3) var(--s5);margin-block-start:var(--s7);padding-block-start:var(--s5);border-block-start:1px solid var(--line)}.language-picker ul{display:flex;flex-wrap:wrap;gap:var(--s4)}.language-picker li{padding:0}.language-picker a{padding-block:.4rem;margin-block:0}.language-picker a[aria-current=true]{font-weight:650;text-decoration:none}.lang-suggest{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s2) var(--s4);padding-block:.6rem;padding-inline:var(--gutter);background:var(--paper-sunk);color:var(--ink);border-block-end:1px solid var(--line);text-align:center;font-size:.9rem}.lang-suggest-message{margin:0}.lang-suggest-action{display:inline-flex;align-items:center;justify-content:center;min-inline-size:24px;padding-block:.375rem;padding-inline:.5rem;color:var(--ink);font-weight:600;text-decoration:underline}.lang-suggest-dismiss{cursor:pointer;font:inherit;color:var(--ink);background:transparent;border:1px solid var(--edge);border-radius:999px;padding-block:.3rem;padding-inline:.9rem}.skip-link{position:absolute;z-index:30;inset-block-start:.5rem;inset-inline-start:.5rem;padding-block:.6rem;padding-inline:1.1rem;border-radius:999px;background:var(--pill-bg);color:var(--pill-ink);font-weight:600;text-decoration:none;transform:translateY(-200%)}.skip-link:focus{transform:none}.contact-form{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s5)}.contact-form .form-field{display:grid;gap:.4rem;margin:0}.contact-form label,.contact-form legend{font-size:var(--fs-small);font-weight:560;color:var(--ink)}.contact-form .form-required,.contact-form .form-optional{font-weight:400;color:var(--ink-3)}.contact-form input[type=text],.contact-form input[type=email],.contact-form textarea{font:inherit;color:var(--ink);background:var(--paper-raised);border:1px solid var(--edge);border-radius:var(--radius-sm);padding-block:.7rem;padding-inline:.85rem;min-inline-size:0;max-inline-size:100%}.contact-form textarea{resize:vertical}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.contact-form button{justify-self:start;font:550 1rem/1.25 var(--font-frame)}.form-error{display:none}.form-error:target{display:block;margin:0;padding-block:.75rem;padding-inline:var(--s4);border:1px solid var(--edge);border-radius:var(--radius-sm);font-weight:600}.form-noscript{margin:0;color:var(--ink-2)}.contact-form .form-extra{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@keyframes k2-lay{0%{clip-path:inset(-.25em -.25em 100% -.25em);transform:translateY(.75rem)}to{clip-path:inset(-.25em -.25em -.25em -.25em);transform:translateY(0)}}@keyframes k2-reveal{0%{clip-path:inset(0% 0% 100% 0%);transform:translateY(1.25rem)}to{clip-path:inset(-2rem -2rem -2rem -2rem);transform:translateY(0)}}@media(prefers-reduced-motion:no-preference){html.motion:not(.midway) [data-lead]{animation:k2-lay .9s var(--ease-out) var(--d, 0s) both}html.motion [data-reveal]:not([data-reveal=stagger]).is-pending:not(.is-in),html.motion [data-reveal=stagger].is-pending:not(.is-in)>*{clip-path:inset(0% 0% 100% 0%);transform:translateY(1.25rem)}html.motion [data-reveal]:not([data-reveal=stagger]).is-pending.is-in,html.motion [data-reveal=stagger].is-pending.is-in>*{animation:k2-reveal .85s var(--ease-out) var(--d, 0s) both}html.motion [data-reveal=stagger].is-pending.is-in>:nth-child(2){animation-delay:.16s}html.motion [data-reveal=stagger].is-pending.is-in>:nth-child(3){animation-delay:.3s}html.motion [data-reveal=stagger].is-pending.is-in>:nth-child(n+4){animation-delay:.42s}html.motion .is-now,html.motion .is-now *{animation:none!important;transition:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
