html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2")}:root{color-scheme:light;--paper:#fff;--paper-deep:#f6f6f6;--raised:#fafafa;--ink:#171717;--ink-muted:#626262;--accent:#bd2446;--accent-strong:#a11b39;--rose:#ee3158;--line:#e2e2e2;--line-strong:#bdbdbd;--shell:min(1440px, calc(100% - 64px));--reading:70ch;--font-body:"Inter Variable", sans-serif;--font-display:var(--font-body);--font-data:"IBM Plex Mono", monospace;--motion-fast:.18s ease;font-family:var(--font-body);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:auto;background:var(--paper)}body{color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.65;overflow-x:clip}[id]{scroll-margin-top:30px}img,picture,svg{display:block}img{max-width:100%;height:auto}a{color:inherit;text-underline-offset:5px;text-decoration-thickness:1px}a:hover{color:var(--accent)}button,summary,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:6px}::selection{color:var(--ink);background:#ffd7df}h1,h2,h3,h4,p,figure,dl,dd{margin:0}h1,h2,h3,h4{letter-spacing:-.045em;text-wrap:balance;font-weight:550;line-height:1.12}p{text-wrap:pretty}h1{font-size:clamp(48px,7vw,104px)}h2{font-size:clamp(30px,3vw,44px)}h3{font-size:25px}h4{letter-spacing:-.02em;font-size:18px}.shell{width:var(--shell);margin-inline:auto}.muted{color:var(--ink-muted)}.accent,.name-period{color:var(--accent)}.visually-hidden{clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:6px;padding:12px 20px;position:fixed;top:12px;left:20px;transform:translateY(-180%)}.skip-link:focus{color:#fff;transform:translateY(0)}.site-header{z-index:5;position:relative}.header-inner{justify-content:flex-end;align-items:center;gap:50px;min-height:136px;display:flex}.desktop-nav{grid-template-rows:repeat(2,25px);grid-template-columns:repeat(3,max-content);grid-auto-flow:column;justify-content:space-between;width:65%;display:grid}.desktop-nav a,.mobile-menu a{font-size:15px;font-weight:550;text-decoration:none}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:var(--accent)}.mobile-menu,.menu-close-icon,.mobile-menu[open] .menu-open-icon{display:none}.mobile-menu[open] .menu-close-icon{display:block}.action,.action-secondary{background:var(--ink);border:1px solid var(--ink);color:#fff;min-height:48px;transition:background var(--motion-fast), color var(--motion-fast), border-color var(--motion-fast);border-radius:999px;justify-content:center;align-items:center;gap:18px;padding:12px 23px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.action-secondary{color:var(--ink);border-color:var(--line-strong);background:0 0}.action:hover,.action-secondary:hover{background:var(--accent);border-color:var(--accent);color:#fff}.action:active,.action-secondary:active{transform:translateY(1px)}.direct-link{align-items:center;gap:12px;padding-block:8px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.direct-link svg,.project-entry-action svg{transition:transform var(--motion-fast);flex-shrink:0}.direct-link:hover svg{transform:translate(3px,-2px)}.inline-actions,.intro-actions{flex-wrap:wrap;align-items:center;gap:18px 28px;display:flex}.intro{padding-top:18px}.intro h1{letter-spacing:-.07em;white-space:nowrap;font-size:clamp(64px,10.8vw,156px);font-weight:550;line-height:1.05}.intro-role{letter-spacing:-.035em;margin-top:18px;font-size:clamp(20px,2.15vw,31px);line-height:1.4}.intro-role span{color:var(--ink-muted)}.intro-about{grid-template-columns:.82fr 1.18fr;align-items:start;gap:64px;max-width:1170px;margin:58px auto 0;display:grid}.intro-portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center 30%;border-radius:22px;width:100%}.intro-portrait figcaption{color:var(--ink-muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:15px;font-size:11px;display:flex}.intro-lede{letter-spacing:-.025em;margin-bottom:30px;font-size:clamp(20px,1.75vw,25px);line-height:1.6}.intro-summary{margin-bottom:32px}.intro-summary .intro-lede{margin-bottom:16px}.intro-project-link{font-size:14px}.intro-lede strong{color:var(--accent);font-weight:550}.bio-detail{margin-bottom:25px}.bio-detail h2{letter-spacing:-.02em;margin-bottom:10px;font-size:17px}.bio-detail p{color:var(--ink-muted);font-size:14px;line-height:1.8}.intro-actions{margin-top:28px}.availability{color:var(--ink-muted);align-items:center;gap:9px;margin-top:19px;font-size:12px;display:flex}.availability>span{background:var(--accent);border-radius:50%;width:6px;height:6px}.home-projects,.education-section{margin-top:145px}.display-heading{justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:42px;display:flex}.display-heading h2{letter-spacing:-.065em;font-size:clamp(64px,10.5vw,148px);font-weight:500;line-height:1}.display-heading>p{color:var(--ink-muted);padding-bottom:8px;font-size:15px}.align-right{justify-content:flex-end}.discipline-links{flex-wrap:wrap;align-items:center;gap:32px;padding:0 0 26px;display:flex}.discipline-links>span{color:var(--ink-muted);margin-right:auto;font-size:12px}.discipline-links a{align-items:center;gap:12px;font-size:13px;text-decoration:none;display:inline-flex}.project-list{border-top:1px solid var(--line)}.project-entry{border-bottom:1px solid var(--line)}.project-entry-link{transition:background var(--motion-fast);grid-template-columns:46px minmax(0,1fr) 245px 40px;align-items:center;gap:30px;padding:34px 0;text-decoration:none;display:grid}.project-number{font-family:var(--font-data);color:var(--ink-muted);align-self:start;padding-top:5px;font-size:12px}.project-entry-copy{min-width:0}.project-meta,.case-meta{color:var(--ink-muted);flex-wrap:wrap;gap:12px;margin-bottom:12px;font-size:11px;display:flex}.project-status{color:var(--accent)}.project-entry h3{letter-spacing:-.045em;margin-bottom:12px;font-size:clamp(23px,2.1vw,30px);font-weight:550}.project-summary{max-width:64ch;color:var(--ink-muted);font-size:14px;line-height:1.75}.tag-list{flex-wrap:wrap;gap:7px;margin:18px 0 0;padding:0;list-style:none;display:flex}.tag-list li{background:var(--paper-deep);color:var(--ink-muted);border-radius:5px;padding:5px 9px;font-size:10px;line-height:1.5}.project-entry-media{background:var(--paper-deep);height:166px;transition:transform var(--motion-fast);border-radius:12px;place-items:center;padding:12px;display:grid;overflow:hidden}.project-entry-media picture{display:contents}.project-entry-media img{object-fit:contain;width:100%;height:100%;min-height:0;max-height:142px}.project-card-evidence{width:100%}.project-card-evidence>span{color:var(--ink-muted);margin-bottom:7px;font-size:10px;display:block}.project-card-evidence strong{letter-spacing:-.055em;color:var(--ink);font-size:38px;font-weight:500;line-height:1.1;display:block}.project-card-evidence p{color:var(--ink-muted);margin-top:7px;font-size:11px}.project-entry-action{border:1px solid var(--line);width:40px;height:40px;transition:background var(--motion-fast), color var(--motion-fast);border-radius:50%;place-items:center;display:grid}.project-entry-link:hover h3{color:var(--accent)}.project-entry-link:hover .project-entry-action{background:var(--accent);border-color:var(--accent);color:#fff}.project-entry-link:hover .project-entry-action svg{transform:rotate(-40deg)}.ats-preview{max-width:950px}.ats-preview figure{margin-bottom:36px}.ats-preview img{border:1px solid var(--line);width:100%;height:auto}.ats-preview figcaption{color:var(--ink-muted);margin-top:12px;font-size:13px}.ats-text summary{cursor:pointer;min-height:44px}.education-card{border:1px solid var(--line);border-radius:22px;max-width:1110px;margin-inline:auto;padding:44px}.education-main{align-items:center;gap:26px;display:flex}.education-mark{object-fit:contain;flex:none;width:88px;height:88px}.education-main h3{margin-bottom:12px;font-size:27px}.education-main p{margin-top:5px;font-size:15px}.education-focus{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:55px;margin-top:32px;padding-top:30px;display:grid}.education-focus h4{font-size:15px}.education-focus p{color:var(--ink-muted);max-width:45ch;margin:12px 0;font-size:14px}.experience-section{margin-top:120px;margin-bottom:125px}.experience-heading{text-align:center;margin-bottom:55px}.experience-heading h2{font-size:38px}.experience-heading p{color:var(--ink-muted);margin-top:14px;font-size:14px}.experience-timeline{max-width:1060px;margin:0 auto;padding:0;list-style:none;position:relative}.experience-timeline:before{content:"";background:#ecb6c2;width:1px;position:absolute;top:30px;bottom:30px;left:50%}.experience-timeline li{width:50%;padding-right:40px;position:relative}.experience-timeline li+li{margin-top:-28px}.experience-timeline li:nth-child(2n){margin-left:50%;padding-left:40px;padding-right:0}.experience-timeline li:after{content:"";background:var(--rose);border:3px solid #fff;border-radius:50%;width:11px;height:11px;position:absolute;top:31px;right:-5.5px;box-shadow:0 0 0 1px #ecb6c2}.experience-timeline li:nth-child(2n):after{left:-5.5px;right:auto}.experience-card{border:1px solid var(--line);border-radius:18px;padding:27px}.experience-date{background:var(--paper-deep);color:var(--ink-muted);border-radius:12px;margin-bottom:15px;padding:4px 11px;font-size:11px;display:inline-block}.experience-card h3{font-size:23px;line-height:1.2}.experience-organization{color:var(--accent);margin:9px 0 14px;font-size:14px}.experience-description{color:var(--ink-muted);font-size:13px;line-height:1.8}.organization-logo{object-fit:contain;object-position:left center;width:164px;height:54px;margin-bottom:20px;display:block}.organization-logo-perrybotics{width:114px;height:96px}.organization-logo-magikid{width:72px;height:72px}.experience-projects{border-top:1px solid var(--line);gap:8px;margin-top:20px;padding-top:14px;font-size:12px;display:grid}.site-footer{color:#fff;background:#171717;margin-top:110px;padding:160px 0 25px;position:relative;overflow:clip}.footer-shell{max-width:1150px}.footer-invitation{border-bottom:1px solid #424242;justify-content:space-between;align-items:center;gap:50px;padding-bottom:70px;padding-right:220px;display:flex}.footer-title{align-items:center;gap:26px;display:flex}.footer-title img{object-fit:cover;border-radius:50%;width:82px;height:82px}.footer-title h2{letter-spacing:-.055em;font-size:clamp(34px,3.5vw,50px);font-weight:500}.footer-invitation p{color:#b8b8b8;margin-top:25px;font-size:13px}.contact-orbit{background:var(--accent);width:200px;height:200px;transition:background var(--motion-fast), transform var(--motion-fast);border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:15px;font-size:14px;text-decoration:none;display:flex;position:absolute;top:53px;right:40px}.contact-orbit:hover{background:var(--accent-strong);color:#fff;transform:rotate(-5deg)}.footer-actions{flex-wrap:wrap;gap:14px;margin-top:26px;display:flex}.footer-actions a{border:1px solid #707070;border-radius:40px;align-items:center;gap:20px;padding:14px 21px;font-size:13px;text-decoration:none;display:inline-flex}.site-footer a:hover{color:#ff93aa}.site-footer .contact-orbit:hover{color:#fff}.footer-grid{grid-template-columns:1.8fr 1fr 1fr 1fr;gap:30px;margin-top:90px;font-size:11px;display:grid}.footer-description{color:#d7d7d7;font-size:13px}.footer-label{color:#aaa;margin-bottom:13px}.footer-grid nav a{align-items:center;gap:5px;margin-right:10px;text-decoration:none;display:inline-flex}.footer-utility{color:#aaa;border-top:1px solid #353535;flex-wrap:wrap;gap:22px;margin-top:45px;padding-top:20px;font-size:10px;display:flex}.footer-utility a{text-decoration:none}.footer-utility a:last-child{align-items:center;gap:6px;margin-left:auto;display:flex}.arrow-up{transform:rotate(180deg)}.document-intro,.track-intro,.resume-heading{padding:45px 0 65px}.document-intro h1{max-width:16ch;margin-bottom:30px}.document-intro>p,.document-intro>div p,.track-lede{max-width:65ch;color:var(--ink-muted);font-size:19px}.document-intro>div p+p{margin-top:14px}.catalog-tracks{margin-bottom:30px}.context-line,.data-line{color:var(--ink-muted);font-size:12px}.track-intro .context-line{margin:30px 0 18px}.track-intro h1{max-width:15ch;margin-bottom:25px}.track-intro>p:not(.context-line){margin-bottom:22px}.track-intro>p:not(.track-lede){color:var(--ink-muted)}.track-capabilities{color:var(--ink-muted);flex-wrap:wrap;gap:12px 28px;margin-top:32px;padding:0;font-size:12px;list-style:none;display:flex}.track-project+.track-project{margin-top:30px}.track-project .project-entry{border-top:1px solid var(--line)}.contribution-note{background:var(--paper-deep);border-radius:12px;grid-template-columns:150px 1fr;gap:25px;margin-top:18px;padding:22px 30px;font-size:13px;display:grid}.contribution-note p{color:var(--ink-muted)}.page-close{border-top:1px solid var(--line);margin-top:85px;padding-top:40px}.page-close>p{color:var(--ink-muted);margin-bottom:20px;font-size:13px}.page-close h2{max-width:25ch;margin-bottom:25px}.contact-email{letter-spacing:-.045em;align-items:center;gap:18px;font-size:clamp(19px,3.5vw,44px);text-decoration:none;display:inline-flex}.about-story{grid-template-columns:340px 1fr;align-items:start;gap:90px;display:grid}.portrait-card img{aspect-ratio:4/4.5;object-fit:cover;object-position:center 30%;border-radius:18px;width:100%}.portrait-card figcaption{color:var(--ink-muted);justify-content:space-between;gap:10px;margin-top:12px;font-size:11px;display:flex}.about-portrait>p{color:var(--ink-muted);margin-top:24px;font-size:14px}.about-section{margin-top:85px}.section-heading{justify-content:space-between;align-items:flex-start;gap:35px;margin-bottom:32px;display:flex}.section-note{color:var(--ink-muted);max-width:30ch;font-size:13px}.experience-ledger>div,.evidence-map>div{border-top:1px solid var(--line);grid-template-columns:240px 1fr;gap:35px;padding:24px 0;display:grid}.experience-ledger dt,.evidence-map dd{color:var(--ink-muted);font-size:14px}.experience-ledger dd{min-width:0;font-size:16px}.experience-ledger strong{font-weight:550}.resume-heading{grid-template-columns:1fr auto;align-items:center;gap:50px;display:grid}.resume-heading h1{margin:15px 0 20px;font-size:clamp(44px,6vw,80px)}.resume-heading p{color:var(--ink-muted);font-size:14px}.resume-actions{gap:10px;display:grid}.resume-section{border-top:1px solid var(--line);grid-template-columns:200px 1fr;gap:40px;padding:35px 0;display:grid}.resume-section h2{font-size:21px}.resume-entry+.resume-entry{margin-top:35px}.resume-entry h3{margin-bottom:10px;font-size:20px;line-height:1.4}.resume-entry p,.resume-entry li{color:var(--ink-muted);font-size:14px}.resume-entry ul{padding-left:20px}.resume-entry li+li{margin-top:8px}.correspondence-page{grid-template-columns:1.1fr 1fr;gap:90px;padding:50px 0;display:grid}.correspondence-page h1{font-size:clamp(48px,6vw,85px)}.correspondence-page>div>p{color:var(--ink-muted);max-width:45ch;margin-top:30px}.correspondence-actions{padding-top:15px}.correspondence-actions .contact-email{font-size:clamp(20px,2.8vw,38px)}.correspondence-actions dl{margin-top:35px}.correspondence-actions dl>div{border-top:1px solid var(--line);padding:22px 0}.correspondence-actions dt{color:var(--ink-muted);margin-bottom:8px;font-size:12px}.correspondence-actions dd a{align-items:center;gap:10px;font-size:14px;display:inline-flex}.contact-privacy{font-size:12px}.policy-document{max-width:850px}.not-found-page{max-width:1050px;padding-block:65px}.not-found-code{font-family:var(--font-data);color:var(--accent);margin-bottom:25px}.not-found-page h1{max-width:16ch}.not-found-page p{color:var(--ink-muted);margin-block:25px}.not-found-page nav{flex-wrap:wrap;gap:18px;display:flex}.case-opening{grid-template-columns:1.1fr 1fr;align-items:center;gap:65px;padding-block:40px 70px;display:grid}.breadcrumbs{color:var(--ink-muted);flex-wrap:wrap;gap:10px;margin-bottom:30px;font-size:11px;display:flex}.case-opening h1{margin:18px 0 25px;font-size:clamp(38px,4.7vw,68px);line-height:1.07}.case-summary{color:var(--ink-muted);font-size:17px}.case-evidence-hero{background:var(--paper-deep);border-radius:18px;padding:40px}.case-evidence-hero>p:first-child{color:var(--ink-muted);font-size:12px}.case-evidence-hero strong{letter-spacing:-.06em;margin-top:15px;font-size:75px;font-weight:500;display:block}.case-evidence-hero>span{font-size:15px}.case-evidence-hero>p:last-child{color:var(--ink-muted);margin-top:25px;font-size:13px}.figure-frame{background:var(--paper-deep);border-radius:16px;place-items:center;padding:20px;display:grid}.figure-frame picture{display:contents}.figure-frame img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:550px}.technical-figure figcaption{color:var(--ink-muted);flex-direction:column;gap:6px;margin-top:14px;font-size:12px;display:flex}.figure-credit{color:var(--ink-muted);font-size:10px}.figure-enlarge{min-height:30px;color:var(--accent);align-self:flex-start;padding-top:5px}.case-study-layout{grid-template-columns:300px minmax(0,1fr);gap:75px;display:grid}.brief{background:var(--paper-deep);border-radius:16px;padding:25px}.brief h2,.case-outcomes h2{margin-bottom:24px;font-size:19px}.case-facts>div+div{margin-top:19px}.case-facts dt{color:var(--ink-muted);margin-bottom:5px;font-size:11px}.case-facts dd{font-size:13px}.case-outcomes{padding:30px 15px}.case-outcomes ul{padding:0;list-style:none}.case-outcomes li{border-top:1px solid var(--line);padding:22px 0}.case-outcomes strong{letter-spacing:-.05em;font-size:35px;font-weight:500;line-height:1.2;display:block}.case-outcomes span{color:var(--ink-muted);margin-top:8px;font-size:12px;display:block}.case-outcomes .metric-classification{font-size:10px}.case-outcomes a{align-items:center;gap:6px;margin-top:10px;font-size:10px;display:inline-flex}.case-reading-nav{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:20px;margin-bottom:35px;padding-bottom:22px;font-size:12px;display:flex}.prose{max-width:var(--reading)}.prose h2{margin:40px 0 20px;font-size:29px}.prose h2:first-child{margin-top:0}.prose h3{margin:30px 0 16px;font-size:22px}.prose p,.prose li{color:var(--ink-muted);font-size:16px;line-height:1.85}.prose p+p{margin-top:22px}.prose li+li{margin-top:9px}.prose section{margin-top:40px}.project-gallery{margin-top:60px}.case-result{margin-top:40px}.gallery-heading h2{margin-bottom:15px;font-size:30px}.gallery-heading p{color:var(--ink-muted);margin-bottom:30px;font-size:13px}.gallery-grid{gap:35px;display:grid}.limitations-block{border-top:1px solid var(--line);margin-top:50px;padding-top:35px}.case-study-main>.inline-actions,.case-source-links{flex-wrap:wrap;gap:15px;margin-top:30px;display:flex}.project-nav{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:50px;margin-top:80px;padding-top:30px;display:grid}.project-nav a{text-decoration:none}.project-nav span{color:var(--ink-muted);margin-bottom:12px;font-size:12px;display:block}.project-nav strong{letter-spacing:-.03em;font-size:22px;font-weight:500}.project-nav a:last-child{text-align:right}.image-viewer{border:1px solid var(--line);width:min(1200px,94vw);max-height:94vh;color:var(--ink);background:var(--paper);border-radius:18px;padding:25px}.image-viewer::backdrop{background:#000000c7}.viewer-toolbar{justify-content:space-between;align-items:center;gap:25px;margin-bottom:20px;display:flex}.viewer-toolbar h2{font-size:22px}.viewer-toolbar button{background:var(--paper-deep);border:1px solid var(--line);border-radius:30px;padding:10px 17px;font-size:13px}.image-viewer img{object-fit:contain;width:auto;max-width:100%;max-height:70vh;margin-inline:auto}.image-viewer>p{margin-top:15px;font-size:13px}.image-viewer>a{margin-top:15px;font-size:13px;display:inline-block}.page-curtain{z-index:100;color:#fff;visibility:hidden;pointer-events:none;background:#141414;border-radius:0 0 50% 50%/0 0 8% 8%;place-items:center;height:120vh;padding-top:20vh;display:grid;position:fixed;inset:-20vh 0 0;transform:translateY(-110%)}.page-curtain>span{letter-spacing:-.04em;text-align:center;max-width:80%;font-size:clamp(24px,4vw,60px)}.site-footer:before{content:"";background:var(--paper);border-radius:0 0 50% 50%;width:120%;height:65px;position:absolute;top:-1px;left:-10%}.footer-shell{position:relative}.desktop-nav a{align-items:center;gap:6px;width:fit-content;display:inline-flex;position:relative}.desktop-nav a:after{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px;transition:transform .25s;position:absolute;bottom:-4px;left:calc(50% - 2px);transform:scale(0)}.desktop-nav a:hover:after{transform:scale(1)}.project-entry-compact .project-entry-link{grid-template-columns:30px minmax(0,1fr) 190px 25px;gap:20px;padding:32px 0}.project-entry-compact .project-entry-media{height:135px;padding:8px}.project-entry-compact .project-entry-media img{max-height:119px}.project-entry-compact .project-number{color:var(--accent)}.project-entry-compact h3{font-size:25px}.project-entry-compact .project-summary{max-width:70ch;font-size:16px}.project-entry-compact .project-meta{font-family:var(--font-data);font-size:11px}.project-entry-compact .tag-list{gap:8px 20px}.project-entry-compact .tag-list li{font-family:var(--font-data);background:0 0;border-radius:0;padding:0;font-size:11px}.project-entry-compact .project-entry-action{width:25px;height:25px;color:var(--ink-muted);border:0;align-self:end}.project-entry-compact .project-entry-link:hover{background:#fafafa}.project-entry-compact .project-entry-link:hover .project-entry-action{color:var(--accent);background:0 0}.project-entry-compact .project-status:before{content:"";background:var(--rose);border-radius:50%;width:6px;height:6px;margin-right:7px;display:inline-block;box-shadow:0 0 0 3px #ee315822}.contact-theme{color:#fff;background:#141414}.contact-theme .desktop-nav a{color:#fff}.contact-theme .desktop-nav a:hover{color:#ff8fa7}.contact-theme .site-footer:before{background:#141414}.contact-theme .site-footer{margin-top:20px;padding-top:60px}.contact-theme .footer-actions{margin-top:0}.contact-theme :focus-visible{outline-color:#ff8fa7}.contact-theme .page-curtain{background:#ee3158}.contact-page{max-width:1050px;padding:40px 0 0}.contact-poster{max-width:860px;margin-inline:auto}.contact-poster h1,.contact-poster>p,.contact-poster-links{text-transform:uppercase;letter-spacing:-.055em;justify-content:space-between;align-items:center;gap:20px;margin-bottom:35px;font-size:clamp(42px,6.4vw,92px);font-weight:400;line-height:1.1;display:flex}.contact-poster h1{text-wrap:nowrap}.contact-poster>p:nth-of-type(2){font-size:clamp(40px,5.1vw,74px)}.contact-poster-links a{white-space:nowrap;text-decoration:none}.contact-poster-links a:hover{color:#ff8fa7}.contact-poster-links a>span{font-size:.8em;transition:transform .35s;display:inline-block}.contact-poster-links a:hover>span{transform:translate(5px,-5px)}.contact-form-section{grid-template-columns:280px 1fr;gap:60px;margin-top:130px;display:grid}.contact-form-section h2{margin-bottom:22px;font-size:32px}.contact-form-section>div>p{color:#c4c4c4;margin-bottom:18px;font-size:15px}.contact-direct{color:#ff8fa7;font-size:14px}.contact-form-section form{min-width:0}.contact-form-section label{margin-bottom:7px;font-size:14px;display:block}.contact-form-section input,.contact-form-section textarea{width:100%;font:inherit;color:#171717;background:#fff;border:1px solid #c8c8c8;border-radius:10px;margin-bottom:25px;padding:15px;font-size:14px;display:block}.contact-form-section textarea{resize:vertical;min-height:145px}.contact-form-section input::placeholder,.contact-form-section textarea::placeholder{color:#686868}.contact-submit{justify-content:space-between;align-items:center;gap:20px;display:flex}.contact-submit p{color:#b9b9b9;max-width:26ch;font-size:12px}.contact-submit button{color:#fff;background:0 0;border:1px solid #ff8fa7;border-radius:40px;flex-shrink:0;align-items:center;gap:12px;padding:14px 21px;font-size:13px;transition:background .25s;display:inline-flex}.contact-submit button:hover{background:var(--accent)}.contact-result{border-top:1px solid #454545;margin-top:22px;padding-top:18px;font-size:13px}.contact-result a{color:#ff8fa7;align-items:center;gap:10px;margin-top:10px;display:inline-flex}.contact-home{color:#ccc;align-items:center;gap:10px;margin-top:115px;font-size:13px;text-decoration:none;display:inline-flex}.arrow-back{transform:rotate(180deg)}@media (width<=1100px){:root{--shell:calc(100% - 56px)}.desktop-nav{column-gap:65px}.intro-about{gap:45px}.intro-lede{font-size:21px}.project-entry-compact .project-entry-link{grid-template-columns:24px minmax(0,1fr) 140px 25px}.project-entry-link{grid-template-columns:30px minmax(0,1fr) 190px 35px;gap:22px}.project-entry-media{height:150px}.project-entry-media img{max-height:126px}.about-story{grid-template-columns:280px 1fr;gap:45px}.case-study-layout{grid-template-columns:255px minmax(0,1fr);gap:40px}.case-opening{gap:35px}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}.footer-grid nav{grid-column:2/4}.correspondence-page{gap:40px}}@media (width<=780px){.contact-page{padding-top:50px}.contact-poster h1,.contact-poster>p,.contact-poster-links{gap:12px;margin-bottom:28px;font-size:clamp(27px,7.2vw,54px)}.contact-poster>p:nth-of-type(2){font-size:clamp(24px,6.2vw,48px)}.contact-form-section{grid-template-columns:1fr;gap:30px;margin-top:75px}.contact-form-section>div{max-width:45ch}.contact-home{margin-top:70px}.project-entry-compact .project-entry-link{grid-template-columns:24px minmax(0,1fr) 140px;gap:12px}.project-entry-compact .project-summary{font-size:14px}.project-entry-compact h3{font-size:22px}.project-entry-compact .project-entry-action{position:absolute}:root{--shell:calc(100% - 40px)}.header-inner{gap:20px;min-height:95px}.desktop-nav{display:none}.mobile-menu{width:48px;height:48px;display:block}.mobile-menu summary{z-index:70;background:var(--ink);color:#fff;border:1px solid var(--line);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:45px;height:45px;list-style:none;display:flex;position:fixed;top:16px;right:16px}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary>span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.mobile-menu nav{z-index:60;color:#fff;background:#141414;flex-direction:column;justify-content:center;align-items:center;gap:22px;height:100dvh;padding:80px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.mobile-menu nav a{align-items:center;gap:10px;padding:5px 15px;font-size:25px;font-weight:550;display:inline-flex}.mobile-menu nav a:hover{color:#ff8fa7}.mobile-menu[open] summary{background:var(--accent);border-color:var(--accent)}.mobile-menu[open] summary svg{transform:rotate(90deg)}body:has(.mobile-menu[open]){overflow:hidden}.intro{padding-top:44px}.intro h1{letter-spacing:-.035em;font-size:32px}.intro-role{margin-top:16px;font-size:20px}.intro-about{gap:30px;margin-top:40px}.intro-lede{font-size:18px}.bio-detail p{font-size:13px}.intro-portrait figcaption{flex-direction:column;font-size:10px}.home-projects,.education-section{margin-top:85px}.display-heading{margin-bottom:32px}.display-heading h2{font-size:11.5vw}.display-heading>p{font-size:12px}.discipline-links{gap:12px 24px}.discipline-links>span{width:100%}.project-entry-link{grid-template-columns:25px minmax(0,1fr) 155px;gap:18px;padding-block:28px;position:relative}.project-entry-action{border:0;width:28px;height:28px;position:absolute;top:26px;right:0}.project-entry-copy{padding-right:12px}.project-entry h3{font-size:24px}.project-entry-media{height:150px}.project-summary{font-size:13px}.project-meta{padding-right:15px}.education-card{padding:27px}.education-main{align-items:flex-start}.education-main p{font-size:13px}.education-focus{gap:30px}.experience-timeline li,.experience-timeline li:nth-child(2n){width:auto;margin-left:0;padding-left:28px;padding-right:0}.experience-timeline li+li{margin-top:24px}.experience-timeline:before{left:5px}.experience-timeline li:after,.experience-timeline li:nth-child(2n):after{left:0;right:auto}.experience-section{margin-top:85px;margin-bottom:85px}.experience-heading h2{font-size:32px}.site-footer{margin-top:80px;padding-top:110px}.footer-invitation{gap:25px;padding-right:130px}.footer-title{gap:17px}.footer-title img{width:56px;height:56px}.footer-title h2{font-size:36px}.contact-orbit{width:115px;height:115px;font-size:12px;top:66px;right:0}.footer-grid{grid-template-columns:1fr 1fr;gap:28px;margin-top:55px}.footer-description{grid-column:1/-1}.footer-grid nav{grid-column:auto}.document-intro,.track-intro,.resume-heading{padding:30px 0 45px}.document-intro h1,.track-intro h1{font-size:clamp(42px,8vw,70px)}.document-intro>p,.document-intro>div p,.track-lede{font-size:17px}.contribution-note{padding:20px;display:block}.contribution-note p{margin-top:10px}.about-story{grid-template-columns:1fr;gap:40px}.about-portrait{max-width:380px}.section-heading{flex-direction:column;gap:18px}.experience-ledger>div,.evidence-map>div{grid-template-columns:1fr;gap:12px}.resume-heading{grid-template-columns:1fr;gap:25px}.resume-actions{flex-wrap:wrap;display:flex}.resume-section{grid-template-columns:1fr;gap:25px}.correspondence-page{grid-template-columns:1fr;gap:30px;padding:30px 0}.correspondence-page h1{font-size:clamp(46px,8vw,68px)}.correspondence-actions .contact-email{font-size:clamp(20px,5.5vw,35px)}.case-opening{grid-template-columns:1fr;gap:30px;padding-top:20px}.case-opening h1{font-size:clamp(38px,7vw,60px)}.case-opening-artifact{width:100%;max-width:600px}.case-study-layout{grid-template-columns:1fr;gap:40px}.case-study-rail{grid-template-columns:1.2fr 1fr;gap:24px;display:grid}.case-outcomes{padding:15px 0}.case-outcomes strong{font-size:30px}.prose p,.prose li{font-size:15px}.project-nav{gap:25px}.project-nav strong{font-size:18px}.page-close{margin-top:60px}}@media (width<=600px){.intro{padding-top:24px}.intro-role{max-width:28ch;font-size:18px}.intro-role span{display:block}.intro-about{grid-template-columns:minmax(0,1fr);grid-template-areas:"summary""portrait""details";gap:26px;margin-top:28px;display:grid}.intro-bio{display:contents}.intro-summary{grid-area:summary;margin-bottom:0}.intro-details{grid-area:details}.intro-portrait{grid-area:portrait;justify-self:center;width:100%;max-width:320px}.intro-portrait img{aspect-ratio:4/3;object-position:center 30%}.intro-portrait figcaption{flex-flow:wrap}.intro-lede{margin-bottom:26px;font-size:20px}.bio-detail p{font-size:14px}.display-heading{flex-direction:column;align-items:flex-start;gap:18px}.display-heading h2{font-size:14vw}.display-heading>p br{display:none}.align-right{align-items:flex-end}.discipline-links{gap:12px}.discipline-links a{gap:5px;font-size:12px}.project-entry-link{grid-template-columns:22px minmax(0,1fr);gap:10px;padding-block:27px}.project-number{padding-top:1px;font-size:10px}.project-entry-copy{padding-right:22px}.project-entry h3{font-size:25px}.project-entry-media{grid-column:2;width:100%;height:185px;margin-top:14px}.project-entry-media img{max-height:161px}.project-entry-compact .project-entry-link{grid-template-columns:20px minmax(0,1fr);gap:12px}.project-entry-compact .project-entry-media{grid-column:2;width:110px;height:85px;margin-top:4px;padding:6px}.project-entry-compact .project-entry-media img{max-height:73px}.project-entry-action{top:24px}.project-meta{font-size:10px}.tag-list{margin-top:14px}.education-card{padding:24px}.education-main{gap:17px}.education-mark{width:64px;height:64px}.education-main h3{font-size:23px}.education-focus{grid-template-columns:1fr;gap:27px}.experience-card{padding:23px}.experience-card h3{font-size:22px}.footer-invitation{flex-direction:column;align-items:flex-start;gap:28px;padding:0 0 30px}.footer-title{align-items:flex-start}.footer-title h2{font-size:32px}.footer-title img{width:45px;height:45px}.footer-invitation p{font-size:12px}.contact-orbit{border-radius:50%;flex-direction:column;width:110px;height:110px;min-height:110px;padding:16px;position:static}.contact-orbit svg{width:18px;height:18px}.footer-actions a{padding:12px 16px;font-size:12px}.footer-utility{gap:15px}.footer-utility a:last-child{margin-left:0}.case-study-rail{grid-template-columns:1fr}.case-outcomes ul{grid-template-columns:1fr 1fr;gap:15px;display:grid}.case-outcomes strong{font-size:27px}.case-summary{font-size:16px}.figure-frame{padding:12px}.case-evidence-hero{padding:27px}.case-reading-nav{gap:12px 20px;font-size:11px}.viewer-toolbar h2{font-size:18px}.viewer-toolbar button{font-size:11px}.image-viewer{padding:16px}}@media (width<=780px) and (height<=600px){.mobile-menu nav{justify-content:flex-start;gap:6px;padding:72px 24px 20px}.mobile-menu nav a{flex-shrink:0;min-height:36px;padding:4px 15px;font-size:20px;line-height:1.35}}@media (prefers-reduced-motion:reduce){.page-curtain{display:none!important}html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.site-header,.site-footer,.skip-link,.image-viewer,.case-reading-nav,.project-nav,.inline-actions,.resume-actions{display:none}:root{--shell:100%}body{font-size:11pt}.resume-heading,.document-intro{padding:0 0 20px}.case-study-layout,.case-opening{display:block}.resume-section,.project-entry{break-inside:avoid}a{text-decoration:none}}.education-courses{border-top:1px solid var(--line);margin-top:24px;padding-top:20px;font-size:14px}.education-courses summary{cursor:pointer;min-height:44px}.education-courses p{color:var(--ink-muted);margin-top:12px;line-height:1.7}.experience-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px;display:grid}.experience-ledger .technical-figure{margin-top:24px}@media (width<=600px){.experience-photos{grid-template-columns:1fr}}
