/* Portfolio pages use natural scrolling and preserve each delivered composition. */
html:has(.portfolio-page){scroll-snap-type:none}
.portfolio-page main>section{min-height:0;display:block;scroll-snap-align:none;padding-block:80px}
.portfolio-page footer{scroll-snap-align:none}
.portfolio-page .project-intro{background:var(--ink);color:var(--paper);padding-top:42px;padding-bottom:72px}
.breadcrumbs{display:flex;gap:12px;font-size:.875rem;color:#b9c1d0;margin-bottom:54px}
.breadcrumbs a:hover{text-decoration:underline;text-underline-offset:4px}
.project-heading{display:grid;grid-template-columns:1.25fr 1fr;gap:64px;align-items:end}
.project-heading h1{font-size:clamp(4rem,10vw,9rem);line-height:.9;letter-spacing:-.075em;color:var(--blue)}
.project-heading .project-subtitle{font-size:clamp(1.5rem,2.4vw,2.3rem);color:var(--paper);letter-spacing:-.04em;line-height:1.2;margin-top:26px}
.project-heading p{color:#b9c1d0;margin:0;font-size:1.125rem}
.project-tags{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:30px;font-size:.875rem;color:#b9c1d0}
.project-tags span+span{border-left:1px solid #ffffff40;padding-left:24px}
.project-jumps{display:flex;gap:24px;margin-top:28px}
.project-jumps a{font-size:1rem;text-decoration:underline;text-underline-offset:7px}
.film-heading,.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:36px}
.film-heading h2,.gallery-heading h2{font-size:clamp(2.5rem,4vw,4rem)}
.film-heading p,.gallery-heading p{margin:0;max-width:430px;font-size:1rem}
.film-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.film-grid article{min-width:0}
.film-frame{background:#090a0c;border-radius:3px;overflow:hidden;position:relative;aspect-ratio:9/16}
.film-frame video{display:block;width:100%;height:100%;object-fit:contain;background:#090a0c}
.film-grid h3{font-size:1.3rem;margin-top:22px}
.film-grid p{font-size:1rem;margin-top:10px}
.film-meta{display:flex;justify-content:space-between;font-size:.875rem;color:var(--gray);margin-top:16px;border-top:1px solid #ccd0d7;padding-top:12px}
.film-error{padding:14px;background:var(--pale);font-size:1rem}.film-error[hidden]{display:none}
.portfolio-page .photo-section{background:#e9ebef}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.photo-grid a{display:block;background:var(--ink);border-radius:3px;overflow:hidden;position:relative}
.photo-grid img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;transition:opacity .25s}
.photo-grid a:hover img{opacity:.88}
.photo-grid a:after{content:'View photo';position:absolute;bottom:12px;right:12px;background:#15171ce8;color:white;border:1px solid #ffffff50;padding:6px 10px;border-radius:2px;font-size:.875rem;opacity:0;transition:opacity .2s}
.photo-grid a:hover:after,.photo-grid a:focus-visible:after{opacity:1}
.more-photos{margin-top:32px}.more-photos>summary{cursor:pointer;list-style:none;display:inline-flex;border-bottom:1px solid var(--ink);padding:8px 0;font-size:1rem;font-weight:600}
.more-photos>summary::-webkit-details-marker{display:none}.more-photos>summary:after{content:'+';margin-left:20px}.more-photos[open]>summary:after{content:'−'}.more-photos .photo-grid{margin-top:28px}
.portfolio-page .project-cta{background:var(--blue);color:white;padding-block:72px}.project-cta .section-inner{display:flex;align-items:center;justify-content:space-between;gap:32px}.project-cta h2{font-size:clamp(2rem,4vw,3.5rem);max-width:700px}.project-cta .button{background:var(--paper);color:var(--ink);margin:0;flex-shrink:0}
.photo-viewer{width:100%;max-width:none;height:100%;max-height:none;border:0;padding:24px;background:#0c0e12f5;color:white;margin:0}.photo-viewer::backdrop{background:#0c0e12}.photo-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:16px}.viewer-top,.viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.photo-viewer button{border:1px solid #ffffff60;background:transparent;color:white;padding:10px 18px;min-height:44px;cursor:pointer;border-radius:3px}.photo-viewer img{width:100%;height:100%;min-height:0;object-fit:contain}.viewer-caption{color:#d4d9e3;font-size:1rem;margin:0}.viewer-controls{display:flex;gap:12px}.viewer-counter{font-size:.875rem}
body:has(.photo-viewer[open]){overflow:hidden}
.work .section-inner.work-feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}
.work-feature h3{font-size:clamp(2rem,3vw,3rem);margin-top:32px}.work-feature .work-description{margin-top:18px}
.project-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:center;background:var(--ink);padding:18px;border-radius:3px}
.project-preview img{width:100%;height:auto;display:block}.project-preview img:nth-child(2){margin-top:56px}.project-preview:hover{outline:3px solid var(--blue);outline-offset:5px}
.work-index-intro h1{font-size:clamp(3.8rem,7vw,7rem);color:var(--ink)}
.work-index-intro>p{max-width:650px}.work-list-card{margin-top:48px;display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center}.work-list-card h2{color:var(--blue)}.work-list-card .project-tags{color:var(--gray)}.work-list-card .project-tags span+span{border-color:#b8beca}
@media(min-width:901px){.work .project-preview{max-height:calc(100svh - 190px)}.work .project-preview img{max-height:calc(100svh - 265px);object-fit:contain}}
@media(max-width:900px){.project-heading{gap:32px}.film-grid{gap:18px}.work .section-inner.work-feature,.work-list-card{gap:32px}.project-preview{gap:6px;padding:10px}.film-heading,.gallery-heading{align-items:start;flex-direction:column;gap:18px}.photo-grid{gap:14px}}
@media(max-width:720px){.portfolio-page main>section{padding-block:52px}.project-heading,.work .section-inner.work-feature,.work-list-card{grid-template-columns:1fr}.breadcrumbs{margin-bottom:40px}.project-heading h1{font-size:5rem}.film-grid{grid-template-columns:1fr;gap:42px}.film-grid article{max-width:420px;width:100%;margin-inline:auto}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-cta .section-inner{align-items:start;flex-direction:column}.photo-viewer{padding:16px}.viewer-bottom{align-items:start;flex-direction:column;gap:12px}.work-feature h3{margin-top:22px}.work-list-card{margin-top:32px}.project-tags{gap:10px 16px}.project-tags span+span{padding-left:16px}}

.links-page .project-heading h1{font-size:clamp(3rem,5.7vw,5.7rem);line-height:1.02;letter-spacing:-.06em}
.groomer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.advice-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:840px;margin-inline:auto}
.links-page .visit-films{background:var(--pale)}
.links-spaces{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px}
.links-portraits{grid-template-columns:repeat(4,minmax(0,1fr))}
.links-page .photo-grid img{aspect-ratio:auto;height:auto}
.links-work-card{border-top:1px solid #c9ced8;padding-top:64px;margin-top:64px}
.links-work-card h2{font-size:clamp(2.5rem,4.5vw,4.5rem)}
.work .section-inner.work-pair{display:block}
.work-pair .section-head{margin-bottom:28px}
.homepage-projects{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.homepage-projects h3{font-size:1.6rem;margin-top:18px}
.homepage-projects h3 a:hover{color:var(--blue)}
.homepage-projects p{font-size:1rem;margin-top:8px}
.homepage-projects .project-preview{padding:12px;height:220px;max-height:none}
.homepage-projects .project-preview img{height:190px;max-height:none;object-fit:contain;margin:0}
@media(max-width:900px){.groomer-grid,.links-portraits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.groomer-grid,.advice-grid,.homepage-projects,.links-spaces{grid-template-columns:1fr}.links-spaces{gap:16px}.links-work-card{padding-top:36px;margin-top:36px}.links-portraits{grid-template-columns:repeat(2,minmax(0,1fr))}.homepage-projects{gap:32px}.links-page .project-heading h1{font-size:clamp(2.8rem,11vw,4rem)}}


.about .section-inner.about-introduction{display:block;max-width:1180px}
.about-introduction h2{font-size:clamp(2.3rem,4vw,3.7rem);margin-bottom:32px}
.introduction-copy{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.about .introduction-copy p{font-size:1.0625rem;line-height:1.65;margin:0 0 20px}
.about .introduction-copy p:last-child{margin-bottom:0}
.project-cta p{color:white;max-width:640px;margin:20px 0 0;font-size:1.0625rem}
@media(max-width:720px){.introduction-copy{grid-template-columns:1fr;gap:20px}.about-introduction h2{margin-bottom:28px}}

/* Founder portrait: a quiet editorial frame beside the personal introduction. */
.about .section-inner.about-introduction{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:clamp(32px,5vw,72px);align-items:center;max-width:1280px}
.about-portrait{align-self:center;border-radius:4px;overflow:hidden;box-shadow:0 20px 48px #15203818;border-bottom:5px solid var(--blue)}
.about-portrait img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.about-biography{min-width:0}
.about-biography .introduction-copy{display:block}
.about-biography .introduction-copy>div+div{margin-top:20px}
.about-biography h2{font-size:clamp(2rem,3.4vw,3.3rem);margin-bottom:24px}
@media(max-width:800px){.about .section-inner.about-introduction{grid-template-columns:1fr;gap:32px}.about-portrait{width:min(100%,340px);justify-self:center}.about-biography h2{font-size:clamp(2rem,7vw,3rem)}}
