@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";.role-highlights{padding-left:0}.role-highlights p{border-left:1px solid var(--line);margin:0;padding-left:.8rem}.role-highlights{color:#c7d2de;gap:.6rem;margin:0;padding-left:1rem;font-size:.83rem;line-height:1.55;display:grid}.role-highlights li{padding-left:.15rem}@media (width<=760px){.project:nth-child(3) img,.project:nth-child(4) img{border-right:0;border-bottom:1px solid var(--line)}}.project:nth-child(3),.project:nth-child(4){border:1px solid var(--line)}.project:nth-child(3) img,.project:nth-child(4) img{border-right:1px solid var(--line);background:#101827}.project:nth-child(4){grid-column:1/-1;grid-template-columns:1.15fr .85fr;display:grid}.project:nth-child(4) img{aspect-ratio:auto;height:100%}@media (width<=760px){.project:nth-child(4){grid-column:auto;display:block}.project:nth-child(4) img{aspect-ratio:16/10;height:auto}}.project:nth-child(3){grid-column:1/-1;grid-template-columns:.85fr 1.15fr;display:grid}.project:nth-child(3) img{aspect-ratio:auto;height:100%}.project-link{color:#4fd1c5;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #4fd1c573;gap:.55rem;margin-top:1.3rem;padding-bottom:.35rem;font:500 .68rem DM Mono,monospace;display:inline-flex}.project-link span{font-size:1rem}@media (width<=760px){.project:nth-child(3){grid-column:auto;display:block}.project:nth-child(3) img{aspect-ratio:16/10;height:auto}}a:focus-visible,button:focus-visible{outline-offset:4px;outline:2px solid #4fd1c5}:root{--canvas:#0b0f17;--surface:#101827;--text:#e8f0f6;--muted:#9baabd;--line:#bfd6e62b;--accent:#4fd1c5;--accent-ink:#06201f;--sans:Manrope,Arial,sans-serif;--mono:"DM Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--canvas);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.section-shell{padding:clamp(5rem,9vw,8rem) max(1.5rem,50vw - 620px)}.nav{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:2;background:#0b0f17eb;justify-content:space-between;align-items:center;height:72px;padding:0 max(1.5rem,50vw - 620px);display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.08em;font-size:1.1rem;font-weight:800}.wordmark span,.kicker,.nav-cta,.text-link,.email-link{color:var(--accent)}.nav-links{font:500 .67rem var(--mono);text-transform:uppercase;letter-spacing:.04em;gap:1.45rem;display:flex}.nav-links a:hover,.nav-links a:focus-visible,footer a:hover{color:var(--accent)}.nav-cta,.button{font:500 .68rem var(--mono);text-transform:uppercase;letter-spacing:.03em}.menu-toggle{display:none}.hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.05fr) minmax(290px,.95fr);align-items:center;gap:clamp(3rem,8vw,8rem);min-height:calc(100dvh - 72px);padding-top:clamp(4rem,8vw,6rem);padding-bottom:clamp(3rem,7vw,6rem);display:grid}.kicker{font:500 .67rem var(--mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 1.25rem}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.07em;max-width:11ch;margin:0;font-size:clamp(3rem,5.3vw,5.6rem);line-height:.97}h1 span{letter-spacing:-.04em;color:var(--muted);max-width:21ch;margin-top:1.3rem;font-size:.38em;line-height:1.17;display:block}.hero-summary{color:var(--muted);max-width:34rem;margin:2rem 0;font-size:1.03rem;line-height:1.7}.hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}.button{border-radius:12px;padding:.95rem 1.1rem;transition:transform .2s,background .2s}.button:active,button:active{transform:scale(.98)}.button-primary{background:var(--accent);color:var(--accent-ink)}.button-primary:hover{background:#80ded5}.button-secondary{border:1px solid var(--line)}.button-secondary:hover{border-color:var(--accent);color:var(--accent)}.hero-visual{margin:0;position:relative}.hero-visual:after{content:"";pointer-events:none;background:linear-gradient(145deg,#0b0f1740,#0000 60%);position:absolute;inset:0}.hero-visual img{object-fit:cover;filter:saturate(.85);border-radius:16px;width:100%;height:min(62vh,650px)}figcaption{font:400 .62rem var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:.8rem}.about{border-bottom:1px solid var(--line);grid-template-columns:minmax(260px,.75fr) minmax(0,1fr);align-items:center;gap:clamp(3rem,10vw,10rem);display:grid}.portrait{aspect-ratio:3/4;background:var(--surface);border-radius:16px;max-width:370px;overflow:hidden}.portrait img{object-fit:cover;filter:grayscale(.55)contrast(1.06);width:100%;height:100%}h2{letter-spacing:-.065em;max-width:12ch;margin:0;font-size:clamp(2.5rem,4.5vw,4.75rem);line-height:1}.about-copy>p:not(.kicker),.section-intro>p,.teaching-copy>p,.contact-copy>p{max-width:42rem;color:var(--muted);margin:1.5rem 0;line-height:1.75}.text-link{font:500 .72rem var(--mono);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #4fd1c573;gap:.7rem;padding-bottom:.45rem;display:inline-flex}.text-link span{font-size:1rem}.experience,.projects{background:var(--surface);border-bottom:1px solid var(--line)}.section-intro{max-width:46rem;margin-bottom:4rem}.timeline{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.timeline li{border-bottom:1px solid var(--line);grid-template-columns:15% 1fr minmax(250px,.85fr);gap:2rem;padding:1.8rem 0;display:grid}.period,.location,.project-type{font:400 .65rem var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.period,.location{margin:0}.timeline h3{letter-spacing:-.04em;margin:0 0 .45rem;font-size:1.12rem}.timeline h3 span{color:var(--muted);font-weight:400}.role-copy{color:#c7d2de;margin:0;font-size:.88rem;line-height:1.65}.teaching{border-bottom:1px solid var(--line);grid-template-columns:1fr .8fr;align-items:end;gap:clamp(3rem,7vw,7rem);display:grid}.teaching-image{background:var(--surface);border-radius:16px;grid-column:1/-1;height:clamp(240px,32vw,420px);overflow:hidden}.teaching-image img{object-fit:cover;object-position:center 38%;filter:saturate(.7);width:100%;height:100%}.stack{border-bottom:1px solid var(--line)}.stack-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.stack-grid span{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:104px;font:500 .72rem var(--mono);text-transform:uppercase;color:#c7d2de;align-items:flex-end;padding:1.25rem;display:flex}.stack-grid span:nth-child(3n+1){background:var(--surface)}.stack-grid span:nth-child(5n){color:var(--accent)}.project-list{grid-template-columns:1.2fr .8fr;gap:1.25rem;display:grid}.project{background:var(--canvas);border-radius:16px;overflow:hidden}.project:nth-child(2){margin-top:4rem}.project img{aspect-ratio:16/10;object-fit:cover;filter:saturate(.7);width:100%}.project-content{padding:1.65rem}.project-content h3{letter-spacing:-.055em;margin:.5rem 0 .85rem;font-size:1.55rem}.project-content>p:not(.project-type){color:var(--muted);margin-bottom:1.25rem;line-height:1.65}.tags{flex-wrap:wrap;gap:.45rem;display:flex}.tags span{font:500 .61rem var(--mono);color:#b8c9d5;text-transform:uppercase;border:1px solid var(--line);border-radius:12px;padding:.38rem .5rem}.contact{grid-template-columns:1fr minmax(300px,.75fr);gap:clamp(3rem,10vw,10rem);display:grid}.contact-copy h2{max-width:10ch}.email-link{font:500 .78rem var(--mono);overflow-wrap:anywhere;border-bottom:1px solid #4fd1c573;padding-bottom:.45rem}.contact-form{background:var(--surface);border-radius:16px;align-content:start;gap:1.25rem;padding:1.5rem;display:grid}.contact-form label{font:500 .64rem var(--mono);text-transform:uppercase;color:#c7d2de;letter-spacing:.04em;gap:.55rem;display:grid}input,textarea{width:100%;color:var(--text);font:400 .92rem var(--sans);border:1px solid var(--line);resize:vertical;background:0 0;border-radius:12px;outline:none;padding:.8rem}input::placeholder,textarea::placeholder{color:#748397}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4fd1c526}button[type=submit]{background:var(--accent);color:var(--accent-ink);cursor:pointer;font:500 .68rem var(--mono);text-transform:uppercase;text-align:left;border:0;border-radius:12px;padding:.95rem 1.1rem}.form-success h3{letter-spacing:-.04em;font-size:1.45rem}.form-success p{color:var(--muted);line-height:1.6}footer{border-top:1px solid var(--line);color:var(--muted);font:400 .62rem var(--mono);text-transform:uppercase;justify-content:space-between;gap:1rem;padding:1.6rem max(1.5rem,50vw - 620px);display:flex}footer div{gap:1.25rem;display:flex}@media (width<=760px){.nav{height:64px}.nav-cta{display:none}.menu-toggle{background:0 0;border:0;gap:5px;padding:5px;display:grid}.menu-toggle span{background:var(--text);width:22px;height:1px;display:block}.nav-links{background:var(--surface);border-bottom:1px solid var(--line);flex-direction:column;width:100%;padding:1.5rem;display:none;position:absolute;top:64px;left:0}.nav-links.open{display:flex}.hero{grid-template-columns:1fr;gap:2.5rem;min-height:calc(100dvh - 64px);padding-top:3.5rem}.hero-visual img{height:340px}h1{font-size:clamp(2.85rem,12vw,4rem)}.about,.teaching,.contact{grid-template-columns:1fr}.portrait{max-width:none;height:410px}.timeline li{grid-template-columns:1fr;gap:.65rem}.role-copy{margin-top:.45rem}.stack-grid{grid-template-columns:repeat(2,1fr)}.project-list{grid-template-columns:1fr}.project:nth-child(2){margin-top:0}.teaching-image{grid-column:auto;height:260px}.section-intro{margin-bottom:3rem}footer{flex-direction:column}}
