:root{--paper:#f1efe9;--ink:#20211e;--muted:#77766f;--line:rgba(32,33,30,.18);--accent:#9c5848;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--page-pad:clamp(22px,7.2vw,112px);--ease:cubic-bezier(.22,.75,.25,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;transition:background .45s var(--ease),color .45s var(--ease)}body[data-category="architecture"]{--paper:#e9ecea;--ink:#202a2b;--muted:#657071;--line:rgba(32,42,43,.2);--accent:#527b79}body[data-category="wildlife"]{--paper:#efeee4;--ink:#29291e;--muted:#74715e;--line:rgba(41,41,30,.2);--accent:#75804c}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.skip-link{position:absolute;top:-60px;left:20px;z-index:20;padding:12px;background:var(--ink);color:var(--paper)}.skip-link:focus{top:12px}.site-header{height:86px;padding:0 var(--page-pad);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-size:28px;letter-spacing:-2px;font-weight:600}.wordmark span,.period{color:var(--accent)}.main-nav{display:flex;gap:38px;margin-left:55px}.nav-link{font-size:12px;color:var(--muted);transition:color .2s}.nav-link:hover,.nav-link.active{color:var(--ink)}.header-note{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.header-note i{display:inline-block;width:4px;height:4px;background:var(--accent);border-radius:50%;vertical-align:middle;margin:0 7px}.intro{position:relative;min-height:min(720px,calc(100svh - 86px));padding:clamp(90px,14vh,170px) var(--page-pad) 100px;display:flex;align-items:center;overflow:hidden}.intro-copy{position:relative;z-index:1}.eyebrow{margin:0 0 27px;color:var(--accent);font-size:10px;letter-spacing:.17em;text-transform:uppercase;font-weight:600}.eyebrow-line{display:inline-block;width:29px;height:1px;background:var(--accent);vertical-align:middle;margin-right:11px}.intro h1,.work-heading h2,.about-layout h2,.contact-section h2{font-family:var(--serif);font-size:clamp(58px,9.2vw,142px);font-weight:500;line-height:.98;letter-spacing:-.055em;margin:0}.intro h1 em,.about-layout h2 em,.contact-section h2 em{font-weight:500;color:var(--accent)}.intro-text{max-width:310px;margin:30px 0 24px;color:var(--muted);font-size:14px;line-height:1.8}.text-link{display:inline-flex;align-items:center;gap:17px;padding-bottom:7px;border-bottom:1px solid var(--accent);font-size:11px;letter-spacing:.04em}.text-link span{color:var(--accent);font-size:16px;transition:transform .2s}.text-link:hover span{transform:translate(3px,-2px)}.intro-mark{position:absolute;right:14%;top:26%;width:clamp(220px,35vw,500px);aspect-ratio:1;border:1px solid var(--line);border-radius:50%;display:grid;place-content:center;color:var(--line);transform:rotate(-14deg)}.intro-mark:before,.intro-mark:after{content:"";position:absolute;border:1px solid var(--line);border-radius:50%;inset:8%}.intro-mark:after{inset:18%}.intro-mark span{font-family:var(--serif);font-size:clamp(75px,15vw,210px);letter-spacing:-.1em;font-weight:500}.intro-mark small{position:absolute;right:4%;bottom:19%;font-size:8px;letter-spacing:.17em;line-height:1.6;color:var(--muted)}.intro-index{position:absolute;right:var(--page-pad);bottom:43px;font-size:9px;letter-spacing:.15em;color:var(--muted)}
.work-section{padding:40px var(--page-pad) 120px}.section-topline{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.work-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:90px 0 45px}.work-heading .eyebrow{margin-bottom:17px}.work-heading h2{font-size:clamp(52px,8vw,112px)}.category-description{width:220px;margin:0 5% 10px 20px;color:var(--muted);font-size:12px;line-height:1.8}.category-tabs{display:flex;gap:clamp(22px,5vw,74px);border-bottom:1px solid var(--line);margin-bottom:34px;overflow-x:auto}.category-tab{border:0;background:none;padding:0 0 16px;white-space:nowrap;font-size:12px;color:var(--muted);cursor:pointer;position:relative;transition:color .25s}.category-tab span{font-size:9px;color:var(--accent);margin-right:10px;letter-spacing:.1em}.category-tab:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.category-tab:hover,.category-tab.active{color:var(--ink)}.category-tab.active:after{transform:scaleX(1)}.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(42px,5.2vw,76px);gap:12px;align-items:stretch}.gallery-card{grid-column:span 4;grid-row:span 4;position:relative;overflow:hidden;background:rgba(0,0,0,.05);cursor:zoom-in;animation:reveal .65s var(--ease) both;animation-delay:calc(var(--i)*35ms)}.gallery-card:nth-child(7n+2){grid-column:span 5;grid-row:span 5}.gallery-card:nth-child(7n+3){grid-column:span 3;grid-row:span 4}.gallery-card:nth-child(7n+4){grid-column:span 4;grid-row:span 5}.gallery-card:nth-child(7n+5){grid-column:span 4;grid-row:span 4}.gallery-card:nth-child(7n+6){grid-column:span 4;grid-row:span 5}.gallery-card:nth-child(7n){grid-column:span 4;grid-row:span 4}.gallery-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .5s}.gallery-card:hover img{transform:scale(1.035);filter:saturate(.86)}.gallery-card:after{content:"↗";position:absolute;right:14px;bottom:13px;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:var(--paper);color:var(--ink);font-size:14px;opacity:0;transform:translateY(5px);transition:all .25s}.gallery-card:hover:after,.gallery-card:focus-visible:after{opacity:1;transform:translateY(0)}.gallery-hint{text-align:right;margin:20px 0 0;color:var(--muted);font-size:9px;letter-spacing:.08em}.gallery-hint span{color:var(--accent);margin-left:7px}@keyframes reveal{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.about-section{padding:100px var(--page-pad) 70px;background:#e8e5dd;color:#282823;transition:background .4s}.about-section .eyebrow{color:var(--accent)}.about-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:10%;align-items:center}.about-layout h2{font-size:clamp(43px,6.6vw,90px)}.about-copy{max-width:400px;color:#66645d;font-size:13px;line-height:1.9}.about-copy p{margin:0 0 19px}.about-copy .text-link{margin-top:11px;color:#282823}.about-caption{text-align:right;border-top:1px solid rgba(40,40,35,.2);margin-top:90px;padding-top:13px;color:#77746b;font-size:9px;letter-spacing:.12em;text-transform:uppercase}.contact-section{position:relative;padding:115px var(--page-pad) 55px;min-height:550px}.contact-section h2{font-size:clamp(65px,10vw,140px)}.contact-email{display:inline-flex;gap:25px;align-items:center;margin-top:40px;border-bottom:1px solid var(--line);padding-bottom:12px;font-size:clamp(13px,2vw,18px)}.contact-email span{color:var(--accent)}.contact-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:100px;padding-top:14px;color:var(--muted);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.site-footer{height:82px;padding:0 var(--page-pad);display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}.site-footer .wordmark{color:var(--ink)}.lightbox{width:100vw;height:100vh;max-width:none;max-height:none;border:0;padding:50px 9vw;background:rgba(17,18,17,.96);color:#f5f3ed;overflow:hidden}.lightbox::backdrop{background:rgba(17,18,17,.96)}.lightbox[open]{display:flex;align-items:center;justify-content:center}.lightbox figure{margin:0;max-width:min(100%,1100px);max-height:100%;display:flex;flex-direction:column;align-items:center}.lightbox-image{display:block;max-width:100%;max-height:calc(100vh - 130px);object-fit:contain}.lightbox-caption{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(245,243,237,.65);margin-top:12px}.lightbox-close,.lightbox-arrow{position:absolute;border:0;background:transparent;color:#f5f3ed;cursor:pointer}.lightbox-close{right:35px;top:22px;font-size:34px;font-weight:300}.lightbox-arrow{top:50%;font-size:24px;padding:20px;transform:translateY(-50%);transition:color .2s}.lightbox-arrow:hover,.lightbox-close:hover{color:#c98a76}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.13em;color:rgba(245,243,237,.55)}
@media(max-width:760px){.site-header{height:70px}.header-note{display:none}.main-nav{margin:0;gap:24px}.intro{min-height:630px;align-items:flex-start;padding-top:145px}.intro-mark{right:-4%;top:39%;width:62vw;opacity:.72}.intro-index{bottom:25px}.work-section{padding-top:30px;padding-bottom:85px}.work-heading{display:block;margin:70px 0 32px}.category-description{margin:17px 0 0;max-width:280px}.gallery{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(45px,10vw,75px);gap:8px}.gallery-card{grid-column:span 3;grid-row:span 4}.gallery-card:nth-child(7n+2){grid-column:span 3;grid-row:span 5}.gallery-card:nth-child(7n+3){grid-column:span 3;grid-row:span 4}.gallery-card:nth-child(7n+4){grid-column:span 3;grid-row:span 5}.gallery-card:nth-child(7n+5){grid-column:span 3;grid-row:span 4}.gallery-card:nth-child(7n+6){grid-column:span 3;grid-row:span 5}.gallery-card:nth-child(7n){grid-column:span 3;grid-row:span 4}.about-section{padding-top:75px}.about-layout{grid-template-columns:1fr;gap:25px}.about-layout h2{font-size:clamp(43px,10vw,70px)}.about-caption{margin-top:55px}.contact-section{padding-top:85px;min-height:490px}.contact-bottom{margin-top:75px}.lightbox{padding:55px 45px}.lightbox-prev{left:0}.lightbox-next{right:0}.lightbox-arrow{padding:12px;font-size:20px}}
@media(max-width:420px){.main-nav{gap:15px}.nav-link{font-size:11px}.intro h1{font-size:60px}.work-heading h2{font-size:52px}.category-tab{font-size:11px}.gallery-card{grid-row:span 3}.gallery-card:nth-child(7n+2),.gallery-card:nth-child(7n+4),.gallery-card:nth-child(7n+6){grid-row:span 4}.contact-email{font-size:12px;gap:10px}.contact-bottom{font-size:8px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
