.pixel-swap{z-index:9999;pointer-events:none;opacity:1;position:fixed;inset:0;overflow:hidden}.pixel-swap__pixel{opacity:0;will-change:transform,opacity;position:absolute}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f8f8f5;--paper-deep:#efefe9;--white:#fff;--ink:#242520;--muted:#777970;--soft:#a1a39a;--line:#dedfd8;--line-strong:#c9cbc2;--sage:#75836e;--sage-pale:#e9ece5}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#17181a;--paper-deep:#101113;--white:#1d1f22;--ink:#eceae5;--muted:#9b9d95;--soft:#6b6d66;--line:#2a2c2a;--line-strong:#3a3c38;--sage:#94a68c;--sage-pale:#23271f;--body-text:#a7a9a1;--body-strong:#c8c6c0;--accent-strong:#a9bba0}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:5rem}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.6;overflow-x:hidden}button,a{color:inherit;font:inherit}button{-webkit-tap-highlight-color:transparent}a{text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--sage);outline-offset:4px}::selection{color:var(--ink);background:#dce4d6}.theme-toggle{color:var(--muted);align-items:center;gap:.4rem;display:inline-flex}.theme-icon{color:var(--ink);opacity:.85;transition:opacity .2s,color .2s}.theme-icon.is-dim{opacity:.28}.hero-specular{--sb-radius:2px;letter-spacing:.01em;border:1px solid var(--ink);background:var(--ink);color:var(--paper);box-shadow:none;font-family:DM Sans,Arial,sans-serif;font-size:.72rem}.hero-specular:hover{border-color:var(--sage)}.hero-specular .specular-button__label{gap:.55rem}.site-shell{min-height:100vh}.site-header{z-index:40;background:color-mix(in srgb,var(--paper)94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid #dedfd8e0;justify-content:space-between;align-items:center;gap:2rem;height:5rem;padding-inline:clamp(1.5rem,4vw,4rem);display:flex;position:fixed;inset:0 0 auto}:root[data-theme=dark] .site-header{border-bottom-color:#2a2c2ae0}.header-brand{flex:none;align-items:center;gap:.65rem;min-width:0;display:inline-flex}.header-mark{flex:none;display:block}.header-monogram{letter-spacing:.13em;font-family:DM Mono,monospace;font-size:.8rem;font-weight:500}.header-monogram span{color:var(--sage)}.header-name{color:var(--muted);white-space:nowrap;font-size:.68rem}.desktop-navigation{align-items:center;gap:clamp(.65rem,1.35vw,1.25rem);min-width:0;display:flex}.desktop-nav-link{color:var(--muted);white-space:nowrap;align-items:baseline;gap:.35rem;padding-block:.5rem;font-family:DM Mono,monospace;font-size:.56rem;transition:color .18s;display:inline-flex;position:relative}.desktop-nav-link:hover,.desktop-nav-link.active{color:var(--ink)}.desktop-nav-link.active:after{background:var(--sage);content:"";height:1px;position:absolute;bottom:.15rem;left:0;right:0}.desktop-nav-number{color:var(--soft);font-size:.5rem}.menu-toggle,.mobile-navigation{display:none}.mobile-menu-kicker,.page-kicker,.eyebrow,.map-section-kicker,.section-index,.section-eyebrow,.section-meta,.project-tag,.publication-year,.publication-type,.education-year,.stack-label,.contact-label,.footer-note{font-family:DM Mono,monospace}.portfolio-main{min-width:0}.home-section,.page-section,.site-footer{width:min(100%,1440px);margin-inline:auto;padding-inline:clamp(2rem,6vw,6.5rem)}.home-section{--home-section-gutter:clamp(2rem,6vw,6.5rem);min-height:100svh;padding-inline:var(--home-section-gutter);border-bottom:1px solid var(--line);flex-direction:column;justify-content:center;padding-top:5.8rem;padding-bottom:1.5rem;display:flex}.page-kicker{border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.11em;text-transform:uppercase;justify-content:space-between;gap:1rem;padding-bottom:.85rem;font-size:.59rem;display:flex}.home-intro{grid-template-columns:minmax(0,1.2fr) minmax(15rem,.8fr);align-items:end;gap:2.5rem;padding-top:clamp(2.7rem,5.4vh,4.5rem);display:grid}.eyebrow,.section-eyebrow,.map-section-kicker{color:var(--sage);letter-spacing:.15em;text-transform:uppercase;margin:0;font-size:.62rem;line-height:1.5}.hero-title{letter-spacing:-.075em;margin:.85rem 0 0;font-size:clamp(3.15rem,6.5vw,6.7rem);font-weight:500;line-height:.91}.hero-title span,.hero-title .text-rotate{color:var(--muted)}.hero-summary{max-width:23rem;padding-bottom:.2rem}.hero-summary p{color:var(--body-text,#5f615a);margin:0 0 1.2rem;font-size:clamp(.92rem,1.2vw,1.05rem);line-height:1.8}.text-link,.inline-link{border-bottom:1px solid var(--line-strong);width:fit-content;color:var(--ink);align-items:center;gap:.55rem;padding-bottom:.2rem;font-size:.75rem;transition:gap .18s,border-color .18s;display:inline-flex}.text-link:hover,.inline-link:hover{border-color:var(--sage);gap:.8rem}.map-heading{justify-content:space-between;align-items:end;gap:1rem;margin-top:clamp(2rem,4vh,3rem);display:flex}.particle-net{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.preloader{z-index:200;background:#0c0d0a;align-content:center;place-items:center;gap:1.1rem;transition:opacity .9s .15s,visibility .9s .15s;display:grid;position:fixed;inset:0}.preloader--leave{opacity:0;visibility:hidden;pointer-events:none}.preloader-mark{color:#f4f2ef;letter-spacing:.13em;font-family:DM Mono,monospace;font-size:clamp(1.5rem,3.2vw,2.4rem);font-weight:500;animation:1.1s cubic-bezier(.16,1,.3,1) .15s both preloader-rise}.preloader-mark span{color:#8a9a82}.preloader-tag{color:#f4f2ef66;letter-spacing:.26em;text-transform:uppercase;font-family:DM Mono,monospace;font-size:.6rem;animation:.9s cubic-bezier(.16,1,.3,1) .55s both preloader-rise}@keyframes preloader-rise{0%{opacity:0;filter:blur(6px);transform:translateY(12px)}to{opacity:1;filter:blur();transform:translateY(0)}}.preloader-count{color:#f4f2ef;align-items:baseline;gap:.3rem;line-height:.85;transition:opacity .5s,filter .5s,transform .5s;display:flex;position:fixed;bottom:clamp(1.4rem,4vh,2.2rem);left:50%;transform:translate(-50%)}.preloader-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-family:DM Sans,Arial,sans-serif;font-size:clamp(3.6rem,9vw,6.4rem);font-weight:100}.preloader-percent{opacity:.55;font-family:DM Sans,Arial,sans-serif;font-size:clamp(1.1rem,2.6vw,1.8rem);font-weight:300}.preloader--leave .preloader-count{opacity:0;filter:blur(8px);transform:translate(-50%,-30px)}.preloader-bar{background:#f4f2ef1f;width:100%;height:2px;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.preloader-bar span{transform-origin:0;background:#8a9a82;height:100%;transition:transform .12s linear;display:block}html.is-preloading .site-shell{opacity:0}.site-shell{transition:opacity .7s}html.preloaded .site-shell{opacity:1}.dome-expand{position:relative}.dome-expand__sticky{height:100svh;position:sticky;top:0;overflow:hidden}.dome-expand__frame{clip-path:inset(21% 14% round 24px);will-change:clip-path;position:absolute;inset:0}.dome-expand__frame .sphere-main{touch-action:pan-y}.dome-expand__scrim{z-index:2;pointer-events:none;opacity:0;background:radial-gradient(120% 100%,#0000 55%,#0c0d0a80 100%);position:absolute;inset:0}.dome-expand__hint{z-index:3;text-align:center;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;pointer-events:none;margin:0;font-family:DM Mono,monospace;font-size:.58rem;position:absolute;bottom:1.1rem;left:0;right:0}.home-section.map-section-intro{border-bottom:none;justify-content:flex-start;min-height:auto;padding-top:clamp(3.5rem,8vh,6rem);padding-bottom:clamp(2rem,5vh,3.5rem)}.map-section{--dome-bg:#f8f8f5;--caption-ink:#242520;--caption-accent:#75836e}:root[data-theme=dark] .map-section{--dome-bg:#101113;--caption-ink:#eceae5;--caption-accent:#94a68c;--caption-line:#3a3c38;--caption-plate:#1d1f22;--caption-soft:#23271f;--caption-contrast:#101113}.map-help{color:var(--muted);letter-spacing:.025em;text-align:right;margin:0;font-family:DM Mono,monospace;font-size:.58rem}.map-help-mobile{display:none}.page-section{border-bottom:1px solid var(--line);padding-top:clamp(5.5rem,10vh,8rem);padding-bottom:clamp(5.5rem,10vh,8rem);scroll-margin-top:1.5rem}.project-detail-section{grid-template-columns:minmax(0,1.1fr) minmax(18rem,.9fr);align-items:center;gap:clamp(2rem,6vw,6rem);min-height:82svh;display:grid}.project-detail-artwork{aspect-ratio:1.25;min-height:clamp(20rem,42vw,40rem)}.project-detail-content{max-width:42rem}.project-detail-kicker{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.project-detail-back{white-space:nowrap;flex:none;font-size:.62rem}.project-detail-title{letter-spacing:-.075em;margin:0;font-size:clamp(2.8rem,6vw,5.4rem);font-weight:400;line-height:.95}.project-detail-description{max-width:36rem;color:var(--body-text,#5f615a);margin:1.5rem 0 0;font-size:clamp(.9rem,1.5vw,1.06rem);line-height:1.85}.project-detail-tools{border-top:1px solid var(--line);margin-top:2rem;padding-top:1rem}.project-detail-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:DM Mono,monospace;font-size:.55rem}.project-detail-tags{margin-top:.75rem}.project-detail-contact{margin-top:2rem}.section-heading{border-bottom:1px solid var(--line);grid-template-columns:minmax(7rem,.25fr) minmax(0,1fr);align-items:start;gap:2rem;margin-bottom:3.2rem;padding-bottom:1.4rem;display:grid}.section-index{color:var(--soft);letter-spacing:.11em;margin-bottom:.55rem;font-size:.57rem;display:block}.section-eyebrow{font-size:.58rem}.section-title{letter-spacing:-.065em;max-width:48rem;margin:-.25rem 0 0;font-size:clamp(2rem,4.6vw,4.6rem);font-weight:400;line-height:.98}.section-summary{max-width:31rem;color:var(--muted);margin:.65rem 0 0;font-size:.88rem;line-height:1.75}.about-grid{grid-template-columns:minmax(0,1.05fr) minmax(15rem,.75fr);gap:clamp(2.5rem,8vw,7rem);display:grid}.about-copy p{max-width:42rem;color:var(--body-text,#5f615a);margin:0 0 1.2rem;font-size:.96rem;line-height:1.95}.about-copy strong{color:var(--ink);font-weight:500}.about-quote{border-left:1px solid var(--sage);max-width:34rem;color:var(--ink);margin:2rem 0;padding-left:1.2rem;font-family:Lora,Georgia,serif;font-size:clamp(1rem,1.6vw,1.28rem);font-style:italic;line-height:1.7}.research-interests{margin-top:2.5rem}.research-interests-title{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.8rem;font-family:DM Mono,monospace;font-size:.58rem}.interest-list,.project-tags,.stack-list,.social-list{flex-wrap:wrap;gap:.45rem;display:flex}.interest-chip,.project-tag,.stack-chip{border:1px solid var(--line);color:var(--body-text,#65675f);letter-spacing:.035em;font-family:DM Mono,monospace;font-size:.55rem}.interest-chip{padding:.42rem .65rem}.about-aside{border-top:1px solid var(--line-strong);align-self:start}.about-aside-row{border-bottom:1px solid var(--line);grid-template-columns:5.2rem 1fr;gap:.8rem;padding:.9rem 0;display:grid}.about-aside-label{color:var(--soft);text-transform:uppercase;font-family:DM Mono,monospace;font-size:.56rem}.about-aside-value{color:var(--body-strong,#4f514a);font-size:.8rem;line-height:1.6}.experience-list,.publication-list,.education-list{border-top:1px solid var(--line-strong)}.experience-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(7rem,.28fr) minmax(0,1fr) minmax(8rem,.3fr);gap:1.25rem;padding:1.3rem 0;display:grid}.experience-period,.education-year,.publication-year{color:var(--muted);font-size:.61rem;line-height:1.6}.experience-role,.education-degree{letter-spacing:-.02em;margin:0;font-size:1rem;font-weight:500;line-height:1.4}.experience-place,.education-institution{color:var(--sage);margin-top:.25rem;font-size:.73rem}.experience-description,.education-description{color:var(--muted);margin:.7rem 0 0;font-size:.75rem;line-height:1.8}.project-tag{padding:.28rem .45rem;font-size:.5rem}.project-tag.accent{background:var(--sage-pale);color:var(--accent-strong,#56644f);border-color:#c4cec0}.project-artwork{background:var(--paper-deep);aspect-ratio:1.55;place-items:center;min-width:0;min-height:8.5rem;display:grid;position:relative;overflow:hidden}.project-artwork img{object-fit:cover}.project-illustration{isolation:isolate;background:linear-gradient(140deg,transparent 48%,#ffffffa8 48.5%),var(--art-bg,#e9ece5)}.project-illustration:before,.project-illustration:after{z-index:-1;content:"";border:1px solid #2d302838;position:absolute;transform:rotate(-18deg)}.project-illustration:before{background:#ffffff4d;width:52%;height:68%}.project-illustration:after{background:var(--art-shape,#cdd7c6);width:34%;height:42%;transform:translate(25%,18%)rotate(18deg)}.illustration-1{--art-bg:#e9ece5;--art-shape:#b6c3ae}.illustration-2{--art-bg:#ece9e2;--art-shape:#c8bca9}.illustration-3{--art-bg:#e7eaeb;--art-shape:#b3c4c7}.illustration-4{--art-bg:#efebe7;--art-shape:#cfbcb0}.illustration-5{--art-bg:#e9e9e3;--art-shape:#c0c4ad}.artwork-index,.artwork-symbol,.artwork-label{z-index:1;position:absolute}.artwork-index{color:#2425209e;font-family:DM Mono,monospace;font-size:.56rem;top:.65rem;left:.7rem}.artwork-symbol{color:#2425208c;font-family:Lora,Georgia,serif;font-size:clamp(1.5rem,3vw,2.6rem);font-style:italic}.artwork-label{color:#242520a6;text-overflow:ellipsis;white-space:nowrap;font-family:DM Mono,monospace;font-size:.5rem;bottom:.65rem;left:.7rem;right:.7rem;overflow:hidden}.publication-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(5rem,.18fr) minmax(0,1fr);gap:1.5rem;padding:1.5rem 0;display:grid}.publication-year{padding-top:.25rem}.publication-type{color:var(--sage);letter-spacing:.06em;text-transform:uppercase;margin-top:.5rem;font-size:.53rem;display:inline-block}.publication-title{letter-spacing:-.035em;max-width:48rem;margin:0;font-size:clamp(1.08rem,2vw,1.55rem);font-weight:500;line-height:1.35}.publication-authors,.publication-venue{color:var(--muted);margin:.6rem 0 0;font-size:.72rem;line-height:1.7}.publication-venue{font-family:Lora,Georgia,serif;font-style:italic}.publication-links{gap:.5rem;margin-top:.9rem;display:flex}.publication-link{border:1px solid var(--line);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;padding:.35rem .55rem;font-family:DM Mono,monospace;font-size:.52rem;transition:border-color .18s,color .18s}.publication-link:hover{border-color:var(--sage);color:var(--ink)}.education-item{border-bottom:1px solid var(--line);grid-template-columns:minmax(8rem,.25fr) minmax(0,1fr);gap:1.5rem;padding:1.4rem 0;display:grid}.education-meta{color:var(--muted);margin-top:.5rem;font-size:.72rem}.stack-layout{grid-template-columns:minmax(8rem,.25fr) minmax(0,1fr);gap:1.5rem;display:grid}.stack-label{color:var(--muted);font-size:.6rem;line-height:1.6}.stack-list{gap:.55rem}.stack-chip{color:var(--body-strong,#4e5049);background:#ffffff59;align-items:center;gap:.45rem;padding:.55rem .7rem;font-size:.59rem;display:inline-flex}.stack-chip-icon{width:1.15rem;height:1.15rem;color:var(--sage);place-items:center;font-family:DM Sans,sans-serif;font-size:.73rem;display:inline-grid}.contact-layout{grid-template-columns:minmax(0,1fr) minmax(15rem,.55fr);align-items:end;gap:3rem;display:grid}.contact-title{letter-spacing:-.075em;max-width:46rem;margin:0;font-size:clamp(2.6rem,7vw,6.2rem);font-weight:400;line-height:.95}.contact-description{max-width:28rem;color:var(--muted);margin:1.4rem 0 0;font-size:.88rem;line-height:1.8}.contact-details{justify-items:start;gap:.8rem;display:grid}.contact-label{color:var(--soft);letter-spacing:.1em;text-transform:uppercase;font-size:.56rem}.contact-email{overflow-wrap:anywhere;border-bottom:1px solid var(--line-strong);max-width:100%;padding-bottom:.3rem;font-size:clamp(.9rem,1.4vw,1.1rem);transition:border-color .18s}.contact-email:hover{border-color:var(--sage)}.social-list{gap:.45rem .9rem;margin-top:.7rem}.social-link{color:var(--muted);font-size:.68rem;transition:color .18s}.social-link:hover{color:var(--sage)}.site-footer{width:min(100%,1440px);color:var(--muted);margin-inline:auto;padding-top:2rem;padding-bottom:1.6rem;font-family:DM Mono,monospace;font-size:.55rem;display:block}.footer-top{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem 2.5rem;padding-bottom:1.4rem;display:flex}.footer-brand-block{gap:.4rem;display:grid}.footer-brand-row{align-items:center;gap:.9rem;display:flex}.footer-mark{flex:none;display:block}.footer-wordmark{color:var(--ink);letter-spacing:.13em;font-size:.8rem;font-weight:500}.footer-wordmark.footer-wordmark span{color:var(--sage)}.footer-cursor{color:var(--sage);animation:1.05s step-end infinite footer-cursor-blink}@keyframes footer-cursor-blink{50%{opacity:0}}.footer-tagline{color:var(--soft);margin:0;font-family:DM Sans,Helvetica Neue,Arial,sans-serif;font-size:.72rem}.footer-nav{flex-wrap:wrap;gap:.5rem 1.2rem;display:flex}.footer-nav a{color:var(--muted);transition:color .18s}.footer-nav a:hover{color:var(--ink)}.footer-bottom{flex-wrap:wrap;justify-content:space-between;gap:.75rem 1.5rem;padding-top:1.1rem;display:flex}.footer-bottom .footer-accent{color:var(--sage)}.mobile-only{display:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (max-width:1100px){.site-header{gap:1rem;padding-inline:1.5rem}.header-name{display:none}.desktop-navigation{gap:.8rem}.home-section,.page-section,.page-hero,.site-footer{padding-inline:clamp(1.5rem,5vw,3.5rem)}.home-section{--home-section-gutter:clamp(1.5rem,5vw,3.5rem)}.home-intro{grid-template-columns:minmax(0,1fr) minmax(13rem,.8fr);gap:1.8rem}.experience-item{grid-template-columns:minmax(6rem,.28fr) minmax(0,1fr)}.experience-period{grid-area:2/2}}@media (max-width:780px){.site-header{height:4.4rem;padding-inline:1.15rem}.header-brand{gap:.65rem}.header-name{font-size:.57rem;display:inline}.desktop-navigation{display:none}.map-help-mobile{display:inline}.menu-toggle{color:var(--ink);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:.65rem;padding:.5rem 0;font-family:DM Mono,monospace;font-size:.58rem;display:inline-flex}.menu-icon{align-content:center;gap:.28rem;width:1.5rem;height:1.25rem;display:grid}.menu-icon span{background:var(--ink);width:100%;height:1px;transition:transform .18s,opacity .18s;display:block}.menu-toggle[aria-expanded=true] .menu-icon span:first-child{transform:translateY(3px)rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-icon span:last-child{transform:translateY(-3px)rotate(-45deg)}.mobile-navigation{z-index:30;background:var(--paper);opacity:0;pointer-events:none;visibility:hidden;flex-direction:column;justify-content:center;padding:5rem 1.5rem 2rem;transition:opacity .2s,transform .2s,visibility .2s;display:flex;position:fixed;inset:0;transform:translateY(-.5rem)}.mobile-navigation.open{opacity:1;pointer-events:auto;visibility:visible;transform:translateY(0)}.mobile-menu-kicker{color:var(--sage);letter-spacing:.15em;text-transform:uppercase;margin:0 0 1.2rem;font-size:.58rem}.mobile-navigation nav{gap:.35rem;display:grid}.mobile-navigation a{letter-spacing:-.055em;align-items:baseline;gap:1rem;padding:.28rem 0;font-size:clamp(1.8rem,7vw,2.6rem);font-weight:400;line-height:1.15;display:flex}.mobile-navigation a span{color:var(--soft);letter-spacing:0;font-family:DM Mono,monospace;font-size:.56rem}.page-hero{padding-top:6.9rem}.home-section{min-height:calc(100svh - 4.4rem);padding-top:6rem;padding-bottom:1.25rem}.home-intro{grid-template-columns:minmax(0,1fr) minmax(13rem,.75fr);padding-top:2.2rem}.hero-title{font-size:clamp(3rem,8vw,5rem)}.page-section{padding-top:5rem;padding-bottom:5rem}.about-grid,.contact-layout{grid-template-columns:minmax(0,1fr) minmax(13rem,.75fr);gap:2rem}.project-detail-section{grid-template-columns:minmax(0,1fr);gap:2rem}.project-detail-artwork{min-height:clamp(18rem,55vw,32rem)}}@media (max-width:560px){body{font-size:14px}.home-section,.page-section,.page-hero,.site-footer{padding-inline:1.15rem}.home-section{--home-section-gutter:1.15rem}.page-kicker{font-size:.52rem}.home-intro{grid-template-columns:minmax(0,1fr);gap:1.2rem;padding-top:2rem}.hero-title{font-size:clamp(3rem,12vw,4.3rem)}.hero-summary{max-width:28rem}.hero-summary p{margin-bottom:.75rem;font-size:.85rem}.map-heading{align-items:start;margin-top:1.7rem}.map-help{max-width:8.5rem;font-size:.52rem;line-height:1.6}.project-map-shell{height:18rem}.project-map-shell.project-focused{height:clamp(20rem,65svh,34rem)}.section-heading{grid-template-columns:minmax(0,1fr);gap:.7rem;margin-bottom:2.1rem}.section-index{margin-right:.5rem;display:inline}.section-title{font-size:clamp(2.2rem,10vw,3.5rem)}.section-summary{margin-top:.55rem}.about-grid,.contact-layout,.stack-layout{grid-template-columns:minmax(0,1fr);gap:2rem}.about-aside{margin-top:.3rem}.experience-item{grid-template-columns:minmax(0,1fr);gap:.25rem;padding:1.05rem 0}.experience-period{grid-area:auto;margin-bottom:.25rem}.publication-item,.education-item{grid-template-columns:minmax(0,1fr);gap:.6rem}.publication-year,.education-year{align-items:baseline;gap:.7rem;display:flex}.stack-layout{gap:.7rem}.contact-title{font-size:clamp(2.8rem,12vw,4.5rem)}.site-footer{flex-direction:column;align-items:start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.lenis.lenis-smooth{scroll-behavior:auto!important;scroll-timeline:none!important}}.site-main{min-width:0}.page-hero{padding-top:clamp(7.5rem,16vh,10rem);padding-inline:clamp(2rem,6vw,6.5rem);border-bottom:1px solid var(--line);width:min(100%,1440px);margin-inline:auto;padding-bottom:clamp(2.2rem,5vh,3.5rem)}.page-hero-title{letter-spacing:-.07em;max-width:56rem;margin:.9rem 0 0;font-size:clamp(2.8rem,6vw,5.4rem);font-weight:400;line-height:.97}.page-hero-summary{max-width:36rem;color:var(--muted);margin:1.3rem 0 0;font-size:clamp(.9rem,1.3vw,1rem);line-height:1.85}.page-hero-meta{color:var(--soft);letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1.6rem;font-family:DM Mono,monospace;font-size:.57rem;display:flex}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.6rem;display:flex}.button{border:1px solid var(--ink);letter-spacing:.01em;align-items:center;gap:.55rem;padding:.72rem 1.2rem;font-size:.72rem;transition:background .18s,color .18s,border-color .18s,gap .18s;display:inline-flex}.button:hover{gap:.85rem}.button-primary{background:var(--ink);color:var(--paper)}.button-primary:hover{border-color:var(--sage);background:var(--sage)}.button-secondary{border-color:var(--line-strong);color:var(--ink)}.button-secondary:hover{border-color:var(--sage)}.hero-summary{max-width:26rem}.home-section.map-section{justify-content:flex-start;min-height:auto;padding-top:clamp(3.5rem,8vh,6rem);padding-bottom:clamp(3.5rem,8vh,5rem)}.status-badge{border:1px solid var(--line);color:var(--muted);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:.4rem;padding:.3rem .5rem;font-family:DM Mono,monospace;font-size:.5rem;display:inline-flex}.status-badge:before{content:"";background:var(--soft);border-radius:50%;width:.38rem;height:.38rem}.status-badge.status-live{background:var(--sage-pale);color:var(--accent-strong,#56644f);border-color:#c4cec0}.status-badge.status-live:before{background:var(--sage)}.status-badge.status-dev:before{background:#b0a06a}.status-badge.status-experimental{border-style:dashed}.status-badge.status-experimental:before{background:#a8926b}.status-badge.status-archived{color:var(--soft)}.project-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));gap:clamp(1.8rem,3.5vw,3rem);display:grid}.project-card{flex-direction:column;min-width:0;display:flex}.project-card-media{margin-bottom:1.1rem}.project-card-media .glare-hover{width:100%;height:auto;display:block}.project-card-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.7rem;display:flex}.project-card-index{color:var(--soft);letter-spacing:.08em;text-transform:uppercase;font-family:DM Mono,monospace;font-size:.55rem}.project-card-title{letter-spacing:-.035em;margin:0;font-size:clamp(1.25rem,2vw,1.5rem);font-weight:500;line-height:1.25}.project-card-title a{transition:color .18s}.project-card-title a:hover{color:var(--sage)}.project-card-desc{color:var(--muted);margin:.7rem 0 0;font-size:.8rem;line-height:1.75}.project-card-tags{margin-top:.9rem}.project-card-links{flex-wrap:wrap;gap:.6rem 1.2rem;margin-top:auto;padding-top:1.2rem;display:flex}.filter-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.45rem;margin-bottom:2.4rem;padding-bottom:1.3rem;display:flex}.filter-tab{border:1px solid var(--line);color:var(--muted);cursor:pointer;letter-spacing:.06em;text-transform:uppercase;background:0 0;align-items:baseline;gap:.4rem;padding:.5rem .8rem;font-family:DM Mono,monospace;font-size:.56rem;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.filter-tab:hover{border-color:var(--sage);color:var(--ink)}.filter-tab.active{border-color:var(--ink);background:var(--ink);color:var(--paper)}.filter-tab .filter-count{opacity:.55}.product-card{border:1px solid var(--line);background:var(--white);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(1.5rem,4vw,3rem);padding:clamp(1.6rem,4vw,2.8rem);display:grid}.product-wordmark{letter-spacing:-.045em;margin:0;font-family:Lora,Georgia,serif;font-size:clamp(2.6rem,6vw,4.4rem);font-style:italic;font-weight:400;line-height:1}.product-category{color:var(--sage);letter-spacing:.1em;text-transform:uppercase;margin:.9rem 0 0;font-family:DM Mono,monospace;font-size:.55rem}.product-desc{max-width:40rem;color:var(--body-text,#5f615a);margin:.9rem 0 0;font-size:.9rem;line-height:1.85}.product-purpose{max-width:40rem;color:var(--muted);margin:.55rem 0 0;font-size:.78rem;line-height:1.75}.product-side{justify-items:start;gap:.8rem;display:grid}.product-domain{color:var(--soft);letter-spacing:.06em;font-family:DM Mono,monospace;font-size:.55rem}.focus-list{border-top:1px solid var(--line-strong)}.focus-item{border-bottom:1px solid var(--line);grid-template-columns:2.5rem minmax(0,1fr) minmax(0,1fr);align-items:baseline;gap:1rem;padding:1.05rem 0;display:grid}.focus-index{color:var(--soft);font-family:DM Mono,monospace;font-size:.55rem}.focus-title{letter-spacing:-.02em;font-size:1rem;font-weight:500}.focus-note{color:var(--muted);font-size:.78rem;line-height:1.7}.contribution-list{border-top:1px solid var(--line-strong)}.contribution-item{border-bottom:1px solid var(--line);grid-template-columns:2.5rem minmax(0,1fr);gap:1rem;padding:1rem 0;display:grid}.contribution-index{color:var(--soft);font-family:DM Mono,monospace;font-size:.55rem}.contribution-text{color:var(--body-text,#5f615a);font-size:.88rem;line-height:1.8}.detail-facts{border-top:1px solid var(--line-strong);margin-top:1.8rem}.detail-fact{border-bottom:1px solid var(--line);grid-template-columns:8.5rem minmax(0,1fr);gap:1rem;padding:.8rem 0;display:grid}.detail-fact-label{color:var(--soft);letter-spacing:.08em;text-transform:uppercase;font-family:DM Mono,monospace;font-size:.55rem}.detail-fact-value{color:var(--body-strong,#4f514a);font-size:.82rem;line-height:1.7}.detail-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.callout{border:1px solid var(--line);background:var(--paper-deep);color:var(--muted);margin-top:1.6rem;padding:.95rem 1.15rem;font-size:.78rem;line-height:1.75}.callout strong{color:var(--ink);font-weight:500}.status-legend{flex-wrap:wrap;align-items:center;gap:.55rem 1.1rem;display:flex}.status-legend-label{color:var(--soft);letter-spacing:.1em;text-transform:uppercase;font-family:DM Mono,monospace;font-size:.55rem}.related-block{border-top:1px solid var(--line);margin-top:clamp(3rem,7vh,4.5rem);padding-top:1.4rem}.related-title{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 1.2rem;font-family:DM Mono,monospace;font-size:.58rem}.empty-state{color:var(--muted);padding:2.5rem 0;font-size:.85rem}@media (max-width:780px){.product-card{grid-template-columns:minmax(0,1fr);align-items:start}.focus-item{grid-template-columns:2.5rem minmax(0,1fr)}.focus-note{grid-column:2}}@media (max-width:560px){.project-grid{grid-template-columns:minmax(0,1fr)}.detail-fact{grid-template-columns:minmax(0,1fr);gap:.25rem}.page-hero-title{font-size:clamp(2.6rem,12vw,3.8rem)}}
.squish-switch-root{align-items:center;gap:10px;display:inline-flex}.squish-switch{--ss-w:76px;--ss-h:38px;--ss-inset:4px;--ss-thumb:30px;--ss-r:19px;--ss-thumb-r:15px;--ss-track:#27272a;--ss-track-on:#f5f5f5;--ss-thumb-color:#4e4e51;--ss-thumb-on:#27272a;--ss-fade:.32s;cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;outline:none;margin:0;padding:0;display:inline-block;position:relative}.squish-switch:after{content:"";position:absolute;inset:-8px}.squish-switch[data-held]{cursor:grabbing}.squish-switch[aria-disabled=true]{cursor:not-allowed;opacity:.5}.squish-switch__track{width:var(--ss-w);height:var(--ss-h);border-radius:var(--ss-r);background:var(--ss-track);transition:background-color var(--ss-fade)ease;display:block;position:relative}.squish-switch[data-on] .squish-switch__track{background:var(--ss-track-on)}.squish-switch__thumb{top:var(--ss-inset);width:var(--ss-thumb);height:var(--ss-thumb);border-radius:var(--ss-thumb-r);background:var(--ss-thumb-color);transition:background-color var(--ss-fade)ease;position:absolute;left:0}.squish-switch[data-on] .squish-switch__thumb{background:var(--ss-thumb-on)}.squish-switch__label{cursor:pointer;-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion:reduce){.squish-switch__track,.squish-switch__thumb{transition-duration:1ms}}
.text-type{white-space:pre-wrap;display:inline-block}.text-type__cursor{opacity:1;margin-left:.25rem;display:inline-block}.text-type__cursor--hidden{display:none}
