/* Source v3.4 owns the canvas and section header. Photography owns the gallery. */
.works__demo { color:var(--ink-2); font-size:13px; line-height:1.5; margin:0 0 20px; }
.works__toolbar { align-items:flex-start; padding-bottom:0; gap:16px 32px; margin-bottom:16px; }
.works .filters { gap:0 24px; flex-wrap:wrap; }
.works .filters button { position:relative; min-height:48px; padding:0 0 13px; border:0; border-bottom:2px solid transparent; border-radius:0; background:none; color:var(--ink-2); font-size:14px; gap:6px; }
.works .filters button:hover { color:var(--ink); }
.works .filters button.is-active,.works .filters button[aria-pressed="true"] { background:none; color:var(--ink); border-color:var(--ink); }
.works .filters button .filters__count,.works .filters button[aria-pressed="true"] .filters__count { color:var(--ink-2); font-family:var(--font); font-size:10px; align-self:flex-start; margin-top:12px; }
.works .sort { min-height:48px; }
.wall-status { font-size:12px; color:var(--ink-2); margin-bottom:24px; font-variant-numeric:tabular-nums; }
.works .project-grid { display:flex; flex-direction:column; gap:44px; scroll-margin-top:100px; }
.wall-row { display:grid; gap:20px; align-items:start; width:100%; }
.works .project-card:nth-child(n) { display:block; grid-column:auto; width:100%; min-width:0; }
.works .project-card:nth-child(n) .project-card-media { display:block; width:100%; border-radius:2px; background:var(--wall-photo-bg,var(--linen)); }
.works .project-card-media img { display:block; width:100%; height:100%; object-fit:contain; transform:none; transition:filter .2s ease; }
.works .project-card:hover .project-card-media img { transform:none; filter:brightness(.96); }
.works .project-card-badge { top:auto; bottom:12px; left:12px; padding:7px 9px; background:rgba(25,25,24,.82); color:#fff; font-family:var(--font); font-size:11px; font-weight:400; line-height:1.2; letter-spacing:0; text-transform:none; backdrop-filter:none; }
.works .project-card-copy { display:flex; flex-direction:column; padding-top:15px; }
.works .project-card-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; font-family:var(--font); font-size:12px; letter-spacing:0; white-space:normal; row-gap:2px; }
.works .project-card-price strong { white-space:nowrap; font-size:clamp(20px,1.7vw,26px); font-weight:500; }
.works .project-card-title { margin-top:7px; font-size:16px; line-height:1.35; font-weight:400; text-wrap:pretty; }
.works .project-card-meta { margin-top:6px; font-size:12px; line-height:1.4; }
.works .project-card-copy::after,.works .project-card::after { content:none; }
.works .project-grid.is-compact { gap:30px; }
.is-compact .wall-row { gap:16px; }
.works .is-compact .project-card-copy { padding-top:12px; }
.works .is-compact .project-card-price strong { font-size:20px; }
.works .is-compact .project-card-title { font-size:14px; }
.works .is-compact .project-card-meta { font-size:11px; }
.works .is-compact .project-card-badge { bottom:8px; left:8px; padding:5px 7px; font-size:10px; }
.project-dialog { width:min(1240px,calc(100vw - 40px)); max-width:none; padding:0; overflow:hidden; background:var(--ivory); }
.project-dialog::before { content:none; }
.project-dialog-content { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); height:min(820px,calc(100dvh - 40px)); max-height:calc(100dvh - 40px); }
.project-dialog .dialog-close { z-index:5; width:44px; height:44px; background:var(--ivory); top:12px; right:12px; }
.case-gallery { min-width:0; min-height:0; display:flex; flex-direction:column; padding:24px; background:var(--stage-bg,#e9e5dd); color:var(--stage-ink,var(--ink)); }
.case-stage { flex:1; min-height:0; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.case-stage img,.case-stage video { width:100%; height:100%; min-height:0; max-height:100%; object-fit:contain; }
.case-media-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; font-size:12px; font-variant-numeric:tabular-nums; }
.case-media-controls button { width:44px; height:44px; border:1px solid var(--stage-line,var(--line-2)); background:none; color:var(--stage-ink,var(--ink)); font-size:22px; }
.case-thumbnails { display:flex; gap:8px; flex:none; overflow-x:auto; padding:6px 2px 4px; margin-top:6px; }
.case-thumbnails button { position:relative; flex:0 0 58px; width:58px; height:66px; border:2px solid transparent; padding:2px; background:none; opacity:.65; }
.case-thumbnails button[aria-pressed="true"] { border-color:var(--stage-ink,var(--ink)); opacity:1; }
.case-thumbnails img { width:100%; height:100%; object-fit:cover; }
.case-thumbnails span { position:absolute; inset:0; display:grid; place-items:center; color:white; text-shadow:0 1px 5px #000; background:#0003; font-size:18px; }
.project-dialog .project-dialog-copy { overflow-y:auto; padding:70px 32px 32px; }
.project-dialog-copy h2 { font-size:clamp(24px,2.5vw,36px); line-height:1.15; }
.project-dialog .dialog-price { margin-top:22px; font-size:28px; }
.project-dialog .dialog-price span { font-size:13px; font-weight:400; }
.project-dialog .dialog-data { margin-top:24px; }
.project-dialog .dialog-data div { grid-template-columns:1fr; gap:5px; }
.project-dialog .dialog-demo-note { font-size:12px; line-height:1.5; }
@media(max-width:1024px) {
 .works .filters { gap:0 20px; }
 .works__toolbar { flex-direction:column; gap:4px; }
 .wall-row { gap:14px; }
 .works .project-card-title { font-size:14px; }
 .works .project-card-price strong { font-size:21px; }
 .project-dialog-content { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}
@media(max-width:1100px) {
 .works .project-card-price strong,.works .is-compact .project-card-price strong { font-size:18px; }
 .works .project-card-price { font-size:10px; gap:5px; }
}
@media(max-width:767px) {
 .works .filters { flex-wrap:nowrap; overflow-x:auto; width:100%; padding:0; margin:0; gap:22px; scrollbar-width:thin; }
 .works .filters button { flex:none; min-height:48px; }
 .works .sort { min-height:44px; align-self:flex-end; }
 .works__demo { font-size:12px; }
 .works .project-grid { gap:28px; scroll-margin-top:82px; }
 .wall-row,.is-compact .wall-row { gap:12px; }
 .works .project-card-badge { bottom:8px; left:8px; padding:5px 7px; font-size:10px; }
 .works .project-card-price,.works .is-compact .project-card-price { font-size:10px; gap:5px; }
 .works .project-card-price strong,.works .is-compact .project-card-price strong { font-size:18px; }
 .works .project-card-title,.works .is-compact .project-card-title { font-size:13px; }
 .works .project-card-meta { font-size:11px; }
 .works .project-card-copy { padding-top:10px; }
 .works .project-grid.is-compact { gap:26px; }
 .project-dialog { width:100%; height:100dvh; max-height:100dvh; margin:0; }
 .project-dialog-content { display:block; height:100dvh; max-height:100dvh; overflow-y:auto; }
 .case-gallery { height:70dvh; min-height:400px; padding:58px 16px 12px; }
 .project-dialog .project-dialog-copy { padding:26px 20px 40px; overflow:visible; }
 .case-thumbnails button { flex-basis:50px; width:50px; height:58px; }
}
@media(max-width:380px) {
 .works .project-card-price strong,.works .is-compact .project-card-price strong { font-size:16px; }
 .works .project-card-price,.works .is-compact .project-card-price { font-size:9px; gap:4px; }
}
@media(prefers-reduced-motion:reduce) { .works .project-card-media img { transition:none; } }

/* Photo canvas: neutral surface so the photographs, not the paper, carry colour. */
.works--dark { --wall-photo-bg:#1f1e1c; --ink:var(--on-dark); --ink-2:var(--on-dark-2); --ink-3:var(--on-dark-3); --line:var(--line-dark); --line-2:var(--line-dark-2); --focus:var(--ivory); background:var(--shadow); color:var(--on-dark); border-top:1px solid var(--line-dark); }
.works--dark::before { content:none; }
.works--dark .button--dark { background:var(--ivory); color:var(--graphite); }
.works--dark .button--ghost { border-color:var(--line-dark-2); color:var(--ivory); }
.works--dark .button--ghost:hover { border-color:var(--ivory); }
.works--dark .project-card-badge { background:rgba(251,249,244,.92); color:var(--graphite); }
.works--white { --wall-photo-bg:#f1f1ef; background:#fff; }
.project-dialog--dark,.project-dialog--white { --stage-bg:#141413; --stage-ink:var(--on-dark); --stage-line:var(--line-dark-2); }
.project-dialog--white { --stage-bg:#fff; --stage-ink:var(--ink); --stage-line:var(--line-2); }
.case-thumbnails button { opacity:.55; }

/* Showcase v2: curated rows, a lead pair, live covers and silent project clips. */
.works .project-card-media { position:relative; overflow:hidden; }
.works .project-card-badge { z-index:2; }
.project-card-live { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; opacity:0; pointer-events:none; transition:opacity .7s var(--ease); background:var(--wall-photo-bg,#1f1e1c); }
.project-card.is-live .project-card-live { opacity:1; }
.works .project-card.has-live .project-card-badge::before { content:""; display:inline-block; width:0; height:0; margin-right:6px; border-style:solid; border-width:4px 0 4px 7px; border-color:transparent transparent transparent currentColor; vertical-align:0; }
.works .project-card.is-live .project-card-badge::before { width:6px; height:8px; border-width:0 2px; border-color:currentColor; }
.works .wall-row--lead { gap:24px; }
.works .wall-row--lead .project-card-copy { padding-top:20px; }
.works .wall-row--lead .project-card-price strong { font-size:clamp(26px,2.3vw,36px); }
.works .wall-row--lead .project-card-title { font-size:clamp(17px,1.35vw,21px); }
.works .wall-row--lead .project-card-meta { font-size:13px; }
.case-video { position:relative; display:flex; align-items:center; justify-content:center; width:100%; height:100%; margin:0; }
.case-video video { cursor:pointer; }
.case-video-toggle { position:absolute; right:12px; bottom:16px; width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:50%; background:rgba(25,25,24,.62); color:#fff; font-size:15px; line-height:1; opacity:.0; transition:opacity .2s ease; }
.case-video:hover .case-video-toggle,.case-video.is-paused .case-video-toggle,.case-video-toggle:focus-visible { opacity:1; }
.case-video.is-paused .case-video-toggle { width:64px; height:64px; right:50%; bottom:50%; transform:translate(50%,50%); font-size:22px; }
.case-video-progress { position:absolute; left:0; right:0; bottom:0; height:2px; background:rgba(251,249,244,.18); }
.case-video-progress span { display:block; height:100%; background:var(--sun); transform-origin:0 50%; transform:scaleX(0); }
@media(hover:none) { .case-video-toggle { opacity:.85; } }
@media(max-width:767px) {
 .works .wall-row--lead { gap:12px; }
 .works .wall-row--lead .project-card-price strong { font-size:22px; }
 .works .wall-row--lead .project-card-title { font-size:15px; }
}
@media(prefers-reduced-motion:reduce) { .project-card-live { display:none; } .case-video-toggle { transition:none; } }
