/* Open, scalable editorial gallery. */
.worksMain{max-width:1200px;padding:72px 40px 88px}
.archiveHeader{align-items:start;margin-bottom:48px;gap:64px}
.archiveHeader h1{font-size:clamp(44px,5vw,64px);line-height:1.2;letter-spacing:-.05em;margin:24px 0 0}
.archiveIntro{max-width:440px;padding-top:8px}.archiveIntro>p{font-size:17px;line-height:1.9;margin:0}
.archiveTotal{display:flex;align-items:center;gap:16px;margin-top:24px;color:var(--muted);font-size:15px}
.archiveTotal strong{font-size:32px;line-height:1.4;font-weight:650;color:var(--pink);font-variant-numeric:tabular-nums}
.archiveTools{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;border-block:1px solid var(--line)}
.archiveTools .workTabs{margin:0;border:0;gap:8px;flex-shrink:0}
.archiveTools .workFilter{border:0;border-radius:6px;padding:10px 18px;min-height:48px;font-size:16px;line-height:1.5}
.archiveTools .workFilter[aria-pressed=true]{color:white;background:var(--pink);border:0}
.archiveSearch{display:flex;align-items:center;gap:12px;max-width:360px;width:100%;background:#fff;border:1px solid #a28692;border-radius:6px;padding:0 14px;min-height:48px}
.archiveSearch>span{font-size:28px;line-height:1;color:var(--muted)}
.archiveSearch input{min-width:0;width:100%;font:inherit;font-size:15px;color:var(--ink);border:0;background:transparent;min-height:46px;padding:8px 0;border-radius:0}
.archiveSearch input::placeholder{color:var(--muted);opacity:1}.archiveSearch:focus-within{outline:3px solid var(--pink);outline-offset:3px}.archiveSearch input:focus{outline:0}
.worksMain .worksCount{font-size:14px;margin:24px 0 28px;font-variant-numeric:tabular-nums}
.worksMain .portfolioGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 28px;align-items:start}
.worksMain .portfolioCard,.worksMain .portfolioCard+.portfolioCard{border:0;padding:0;margin:0;transform:none!important;transition:none;box-shadow:none}
.worksMain .portfolioMedia,.worksMain .portfolioCard[data-kind=image] .portfolioMedia{display:block;height:auto;aspect-ratio:4/5;padding:16px;width:100%;border:0;border-radius:6px;background:#faf6f8;box-shadow:none;overflow:hidden;cursor:zoom-in;position:relative;color:var(--ink)}
.worksMain .portfolioMedia>img{position:relative;inset:auto;width:100%;height:100%;object-fit:contain;background:transparent;transition:transform .3s ease}
.worksMain .portfolioCard:hover .portfolioMedia,.worksMain .portfolioCard:focus-within .portfolioMedia{box-shadow:none;border:0}
.worksMain .portfolioMedia:hover>img{transform:scale(1.025)}
.archiveOpenIcon{position:absolute;right:12px;bottom:12px;width:36px;height:36px;display:grid;place-items:center;background:white;border-radius:4px;font-size:22px;color:var(--pink);pointer-events:none}
.worksMain .gifBadge{top:12px;left:12px;font-size:14px;padding:3px 7px;line-height:1.6;border:0;border-radius:4px;background:white;color:var(--pink)}
.worksMain .portfolioCaption{padding-top:16px}.workMeta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.worksMain .workIndex{font-size:14px;letter-spacing:.07em;line-height:1.7;margin:0;color:var(--muted)}
.workKind{font-size:14px;line-height:1.7;color:var(--pink)}
.worksMain .portfolioCaption h2{font-size:20px;line-height:1.6;letter-spacing:-.02em;font-weight:650;margin:0}
.worksMain .portfolioCaption p{font-size:14px;line-height:1.8;margin:8px 0 0;overflow-wrap:anywhere}
.worksMain .worksNote{margin-top:40px;font-size:14px;max-width:760px}
.loadMoreWrap{text-align:center;margin-top:40px}.loadMoreWrap:has(button[hidden]){display:none}
.worksMain .worksEmpty{border:0;background:#faf6f8;border-radius:6px}.worksEmpty p{margin:0 0 20px}
.worksMain .worksCta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;margin-top:56px;padding-top:32px}
.worksCta h2{font-size:27px;max-width:680px;flex-basis:100%;margin:0}.worksCta p{margin:0;max-width:720px}
.archiveViewer{width:min(1080px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:0;border-radius:10px;color:var(--ink);background:#fff;overflow:auto}
.archiveViewer::backdrop{background:rgba(30,20,27,.76);backdrop-filter:blur(5px)}
.archiveViewerShell{padding:16px 24px 24px}.archiveViewerToolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.viewerPosition{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.archiveClose,.archivePrev,.archiveNext{width:44px;height:44px;border:1px solid #a28692;border-radius:6px;background:white;color:var(--ink);font:inherit;font-size:24px;line-height:1;cursor:pointer;flex-shrink:0}
.archivePrev:disabled,.archiveNext:disabled{opacity:.4;cursor:default}
.archiveViewerStage{background:#faf6f8;display:flex;align-items:center;justify-content:center;min-height:160px;border-radius:6px;overflow:hidden}
.archiveViewerStage img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 270px);object-fit:contain}
.archiveViewerStage video,.archiveViewerStage iframe{width:100%;aspect-ratio:16/9;max-height:calc(100dvh - 270px);border:0;display:block}
.archiveViewerCaption{display:grid;grid-template-columns:1fr auto;gap:8px 24px;margin-top:20px;align-items:center}.archiveViewerCaption h2{font-size:22px;margin:0;line-height:1.5;grid-column:1;overflow-wrap:anywhere}.archiveViewerCaption p{font-size:14px;line-height:1.7;color:var(--muted);margin:0;grid-column:1;overflow-wrap:anywhere}.archiveViewerControls{display:flex;gap:8px;grid-column:2;grid-row:1/3}
@media(min-width:761px) and (max-width:1040px){.worksMain .portfolioGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.archiveTools{flex-wrap:wrap}.archiveSearch{max-width:100%}}
@media(max-width:760px){.worksMain{padding:48px 24px 64px}.archiveHeader{margin-bottom:32px}.archiveHeader h1{font-size:42px;margin-top:20px}.archiveIntro{padding-top:0;max-width:none}.archiveIntro>p{font-size:16px;margin-top:24px}.archiveTotal{margin-top:20px}.archiveTools{display:block;padding:16px 0}.archiveTools .workTabs{gap:4px;margin-bottom:16px;flex-wrap:wrap}.archiveTools .workFilter{font-size:15px;padding:10px 14px}.archiveSearch{max-width:none}.worksMain .portfolioGrid{grid-template-columns:1fr;gap:36px}.worksMain .portfolioMedia,.worksMain .portfolioCard[data-kind=image] .portfolioMedia{aspect-ratio:4/5;padding:18px}.worksMain .portfolioCaption h2{font-size:21px}.worksMain .worksCount{margin:20px 0 24px}.worksMain .worksCta{display:block}.worksCta h2{font-size:26px}.worksCta p{margin:16px 0 24px}.archiveViewer{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:8px}.archiveViewerShell{padding:12px 16px 20px}.archiveViewerStage img{max-height:calc(100dvh - 285px)}.archiveViewerCaption{gap:12px;grid-template-columns:1fr}.archiveViewerCaption h2{font-size:20px}.archiveViewerControls{grid-column:1;grid-row:auto}.archiveViewerStage video,.archiveViewerStage iframe{max-height:calc(100dvh - 285px)}}
@media(prefers-reduced-motion:reduce){.worksMain .portfolioMedia>img{transition:none}.worksMain .portfolioMedia:hover>img{transform:none}}

.archiveSearch svg{width:20px;height:20px;flex-shrink:0;color:var(--muted)}
@media(min-width:761px){.worksMain .worksCta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 40px}.worksCta h2,.worksCta p{grid-column:1}.worksCta .button{grid-column:2;grid-row:1/3}}
/* Definite media bounds avoid percentage-height reflow in narrow galleries. */
.worksMain .portfolioMedia>img{position:absolute;inset:16px;width:calc(100% - 32px);height:calc(100% - 32px)}
@media(max-width:760px){.worksMain .portfolioMedia>img{inset:18px;width:calc(100% - 36px);height:calc(100% - 36px)}}
