@layer astro.images{:where([data-astro-image]){height:auto}:where([data-astro-image=full-width]){width:100%}:where([data-astro-image=constrained]){max-width:100%}[data-astro-image-fit=fill]{object-fit:fill}[data-astro-image-fit=contain]{object-fit:contain}[data-astro-image-fit=cover]{object-fit:cover}[data-astro-image-fit=scale-down]{object-fit:scale-down}[data-astro-image-pos=top]{object-position:top}[data-astro-image-pos=bottom]{object-position:bottom}[data-astro-image-pos=left]{object-position:left}[data-astro-image-pos=right]{object-position:right}[data-astro-image-pos=center]{object-position:center}[data-astro-image-pos=top-left]{object-position:top left}[data-astro-image-pos=top-right]{object-position:top right}[data-astro-image-pos=top-center]{object-position:top center}[data-astro-image-pos=bottom-left]{object-position:bottom left}[data-astro-image-pos=bottom-right]{object-position:bottom right}[data-astro-image-pos=bottom-center]{object-position:bottom center}[data-astro-image-pos=left-top]{object-position:left top}[data-astro-image-pos=left-bottom]{object-position:left bottom}[data-astro-image-pos=left-center]{object-position:left center}[data-astro-image-pos=right-top]{object-position:right top}[data-astro-image-pos=right-bottom]{object-position:right bottom}[data-astro-image-pos=right-center]{object-position:right center}[data-astro-image-pos=center-top]{object-position:center top}[data-astro-image-pos=center-bottom]{object-position:center bottom}[data-astro-image-pos=center-left]{object-position:center left}[data-astro-image-pos=center-right]{object-position:center right}}.header.astro-nen7h5rs{color:var(--color-header-text)}.container.astro-nen7h5rs{height:var(--header-height);justify-content:flex-start;align-items:center;gap:16px;display:flex}a.astro-nen7h5rs{color:inherit}nav.astro-nen7h5rs{align-items:center;gap:clamp(12px,3vw,36px);display:flex}nav.astro-nen7h5rs a.astro-nen7h5rs{font-size:13px;font-family:var(--font-family-heading);text-transform:uppercase;padding-block:12px;font-weight:600;text-decoration:none}nav.astro-nen7h5rs a.astro-nen7h5rs:hover,nav.astro-nen7h5rs a.astro-nen7h5rs[aria-current]{text-decoration:underline}@media (width<=480px){nav.astro-nen7h5rs{gap:16px}nav.astro-nen7h5rs a.astro-nen7h5rs{font-size:12px}}.footer.astro-jo6i4kqk{background:var(--color-teal-green);color:var(--color-cream);--grain-strength:.2;margin-top:80px;padding-block:clamp(40px,5vw,64px) 24px}.footer.astro-jo6i4kqk a.astro-jo6i4kqk{color:inherit}.footer.astro-jo6i4kqk :focus-visible{outline-color:var(--color-cream)}@font-face{font-family:STIX Two Text;src:url(/_astro/STIXTwoText-Regular.DdAO0M2Q.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Syne;src:url(/_astro/Syne-SemiBold.fdSFlY9P.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Alexandria;src:url(/_astro/Alexandria-Light.CjTR3hIK.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Alexandria;src:url(/_astro/Alexandria-Regular._07udYGA.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Chinchilla;src:url(/_astro/Chinchilla-Regular.XIPoY8yx.woff2)format("woff2");font-weight:400;font-display:swap}:root{--color-red:#c63f3e;--color-orange:#ed773c;--color-yellow:#eac119;--color-cream:#eae4da;--color-sky-blue:#9ed6df;--color-periwinkle:#808bc5;--color-pink:#eaa7c7;--color-teal-green:#245e55;--color-near-black:#1d1d1b;--font-strong-headline:"STIX Two Text";--font-main-headline:"Syne";--font-small-headline:"Alexandria";--font-body:"Alexandria";--font-accent:"Chinchilla";--tracking-strong-headline:0em;--tracking-main-headline:0em;--tracking-small-headline:0em;--tracking-body:0em;--tracking-accent:0em;--font-weight-strong-headline:600;--font-weight-main-headline:600;--font-weight-small-headline:400;--font-weight-body:300;--font-weight-accent:400;--color-primary-bg:var(--color-near-black);--color-primary-bg-2:var(--color-teal-green);--color-primary-text:var(--color-cream);--color-base-bg:var(--color-cream);--color-base-bg-2:var(--color-cream);--color-base-bg-3:var(--color-periwinkle);--color-base-text:var(--color-near-black);--color-base-text-2:var(--color-near-black);--color-error-text:var(--color-near-black);--color-header-text:var(--color-near-black);--font-family-base:var(--font-body), "Avenir Next", sans-serif;--font-family-heading:var(--font-main-headline), sans-serif;--font-family-monospace:var(--font-fira-mono);--header-height:72px;--section-padding:clamp(48px, 7vw, 96px);--card-border-radius:12px;--button-border-radius:4px;--border-subtle:1px solid color-mix(in srgb, var(--color-near-black) 22%, transparent);--space-section:clamp(64px, 8vw, 112px);--font-system-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-system-mono:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}.container{width:100%;max-width:1280px;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px}.row{flex-wrap:wrap;margin-top:0;margin-left:-15px;margin-right:-15px;display:flex}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-left:15px;padding-right:15px}.col-12{flex:none;width:100%}.order-1{order:1}.order-2{order:2}@media (width>=768px){.col-md-5{flex:none;width:41.6667%}.col-md-6{flex:none;width:50%}.col-md-7{flex:none;width:58.3333%}.order-md-1{order:1}.order-md-2{order:2}}@media (width>=992px){.col-lg-8{flex:none;width:66.6667%}.col-lg-10{flex:none;width:83.3333%}}.mt-4{margin-top:40px!important}.mt-6{margin-top:60px!important}.pt-0{padding-top:0!important}.mb-3{margin-bottom:30px!important}.mb-4{margin-bottom:40px!important}.mb-5{margin-bottom:50px!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.justify-content-start{justify-content:flex-start!important}.justify-content-center{justify-content:center!important}@media (width>=768px){.mt-md-0{margin-top:0!important}}.ratio{width:100%;position:relative}.ratio:before{padding-top:var(--ratio-aspect,100%);content:"";display:block}.ratio>*{width:100%;height:100%;position:absolute;top:0;left:0}.ratio-16x9{--ratio-aspect:56.25%}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:10;background:var(--color-primary-bg);color:var(--color-primary-text);padding:10px 15px;font-weight:400;position:absolute;top:-100px;left:10px}.skip-link:focus{top:10px}:root{--bs-body-bg:#212529;--bs-body-color:#dee2e6;--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-border-color:#495057;--bs-border-radius:.375rem;--bs-border-width:1px;--bs-code-color:#0d6efd;--bs-font-monospace:var(--font-system-mono);--bs-font-sans-serif:var(--font-system-sans);--bs-heading-color:inherit;--bs-highlight-bg:#664d03;--bs-highlight-color:#dee2e6;--bs-link-color-rgb:110, 168, 254;--bs-link-hover-color-rgb:139, 185, 254;--bs-secondary-color:#dee2e6bf}*,:before,:after{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:#0000;margin:0}hr{color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25;margin:1rem 0}h6,h5,h4,h3,h2,h1{color:var(--bs-heading-color);margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (width>=1200px){h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{cursor:help;text-decoration-skip-ink:none;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1rem}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg);padding:.1875em}sub,sup{vertical-align:baseline;font-size:.75em;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{margin-top:0;margin-bottom:1rem;font-size:.875em;display:block;overflow:auto}pre code{font-size:inherit;color:inherit;word-break:normal}code{color:var(--bs-code-color);word-wrap:break-word;font-size:.875em}a>code{color:inherit}kbd{color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem;padding:.1875rem .375rem;font-size:.875em}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{color:var(--bs-secondary-color);text-align:left;padding-top:.5rem;padding-bottom:.5rem}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{border-style:none;padding:0}textarea{resize:vertical}fieldset{border:0;min-width:0;margin:0;padding:0}legend{float:left;width:100%;margin-bottom:.5rem;padding:0;font-size:calc(1.275rem + .3vw)}@media (width>=1200px){legend{font-size:1.5rem}}legend{line-height:inherit}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-text{padding:0}::-webkit-datetime-edit-minute{padding:0}::-webkit-datetime-edit-hour-field{padding:0}::-webkit-datetime-edit-day-field{padding:0}::-webkit-datetime-edit-month-field{padding:0}::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{cursor:pointer;display:list-item}progress{vertical-align:baseline}[hidden]{display:none!important}body{font-family:var(--font-family-base);font-synthesis:none;color:var(--color-base-text);background:var(--color-base-bg);flex-direction:column;min-height:100vh;margin:0;font-size:18px;font-weight:300;display:flex}.page .wrapper{flex:1}h1{font-family:var(--font-family-heading);text-transform:uppercase;overflow-wrap:anywhere;margin:0;font-size:clamp(32px,4vw,48px);font-weight:600;line-height:1.12}h2,h3,h4,h5{font-family:var(--font-family-base);margin:0;font-weight:400;line-height:1.3}h2{font-size:clamp(26px,3vw,34px)}h3{font-size:24px}h4{font-size:20px}h5{font-size:18px}p{line-height:1.65}strong,b{font-weight:400}a{color:var(--color-base-text);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}ul,ol{margin:0;padding:0;list-style:none}img{vertical-align:bottom;margin:0;padding:0}html{scroll-padding-top:24px}:focus-visible{outline-offset:5px;outline:2px solid}.section-title{font-family:var(--font-family-heading);text-transform:uppercase;font-size:clamp(28px,3.5vw,42px);font-weight:600}code{color:var(--color-near-black)}.content{font-size:19px;font-family:var(--font-family-base);color:var(--color-base-text-2)}.content h1,.content h2,.content h3,.content h4,.content h5{color:var(--color-base-text);font-family:var(--font-family-base)}.content h1{margin-top:60px;margin-bottom:15px;font-size:36px;font-weight:400}.content h2{margin-top:40px;margin-bottom:15px;font-size:28px;font-weight:400}.content h3{font-family:var(--font-family-base);margin-top:30px;margin-bottom:15px;font-size:22px;font-weight:400}.content h4{margin-top:20px;margin-bottom:15px;font-size:16px;font-weight:400}:is(.content>h1,.content>h2,.content>h3,.content>h4):first-child{margin-top:0}.content p{line-height:1.56;font-family:var(--font-family-base);color:var(--color-base-text-2);margin-bottom:20px}.content ul{margin:20px;list-style:outside}.content ol{margin:20px;list-style:decimal}.content li{margin-left:20px;line-height:1.5}.content a:not(.button){color:var(--color-primary-bg);text-decoration:underline 2px;-webkit-text-decoration-color:var(--color-primary-bg);text-decoration-color:var(--color-primary-bg)}.content a:not(.button):hover{color:var(--color-primary-bg)}.content img{max-width:100%;height:auto;margin:40px 0}@media (width>=768px){.content img{margin:20px 0}}.content img+img{margin-top:0}.content figure{margin:40px 0}.content figure figcaption{margin-top:10px;font-size:14px}.content figure figcaption h4,.content figure figcaption p{font-size:14px;font-weight:400;font-family:var(--font-family-base);margin:0}.content figure a{display:block}.content figure img{margin:0}.content code,.content pre{font-family:var(--font-family-monospace)}.content blockquote{border-left:4px solid var(--color-base-text);margin:40px 0;padding:30px 20px}.content blockquote:before,.content blockquote:after{content:""}.content blockquote p{color:var(--color-base-text);font-family:var(--font-family-base);letter-spacing:0;margin:0;font-size:24px;font-weight:400;line-height:1.6}.content table{border-spacing:1px;border-collapse:collapse;border-radius:var(--card-border-radius);width:100%;margin:0 auto;position:relative;overflow:hidden}.section{padding-top:var(--section-padding);padding-bottom:var(--section-padding);background-repeat:no-repeat}form{font-size:16px}form .form-group{margin-bottom:24px;display:block}form .form-group label{letter-spacing:0;color:var(--color-base-text);margin-bottom:8px;font-size:14px;font-weight:400;display:block}form .form-group input,form .form-group textarea{font-size:16px;font-family:var(--font-family-base);color:var(--color-base-text);appearance:none;border-radius:var(--card-border-radius);border:1px solid var(--color-base-bg-3);background-color:var(--color-base-bg-2);width:100%;padding:12px 14px;transition:border-color .2s,box-shadow .2s;display:block}:is(form .form-group input,form .form-group textarea)::placeholder{color:var(--color-base-text-2);opacity:1}:is(form .form-group input,form .form-group textarea):focus{border-color:var(--color-primary-bg);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-periwinkle) 30%, transparent);outline:none}form .form-group textarea{resize:vertical;min-height:200px}form .form-group input[aria-invalid=true],form .form-group textarea[aria-invalid=true]{border-color:var(--color-error-text)}form .form-group .form-error{margin:8px 0 0}form button[type=submit]{-webkit-appearance:none;cursor:pointer}form button[type=submit]:disabled{opacity:.6;cursor:progress}form .form-error{color:var(--color-error-text);font-size:14px}form .form-status{margin:16px 0 0}form .form-hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-done h2{margin-top:0}.form-done p:last-child{margin-bottom:0}.social{flex-wrap:wrap;justify-content:flex-start;align-items:center;margin:0 -8px;font-size:24px;display:flex}.social a{color:inherit;padding:8px;display:block}.social a:hover{opacity:.8}.social svg{vertical-align:-.125em}.button{background:var(--color-primary-bg);min-height:48px;color:var(--color-primary-text);border-radius:var(--button-border-radius);font-family:var(--font-family-heading);text-transform:uppercase;letter-spacing:0;border:1px solid var(--color-primary-bg);justify-content:center;align-items:center;gap:10px;padding:13px 22px;font-size:14px;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.button:hover{background:var(--color-primary-bg-2);color:var(--color-primary-text);text-decoration:none}.button-outline{color:var(--color-base-text);background:0 0}@media (prefers-reduced-motion:reduce){.button{transition:none}}.page-project lite-youtube{width:100%;max-width:none}.page-project lite-youtube:before{display:none}.gallery-video lite-youtube{padding-bottom:var(--gallery-video-ratio,56.25%)}.page-project .content figure{margin:30px 0}.page-project .content figure img,.page-project .content figure video,.page-project .content figure iframe,.page-project .content figure lite-youtube{border-radius:4px}.page-project .content figure video{width:100%;height:auto;display:block}.page-project .content figure figcaption{margin-top:10px}.page-project .content figure figcaption .caption-title{font-size:15px;font-weight:400;font-family:var(--font-family-base);color:var(--color-base-text);margin:0 0 4px}.page-project .content figure figcaption p{color:var(--color-base-text-2);margin:0;font-size:13px;font-weight:400;line-height:1.5}@media (width>=768px){.page-project .content .figure-full{margin-left:-15px;margin-right:-15px}}.page-project-right .content{margin-bottom:50px}.page-keynote .keynote-video-wrapper{background:var(--color-near-black);border-radius:8px;overflow:hidden}.page-keynote .keynote-meta{margin-top:4px}.page-keynote .keynote-meta .keynote-meta-item{margin-bottom:6px;font-size:16px;line-height:1.4}.page-keynote .keynote-meta .keynote-meta-item strong{width:80px;font-weight:400;display:inline-block}.page-keynote .keynote-meta .keynote-meta-item span{color:var(--color-base-text-2);font-weight:400;display:inline-block}.grain{isolation:isolate;position:relative}.grain:after{content:"";border-radius:inherit;mix-blend-mode:overlay;opacity:var(--grain-strength,.4);pointer-events:none;z-index:1;background:url(/_astro/tex-grain-fibre.DLy9Z__V.webp) 0 0/640px;position:absolute;inset:0}.grain>*{z-index:2;position:relative}.marker{font-family:var(--font-accent), cursive;text-transform:uppercase;font-weight:400;line-height:1.15}
