*,:before,:after{box-sizing:border-box}*{-webkit-tap-highlight-color:#0000;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none}:root{--resting-opacity:.5;--color-primary:#3a393d;--color-secondary:#fff;--color-accent:#06f;--color-text:#3a393d;--color-text-light:#666;--color-background:#fdfdfc;--color-surface:#f5f5f5;--color-border:#e0e0e0;--color-error:#d32f2f;--color-warning:#e65100;--color-success:#2e7d32;--size-4:.25rem;--size-8:.5rem;--size-12:.75rem;--size-16:1rem;--size-24:1.5rem;--size-32:2rem;--size-48:3rem;--size-64:4rem;--size-96:6rem;--size-128:8rem;--font-mono:"SF Mono", Monaco, "Cascadia Code", "Courier New", monospace;--fs-large:32px;--lh-large:36px;--fs-medium:20px;--lh-medium:23px;--fs-normal:16px;--lh-normal:18px;--fs-small:14px;--lh-small:16px;--text-indent:30px;--padding-section:120px;--padding-section-small:60px;--text-12:.75rem;--text-14:.875rem;--text-16:1rem;--text-18:1.125rem;--text-20:1.25rem;--text-24:1.5rem;--text-30:1.875rem;--text-36:2.25rem;--text-48:3rem;--text-60:3.75rem;--text-72:4.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--letter-spacing-tight:-.025em;--letter-spacing-normal:0;--letter-spacing-wide:.025em;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--z-overlay:9999;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.35s ease;--transition-smooth:.4s cubic-bezier(.4, 0, .2, 1);--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a;--container-max-width:1440px;--container-padding:var(--size-16)}@media (width>=768px){:root{--container-padding:var(--size-32)}}@media (width>=1024px){:root{--container-padding:var(--size-64)}}@media (width<=1024px){:root{--fs-large:26px;--lh-large:30px}}@media (width<=768px){:root{--fs-large:18px;--lh-large:20px;--fs-medium:18px;--lh-medium:20px;--padding-section:60px}}@font-face{font-family:Kleisch LL;src:url(../../../fonts/KleischLL-Book.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Kleisch LL;src:url(../../../fonts/KleischLL-BookItalic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Kleisch LL;src:url(../../../fonts/KleischLL-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Kleisch LL;src:url(../../../fonts/KleischLL-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Open Sans;src:url(../../../fonts/OpenSans.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--font-sans:"Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@font-face{font-family:Parc Helvetica Medium;src:url(../../../fonts/Parc-Helvetica-Medium-parc.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}html{font-family:var(--font-sans);font-size:var(--fs-normal);line-height:var(--lh-normal);color:var(--color-text);background-color:var(--color-background);font-feature-settings:"pnum" 1, "onum" 1;text-rendering:optimizelegibility}body{line-height:var(--lh-normal);overflow-x:hidden}.main-grid{column-gap:var(--size-16);margin-inline:var(--size-16);grid-template-columns:repeat(8,1fr);display:grid}@media (width>=768px){.main-grid{column-gap:var(--size-24);margin-inline:var(--size-32)}}@media (width>=1024px){.main-grid{column-gap:var(--size-24);margin-inline:var(--size-64)}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%;max-width:var(--container-max-width);padding-left:var(--container-padding);padding-right:var(--container-padding);margin-left:auto;margin-right:auto}.site-footer.svelte-1kmc3eq{box-sizing:border-box;justify-content:space-between;align-items:baseline;gap:0 var(--mx);--footer-bottom:var(--mx);width:50%;padding:var(--page-tail,calc(50 * var(--layout-vh,1vh))) var(--mx) calc(var(--cookie-banner-h,0px) + var(--footer-bottom) - (var(--lh) - var(--caption-fs)) / 2);color:var(--ink);line-height:var(--lh);flex-wrap:wrap;display:flex}@media not all and (width<=820px){html:has(.one-pager) .site-footer.svelte-1kmc3eq{width:calc(var(--text-w) + 2 * var(--mx))}}@supports (padding-top:round(1px, 1px)){.site-footer.svelte-1kmc3eq{padding-top:var(--page-tail,round(up, 50 * var(--layout-vh,1vh), var(--lh)))}}@media (width<=820px){.site-footer.svelte-1kmc3eq{--footer-bottom:var(--navtop);--caption-fs:13px;width:100%;padding-top:var(--page-tail,calc(3 * var(--lh)))}.site-footer__credit-words.svelte-1kmc3eq{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.parc-wordmark.svelte-1kmc3eq{font-variant-ligatures:common-ligatures;font-feature-settings:"liga" 1;letter-spacing:0;font-family:Parc Helvetica Medium,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500}.site-footer__credit.svelte-1kmc3eq{white-space:nowrap;margin-left:auto;position:relative}.site-footer__credit.svelte-1kmc3eq:after{content:"";position:absolute;inset:-1px 0 0}.site-footer__links.svelte-1kmc3eq{gap:0 var(--mx);flex-wrap:wrap;order:-1;margin:0;padding:0;list-style:none;display:flex}.cookie-banner.svelte-1dhw99g{z-index:45;box-sizing:border-box;--banner-lh:23px;width:50vw;padding:16px var(--mx) calc(var(--mx) - (var(--banner-lh) - var(--caption-fs)) / 2);background:var(--bg);color:var(--ink);line-height:var(--banner-lh);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 30px;display:flex;position:fixed;bottom:0;left:0}.cookie-banner.svelte-1dhw99g:after{content:"";background:var(--bg);pointer-events:none;height:50vh;position:absolute;top:100%;left:0;right:0}.cookie-banner__copy.svelte-1dhw99g{opacity:.4;margin:0}.cookie-banner__actions.svelte-1dhw99g{gap:30px;display:flex}.cookie-banner__actions.svelte-1dhw99g .text-button:where(.svelte-1dhw99g){position:relative}.cookie-banner__actions.svelte-1dhw99g .text-button:where(.svelte-1dhw99g):after{content:"";position:absolute;inset:-2px 0}body.intro-reveal .cookie-banner.svelte-1dhw99g>:where(.svelte-1dhw99g){filter:opacity(.25)}body.intro-release .cookie-banner.svelte-1dhw99g>:where(.svelte-1dhw99g){transition:filter .8s cubic-bezier(.83,0,.17,1)}body.introing .cookie-banner.svelte-1dhw99g{visibility:hidden;opacity:0}@media (prefers-reduced-motion:no-preference){.cookie-banner.svelte-1dhw99g{transition:opacity .3s,visibility .3s;animation:.3s svelte-1dhw99g-cookie-banner-in}}@keyframes svelte-1dhw99g-cookie-banner-in{0%{opacity:0}}@media (width<=820px){.cookie-banner.svelte-1dhw99g{width:100%;padding:14px var(--mx);flex-direction:column;align-items:flex-start;line-height:21px}body.menu-open .cookie-banner.svelte-1dhw99g{visibility:hidden;opacity:0}.cookie-banner__actions.svelte-1dhw99g{gap:20px}}:root.page-fade{--page-fade-out:.35s;--page-fade-hold:.1s;--page-fade-in:.45s;--page-fade-ease:cubic-bezier(.83, 0, .17, 1)}:root.page-fade :is(.project-header__logo,body.docked .nav__ng,body:not(.docked) .ng-inline) .ng-logo{view-transition-name:ng-logo}:root.page-fade::view-transition{background:var(--bg)}:root.page-fade::view-transition-old(root){animation:page-fade-out var(--page-fade-out) var(--page-fade-ease) both}:root.page-fade::view-transition-new(root){animation:page-fade-in var(--page-fade-in) var(--page-fade-ease) calc(var(--page-fade-out) + var(--page-fade-hold)) both}:root.page-fade::view-transition-group(ng-logo){animation-duration:calc(var(--page-fade-out) + var(--page-fade-hold) + var(--page-fade-in));animation-timing-function:var(--page-fade-ease)}:root.page-fade::view-transition-old(ng-logo){animation:none}:root.page-fade::view-transition-new(ng-logo){animation:none}:root.page-fade::view-transition-old(ng-logo){opacity:0}@keyframes page-fade-out{to{opacity:0}}@keyframes page-fade-in{0%{opacity:0}}body{margin:0}
