/* PV-008 review proposals. Shared header, hero, headings and footer retain their source styles. */
:root{--concept-bg:#fafaf7;--concept-line:#d9d9d2;--concept-muted:#62655f;--gallery-gap:32px;--chat-shadow:0 12px 44px #04050a1f,0 2px 8px #04050a0a;--chat-bounce-period:4s}
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body[data-page=work] .portfolio-filters,.concept-controls,body[data-page=work] .portfolio-collection{max-width:none;margin-inline:0;width:100%;box-sizing:border-box}
.concept-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-block:1px solid var(--concept-line);font:400 12px var(--ig-font-body)}
.layout-choices{display:flex;align-items:center;gap:4px}.layout-choices>span{margin-right:12px;color:var(--concept-muted)}
.concept-controls button{border:0;border-radius:var(--ig-radius-pill);padding:10px 12px;background:transparent;min-height:44px;font:inherit;cursor:pointer}.concept-controls button[aria-pressed=true]{background:var(--ig-ink);color:white}.concept-controls label{display:flex;align-items:center;gap:8px}.concept-controls select{font:inherit;background:transparent;border:1px solid var(--concept-line);border-radius:var(--ig-radius-sm);padding:8px;min-height:44px;max-width:180px}
body[data-page=work] .portfolio-collection{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:56px var(--gallery-gap);align-items:start}
body[data-page=work] .portfolio-card{min-width:0;grid-column:span 6;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;transition:translate .24s ease}
body[data-page=work] .portfolio-card:hover{box-shadow:none;translate:0 -3px}
body[data-concept=editorial] .portfolio-collection{column-gap:32px}
body[data-concept=editorial] .portfolio-card[data-slot="1"],body[data-concept=editorial] .portfolio-card[data-slot="3"],body[data-concept=editorial] .portfolio-card[data-slot="5"]{margin-top:48px}
body[data-concept=center] .portfolio-card[data-slot="0"],body[data-concept=center] .portfolio-card[data-slot="3"]{grid-column:span 3;margin-top:40px}
body[data-concept=center] .portfolio-card[data-slot="1"],body[data-concept=center] .portfolio-card[data-slot="4"]{grid-column:span 6}
body[data-concept=center] .portfolio-card[data-slot="2"],body[data-concept=center] .portfolio-card[data-slot="5"]{grid-column:span 3;margin-top:80px}
body[data-concept=guided] .portfolio-card{grid-column:span 4}
body[data-page=work] .portfolio-card .project-shot{aspect-ratio:1200/686;border:0;border-radius:var(--ig-radius-sm);overflow:hidden;background:transparent;padding:0}
body[data-page=work] .portfolio-card .project-shot img{width:100%;height:100%;object-fit:contain;transform:none;border-radius:0}
body[data-page=work] .portfolio-card.phone-closeup .project-shot img,body[data-page=work] .portfolio-card.phone-closeup:hover .project-shot img{transform:scale(1.2);transform-origin:49% 30%}
body[data-page=work] .portfolio-card-body{padding:16px 0 0}
body[data-page=work] .portfolio-card .project-meta{font:400 12px/1.4 var(--ig-font-body);color:var(--concept-muted);gap:8px;margin:0 0 8px}
body[data-page=work] .portfolio-card h3{font:400 26px/1.2 var(--ig-font-display);letter-spacing:0;margin:0 0 8px;max-width:none}
body[data-page=work] .portfolio-card-body>p{font:400 14px/1.55 var(--ig-font-body);margin:0;color:#424b4c}
body[data-page=work] .portfolio-card .project-scope{display:block;border:0;margin:12px 0 0;padding:0}
body[data-page=work] .portfolio-card .project-scope ul{display:flex;flex-wrap:wrap;gap:6px 12px;margin:0;padding:0;list-style:none}
body[data-page=work] .portfolio-card .project-scope li{background:none;border:0;border-radius:0;padding:0;font:400 11px/1.5 var(--ig-font-body);color:var(--concept-muted)}
body[data-page=work] .portfolio-card .project-scope li:not(:last-child)::after{content:'·';margin-left:12px;color:#9b9e97}
body[data-page=work] .portfolio-filters{margin-bottom:32px;padding-block:12px}.portfolio-filters button{font-size:14px}
.chat-shell{position:fixed;right:24px;bottom:24px;width:380px;max-width:calc(100vw - 32px);z-index:110;font-family:var(--ig-font-body);color:var(--ig-ink);border-radius:var(--ig-radius-md);box-shadow:var(--chat-shadow)}
.chat-shell *{box-sizing:border-box}.chat-shell button,.chat-shell input,.chat-shell textarea{font-family:var(--ig-font-body)}.chat-shell button{cursor:pointer;min-height:44px}.chat-shell button:focus-visible,.chat-shell input:focus-visible,.chat-shell textarea:focus-visible,.concept-controls button:focus-visible,.concept-controls select:focus-visible{outline:3px solid var(--ig-purple);outline-offset:3px}
.chat-entry,.chat-panel,#reopen-chat{background:var(--concept-bg);border:1px solid var(--concept-line);border-radius:var(--ig-radius-md)}
.chat-entry{padding:12px}.chat-caption{display:flex;justify-content:space-between;align-items:center;padding-left:4px;font:500 12px/1.4 var(--ig-font-body)}.chat-window-controls{display:flex;align-items:center;gap:0}.chat-window-controls button{display:grid;place-items:center;flex-shrink:0;width:44px;min-height:44px;padding:0;border:0;background:none;border-radius:var(--ig-radius-sm);font-size:20px;color:var(--ig-ink)}.chat-window-controls button:hover{background:#ebebe5}.chat-window-controls button img{width:16px;height:16px}
#concept-chat{display:flex;align-items:center;gap:10px;border:1px solid var(--concept-line);border-radius:var(--ig-radius-sm);background:white;padding:6px;margin-top:4px}#concept-chat>img{width:28px;height:28px}#concept-chat input{width:0;min-width:0;flex:1;border:0;background:none;font-size:13px;line-height:1.5;padding:8px 0;color:var(--ig-ink)}#concept-chat button{flex-shrink:0;width:44px;height:44px;background:var(--ig-yellow);border:0;border-radius:var(--ig-radius-pill);font:400 23px/1 var(--ig-font-body);animation:send-invitation var(--chat-bounce-period) ease-in-out infinite;animation-delay:0s}
@keyframes send-invitation{0%,82%,100%{transform:translateY(0) rotate(0)}86%{transform:translateY(-3px) rotate(-5deg)}90%{transform:translateY(0) rotate(4deg)}94%{transform:translateY(-1px) rotate(0)}}
.chat-shell:focus-within #concept-chat button,.chat-shell:hover #concept-chat button,.chat-shell.has-draft #concept-chat button,.chat-shell.page-hidden #concept-chat button,.chat-shell.motion-paused #concept-chat button,.chat-shell:has(.chat-panel:not([hidden])) #concept-chat button{animation:none}
.chat-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.chat-chips button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;font-size:11px;line-height:1.4;padding:8px 4px;min-height:36px}
.chat-footnote{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.demo-label{font:400 10px/1.4 var(--ig-font-body);color:var(--concept-muted);padding-left:4px}.chat-footnote button{font:400 10px/1.4 var(--ig-font-body);border:0;background:none;color:var(--concept-muted);padding:4px;min-height:28px;text-decoration:underline;text-underline-offset:2px}
.chat-panel{overflow:hidden;border-radius:18px 18px 0 0;border-bottom:0}.chat-panel:not([hidden])+.chat-entry{border-radius:0 0 18px 18px}.chat-panel:not([hidden])+.chat-entry .chat-caption{display:none}.chat-head{padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--concept-line)}.chat-head>div:first-child{display:flex;gap:10px;align-items:center}.chat-head>div:first-child>img{width:32px;height:32px}.chat-shell .chat-title{font:500 17px/1.3 var(--ig-font-body)}.chat-title small{display:block;font:400 11px/1.4 var(--ig-font-body);color:var(--concept-muted);margin-top:4px}
.chat-log{padding:20px;max-height:min(44dvh,420px);overflow:auto;overscroll-behavior:contain}.chat-shell .chat-log p{font:400 14px/1.6 var(--ig-font-body);letter-spacing:0;margin:0 0 16px;color:var(--ig-ink)}.chat-log .visitor{text-align:right;margin-left:28px!important;padding:10px 12px;background:#eeede7;border-radius:var(--ig-radius-sm)}.chat-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 20px}.chat-actions button,.chat-actions a{background:white;border:1px solid var(--concept-line);border-radius:var(--ig-radius-sm);padding:10px 12px;min-height:44px;font-size:12px;line-height:1.4}.chat-actions button:hover{background:var(--ig-yellow)}.chat-log a{text-decoration:underline}
.inline-contact{border-top:1px solid var(--concept-line);padding-top:16px}.chat-shell .inline-contact h3{font:400 26px/1.2 var(--ig-font-display);margin:0 0 12px}.inline-contact label{display:block;font-size:12px;margin:12px 0 6px}.inline-contact input,.inline-contact textarea{display:block;width:100%;background:white;border:1px solid var(--concept-line);border-radius:var(--ig-radius-sm);padding:10px;font-size:14px}.inline-contact>button{background:var(--ig-yellow);border:0;border-radius:var(--ig-radius-pill);padding:12px 20px;font-size:13px}.inline-contact>a{display:block;margin-top:16px;font-size:12px}.chat-shell .chat-log .form-explainer{font-size:11px;color:var(--concept-muted);margin-top:12px}.contact-preview-result{margin-top:16px}#reopen-chat{padding:12px 20px;display:flex;align-items:center;gap:12px;margin-left:auto;min-height:52px;font-size:14px}#reopen-chat img{width:28px}
body[data-chat=roomy] .chat-shell{width:440px}body[data-chat=roomy] .chat-entry{padding:16px}body[data-chat=roomy] .chat-chips{gap:8px}body[data-chat=roomy] .chat-chips button{background:#eeede7;border-radius:var(--ig-radius-pill);text-decoration:none;padding:8px 12px}
body[data-chat=dock] .chat-shell{width:460px}body[data-chat=dock] .chat-caption>span{font-size:13px}body[data-chat=dock] .chat-chips{display:none}body[data-chat=dock] .chat-panel:not([hidden])+.chat-entry .chat-chips{display:flex}
#chat-backdrop{position:fixed;inset:0;z-index:109;border:0;background:#04050a40;cursor:default}.chat-maximized{overflow:hidden!important}
body[data-chat] .chat-shell.is-expanded{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(800px,calc(100vw - 48px));height:min(740px,calc(100dvh - 48px));max-width:none;display:flex;flex-direction:column}.chat-shell.is-expanded .chat-panel{display:flex;flex-direction:column;flex:1;min-height:0}.chat-shell.is-expanded .chat-log{flex:1;max-height:none;min-height:0;padding:24px 32px}.chat-shell.is-expanded .chat-entry{flex-shrink:0}.chat-shell.is-expanded .chat-head{padding:16px 24px}.chat-shell.is-expanded .chat-title{font-size:19px}.chat-shell.is-expanded .chat-log p{font-size:15px}.chat-shell.is-expanded #concept-chat input{font-size:15px}.chat-shell.is-expanded .chat-log>*{max-width:640px;margin-inline:auto}.chat-shell.is-expanded .chat-log .visitor{margin-left:auto!important;max-width:80%}
/* PV-009: deliberately varied feature rhythm across the original page canvas. */
body[data-concept=guided] .portfolio-card[data-mosaic="1"],body[data-concept=guided] .portfolio-card[data-mosaic="5"]{grid-column:span 8}
body[data-concept=guided] .portfolio-card[data-mosaic="3"],body[data-concept=guided] .portfolio-card[data-mosaic="8"]{margin-top:48px}
body[data-concept=guided] .portfolio-card[data-mosaic="6"]{margin-top:80px}
body[data-concept=guided] .portfolio-card[data-mosaic="10"]{grid-column:span 5}
body[data-concept=guided] .portfolio-card[data-mosaic="11"]{grid-column:span 7}
body[data-concept=guided] .portfolio-card[data-mosaic="5"] .project-shot{aspect-ratio:16/10}
body[data-concept=guided] .portfolio-card[data-mosaic="2"] .project-shot,body[data-concept=guided] .portfolio-card[data-mosaic="9"] .project-shot{aspect-ratio:2/1}
@media(max-width:1024px){body[data-page=work] .portfolio-collection{gap:40px 24px}body[data-page=work] .portfolio-card[data-slot][data-mosaic]{grid-column:span 6;margin-top:0}.concept-controls{flex-wrap:wrap}.concept-controls label{margin-left:auto}}
@media(max-width:760px){body[data-page=work] .portfolio-collection{grid-template-columns:minmax(0,1fr);gap:40px}body[data-page=work] .portfolio-card[data-slot][data-mosaic]{grid-column:1;margin-top:0}.layout-choices{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.layout-choices>span{display:none}.concept-controls button{font-size:11px;padding:8px}.concept-controls label{margin-left:0}.concept-controls{gap:8px}.portfolio-filters button{font-size:13px}body[data-chat] .chat-shell{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px);max-width:none}.chat-shell .chat-log{max-height:38dvh;padding:16px}.chat-caption{font-size:11px}.chat-shell .chat-title{font-size:16px}.chat-head{padding:10px 12px}.chat-window-controls button{width:44px;min-height:44px}#concept-chat input{font-size:16px}.inline-contact input,.inline-contact textarea{font-size:16px}.chat-entry{padding:8px}.chat-chips{gap:2px}.chat-chips button{font-size:11px;min-height:44px}.chat-footnote button{min-height:32px}body[data-chat] .chat-shell.is-expanded{inset:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px);transform:none}.chat-shell.is-expanded .chat-log{padding:20px;max-height:none}.chat-shell.is-expanded .chat-head{padding:12px}.chat-shell.is-expanded .chat-title{font-size:17px}.chat-shell.is-expanded #concept-chat input{font-size:16px}}
@media(prefers-reduced-motion:reduce){#concept-chat button{animation:none!important}.chat-shell *{transition:none!important}.chat-footnote button{display:none}}

body[data-chat] .chat-shell:has(#reopen-chat:not([hidden])){width:fit-content;max-width:calc(100vw - 24px)}

/* PV-010: complete media, stable copy, image-only emphasis. */
body[data-page=work] .portfolio-collection>.portfolio-card,
body[data-page=work] .portfolio-collection>.portfolio-card:hover,
body[data-page=work] .portfolio-collection>.portfolio-card:focus-within{display:block;translate:none!important;box-shadow:none!important;background:transparent!important;border:0;overflow:visible}
body[data-page=work] .portfolio-card .project-shot{box-sizing:border-box;flex-shrink:0;min-width:0;aspect-ratio:4/3;padding:0;background:transparent;overflow:hidden}
body[data-page=work] .portfolio-card .project-shot img,
body[data-page=work] .portfolio-card.phone-closeup .project-shot img,
body[data-page=work] .portfolio-card.phone-closeup:hover .project-shot img{display:block;object-fit:contain;object-position:center;width:100%;height:100%;max-width:100%;transform:scale(1);transform-origin:center;transition:transform .45s ease}
body[data-page=work] .portfolio-card .portfolio-card-body{transform:none;translate:none;background:transparent;padding:20px 0 0}
body[data-concept=center] .portfolio-collection{grid-template-columns:3.7fr 4.6fr 3.7fr;column-gap:32px}
body[data-concept=center] .portfolio-card[data-slot][data-mosaic]{grid-column:span 1}
body[data-concept=center] .portfolio-card .project-shot{aspect-ratio:4/5}
body[data-concept=guided] .portfolio-card[data-mosaic] .project-shot{aspect-ratio:1/1}
body[data-concept=guided] .portfolio-card[data-mosaic="1"] .project-shot,
body[data-concept=guided] .portfolio-card[data-mosaic="5"] .project-shot{aspect-ratio:4/3}
body[data-concept=guided] .portfolio-card[data-mosaic="2"] .project-shot,
body[data-concept=guided] .portfolio-card[data-mosaic="9"] .project-shot{aspect-ratio:4/5}
@media(hover:hover) and (pointer:fine){
body[data-page=work] .portfolio-card .project-shot:hover img{transform:scale(1.025)}
}
body[data-page=work] .portfolio-card:focus-visible .project-shot img{transform:scale(1.025)}
.chat-shell.at-inline-agent:not(:has(.chat-panel:not([hidden]))):not(:focus-within){visibility:hidden;pointer-events:none}
@media(max-width:1024px){body[data-concept=center] .portfolio-collection{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-concept=center] .portfolio-card[data-slot][data-mosaic]{grid-column:span 1;margin-top:0}}
@media(max-width:760px){body[data-concept=center] .portfolio-collection{grid-template-columns:minmax(0,1fr)}body[data-page=work] .portfolio-card .project-shot{padding:0}body[data-page=work] .portfolio-card[data-mosaic] .project-shot{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){body[data-page=work] .portfolio-card .project-shot img{transform:none!important;transition:none!important}}

/* PV-012: full-bleed ratio-specific Figma exports; no inset or blurred filler. */
body[data-page=work] .portfolio-card .project-shot{position:relative;isolation:isolate;padding:0}
body[data-page=work] .portfolio-card .project-shot::before{content:none}
body[data-page=work] .portfolio-card .project-shot img{position:relative;object-fit:cover}

/* PV-011: copy always occupies its natural height, independently of the image. */
body[data-page=work] .portfolio-card .portfolio-card-body,
body[data-page=work] .portfolio-card .portfolio-card-body :is(h3,p,.project-meta,.project-scope){height:auto;max-height:none;min-width:0;overflow:visible;clip-path:none;white-space:normal;-webkit-line-clamp:unset;overflow-wrap:anywhere}
body[data-page=work] .portfolio-card .project-meta{flex-wrap:wrap}
body[data-page=work] .portfolio-card .project-meta>span{min-width:0}
@media(min-width:1025px){
body[data-page=work][data-concept=guided] .portfolio-collection{grid-template-columns:repeat(12,minmax(0,1fr))}
body[data-page=work][data-concept=guided] .portfolio-card[data-mosaic]{grid-column:span 4}
body[data-page=work][data-concept=guided] .portfolio-card[data-mosaic="1"],body[data-page=work][data-concept=guided] .portfolio-card[data-mosaic="5"]{grid-column:span 8}
body[data-page=work][data-concept=guided] .portfolio-card[data-mosaic="10"]{grid-column:span 5}
body[data-page=work][data-concept=guided] .portfolio-card[data-mosaic="11"]{grid-column:span 7}
}

/* PV-013: source fidelity takes precedence over reconstructed portrait crops. */
body[data-page=work] .portfolio-card[data-project-slug] .project-shot{aspect-ratio:var(--source-ratio);padding:0;background:transparent}
body[data-page=work] .portfolio-card[data-project-slug] .project-shot img{object-fit:contain}

/* PV-014: two additive vertical studies. Existing three galleries stay unchanged. */
.layout-choices{flex-wrap:wrap}.concept-controls{flex-wrap:wrap}
body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:88px 40px}
body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-card[data-slot][data-mosaic]{grid-column:auto;margin-top:0}
body[data-page=work][data-concept=portrait] .portfolio-card[data-slot="1"][data-mosaic],body[data-page=work][data-concept=portrait] .portfolio-card[data-slot="3"][data-mosaic],body[data-page=work][data-concept=portrait] .portfolio-card[data-slot="5"][data-mosaic]{margin-top:104px}
body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-card[data-project-slug] .project-shot{aspect-ratio:4/5;border-radius:0;padding:0;overflow:hidden}
body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-card[data-project-slug] .project-shot img{object-fit:cover;object-position:var(--portrait-focus);border-radius:0;transform-origin:var(--portrait-focus)}
body[data-page=work][data-concept=rhythm] .portfolio-collection{grid-template-columns:.9fr 1.2fr .9fr;gap:100px 32px}
body[data-page=work][data-concept=rhythm] .portfolio-card[data-project-slug] .project-shot{aspect-ratio:2/3}
body[data-page=work][data-concept=rhythm] .portfolio-card[data-project-slug] .project-shot img{object-position:var(--rhythm-focus);transform-origin:var(--rhythm-focus)}
body[data-page=work][data-concept=rhythm] .portfolio-card[data-slot="1"] .project-shot,body[data-page=work][data-concept=rhythm] .portfolio-card[data-slot="4"] .project-shot{aspect-ratio:3/4}
body[data-page=work][data-concept=rhythm] .portfolio-card[data-slot="0"][data-mosaic],body[data-page=work][data-concept=rhythm] .portfolio-card[data-slot="3"][data-mosaic]{margin-top:80px}
body[data-page=work][data-concept=rhythm] .portfolio-card[data-slot="2"][data-mosaic],body[data-page=work][data-concept=rhythm] .portfolio-card[data-slot="5"][data-mosaic]{margin-top:152px}
@media(max-width:1024px){body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 24px}body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-card[data-slot][data-mosaic]{margin-top:0}body[data-page=work][data-concept=rhythm] .portfolio-card[data-slot][data-mosaic] .project-shot{aspect-ratio:3/4}}
@media(max-width:760px){.layout-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-choices button:last-child{grid-column:1/-1}body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-collection{grid-template-columns:minmax(0,1fr);gap:56px}body[data-page=work][data-concept=portrait] .portfolio-card[data-project-slug] .project-shot{aspect-ratio:4/5}}

/* PV-015: portrait-native Figma scenes, with no horizontal-image cover crop. */
body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-card[data-slot][data-mosaic] .project-shot{aspect-ratio:var(--source-ratio)}
body[data-page=work]:is([data-concept=portrait],[data-concept=rhythm]) .portfolio-card[data-project-slug] .project-shot img{object-fit:contain;object-position:50% 50%;transform-origin:50% 50%}
body[data-page=work] .portfolio-card[data-portrait-pending=true] .project-shot::after{content:'Portrait source pending';position:absolute;bottom:12px;left:12px;background:#fff;color:#04050a;padding:6px 10px;font:12px/1.4 Arial,sans-serif;pointer-events:none}


/* PV-017: exactly three media formats, independent of the source artwork. */
body[data-page=work][data-concept=clay] .portfolio-collection{display:grid;grid-template-columns:repeat(100,minmax(0,1fr));gap:0;row-gap:clamp(72px,7.5vw,120px);align-items:start}
body[data-page=work][data-concept=clay] .portfolio-card[data-card-size]{grid-column:1 / span 45;margin:0;transform:none!important;transition:none}
body[data-page=work][data-concept=clay] .portfolio-card[data-side=right]{grid-column:56 / span 45}
body[data-page=work][data-concept=clay] .portfolio-card[data-card-size=wide]{grid-column:1 / span 88}
body[data-page=work][data-concept=clay] .portfolio-card[data-card-size=wide][data-side=right]{grid-column:13 / span 88}
body[data-page=work][data-concept=clay] .portfolio-card[data-project-slug] .project-shot{aspect-ratio:1/1;border-radius:0;overflow:hidden;padding:0}
body[data-page=work][data-concept=clay] .portfolio-card[data-card-size=tall] .project-shot{aspect-ratio:4/5}
body[data-page=work][data-concept=clay] .portfolio-card[data-card-size=wide] .project-shot{aspect-ratio:16/9}
body[data-page=work][data-concept=clay] .portfolio-card .project-shot img{border-radius:0;object-fit:cover;object-position:50% 50%;transform:scale(1.03);transition:transform .7s cubic-bezier(.16,1,.3,1)}
body[data-page=work][data-concept=clay] .portfolio-card .portfolio-card-body{padding:24px 0 0;display:flex;flex-direction:column;gap:0;transform:none!important}
body[data-page=work][data-concept=clay] .portfolio-card h3{order:0;font-size:clamp(26px,2.35vw,36px);margin:0 0 8px}
body[data-page=work][data-concept=clay] .portfolio-card-body>p{order:1;font-size:16px;line-height:1.5}
body[data-page=work][data-concept=clay] .portfolio-card .project-meta{order:2;justify-content:flex-start;gap:8px 24px;margin:12px 0 0}
body[data-page=work][data-concept=clay] .portfolio-card .project-scope{order:3;margin-top:8px}
body[data-page=work][data-concept=clay] .portfolio-card .project-scope li{font-size:12px}
body[data-page=work][data-concept=clay] .portfolio-card:hover :is(h3,p,.project-meta,.project-scope){transform:none!important}
@media(hover:hover) and (pointer:fine){body[data-page=work][data-concept=clay] .portfolio-card .project-shot:hover img{transform:scale(1.06)}}
body[data-page=work][data-concept=clay] .portfolio-card:focus-visible .project-shot img{transform:scale(1.06)}
.gallery-review-tools{display:flex;justify-content:flex-end;gap:20px;align-items:center;margin-bottom:12px;font:12px/1.4 var(--ig-font-body)}
.gallery-review-tools button,.gallery-review-tools a{color:inherit;background:none;border:0;padding:12px 0;min-height:44px;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.card-scroll-lag{opacity:1;transform:translateY(0)}
.card-arrival:not(.card-arrived) .card-scroll-lag{opacity:0;transform:translateY(32px)}
.card-arrival.card-arrived .card-scroll-lag{transition:transform 800ms cubic-bezier(.16,1,.3,1) var(--arrival-delay,0ms),opacity 650ms ease var(--arrival-delay,0ms)}
.gallery-motion-off .card-scroll-lag,.portfolio-card:focus-within .card-scroll-lag{transform:none!important;opacity:1!important;transition:none!important}
@media(min-width:761px){body[data-page=work][data-concept=clay] .portfolio-card[data-card-size=small]{margin-top:clamp(72px,8.75vw,140px)}}
@media(max-width:760px){body[data-page=work][data-concept=clay] .portfolio-collection{display:flex;flex-direction:column;gap:64px}body[data-page=work][data-concept=clay] .portfolio-card[data-card-size]{width:100%;margin:0}body[data-page=work][data-concept=clay] .portfolio-card h3{font-size:26px}body[data-page=work][data-concept=clay] .portfolio-card-body>p{font-size:14px}body[data-page=work][data-concept=clay] .portfolio-card .portfolio-card-body{padding-top:20px}}
@media(prefers-reduced-motion:reduce){body[data-page=work][data-concept=clay] .portfolio-card .project-shot img{transition:none;transform:scale(1.03)!important}.card-scroll-lag{opacity:1!important;transform:none!important;transition:none!important}}

/* PV-018: three fixed ratios, scaled together to the available reading height. */
body[data-page=work][data-concept=clay] .portfolio-card[data-card-size]{width:var(--pair-width,100%);max-width:100%;justify-self:start}
body[data-page=work][data-concept=clay] .portfolio-card[data-side=right]{justify-self:end}
body[data-page=work][data-concept=clay] .portfolio-card[data-card-size=wide]{width:var(--feature-width,100%)}
@media(min-width:761px){body[data-page=work][data-concept=clay] .portfolio-card[data-card-size=small]{margin-top:var(--pair-offset,72px)}}

/* Native-format AuctionWire motion: full-bleed background, no video crop. */
.project-shot{position:relative}
.project-shot .project-card-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.portfolio-card:hover .project-card-video,.portfolio-card:focus-visible .project-card-video{transform:scale(1.03)}
@media(prefers-reduced-motion:reduce){.project-shot .project-card-video{display:none}}

/* PV-021: every pair shares one centered canvas, including wide-card alignment. */
@media(min-width:761px){
body[data-page=work][data-concept=clay] .portfolio-card[data-card-size]{grid-column:1 / -1;grid-row:var(--gallery-row)}
body[data-page=work][data-concept=clay] .portfolio-card[data-side=right]{margin-left:0;margin-right:var(--gallery-inset,0px)}
body[data-page=work][data-concept=clay] .portfolio-card[data-side=left]{margin-left:var(--gallery-inset,0px);margin-right:0}
}

.project-shot .project-card-video{opacity:0;pointer-events:none}
.project-video-playing .project-shot .project-card-video{opacity:1}

/* Scroll response is integrated per frame; never add a timed CSS transition. */
.card-scroll-lag{opacity:1;transition:none!important}

/* Supplied Motific portrait: preserve the complete frame, including on hover. */
body[data-page=work] #motific-motion .project-shot img,body[data-page=work] #motific-motion .project-card-video{object-fit:contain;transform:none}

body[data-page=work] #motific-motion .project-shot{aspect-ratio:1700/2048}

/* Preserve the supplied Panoptica film without an extra crop or zoom. */
body[data-page=work] #panoptica-motion .project-shot{aspect-ratio:850/884}
body[data-page=work] #panoptica-motion .project-shot img,body[data-page=work] #panoptica-motion .project-card-video{object-fit:contain;transform:none}

body[data-page=work] #stellr-motion .project-shot{aspect-ratio:850/1044}
body[data-page=work] #stellr-motion .project-shot img,body[data-page=work] #stellr-motion .project-card-video{object-fit:contain;transform:none}

/* Owner-supplied films use native frames: no additional hover crop. */
body[data-page=work] #gowin-motion .project-shot{aspect-ratio:3040/1712}
body[data-page=work] #docusign-motion .project-shot{aspect-ratio:850/1044}
body[data-page=work] :is(#gowin-motion,#docusign-motion) .project-shot img,
body[data-page=work] :is(#gowin-motion,#docusign-motion) .project-card-video{object-fit:contain;transform:none}

/* Owner-supplied HPE film: retain the complete native frame. */
body[data-page=work] #hpe-motion .project-shot{aspect-ratio:1700/2048}
body[data-page=work] #hpe-motion .project-shot img,body[data-page=work] #hpe-motion .project-card-video{object-fit:contain;transform:none}

/* Supplied CCW film keeps its native tall frame without hover cropping. */
body[data-page=work] #ccw-motion .project-shot{aspect-ratio:1700/2088}
body[data-page=work] #ccw-motion .project-shot img,body[data-page=work] #ccw-motion .project-card-video{object-fit:contain;transform:none}

/* Supplied Zuora before/after: preserve the full frame. */
body[data-page=work] #zuora-motion .project-shot{aspect-ratio:850/1044}
body[data-page=work] #zuora-motion .project-shot img,body[data-page=work] #zuora-motion .project-card-video{object-fit:contain;transform:none}

/* Preserve the supplied square Atlas composition without cropping its UI. */
body[data-page=work][data-concept=clay] #atlas-motion .project-shot{aspect-ratio:1/1}
body[data-page=work] #atlas-motion .project-shot img,body[data-page=work] #atlas-motion .project-card-video{object-fit:contain;transform:none}

/* Coming-soon cards: Habitat-style cursor chip; static touch/keyboard fallback. */
.portfolio-card.project-coming-soon{cursor:default}
.project-coming-soon .project-shot{position:relative;overflow:hidden}
.project-coming-soon .project-shot>img{object-fit:cover!important;transform:scale(1.02)!important;filter:none;transition:filter .25s ease}
.project-coming-soon .project-shot>.coming-soon-label{position:absolute!important;inset:50% auto auto 50%!important;transform:translate(-50%,-50%)!important;display:block!important;padding:6px 12px;border:0;border-radius:4px;background:#262626;color:#fff;font:600 14px/1.4 Geist,sans-serif;white-space:nowrap;opacity:1!important;z-index:3;pointer-events:none}
.project-coming-soon .case-open{display:none}
@media(hover:hover) and (pointer:fine) and (min-width:1024px){
.project-coming-soon .project-shot>.coming-soon-label{opacity:0!important}
.project-coming-soon:hover .project-shot>img,.project-coming-soon:focus-visible .project-shot>img{filter:blur(6px)}
.project-coming-soon:hover .project-shot>.coming-soon-label,.project-coming-soon:focus-visible .project-shot>.coming-soon-label{opacity:1!important}
.project-coming-soon[data-pointer-chip] .project-shot>.coming-soon-label{inset:var(--chip-y,50%) auto auto var(--chip-x,50%)!important}
}
@media(hover:none),(pointer:coarse),(max-width:1023px){.project-coming-soon .project-shot>img{filter:blur(6px)}}
@media(prefers-reduced-motion:reduce){.project-coming-soon .project-shot>img{transition:none}}

/* Supplied AgentVine teaser: preserve the complete native frame. */
body[data-page=work] #agentvine-motion .project-shot{aspect-ratio:850/1044}
body[data-page=work] #agentvine-motion .project-shot img,body[data-page=work] #agentvine-motion .project-card-video{object-fit:contain;transform:none}

/* Named teasers retain readable centered labels at every card width. */
.project-coming-soon .project-shot>.coming-soon-label-custom{width:max-content;max-width:calc(100% - 32px);box-sizing:border-box;white-space:normal;text-align:center;overflow-wrap:anywhere}
