:root{color-scheme:dark;--bg:#111212;--fg:#eeefea;--muted:#a2a5a0;--line:#343635;--accent:#c6e297}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 "DM Sans",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:5px}header{display:flex;align-items:center;justify-content:space-between;padding:28px 4vw;border-bottom:1px solid var(--line);gap:24px}.brand{font-weight:700;letter-spacing:-1px;font-size:25px}nav{display:flex;gap:32px;font-size:14px}nav a[aria-current=page]{color:var(--accent)}.intro{display:flex;align-items:flex-end;justify-content:space-between;padding:58px 0 42px;gap:40px}.intro h1{font-size:clamp(42px,6.6vw,102px);line-height:.98;letter-spacing:-.055em;margin:0;font-weight:500}.intro p{color:var(--muted);max-width:260px;margin:0;font-size:16px}.wrap{padding:0 4vw;max-width:1900px;margin:auto}.section-label{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:17px 0 22px;color:var(--muted);font-size:13px;letter-spacing:.07em;text-transform:uppercase}.grid{display:grid;grid-template-columns:1fr 1fr;gap:38px 22px}.card{display:block;min-width:0}.visual{overflow:hidden;background:#202222;aspect-ratio:16/9;position:relative}.visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}.card:hover img{transform:scale(1.025)}.card-info{display:flex;justify-content:space-between;align-items:baseline;padding-top:12px;gap:16px}.card h2{font-size:17px;font-weight:400;letter-spacing:-.02em;margin:0}.num{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.card:first-child{grid-column:1/-1}.card:first-child .visual{aspect-ratio:2.22}.card:first-child h2{font-size:22px}footer{display:flex;justify-content:space-between;gap:28px;margin:80px 4vw 0;padding:26px 0;border-top:1px solid var(--line);color:var(--muted);font-size:14px}footer div{display:flex;gap:22px}.project-head{padding:50px 0 36px;max-width:1200px}.eyebrow{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.project-head h1,.page-title{font-size:clamp(36px,5vw,76px);font-weight:400;line-height:1.08;letter-spacing:-.045em;margin:24px 0}.project-copy{max-width:850px;font-size:18px;color:#c7cac5}.project-copy p{margin:.5em 0}.media{margin:24px auto;max-width:1500px}.media img{display:block;max-width:100%;height:auto;margin:auto}.video{aspect-ratio:16/9;background:#070808}.video iframe{width:100%;height:100%;border:0}.video-link{font-size:14px;color:var(--muted);display:inline-block;margin-top:8px;text-decoration:underline}.project-nav{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:25px;margin-top:64px;gap:30px}.about-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}.about-gallery img{width:100%;height:auto}.about-gallery .portrait{grid-column:1/-1;max-width:800px;margin:auto}.contact{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin:60px 0;max-width:1300px}.contact h1{margin-top:0}.contact p{color:var(--muted);max-width:420px}.contact a{text-decoration:underline;text-underline-offset:5px}.contact-details{margin-top:40px}label{display:block;margin:0 0 22px;font-size:14px}input,textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #626760;padding:12px 0;color:var(--fg);font:18px "DM Sans",Arial,sans-serif;resize:vertical;border-radius:0}button{background:var(--accent);color:#14200e;padding:15px 24px;border:0;font:16px "DM Sans",Arial,sans-serif;cursor:pointer}button:hover{background:#def7b9}.form-note{font-size:14px}.skip{position:absolute;left:10px;top:-80px;background:var(--accent);padding:10px;color:#111}.skip:focus{top:10px;z-index:9}@media(max-width:700px){header{padding:22px 5vw}.brand{font-size:21px}nav{gap:19px}.wrap{padding:0 5vw}.intro{display:block;padding:42px 0 32px}.intro h1{font-size:clamp(42px,10vw,68px)}.intro p{margin-top:24px;max-width:100%}.grid{grid-template-columns:1fr;gap:28px}.card:first-child{grid-column:auto}.card:first-child .visual{aspect-ratio:16/9}.card:first-child h2{font-size:17px}footer{margin:55px 5vw 0;flex-direction:column}.contact{grid-template-columns:1fr;gap:40px;margin:40px 0}.project-copy{font-size:16px}.about-gallery{grid-template-columns:1fr}.project-head{padding-top:32px}.project-nav{font-size:14px}.section-label{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.visual img{transition:none}}
.bio-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:7vw;align-items:start;margin:50px 0 80px}.bio-photo{width:100%;height:auto;max-height:760px;object-fit:cover}.bio-copy{max-width:700px;color:#c7cac5}.bio-copy h2{font-size:40px;letter-spacing:-.04em;color:var(--fg);font-weight:400;margin:0}.bio-copy h3{font-size:20px;color:var(--fg);margin-top:35px}.bio-copy .lead{font-size:22px;color:var(--accent)}.bio-history{max-width:950px;margin:auto;color:#c7cac5}.bio-history h2{font-size:28px;font-weight:400;color:var(--fg);margin-top:50px}.bio-history dl{display:grid;grid-template-columns:65px 1fr;gap:20px;border-top:1px solid var(--line);padding-top:24px}.bio-history dt{color:var(--accent)}.bio-history dd{margin:0}.bio-history a{color:var(--accent)}@media(max-width:700px){.bio-layout{grid-template-columns:1fr;gap:30px;margin:30px 0}.bio-photo{max-height:500px}.bio-copy h2{font-size:34px}}

/* Young Serif — locally hosted under the SIL Open Font License. */
@font-face{font-family:"Young Serif";src:url("/fonts/YoungSerif-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
.brand{font-family:"Young Serif",Georgia,serif;font-weight:400;font-size:36px;letter-spacing:-.065em;line-height:1.15;white-space:nowrap}
@media(max-width:700px){.brand{font-size:28px}header{gap:16px}}
@media(max-width:380px){.brand{font-size:25px}nav{gap:14px;font-size:13px}header{gap:12px}}
.intro h1{font-family:"Young Serif",Georgia,serif;font-weight:400;line-height:1.12;font-size:clamp(30px,6.6vw,102px);letter-spacing:-.055em}
@media(max-width:700px){.intro h1{font-size:clamp(30px,10vw,68px)}}

/* DM Sans complements the Young Serif display lettering. */
@font-face{font-family:"DM Sans";src:url("/fonts/DMSans.ttf") format("truetype");font-style:normal;font-weight:100 1000;font-display:swap}
body,input,textarea,button{font-optical-sizing:auto}
