.carousel[data-astro-cid-kj4uniab]{--carousel-size:var(--text-xlarge);--carousel-weight:var(--weight-semibold);--carousel-text-color:var(--color-primary-light);block-size:calc(var(--carousel-size) * 1.5);-webkit-user-select:none;-moz-user-select:none;user-select:none;inline-size:100%;margin-block-start:1rem;display:inline-block;position:relative}@media screen and (width<=599px){.carousel[data-astro-cid-kj4uniab]{block-size:calc(var(--carousel-size) * 2)}}.carousel-item[data-astro-cid-kj4uniab]{text-align:center;inline-size:100%;font-family:var(--font-mono);font-size:var(--carousel-size);font-weight:var(--carousel-weight);line-height:var(--line-height-tight);color:var(--carousel-text-color);z-index:-1;position:absolute}.carousel-item[data-astro-cid-kj4uniab].active{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto;z-index:1}.carousel-item[data-astro-cid-kj4uniab] span[data-astro-cid-kj4uniab]{opacity:0}.carousel-item[data-astro-cid-kj4uniab] span[data-astro-cid-kj4uniab].show{opacity:1}.wrapper[data-astro-cid-kc3bbodn]{--_segment-transition-duration:.15s;--_segment-transition-in:0s;--_segment-transition-out:0s;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:inline;position:relative}@media screen and (width<=599px){.wrapper[data-astro-cid-kc3bbodn]{display:none}}.preview[data-astro-cid-kc3bbodn]{font-size:var(--text-xsmall);line-height:var(--line-height-body);font-weight:var(--weight-bold);color:#ffffff59;opacity:1;transition:opacity var(--_segment-transition-duration) var(--_segment-transition-duration), transform var(--_segment-transition-duration) var(--_segment-transition-duration);position:absolute;transform:translateY(0%)}.hidden-message[data-astro-cid-kc3bbodn]{color:var(--color-text);font-weight:var(--weight-semibold);pointer-events:none;display:inline}.msg-segment[data-astro-cid-kc3bbodn]{text-decoration:underline 20%;text-decoration-color:var(--color-primary);opacity:0;transition:transform var(--_segment-transition-duration) var(--_segment-transition-out), opacity var(--_segment-transition-duration) var(--_segment-transition-out);margin-inline-end:.25rem;display:inline-block;transform:translateY(-50%)}.wrapper[data-astro-cid-kc3bbodn]:hover .preview[data-astro-cid-kc3bbodn]{pointer-events:none;opacity:0;transition:opacity var(--_segment-transition-duration), transform var(--_segment-transition-duration);transform:translateY(50%)}.wrapper[data-astro-cid-kc3bbodn]:hover .msg-segment[data-astro-cid-kc3bbodn]{pointer-events:all;opacity:1;transition:transform var(--_segment-transition-duration) var(--_segment-transition-in), opacity var(--_segment-transition-duration) var(--_segment-transition-in);transform:translateY(0%)}.wrapper[data-astro-cid-w66jozvh]{--_device-color:#ffffff26;--_device-color-alt:#ffffff0d;--_device-shadow:0px 2px 16px #00000026;--_aspect-ratio:16 / 9;--_preview-width:100%;--_preview-height:auto;aspect-ratio:var(--_aspect-ratio);max-block-size:100%;max-inline-size:60%}.device-bezel[data-astro-cid-w66jozvh]{box-shadow:var(--_device-shadow)}.desktop[data-astro-cid-w66jozvh]{--_aspect-ratio:16 / 10;--_preview-width:600px;--_desktop-bezel-padding:.5rem;--_desktop-bezel-radius:4px;--_desktop-stand-size:2rem;--_desktop-footer-height:1rem;--_desktop-footer-width:55%;--_desktop-footer-radius:8px}.desktop[data-astro-cid-w66jozvh] .device[data-astro-cid-w66jozvh]{flex-direction:column;justify-content:flex-start;align-items:center;max-width:100%;display:flex}.desktop[data-astro-cid-w66jozvh] .device-bezel[data-astro-cid-w66jozvh]{padding:var(--_desktop-bezel-padding);background-color:var(--_device-color);border-radius:var(--_desktop-bezel-radius)}.desktop[data-astro-cid-w66jozvh] .device-stand[data-astro-cid-w66jozvh]{block-size:var(--_desktop-stand-size);inline-size:var(--_desktop-stand-size);background-color:var(--_device-color-alt)}.desktop[data-astro-cid-w66jozvh] .device-footer[data-astro-cid-w66jozvh]{content:"";block-size:var(--_desktop-footer-height);inline-size:var(--_desktop-footer-width);background-color:var(--_device-color);border-start-start-radius:var(--_desktop-footer-radius);border-start-end-radius:var(--_desktop-footer-radius)}.desktop[data-astro-cid-w66jozvh] .video-player[data-astro-cid-w66jozvh]{border-radius:calc(var(--_desktop-bezel-radius) * .5)}.browser[data-astro-cid-w66jozvh]{--_aspect-ratio:16 / 9;--_preview-width:600px;--_device-color-alt:#00000040;--_browser-radius:8px;--_browser-topbar-height:1.5rem;--_browser-btn-size:.75rem;--_browser-btn-gap:.25rem;--_browser-btn-calc-offset:calc((var(--_browser-btn-size) + var(--_browser-btn-gap)) * -1);--_browser-btn-calc-inset:calc((var(--_browser-topbar-height) - var(--_browser-btn-size)) * .5)}.browser[data-astro-cid-w66jozvh] .device[data-astro-cid-w66jozvh]{border-radius:var(--_browser-radius);border:1px solid var(--_device-color-alt);block-size:100%;inline-size:auto;overflow:hidden}.browser[data-astro-cid-w66jozvh] .device-bezel[data-astro-cid-w66jozvh]{background-color:var(--_device-color);padding-block-start:var(--_browser-topbar-height);position:relative}.browser[data-astro-cid-w66jozvh] .device-bezel[data-astro-cid-w66jozvh]:after{content:"";block-size:var(--_browser-btn-size);inline-size:var(--_browser-btn-size);background-color:var(--_device-color-alt);box-shadow:var(--_browser-btn-calc-offset) 0px 0px var(--_device-color-alt), calc(var(--_browser-btn-calc-offset) * 2) 0px 0px var(--_device-color-alt);transform:translate(calc(var(--_browser-btn-calc-inset) * -1), var(--_browser-btn-calc-inset));border-radius:100%;position:absolute;inset-block-start:0;inset-inline-end:0}.mobile[data-astro-cid-w66jozvh]{--_aspect-ratio:9 / 16;--_preview-width:320px;--_preview-height:auto;--_mobile-bezel-padding:.5rem;--_mobile-device-radius:24px;--_mobile-btn-radius:4px;--_mobile-power-btn-width:calc(var(--_mobile-bezel-padding) * .5);--_mobile-power-btn-height:calc(var(--_mobile-bezel-padding) * 4);--_mobile-power-btn-y-offset:20%;--_mobile-volume-btn-width:calc(var(--_mobile-bezel-padding) * .25);--_mobile-volume-btn-height:calc(var(--_mobile-bezel-padding) * 3);--_mobile-volume-btn-gap:.125rem;--_mobile-volume-btn-y-offset:15%}.mobile[data-astro-cid-w66jozvh] .device[data-astro-cid-w66jozvh]{justify-content:center;align-items:center;display:flex}.mobile[data-astro-cid-w66jozvh] .device-bezel[data-astro-cid-w66jozvh]{background-color:var(--_device-color);padding:var(--_mobile-bezel-padding);border-radius:var(--_mobile-device-radius);position:relative}.mobile[data-astro-cid-w66jozvh] .device-bezel[data-astro-cid-w66jozvh]:before{content:"";inline-size:var(--_mobile-power-btn-width);block-size:var(--_mobile-power-btn-height);background:var(--_device-color-alt);border-start-end-radius:var(--_mobile-btn-radius);border-end-end-radius:var(--_mobile-btn-radius);position:absolute;inset-block-start:var(--_mobile-power-btn-y-offset);inset-inline-start:100%}.mobile[data-astro-cid-w66jozvh] .device-bezel[data-astro-cid-w66jozvh]:after{content:"";inline-size:var(--_mobile-volume-btn-width);block-size:var(--_mobile-volume-btn-height);background:var(--_device-color-alt);box-shadow:0px calc(var(--_mobile-volume-btn-height) + var(--_mobile-volume-btn-gap)) 0px var(--_device-color-alt);border-start-start-radius:var(--_mobile-btn-radius);border-end-start-radius:var(--_mobile-btn-radius);position:absolute;inset-block-start:var(--_mobile-volume-btn-y-offset);inset-inline-end:100%}.mobile[data-astro-cid-w66jozvh] .video-player[data-astro-cid-w66jozvh]{border-radius:calc((var(--_mobile-bezel-padding) * .5) + (var(--_mobile-device-radius) * .5))}.video-player[data-astro-cid-w66jozvh]{block-size:auto;inline-size:100%;display:block}.dialog-wrapper[data-astro-cid-wbfb7dsd]{block-size:0;inline-size:0;position:absolute;inset:0}.project-dialog[data-astro-cid-wbfb7dsd]{--_transition-init-length:.2s;--_transition-stage-1-length:.35s;--_transition-stage-1-delay:.2s;--_transition-stage-2-length:.18s;--_transition-stage-2-delay:.15s;--_transition-stage-3-length:.18s;--_transition-stage-3-delay:.1s;--_transition-stage-4-length:.18s;--_transition-stage-4-delay:.1s;box-sizing:border-box;opacity:0;block-size:100%;inline-size:100%;transition:opacity var(--_transition-init-length);background:0 0;border:0;padding:1rem 4rem;overflow-y:scroll}.project-dialog[data-astro-cid-wbfb7dsd]:focus{outline:none}.project-dialog[data-astro-cid-wbfb7dsd]::backdrop{opacity:0;background:var(--color-bg);transition:opacity var(--_transition-init-length)}.project-dialog[data-astro-cid-wbfb7dsd].active{opacity:1;transition:opacity var(--_transition-init-length) var(--_transition-init-length)}.project-dialog[data-astro-cid-wbfb7dsd].active .preview-wrapper[data-astro-cid-wbfb7dsd],.project-dialog[data-astro-cid-wbfb7dsd].active .project-header[data-astro-cid-wbfb7dsd] h1[data-astro-cid-wbfb7dsd]{opacity:1;transform:translate(0)}.project-dialog[data-astro-cid-wbfb7dsd].active .project-header[data-astro-cid-wbfb7dsd] .project-meta[data-astro-cid-wbfb7dsd],.project-dialog[data-astro-cid-wbfb7dsd].active .project-header[data-astro-cid-wbfb7dsd] .project-tech[data-astro-cid-wbfb7dsd]{opacity:1;transform:translateY(0)}.project-dialog[data-astro-cid-wbfb7dsd].active .project-description[data-astro-cid-wbfb7dsd],.project-dialog[data-astro-cid-wbfb7dsd].active::backdrop{opacity:1}.project-dialog[data-astro-cid-wbfb7dsd]::backdrop{background:var(--color-bg)}.project-dialog[data-astro-cid-wbfb7dsd][open]::backdrop{animation:.18s ease-in forwards backdrop-fade-in}.dialog-controls[data-astro-cid-wbfb7dsd]{position:absolute;inset-block-start:1rem;inset-inline-start:1rem}.dialog-close-btn[data-astro-cid-wbfb7dsd]{cursor:pointer;background:0 0;border:none;outline:none}.close-icon[data-astro-cid-wbfb7dsd]{block-size:2rem;inline-size:2rem;display:block;position:relative}.close-icon[data-astro-cid-wbfb7dsd]:before,.close-icon[data-astro-cid-wbfb7dsd]:after{content:"";background-color:var(--color-text);width:.2rem;height:100%;transition:transform .2s;position:absolute}.close-icon[data-astro-cid-wbfb7dsd]:before{transform:rotate(45deg)}.close-icon[data-astro-cid-wbfb7dsd]:after,.close-icon[data-astro-cid-wbfb7dsd]:hover:before{transform:rotate(-45deg)}.close-icon[data-astro-cid-wbfb7dsd]:hover:after{transform:rotate(45deg)}.dialog-content[data-astro-cid-wbfb7dsd]{flex-direction:column;justify-content:flex-start;align-items:center;block-size:100%;max-block-size:100%;display:flex}.content-column[data-astro-cid-wbfb7dsd]{margin-block-start:1rem}.preview-wrapper[data-astro-cid-wbfb7dsd]{opacity:0;max-block-size:80%;inline-size:100%;transition:transform var(--_transition-stage-1-length) calc(var(--_transition-init-length) + var(--_transition-stage-1-delay)) ease-out, opacity var(--_transition-stage-1-length) calc(var(--_transition-init-length) + var(--_transition-stage-1-delay));justify-content:center;align-items:center;display:flex;transform:translateY(-25%)}.project-header[data-astro-cid-wbfb7dsd]{margin-block-end:1rem}.project-header[data-astro-cid-wbfb7dsd] h1[data-astro-cid-wbfb7dsd]{opacity:0;transition:transform var(--_transition-stage-2-length) calc(var(--_transition-init-length) + var(--_transition-stage-1-delay) + var(--_transition-stage-1-length) + var(--_transition-stage-2-delay)) ease-out, opacity var(--_transition-stage-2-length) calc(var(--_transition-init-length) + var(--_transition-stage-1-delay) + var(--_transition-stage-1-length) + var(--_transition-stage-2-delay));margin-block-end:.5rem;transform:translateY(-25%)}.project-header[data-astro-cid-wbfb7dsd] .project-meta[data-astro-cid-wbfb7dsd],.project-header[data-astro-cid-wbfb7dsd] .project-tech[data-astro-cid-wbfb7dsd]{border-inline-start:.125rem solid var(--color-light);opacity:0;transition:transform var(--_transition-stage-3-length) calc(var(--_transition-init-length) + var(--_transition-stage-1-delay) + var(--_transition-stage-1-length) + var(--_transition-stage-2-delay) + var(--_transition-stage-2-length) + var(--_transition-stage-3-delay)) ease-out, opacity var(--_transition-stage-3-length) calc(var(--_transition-init-length) + var(--_transition-stage-1-delay) + var(--_transition-stage-1-length) + var(--_transition-stage-2-delay) + var(--_transition-stage-2-length) + var(--_transition-stage-3-delay));padding-inline-start:.5rem;transform:translateY(-25%)}.project-meta[data-astro-cid-wbfb7dsd]{font-size:var(--text-xsmall);font-weight:var(--weight-base);line-height:var(--line-height-semi-tight);color:var(--color-light);text-transform:capitalize;flex-direction:row;justify-content:flex-start;gap:.25rem;margin:0;display:flex}.project-tech[data-astro-cid-wbfb7dsd]{font-size:var(--text-xsmall);font-weight:var(--weight-base);line-height:var(--line-height-semi-tight);color:var(--color-light);text-transform:capitalize;margin:0}.project-description[data-astro-cid-wbfb7dsd]{opacity:0;transition:opacity var(--_transition-stage-4-length) calc(var(--_transition-init-length) + var(--_transition-stage-1-delay) + var(--_transition-stage-1-length) + var(--_transition-stage-2-delay) + var(--_transition-stage-2-length) + var(--_transition-stage-3-delay) + var(--_transition-stage-3-length) + var(--_transition-stage-4-delay))}.project-wrapper[data-astro-cid-rrfrhghi]{cursor:pointer;background:0 0;transition:background .185s;position:relative}.project-wrapper[data-astro-cid-rrfrhghi]:hover{background:#ffffff0d}.project-wrapper[data-astro-cid-rrfrhghi]:hover .project-img[data-astro-cid-rrfrhghi]{filter:none;scale:1}.project-wrapper[data-astro-cid-rrfrhghi]:hover .preview-indicators[data-astro-cid-rrfrhghi]:after,.project-wrapper[data-astro-cid-rrfrhghi]:hover .preview-indicators[data-astro-cid-rrfrhghi]:before{opacity:1;transform:scale(1)}.preview[data-astro-cid-rrfrhghi]{aspect-ratio:16/9;background-image:linear-gradient(120deg, var(--color-white), var(--color-primary));justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.preview-indicators[data-astro-cid-rrfrhghi]{--_indicator-size:2px;--_indicator-color:var(--color-white);aspect-ratio:16/9;inline-size:100%;display:flex;position:absolute;top:0;left:0}.preview-indicators[data-astro-cid-rrfrhghi]:after,.preview-indicators[data-astro-cid-rrfrhghi]:before{content:"";z-index:1;opacity:0;block-size:1rem;inline-size:1rem;transition:opacity .185s,transform .185s;position:absolute;transform:scale(1.5)}.preview-indicators[data-astro-cid-rrfrhghi].left:after{border-inline-start:var(--_indicator-size) solid var(--_indicator-color);border-block-start:var(--_indicator-size) solid var(--_indicator-color);top:0;left:0}.preview-indicators[data-astro-cid-rrfrhghi].left:before{border-inline-start:var(--_indicator-size) solid var(--_indicator-color);border-block-end:var(--_indicator-size) solid var(--_indicator-color);bottom:0;left:0}.preview-indicators[data-astro-cid-rrfrhghi].right:after{border-inline-end:var(--_indicator-size) solid var(--_indicator-color);border-block-start:var(--_indicator-size) solid var(--_indicator-color);top:0;right:0}.preview-indicators[data-astro-cid-rrfrhghi].right:before{border-inline-end:var(--_indicator-size) solid var(--_indicator-color);border-block-end:var(--_indicator-size) solid var(--_indicator-color);bottom:0;right:0}.project-img[data-astro-cid-rrfrhghi]{filter:grayscale(.3)opacity(.8);width:100%;height:auto;transition:scale .185s ease-in-out,filter .185s;scale:1.125}.project-title[data-astro-cid-rrfrhghi]{font-size:var(--text-size);font-weight:var(--weight-bold);line-height:var(--line-height-semi-tight);text-transform:uppercase;color:var(--color-text);margin-block:.25rem;text-decoration:none;display:block}.project-meta[data-astro-cid-rrfrhghi]{font-size:var(--text-xsmall);font-weight:var(--weight-regular);line-height:var(--line-height-tight);text-transform:capitalize;text-align:center;color:var(--color-text);padding-block-end:1rem}.project-meta[data-astro-cid-rrfrhghi] .meta-sep[data-astro-cid-rrfrhghi]{color:var(--color-text);font-size:var(--text-xxsmall);font-weight:var(--weight-semibold)}.talk-item[data-astro-cid-amxape6e]{margin-block-end:1rem}.talk-title[data-astro-cid-amxape6e]{font-size:var(--text-h4);font-weight:var(--weight-semibold);color:var(--color-white)}.talk-link[data-astro-cid-amxape6e]{color:inherit;text-decoration:underline 15% #0000;transition:text-decoration-color .12s ease-in-out}.talk-link[data-astro-cid-amxape6e]:hover{text-decoration-color:var(--color-primary)}.talk-link[data-astro-cid-amxape6e]:hover .link-icon[data-astro-cid-amxape6e]{animation:.75s infinite Wiggle}.link-icon[data-astro-cid-amxape6e]{block-size:1rem;inline-size:1rem;fill:var(--color-primary);margin-inline-start:.225rem;display:inline-block}.talk-event[data-astro-cid-amxape6e]{margin-inline-start:.5rem}.talk-location[data-astro-cid-amxape6e]{font-size:var(--text-small);color:#ebebeb;margin-inline-start:.5rem}@keyframes Wiggle{0%,75%{transform:rotate(0)}25%{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}.toast[data-astro-cid-yppybsu3]{background-color:var(--color-accent-light);inline-size:100%;font-size:var(--text-small);font-weight:var(--weight-regular);color:var(--color-text);border-radius:8px;padding:.5rem 1rem;box-shadow:0 2px 16px #00000026}.toast-title[data-astro-cid-yppybsu3]{text-align:center;color:var(--color-white);font-weight:var(--weight-semibold);margin-block-end:.5rem}.footer[data-astro-cid-yppybsu3]{justify-content:center;align-items:center;margin-block-start:1rem;display:flex}.close-btn[data-astro-cid-yppybsu3]{background-color:var(--color-primary);font-size:var(--text-size);color:var(--color-text);border:0;border-radius:8px;padding:.25rem .5rem;display:block}.subhead[data-astro-cid-lcdefpme]{font-size:var(--text-small);font-weight:var(--weight-light);color:var(--color-light);text-align:center}p[data-astro-cid-lcdefpme]{text-align:left;padding-inline-start:.125rem}#hero[data-astro-cid-lcdefpme]{text-align:center;padding-block:7.5rem}.content-section[data-astro-cid-lcdefpme]{background-color:var(--color-grey);justify-self:stretch;padding-block:2rem}.project-grid[data-astro-cid-lcdefpme]{grid-template-columns:repeat(3,1fr);gap:0;display:grid}@media screen and (width<=599px){.project-grid[data-astro-cid-lcdefpme]{grid-template-columns:repeat(1,1fr)}}.jobs-link[data-astro-cid-lcdefpme]{--_underline-color:var(--color-primary);color:var(--color-text);margin-inline-start:.25rem;display:inline-block;position:relative}.jobs-link-name[data-astro-cid-lcdefpme]{font-weight:var(--weight-semibold);text-decoration:underline 20%;text-decoration-color:var(--_underline-color);opacity:1;transition:opacity .15s,transform .15s;display:inline-block;transform:translateY(0)}.jobs-link-icon[data-astro-cid-lcdefpme]{opacity:0;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:0;left:0;transform:translateY(-50%)}.jobs-link-icon-svg[data-astro-cid-lcdefpme]{width:1.5rem;height:1.5rem}.jobs-link[data-astro-cid-lcdefpme]:hover .jobs-link-name[data-astro-cid-lcdefpme]{opacity:0;transform:translateY(50%)}.jobs-link[data-astro-cid-lcdefpme]:hover .jobs-link-icon[data-astro-cid-lcdefpme]{opacity:1;border-bottom:.2rem solid color-mix(in srgb, var(--_underline-color) 20%, transparent);transform:translateY(0)}#talk-section[data-astro-cid-lcdefpme]{background:var(--color-dark);margin-block-start:2rem;padding-block:2rem}.section-header[data-astro-cid-lcdefpme]{margin-block-end:2rem}#contact-section[data-astro-cid-lcdefpme]{padding-block:2rem}#contact-section[data-astro-cid-lcdefpme] a[data-astro-cid-lcdefpme]{color:var(--color-text);font-weight:var(--weight-bold);text-decoration:underline 20%;text-decoration-color:var(--color-primary)}#footer[data-astro-cid-lcdefpme]{text-align:center;padding-block:2rem}#footer[data-astro-cid-lcdefpme] p[data-astro-cid-lcdefpme]{text-align:center;font-size:var(--text-xsmall);margin:0;line-height:1.2}#footer[data-astro-cid-lcdefpme] .stats-link[data-astro-cid-lcdefpme]{font-size:var(--text-xxsmall);color:var(--color-text);justify-content:center;align-items:center;gap:.25rem;text-decoration:none;display:flex}#footer[data-astro-cid-lcdefpme] .stats-img[data-astro-cid-lcdefpme]{block-size:.725rem;inline-size:.725rem}.mobile-warning[data-astro-cid-lcdefpme]{inline-size:100%;padding:.5rem;display:none;position:fixed;inset-block-end:0;inset-inline:0}@media screen and (width<=599px){.content-block[data-astro-cid-lcdefpme]{padding-inline:.5rem}.mobile-warning[data-astro-cid-lcdefpme]{flex-direction:column;justify-content:flex-end;align-items:stretch;display:flex}}
