@import"https://fonts.googleapis.com/css2?family=Manrope:wght@200..800";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200";@view-transition{navigation: auto;}:root{--wrapWidth: 1500px;--white: hsl(0deg 0% 100%);--gray-light: hsl(0deg 0% 87%);--gray: hsl(0, 0%, 55%);--gray-dark: hsl(0, 0%, 50%);--gray-dark-alt: hsl(0, 0%, 35%);--black: hsl(0deg 0% 0%);--linkedIn: hsl(201deg 98% 36%);--pdf: hsl(4deg 100% 35%);--word: hsl(217deg 82% 40%);--blue-light: #1bb4de;--blue-medium: #177b82;--blue-dark: #244a7b;--blue-dark-100: rgba(36, 74, 123, 1);--blue-dark-95: rgba(36, 74, 123, .95);--blue-dark-90: rgba(36, 74, 123, .9);--blue-dark-85: rgba(36, 74, 123, .85);--blue-dark-80: rgba(36, 74, 123, .8);--blue-dark-75: rgba(36, 74, 123, .75);--blue-dark-70: rgba(36, 74, 123, .7);--blue-dark-65: rgba(36, 74, 123, .65);--blue-dark-60: rgba(36, 74, 123, .6);--blue-dark-55: rgba(36, 74, 123, .55);--blue-dark-50: rgba(36, 74, 123, .5);--blue-dark-45: rgba(36, 74, 123, .45);--blue-dark-40: rgba(36, 74, 123, .4);--blue-dark-35: rgba(36, 74, 123, .35);--blue-dark-30: rgba(36, 74, 123, .3);--blue-dark-25: rgba(36, 74, 123, .25);--blue-dark-20: rgba(36, 74, 123, .2);--blue-dark-15: rgba(36, 74, 123, .15);--blue-dark-10: rgba(36, 74, 123, .1);--blue-dark-5: rgba(36, 74, 123, .05);--white-95: rgba(255, 255, 255, .95);--white-90: rgba(255, 255, 255, .9);--white-85: rgba(255, 255, 255, .85);--white-80: rgba(255, 255, 255, .8);--white-75: rgba(255, 255, 255, .75);--white-70: rgba(255, 255, 255, .7);--white-65: rgba(255, 255, 255, .65);--white-60: rgba(255, 255, 255, .6);--white-55: rgba(255, 255, 255, .55);--white-50: rgba(255, 255, 255, .5);--white-45: rgba(255, 255, 255, .45);--white-40: rgba(255, 255, 255, .4);--white-35: rgba(255, 255, 255, .35);--white-30: rgba(255, 255, 255, .3);--white-25: rgba(255, 255, 255, .25);--white-20: rgba(255, 255, 255, .2);--white-15: rgba(255, 255, 255, .15);--white-10: rgba(255, 255, 255, .1);--white-05: rgba(255, 255, 255, .05);--black-95: rgba(0, 0, 0, .95);--black-90: rgba(0, 0, 0, .9);--black-85: rgba(0, 0, 0, .85);--black-80: rgba(0, 0, 0, .8);--black-75: rgba(0, 0, 0, .75);--black-70: rgba(0, 0, 0, .7);--black-65: rgba(0, 0, 0, .65);--black-60: rgba(0, 0, 0, .6);--black-55: rgba(0, 0, 0, .55);--black-50: rgba(0, 0, 0, .5);--black-45: rgba(0, 0, 0, .45);--black-40: rgba(0, 0, 0, .4);--black-35: rgba(0, 0, 0, .35);--black-30: rgba(0, 0, 0, .3);--black-25: rgba(0, 0, 0, .25);--black-20: rgba(0, 0, 0, .2);--black-15: rgba(0, 0, 0, .15);--black-10: rgba(0, 0, 0, .1);--black-05: rgba(0, 0, 0, .05);--black-04: rgba(0, 0, 0, .04);--black-03: rgba(0, 0, 0, .03);--black-02: rgba(0, 0, 0, .02);--black-01: rgba(0, 0, 0, .01)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}.hide{display:none;visibility:hidden;opacity:0}.show{display:block;visibility:visible;opacity:1}.reset,.sidebar-list,.thumbnail-card h3{margin:0;padding:0}body{margin:0;padding:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}@media (prefers-color-scheme: dark){body{background:var(--black);color:var(--white)}}a{color:var(--gray-dark);transition:all .4s ease}@media (prefers-color-scheme: dark){a{color:var(--white)}}a:hover{color:var(--black)}@media (prefers-color-scheme: dark){a:hover{color:var(--gray-light)}}h1,h2,h3,h4,h5,h6{font-weight:200;font-style:normal}h1{font-size:3rem}@media all and (max-width: 800px){h1{font-size:2rem}}h2{font-size:2.5rem}@media all and (max-width: 800px){h2{font-size:1.5rem}}h3{font-size:1.5rem;font-weight:600}@media all and (max-width: 800px){h3{font-size:1.25rem}}p{font-size:1.125rem;line-height:1.5}img{max-width:100%;height:auto}.img-scrolling{animation:scrolling linear;animation-timeline:view();animation-range:entry 0% cover 50%}@keyframes scrolling{0%{opacity:0;transform:translate(-150px)}to{opacity:1;transform:translate(0)}}.intro{width:100%;padding:2rem max(1rem,50% - var(--wrapWidth) / 2) 4rem;text-align:center;text-wrap:balance}@media all and (max-width: 800px){.intro{padding:2rem 1rem}}.intro h1{font-size:2rem;line-height:1.5}@media all and (max-width: 800px){.intro h1{font-size:1.25rem}}.intro p{font-size:1rem;position:relative;margin-bottom:0;padding-bottom:0}@media all and (max-width: 800px){.intro p{font-size:.75rem;margin-top:2rem}}.intro p:before{content:"";position:absolute;top:-15px;left:calc(50% - 50px);width:100px;height:1px;background:var(--black-25)}@media (prefers-color-scheme: dark){.intro p:before{background:var(--white-25)}}@media all and (max-width: 800px){.intro p:before{left:calc(50% - 25px);width:50px}}.intro ul{margin:0;padding:0;list-style-type:none;display:flex;align-items:center;justify-content:center;gap:1rem}header[role=banner]{--blur: 10px;width:100%;height:auto;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;padding:.625rem max(1rem,50% - var(--wrapWidth) / 2);background:var(-white);background:#fffffff2;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));z-index:100;box-shadow:0 5px 5px var(--black-05)}@media (prefers-color-scheme: dark){header[role=banner]{background:var(--black);color:var(--white);border-bottom:1px solid var(--white-25)}}header[role=banner].scrolled{padding-block:.375rem}header[role=banner].scrolled .logo img{width:min(100%,40px)}header[role=banner] .logo img{width:min(100%,60px);transition:all .4s ease}header[role=banner] .toggle{--size: 3rem;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--black-15);background:var(--black-05);width:var(--size);height:var(--size);display:flex;align-items:center;justify-content:center;position:relative;z-index:1001;display:none;cursor:pointer;transition:all .4s ease}header[role=banner] .toggle span{--size: 1rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:opacity .2s ease}header[role=banner] .toggle span:nth-of-type(1){opacity:1}header[role=banner] .toggle span:nth-of-type(2){opacity:0}header[role=banner] .toggle.active span:nth-of-type(1){opacity:0}header[role=banner] .toggle.active span:nth-of-type(2){opacity:1}@media all and (max-width: 1200px){header[role=banner] .toggle{display:block}}header[role=banner] nav{transition:all .4s ease}@media all and (max-width: 1200px){header[role=banner] nav{width:300px;height:100vh;position:absolute;top:0;right:0;padding-top:5rem;background:var(--white);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:100;transform:translate(100%);box-shadow:-5px 0 5px var(--black-05);padding:5rem 1.25rem 3rem}header[role=banner] nav.active{transform:translate(0)}}header[role=banner] nav ul{margin:0;padding:0;list-style-type:none;display:flex;flex-flow:row wrap;gap:1.5rem}@media all and (max-width: 1200px){header[role=banner] nav ul{flex-flow:column wrap}}header[role=banner] nav ul li a{text-decoration:none;position:relative;font-size:1rem;font-weight:400}@media all and (max-width: 1200px){header[role=banner] nav ul li a{font-size:1.5rem;width:100%;display:block}}@media all and (min-width: 1201px){header[role=banner] nav ul li a.highlight{background:var(--blue-dark);border:1px solid color-mix(in srgb,var(--blue-dark) 100%,var(--black) 10%);color:var(--white);padding:.5rem 1.25rem;border-radius:3px;transition:all .4s ease}}@media all and (min-width: 1201px){header[role=banner] nav ul li a.highlight:hover{background:color-mix(in srgb,var(--blue-dark) 100%,var(--black) 80%)}}@media all and (min-width: 1201px){header[role=banner] nav ul li a.highlight:active{top:2px}}header[role=banner] nav ul li a.highlight:after{display:none}header[role=banner] nav ul li a:after{content:"";width:0;height:2px;background:var(--blue-light);position:absolute;bottom:-3px;left:0;transition:all .4s ease}header[role=banner] nav ul li a.active:after,header[role=banner] nav ul li a:hover:after{width:100%}.scroll-progress{--thickness: 4px;position:fixed;top:100%;left:0;width:0%;height:var(--thickness);background:linear-gradient(90deg,#1bb4de,#244a7b);background:#1bb4de;transition:width .1s ease-out;z-index:99}footer[role=contentinfo]{width:100%;background:#232323;padding:2rem calc(50% - var(--wrapWidth) / 2);color:#ffffffbf;font-size:.75rem}@media all and (max-width: 1500px){footer[role=contentinfo]{padding:2rem 1.25rem}}@media all and (max-width: 800px){footer[role=contentinfo]{text-align:center}}footer[role=contentinfo] p{margin:0;padding:0;font-size:.75rem}footer[role=contentinfo] a{color:var(--white)}footer[role=contentinfo] .footer-bottom{display:flex;align-items:center;justify-content:space-between}@media all and (max-width: 800px){footer[role=contentinfo] .footer-bottom{flex-flow:column wrap;justify-content:center}}@media all and (max-width: 800px){footer[role=contentinfo] .footer-bottom span{padding:.625rem 0}}footer[role=contentinfo] p{margin:0}.brands{background:#2d2d2d;color:#fff;padding:1.5rem 0 4rem;text-align:center}.brands h2{margin-bottom:3rem}.brands-container{width:min(100%,1200px);display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:1.25rem;margin:1rem auto}@media all and (max-width: 1200px){.brands-container{grid-template-columns:repeat(2,1fr);padding-inline:1.25rem}}@media all and (max-width: 800px){.brands-container{grid-template-columns:1fr;padding-inline:.625rem;gap:2.5rem}}.brands-item{--brandColor: transparent;padding:.625rem;display:flex;align-items:center;justify-content:center;height:100%;background:#2d2d2d;box-shadow:0 0 15px var(--brandColor);transition:all 1.5s ease-in-out;position:relative;z-index:1}.brands-item[data-brand=american-airlines] img,.brands-item[data-brand=uhg] img,.brands-item[data-brand=state-farm] img{transform:scale(2)}.brands-item[data-brand=cadillac] img,.brands-item[data-brand=cat] img{filter:invert(1)}.brands-item[data-brand=gm] img,.brands-item[data-brand=cat] img{transform:scale(.75)}.brands-item.active img{opacity:1;animation:fadeInOut 2s ease}.brands-item img{width:100px;opacity:.3;transition:all .4s ease}@keyframes fadeInOut{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}main{margin:0;width:100%}.banner{width:100%;min-height:300px;background:var(--blue-dark)}.project-page{width:min(100%,1500px);margin-inline:auto}.project-page img.rounded{border-radius:15px}.grid{display:grid}.grid[data-columns="4"]{grid-template-columns:repeat(4,1fr);gap:1rem}@media all and (max-width: 1200px){.grid[data-columns="4"]{grid-template-columns:repeat(2,1fr)}}@media all and (max-width: 800px){.grid[data-columns="4"]{grid-template-columns:repeat(1,1fr)}}.grid[data-columns="3"]{grid-template-columns:repeat(3,1fr);gap:1rem}@media all and (max-width: 800px){.grid[data-columns="3"]{grid-template-columns:repeat(1,1fr)}}.grid[data-columns="2"]{grid-template-columns:repeat(2,1fr);gap:1rem}@media all and (max-width: 800px){.grid[data-columns="2"]{grid-template-columns:repeat(1,1fr)}}.grid-mobile{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:3rem}.grid-mobile img{border-radius:15px;box-shadow:0 2.76726px 2.21381px #00000005,0 6.6501px 5.32008px #00000007,0 12.5216px 10.0172px #00000009,0 22.3363px 17.869px #0000000b,0 41.7776px 33.4221px #0000000d,0 100px 80px #00000012}.grid .stat{border-left:5px solid var(--blue-light);padding-inline:1.25rem;margin-block:2rem}.grid span.number{font-size:4rem;font-weight:700}.grid span.number+p{margin-top:0;padding-top:0;font-size:1rem;color:var(--black-85)}.sidebar{width:250px;position:fixed;top:100px;right:1.25rem;border:1px solid var(--black-15);transition:all .4s ease}@media all and (max-width: 1750px){.sidebar{transform:translate(100%)}}.sidebar h2{font-size:1.5rem;padding-inline:1.25rem}.sidebar-list{list-style-type:none;margin-bottom:1.25rem}.sidebar-list li a{width:100%;display:block;font-size:.875rem;padding:.375rem 1.25rem;transition:all .4s ease}.sidebar-list li a:hover{background:var(--black-05)}.thumbnail-grid{width:100%;padding:.625rem max(1rem,50% - var(--wrapWidth) / 2);display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin:0 auto 2.5rem}@media all and (max-width: 800px){.thumbnail-grid{grid-template-columns:1fr}}.thumbnail-card{border:1px solid var(--black-15);border-radius:12px;box-shadow:0 5px 5px var(--black-05);transition:all .4s ease;position:relative;background:var(--white)}@media (prefers-color-scheme: dark){.thumbnail-card{background:var(--black);color:var(--white);border:1px solid var(--white-25)}}.thumbnail-card:hover{box-shadow:0 5px 15px var(--black-25);transform:scale(1.01);border-color:var(--black-10)}@media (prefers-color-scheme: dark){.thumbnail-card:hover{border-color:var(--white-50)}}.thumbnail-card:hover .thumbnail-card-figure .thumbnail-bg img{scale:1.25}.thumbnail-card:hover .thumbnail-card-figure .thumbnail-fg{scale:1.15;transform:translateY(0)}.thumbnail-card[data-card=learnglazing] .thumbnail-card-figure .thumbnail-fg{opacity:0;transform:translateY(100px)}.thumbnail-card[data-card=learnglazing]:hover .thumbnail-card-figure{background:#39b54a;background:#8cc63f;background:linear-gradient(47deg,#8cc63f,#252525 51%);background:var(--black);border-radius:12px 12px 0 0}.thumbnail-card[data-card=learnglazing]:hover .thumbnail-card-figure .thumbnail-bg{opacity:.35}.thumbnail-card[data-card=learnglazing]:hover .thumbnail-card-figure .thumbnail-fg{opacity:1;scale:1;transform:translateY(0)}.thumbnail-card[data-card=living-electric-calc] .thumbnail-card-figure .thumbnail-fg,.thumbnail-card[data-card=gm-component-style-guide] .thumbnail-card-figure .thumbnail-fg{opacity:0;transform:translateY(100px)}.thumbnail-card[data-card=living-electric-calc] .thumbnail-card-figure .thumbnail-bg,.thumbnail-card[data-card=gm-component-style-guide] .thumbnail-card-figure .thumbnail-bg{opacity:1}.thumbnail-card[data-card=living-electric-calc]:hover .thumbnail-card-figure,.thumbnail-card[data-card=gm-component-style-guide]:hover .thumbnail-card-figure{background:#002139;border-radius:12px 12px 0 0}.thumbnail-card[data-card=living-electric-calc]:hover .thumbnail-card-figure .thumbnail-bg,.thumbnail-card[data-card=gm-component-style-guide]:hover .thumbnail-card-figure .thumbnail-bg{opacity:.25;filter:saturate(50%)}.thumbnail-card[data-card=living-electric-calc]:hover .thumbnail-card-figure .thumbnail-fg,.thumbnail-card[data-card=gm-component-style-guide]:hover .thumbnail-card-figure .thumbnail-fg{opacity:1;scale:1;transform:translateY(0)}.thumbnail-card[data-card=share-visualization] .thumbnail-card-figure .thumbnail-fg{opacity:0;transform:translateY(100px)}.thumbnail-card[data-card=share-visualization] .thumbnail-card-figure .thumbnail-bg{opacity:1}.thumbnail-card[data-card=share-visualization]:hover .thumbnail-card-figure{background:radial-gradient(circle,#123f6a,#071b3b 85%) fixed;border-radius:12px 12px 0 0}.thumbnail-card[data-card=share-visualization]:hover .thumbnail-card-figure .thumbnail-bg{opacity:.25}.thumbnail-card[data-card=share-visualization]:hover .thumbnail-card-figure .thumbnail-fg{opacity:1;scale:1;transform:translateY(0)}.thumbnail-card[data-card=schoolcraft-college] .thumbnail-card-figure .thumbnail-fg{opacity:0;transform:translateY(100px)}.thumbnail-card[data-card=schoolcraft-college] .thumbnail-card-figure .thumbnail-bg{opacity:1}.thumbnail-card[data-card=schoolcraft-college]:hover .thumbnail-card-figure{background:var(--white);border-radius:12px 12px 0 0}.thumbnail-card[data-card=schoolcraft-college]:hover .thumbnail-card-figure .thumbnail-bg{opacity:.25}.thumbnail-card[data-card=schoolcraft-college]:hover .thumbnail-card-figure .thumbnail-fg{opacity:1;scale:1;transform:translateY(0)}.thumbnail-card[data-card=cadillac-ev-map] .thumbnail-card-figure .thumbnail-fg,.thumbnail-card[data-card=cadillac-vehicle-config] .thumbnail-card-figure .thumbnail-fg{opacity:0;transform:translateY(100px)}.thumbnail-card[data-card=cadillac-ev-map]:hover .thumbnail-card-figure,.thumbnail-card[data-card=cadillac-vehicle-config]:hover .thumbnail-card-figure{background:var(--white);border-radius:12px 12px 0 0}.thumbnail-card[data-card=cadillac-ev-map]:hover .thumbnail-card-figure .thumbnail-bg,.thumbnail-card[data-card=cadillac-vehicle-config]:hover .thumbnail-card-figure .thumbnail-bg{opacity:.2;filter:saturate(50%)}.thumbnail-card[data-card=cadillac-ev-map]:hover .thumbnail-card-figure .thumbnail-fg,.thumbnail-card[data-card=cadillac-vehicle-config]:hover .thumbnail-card-figure .thumbnail-fg{opacity:1;scale:1;transform:translateY(0)}.thumbnail-card[data-card=simpsons-top-episodes]:hover .thumbnail-card-figure .thumbnail-fg{transform:translateY(-10%)}@media (prefers-color-scheme: dark){.thumbnail-card[data-card=simpsons-top-episodes]:hover .thumbnail-card-figure .thumbnail-fg{filter:drop-shadow(0 0 8px var(--black))}}.thumbnail-card-figure{margin:0;padding:0;position:relative;width:100%;aspect-ratio:16/9;transition:all .4s ease}.thumbnail-card-figure img{transition:all .4s ease}.thumbnail-card-figure .thumbnail-fg{position:relative;z-index:1;transition:all .5s cubic-bezier(.68,-.6,.32,1.6)}.thumbnail-card-figure .thumbnail-bg{width:100%;height:100%;position:absolute;inset:0;border-radius:12px 12px 0 0;overflow:hidden}.thumbnail-card-figure .thumbnail-bg img{-o-object-fit:cover;object-fit:cover}.thumbnail-card-content{padding:1.25rem;opacity:1}.thumbnail-card h3{font-size:1.25rem;color:#000}.thumbnail-card p{font-size:.875rem}.thumbnail-card a{text-decoration:none}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
