@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Italiana&display=swap');
:root{--ink:#19251f;--paper:#f7f6f2;--line:#d9dcd3;--muted:#5e675f;--gold:#bfbd96;--serif:'Italiana',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans)}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,video:focus-visible{outline:3px solid #9b8549;outline-offset:5px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05}em{font-family:Georgia,serif;font-weight:400}img{display:block;width:100%;object-fit:cover}.skip{position:fixed;top:-80px;left:20px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.header{height:100px;padding:0 5.2%;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:var(--paper);position:sticky;top:0;z-index:20}.brand{font-family:var(--serif);font-size:31px;line-height:1.1;white-space:nowrap}.brand span{display:block;font:10px/1.8 var(--sans);letter-spacing:.33em;margin-top:7px;text-align:center}.header nav{display:flex;align-items:center;gap:32px;font-size:14px}.header nav a{transition:color .2s}.header nav a:hover{color:var(--gold)}.nav-contact{border:1px solid #ffffff65;padding:10px 23px}.menu-toggle{display:none}.hero{height:min(780px,calc(100svh - 100px));min-height:610px;position:relative;overflow:hidden;background:#34382c;color:white}.hero-photo{position:absolute;width:64%;height:100%;right:0;object-position:50% 49%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#17221e 0%,#17221ef5 22%,#17221e97 45%,#17221e0d 75%),linear-gradient(0deg,#17221e7a,transparent 22%)}.hero-copy{position:relative;padding:65px 7.6% 85px;max-width:900px}.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:500;margin-bottom:27px}.hero .eyebrow{color:#dbdecf}.hero h1{font-size:clamp(66px,6.8vw,102px);letter-spacing:-.035em}.hero h1 em{font-size:.88em;color:#e3dfbf}.hero-description{margin-top:28px;font-size:16px;line-height:1.65;color:#e3e6df}.button{display:inline-flex;align-items:center;justify-content:center;padding:14px 27px;min-height:51px;font-size:14px;transition:background .2s,color .2s}.button-light{background:var(--paper);color:var(--ink);margin-top:30px}.button-light:hover{background:#dedecb}.hero-foot{position:absolute;bottom:22px;left:7.6%;right:5.2%;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.15em;color:#e5e4d9}.hero-note{font-family:Georgia,serif;font-size:16px;letter-spacing:0;font-style:italic}.section-pad{padding:100px 7.6%}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:55px}.section-heading h2,h2{font-size:clamp(45px,4.9vw,68px);letter-spacing:-.035em}.section-heading h2 em{font-size:.88em}.section-intro{max-width:345px;color:var(--muted);padding-bottom:4px;line-height:1.8}.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:23px 0 30px;gap:20px}.filters{display:flex;flex-wrap:wrap;gap:26px}.filters button{border:0;padding:7px 0;background:none;font-size:14px;color:var(--muted);border-bottom:1px solid transparent}.filters button.active{color:var(--ink);border-color:var(--ink)}#photo-count{font-size:12px;color:var(--muted);white-space:nowrap}.gallery{columns:3;column-gap:20px}.photo-card{break-inside:avoid;margin-bottom:24px;display:block;width:100%;border:0;background:none;padding:0;text-align:left;color:var(--ink)}.photo-frame{overflow:hidden;background:#e3e1d9;position:relative}.photo-frame img{height:auto;transition:transform .55s ease,filter .55s ease;aspect-ratio:4/5}.photo-card:nth-child(3n + 2) img{aspect-ratio:4/3}.photo-card:nth-child(5n) img{aspect-ratio:1}.photo-card:hover img{transform:scale(1.035);filter:brightness(.9)}.photo-overlay{position:absolute;bottom:16px;right:16px;background:#f7f6f2ed;color:var(--ink);font-size:12px;padding:5px 12px;opacity:0;transition:opacity .2s}.photo-card:hover .photo-overlay,.photo-card:focus-visible .photo-overlay{opacity:1}.photo-caption{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin-top:9px}.photo-caption .photo-index{color:var(--muted);font-size:11px}.gallery-end{text-align:center;margin-top:33px;font:italic 19px/1.5 Georgia,serif;color:var(--muted)}.services{background:var(--ink);color:var(--paper)}.services .eyebrow{color:var(--gold)}.services .section-intro{color:#c6cfc6}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30}.service-card{padding:35px 34px 42px 0;display:flex;align-items:flex-start;flex-direction:column}.service-card+.service-card{border-left:1px solid #ffffff30;padding-left:34px}.service-number{color:var(--gold);font:italic 21px Georgia,serif;margin-bottom:40px}.service-card h3{font-size:38px;margin-bottom:17px}.service-card .service-subtitle{font-size:10px;letter-spacing:.18em;color:var(--gold);margin-bottom:22px}.service-card>p:not(.service-subtitle){font-size:15px;line-height:1.85;color:#c6cfc6;margin-bottom:30px}.service-card a{font-size:13px;padding-bottom:6px;border-bottom:1px solid #c7c8b5;margin-top:auto}.service-card a:hover{color:var(--gold)}.service-footer{display:flex;justify-content:space-between;font-size:14px;padding-top:26px;color:#c6cfc6}.service-footer a{text-decoration:underline;text-underline-offset:5px}.film-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.video-shell{background:#111713;aspect-ratio:4/3;display:flex;align-items:center}.video-shell video{width:100%;height:100%;max-height:420px;object-fit:contain}.film-grid figcaption{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;font:22px var(--serif)}.film-grid figcaption span+span{font:10px var(--sans);letter-spacing:.13em;color:var(--muted)}.about{display:grid;grid-template-columns:1fr 1fr;background:#e8ebe3}.about-image{min-height:580px}.about-image img{height:100%;object-position:45% center}.about-copy{padding:75px 15% 75px 12%;align-self:center}.about-copy h2{margin-bottom:32px}.about-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:20px}.text-link{display:inline-block;border-bottom:1px solid var(--ink);padding-bottom:5px;margin-top:12px;font-size:14px}.contact{text-align:center;padding-top:110px;padding-bottom:100px}.contact h2{font-size:clamp(44px,5.7vw,78px)}.contact h2 em{font-size:.8em}.contact>p:not(.eyebrow){color:var(--muted);margin:28px 0 21px}.contact-phone{display:block;width:fit-content;margin:0 auto 22px;font:34px var(--serif)}.contact-actions{display:flex;gap:13px;justify-content:center}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:#344d40}.button-outline{border:1px solid var(--ink)}.button-outline:hover{background:#e8ebe3}.location{display:block;font-size:11px;letter-spacing:.18em;color:var(--muted);margin-top:35px}footer{border-top:1px solid var(--line);padding:35px 5.2%;display:flex;align-items:center;justify-content:space-between;gap:25px}footer p{font:italic 16px Georgia,serif;color:var(--muted)}footer>span{font-size:12px;color:var(--muted)}footer .brand{font-size:27px}dialog{border:0;padding:20px 30px;background:#111a15;color:white;width:100vw;height:100dvh;max-width:none;max-height:none;position:fixed;inset:0;margin:0}dialog::backdrop{background:#111a15}dialog[open]{display:flex;flex-direction:column}.lightbox-bar,.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.lightbox-bar{height:45px;font-size:13px;color:#d1d9d1}.lightbox-bar button,.lightbox-bottom button{color:white;background:none;border:1px solid #ffffff40;padding:9px 20px;font-size:14px}.lightbox-bar button span{margin-left:16px;font-size:20px}.lightbox-picture{flex:1;min-height:0;padding:20px 0}.lightbox-picture img{width:100%;height:100%;object-fit:contain}.lightbox-bottom{min-height:55px}.lightbox-bottom p{font-family:Georgia,serif;font-style:italic}.lightbox-bottom button:disabled{opacity:.4;cursor:default}body.modal-open{overflow:hidden}
@media(min-width:1600px){.section-pad{padding-left:max(7.6%,calc((100vw - 1400px)/2));padding-right:max(7.6%,calc((100vw - 1400px)/2))}.hero-copy{padding-left:max(7.6%,calc((100vw - 1400px)/2));max-width:none}}
@media(max-width:900px){.header{height:85px;padding:0 5%}.header nav{gap:20px}.brand{font-size:27px}.nav-contact{padding:8px 14px}html{scroll-padding-top:85px}.hero{min-height:610px;height:720px}.hero-copy{padding:65px 6%}.hero-photo{width:78%}.hero h1{font-size:78px}.hero-shade{background:linear-gradient(90deg,#17221ef5,#17221eb8 38%,#17221e26)}.section-pad{padding:75px 6%}.section-heading{gap:35px}.section-intro{max-width:290px;font-size:15px}.service-card{padding-right:22px}.service-card+.service-card{padding-left:22px}.service-card h3{font-size:31px}.about-copy{padding:55px 10%}.gallery{column-gap:15px}.hero-foot{left:6%}.hero-note{display:none}footer p{display:none}.filters{gap:18px}}
@media(max-width:640px){.header{height:80px}.brand{font-size:27px}.brand span{font-size:9px}.menu-toggle{display:flex;gap:12px;align-items:center;background:none;color:white;border:1px solid #ffffff50;padding:8px 12px;font-size:13px}.menu-icon{display:block;width:15px;height:8px;border-top:1px solid white;border-bottom:1px solid white}.header nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--ink);padding:20px 6% 28px;align-items:stretch;font-size:16px;gap:4px;border-top:1px solid #ffffff25}.header nav.open{display:flex;flex-direction:column}.header nav a{padding:12px 0}.header nav .nav-contact{padding:12px;margin-top:8px;text-align:center}html{scroll-padding-top:80px}.hero{height:680px;min-height:0;max-height:calc(100svh - 80px);min-height:580px}.hero-photo{width:100%;object-position:58% center}.hero-shade{background:linear-gradient(90deg,#17221ee0,#17221e72 75%),linear-gradient(0deg,#17221e8c,transparent 50%)}.hero-copy{padding:50px 7% 80px}.hero .eyebrow{font-size:10px;margin-bottom:25px}.hero h1{font-size:clamp(58px,14vw,77px)}.hero-description{font-size:14px;line-height:1.7;margin-top:23px}.hero .button{margin-top:26px}.hero-foot{left:7%;font-size:9px;letter-spacing:.12em;bottom:20px}.section-pad{padding:62px 6%}.section-heading{display:block;margin-bottom:32px}.eyebrow{font-size:10px;margin-bottom:20px}.section-heading h2{font-size:46px}.section-intro{max-width:none;margin-top:25px;font-size:15px}.gallery-toolbar{align-items:flex-start;gap:10px;flex-direction:column;padding-top:15px;padding-bottom:22px}.filters{gap:18px}.filters button{font-size:12px}.gallery{columns:2;column-gap:12px}.photo-card{margin-bottom:19px}.photo-caption{font-size:11px;line-height:1.5}.photo-index{display:none}.photo-overlay{display:none}.gallery-end{font-size:17px;margin-top:20px}.service-grid{grid-template-columns:1fr}.service-card,.service-card+.service-card{padding:28px 0 32px;border-left:0}.service-card+.service-card{border-top:1px solid #ffffff30}.service-number{margin-bottom:23px}.service-card h3{font-size:38px}.service-card .service-subtitle{margin-bottom:15px}.service-card>p:not(.service-subtitle){margin-bottom:20px}.service-footer{flex-direction:column;align-items:flex-start;gap:7px}.film-grid{grid-template-columns:1fr;gap:30px}.film-grid figcaption{font-size:21px}.about{grid-template-columns:1fr}.about-image{min-height:0;height:320px}.about-copy{padding:50px 7% 55px}.about-copy h2{font-size:52px}.about-copy>p:not(.eyebrow){font-size:15px}.contact{padding-top:65px;padding-bottom:65px}.contact h2{font-size:48px}.contact-phone{font-size:32px}.contact>p:not(.eyebrow){font-size:15px}footer{padding:28px 6%;gap:16px;align-items:center}footer .brand{font-size:24px}footer>span{font-size:10px;max-width:90px;text-align:right}dialog{padding:12px 15px}.lightbox-bottom{flex-wrap:wrap;gap:10px}.lightbox-bottom p{order:3;width:100%;text-align:center;font-size:14px;padding:8px 0}.lightbox-bar button,.lightbox-bottom button{padding:8px 13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
