.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.project{background:var(--paper);min-width:0}
.project-image{position:relative;overflow:hidden;height:clamp(230px,30vw,390px);background:#ddd4c5}
.project-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.project:hover .project-image img{transform:scale(1.025)}
.project-image .sample-tag{position:absolute;top:15px;left:15px;background:var(--paper);padding:6px 9px}
.project-body{padding:22px 24px 25px}
.project-body h3{font:500 clamp(25px,3vw,34px)/1.1 var(--serif);margin:0 0 18px;letter-spacing:-.025em}
.project-body p{font-size:13px;line-height:1.65;color:#55524b;margin:11px 0}
.project-body strong{display:block;color:var(--ink);font:500 10px var(--mono);letter-spacing:.09em;text-transform:uppercase;margin-bottom:3px}
.photo-credit,.photo-note{font-size:10px;color:var(--muted);text-underline-offset:3px}
.photo-credit{display:inline-block;margin-top:8px}
.photo-note{margin:18px 0 0}
.portrait-column{max-width:360px}
.dani-portrait{display:block;width:100%;max-height:540px;object-fit:cover;object-position:center 44%;margin-top:25px}
.portrait-caption{display:block;margin-top:9px;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
@media(max-width:850px){.project-image{height:clamp(220px,43vw,330px)}.project-body{padding:20px}.portrait-column{max-width:100%}.dani-portrait{max-height:440px;object-position:center 43%}}
@media(max-width:600px){.project-grid{grid-template-columns:1fr;gap:16px}.project-image{height:250px}.project-body{padding:19px}.project-body h3{font-size:29px}.dani-portrait{max-height:none;width:min(100%,380px);object-position:center 44%}}
@media(prefers-reduced-motion:reduce){.project-image img{transition:none}}
