@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-bottom]{object-position:top bottom}[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-top]{object-position:bottom top}[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-right]{object-position:left right}[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-left]{object-position:right left}[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}}:root{--color-primary-bg:#0d042b;--color-primary-bg-2:#0d042b;--color-primary-text:#fdfcf9;--color-base-bg:#fdfcf9;--color-base-bg-2:#f7f6ed;--color-base-bg-3:#faebd7;--color-base-text:#0d042b;--color-base-text-2:#3b364c;--color-error-text:#b3261e;--color-logo-text:#0d042b;--color-header-text:#0d042b;--color-menu-text:#0d042b;--font-family-base:var(--font-dm-sans);--font-family-heading:var(--font-dm-sans);--font-family-logo:var(--font-dm-sans);--font-family-monospace:var(--font-fira-mono);--header-height:60px;--section-padding:80px;--card-border-radius:5px;--button-border-radius:5px;--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;&>*{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{flex:1 0}.col-md-auto{flex:none;width:auto}.col-md-4{flex:none;width:33.3333%}.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-4{flex:none;width:33.3333%}.col-lg-8{flex:none;width:66.6667%}.col-lg-10{flex:none;width:83.3333%}}.mt-gutter{margin-top:30px!important}.mt-0{margin-top:0!important}.mt-4{margin-top:40px!important}.mt-6{margin-top:60px!important}.pt-0{padding-top:0!important}.mb-gutter{margin-bottom:30px!important}.mb-0{margin-bottom: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}.align-items-center{align-items:center!important}.text-center{text-align:center!important}@media (width>=768px){.mt-md-0{margin-top:0!important}}.ratio{width:100%;position:relative;&:before{padding-top:var(--ratio-aspect,100%);content:"";display:block}&>*{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}: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:calc(1.325rem + .9vw)}@media (width>=1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (width>=1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (width>=1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}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);color:var(--color-base-text);background:var(--color-base-bg);flex-direction:column;min-height:100vh;margin:0;font-size:18px;display:flex}.page{& .wrapper{flex:1}}h1{font-family:var(--font-family-heading);margin:0;font-size:42px;font-weight:400;line-height:1.2;@media (width>=768px){font-size:48px;font-weight:400}}h2{font-family:var(--font-family-heading);margin:0;font-size:32px;font-weight:400;line-height:1.2;@media (width>=768px){font-size:34px;font-weight:400;line-height:1.4}}h3{font-family:var(--font-family-heading);margin:0;font-size:24px;font-weight:400;line-height:1.4;@media (width>=768px){font-size:24px}}h4{font-family:var(--font-family-heading);margin:0;font-size:20px;font-weight:400;line-height:1.4;@media (width>=768px){font-size:20px}}h5{font-family:var(--font-family-heading);margin:0;font-size:18px;font-weight:700;line-height:1.3;@media (width>=768px){font-size:18px}}p{font-family:var(--font-family-base);line-height:1.5}a{color:var(--color-primary-bg);&:hover{text-decoration:underline}}ul,ol{margin:0;padding:0;list-style:none;& li{margin:0;padding:0}}img{vertical-align:bottom;margin:0;padding:0}.content{font-size:19px;font-family:var(--font-family-base);color:var(--color-base-text-2);& h1,& h2,& h3,& h4,& h5{color:var(--color-base-text);font-family:var(--font-family-heading)}& h1{margin-top:60px;margin-bottom:15px;font-size:36px;font-weight:400}& h2{margin-top:40px;margin-bottom:15px;font-size:28px;font-weight:500}& h3{font-family:var(--font-family-base);margin-top:30px;margin-bottom:15px;font-size:22px;font-weight:600}& h4{margin-top:20px;margin-bottom:15px;font-size:16px;font-weight:700}&>h1,& h2,& h3,& h4{&:first-child{margin-top:0}}& p{line-height:1.56;font-family:var(--font-family-base);color:var(--color-base-text-2);margin-bottom:20px}& ul{margin:20px;list-style:outside}& ol{margin:20px;list-style:decimal}& li{margin-left:20px;line-height:1.5}& a{color:var(--color-primary-bg);text-decoration:underline 2px;text-decoration-color:var(--color-primary-bg);&:hover{opacity:.8;color:var(--color-primary-bg)}}& img{max-width:100%;height:auto;margin:40px 0;@media (width>=768px){margin:20px 0}}& img+img{margin-top:0}& figure{margin:40px 0;& figcaption{margin-top:10px;font-size:14px;& h4{font-size:14px;font-weight:400;font-family:var(--font-family-base);margin:0}& p{font-size:14px;font-weight:700;font-family:var(--font-family-base);margin:0}}& a{display:block}& img{margin:0}}& code,& pre{font-family:var(--font-family-monospace)}& blockquote{border-left:4px solid var(--color-base-text);margin:40px 0;padding:30px 20px;&:before,&:after{content:""}& p{color:var(--color-base-text);font-family:var(--font-family-base);letter-spacing:1px;margin:0;font-size:24px;font-weight:400;line-height:1.6}}& 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}.header{color:var(--color-header-text);& .container{height:var(--header-height);justify-content:flex-end;align-items:center;display:flex;& .logos{margin-right:auto}}& a{color:var(--color-header-text)}}.footer{color:var(--color-base-text);font-size:15px;& a{color:inherit;padding:4px 0;text-decoration:none;@media (width>=768px){padding:2px 0}&:hover{text-decoration:underline}}& .social{margin-top:20px}}.logos{& a{opacity:1;display:flex;&:hover{opacity:.7}}& .logo{justify-content:flex-start;align-items:center;display:flex;& .logo-text{font-size:26px;font-weight:500;font-family:var(--font-family-logo);color:var(--color-logo-text);& a{color:var(--color-logo-text)}}}& .logo-desktop{display:flex}}.menu-main{color:var(--color-menu-text);font-family:var(--font-family-base);letter-spacing:0;display:block;& ul{height:inherit;justify-content:flex-start;align-items:center;margin:0;padding:0;list-style:none;display:flex;& li{height:inherit;margin:0;padding:0;list-style:none;position:relative;&:last-of-type{margin:0}&>a{height:inherit;text-transform:capitalize;color:inherit;padding:6px 10px;font-weight:400;text-decoration:none;display:block;&:hover{text-decoration:underline}@media (width>=992px){padding:6px 10px}}}& li.active{& a{font-weight:700}}}}form{font-size:16px;& .form-group{margin-bottom:24px;display:block;& label{letter-spacing:.02em;color:var(--color-base-text);margin-bottom:8px;font-size:14px;font-weight:600;display:block}& input,& 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;&::placeholder{color:var(--color-base-text-2);opacity:.5}&:focus{border-color:var(--color-primary-bg);outline:none;box-shadow:0 0 0 3px #2b3af71a}}& textarea{resize:vertical;min-height:200px}& input[aria-invalid=true],& textarea[aria-invalid=true]{border-color:var(--color-error-text)}& .form-error{margin:8px 0 0}}& button[type=submit]{-webkit-appearance:none;cursor:pointer;&:disabled{opacity:.6;cursor:progress}}& .form-error{color:var(--color-error-text);font-size:14px}& .form-status{margin:16px 0 0}& .form-hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}}.form-done{& h2{margin-top:0}& p:last-child{margin-bottom:0}}.grid-header{flex-direction:column;justify-content:flex-start;margin-bottom:16px;display:flex;& h2{text-transform:uppercase;color:var(--color-base-text);font-size:20px;font-weight:500;font-family:var(--font-family-base)}}.heading{& .heading-heading{& h1{letter-spacing:-1px;font-size:36px;font-weight:700;line-height:1.1;font-family:var(--font-family-heading);@media (width>=768px){letter-spacing:-2px;font-size:46px;line-height:1}}}}.social{flex-wrap:wrap;justify-content:flex-start;align-items:center;margin:0 -8px;font-size:24px;display:flex;& a{color:inherit;padding:8px;display:block;&:hover{opacity:.8}}& svg{vertical-align:-.125em}}.button{white-space:nowrap;background:var(--color-primary-bg);color:var(--color-primary-text);border-radius:var(--button-border-radius);letter-spacing:.025em;border:1px solid #0000;outline:none;align-items:center;padding:8px 28px 9px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex;&:hover{background-color:var(--color-primary-bg-2);color:var(--color-primary-text);text-decoration:none;box-shadow:0 7px 14px #32325d1a,0 3px 6px #00000014}}.page-project:not(.page-keynote) .project-heading{margin-bottom:40px}.page-project-right .content{margin-bottom:50px}.page-project{& lite-youtube{width:100%;max-width:none;&:before{display:none}}& .project-heading{& h1{letter-spacing:-2px;margin-bottom:10px;font-size:36px;font-weight:700;line-height:1.2;@media (width>=768px){font-size:48px}}}& .gallery{& .gallery-item{& .gallery-image{& img{vertical-align:bottom;border-radius:4px;max-width:100%;height:auto}}& .gallery-video{border-radius:4px;overflow:hidden;& lite-youtube{padding-bottom:var(--gallery-video-ratio,56.25%)}& video{width:100%;height:auto;display:block}}& .gallery-caption{color:var(--color-base-text-2);margin-top:8px;font-size:13px;line-height:1.5;& strong{font-weight:600}& span{color:var(--color-base-text-2);font-weight:400}& a{color:var(--color-base-text-2);text-underline-offset:2px;text-decoration:underline #0d042b33;&:hover{color:var(--color-base-text)}}}}}& .gallery-single-column{grid-template-columns:1fr;gap:30px;display:grid}& .content{& figure{margin:30px 0;& img,& video,& iframe,& lite-youtube{border-radius:4px}& video{width:100%;height:auto;display:block}& figcaption{margin-top:10px;& h3{font-size:15px;font-weight:600;font-family:var(--font-family-base);color:var(--color-base-text);margin:0 0 4px}& p{color:var(--color-base-text-2);margin:0;font-size:13px;font-weight:400;line-height:1.5}}}& .figure-full{@media (width>=768px){margin-left:-15px;margin-right:-15px}}}& .project-nav{justify-content:center;align-items:center;gap:12px;display:flex}}.card-project{border-radius:4px;flex-direction:column;height:100%;padding:0;display:flex;position:relative;overflow:hidden;& .card-thumbnail{border-radius:4px;overflow:hidden;& a{display:block}& img{aspect-ratio:16/9;object-fit:contain;width:100%;&:hover{opacity:.8}}}& .card-title{& h2{letter-spacing:-.2px;font-size:20px;font-weight:500}& a{color:var(--color-base-text)}}& .card-subtext{color:var(--color-base-text-2);font-size:14px;font-weight:300;font-family:var(--font-family-base)}& .card-content{flex-direction:column;flex:1;padding-top:6px;display:flex}}.hero-intro{& .hero-intro-photo{padding-right:2rem;@media (width<=767px){margin-bottom:1.5rem;padding-right:12px}}& .about-headshot{object-fit:cover;border:3px solid var(--color-primary-bg);border-radius:50%;width:140px;height:140px;box-shadow:0 0 0 6px #0d042b0f;@media (width>=768px){width:160px;height:160px}}& .hero-intro-text{& h1{letter-spacing:-1px;font-size:32px;font-weight:700;line-height:1.1;font-family:var(--font-family-heading);margin-bottom:.5rem;@media (width>=768px){letter-spacing:-2px;font-size:42px}}& .hero-tagline{letter-spacing:-.5px;font-size:20px;line-height:1.4;font-family:var(--font-family-base);color:var(--color-base-text-2);margin-bottom:0;@media (width>=768px){font-size:24px}& a{color:var(--color-base-text);text-decoration:underline;text-decoration-color:var(--color-primary-bg);text-underline-offset:3px;text-decoration-thickness:2px;transition:text-decoration-color .2s;&:hover{text-decoration-color:var(--color-base-text-2)}}& code{font-family:var(--font-family-monospace);color:var(--color-primary-bg);background:0 0;padding:0;font-size:.9em}}}& .hero-bio{border-top:1px solid #0d042b14;margin-top:2rem;padding-top:1.5rem;& p{color:var(--color-base-text-2);margin-bottom:0;font-size:17px;line-height:1.65}}}#background-canvas{opacity:.2;z-index:-99;width:100%;height:100vh;position:fixed;top:0;left:0}.page-keynote{& .keynote-video-wrapper{background:#000;border-radius:8px;overflow:hidden}& .keynote-meta{margin-top:4px;& .keynote-meta-item{margin-bottom:6px;font-size:16px;line-height:1.4;& strong{width:80px;font-weight:600;display:inline-block}& span{color:var(--color-base-text-2);font-weight:400;display:inline-block}}}}
