/* Projects, supplied photographs and the two portrait views. */
.portrait-switch{position:relative;display:block;padding:0;text-align:left;border-radius:0;cursor:pointer;isolation:isolate}
.portrait-switch img{position:absolute;inset:0;transition:opacity .65s ease;pointer-events:none}
.portrait-switch .portrait-primary{opacity:1}
.portrait-switch .portrait-swimming{opacity:0;object-position:50% 40%}
.portrait-switch[aria-pressed="true"] .portrait-primary{opacity:0}
.portrait-switch[aria-pressed="true"] .portrait-swimming{opacity:1}
.portrait-caption{position:absolute;inset:auto 0 0;z-index:2;display:flex;flex-direction:column;gap:5px;padding:45px 22px 19px;background:linear-gradient(transparent,rgba(0,0,0,.74));color:#fff;pointer-events:none}
.portrait-caption-primary,.portrait-caption-swimming{font-size:.875rem;font-weight:500;line-height:1.5}
.portrait-caption-swimming{display:none}
.portrait-switch[aria-pressed="true"] .portrait-caption-primary{display:none}
.portrait-switch[aria-pressed="true"] .portrait-caption-swimming{display:block}
.portrait-hint{font-family:var(--mono);font-size:.6875rem;line-height:1.6;color:#dfdfd8}
.project-collection{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:42px;row-gap:62px}
.project-collection>.project-featured{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:50px}
.project-featured .project-caption{margin-top:0}
.project-featured .project-caption h3{font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.12}
.project-photo{height:auto;aspect-ratio:3/2;padding:0;display:block;background:var(--surface)}
.project-photo>img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.project-photo:hover>img{transform:scale(1.025)}
.project-photo-arrow{position:absolute;right:19px;bottom:15px;font-size:23px;color:#fff;text-shadow:0 1px 12px #000}
.project-secondary .project-image{height:auto;aspect-ratio:3/2}
.project-secondary .torque-art>img{width:46%;height:auto;aspect-ratio:1}
.case-category{margin-bottom:20px}
.campaign-page .case-title-grid h1,.photography-page .case-title-grid h1{font-size:clamp(2.6rem,4.8vw,4.7rem);line-height:1.1}
.project-feature-photo{margin:0 0 28px}
.project-feature-photo>figcaption,.gallery-item>figcaption{font-size:.8125rem;line-height:1.6;color:var(--muted);padding-top:12px}
.gallery-open{position:relative;display:block;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.gallery-open img{display:block;width:100%;height:auto;transition:filter .2s}
.gallery-open:hover img{filter:brightness(1.04)}
.gallery-open:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.gallery-zoom{position:absolute;right:17px;bottom:15px;display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff80;background:#0005;color:#fff;border-radius:50%;font-size:21px;line-height:1;pointer-events:none}
.photo-gallery{padding-top:30px;padding-bottom:80px}
.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:38px;margin-bottom:36px}
.gallery-heading h2{font-size:clamp(2rem,3.2vw,3rem)}
.gallery-heading>p{font-size:.9375rem;max-width:400px}
.gallery-grid{columns:2;column-gap:28px}
.gallery-item{break-inside:avoid;margin:0 0 27px}
.campaign-video{padding-top:0;align-items:start}
.campaign-video[hidden]{display:none}
.campaign-video-copy>p{margin-top:24px;max-width:380px}
.campaign-video-player{width:100%;max-width:460px;min-width:0}
.instagram-frame{display:block;width:100%;height:auto;aspect-ratio:9/20;border:1px solid var(--line);border-radius:4px;background:#fff;color-scheme:light}
.campaign-video-link{margin-top:20px;gap:10px}
.campaign-video-local .campaign-video-player{max-width:none}
.campaign-video-local video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#000;border:1px solid var(--line);border-radius:4px}
.photo-lightbox{width:calc(100vw - 48px);max-width:1440px;max-height:calc(100dvh - 40px);padding:17px;background:#0b0d0e;color:var(--ink);border:1px solid #4b5650;border-radius:4px;overflow:auto}
.photo-lightbox::backdrop{background:rgba(0,0,0,.88)}
.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}
.lightbox-counter{font-family:var(--mono);font-size:.75rem;color:var(--muted)}
.lightbox-close,.lightbox-control{border:1px solid #465047;border-radius:3px;background:transparent;color:var(--ink);font-size:.875rem;padding:8px 14px;min-height:40px}
.lightbox-close:hover,.lightbox-control:hover{border-color:var(--accent);color:var(--accent)}
.lightbox-image{display:block;width:100%;height:auto;max-height:calc(100dvh - 210px);object-fit:contain;background:#080a0a}
.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:15px}
.lightbox-caption{font-size:.875rem;line-height:1.6;max-width:750px}
.lightbox-controls{display:flex;gap:10px;flex-shrink:0}
@media(max-width:1000px){.project-collection{column-gap:28px;row-gap:45px}.project-collection>.project-featured{gap:32px}.project-image-top,.project-art-bottom{font-size:.6875rem}.gallery-heading{align-items:flex-start;flex-direction:column;gap:20px}.gallery-heading>p{max-width:650px}}
@media(max-width:800px){.project-collection>.project-featured{grid-template-columns:1fr;gap:25px}.project-featured .project-caption h3{font-size:2rem}.project-collection{column-gap:24px}.project-secondary .project-art-bottom>span:last-child{display:none}.project-secondary .project-image-top{align-items:flex-start;flex-wrap:wrap}.project-secondary .project-state{font-size:.6875rem}.project-secondary .project-image-top>span:first-child{max-width:100%}.project-secondary .project-image{padding:16px}.project-secondary .project-photo{padding:0}.campaign-page .case-title-grid h1,.photography-page .case-title-grid h1{font-size:3.1rem}}
@media(max-width:650px){.portrait-caption{padding:40px 18px 17px}.portrait-caption-primary,.portrait-caption-swimming{font-size:.8125rem}.portrait-hint{font-size:.6875rem}.project-collection{grid-template-columns:1fr;row-gap:42px}.project-collection>.project-featured{grid-column:auto;gap:22px}.project-featured .project-caption h3{font-size:1.8rem}.project-secondary .project-image{height:auto;aspect-ratio:3/2}.project-secondary .torque-art{aspect-ratio:1.2}.project-secondary .project-art-bottom>span:last-child{display:block}.project-secondary .project-image-top,.project-secondary .project-art-bottom{font-size:.75rem}.project-secondary .project-state{font-size:.75rem}.campaign-page .case-title-grid h1,.photography-page .case-title-grid h1{font-size:2.65rem}.gallery-grid{columns:1}.gallery-heading{gap:18px;margin-bottom:28px}.gallery-heading h2{font-size:2.2rem}.photo-gallery{padding-top:10px;padding-bottom:50px}.project-feature-photo{margin-bottom:24px}.gallery-zoom{width:32px;height:32px;font-size:19px;right:12px;bottom:12px}.photo-lightbox{width:calc(100vw - 20px);padding:12px;max-height:calc(100dvh - 20px)}.lightbox-image{max-height:calc(100dvh - 240px)}.lightbox-bottom{align-items:flex-start;flex-direction:column;gap:14px}.lightbox-close,.lightbox-control{font-size:.8125rem;padding:7px 11px}.lightbox-controls{align-self:flex-end}.lightbox-caption{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){.portrait-switch img,.project-photo>img,.gallery-open img{transition:none}.project-photo:hover>img{transform:none}}
@media(max-width:400px){.lightbox-controls{width:100%;gap:8px}.lightbox-control{flex:1;min-width:0;font-size:.75rem;padding:6px 8px;white-space:normal;line-height:1.6}}
@media print{.portrait-switch{display:none}.project-collection{display:block}.project{margin-bottom:25px;break-inside:avoid}.photo-lightbox,.gallery-zoom,.project-photo-arrow,.instagram-frame{display:none}.gallery-grid{columns:2}.photo-gallery{padding-top:10px;padding-bottom:20px}.gallery-heading{margin-bottom:20px}.gallery-item{break-inside:avoid}.project-feature-photo{break-inside:avoid}}
