*{box-sizing:border-box;margin:0;padding:0}
:root{--pad:clamp(16px,3vw,40px)}
html{-webkit-text-size-adjust:100%}
body{font:400 16px/1.5 "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;background:#fff;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,h4,h5,strong,b,.logo,.t{font-weight:700}

header,main,footer{max-width:1400px;margin-inline:auto;padding-inline:var(--pad)}
.bar{display:flex;justify-content:space-between;align-items:baseline;padding-block:var(--pad)}
nav a+a{margin-left:1.5rem}
main{padding-bottom:calc(var(--pad)*2)}
section{margin-top:clamp(48px,8vw,112px)}

.intro{font-size:clamp(1.5rem,3.4vw,3rem);line-height:1.15;max-width:22em;margin-top:clamp(24px,5vw,72px)}
.label{font-size:1rem;border-top:1px solid #000;padding-top:.5rem;margin-bottom:.5rem}
.meta{font-size:.875rem}

.featured a{display:grid;grid-template-columns:3fr 2fr;gap:var(--pad);align-items:end}
.featured a:hover{text-decoration:none}
.featured img{width:100%;aspect-ratio:3/2;object-fit:cover}
.featured h2{font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.1;margin:.25rem 0 .75rem}
.featured a:hover h2{text-decoration:underline}

.rows{list-style:none}
.rows a{display:grid;grid-template-columns:9rem 1fr;gap:1rem;padding:.6rem 0;border-bottom:1px solid #000}
.rows a:hover{text-decoration:none}
.rows a:hover .t{text-decoration:underline}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--pad);margin-top:1rem}
.release{display:flex;flex-direction:column;font-size:.875rem}
.release:hover{text-decoration:none}
.release:hover .t{text-decoration:underline}
.release img,.nocover{width:100%;aspect-ratio:1;object-fit:cover;margin-bottom:.6rem}
.nocover{border:1px solid #000}

.post{max-width:760px;margin-top:clamp(24px,5vw,64px)}
.post h1,.release-page h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.05;margin:.25rem 0 1.5rem}
.hero{width:100%;margin-bottom:2rem}
.prose>*+*{margin-top:1em}
.prose h2,.prose h3,.prose h4,.prose h5{margin-top:1.8em}
.prose a{text-decoration:underline}
.prose ul,.prose ol{padding-left:1.4em}
.prose blockquote{border-left:2px solid #000;padding-left:1em}
.prose pre{overflow-x:auto;border:1px solid #000;padding:1em;font-size:.875rem}
.prose code{font-family:ui-monospace,Menlo,monospace;font-size:.9em}
.prose hr{border:0;border-top:1px solid #000}
.prose iframe{max-width:100%;border:0}
.terms{margin-top:3rem;padding-top:1rem;border-top:1px solid #000;font-size:.875rem}
.terms a{margin-right:.75rem;text-decoration:underline}

.release-page{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);margin-top:clamp(24px,5vw,64px);align-items:start}
.release-page .artist{font-size:1.25rem;font-weight:700;margin-bottom:1.5rem}
.links{list-style:none;margin-top:2rem}
.links li{border-top:1px solid #000}
.links a{display:block;padding:.6rem 0}
.release-page .cover img,.release-page .nocover{width:100%;aspect-ratio:1;object-fit:cover}

@media (max-width:760px){
  .featured a,.release-page{grid-template-columns:1fr}
  .rows a{grid-template-columns:6.5rem 1fr}
  .grid{grid-template-columns:repeat(2,1fr)}
}

/* Admin */
.admin header nav a{margin-left:1.5rem}
.admin form.inline{display:inline}
.admin button,.admin .btn{font:700 1rem "Helvetica Neue",Helvetica,Arial,sans-serif;background:#000;color:#fff;border:1px solid #000;padding:.5rem 1rem;cursor:pointer}
.admin button.ghost,.admin .btn.ghost{background:#fff;color:#000}
.admin button.link{background:none;color:#000;border:0;padding:0;text-decoration:underline;font-weight:400}
.admin label{display:block;font-weight:700;margin:1.25rem 0 .3rem}
.admin label.check{font-weight:400;display:flex;gap:.5rem;align-items:center}
.admin input[type=text],.admin input[type=date],.admin input[type=password],.admin select,.admin textarea{width:100%;font:400 1rem "Helvetica Neue",Helvetica,Arial,sans-serif;border:1px solid #000;padding:.55rem;background:#fff;border-radius:0}
.admin textarea{min-height:8rem;resize:vertical}
.admin textarea.big{min-height:22rem}
.admin .narrow{max-width:760px}
.admin .row{display:flex;gap:.75rem;align-items:center;margin-top:2rem;flex-wrap:wrap}
.admin .msg{border:1px solid #000;padding:.6rem 1rem;margin-bottom:1.5rem;font-weight:700}
.admin .files{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-top:.5rem}
.admin .files img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid #000}
.admin .files small{display:block;font-size:.75rem;word-break:break-all}
.admin .files code{font-size:.7rem;user-select:all}
.admin .rows a{grid-template-columns:1fr 7rem 7rem}
.admin h1{font-size:2rem;margin:2rem 0 1rem}
.admin h2{font-size:1rem;margin-top:2.5rem;display:flex;justify-content:space-between;border-top:1px solid #000;padding-top:.5rem}
