/* Final layout and accessibility refinements. */
.asset-gallery{display:grid;gap:24px}.asset-row{display:grid;grid-template-columns:var(--asset-columns);gap:24px;align-items:start}.asset-row>.photo-button{min-width:0}.asset-row img{display:block;width:100%;height:auto;max-height:none}.asset-single{grid-template-columns:minmax(0,1fr)}.asset-portrait{max-width:520px;width:100%;margin-inline:auto}.case-films>.film:last-child:nth-child(even){grid-column:1/-1}.case-lead-film .video{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0}.case-lead-film{margin-top:30px}.case-story p:last-child{margin-bottom:0}.work-methods{list-style:none;padding:0;margin:20px 0;font-size:19px;line-height:1.65}.work-methods li{padding-left:0;margin-bottom:.35em}.work-methods li::marker{font-size:.65em;color:#777b6e}.case-next>span:last-child{gap:20px;overflow-wrap:anywhere}.case-next>span:last-child>span{flex-shrink:0}.photo-site .project-page>.detail-title{max-width:100%}
#lightbox{position:fixed;inset:0;margin:0;overflow:hidden;padding:54px 64px 46px}#lightbox img{display:block;width:100%;height:100%;object-fit:contain}#lightbox p{position:absolute;bottom:12px;left:64px;right:64px;margin:0}html:has(#lightbox[open]){overflow:hidden}.motion-toggle{display:block;margin:12px 0 0 auto;padding:7px 0;border:0;border-bottom:1px solid currentColor;background:transparent;color:#65665f;font:12px Arial,sans-serif}.motion-toggle[hidden]{display:none}
@media(max-width:850px){.about-notes{grid-template-columns:1fr 1.2fr;gap:32px}.about-notes>div:last-child{grid-column:1/-1;margin-top:0}.about-notes .casual-contact{max-width:600px}}
@media(max-width:700px){.asset-gallery,.asset-row{gap:18px}.asset-row{grid-template-columns:minmax(0,1fr)}.asset-portrait{max-width:90%}.asset-row>.photo-button{grid-column:1}.case-next{margin-top:40px}.work-methods{font-size:17px}.about-notes{grid-template-columns:1fr;gap:24px}.about-notes>div:last-child{grid-column:auto}#lightbox{padding:62px 12px 62px}#lightbox .prev,#lightbox .next{top:auto;bottom:10px;transform:none}#lightbox p{bottom:23px}.case-heading h1{word-break:normal;overflow-wrap:normal;hyphens:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cover img{transition:none}.card:hover img{transform:none}}

.domains-page .case-films .video{aspect-ratio:4/3}

/* A shared opening grid keeps titles, summaries and lead media connected. */
.collection-case{max-width:1280px;margin-inline:auto;padding-top:32px}
.case-heading{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:48px;align-items:end;margin:34px 0 22px}
.case-heading:has(>div:only-child){grid-template-columns:minmax(0,1fr)}
.case-heading h1{font-size:clamp(48px,6vw,88px);line-height:1.02;letter-spacing:-.06em;overflow-wrap:normal}
.case-intro{font-size:clamp(20px,1.7vw,25px);max-width:340px;margin:0 0 5px;line-height:1.4}
.case-meta{margin-bottom:28px;line-height:1.6}
.case-hero img{width:100%;height:auto;max-height:none;object-fit:contain}
.case-hero-portrait{max-width:680px}
.case-lead-film{margin-top:28px}
.photo-site .project-page>.detail-title{margin:32px 0}
.photo-site .project-page>.detail-media{margin-top:32px}
.photo-site .detail-media>.photo-button:first-child img{max-height:none}
@media(max-width:700px){.collection-case{padding-top:24px}.case-heading{grid-template-columns:minmax(0,1fr);gap:18px;margin:28px 0 18px}.case-heading h1{font-size:clamp(38px,10vw,58px)}.case-intro{font-size:20px;max-width:36ch;margin:0}.case-meta{margin-bottom:22px}.case-hero-portrait{max-width:100%}.photo-site .project-page{padding-top:28px}}

.case-heading .eyebrow{text-transform:uppercase}

/* Panoramic motion leads into a compact pair of website studies. */
.singularity-motion{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;margin:32px 0 0;align-items:start}
.singularity-motion>.film:first-child{grid-column:1/-1}
.singularity-motion .motion-toggle{margin-top:8px}
.singularity-motion+.case-story{padding-top:56px}
@media(max-width:700px){.singularity-motion{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:24px}.singularity-motion+.case-story{padding-top:40px}}

.singularity-films>.film{grid-column:1/-1;width:100%;justify-self:stretch}

/* Keep the Domains montage with the films, on the same media grid. */
.domains-films>.film{grid-column:auto}
.domains-films>.film:nth-child(-n+2){grid-column:1/-1}
.domains-films .domains-montage .video{aspect-ratio:2/1}
.domains-films .motion-toggle{margin-top:8px}

.domains-films>.film:last-child:nth-child(even){grid-column:auto}

/* Give the production archive a clear invitation and hierarchy. */
.archive{margin-top:72px}
.archive summary{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:32px 0}
.archive summary::-webkit-details-marker{display:none}
.archive summary span{float:none}
.archive[open] summary span{transform:none}
.archive-intro h2{font-size:clamp(28px,3vw,40px);line-height:1.1;letter-spacing:-.045em}
.archive-intro p{font-size:16px;line-height:1.5;margin:12px 0 0;color:#65665f}
.archive-toggle{border:1px solid var(--ink);border-radius:30px;padding:13px 22px;font-size:14px;white-space:nowrap;flex-shrink:0}
.archive summary:hover .archive-toggle{background:var(--ink);color:var(--paper)}
.archive-hide{display:none}.archive[open] .archive-show{display:none}.archive[open] .archive-hide{display:inline}
.archive summary:focus-visible{outline:3px solid #688400;outline-offset:6px}
@media(max-width:700px){.archive{margin-top:48px}.archive summary{align-items:flex-start;flex-direction:column;gap:22px;padding:28px 0}.archive-intro p{font-size:15px}}

/* Consistent photography spacing without viewport-dependent image boxes. */
.photo-site .detail-media img{height:auto;max-height:none;object-fit:contain}
.photo-site .project-page>.detail-media{margin:32px 0 0;gap:120px}
.photo-site .detail-end{margin-top:0;padding:48px 0}
.photo-index{row-gap:64px}
.photo-contact{padding:64px 0}
@media(max-width:700px){.photo-site .project-page>.detail-media{margin-top:28px;gap:40px}.photo-site .detail-end{padding:32px 0}.photo-index .card{margin-bottom:40px!important}.photo-index .card:last-child{margin-bottom:0!important}.photo-contact{padding:40px 0}}

.about-story img.about-portrait{aspect-ratio:4/5;object-fit:cover;object-position:center 30%}

/* Consistent monochrome arrows, including iOS. */
.link-arrow{display:inline-block;width:.85em;height:.85em;vertical-align:-.05em;flex-shrink:0;overflow:visible}

/* Centre the single-row mobile footer links against the wordmark. */
@media(max-width:700px){footer{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:12px;padding:28px 4%}footer>.logo{flex-shrink:0;line-height:1}footer>div{display:flex;align-items:center;justify-content:flex-end;width:auto;gap:12px;font-size:11px;margin-left:auto}footer>div>a{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}footer .link-arrow{vertical-align:baseline}}@media(max-width:360px){footer>.logo{font-size:26px}footer>div{gap:9px;font-size:10px}}

/* Optical alignment with the visible lowercase wordmark, not its line box. */
@media(max-width:700px){footer>div{position:relative;top:3px}}

/* Optical alignment of mobile navigation with the wordmark. */
@media(max-width:700px){header nav{position:relative;top:2px}}

/* Discourage image dragging and iOS image-save callouts. */
img,.photo-button{-webkit-touch-callout:none}img{-webkit-user-drag:none}

@media(max-width:700px){.outro .casual-contact{margin-top:4px}}

/* Align navigation arrows with the visible letterforms. */
.nav-arrow{width:1em;height:1em;vertical-align:-.1em;position:relative;top:-.04em}footer .nav-arrow{vertical-align:baseline;top:-.04em}

/* Quieter supporting lists on About. */
.about-notes>div:nth-child(-n+2)>p{font-size:17px}

/* Email actions keep the existing link styling and announce copy results. */
.copy-email{appearance:none;border:0;border-radius:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;padding:0;text-align:inherit;cursor:pointer}
.copy-email.contact{border:1px solid var(--ink);border-radius:30px;padding:12px 20px}
.casual-contact .copy-email{text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
footer>div>.copy-email{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.email-notice{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:10000;background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:4px;font:14px Arial,sans-serif;max-width:90vw;opacity:0;pointer-events:none;transition:opacity .15s}.email-notice.visible{opacity:1}

/* Prominent, non-blocking copy confirmation. */
.email-notice{bottom:max(32px,env(safe-area-inset-bottom));background:var(--accent);color:var(--ink);padding:22px 32px;border:1px solid var(--ink);border-radius:6px;font-size:clamp(22px,3vw,30px);font-weight:500;line-height:1.25;text-align:center;box-shadow:0 8px 30px #0002;width:max-content;max-width:calc(100vw - 32px)}

/* Campaign galleries share the homepage archive's invitation style. */
.campaign-expander{padding:0;border-color:var(--ink)}
.campaign-expander>summary{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:28px 0;list-style:none}
.campaign-expander>summary::-webkit-details-marker{display:none}
.campaign-expander h2{font-size:clamp(20px,2vw,26px);font-weight:400;line-height:1.1;letter-spacing:-.045em;margin:0}
.campaign-toggle{border:1px solid var(--ink);border-radius:30px;padding:13px 22px;font-size:14px;white-space:nowrap;flex-shrink:0}
.campaign-hide{display:none}.campaign-expander[open] .campaign-show{display:none}.campaign-expander[open] .campaign-hide{display:inline}
.campaign-expander>summary:hover .campaign-toggle{background:var(--ink);color:var(--paper)}
.campaign-expander>summary:focus-visible{outline:3px solid #688400;outline-offset:6px}
.campaign-expander[open]{padding-bottom:28px}
@media(max-width:700px){.campaign-expander>summary{align-items:flex-start;flex-direction:column;gap:22px;padding:28px 0}}
