:root{--ink:#17211b;--muted:#687168;--paper:#f6f4ee;--line:#d7d8cf;--accent:#dd5b3f;--serif:Georgia,"Times New Roman",serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:.5rem;left:.5rem;padding:.65rem 1rem;background:var(--ink);color:white;transform:translateY(-150%)}.skip-link:focus{transform:none}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:1.1rem clamp(1.25rem,4vw,4.5rem);transition:.25s}.site-header.scrolled{background:rgba(246,244,238,.9);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.brand{display:flex;gap:.7rem;align-items:center;font-weight:700;letter-spacing:-.02em}.brand span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--ink);color:var(--paper);font-size:.7rem}.nav{display:flex;gap:2rem}.nav a{font-size:.86rem;font-weight:600}.nav a:hover,.nav a:focus-visible{color:var(--accent)}.menu-toggle{display:none;background:none;border:0;padding:.7rem}.menu-toggle i{display:block;width:24px;height:1px;background:currentColor;margin:6px;transition:.2s}
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:4vw;padding:8rem clamp(1.25rem,7vw,8rem) 4rem;overflow:hidden}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700}.eyebrow span{display:inline-block;width:2rem;height:1px;background:var(--accent);vertical-align:middle;margin-right:.7rem}.hero h1,.section h2,.contact h2{font:400 clamp(3.3rem,7vw,7.6rem)/.92 var(--serif);letter-spacing:-.055em;margin:1.5rem 0 2rem}.hero h1 em,.contact h2 em{color:var(--accent);font-weight:400}.lede{max-width:42rem;color:var(--muted);font-size:clamp(1rem,1.5vw,1.2rem)}.actions{display:flex;align-items:center;gap:2rem;margin-top:2.5rem}.button{display:inline-flex;justify-content:space-between;gap:2rem;padding:1rem 1.25rem;background:var(--ink);color:white;min-width:12rem}.button:hover{background:var(--accent)}.text-link{border-bottom:1px solid var(--ink);font-weight:600}.hero-art{position:relative;justify-self:end;width:min(100%,31rem)}.portrait{background:#d7d9c4;border-radius:50% 50% 3rem 3rem;overflow:hidden}.hero-art>p{position:absolute;right:-2rem;bottom:2rem;background:var(--paper);border:1px solid var(--line);padding:1rem 1.5rem;font:italic 1rem var(--serif)}.scroll-cue{position:absolute;bottom:2rem;left:clamp(1.25rem,4vw,4.5rem);display:flex;align-items:center;gap:1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.13em}.scroll-cue b{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:2.8rem;height:2.8rem}.section{padding:clamp(5rem,10vw,9rem) clamp(1.25rem,7vw,8rem);border-top:1px solid var(--line)}.section-label{display:flex;gap:1.3rem;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:700}.section-label span{color:var(--accent)}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:9vw;margin-top:5rem}.about h2,.skills>h2,.projects h2{font-size:clamp(2.7rem,5vw,5.5rem);margin:0}.about-copy{font-size:1.1rem;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:3rem 0 0}.stats div{border-top:1px solid var(--line);padding-top:1rem}.stats dt{font:2.7rem/1 var(--serif);color:var(--ink)}.stats dd{margin:.6rem 0;font-size:.75rem}.skills{background:var(--ink);color:var(--paper)}.skills>h2{max-width:820px;margin:4rem 0}.skill-list article{display:grid;grid-template-columns:4rem 1fr auto;gap:2rem;padding:2rem 0;border-top:1px solid #455047;align-items:center}.skill-list article>span{color:#99a198}.skill-list h3{font:2rem var(--serif);margin:0}.skill-list p{color:#aeb5af;margin:.4rem 0}.skill-list b{font-size:1.5rem;font-weight:400}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:4rem 0 3rem}.section-heading p{color:var(--muted)}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem 2rem}.project-large{grid-column:1/-1}.project-visual{overflow:hidden;padding:6%;}.project-visual img{width:100%;transition:transform .5s}.project-card:hover img{transform:scale(1.025)}.coral{background:#df765f}.blue{background:#899eac}.sand{background:#d5c49e}.project-meta{display:flex;justify-content:space-between;gap:2rem;padding-top:1.3rem}.project-meta p{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0}.project-meta h3{font:1.65rem var(--serif);margin:.35rem 0}.project-meta>a{font-size:1.5rem}.timeline-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:4rem}.timeline-grid h2{font-size:2.4rem;margin:0 0 2rem}.timeline{list-style:none;padding:0;margin:0}.timeline li{display:grid;grid-template-columns:7rem 1fr;gap:1.5rem;padding:1.5rem 0;border-top:1px solid var(--line)}.timeline time{font-size:.75rem;color:var(--muted)}.timeline h3{font-size:1rem;margin:0}.timeline p{color:var(--muted);margin:.3rem 0;font-size:.9rem}.contact{text-align:center;padding:clamp(6rem,12vw,11rem) 1.25rem;background:#e4dfd2}.contact h2{font-size:clamp(3rem,7vw,7rem)}.mail-link{display:inline-flex;gap:5rem;border-bottom:1px solid;padding:.7rem 0;font-weight:600}.footer{padding:2rem clamp(1.25rem,4vw,4.5rem);display:grid;grid-template-columns:1fr auto 1fr;gap:2rem;font-size:.75rem}.footer div{display:flex;gap:1.5rem}.footer>a{text-align:right}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:760px){.site-header{padding:1rem 1.25rem}.menu-toggle{display:block;position:relative;z-index:2}.menu-toggle[aria-expanded=true] i:first-of-type{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] i:last-of-type{transform:translateY(-3.5px) rotate(-45deg)}.nav{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;background:var(--paper);opacity:0;visibility:hidden;transition:.2s}.nav.open{opacity:1;visibility:visible}.nav a{font:2.2rem var(--serif)}.hero{grid-template-columns:1fr;padding-top:8rem;align-content:center}.hero h1{font-size:clamp(3rem,15vw,5rem)}.hero-art{display:none}.scroll-cue{display:none}.actions{align-items:flex-start;flex-direction:column}.about-grid{grid-template-columns:1fr;gap:2rem;margin-top:3rem}.stats{grid-template-columns:1fr}.skills>h2{margin:3rem 0}.skill-list article{grid-template-columns:2rem 1fr;gap:1rem}.skill-list article>b{display:none}.section-heading{display:block;margin:3rem 0 2rem}.project-grid,.timeline-grid{grid-template-columns:1fr;gap:3rem}.project-large{grid-column:auto}.timeline li{grid-template-columns:5.5rem 1fr}.footer{grid-template-columns:1fr;text-align:center}.footer div{justify-content:center}.footer>a{text-align:center}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
