*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0a0a0a;--surface:#141414;--text:#e0e0e0;--muted:#888;--accent:#d63638;--radius:8px}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;min-height:100vh}
header{position:sticky;top:0;z-index:100;background:var(--surface);padding:12px 16px;border-bottom:1px solid #222;display:flex;align-items:center;gap:12px}
.logo{font-size:20px;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:-.5px;flex-shrink:0}
.search-form{flex:1;max-width:400px;margin-left:auto}
.search-form input{width:100%;padding:8px 12px;border:1px solid #333;border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:14px;outline:none}
.search-form input:focus{border-color:var(--accent)}
#app{max-width:1400px;margin:0 auto;padding:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.thumb{position:relative;aspect-ratio:300/450;overflow:hidden;border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:transform .15s}
.thumb:hover{transform:scale(1.02)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb a{display:block;width:100%;height:100%}
.gallery-header{margin-bottom:20px}
.gallery-header h1{font-size:22px;font-weight:600;margin-bottom:8px}
.gallery-header .meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.gallery-header .meta a{color:var(--accent);text-decoration:none;font-size:13px;padding:2px 8px;background:var(--surface);border-radius:4px}
.gallery-header .meta a:hover{opacity:.8}
.gallery-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.gallery-images img{width:100%;height:auto;display:block;border-radius:var(--radius);background:var(--surface)}
.loading{text-align:center;padding:40px;color:var(--muted);font-size:14px}
.error{text-align:center;padding:40px;color:var(--accent);font-size:14px}
@media(max-width:600px){.grid{grid-template-columns:repeat(2,1fr);gap:8px}#app{padding:8px}.gallery-images{grid-template-columns:1fr}}
