html,body{background-color:#101010;color:#fff;font-family:Aldrich,sans-serif;-webkit-font-smoothing:antialiased}canvas.webgl{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}navbar{position:absolute;width:100%;top:0;left:0;right:0;z-index:3;padding-bottom:25px}section,footer{position:relative;z-index:2}footer{background:#000;padding:20px 0}body.home-page footer{height:300px;background:#fff;background-image:url(/images/mountains-footer.webp);background-position:top;background-size:cover;display:flex;align-items:center;color:#000}navbar>.container-md{margin-top:12px;display:flex;flex-direction:row;align-items:center}.hamburger{align-items:center;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;cursor:pointer;display:none;height:48px;justify-content:center;margin-left:auto;padding:0;position:relative;width:48px;z-index:6}.hamburger-icon{height:26px;width:26px}.hamburger-icon .line{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:3;transition:transform .35s ease,opacity .25s ease;transform-origin:50% 50%}.hamburger.is-open .line.top{transform:translate(-7px,7px) rotate(45deg)}.hamburger.is-open .line.middle{opacity:0}.hamburger.is-open .line.bottom{transform:translate(-7px,-7px) rotate(-45deg)}.mobile-menu{position:fixed;inset:0;background:radial-gradient(circle at top,#222222e6,#080808fa);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s ease;z-index:4}.mobile-menu.is-open{opacity:1;pointer-events:auto}.mobile-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:16px;font-size:24px}.mobile-link{color:#f4f4f4;text-decoration:none;text-transform:uppercase;letter-spacing:.08em}body.menu-open{overflow:hidden}.navbar-nav{background:#222222ab;border-radius:4px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 30px #0000004d;list-style-type:none;margin:0;padding:0 15px 0 0;font-size:16px;color:#fff;border:none;position:relative;user-select:none;text-shadow:0px 0px 5px rgba(0,0,0,.5);display:flex;align-items:stretch;overflow:hidden;width:100%}.navbar-nav.collapsed{width:100px}@media(orientation:landscape){.navbar-nav{transition:width .5s ease-in-out}navbar:hover .navbar-nav.collapsed{width:100%}}@media(max-width:900px){.navbar-nav{width:100px}.hamburger{display:inline-flex}}.nav-item{transition:ease 1s all;white-space:nowrap}.nav-item.right{margin-left:auto}.nav-item:focus-visible{outline:none}.nav-item.logo{background:#222;margin:0 15px 0 0;width:100px;min-width:100px}.logo .nav-link{color:#00ff6a;text-shadow:none;font-family:Kanit,serif;font-weight:600;font-size:28px;font-style:normal;line-height:50px;display:flex;justify-content:center;padding:0;height:100%;width:100%}.nav-link{align-content:center;color:#dedede;display:block;height:100%;padding:3px 20px 0;text-decoration:none}.nav-link:hover{text-decoration:none;color:#fff}.nav-link:focus-visible{outline-offset:-3px}.giant-text{font-size:calc(2rem + 2.5vw);line-height:calc(2.5rem + 3.5vw);text-shadow:0px 0px 34px rgba(0,0,0,.5)}.btn{all:unset;background:#d5d5d5;box-sizing:border-box;border:2px solid rgb(213,213,213);border-radius:5px;color:#000;display:inline-block;padding:10px 20px;user-select:none;transition:background ease-out .5s}.btn.btn-min-width{min-width:120px;text-align:center}.btn:hover{background:#b7b7b7;border:2px solid rgb(183,183,183);cursor:pointer}.btn-primary{background:#00f365;border:2px solid rgb(0,243,101)}.btn-primary:hover{background:#02ce57ec;border:2px solid rgb(0,228,95)}.btn-next{margin-left:auto}.btn-start{background:#00421b69;border:2px solid rgb(0,243,101);border-radius:5px;color:#fff;position:relative;overflow:hidden;text-shadow:0px 0px 5px rgba(0,0,0,.5)}.btn-start>span{position:relative;z-index:1}.btn-start:after{content:" ";position:absolute;background:linear-gradient(130deg,#02ce57 60%,#fff0 70%);height:100%;width:200%;top:0;left:-150%;z-index:0}.btn-start:hover{background:#00421b69;border:2px solid rgb(0,228,95);cursor:pointer}.btn-start.loaded:hover:after,.btn-start.loaded.clicked:after{left:0%;transition:left linear .2s}.btn-start.loaded:active{background:#01af4aec;border:2px solid rgb(0,198,82)}.btn-start.loaded:active:after{background:linear-gradient(130deg,#02a948 60%,#fff0 70%)}.btn-start .loaded-text,.btn-start.loaded .loading-text{display:none}.btn-start.loaded .loaded-text{display:inline}#sensor-canvas{position:absolute;top:0;left:0;width:100%;height:100%}#sensor-canvas-container{background:#1d1f20;position:relative;margin:auto;width:300px;height:300px;border:1px solid black;background-image:url(/images/car-orthographic.webp);background-size:contain;background-repeat:no-repeat;background-position-x:center;background-position-y:-150px}offcanvas{position:absolute;overflow:hidden;inset:0}flyout{position:absolute;border-radius:8px;left:100%;top:0;width:min(426px,34%);height:calc(90vh - 24px);overflow:hidden;background:#0000;margin:12px;color:#37373c;font-size:14px;z-index:3;transition:transform ease-out .5s}flyout.show{transform:translate(calc(-100% - 24px));transition:transform ease 1s;transition-delay:1s}.flyout-close{position:absolute;top:7px;right:7px;width:48px;height:48px;cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;transition:color ease .3s}.flyout-close:hover{color:#fff}.flyout-close:before{position:absolute;content:" ";inset:5px;background:#fff;border-radius:50%;z-index:-1;transition:background ease .3s}.flyout-close:hover:before{background:#8a8a8a}.flyout-content{background:#fff;padding:20px 20px 95px;height:100%;overflow:scroll;position:relative}#flyout-dynamic-media{background:#000;margin-bottom:20px}.flyout-content h2{width:calc(100% - 35px)}.flyout-content::-webkit-scrollbar{-webkit-appearance:none;width:7px}.flyout-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:#00000080}.flyout-actions{display:flex;background:#fff;justify-content:space-between;position:absolute;left:0;right:0;bottom:0;padding:20px}.flyout-actions:before{content:" ";position:absolute;top:-20px;left:0;right:0;height:20px;background:linear-gradient(180deg,#fff0,#fff);z-index:1}.lil-gui.autoPlace{left:0;top:50px}.projects-carousel{background:#262626;border-radius:8px;color:#37373c;font-size:14px;position:absolute;left:50%;top:calc(100% - 50px);opacity:0;overflow:hidden;transform:translate(-50%);z-index:3;user-select:none;box-shadow:0 4px 30px #000c;pointer-events:none}.projects-carousel.show{opacity:1;top:calc(100% - 80px);pointer-events:all}@media(orientation:portrait){.projects-carousel.show{display:none}}#carousel-title{color:#fff;height:50px;width:200px;margin:0 50px;display:flex;text-align:center;justify-content:center;align-items:center}.carousel-previous,.carousel-next{border:2px solid rgb(0,243,101);color:#fff;border-radius:8px;display:flex;justify-content:center;align-items:center;position:absolute;top:0;height:50px;width:50px}.carousel-previous:hover,.carousel-next:hover{background:#00f365;color:#37373c;cursor:pointer}.carousel-previous{left:0}.carousel-next{right:0}.shiny-text{color:#b5b5b5a4;background:linear-gradient(120deg,#fff0 40%,#fff,#fff0 60%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;display:inline-block;animation:shine 1s linear infinite}.shiny-text.disabled{animation:none}@keyframes shine{0%{background-position:100%}to{background-position:-100%}}.pills{display:flex;flex-direction:row;justify-content:flex-start;flex-wrap:wrap;gap:10px}.pill{border-radius:50px;background:#d9d9d980;padding:5px 15px;font-size:clamp(12px,1vw,14px);color:#fff}.shadowbox{background:#1e1e1e;color:#fff;border-radius:50px;padding:28px;width:100%;text-align:center;font-family:Figtree;display:flex;flex-direction:column;align-items:center}@media(orientation:portrait){.shadowbox{color:#000!important;background:none!important;border-radius:0!important;padding:0!important}}.projects-caption{position:absolute;top:0;left:-100px;bottom:0;width:33%;background:linear-gradient(90deg,black,transparent);z-index:3;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-left:10%;opacity:0;pointer-events:none}.projects-caption.show{opacity:1;left:0;pointer-events:all}.caption-description{font-weight:100}.caption-link{display:flex;align-items:center}.caption-link:hover{text-decoration:none;color:#000}.caption-link svg{margin-left:10px;margin-bottom:2px}.read-more,.read-more:hover{text-decoration:none}
