@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&display=swap');
:root{--paper:#f3f0e8;--ink:#292a26;--muted:#737369;--line:#d3d0c6;--accent:#287044}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button{font:inherit}header,main,footer{max-width:1540px;margin:auto}header{display:flex;align-items:center;justify-content:space-between;padding:34px 5%;border-bottom:1px solid var(--line)}.brand{font-size:12px;letter-spacing:.12em;font-weight:600}.brand span{display:block;font-size:10px;margin-top:4px;color:var(--muted)}nav{display:flex;gap:30px;font-size:12px}.intro{padding:80px 5% 55px}.eyebrow{font-size:10px;letter-spacing:.13em;line-height:1.7;font-weight:500}h1,h2,p{margin:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(42px,7.2vw,108px);line-height:.99;letter-spacing:-.025em;margin:25px 0 35px}em{font-weight:400;color:var(--accent)}.intro-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:35px}.intro-bottom p{font-size:18px;line-height:1.6;max-width:420px}.intro-bottom>span{font-size:11px;line-height:1.9;color:var(--muted)}#work{padding:0 5%}.image-button{position:relative;display:block;padding:0;border:0;background:#dedbd1;width:100%;cursor:zoom-in;overflow:hidden}.image-button img{display:block;width:100%;height:auto;transition:transform .7s}.image-button:hover img{transform:scale(1.015)}.enlarge{position:absolute;right:16px;bottom:16px;background:rgba(243,240,232,.92);padding:9px 12px;font-size:9px;letter-spacing:.1em;opacity:0;transition:opacity .2s}.image-button:hover .enlarge,.image-button:focus-visible .enlarge{opacity:1}.caption{padding:23px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:18px}.caption h2{font-size:38px;line-height:1.1;margin-top:7px}.caption p{font-size:13px;line-height:1.8;max-width:390px;padding-top:3px}.tools{font-size:10px;letter-spacing:.03em;color:var(--muted);grid-column:1/-1}.lead .caption,.landscape .caption{grid-template-columns:1fr 1fr auto}.lead .tools,.landscape .tools{grid-column:auto;align-self:end;padding-bottom:4px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:7%;margin-top:105px}.offset{margin-top:130px}.pair .caption{display:block}.pair .caption p{margin:15px 0}.pair .tools{display:block}.approach{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:105px 0 0;padding:48px 0 55px}.approach h2{font-size:clamp(48px,6vw,84px);line-height:1.05;letter-spacing:-.02em;margin:25px 0 45px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:7%}.principles span{font-size:10px;letter-spacing:.08em;color:var(--accent)}.principles p{font-size:14px;line-height:1.85;margin-top:15px}.landscape{margin-top:100px}.credit{font-size:10px;color:var(--muted);line-height:1.7;margin-top:38px}.about{margin:95px 5% 0;padding:60px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8%}.about h2{font-size:clamp(40px,4.2vw,63px);line-height:1.08;margin:22px 0 30px}.text-link{font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:6px}.bio>p{font-size:15px;line-height:1.9;margin-bottom:20px}details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:30px;padding:20px 0}summary{list-style:none;cursor:pointer;font-size:12px;display:flex;justify-content:space-between}summary::-webkit-details-marker{display:none}details p{font-size:13px;line-height:1.9;padding-top:18px}details[open] summary span{transform:rotate(45deg)}.contact{background:#e8e4d8;padding:65px 5%;margin-top:30px}.contact h2{font-size:clamp(48px,6vw,86px);line-height:1.04;margin:25px 0 32px}.email{font-size:clamp(14px,2vw,25px);border-bottom:1px solid var(--muted);padding-bottom:7px;display:inline-block}.contact-links{display:flex;flex-wrap:wrap;gap:30px;margin-top:40px;font-size:12px}footer{display:flex;justify-content:space-between;gap:20px;padding:25px 5%;font-size:10px;color:var(--muted)}dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;background:#181917;color:#f3f0e8;padding:55px 4% 30px}dialog::backdrop{background:#181917}dialog img{display:block;max-width:100%;height:calc(100dvh - 125px);object-fit:contain;margin:auto}dialog p{text-align:center;margin-top:18px;font-size:13px}#close{position:absolute;right:4%;top:18px;border:0;background:none;color:inherit;cursor:pointer;padding:8px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}@media(max-width:700px){header{padding:24px 6%}nav{gap:18px}nav a:nth-child(2),nav a:nth-child(3){display:none}.intro{padding:55px 6% 35px}.intro-bottom{display:block}.intro-bottom p{font-size:16px;max-width:320px}.intro-bottom>span{display:block;margin-top:22px}#work{padding:0 6%}.lead .caption,.landscape .caption,.caption{display:block}.caption p{margin:14px 0}.tools{display:block}.caption h2{font-size:34px}.pair{display:block;margin-top:55px}.offset{margin-top:55px}.approach{margin-top:65px;padding:35px 0}.principles{grid-template-columns:1fr;gap:25px}.approach h2{margin-bottom:30px}.landscape{margin-top:55px}.about{margin:60px 6% 0;grid-template-columns:1fr;gap:35px;padding:40px 0}.contact{padding:45px 6%}.contact-links{gap:22px}.credit{margin-top:25px}footer{flex-wrap:wrap;padding:25px 6%;line-height:1.8}.enlarge{opacity:1;font-size:8px;padding:7px}.image-button:hover img{transform:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.eyebrow{color:var(--accent)}.showreel{margin:85px 5% 0;padding-top:45px;border-top:1px solid var(--line)}.reel-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:26px}.reel-heading h2{font-size:clamp(36px,4.5vw,62px);margin-top:14px}.reel-heading a{font-size:12px;color:var(--accent)}.video-frame{aspect-ratio:16/9;background:#182019}.video-frame iframe{display:block;width:100%;height:100%;border:0}@media(max-width:700px){.showreel{margin:55px 6% 0;padding-top:30px}.reel-heading{align-items:start;flex-direction:column}.intro h1{line-height:1.08}.about h2{font-size:clamp(31px,7vw,40px)}}

/* Forest-green visual identity */
.brand,.caption h2,.about h2,.reel-heading h2{color:var(--accent)}header{border-top:4px solid var(--accent)}.eyebrow,.principles span{font-weight:600}.approach,.showreel,.about{border-top:2px solid #83a48a}.text-link{color:var(--accent);border-color:var(--accent)}nav a:last-child{background:var(--accent);color:#fff;padding:10px 15px;border-radius:2px}nav{align-items:center}.contact{background:#e1e9de;border-top:3px solid var(--accent)}.contact h2,.contact .email{color:var(--accent)}.enlarge{color:var(--accent)}::selection{background:#bdd2ba;color:#163d26}
