:root{--bg:#fafafa;--card:#fff;--line:#ddd;--text:#1d1d1f;--muted:#6b6b72;--pink:#ff5fa2;--link:#c2185b}
@media (prefers-color-scheme:dark){:root{--bg:#161616;--card:#222;--line:#444;--text:#eee;--muted:#aaa;--pink:#ff7ab5;--link:#ff8fc0}}
*{box-sizing:border-box}
body{font-family:system-ui,sans-serif;margin:0;background:var(--bg);color:var(--text);line-height:1.45}
a{color:var(--link)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--card);padding:.4rem;z-index:20}
.site-header{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--line);background:var(--card)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit}
.logo{border-radius:50%;display:block}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-weight:800;font-size:1.25rem;color:var(--pink)}
.tagline{font-size:.75rem;color:var(--muted)}
.search{position:relative;flex:1 1 240px;max-width:460px;display:flex;gap:.4rem}
.search input{flex:1;min-width:0;padding:.5rem .7rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-size:1rem}
button,.reset{font:inherit}
button{padding:.5rem .9rem;border:0;border-radius:8px;background:var(--pink);color:#111;font-weight:600;cursor:pointer}
.suggest{position:absolute;top:100%;left:0;right:0;z-index:10;margin:.2rem 0 0;padding:0;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.suggest a{display:flex;justify-content:space-between;gap:1rem;padding:.5rem .7rem;color:inherit;text-decoration:none}
.suggest a:hover,.suggest a:focus{background:var(--bg)}
.suggest small{color:var(--muted)}
.main-nav{display:flex;gap:1rem;margin-left:auto}.main-nav a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:1rem}
h1{font-size:clamp(1.4rem,4vw,2rem);margin:.4rem 0}
.intro{max-width:70ch;color:var(--muted)}
.crumbs{font-size:.85rem;color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin:1rem 0}
.filters label{display:flex;flex-direction:column;font-size:.75rem;color:var(--muted);gap:.2rem}
.filters select{padding:.4rem;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);max-width:210px}
.reset{color:var(--muted)}
.count{color:var(--muted);font-size:.85rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.8rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.82rem}
.card img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;background:#000}
.info{padding:.5rem .6rem}
.info p{margin:.15rem 0}
.t{font-size:.9rem;font-weight:600;line-height:1.25;margin:0 0 .25rem}
.t a{color:inherit;text-decoration:none}
.lm{font-weight:500}.loc{color:var(--muted)}
.stats{display:flex;gap:.8rem;color:var(--muted)}.stats span{display:inline-flex;align-items:center;gap:.25rem}
.pager{display:flex;gap:1rem;justify-content:center;align-items:center;margin:1.5rem 0}
.browse{margin:1.5rem 0;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem}
.browse h3{font-size:.85rem;margin:.8rem 0 .3rem}
.chips a{display:inline-block;margin:0 .3rem .3rem 0;padding:.15rem .6rem;border:1px solid var(--line);border-radius:99px;font-size:.8rem;text-decoration:none}
.site-footer{text-align:center;padding:1.5rem 1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}
.site-footer nav a{margin:0 .5rem}
.consent{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:center;padding:.8rem 1rem;background:var(--card);border-top:1px solid var(--line)}
.consent[hidden],.suggest[hidden]{display:none}
.consent p{margin:0}
/* ---- photo page ---- */
.photo{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:1.5rem;margin:1rem 0 2rem}
@media (max-width:800px){.photo{grid-template-columns:1fr}}
.photo-fig{margin:0}
.photo-fig img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:10px;background:#000}
.photo-meta{display:flex;gap:1rem;align-items:center;color:var(--muted)}
.photo-meta>span{display:inline-flex;align-items:center;gap:.3rem}
.like-btn{display:inline-flex;align-items:center;gap:.35rem;background:var(--card);color:var(--text);border:1px solid var(--line);padding:.35rem .8rem}
.like-btn.liked{background:var(--pink);color:#111;border-color:var(--pink)}
.like-btn:disabled{cursor:default}
.desc{max-width:65ch}
.photo-info h2,section>h2{font-size:1.1rem;margin:1.4rem 0 .5rem}
.details{border-collapse:collapse;width:100%;max-width:520px}
.details th{text-align:left;font-weight:500;color:var(--muted);width:36%;padding:.35rem .6rem .35rem 0;border-bottom:1px solid var(--line)}
.details td{padding:.35rem 0;border-bottom:1px solid var(--line)}
.nearby{margin:0;padding-left:1.2rem}
.ai-note{font-size:.8rem;color:var(--muted);margin-top:1.2rem}
