:root{--bg:#fff;--fg:#1d1d1f;--muted:#666;--line:#e4e4e4;--tile:#f3f3f1;--accent:#c0392b}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
a{color:inherit}img{max-width:100%;height:auto;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 16px}
header.top{border-bottom:1px solid var(--line)}header.top .wrap{display:flex;align-items:center;justify-content:space-between;min-height:56px;gap:12px}
header.top a.brand{text-decoration:none;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.hero img{margin:24px auto 8px;width:min(900px,100%)}
.intro{max-width:760px;margin:0 auto 8px;text-align:center;color:#333}
h1.section{font-size:22px;text-align:center;margin:40px 0 20px}
.filter{display:flex;justify-content:center;margin:0 0 24px}
.filter input{width:min(420px,100%);padding:10px 14px;font:inherit;border:1px solid #ccc;border-radius:999px}
.grid{list-style:none;padding:0;margin:0 0 48px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.grid a{text-decoration:none;display:block}
.grid .ph{aspect-ratio:1/1;background:var(--tile);display:flex;align-items:center;justify-content:center;overflow:hidden}
.grid .ph img{max-height:100%;width:auto;max-width:100%;object-fit:contain;transition:transform .3s}
.grid a:hover .ph img{transform:scale(1.03)}
.grid .t{font-weight:600;margin:10px 0 0;line-height:1.3}.grid .a{color:var(--muted);font-size:14px}
.empty{text-align:center;color:var(--muted);display:none}
.work{display:grid;grid-template-columns:2fr 1fr;gap:40px;margin:32px 0 48px}
.work figure{margin:0;background:var(--tile)}.work figure img{margin:0 auto;max-height:85vh;width:auto}
.work h1{font-size:26px;line-height:1.25;margin:0 0 4px}.work .artist{color:var(--muted);margin:0 0 20px;font-size:18px}
.work .text hr{border:0;border-top:1px solid var(--line);margin:20px 0}
.work .extra{margin-top:24px}
.nav{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:20px 0 40px;font-size:14px}
.nav a{text-decoration:none;max-width:45%}.nav a:hover{text-decoration:underline}
footer{border-top:1px solid var(--line);color:var(--muted);font-size:13px;padding:24px 0;text-align:center}
@media (max-width:800px){header.top a.brand{font-size:11px;letter-spacing:.05em}.work{grid-template-columns:1fr;gap:20px}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}}
