:root{--bg: #0a0a0b;--bg-elev: #161618;--fg: #f4f4f5;--fg-muted: #8b8b93;--fg-faint: #5b5b63;--border: #232327;--accent: #fafafa;--overlay: rgba(0, 0, 0, .94);--maxw: 1500px;--gap: 24px;--grid-gap: 8px;--radius: 8px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{overflow-x:hidden}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);line-height:1.5;-webkit-font-smoothing:antialiased;color-scheme:dark}a{color:inherit;text-decoration:none}a:hover{opacity:.7}img{display:block;max-width:100%}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,4vw,44px)}.mono,.site-nav,.collection-card .meta span,.page-head .sub,.site-footer{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 0 26px;flex-wrap:wrap}.site-header .brand{font-size:1rem;font-weight:600;letter-spacing:.01em;margin:0}.site-nav{display:flex;gap:22px;text-transform:uppercase}.site-nav a{color:var(--fg-muted)}.site-nav a:hover{color:var(--fg);opacity:1}.site-nav a[aria-current=page]{color:var(--fg)}.page-head{margin:6px 0 30px}.page-head h2{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:600;letter-spacing:-.02em;margin:0 0 8px}.page-head .sub{color:var(--fg-muted);margin:0;text-transform:uppercase}.page-head p:not(.sub){color:var(--fg-muted);margin:0;max-width:60ch}.collections{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(440px,100%),1fr));gap:clamp(14px,2vw,22px);margin:0 0 72px}.collection-card{display:block}.collection-card .thumb{position:relative;aspect-ratio:3 / 2;overflow:hidden;background:var(--bg-elev) center / cover no-repeat}.collection-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.collection-card:hover img{transform:scale(1.05)}.collection-card .meta{padding:12px 2px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.collection-card .meta h3{margin:0;font-size:1rem;font-weight:500;letter-spacing:-.01em}.collection-card .meta span{color:var(--fg-faint);text-transform:uppercase;white-space:nowrap}.grid{width:100vw;margin-inline:calc(50% - 50vw);display:flex;flex-direction:column;gap:var(--grid-gap);margin-bottom:72px}.row{display:flex;gap:var(--grid-gap)}.tile{flex-basis:0;flex-shrink:1;min-width:0;padding:0;margin:0;border:0;background:var(--bg-elev);cursor:zoom-in;overflow:hidden;position:relative;display:block}.tile img{width:100%;height:auto;background-size:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .4s ease}.tile:hover img{transform:scale(1.04)}.tile.hidden{display:none}@media(max-width:700px){.row{flex-direction:column;gap:var(--grid-gap)}.tile{flex-basis:auto!important;flex-grow:0!important}}.filterbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 26px}.filterbar input[type=search]{flex:1 1 200px;min-width:160px;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--fg);font:inherit;font-size:.85rem}.chip{padding:5px 13px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--fg-muted);font-family:var(--mono);font-size:.76rem;letter-spacing:.03em;cursor:pointer;white-space:nowrap;transition:all .15s ease}.chip:hover{color:var(--fg);border-color:var(--fg-muted)}.chip[aria-pressed=true]{background:var(--accent);color:#0a0a0b;border-color:var(--accent)}.chip .n{opacity:.55;margin-left:5px;font-variant-numeric:tabular-nums}.empty-note{color:var(--fg-muted);padding:48px 0;text-align:center;font-family:var(--mono);font-size:.82rem}.lightbox{position:fixed;inset:0;z-index:100;display:none;background:var(--overlay);backdrop-filter:blur(10px);grid-template-rows:1fr auto}.lightbox.open{display:grid}.lb-stage{position:relative;overflow:hidden;min-height:0}.lb-stage img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:calc(100% - 48px);max-height:calc(100% - 48px);width:auto;height:auto;object-fit:contain;box-shadow:0 24px 70px #0009;cursor:zoom-in;transition:transform .2s ease;touch-action:none;user-select:none;-webkit-user-drag:none;will-change:transform}.lb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:48px;height:48px;border-radius:50%;border:0;background:#ffffff14;color:#fff;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;transition:background .15s ease}.lb-nav:hover{background:#fff3}.lb-prev{left:20px}.lb-next{right:20px}.lb-close{position:absolute;top:18px;right:20px;z-index:2;width:40px;height:40px;border:0;border-radius:50%;background:#ffffff14;color:#fff;font-size:1.2rem;cursor:pointer}.lb-close:hover{background:#fff3}.lb-info{color:#d4d4d8;padding:18px clamp(18px,4vw,44px) 24px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;font-family:var(--mono);font-size:.8rem;border-top:1px solid rgba(255,255,255,.07)}.lb-info .title{font-weight:500;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:#fff}.lb-info .exif{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:.78rem;color:#9b9ba3}.lb-info .exif b{color:#fff;font-weight:500}.lb-info .eq{opacity:.65;font-size:.92em}.lb-info .tags{display:flex;gap:6px;flex-wrap:wrap}.lb-info .tags a{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;padding:3px 10px;border-radius:999px;background:#ffffff1a;color:#d4d4d8}.lb-info .map-link{margin-left:auto;font-size:.74rem;letter-spacing:.04em;color:#b9b9c0;border-bottom:1px solid currentColor}@media(max-width:600px){.lb-info{font-size:.74rem;gap:8px 16px}.lb-info .map-link{margin-left:0}}#map{width:100%;height:74vh;overflow:hidden;border:1px solid var(--border)}.map-marker{width:40px;height:40px;border-radius:50%;border:2px solid #fff;background-size:cover;background-position:center;box-shadow:0 2px 10px #00000080;cursor:pointer}.maplibregl-popup-content{border-radius:6px;padding:8px 12px}footer.site-footer{color:var(--fg-faint);padding:44px 0 64px;border-top:1px solid var(--border);margin-top:48px;text-transform:uppercase}
