/* Supplied portfolio artwork keeps its original aspect ratio and all lettering. */
.slot-photo{width:100%;height:100%;object-fit:cover;object-position:center}
.process-snapshot .slot-photo{object-position:45% 45%}
.supplied-visual{background:#eae9e4;overflow:hidden;height:320px;border-radius:4px;display:flex;justify-content:center}
.supplied-visual img{height:100%;width:100%;object-fit:contain;display:block}
.business-visual.supplied-visual{background:#172520}
.portfolio-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:42px}
.portfolio-heading h3{font-size:48px}
.portfolio-heading p{font-size:14px;max-width:390px;color:var(--muted)}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px 30px}
.portfolio-project{min-width:0}
.project-open{padding:0;border:0;background:none;color:inherit;text-align:left;display:block;width:100%}
.project-cover{display:flex;width:100%;aspect-ratio:4/5;background:#e9e7df;overflow:hidden;align-items:center;justify-content:center}
.project-cover img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .25s ease}
.project-open:hover .project-cover img{transform:scale(1.025)}
.project-caption{display:block;padding-top:20px}
.project-name{display:block;font:32px/1.1 var(--display)}
.project-description{display:block;font-size:13px;line-height:1.5;margin-top:9px;color:var(--muted)}
.project-count{display:block;font-size:12px;margin-top:17px;text-decoration:underline;text-underline-offset:5px}
body.project-viewing{overflow:hidden}
#project-dialog{width:min(1100px,calc(100% - 40px));height:calc(100dvh - 40px);max-height:100%;max-width:none;background:#151515;color:#f4f4f4;border:1px solid #484843;padding:24px;overflow:hidden}
#project-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px}
#project-dialog::backdrop{background:#000d}
.project-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:20px}
.project-dialog-header h2{font-size:34px;letter-spacing:-.02em}
.project-dialog-close,#project-prev,#project-next{background:none;color:inherit;border:0;padding:10px 4px;min-height:44px;font-size:14px}
.project-dialog-stage{min-height:0;display:flex;align-items:center;justify-content:center;background:#20201e}
#project-dialog-image{display:block;width:100%;height:100%;object-fit:contain}
.project-dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px}
#project-prev:disabled,#project-next:disabled{opacity:.3;cursor:default}
@media(prefers-reduced-motion:reduce){.project-cover img{transition:none}}
@media(max-width:1000px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 25px}.portfolio-heading h3{font-size:40px}.supplied-visual{height:300px}}
@media(max-width:700px){.portfolio-heading{display:block;margin-bottom:30px}.portfolio-heading h3{font-size:40px;margin-bottom:20px}.portfolio-heading p{font-size:13px}.portfolio-grid{grid-template-columns:1fr;gap:38px}.project-cover{aspect-ratio:4/5}.project-name{font-size:32px}.supplied-visual{height:320px}.project-caption{padding-top:16px}#project-dialog{width:calc(100% - 20px);height:calc(100dvh - 20px);padding:14px}#project-dialog[open]{gap:12px}.project-dialog-header h2{font-size:27px}.project-dialog-close{font-size:12px;white-space:nowrap}.project-dialog-footer{gap:10px;font-size:12px}}

/* Client portraits and confirmed project stories. */
.hero-portrait .slot-photo{width:100%;height:100%;object-fit:cover;object-position:50% 24%}
.id-photo .slot-photo{object-fit:cover;object-position:50% 23%}
.memory-photo .slot-photo{object-position:62% 30%}
.personal-photo .slot-photo{object-position:50% 25%}
.contact-collage .slot-photo{object-position:50% 25%}
.work-portrait{background:#e5e2da}
.work-portrait img{object-fit:cover;object-position:50% 35%}
.case-summary{padding-top:22px;margin-top:23px;border-top:1px solid #57574f}
.case-role{font-size:12px;color:var(--muted);line-height:1.5}
.case-result{font:34px/1.05 var(--display);letter-spacing:-.025em;margin-top:13px}
.case-story{font-size:14px;line-height:1.6;margin-top:16px}
.case-source{font-size:12px;color:var(--muted);margin-top:35px}
@media(max-width:700px){.case-result{font-size:34px}.case-story{font-size:14px}.case-summary{margin-top:20px;padding-top:18px}.work-portrait{height:330px}.work-portrait img{object-position:60% 35%}}

/* The final two-page checklist closes the desktop gallery as one full-width spread. */
.portfolio-project:last-child{grid-column:1/-1}
.portfolio-project:last-child .project-open{display:grid;grid-template-columns:2fr 1fr;gap:35px;align-items:center}
.portfolio-project:last-child .project-cover{aspect-ratio:2/1;gap:20px;background:transparent}
.portfolio-project:last-child .project-cover img{width:calc(50% - 10px);background:#e9e7df}
@media(max-width:700px){.portfolio-project:last-child .project-open{display:block}.portfolio-project:last-child .project-cover{aspect-ratio:4/5}.portfolio-project:last-child .project-cover img{width:100%}.portfolio-project:last-child .checklist-second{display:none}}

footer .site-credit{font:12px/1.5 var(--body);color:var(--muted);white-space:nowrap;text-underline-offset:4px}
footer .site-credit:hover{color:var(--white);text-decoration:underline}
@media(max-width:700px){footer .site-credit{grid-column:1/-1;grid-row:3;justify-self:start;font-size:11px}}

@media(max-width:700px){footer>span:nth-of-type(2){grid-column:2;grid-row:2}}
