:root{--paper:#f5f4ef;--ink:#202923;--green:#253d34;--muted:#62675e;--surface:#e8e8df;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--press:140ms;--ui:240ms;--reveal:800ms;color-scheme:light;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:default}button:active,.button:active{transform:scale(.97)}button,.button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #678375;outline-offset:5px}img{display:block;width:100%;height:100%;object-fit:cover}figure,p{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;margin:0;letter-spacing:-.045em}h2{font-size:clamp(32px,3.8vw,54px);line-height:1.12}h3{font-size:32px;letter-spacing:-.03em}p{font-size:16px;line-height:1.65}.wrap{width:min(1320px,calc(100% - 112px));margin-inline:auto}.header{min-height:106px;display:flex;align-items:center;justify-content:space-between;gap:32px;border-bottom:1px solid #d8dad0}.wordmark{font-family:Georgia,serif;font-size:33px;letter-spacing:-2px;white-space:nowrap}.wordmark span{color:#64866c}.header nav{display:flex;gap:30px;font-size:14px;margin-left:auto}.header nav a{padding:12px 0}.header-actions{display:flex;align-items:center;gap:24px}.language{background:none;border:0;padding:14px 0;font-size:13px;min-width:44px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:56px;padding:18px 25px;background:var(--green);color:var(--paper);border:0;font-size:14px;transition:transform var(--press) var(--ease-out),background-color 180ms ease}.button.small{min-height:44px;padding:13px 20px}.hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:30px;min-height:670px;padding-top:50px;padding-bottom:80px}.hero-copy{padding-bottom:82px;position:relative;z-index:1}.hero h1{font-size:clamp(46px,5.9vw,84px);line-height:1.04;max-width:660px;text-wrap:balance}.hero-description{max-width:320px;font-family:Georgia,serif;font-size:21px;line-height:1.5;margin:29px 0 31px}.text-link{font-size:14px;display:inline-block;padding-bottom:8px;border-bottom:1px solid currentColor;transition:opacity 180ms ease,transform 180ms var(--ease-out)}.hero-composition{position:relative;margin-left:36px;margin-right:28px}.media{display:block;position:relative;overflow:hidden;background:var(--surface);isolation:isolate}.media[aria-busy=true]::after,.chat-loading::after{content:'';position:absolute;inset:0;background:#d9ddd2;z-index:-1;animation:skeleton-pulse 1.5s ease-in-out infinite}.media img{opacity:1;transition:opacity 400ms ease,transform 800ms var(--ease-out)}.media[aria-busy=true] img{opacity:0}.hero-portrait{aspect-ratio:4/5;width:100%}.hero-portrait img{object-position:center 42%}.hero-candid{position:absolute;bottom:-34px;left:-132px;width:64%;aspect-ratio:1.5;border:8px solid var(--paper);z-index:2}.photo-note{position:absolute;left:46%;bottom:-61px;width:70%;font-size:11px;color:var(--muted)}.preview-note{display:flex;gap:14px;align-items:baseline;color:var(--muted);padding:24px 0 30px}.preview-note p{font-size:13px}.portfolio{padding:64px 0 94px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:36px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button{font-size:13px;background:transparent;border:0;min-height:44px;padding:10px 14px;transition:background-color 180ms ease,color 180ms ease}.filters button[aria-pressed=true]{background:var(--green);color:var(--paper)}.gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:26px;align-items:start}.gallery-item{border:0;padding:0;background:transparent;text-align:left;min-width:0;transition:transform var(--press) var(--ease-out)}.gallery-item[hidden]{display:none}.gallery-item .media{aspect-ratio:1.35}.gallery-item:nth-child(2){margin-top:58px}.gallery-item:nth-child(3){margin-top:14px}.gallery.is-filtered .gallery-item{margin-top:0}.caption{display:flex;justify-content:space-between;gap:15px;padding:18px 0;font-size:14px}.services{padding:36px 0 100px}.section-heading .muted{max-width:230px;font-size:13px}.muted{color:var(--muted)}.service-list{display:grid;grid-template-columns:repeat(3,1fr);gap:54px}.service-list article{padding-top:22px}.service-list p{margin:19px 0 24px;max-width:310px;font-size:15px;line-height:1.7}.about{background:var(--surface);padding:80px 0}.about-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}.statement{font-family:Georgia,serif;font-size:28px;line-height:1.45;letter-spacing:-.02em;margin-bottom:25px}.about .muted{max-width:470px;font-size:14px}.contact{display:flex;justify-content:space-between;align-items:center;gap:55px;padding-block:100px}.contact p{max-width:550px;margin-top:24px}.contact .button{flex-shrink:0}.footer{border-top:1px solid #d8dad0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:35px 0 105px}.footer p,.footer>a:last-child{font-size:12px;color:var(--muted)}.chat-launcher{position:fixed;right:24px;bottom:max(24px,env(safe-area-inset-bottom));z-index:5;display:flex;align-items:center;gap:14px;padding:17px 22px;border:0;background:var(--green);color:var(--paper);box-shadow:0 5px 22px #17251b26;transition:transform var(--press) var(--ease-out);font-size:13px}.chat-launcher svg{width:22px;height:22px;flex-shrink:0}dialog{border:0;padding:0;color:var(--ink)}dialog::backdrop{background:#17201bba}dialog[open]{animation:dialog-in 240ms var(--ease-out)}.close{position:absolute;right:14px;top:10px;background:transparent;border:0;font-size:30px;min-width:44px;min-height:44px;z-index:3}.lightbox{width:min(1040px,94vw);max-height:92dvh;background:var(--paper);padding:52px 24px 20px}.lightbox img{width:auto;max-width:100%;height:auto;max-height:70dvh;margin:auto;object-fit:contain}.lightbox p{text-align:center;margin-top:12px;font-size:16px}.lightbox .sample-label{font-size:12px;color:var(--muted)}.chat-dialog{inset:auto 24px 24px auto;margin:0;width:min(430px,calc(100vw - 32px));height:min(730px,calc(100dvh - 40px));max-width:none;max-height:none;background:var(--paper);border-radius:5px;overflow:hidden;transform-origin:bottom right}.chat-dialog[open]{display:flex;flex-direction:column}.chat-heading{background:var(--green);color:var(--paper);padding:20px 24px;flex-shrink:0}.chat-heading h2{font-size:24px;letter-spacing:-.03em}.chat-heading p{font-size:12px;margin-top:4px}.chat-heading .close{color:var(--paper);top:16px}.chat-fallback{padding:10px 18px;background:var(--surface);display:flex;flex-wrap:wrap;gap:3px 10px;align-items:center;flex-shrink:0}.chat-fallback p,.chat-fallback a{font-size:11px}.chat-fallback a{text-decoration:underline}.chat-frame{flex:1;min-height:0;position:relative}.chat-frame iframe{width:100%;height:100%;border:0;position:relative;background:var(--paper);z-index:1}.chat-loading{position:absolute;inset:0;padding:35px 25px;isolation:isolate}.skeleton-line{display:block;height:17px;background:#d2d8cb;margin-bottom:14px;width:85%;border-radius:3px}.skeleton-line:nth-child(2){width:70%}.skeleton-line.short{width:45%}.chat-loading p{font-size:13px;color:var(--muted);margin-top:24px}.load-fallback{display:none}.media.failed{display:flex;align-items:center;justify-content:center;padding:20px}.media.failed img{display:none}.media.failed .load-fallback{display:block;font-size:14px;text-align:center;line-height:1.7}.media.failed::after{display:none}.skip{position:fixed;top:8px;left:8px;transform:translateY(-150%);z-index:100;background:var(--green);color:white;padding:15px}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.noscript{padding:20px}.reveal.in-view{animation:arrive var(--reveal) var(--ease-out) both}.hero-portrait.in-view{animation:photo-arrive 1100ms var(--ease-out) both}.hero-candid.in-view{animation:candid-arrive 900ms var(--ease-out) both}.reveal:nth-child(2){animation-delay:70ms}.reveal:nth-child(3){animation-delay:140ms}
@keyframes arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes photo-arrive{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}@keyframes candid-arrive{from{opacity:0;transform:translateX(-20px) rotate(-2deg)}to{opacity:1;transform:none}}@keyframes dialog-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes skeleton-pulse{0%,100%{opacity:.25}50%{opacity:.8}}
@media(hover:hover) and (pointer:fine){.gallery-item:hover img{transform:scale(1.035)}.text-link:hover{transform:translateX(3px)}.button:hover{background:#375548}.header nav a:hover,.language:hover{opacity:.65}.chat-launcher:hover{transform:translateY(-3px)}}
@media(min-width:1500px){.hero{min-height:760px}.hero h1{font-size:90px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.header{gap:20px}.header nav{gap:17px}.header-actions{gap:16px}.hero{min-height:600px;gap:20px}.hero h1{font-size:clamp(38px,5.2vw,55px)}.hero-composition{margin-left:15px;margin-right:0}.hero-candid{left:-70px;bottom:-40px;width:72%}.photo-note{display:none}.hero-copy{padding-bottom:55px}.service-list{gap:30px}.contact{gap:25px}.footer p{max-width:220px}.section-heading{align-items:start;flex-direction:column;gap:20px}.section-heading .muted{max-width:none}}
@media(max-width:720px){.wrap{width:calc(100% - 40px)}.header{min-height:128px;flex-wrap:wrap;gap:12px;padding:18px 0 13px}.wordmark{font-size:29px}.header-actions{margin-left:auto}.header nav{order:3;width:100%;margin:0;justify-content:space-between;font-size:12px}.header nav a{padding:8px 0}.header .small{font-size:12px;padding:12px 15px}.hero{display:flex;flex-direction:column;gap:30px;padding-top:38px;padding-bottom:68px;min-height:0;align-items:stretch}.hero-copy{padding:0}.hero h1{font-size:clamp(38px,9.5vw,64px);max-width:520px;text-wrap:initial;line-height:1.08;letter-spacing:-.05em}.hero-description{font-size:18px;max-width:300px;margin:21px 0}.hero-composition{width:85%;margin:0 0 0 auto}.hero-portrait{aspect-ratio:1}.hero-candid{left:-17%;bottom:-35px;width:63%;border-width:5px}.preview-note{padding-top:12px;padding-bottom:0}.preview-note p{font-size:11px}.portfolio{padding:55px 0 45px}.section-heading{margin-bottom:25px}.filters{gap:2px}.filters button{font-size:12px;padding-inline:12px}.gallery{grid-template-columns:1fr;gap:22px}.gallery-item:nth-child(n){margin:0}.gallery-item .media{aspect-ratio:1.42}.caption{padding:13px 0;font-size:13px}.services{padding:25px 0 55px}.service-list{grid-template-columns:1fr;gap:30px}.service-list article{padding:0}.service-list h3{font-size:29px}.service-list p{max-width:none;margin:13px 0 16px}.about{padding:48px 0}.about-inner{grid-template-columns:1fr;gap:25px}.statement{font-size:24px}.contact{flex-direction:column;align-items:start;padding-block:55px;gap:25px}.contact h2{max-width:330px}.contact p{margin-top:18px}.footer{flex-wrap:wrap;gap:18px;padding-top:25px;padding-bottom:115px}.footer p{order:3;width:100%;max-width:none}.footer>a:last-child{margin-left:auto}.chat-launcher{right:16px;bottom:max(16px,env(safe-area-inset-bottom));padding:15px 18px}.chat-dialog{inset:auto 8px max(8px,env(safe-area-inset-bottom)) auto;width:calc(100vw - 16px);height:calc(100dvh - 24px)}.lightbox{padding-inline:12px}.lightbox img{max-height:65dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.gallery-item:hover img,.chat-launcher:hover,.text-link:hover,button:active,.button:active{transform:none}}
.chat-loading{z-index:2;background:var(--paper);pointer-events:none}.chat-loading[hidden]{display:none}.retry{margin-top:8px;background:var(--green);color:var(--paper);border:0;padding:10px 16px}
/* Original owner-supplied artwork, shown intact without cropping or recoloring. */
.brand-logo{display:block;width:172px;flex-shrink:0;line-height:0}
.brand-logo img{width:100%;height:auto;aspect-ratio:5016/2439;object-fit:contain;mix-blend-mode:multiply}
@media(min-width:721px) and (max-width:1050px){.brand-logo{width:140px}.header{gap:16px}.header nav{gap:14px}.header-actions{gap:14px}}
@media(max-width:720px){.brand-logo{width:120px}.header-actions{gap:12px}.footer .brand-logo{width:145px}}
