@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--paper:#f5f3ed;--ink:#24231f;--muted:#66645d;--rule:#c8c5bc;--accent:#b32c23;--image:#e8e6df;--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1.5rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.6}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button{font:inherit}img{display:block;max-width:100%;height:auto}::selection{background:var(--accent);color:#fff}.wrap{width:min(1180px,calc(100% - 88px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:20px;padding:10px 18px;background:var(--ink);color:var(--paper);z-index:10}.skip-link:focus{top:10px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0 23px;border-bottom:1px solid var(--ink)}.brand{display:inline-flex;flex-direction:column;line-height:1.4}.brand-name{font-weight:600;font-size:.9375rem;letter-spacing:.035em}.brand-role{font-size:.75rem;color:var(--muted);margin-top:4px}.nav{display:flex;align-items:center;flex-wrap:wrap;gap:28px;font-size:.875rem}.nav a{border-bottom:1px solid transparent}.nav a[aria-current=page]{border-color:var(--accent);color:var(--accent)}.intro{display:grid;grid-template-columns:1.35fr 1fr;align-items:end;gap:60px;padding:44px 0 42px}.kicker{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.5;font-weight:500}.intro h1{font-family:var(--serif);font-size:clamp(4.75rem,9.5vw,8.75rem);line-height:.86;letter-spacing:-.045em;font-weight:400;margin:20px 0 0}.red{color:var(--accent)}.intro-text{max-width:330px;padding-bottom:4px}.intro-text p{margin:0 0 19px;font-size:1.125rem;line-height:1.6}.intro-text .kicker{color:var(--muted)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding:14px 0 16px;margin:0 0 30px}.section-heading h2{font-size:1.125rem;font-weight:500;margin:0}.section-heading .count{color:var(--muted);font-size:.75rem;letter-spacing:.07em}.feature{display:grid;grid-template-columns:1.65fr 1fr;gap:38px;margin-bottom:42px}.project-image{overflow:hidden;background:var(--image)}.project-image img{width:100%;aspect-ratio:1.65;object-fit:cover;transition:transform .35s ease}.project-link:hover .project-image img{transform:scale(1.025)}.feature .project-image img{aspect-ratio:1.48;object-fit:contain;background:#fff}.feature-text{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.project-number{font:400 4rem/.95 var(--serif);color:var(--accent)}.feature h3{font:400 clamp(2.15rem,3.15vw,3rem)/1.06 var(--serif);letter-spacing:-.02em;margin:20px 0 15px}.feature p{margin:0;font-size:1rem;color:var(--muted);max-width:30ch}.project-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.75rem;color:var(--muted);line-height:1.5;margin:19px 0}.text-link{font-size:.875rem;border-bottom:1px solid var(--ink);padding-bottom:3px;display:inline-flex;align-items:center;gap:22px}.text-link::after{content:'↗';font-size:1rem}.site-footer{border-top:1px solid var(--ink);margin-top:84px;padding:22px 0 32px;display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px 28px;font-size:.875rem}.site-footer .footer-note{color:var(--muted);font-size:.75rem}.work-section{margin-bottom:72px}
@media(min-width:1440px){.intro h1{font-size:9rem}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.site-header{align-items:flex-start;padding-top:20px;gap:18px}.brand-role{max-width:180px}.nav{gap:12px 18px;justify-content:flex-end}.intro{grid-template-columns:1fr;gap:30px;padding:36px 0 32px}.intro h1{font-size:5.75rem}.intro-text{max-width:460px}.intro-text p{font-size:1rem;margin-bottom:10px}.feature{grid-template-columns:1fr;gap:22px}.feature-text{display:grid;grid-template-columns:44px 1fr;column-gap:20px}.project-number{font-size:3rem}.feature-text .feature-summary{grid-column:2}.feature h3{font-size:2.375rem;margin-top:0}.feature-text>.text-link{grid-column:2;justify-self:start;margin-top:22px}.section-heading{margin-bottom:20px}.site-footer{margin-top:56px}.work-section{margin-bottom:52px}}
@media(max-width:430px){.site-header{flex-direction:column;gap:16px}.brand-role{max-width:none}.nav{justify-content:flex-start;gap:24px}.intro h1{font-size:4.75rem}.intro{gap:24px}.feature-text{grid-template-columns:36px 1fr;gap:16px}.feature h3{font-size:2.125rem}.section-heading h2{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-image img{transition:none}.project-link:hover .project-image img{transform:none}}
.feature .project-image img{aspect-ratio:auto;object-fit:contain}.feature{align-items:stretch}.feature .project-image{display:flex;align-items:center;background:#fff}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px 36px}.work-card{min-width:0}.card-heading{display:grid;grid-template-columns:28px 1fr 20px;gap:14px;align-items:baseline;margin-top:17px}.card-number{color:var(--accent);font:400 1.5rem/1 var(--serif)}.work-card h3{font:400 2.15rem/1.1 var(--serif);letter-spacing:-.018em;margin:0}.card-arrow{font-size:1.25rem}.work-card p{font-size:1rem;line-height:1.6;color:var(--muted);margin:12px 0 0;padding-left:42px;max-width:47ch}.work-card .project-meta{margin:13px 0 0;padding-left:42px}.design-grid .work-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;gap:0 40px}.design-grid .work-card:last-child>.project-link{display:contents}.design-grid .work-card:last-child .project-image{grid-column:1;grid-row:1/4}.design-grid .work-card:last-child .project-image img{aspect-ratio:1.7}.design-grid .work-card:last-child .card-heading{grid-column:2;margin-top:0;align-self:end}.design-grid .work-card:last-child p,.design-grid .work-card:last-child .project-meta{grid-column:2}.design-grid .work-card:last-child .project-meta{align-self:start}.breadcrumbs{display:flex;gap:14px;font-size:.875rem;color:var(--muted);margin:26px 0 34px}.breadcrumbs a{border-bottom:1px solid var(--rule)}.project-heading h1{font:400 clamp(3.25rem,6.5vw,6.25rem)/.99 var(--serif);letter-spacing:-.032em;max-width:1030px;margin:20px 0}.project-subtitle{font-size:1.125rem;max-width:700px;margin:0 0 34px;color:var(--muted)}.project-facts{display:grid;grid-template-columns:.8fr 1fr 1.35fr;gap:28px;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);padding:20px 0;margin:0 0 32px}.project-facts dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:8px}.project-facts dd{font-size:.875rem;line-height:1.6;margin:0}.project-cover{margin:0}.project-cover>img{width:100%;height:auto;background:#fff}.project-cover figcaption{font-size:.75rem;color:var(--muted);margin:12px 0 0}.project-story{display:grid;grid-template-columns:1fr 2fr;gap:80px;margin:66px 0 72px}.credit{margin-bottom:28px}.credit .kicker{color:var(--accent);margin:0}.credit p{font-size:.875rem;line-height:1.7;margin:10px 0 0}.project-overview h2{font:400 2.75rem/1.1 var(--serif);letter-spacing:-.02em;margin:0 0 22px}.project-overview p{font-size:1.125rem;line-height:1.75;margin:0 0 18px}.project-plate{margin:0 0 44px}.plate-image{display:block;background:#fff;cursor:zoom-in}.plate-image img{width:100%;height:auto}.project-plate figcaption{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px 24px;font-size:.875rem;padding-top:12px}.project-plate figcaption>a{font-size:.75rem;border-bottom:1px solid var(--rule);white-space:nowrap;color:var(--muted)}.project-end-nav{display:grid;grid-template-columns:1fr 1.5fr;gap:40px;padding:28px 0 0;border-top:1px solid var(--ink);align-items:start}.project-end-nav>.text-link{justify-self:start}.next-project{display:flex;flex-direction:column;gap:10px;text-align:right}.next-project .kicker{color:var(--muted)}.next-title{font:400 2.25rem/1.1 var(--serif)}.profile-intro{padding:48px 0 52px}.profile-intro h1{font:400 clamp(4.2rem,8.5vw,8rem)/1 var(--serif);letter-spacing:-.04em;margin:16px 0 24px}.profile-intro-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.profile-intro-bottom p{max-width:630px;font-size:1.125rem;line-height:1.7;margin:0}.profile-intro-bottom>.text-link{flex-shrink:0;margin-bottom:7px}.profile-contact{display:flex;gap:24px;flex-wrap:wrap;font-size:.875rem;margin-top:28px}.profile-contact a{border-bottom:1px solid var(--rule)}.cv-section{display:grid;grid-template-columns:1fr 2.5fr;gap:60px;border-top:1px solid var(--ink);padding:26px 0 38px}.cv-section>h2{font:400 2.4rem/1 var(--serif);letter-spacing:-.02em;margin:0}.cv-entry{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--rule)}.cv-entry:last-child{margin-bottom:0;border-bottom:0;padding-bottom:0}.cv-entry-top{display:flex;flex-direction:column;gap:6px}.cv-entry h3{font-size:1.125rem;font-weight:500;line-height:1.4;margin:0}.cv-date{font-size:.875rem;color:var(--muted)}.cv-role{font-size:1rem;margin:10px 0}.cv-detail{font-size:.875rem;color:var(--muted);line-height:1.7;margin:10px 0 0}.cv-entry ul{padding-left:19px;font-size:1rem;line-height:1.7;margin:14px 0 0}.cv-entry li{margin-bottom:10px}.skills-content{display:grid;grid-template-columns:1fr 1fr;gap:26px 32px}.skills-content h3{font-size:.875rem;font-weight:500;margin:0 0 8px;color:var(--accent)}.skills-content p{font-size:1rem;line-height:1.7;margin:0}.image-viewer{width:min(95vw,1800px);max-width:none;max-height:94dvh;padding:0;border:0;background:var(--paper);color:var(--ink)}.image-viewer::backdrop{background:rgba(18,18,16,.88)}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 20px;border-bottom:1px solid var(--rule);font-size:.875rem}.viewer-actions{display:flex;align-items:center;gap:20px;flex-shrink:0}.viewer-actions a{font-size:.75rem;border-bottom:1px solid var(--rule)}.viewer-close{padding:6px 10px;background:var(--ink);color:var(--paper);border:0;cursor:pointer}.viewer-body{padding:14px;background:#fff;overflow:auto;max-height:calc(94dvh - 72px)}.viewer-body img{width:100%;height:auto}.viewer-open{overflow:hidden}
@media(max-width:960px){.feature h3{font-size:2.35rem}.feature{gap:26px}.project-story{gap:44px}.project-facts{grid-template-columns:1fr 1.15fr 1.35fr}.cv-section{gap:36px}}
@media(max-width:760px){.work-grid{gap:34px 24px}.work-card h3{font-size:1.8rem}.card-heading{grid-template-columns:22px 1fr 14px;gap:10px}.work-card p,.work-card .project-meta{padding-left:32px}.design-grid .work-card:last-child{gap:0 24px}.project-facts{grid-template-columns:1fr 1fr;gap:18px 24px}.project-facts>div:last-child{grid-column:1/-1}.project-story{grid-template-columns:1fr;gap:22px;margin:42px 0 48px}.project-credits{display:grid;grid-template-columns:1fr 1fr;gap:22px 30px}.credit{margin:0}.project-credits>.credit:first-child{grid-column:1/-1}.project-overview h2{font-size:2.375rem}.project-overview p{font-size:1rem}.project-heading h1{font-size:3.75rem}.project-end-nav{grid-template-columns:1fr;gap:28px}.next-project{text-align:left}.profile-intro-bottom{flex-direction:column;align-items:flex-start;gap:22px}.cv-section{grid-template-columns:1fr;gap:22px;padding-bottom:32px}.cv-section>h2{font-size:2rem}.profile-intro{padding-top:34px}.viewer-bar{align-items:flex-start;flex-wrap:wrap;gap:12px}.viewer-actions{justify-content:space-between;width:100%;gap:12px}.viewer-body{padding:5px}}
@media(max-width:540px){.work-grid{grid-template-columns:1fr;gap:36px}.work-card h3{font-size:2.1rem}.work-card p{max-width:none}.design-grid .work-card:last-child{display:block}.design-grid .work-card:last-child .card-heading{margin-top:17px}.design-grid .work-card:last-child .project-image img{aspect-ratio:1.65}.project-heading h1{font-size:3.1rem;line-height:1.05}.project-subtitle{font-size:1rem}.project-facts{grid-template-columns:1fr}.project-facts>div:last-child{grid-column:auto}.project-credits{grid-template-columns:1fr}.project-credits>.credit:first-child{grid-column:auto}.project-overview h2{font-size:2.15rem}.skills-content{grid-template-columns:1fr;gap:22px}.profile-intro h1{font-size:4.3rem}.profile-intro-bottom p{font-size:1rem}.breadcrumbs{margin-bottom:28px}.next-title{font-size:2rem}.viewer-bar{padding:12px 14px}}
