html{font-size:16px;--heading-font:"textBold",sans-serif;--text-color:#333;--muted-color:#888}*{box-sizing:border-box;margin:0;padding:0}.full-width{margin-left:calc(-50vw + 50%);width:100vw}.centered,body{margin:0 auto}body{color:var(--text-color);font-family:text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:26px;max-width:1200px;padding:0 20px}h2{font-family:textBold,sans-serif;font-weight:400;line-height:24px;margin:0 0 .4rem}body:has(.project-grid){margin:0;max-width:none;padding:0}body:has(.project-grid) .project-grid{padding:0 30px}body>header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:hsla(0,0%,100%,.88);margin-bottom:40px;padding:20px 0;position:sticky;top:0;z-index:100}body>header nav{align-items:center;display:flex;gap:24px;justify-content:center}body:has(.project-page) .section-hero__bg{background-position:center 88px}.logo{align-items:center;display:flex}.logo img{height:48px;width:auto}.nav-links{align-items:center;display:flex;gap:24px}.project-title{font-family:text,sans-serif;font-size:clamp(1.8rem,3vw,3rem);font-weight:400;margin:0;padding-bottom:5vh;text-align:center}.nav-links a{color:var(--text-color);font-size:1.26rem;text-decoration:none}.nav-links a:hover{color:#7e3ee7}.project-grid{container-type:inline-size;display:grid;gap:1px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.project-card{color:var(--text-color);display:block;text-decoration:none}.image-columns__item img,.image-gallery__thumb img,.image-grid__item img,.project-card img{aspect-ratio:1/1;display:block;object-fit:cover;width:100%}.project-card h3{font-family:var(--heading-font);font-size:clamp(.75rem,1.4cqi,1rem);font-weight:400;padding:12px}.about-section{display:grid;gap:20px}.about-section+.about-section{border-top:1px solid #ccc;margin-top:2rem;padding-top:2rem}.about-section>.about-body{min-width:0}.about-section>.about-body p{font-size:18px}.about-section h3{font-family:var(--heading-font);font-weight:400}.about-section .about-entry{margin-bottom:1.2rem}.about-section .skills-group{margin-bottom:2rem}.about-section .skill-item{display:block}article a{color:inherit;text-decoration:none}article a:hover{color:#7e3ee7}footer{color:var(--muted-color);font-size:.9rem;margin-top:40px;padding:40px 0;text-align:center}.about-section .meta{display:flex;flex-wrap:wrap;font-family:var(--heading-font);font-weight:400;gap:.75em}.about-section .year{color:var(--muted-color);display:inline-block;font-family:text,sans-serif;font-weight:400}@media (min-width:768px){.project-grid{grid-template-columns:repeat(3,1fr)}.about-section{grid-template-columns:1fr 2fr}}@media (max-aspect-ratio:4/3){.slide img{padding:0 2vw}}@media (max-width:767px){article{font-size:1.1rem}.about-section h3{line-height:28px;margin-bottom:.1rem;margin-top:.4rem}.about-section{gap:0}.about-section .about-entry{margin-bottom:2rem}.about-section h2{margin-bottom:0}.about-section+.about-section{margin-top:0}.about-section:first-of-type>.about-body{padding-bottom:2rem;padding-top:1rem}.about-section .meta{column-gap:.75em;row-gap:0}.project-card h3{font-size:1.19rem}.section-hero{min-height:40vh}.section-hero__content{padding:20px 16px}.section-text{padding:24px 0}.image-grid{--grid-columns:1!important}.image-columns{flex-direction:column}.image-columns__item{flex:1 1 100%}}@media (min-width:1024px) and (orientation:landscape){article{padding-left:clamp(24.2px,6.05vw,96.8px);padding-right:clamp(24.2px,6.05vw,96.8px)}.about-section .skills-group{display:grid;grid-template-columns:1fr 1fr}}article.project-page{padding:0 20px 60px}.section{margin-bottom:20px}.section-hero{align-items:flex-end;display:flex;margin-left:calc(-50vw + 50%);min-height:60vw;position:relative;width:100vw}.section-hero__bg{background-position:50%;background-size:100vw 100vw;inset:0;position:absolute;z-index:0}@media (max-width:768px){.section-hero{min-height:90vw}.section-hero__bg{background-size:130vw 130vw}}.section-hero__content{max-width:1200px;padding:40px 20px;position:relative;width:100%;z-index:1}.section-hero__title{color:#fff;font-family:var(--heading-font);font-size:2rem;font-weight:400;line-height:1.1;margin:0}.section-text{padding:40px 0}.section-text__inner{max-width:800px}.section-image-columns__title,.section-image-gallery__title,.section-image-grid__title,.section-text__title{font-family:var(--heading-font);font-size:clamp(1.25rem,2.5cqi,1.75rem);font-weight:400;margin-bottom:1rem}.section-image-grid{padding:20px 0}.section-image-grid__inner{max-width:1200px}.image-grid{display:grid;gap:16px;grid-template-columns:repeat(var(--grid-columns,3),1fr)}.image-grid__item{margin:0}.image-columns__item figcaption,.image-grid__item figcaption{color:var(--muted-color);font-size:.875rem;margin-top:.5rem}.section-image-gallery{padding:20px 0}.section-image-gallery__inner{max-width:1200px}.image-gallery{display:flex;flex-wrap:wrap;gap:16px}.image-gallery__thumb{cursor:pointer;flex:1 1 calc(100%/var(--gallery-cols, 3) - 16px);margin:0;min-width:200px}.image-gallery__thumb img{transition:opacity .2s}.image-gallery__thumb:hover img{opacity:.8}.lightbox{align-items:center;display:none;inset:0;justify-content:center;position:fixed;z-index:200}.lightbox__overlay{background:rgba(0,0,0,.85);inset:0;position:absolute}.lightbox__content{align-items:center;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;position:relative;z-index:1}.lightbox__close{background:none;border:none;color:#fff;cursor:pointer;font-size:1.5rem;padding:0;position:absolute;right:0;top:-30px}.lightbox__img{display:block;max-height:80vh;max-width:100%;object-fit:contain}.lightbox__caption{color:hsla(0,0%,100%,.85);font-size:.875rem;margin-top:.75rem;text-align:center}.section-image-columns{padding:20px 0}.section-image-columns__inner{max-width:1200px}.image-columns{display:flex;flex-wrap:wrap;gap:16px}.image-columns__item{flex:1 1 calc(var(--col-count, 2)*1%);margin:0;min-width:0}.section-carousel{padding:0}.slideshow{--slide-width:50%;overflow:hidden;position:relative}.slideshow__slides{display:flex;gap:clamp(10px,3vw,160px);transition:transform .5s ease;will-change:transform}.slideshow__slides.no_transition{transition:none!important}.slide{flex:0 0 auto;margin:0;position:relative;width:var(--slide-width)}.slide img{aspect-ratio:auto;background-clip:padding-box;border:6px solid #fff;display:block;max-height:100vh;padding:0 3vw;width:100%}.slide_buffer{display:flex}.slideshow__navigation{align-items:center;display:flex;gap:16px;justify-content:center;padding:0}.slideshow__navigation .slideshow_page,.slideshow__navigation button{background:none;border:none;color:var(--muted-color);cursor:pointer;font-family:text,sans-serif;font-size:1.5rem;font-weight:400;padding:8px 12px;transition:color .2s}.slideshow__navigation .slideshow_page{font-size:1rem;min-width:3em;text-align:center}.slideshow__navigation button:hover{color:#7e3ee7}.slideshow__navigation button.disabled{cursor:default;opacity:.3;pointer-events:none}.panel_next,.panel_previous{bottom:0;cursor:pointer;cursor:e-resize;position:absolute;right:0;top:0;width:172px;z-index:10}.panel_previous{cursor:w-resize;left:0}@media (max-width:767px){.panel_next,.panel_previous,.slideshow__navigation{display:none}.slide{display:block;flex:none;margin:0 0 20px;position:relative;width:100%}.slide img{max-width:100%;width:100%}.slide_buffer{display:none!important}.slideshow__slides{flex-direction:column;flex-wrap:nowrap;overflow:visible;transform:none!important}}