
.top-contact{display:flex;align-items:center;justify-content:space-between;padding:11px 5%;background:#303c31;color:#f5f2ea;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;gap:15px}.top-contact a{text-decoration:none}.top-contact a:hover{text-decoration:underline}nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}header{height:95px}nav{gap:24px}.home-intro{text-align:center;max-width:880px;margin:auto;padding:55px 6% 75px}.home-intro p{margin:20px auto 28px;max-width:530px}.home-intro .eyebrow{margin-bottom:20px}.home-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:45px 0 30px;align-items:center}.home-pair img{width:100%;height:380px;object-fit:cover}.page-intro{padding:70px 7% 55px;border-bottom:1px solid var(--line)}.page-intro h1{font-size:clamp(48px,5vw,72px);margin:12px 0 20px}.page-intro p{max-width:600px;margin-bottom:0}.page-intro .eyebrow{margin-bottom:20px}.portfolio-page .story-section{padding-top:60px}.portfolio-page #portfolio{padding-top:65px}.about-page .about{background:var(--paper);padding-top:70px;padding-bottom:75px}.about-page .about img{height:550px}.contact-page .contact{padding-top:65px}.contact-page .page-intro{display:none}footer{align-items:center;gap:25px}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.hero{min-height:620px;padding-top:35px;padding-bottom:45px}.hero-image img{height:560px}@media(max-width:900px){nav{gap:15px;font-size:10px}header{padding-left:4%;padding-right:4%}}@media(max-width:760px){.top-contact{font-size:9px;letter-spacing:1px;padding:12px 6%}.top-contact span{display:none}.top-contact a:last-child{margin-left:auto}header{height:85px}nav{top:121px;gap:22px;font-size:11px}.hero-image img{height:470px}.hero{padding-bottom:30px}.home-intro{padding:45px 6% 55px}.home-pair{gap:15px;margin-top:30px}.home-pair img{height:260px}.page-intro{padding:50px 6% 35px}.about-page .about img{height:400px}.footer-links{justify-content:center}footer{align-items:start}.portfolio-page .story-section{padding-top:45px}}

.home-carousel{width:100vw;position:relative;left:50%;margin:45px 0 30px;transform:translateX(-50%)}.home-carousel-stage{display:flex;justify-content:center;gap:16px;width:100%;overflow:hidden;touch-action:pan-y;align-items:stretch}.home-slide,.home-preview{flex:0 0 min(72vw,975px);width:min(72vw,975px);height:min(48vw,650px);padding:0;border:0;background:#e6e5dc;overflow:hidden}.home-slide img,.home-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%}.home-preview{cursor:pointer}.home-carousel-controls{width:min(72vw,975px);display:flex;align-items:center;justify-content:space-between;margin:12px auto 0;gap:25px}.home-carousel-controls button{border:0;background:transparent;color:var(--ink);font-size:42px;line-height:1;padding:10px 0;min-width:60px;min-height:48px}.home-carousel-count{font-size:11px;letter-spacing:3px;font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.home-carousel{margin-top:30px}.home-carousel-stage{gap:10px}.home-slide,.home-preview{flex-basis:82vw;width:82vw;height:61.5vw}.home-carousel-controls{width:82vw}.home-carousel-controls button{font-size:36px}.home-carousel-count{font-size:10px}}

body{overflow-x:clip}
/* A shared height with natural widths keeps every photograph uncropped. */
.home-carousel{--slide-height:min(60vh,43vw,650px)}
.home-carousel-stage{height:var(--slide-height);align-items:center}
.home-slide,.home-preview{flex:0 0 auto;width:auto;height:var(--slide-height);background:transparent;overflow:visible}
.home-slide img,.home-preview img{width:auto;height:100%;max-width:none;object-fit:contain;object-position:center}
@media(max-width:760px){.home-carousel{--slide-height:min(60vh,54vw)}.home-slide,.home-preview{flex-basis:auto;width:auto;height:var(--slide-height)}}
.home-carousel-stage{position:relative;display:block}
.home-slide{position:absolute;left:50%;top:0;transform:translateX(-50%)}
.home-preview{position:absolute;top:0}
.home-preview-before{right:calc(50% + var(--active-width,374px)/2 + 16px)}
.home-preview-after{left:calc(50% + var(--active-width,374px)/2 + 16px)}
@media(max-width:760px){.home-preview-before{right:calc(50% + var(--active-width,200px)/2 + 10px)}.home-preview-after{left:calc(50% + var(--active-width,200px)/2 + 10px)}}
/* Allow native date controls to shrink inside the contact grid, including Safari. */
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.field{min-width:0}
.field input,.field select,.field textarea{min-width:0;max-width:100%;box-sizing:border-box}
.field input[type="date"]{display:block;width:100%;min-width:0;max-width:100%;min-height:49px;overflow:hidden}
.field input[type="date"]::-webkit-date-and-time-value{text-align:left;min-width:0}
@media(max-width:760px){.form-grid{grid-template-columns:minmax(0,1fr)}}

.life-collection{max-width:1280px;margin:0 auto;padding:75px 6% 50px}.life-heading{max-width:650px;margin-bottom:48px}.life-heading .eyebrow{margin-bottom:18px}.life-heading h2{font-size:clamp(38px,4.4vw,62px)}.life-layout{display:grid;grid-template-columns:.83fr 1.12fr .83fr;gap:4.5%;align-items:start}.life-card{display:block;position:relative;min-width:0}.life-engagement{margin-top:95px}.life-portrait{margin-top:165px}.life-image{background:#e7e5dc;overflow:hidden}.life-image img{display:block;width:100%;height:auto;transition:transform .45s}.life-card:hover img{transform:scale(1.025)}.life-card h3{font-size:clamp(20px,2vw,28px);margin:20px 0 12px;line-height:1.2}.life-category{font-size:9px;letter-spacing:1.8px;text-transform:uppercase;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px;gap:10px}.life-category span{font-size:16px;line-height:10px}.life-number{position:absolute;right:0;top:-29px;font:italic 19px Georgia;color:#777f6a}.life-family .life-number{left:0;right:auto}.home .home-intro{padding-top:35px}@media(max-width:760px){.life-collection{padding:45px 6% 35px}.life-heading{margin-bottom:40px}.life-layout{grid-template-columns:1fr 1fr;gap:28px 20px}.life-engagement{margin-top:65px}.life-family{margin-top:0}.life-portrait{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;margin:10px 0 0;align-items:center}.life-portrait .life-image{grid-column:2;grid-row:1/4}.life-portrait h3{grid-column:1;grid-row:1;margin-top:20px;align-self:end}.life-portrait .life-category{grid-column:1;grid-row:2;align-self:start}.life-portrait .life-number{left:0;right:auto;top:0}.life-card h3{font-size:22px}.life-category{font-size:8px;letter-spacing:1px}.life-heading h2{font-size:41px}}

/* Justified rows: original proportions with consistent gutters. */
.portfolio-page .gallery{display:flex;flex-direction:column;gap:14px;width:100%}
.photo-row{display:flex;align-items:stretch;width:100%}
.portfolio-page .photo-row .work{flex:none;display:block;min-width:0;height:100%;margin:0;padding:0;overflow:hidden}
.portfolio-page .photo-row .work img{display:block;width:100%;height:100%;max-height:none;object-fit:contain;background:transparent}
@media(max-width:600px){.portfolio-page .gallery{gap:8px}}

.about-page .about img{height:auto;max-height:none;object-fit:contain}
/* Homepage opening image runs edge to edge beneath the navigation. */
.home .hero{position:relative;isolation:isolate;display:flex;align-items:center;width:100%;min-height:clamp(580px,77svh,850px);padding:65px 7%;margin:0;overflow:hidden;color:#fff}
.home .hero .hero-image{position:absolute;inset:0;margin:0;z-index:-2}
.home .hero .hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 52%}
.home .hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,23,14,.72) 0%,rgba(12,23,14,.35) 44%,rgba(12,23,14,.05) 78%)}
.home .hero-copy{position:relative;width:52%;max-width:650px;padding:0;align-self:auto}
.home .hero h1{font-size:clamp(54px,6.4vw,94px);line-height:1.03;margin:22px 0 35px;color:#fff}
.home .hero .eyebrow{color:#fff;line-height:1.8}
.home .hero .button{border-color:#fff;color:#fff;background:rgba(16,28,17,.15)}
.home .hero .button:hover{background:rgba(255,255,255,.16)}
.home .life-collection{background:var(--paper)}
@media(max-width:760px){.home .hero{min-height:640px;min-height:78svh;padding:50px 7%;align-items:flex-end}.home .hero-copy{width:100%;max-width:520px}.home .hero h1{font-size:clamp(49px,10vw,72px);letter-spacing:-2px;margin:15px 0 27px}.home .hero .hero-image img{object-position:58% 50%}.home .hero::after{background:linear-gradient(0deg,rgba(12,23,14,.8),rgba(12,23,14,.3) 60%,rgba(12,23,14,.08))}.home .hero .eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:16px}}
/* Give the homepage collection a simple, consistent reading order on mobile. */
@media(max-width:760px){
.life-collection{padding:45px 6% 40px}
.life-heading{margin:0 auto 30px;max-width:460px}
.life-heading h2{font-size:clamp(34px,8vw,43px);line-height:1.12}
.life-heading .eyebrow{font-size:9px;line-height:1.7;letter-spacing:2px;margin-bottom:14px}
.life-layout{display:flex;flex-direction:column;gap:34px;max-width:460px;margin:0 auto}
.life-card,.life-engagement,.life-family,.life-portrait{display:block;width:100%;margin:0;grid-column:auto}
.life-card .life-image{width:100%;grid-column:auto;grid-row:auto}
.life-card .life-image img{width:100%;height:auto;transform:none}
.life-card h3,.life-portrait h3{grid-column:auto;grid-row:auto;font-size:25px;line-height:1.2;margin:16px 0 12px}
.life-card .life-category,.life-portrait .life-category{grid-column:auto;grid-row:auto;font-size:9px;letter-spacing:1.5px;line-height:1.5;padding-top:12px}
.life-card .life-number{display:none}
}

/* Isolate the native Safari date control from its intrinsic minimum width. */
.date-input-shell{display:flex;min-width:0;width:100%;max-width:100%;box-sizing:border-box;border:1px solid #b8beae;background:#f5f2ea;overflow:hidden;border-radius:0}
.field .date-input-shell input[type="date"]{-webkit-appearance:none;appearance:none;flex:1 1 0%;width:0;min-width:0;max-width:100%;height:48px;min-height:48px;border:0;margin:0;padding:12px 15px;box-sizing:border-box;display:block;font-size:16px;line-height:24px;background:transparent;color:#303c31;border-radius:0}
.date-input-shell:focus-within{outline:2px solid #a68955;outline-offset:3px}
.field .date-input-shell input[type="date"]:focus{outline:none}
.field .date-input-shell input[type="date"]::-webkit-date-and-time-value{display:block;min-width:0;min-height:24px;text-align:left;line-height:24px}

.contact .contact-email{margin:24px auto 0;font-size:15px;letter-spacing:.4px}.contact-email a{text-decoration:underline;text-underline-offset:4px}.form-status .button{margin-right:10px;margin-bottom:10px}

.kind-words{padding:75px 7% 80px;text-align:center;background:#e9e9df;border-top:1px solid var(--line)}
.kind-words .eyebrow{margin-bottom:18px;font-size:9px;letter-spacing:2px;line-height:1.7}
.kind-words h2{margin:0 0 30px;font-size:clamp(40px,4vw,58px)}
.kind-words .testimonials-empty{margin:0 auto;font:italic 18px/1.6 Georgia,serif;color:var(--muted)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;max-width:1160px;margin:40px auto 0;text-align:left}
.testimonials-grid[hidden],.testimonials-empty[hidden]{display:none}
.testimonial{margin:0;border-top:1px solid #aeb4a3;padding:25px 0 0}
.testimonial blockquote{font:23px/1.6 Georgia,serif;margin:0 0 25px}
.testimonial-name{display:block;font-size:12px;line-height:1.7}
.testimonial-session{display:block;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;margin-top:5px;color:var(--muted)}
@media(max-width:760px){.kind-words{padding:50px 7%}.testimonials-grid{grid-template-columns:minmax(0,1fr);gap:30px;margin-top:30px}.testimonial blockquote{font-size:22px}}

.testimonials-grid:has(> :only-child){grid-template-columns:1fr;max-width:800px;text-align:center}.testimonial details{text-align:left;margin-top:22px}.testimonial summary{font:12px Arial,sans-serif;text-decoration:underline;text-underline-offset:4px}.testimonial details p{max-width:none;font-size:14px;line-height:1.8}

.testimonial-photo{display:block;width:100%;height:auto;margin:0 0 24px}
.testimonials-grid:has(> :only-child){max-width:1000px}
.testimonials-grid>.testimonial.has-photo:only-child{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:0 45px;text-align:left;align-items:center;border-top:0;padding-top:0}
.testimonial.has-photo:only-child .testimonial-photo{grid-column:1;grid-row:1/4;margin:0}
.testimonial.has-photo:only-child blockquote{grid-column:2;grid-row:1;align-self:end}
.testimonial.has-photo:only-child figcaption{grid-column:2;grid-row:2}
.testimonial.has-photo:only-child details{grid-column:2;grid-row:3;align-self:start}
@media(max-width:760px){.testimonials-grid>.testimonial.has-photo:only-child{display:block;text-align:center}.testimonial.has-photo:only-child .testimonial-photo{max-width:280px;margin:0 auto 28px}.testimonial.has-photo:only-child details{text-align:left}}
/* Keep navigation available while preserving its original place at page top. */
header{position:sticky;top:0;z-index:100;background:var(--paper)}
@media(max-width:760px){header nav{top:100%;max-height:calc(100dvh - 85px);overflow-y:auto;border-bottom:1px solid var(--line)}}

.social-finale{background:var(--paper);padding:45px 0 0;border-bottom:1px solid var(--line)}
.social-finale-heading{padding:0 7% 25px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.social-finale-heading .eyebrow{margin:0;font-size:9px;line-height:1.8}
.social-finale-heading a{font:italic 20px Georgia,serif;text-underline-offset:5px}
.social-photo-strip{display:grid;grid-template-columns:1.15fr .85fr 1fr 1.15fr .85fr;gap:7px;overflow:hidden}
.social-photo-strip img{display:block;width:100%;height:260px;object-fit:cover;object-position:center 40%;transition:filter .25s}
.social-photo-strip:hover img{filter:brightness(.92)}
.social-signoff{padding:25px 7%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.social-signoff>span{font:italic 24px Georgia,serif}.social-signoff>a{font-size:11px;text-decoration:underline;text-underline-offset:5px}
@media(max-width:760px){.social-finale{padding-top:30px}.social-finale-heading{padding:0 6% 22px;align-items:start;flex-direction:column;gap:10px}.social-finale-heading a{font-size:18px}.social-photo-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.social-photo-strip img{height:145px}.social-signoff{padding:25px 6%;align-items:start;flex-direction:column;gap:14px}.social-signoff>span{font-size:22px}}
/* Evenly balanced portfolio categories. */
.portfolio-page .tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;width:100%;margin:35px 0 28px}
.portfolio-page .tabs button{width:100%;min-width:0;min-height:48px;padding:14px 10px;text-align:center;font-size:11px;letter-spacing:.8px;line-height:1.4}
@media(max-width:760px){.portfolio-page .tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:26px 0}.portfolio-page .tabs button[data-filter="all"]{grid-column:1/-1}.portfolio-page .tabs button{min-height:46px;padding:12px 8px}}
.portfolio-page #photo-count{display:none}
.portfolio-page .gallery-tools{justify-content:flex-end}

.compact-contact{padding:65px 7%}.compact-contact h2{margin:0 0 25px}.compact-contact .button{margin-top:0}@media(max-width:760px){.compact-contact{padding:50px 7%}}

.portfolio-page .gallery-tools{display:none}

.home-preview-before,.home-preview-after{transition:left .26s ease-out,right .26s ease-out}@media(prefers-reduced-motion:reduce){.home-preview-before,.home-preview-after{transition:none}}

/* Clip sliding photographs without fading their opacity. */
.story-stage{position:relative;overflow:hidden}
