:root{--color-dark:#333;--color-light:#fff;--color-bg:var(--color-light);--color-fg:var(--color-dark);--color-muted:#6f6f6f;--color-track:#f4f3f1;--color-border:#e4e2dd;--color-placeholder:#e7e5e0;--color-accent:#009697;--color-accent-hover:#007a7b;--color-danger:#c2483e;color:var(--color-fg);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}h1,h2,h3,strong{color:var(--color-dark)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}img{max-width:100%}.page{max-width:880px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.center{text-align:center;padding-top:18vh}.muted{color:var(--color-muted)}.error{color:var(--color-danger)}.flash{color:var(--color-accent)}.site-header{margin-bottom:3.25rem}.site-header h1,.page>h1{letter-spacing:-.03em;margin:0;font-size:clamp(2.25rem,6vw,3.5rem);font-weight:700;line-height:1.05}.tagline{letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted);margin:.75rem 0 0;font-size:.8rem}.crumb{letter-spacing:.02em;text-transform:uppercase;justify-content:space-between;margin-bottom:2rem;font-size:.8rem;display:flex}.search{margin-bottom:2rem}.search input{width:100%;padding:.6rem .75rem;font-size:.9rem}.artist-grid{grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr));gap:1.75rem 1.25rem;display:grid}.artist-card{color:var(--color-fg)}.artist-card img,.photo-placeholder{aspect-ratio:1;object-fit:cover;background:var(--color-placeholder);width:100%;transition:transform .35s cubic-bezier(.4,0,.2,1);display:block}.artist-card:hover img,.artist-card:hover .photo-placeholder{transform:scale(1.04)}.artist-card{overflow:hidden}.photo-placeholder{color:var(--color-muted);place-items:center;font-size:2.5rem;font-weight:700;display:grid}.artist-card-label{flex-direction:column;gap:.15rem;padding-top:.6rem;display:flex}.artist-card-label strong{font-size:.95rem}.artist-card-label .muted{letter-spacing:.05em;text-transform:uppercase;font-size:.7rem}.artist-header{align-items:flex-start;gap:1.5rem;margin-bottom:2.75rem;display:flex}.artist-photo{object-fit:cover;background:var(--color-placeholder);flex-shrink:0;width:128px;height:128px}.artist-header h1{letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,4.5vw,2.5rem);font-weight:700;line-height:1.15}.description{white-space:pre-wrap;margin:.6rem 0 0;font-size:.95rem}.artist-header .muted{margin:.6rem 0 0;font-size:.95rem}.art-grid{grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr));gap:1.75rem 1.25rem;display:grid}.art-card{cursor:pointer;margin:0}.art-card .art-card-image{aspect-ratio:1;background:var(--color-placeholder);width:100%;overflow:hidden}.art-card img{object-fit:cover;width:100%;height:100%;transition:transform .35s cubic-bezier(.4,0,.2,1);display:block}.art-card:hover img{transform:scale(1.04)}.art-card figcaption{flex-direction:column;gap:.15rem;padding-top:.6rem;display:flex}.art-card figcaption strong{font-size:.95rem}.art-card figcaption .muted{letter-spacing:.05em;text-transform:uppercase;font-size:.7rem}.lightbox{z-index:100;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.lightbox:before{content:"";-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1414148c;animation:.2s modal-fade;position:absolute;inset:0}.lightbox-dialog{z-index:1;background:var(--color-light);border:1px solid var(--color-border);cursor:default;width:min(760px,100%);max-height:90vh;animation:.22s cubic-bezier(.4,0,.2,1) modal-pop;position:relative;overflow:auto;box-shadow:0 24px 60px #00000038}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px)scale(.99)}}.lightbox-close{z-index:2;width:2rem;height:2rem;color:var(--color-fg);background:var(--color-light);border:1px solid var(--color-border);cursor:pointer;justify-content:center;align-items:center;font-size:1.5rem;line-height:1;display:inline-flex;position:absolute;top:.5rem;right:.6rem}.lightbox-close:hover{border-color:var(--color-accent);color:var(--color-accent)}.lightbox-dialog img{object-fit:contain;background:var(--color-track);width:100%;max-height:70vh;display:block}.lightbox-dialog p{flex-direction:column;gap:.2rem;margin:0;padding:1rem 1.25rem 1.25rem;display:flex}.lightbox-dialog p span{letter-spacing:.03em;text-transform:uppercase;color:var(--color-muted);font-size:.72rem}.button{letter-spacing:.04em;text-transform:uppercase;color:var(--color-light);background:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;border-radius:0;padding:.55rem 1rem;font-size:.78rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-block}.button:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-light)}.button.small{padding:.3rem .6rem;font-size:.7rem}.button.danger{color:var(--color-danger);background:var(--color-light);border-color:var(--color-border)}.button.danger:hover{border-color:var(--color-danger);background:var(--color-light)}button.link{color:var(--color-accent);cursor:pointer;font:inherit;letter-spacing:.02em;text-transform:uppercase;background:0 0;border:0;padding:0;font-size:.8rem}.panel{border:1px solid var(--color-border);margin-bottom:1.25rem;padding:1.25rem}.panel.login{max-width:340px}.panel h2{letter-spacing:-.01em;margin:0 0 1rem;font-size:1.15rem}.panel h2 a{letter-spacing:.03em;text-transform:uppercase;margin-left:.5rem;font-size:.72rem}.stack{flex-direction:column;gap:.9rem;margin-top:.6rem;display:flex}.stack label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);flex-direction:column;flex:1;gap:.3rem;font-size:.7rem;font-weight:600;display:flex}input,textarea{font:inherit;color:var(--color-dark);background:var(--color-light);border:1px solid var(--color-border);border-radius:0;padding:.5rem .65rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #0096972e}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}details summary{cursor:pointer;color:var(--color-accent);letter-spacing:.02em;text-transform:uppercase;margin-top:.5rem;font-size:.8rem}.chip-row{flex-wrap:wrap;gap:.5rem;display:flex}.chip{font:inherit;border:1px solid var(--color-border);background:var(--color-light);color:var(--color-fg);cursor:pointer;border-radius:0;padding:.35rem .75rem;font-size:.78rem;transition:border-color .15s}.chip:hover{border-color:var(--color-accent)}.chip-active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-light)}.chip-active .muted{color:#ffffffbf}.mini{object-fit:cover;vertical-align:middle;width:42px;height:42px;margin-left:.5rem}.artwork-row{border-top:1px solid var(--color-border);grid-template-columns:56px 1fr auto;align-items:center;gap:.75rem;padding:.6rem 0;display:grid}.artwork-row img{object-fit:cover;background:var(--color-placeholder);width:56px;height:56px}.artwork-row-info{flex-direction:column;min-width:0;display:flex}.artwork-row-info .muted{letter-spacing:.03em;text-transform:uppercase;font-size:.72rem}.artwork-edit{background:var(--color-track);border:1px solid var(--color-border);grid-column:1/-1;padding:.9rem}
