:root{--ink:#0a0a0a;--paper:#fff;--muted:#6b6b6b;--line:#e6e6e6;--max:1200px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}img{display:block}.masthead{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#fffffff2;position:sticky;top:0}.masthead-inner{max-width:var(--max);align-items:center;gap:1.5rem;margin:0 auto;padding:.9rem 1.25rem;display:flex}.wordmark{color:#d2552a;text-transform:uppercase;font-family:Bungee Spice,Bungee,system-ui,sans-serif;text-decoration:none}.masthead .wordmark{letter-spacing:.04em;white-space:nowrap;font-size:1.15rem}.masthead nav{text-transform:uppercase;letter-spacing:.12em;gap:1.25rem;margin-left:auto;font-size:.8rem;display:flex}.masthead nav a.active{border-bottom:2px solid var(--ink)}.searchbar{border:1px solid var(--ink);flex:1;max-width:420px;display:flex}.searchbar input{border:0;outline:0;flex:1;padding:.55rem .8rem;font-size:.9rem}.searchbar button{background:var(--ink);color:var(--paper);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;border:0;padding:0 1.1rem;font-size:.75rem}.page{max-width:var(--max);margin:0 auto;padding:1.5rem 1.25rem 4rem}.hero{text-align:center;padding:2.5rem 1rem 1.5rem}.hero h1{letter-spacing:.04em;margin:0 0 .5rem;font-size:2rem}.hero .wordmark{letter-spacing:.02em;margin:0 0 .75rem;font-size:clamp(1.9rem,6vw,3.4rem);line-height:1.1}.hero p{color:var(--muted);margin:0}.filters{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1.25rem 0 .5rem;display:flex}.chip{border:1px solid var(--line);cursor:pointer;background:var(--paper);text-transform:capitalize;padding:.3rem .75rem;font-size:.78rem}.chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.chip.clear{color:var(--muted)}.subfilters{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin:.25rem 0 .5rem;display:flex}.region-select{border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;padding:.3rem .75rem;font-family:inherit;font-size:.78rem}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px;margin-top:1.5rem;display:grid}.tile{aspect-ratio:1;background:#f2f2f2;position:relative;overflow:hidden}.tile img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.tile:hover img{transform:scale(1.04)}.tile .overlay{color:#fff;opacity:0;background:linear-gradient(#0000,#000000bf);padding:.6rem .7rem;font-size:.82rem;transition:opacity .25s;position:absolute;inset:auto 0 0}.tile:hover .overlay{opacity:1}.artist-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.artist-card{border:1px solid var(--line);padding:1rem;transition:border-color .2s}.artist-card:hover{border-color:var(--ink)}.artist-card .handle{font-weight:700}.artist-card .meta{color:var(--muted);margin-top:.3rem;font-size:.82rem}.artist-card .count{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:.6rem;font-size:.72rem}.artist-head{border-bottom:1px solid var(--line);padding:1.5rem 0}.artist-head h1{margin:0;font-size:1.8rem}.artist-head .sub{color:var(--muted);margin-top:.4rem}.ig-link{border:1px solid var(--ink);text-transform:uppercase;letter-spacing:.08em;margin-top:.8rem;padding:.4rem .9rem;font-size:.78rem;display:inline-block}.booking-note{border:1px solid var(--line);border-left:3px solid var(--ink);background:#fafafa;margin:1.25rem 0;padding:.85rem 1rem;font-size:.85rem;line-height:1.5}.booking-note-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:.25rem;font-size:.68rem;display:block}.booking-note p{color:var(--ink);margin:0}.inline-link{text-underline-offset:2px;text-decoration:underline}.section-label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:.9rem 0 .4rem;font-size:.68rem;display:block}.artist-shops{margin-top:.6rem}.shop-chip{border:1px solid var(--ink);align-items:center;gap:.3rem;margin:0 .4rem .4rem 0;padding:.35rem .7rem;font-size:.82rem;display:inline-flex}.shop-chip:hover{background:var(--ink);color:var(--paper)}.shop-chip-role{color:var(--muted);text-transform:capitalize}.shop-chip:hover .shop-chip-role{color:#cfcfcf}.shop-head{border-bottom:1px solid var(--line);padding:1.5rem 0}.shop-head h1{margin:.3rem 0 0;font-size:1.8rem;display:inline-block}.shop-head .sub{color:var(--muted);margin-top:.4rem}.shop-links{flex-wrap:wrap;gap:.6rem;display:flex}.section-title{text-transform:uppercase;letter-spacing:.1em;margin:1.5rem 0 .75rem;font-size:1.05rem}.role-badge{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);margin-top:.4rem;padding:.1rem .4rem;font-size:.7rem;display:inline-block}.status-badge{text-transform:uppercase;letter-spacing:.08em;vertical-align:middle;margin-left:.5rem;padding:.15rem .45rem;font-size:.68rem;display:inline-block}.status-badge.closed{background:var(--ink);color:var(--paper)}.status-badge.warn{border:1px solid var(--ink)}.status-badge.small{margin-left:.4rem;padding:.05rem .35rem;font-size:.6rem}.shop-search{border:1px solid var(--line);width:100%;max-width:420px;padding:.5rem .75rem;font-family:inherit;font-size:.9rem}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1rem;display:grid}.shop-card{border:1px solid var(--line);padding:1rem;transition:border-color .2s}.shop-card:hover{border-color:var(--ink)}.shop-card-name{font-weight:700}.shop-card .meta{color:var(--muted);margin-top:.3rem;font-size:.82rem}.shop-card-foot{justify-content:space-between;align-items:center;margin-top:.6rem;display:flex}.shop-card .count{color:var(--muted);font-size:.8rem}.notice{text-align:center;color:var(--muted);padding:3rem 1rem}.pager{justify-content:center;align-items:center;gap:1rem;margin-top:2rem;display:flex}.pager button{border:1px solid var(--ink);background:var(--paper);cursor:pointer;padding:.4rem 1rem}.pager button:disabled{opacity:.3;cursor:default}.map-wrap{width:100%;height:calc(100vh - 64px)}.maplibregl-popup-content{font-family:inherit}.review{max-width:640px}.review-progress{text-align:center;color:var(--muted);margin-bottom:1rem;font-size:.85rem}.review-tally{margin-top:.25rem;font-size:.78rem;display:block}.review-card{border:1px solid var(--ink);padding:1.75rem}.review-handle{font-size:1.5rem;font-weight:800}.review-name{color:var(--muted);margin-top:.2rem}.review-meta{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex-wrap:wrap;gap:.75rem;margin:.75rem 0;font-size:.78rem;display:flex}.review-bio{white-space:pre-wrap;min-height:3rem;margin:.5rem 0 1rem;line-height:1.5}.review-actions{grid-template-columns:1fr 1fr 1fr;gap:.6rem;margin-top:1.5rem;display:grid}.review-actions button{border:1px solid var(--ink);background:var(--paper);cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.8rem;font-size:.9rem;display:flex}.review-actions button:disabled{opacity:.4;cursor:default}.btn-approve{color:var(--paper);background:var(--ink)!important}.btn-reject:hover{color:#fff;background:#b00020;border-color:#b00020}.btn-approve:hover{border-color:#0a7f3f;background:#0a7f3f!important}.review-hint{text-align:center;color:var(--muted);margin-top:1.25rem;font-size:.78rem}kbd{border:1px solid var(--line);background:#fafafa;border-radius:3px;padding:0 .3rem;font-size:.72rem}
