@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700&family=IBM+Plex+Sans:wght@400;500&display=swap";:root{--navbar-height:50px;--navbar-padding:1.5rem;--font-weight-bold:800;--border-radius-soft:4px;--color-link-highlight:#867575}.navbar{width:100%;height:var(--navbar-height);z-index:1000;background-color:#726565;border:none;align-items:center;padding:0;display:flex;position:fixed;top:0;left:0}.navbar__container{width:100%;padding:0 var(--navbar-padding);justify-content:space-between;align-items:center;display:flex}.navbar__home{font-size:1.5rem;font-weight:var(--font-weight-bold)}.navbar__home,.navbar__link{text-shadow:0 1px 3px #0000004d;color:#b0eba1;text-decoration-line:none}@media (width>=720px){.navbar__menu{z-index:1;border:none;flex-direction:row;align-items:center;padding:0;display:flex;position:static}.navbar__list{align-items:center;list-style:none;display:flex}.navbar__item{margin-left:2rem}.navbar__link{border-radius:var(--border-radius-soft);padding:.6rem 1.1rem}.navbar__link:hover,.navbar__link:focus,.navbar__link--active{background-color:var(--color-link-highlight)}}main{padding-top:var(--navbar-height);position:relative;transform:translateY(-10%)}.hero__image{background-image:linear-gradient(#00000080,#00000080),url(/pr-cond.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;height:20rem;margin:0;padding:0;position:relative}.hero__text{text-align:center;color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-20%)}body:has(.gallery){margin:0}.gallery{--row-height:200px;flex-wrap:wrap;display:flex}.gallery:after{content:"";flex-grow:999;flex-basis:0}.gallery__container{height:var(--row-height);flex-wrap:wrap;display:flex}.gallery__button{width:100%;height:100%;box-shadow:none;background:0 0;border:none;margin:0;padding:0;display:block}.gallery__image{object-fit:cover;width:100%;height:100%;margin:2px;transition:transform .3s ease-out}.gallery__image:hover{filter:drop-shadow(4px 4px 6px gray);transform:scale(1.1)}.gallery__container:nth-last-child(5),.gallery__container:nth-last-child(5)~div{flex-grow:0}.lightbox{z-index:2000;background-color:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox__image{object-fit:contain;max-width:90vw;max-height:90vh}.lightbox__close{color:#fff;cursor:pointer;z-index:2001;background:0 0;border:none;font-size:2.5rem;line-height:1;position:absolute;top:1rem;right:1.5rem}.lightbox__close:focus-visible{outline:2px solid #fff}body:has(.cs){background:#eef2f4;margin:0}@media (prefers-color-scheme:dark){body:has(.cs){background:#0f1a21}}.cs{--paper:#eef2f4;--surface:#fff;--ink:#13202a;--muted:#4d5c67;--line:#c9d3d9;--signal:#0a6b66;--signal-soft:#d6ebe9;--display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;min-height:100vh;padding-top:calc(var(--navbar-height) * 7);background:var(--paper);color:var(--ink);font-family:var(--body);text-align:left;font-size:1.0625rem;line-height:1.6}@media (prefers-color-scheme:dark){.cs{--paper:#0f1a21;--surface:#17252e;--ink:#e7eef2;--muted:#a3b2bc;--line:#2b3d49;--signal:#5fd0c7;--signal-soft:#17393a}}.cs *,.cs :before,.cs :after{box-sizing:border-box}.cs a{color:var(--signal);text-underline-offset:3px}.cs :focus-visible{outline:3px solid var(--signal);outline-offset:3px}.cs h1,.cs h2,.cs h3{font-family:var(--display);margin:0;line-height:1.15}.cs .skip{position:absolute;left:-999px}.cs .skip:focus{background:var(--surface);padding:.5rem 1rem;top:1rem;left:1rem}.cs .hero,.cs .block,.cs-footer{width:min(1080px,100% - 2.5rem);margin-inline:auto}.cs .hero{grid-template-columns:1.3fr 1fr;align-items:center;gap:3rem;padding-block:3rem 5rem;display:grid}.cs .hero h1{letter-spacing:-.02em;max-width:16ch;font-size:clamp(2.25rem,5vw,3.75rem);font-weight:700}.cs .lede{max-width:60ch;color:var(--muted);margin:1.5rem 0 2rem}.cs .hero-actions{flex-wrap:wrap;gap:.75rem;margin:0;display:flex}.cs .btn{background:var(--signal);color:var(--paper);border:2px solid var(--signal);border-radius:6px;padding:.65rem 1.2rem;font-weight:500;text-decoration:none;display:inline-block}.cs .btn:hover{filter:brightness(1.1)}.cs .btn-quiet{color:var(--ink);border-color:var(--line);background:0 0}.cs .lidar{z-index:2;justify-self:center;width:100%;max-width:360px}.cs .lidar-walls path{fill:none;stroke:var(--ink);stroke-width:3px;stroke-linecap:square}.cs .lidar .wedge{fill:var(--signal);opacity:.16}.cs .lidar .beam{stroke:var(--signal);stroke-width:2px}.cs .lidar .robot{fill:var(--signal)}.cs .lidar-sweep{transform-origin:160px 160px;animation:6s linear infinite sweep}@keyframes sweep{to{transform:rotate(360deg)}}.cs .block,.cs-footer{scroll-margin-top:calc(var(--navbar-height) + 1rem)}.cs .block{border-top:1px solid var(--line);padding-block:3rem}.cs .block>h2{margin-bottom:2rem;font-size:2rem}.cs .group-title{margin:3.5rem 0 .5rem;font-size:1.35rem}.cs .group-intro{color:var(--muted);max-width:65ch;margin:0 0 1.5rem}.cs .feature{background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--signal);border-radius:8px;padding:clamp(1.25rem,3vw,2.25rem)}.cs .feature .project-title{font-size:1.85rem}.cs .pair{grid-template-columns:repeat(2,1fr);gap:1.25rem;display:grid}.cs .trio{grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.5rem;display:grid}.cs .card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1.5rem}.cs .card-small p{font-size:.97rem}.cs .project-title{font-size:1.4rem}.cs .project-summary{margin:.4rem 0 .25rem;font-weight:500}.cs .project-role{color:var(--muted);margin:0 0 1.25rem;font-size:.95rem}.cs .story{gap:1rem;display:grid}.cs .feature .story{grid-template-columns:1fr 1fr;gap:2rem}.cs .story h4{font-family:var(--display);margin:0 0 .25rem;font-size:1rem}.cs .story p{max-width:62ch;margin:0}.cs .highlights{margin:1.25rem 0 0;padding-left:1.1rem}.cs .tags{flex-wrap:wrap;gap:.4rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.cs .tags li{background:var(--signal-soft);color:var(--ink);border-radius:999px;padding:.15rem .65rem;font-size:.85rem}.cs .project-links{gap:1rem;margin:1rem 0 0;font-weight:500;display:flex}.cs .timeline{gap:2rem;margin:0;padding:0;list-style:none;display:grid}.cs .timeline>li{grid-template-columns:11rem 1fr;gap:1.5rem;display:grid}.cs .when{color:var(--muted);margin:.25rem 0 0;font-size:.95rem}.cs .timeline h3{font-size:1.2rem}.cs .org{color:var(--muted);margin:.15rem 0 .5rem}.cs .timeline ul{max-width:68ch;margin:0;padding-left:1.1rem}.cs .skills{gap:1rem;margin:0;display:grid}.cs .skills>div{grid-template-columns:11rem 1fr;align-items:baseline;gap:1.5rem;display:grid}.cs .skills dt{font-weight:500}.cs .skills dd,.cs .skills .tags{margin:0}.cs .creds{margin:.75rem 0 0;padding-left:1.1rem}.cs-footer{border-top:1px solid var(--line);padding-block:4rem 5rem}.cs-footer h2{margin-bottom:.5rem;font-size:2.25rem}@media (width<=860px){.cs .hero{grid-template-columns:1fr;padding-block:2rem 3rem}.cs .lidar{justify-self:start;max-width:260px}.cs .pair,.cs .trio,.cs .feature .story{grid-template-columns:1fr}.cs .timeline>li,.cs .skills>div{grid-template-columns:1fr;gap:.25rem}}@media (prefers-reduced-motion:reduce){.cs .lidar-sweep{animation:none}}
