@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{color-scheme:light;--ink:#161817;--paper:#f9f9f6;--muted:#5d605c;--line:#d8dbd5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}:focus-visible{outline:3px solid #9a652b;outline-offset:5px}.wrap{max-width:1440px;margin:auto;padding:0 5%}.skip{position:fixed;left:10px;top:-100px;z-index:30;background:white;padding:10px}.skip:focus{top:10px}header{border-bottom:1px solid var(--line);background:var(--paper)}.nav{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;flex-direction:column;line-height:1.2}.brand strong{font-size:23px;font-weight:500;letter-spacing:-.6px}.brand span{font-size:12px;letter-spacing:2.7px;margin-top:7px;text-transform:uppercase}.navlinks{display:flex;align-items:center;gap:34px;font-size:14px}.contact-link{border:1px solid var(--ink);padding:11px 22px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:600}.hero-top{padding:65px 0 42px;display:flex;align-items:flex-end;justify-content:space-between;gap:35px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400;line-height:1.04}h1{font-size:clamp(48px,6.5vw,94px);letter-spacing:-3px;margin-top:22px}em{font-weight:400}h1 em{display:block}.hero-aside{max-width:270px;padding-bottom:8px}.hero-aside p{color:var(--muted);font-size:15px}.text-link{display:inline-flex;align-items:center;gap:30px;border-bottom:1px solid;margin-top:22px;padding-bottom:6px;font-size:14px}.hero-photo{position:relative;height:min(62vw,640px);min-height:340px;overflow:hidden;background:#262b24}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}.photo-label{position:absolute;bottom:22px;left:25px;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:#fff;background:#1119;padding:7px 11px}.hero-foot{display:flex;justify-content:space-between;padding:18px 0 0;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}.portfolio{padding-top:112px;padding-bottom:100px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:38px}h2{font-size:clamp(40px,4.5vw,65px);letter-spacing:-1.7px;margin-top:16px}.section-head>p{max-width:300px;color:var(--muted);font-size:15px}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 22px}.photo{margin:0}.photo button{display:block;width:100%;padding:0;border:0;background:#e2e4de;cursor:zoom-in;overflow:hidden}.photo img{width:100%;height:390px;object-fit:cover;display:block;transition:transform .45s}.photo button:hover img{transform:scale(1.035)}.photo figcaption{display:flex;justify-content:space-between;gap:10px;padding-top:13px;font-size:14px}.photo figcaption span{color:var(--muted);font-size:12px}.film{background:#171c19;color:white;padding:78px 0 85px}.film .section-head>p{color:#bfc7c0}.film-list{display:grid;grid-template-columns:1fr 1fr;gap:30px}.film-card{padding:27px 0 18px;border-top:1px solid #636b64;display:flex;align-items:center;gap:25px}.play{height:55px;width:55px;flex:none;display:grid;place-items:center;border:1px solid #7e8b80;border-radius:50%;font-size:19px}.film-card h3{font-size:29px;line-height:1.25}.film-card p{font-size:13px;color:#bfc7c0;margin-top:8px}.film-card:hover .play{background:white;color:#171c19}.about{padding:100px 0;display:grid;grid-template-columns:1fr 1fr;gap:12%;border-bottom:1px solid var(--line)}.about-copy{padding-top:28px}.about-copy p{font-size:18px;color:var(--muted)}.about-copy p+p{font-size:15px;margin-top:20px}.services{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;border-top:1px solid var(--line);padding-top:24px;margin-top:28px;line-height:2}.contact{padding:95px 0 100px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.contact h2{font-size:clamp(43px,5.5vw,80px)}.contact p{margin-top:25px;max-width:390px;color:var(--muted)}.contact-actions{display:flex;flex-direction:column;gap:18px;align-items:flex-start;overflow-wrap:anywhere}.button{display:inline-flex;align-items:center;gap:45px;padding:17px 26px;background:var(--ink);color:#fff;font-size:14px}.contact-actions>a:not(.button){font-size:14px;border-bottom:1px solid var(--line)}footer{border-top:1px solid var(--line);padding:25px 0}footer .wrap{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}dialog{border:0;padding:0;background:#111;color:#fff;max-width:94vw;max-height:94dvh;width:1100px}dialog::backdrop{background:#000d}dialog .lightbox-top{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;font-size:14px}dialog img{display:block;width:100%;height:78dvh;object-fit:contain}dialog button{background:none;color:white;border:1px solid #888;padding:7px 13px;cursor:pointer}.menu-button{display:none}
@media(min-width:1100px){.photo:nth-child(3n+2){padding-top:48px}.photo:nth-child(3n+2) img{height:430px}}
@media(max-width:800px){.nav{min-height:85px}.navlinks{gap:18px}.navlinks .contact-link{display:none}.hero-top{padding-top:40px;align-items:start}.hero-aside{max-width:210px;padding-top:40px}h1{letter-spacing:-2px}.hero-photo{height:55vw;min-height:350px}.gallery{grid-template-columns:1fr 1fr}.photo img{height:340px}.portfolio{padding-top:75px;padding-bottom:65px}.section-head{align-items:start}.film-card h3{font-size:24px}.about{gap:8%}.contact{align-items:start;flex-direction:column}.contact-actions{margin-top:15px}}
@media(max-width:540px){.wrap{padding:0 6%}.brand strong{font-size:21px}.brand span{font-size:10px;letter-spacing:2px}.navlinks{gap:18px;font-size:13px}.navlinks a[href='#about']{display:none}.hero-top{display:block;padding-bottom:28px}h1{font-size:52px}.hero-aside{max-width:100%;padding-top:25px;display:flex;align-items:center;gap:20px}.hero-aside p{font-size:14px;max-width:210px}.hero-aside .text-link{margin-top:0;flex:none;gap:10px}.hero-photo{height:440px;min-height:0}.hero-foot{font-size:10px;gap:20px}.section-head{display:block}.section-head>p{margin-top:22px}.gallery{gap:28px 13px}.photo img{height:250px}.photo figcaption{display:block;font-size:13px}.photo figcaption span{display:block;margin-top:2px;font-size:11px}.film{padding:55px 0}.film-list{grid-template-columns:1fr;gap:15px}.about{padding:65px 0;grid-template-columns:1fr;gap:15px}.about-copy{padding-top:15px}.contact{padding:65px 0}.contact h2{font-size:52px}footer .wrap{gap:20px;align-items:flex-start}dialog img{height:65dvh}h2{font-size:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Preserve the composition of portrait engagement photographs. */
.photo.engagement img{height:auto;aspect-ratio:4/5;object-fit:cover}
.film-list:has(> :only-child){grid-template-columns:1fr}

/* Portfolio collections */
.category-nav{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 48px;padding:0 0 28px;border-bottom:1px solid var(--line)}
.category-nav a{border:1px solid var(--line);padding:10px 17px;font-size:14px;line-height:1.4;transition:background .2s,color .2s}
.category-nav a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.photo-category+.photo-category{margin-top:72px;padding-top:38px;border-top:1px solid var(--line)}
.category-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:25px}
.category-heading h3{font-size:clamp(30px,3.2vw,44px);line-height:1.15;letter-spacing:-.6px}
.category-heading>span{font-size:13px;color:var(--muted);white-space:nowrap}
@media(max-width:540px){.category-nav{gap:8px;margin-bottom:35px}.category-nav a{padding:9px 12px}.photo-category+.photo-category{margin-top:45px;padding-top:28px}.category-heading{align-items:center;gap:12px}.category-heading h3{font-size:30px}.category-heading>span{font-size:12px}.photo-category .gallery:has(> :only-child){grid-template-columns:minmax(0,1fr)}.photo-category .gallery:has(> :only-child) img{height:auto;max-height:440px;object-fit:contain}}

/* Show complete sports compositions at their original proportions. */
#gallery-sports .photo img{height:auto;max-height:none;object-fit:contain}

/* Balanced rows for the four-photo collections. */
#gallery-sports .gallery,#gallery-church .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
#gallery-sports .photo,#gallery-church .photo{padding-top:0}
#gallery-church .photo img{height:390px}
#gallery-church img[src$="church-prayer.webp"]{object-position:center 42%}
@media(max-width:540px){#gallery-church .photo img{height:250px}}

/* A quieter frame for the photographs, with booking always within reach. */
[hidden]{display:none!important}
header{position:sticky;top:0;z-index:20;background:rgba(249,249,246,.97)}
.nav{min-height:82px;gap:20px}
.navlinks .contact-link{display:inline-flex;background:var(--ink);color:white}
.hero-top{padding:32px 0 26px}
h1{font-size:clamp(44px,5.3vw,76px);margin-top:12px;letter-spacing:-2px;line-height:1.08}
.hero-aside p,.section-head>p,.about-copy p+p{font-size:16px}
.hero-photo{height:min(48vw,550px);min-height:300px}
.hero-foot{font-size:12px;gap:20px}
.portfolio{padding-top:72px;padding-bottom:76px}
.category-nav{margin-bottom:28px;padding-bottom:20px}
.category-nav a{min-height:44px;display:inline-flex;align-items:center}
.category-nav [aria-selected='true']{background:var(--ink);color:white;border-color:var(--ink)}
.photo-category+.photo-category{margin-top:0;padding-top:0;border:0}
.photo-category .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}
.photo-category .photo{padding-top:0}
.photo-category .photo img,#gallery-sports .photo img,#gallery-church .photo img{height:auto;max-height:none;aspect-ratio:4/3;object-fit:contain;background:#eeefea}
.photo-category .gallery:has(> :only-child){grid-template-columns:minmax(0,620px);justify-content:center}
.photo-category .gallery:has(> :only-child) img{aspect-ratio:1;max-height:none}
.photo figcaption{font-size:14px}
.photo figcaption span{font-size:12px}
.photo button:hover img{transform:none}
.photo button:hover{box-shadow:0 0 0 2px var(--ink)}
.film-player{aspect-ratio:16/9;max-width:1040px;margin:auto;background:#0b0e0c}
.film-player iframe{width:100%;height:100%;border:0;display:block}
.film-list{max-width:1040px;margin:18px auto 0}
.film-card{padding:16px 0;border-top:0}
.film-card p{font-size:14px}
.about{padding:76px 0}
.services{font-size:13px}
.contact{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:7%;padding:76px 0}
.contact h2{font-size:clamp(40px,4.5vw,64px)}
.contact-panel{min-width:0}
#inquiry-form{display:grid;gap:18px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
#inquiry-form label{display:grid;gap:7px;font-size:14px;font-weight:500}
#inquiry-form label span{font-weight:400;color:var(--muted)}
input,select,textarea{font:inherit;font-size:16px;min-width:0;width:100%;border:1px solid #aeb4aa;border-radius:0;padding:12px;background:#fff;color:var(--ink)}
textarea{resize:vertical}
#inquiry-form .button{cursor:pointer;border:0;justify-content:space-between;font-size:16px}
.contact .form-note{font-size:14px;line-height:1.5;margin:0;max-width:none;color:var(--muted)}
#inquiry-status{font-size:14px;margin:0;max-width:none}
#inquiry-status:empty{display:none}
#inquiry-fallback{display:grid;gap:12px}
#copy-inquiry{padding:10px 16px;border:1px solid var(--ink);background:transparent;cursor:pointer;justify-self:start}
.contact-actions{margin-top:24px;gap:12px}
.lightbox-top{gap:16px}
.lightbox-stage{position:relative}
dialog img{height:min(73dvh,820px)}
.photo-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;padding:0;background:#111c;border-color:#fff9;font-size:24px}
.photo-arrow.previous{left:12px}.photo-arrow.next{right:12px}
#photo-position{padding:10px;text-align:center;font-size:14px}
.mobile-booking{display:none}
@media(max-width:800px){
 .navlinks{gap:18px}.navlinks a[href='#about']{display:none}
 .hero-top{gap:24px}.hero-aside{padding-top:15px}
 .contact{grid-template-columns:1fr;gap:30px}
 .contact>div>p{max-width:550px}
}
@media(max-width:540px){
 html{scroll-padding-top:110px}
 .nav{min-height:82px;gap:16px}.brand strong{font-size:20px}.brand span{font-size:12px;letter-spacing:1px}
 .navlinks{gap:16px;font-size:14px}.navlinks .contact-link{display:none}
 .mobile-booking{display:flex;justify-content:space-between;position:fixed;bottom:0;left:0;right:0;z-index:21;background:var(--ink);color:white;padding:16px 6% calc(16px + env(safe-area-inset-bottom));font-size:16px;border-top:1px solid #454a46}
 body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
 .hero-top{padding:24px 0 22px}.eyebrow{font-size:12px;letter-spacing:1px}
 h1{font-size:clamp(40px,10vw,52px);letter-spacing:-1.4px}
 .hero-aside{padding-top:18px;display:block}.hero-aside p{display:none}.hero-aside .text-link{font-size:14px;gap:20px}
 .hero-photo{height:340px;min-height:0}.photo-label{left:14px;bottom:14px;font-size:12px;letter-spacing:.5px}
 .hero-foot{font-size:12px}.hero-foot span+span{display:none}
 .portfolio{padding-top:48px;padding-bottom:48px}.section-head{margin-bottom:26px}h2{font-size:38px}
 .category-nav{gap:8px}.category-nav a{font-size:14px;padding:10px 12px}
 .category-heading h3{font-size:28px}
 .photo-category .gallery{gap:24px 12px}
 .photo-category .photo img,#gallery-sports .photo img,#gallery-church .photo img{aspect-ratio:4/5}
 .photo figcaption{font-size:14px}
 .about{padding:48px 0}.contact{padding:48px 0}.contact h2{font-size:40px}
 .form-grid{grid-template-columns:1fr}
 dialog img{height:64dvh}.photo-arrow{width:44px;height:44px}.photo-arrow.previous{left:5px}.photo-arrow.next{right:5px}
 dialog .lightbox-top{font-size:13px;padding:12px}.lightbox-top button{flex-shrink:0}
}
