@font-face { font-family: "Alte Haas"; src: url("assets/fonts/AlteHaasGroteskRegular.ttf") format("truetype"); font-weight: 400; }
@font-face { font-family: "Alte Haas"; src: url("assets/fonts/AlteHaasGroteskBold.ttf") format("truetype"); font-weight: 700; }
@font-face { font-family:"Redaction"; src:url("assets/fonts/redaction/Redaction-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Redaction 10"; src:url("assets/fonts/redaction/Redaction_10-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Redaction 20"; src:url("assets/fonts/redaction/Redaction_20-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Redaction 35"; src:url("assets/fonts/redaction/Redaction_35-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Redaction 50"; src:url("assets/fonts/redaction/Redaction_50-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Redaction 70"; src:url("assets/fonts/redaction/Redaction_70-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Redaction 100"; src:url("assets/fonts/redaction/Redaction_100-Regular.woff2") format("woff2"); font-weight:400; font-display:swap; }

:root { --ink:#f4f2ed; --muted:#9a9791; --rule:#343230; --paper:#121212; --accent:#8d332e; --measure:760px; }
* { box-sizing:border-box; }
html { min-height:100%; }
body { margin:0; min-height:100%; background:var(--paper); color:var(--ink); font-family:"Alte Haas",Helvetica,Arial,sans-serif; font-size:16px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
a:hover, a:focus { color:#bd6159; }
img { display:block; max-width:100%; height:auto; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.06; }
button,input,select,textarea { font:inherit; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.section-return { margin-top:4rem; font-size:14px; }
.section-return a { text-decoration:underline; text-underline-offset:.25em; }

.site-header { width:min(1320px,100%); margin:0 auto; padding:1.5rem 2rem; display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.brand { --brand-height:42px; display:flex; align-items:center; gap:.3rem; flex:none; }
.brand:hover,.brand:focus { color:var(--ink); }
.brand img { width:var(--brand-height); height:var(--brand-height); flex:none; transform:translateY(-2px); }
.redaction-brand { display:block; white-space:nowrap; font-family:"Redaction",serif; font-size:calc(var(--brand-height) * 1.3); font-weight:400; line-height:.74; letter-spacing:-.015em; }
.redaction-brand span { display:inline-block; text-align:left; font-family:var(--redaction-face,"Redaction"),serif; font-weight:400; }
.site-header nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.6rem 1.2rem; font-size:14px; text-transform:lowercase; }
.site-header nav a[aria-current] { color:#e56d64; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.25em; }
body:not(.admin-page) main { width:min(1180px,100%); margin:0 auto; padding:5rem 2rem 8rem; }
.site-footer { width:min(1180px,100%); margin:0 auto; padding:3rem 2rem 2rem; border-top:1px solid var(--rule); display:flex; justify-content:space-between; gap:2rem; color:var(--muted); font-size:12px; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:1rem; }
.site-footer p { margin:0; }
.footer-notes { display:grid; justify-items:end; gap:.35rem; text-align:right; }
.meta,.empty,small { color:var(--muted); font-size:13px; }

.home-page { background:var(--paper); }
body.home-page .site-header,body.home-page .site-footer { display:none; }
body.home-page main { width:100%; min-height:100vh; padding:2rem 1.5rem; display:grid; place-items:center; }
.home-stack { display:grid; justify-items:center; gap:1.5rem; text-align:center; }
.home-mark { width:clamp(156px,20.8vw,273px); transform:translateY(-.65rem); }
.redaction-title { margin:0; white-space:nowrap; font-family:"Redaction",serif; font-size:clamp(2.8rem,7vw,6.5rem); font-weight:400; line-height:.95; letter-spacing:-.015em; }
.redaction-title span { display:inline-block; text-align:left; font-family:var(--redaction-face,"Redaction"),serif; font-weight:400; }
.redaction-title .level-10,.redaction-brand .level-10 { --redaction-face:"Redaction 10"; }
.redaction-title .level-20,.redaction-brand .level-20 { --redaction-face:"Redaction 20"; }
.redaction-title .level-35,.redaction-brand .level-35 { --redaction-face:"Redaction 35"; }
.redaction-title .level-50,.redaction-brand .level-50 { --redaction-face:"Redaction 50"; }
.redaction-title .level-70,.redaction-brand .level-70 { --redaction-face:"Redaction 70"; }
.redaction-title .level-100,.redaction-brand .level-100 { --redaction-face:"Redaction 100"; }
.home-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem 1.25rem; font-size:14px; text-transform:lowercase; }

/* Homepage lockup laid out like .brand in the header: mark to the left of the
   wordmark and vertically centred on it, scaled up for the landing page. The
   mark runs 1.3x the text size here rather than the header's smaller ratio.
   app/templates/home-stacked.html keeps the earlier centred stack. */
.home-inline { justify-items:start; text-align:left; }
.home-inline .home-nav { justify-self:stretch; justify-content:center; }
.home-lockup { --lockup-height:clamp(46px,5.6vw,80px); display:flex; align-items:center; gap:.55rem; }
.home-lockup .home-mark { width:calc(var(--lockup-height) * 1.3); transform:none; }
.home-lockup .redaction-title { font-size:calc(var(--lockup-height) * 1.3); line-height:.74; }

/* The wordmark cannot wrap, so narrow screens keep the stacked presentation. */
@media (max-width:700px) {
  .home-inline { justify-items:center; text-align:center; }
  .home-inline .home-nav { justify-content:center; }
  .home-lockup { display:grid; justify-items:center; gap:1.5rem; }
  .home-lockup .home-mark { width:clamp(156px,20.8vw,273px); transform:translateY(-.65rem); }
  .home-lockup .redaction-title { font-size:clamp(2.8rem,7vw,6.5rem); line-height:.95; }
}

.archive { max-width:980px; margin:0 auto; }
.archive>h1 { margin-bottom:5rem; font-size:clamp(3rem,7vw,6.5rem); letter-spacing:-.04em; }
.vertical-list { display:grid; gap:6rem; }
.mix-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3rem 2rem; }
.mix-card { min-width:0; }
.mix-card>a { display:block; }
.mix-card img,.mix-cover-placeholder { width:100%; aspect-ratio:1; height:auto; object-fit:cover; }
.mix-cover-placeholder { background:var(--rule); }
.mix-card h2 { margin:1rem 0 .5rem; font-size:24px; line-height:1.2; overflow-wrap:anywhere; }
.mix-card time { display:block; }
.music-card-details { margin:0 0 .35rem; line-height:1.35; }
.archive-item>a { display:grid; grid-template-columns:minmax(220px,1fr) minmax(260px,.9fr); gap:clamp(2rem,7vw,7rem); align-items:center; }
.archive-item img { width:100%; max-height:620px; object-fit:cover; }
.article-archive .archive-item img { aspect-ratio:3/2; height:auto; max-height:none; object-fit:cover; }
.archive-item h2 { margin:.5rem 0 1rem; font-size:clamp(2rem,4vw,4rem); letter-spacing:-.035em; }

.prose { max-width:var(--measure); margin:0 auto; }
.prose>header { margin-bottom:5rem; }
.prose h1 { margin:.4rem 0 0; font-size:clamp(3rem,7vw,6rem); letter-spacing:-.04em; }
.article-cover { width:100%; aspect-ratio:3/2; height:auto; object-fit:cover; margin-bottom:4rem; }
.image-zoomable { cursor:zoom-in; }
.image-zoomable:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
html.lightbox-open { overflow:hidden; }
.image-lightbox { position:fixed; inset:0; width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:4rem 1rem 1rem; border:0; background:rgba(12,12,12,.96); color:#f4f2ed; }
.image-lightbox[open] { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; }
.image-lightbox::backdrop { background:rgba(0,0,0,.85); }
.image-lightbox>img { width:auto; height:auto; max-width:100%; max-height:calc(100dvh - 10rem); object-fit:contain; flex-shrink:1; min-height:0; }
.image-lightbox>img { cursor:zoom-out; }
.lightbox-close { position:absolute; top:.75rem; right:1rem; width:44px; height:44px; padding:0; border:0; border-radius:0; background:transparent; color:#fff; font-size:30px; line-height:1; cursor:pointer; }
.lightbox-caption { margin:0; max-width:760px; max-height:4rem; overflow:auto; font-size:14px; text-align:center; color:#bbb; }
.rich-text { font-size:18px; line-height:1.72; }
.rich-text>* { max-width:100%; }
.rich-text p,.rich-text ul,.rich-text ol,.rich-text pre,.rich-text blockquote { margin-bottom:1.6em; }
.rich-text h2 { margin:2.6em 0 .8em; font-size:32px; }
.rich-text h3 { margin:2.2em 0 .7em; font-size:24px; }
.rich-text figure,.rich-text img,.rich-text .wp-block-image { margin:3.5rem auto; }
.rich-text figure img,.rich-text .wp-block-image img { margin:0 auto; }
.rich-text figcaption { margin-top:.6rem; color:var(--muted); font-size:12px; text-align:center; }
.rich-text pre { overflow:auto; padding:1.25rem; border:1px solid var(--rule); background:#090909; color:#e8e6e0; font-size:14px; line-height:1.55; }
.rich-text code { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.rich-text .wp-block-kevinbatdorf-code-block-pro { margin:2rem 0; overflow:hidden; border:1px solid #414958; border-radius:10px; background:#2e3440; box-shadow:0 12px 30px #0003; }
.rich-text .wp-block-kevinbatdorf-code-block-pro>span:first-child { margin:0!important; padding:14px 18px!important; }
.rich-text .wp-block-kevinbatdorf-code-block-pro>span:first-child svg { display:block; }
.rich-text .wp-block-kevinbatdorf-code-block-pro>pre { margin:0; border:0; border-radius:0; padding:1.25rem; }
.rich-text iframe { width:100%; min-height:420px; border:0; }
.rich-text a { text-decoration:underline; text-decoration-color:#655; text-underline-offset:.2em; }
.article-links { display:flex; flex-wrap:wrap; gap:1rem 2rem; margin-top:5rem; padding-top:1.5rem; border-top:1px solid var(--rule); font-size:20px; }
.article-link-row { display:flex; flex-wrap:wrap; align-items:end; gap:1rem; margin-bottom:1rem; }
.article-link-row .field { flex:1 1 160px; }
.simple-page { min-height:55vh; }
.simple-page>h1 { margin-bottom:4rem; }
.contact-page .simple-page { display:grid; align-content:start; justify-items:center; text-align:center; }

.player { position:relative; width:100%; min-height:180px; margin-bottom:4rem; }
.player iframe { width:100%; min-height:180px; border:0; }
body.mix-detail-page main { width:min(1320px,100%); }
.mix-heading { margin:0 0 3rem; text-align:center; }
.mix-heading h1 { margin:0; font-size:clamp(2rem,4.5vw,4rem); line-height:1.1; letter-spacing:-.035em; overflow-wrap:anywhere; }
.mix-layout.has-player { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:2rem; align-items:start; }
.mix-layout.no-player { max-width:var(--measure); margin:0 auto; }
.mix-player iframe { display:block; width:100%; border:0; }
.mix-player.video-player iframe { aspect-ratio:16/9; }
.mix-player.audio-player iframe { height:300px; }
.mix-info { min-width:0; overflow-wrap:anywhere; }
.mix-date { margin:0 0 1.5rem; }
.mix-info .rich-text { font-size:16px; }
.mix-info .rich-text>:first-child { margin-top:0; }
.mix-tracks { margin-top:3rem; overflow-wrap:anywhere; }
.mix-tracks h2 { margin:0 0 1rem; font-size:24px; }
.mix-tracklist { width:100%; table-layout:fixed; border-collapse:collapse; font-size:14px; line-height:1.5; }
.mix-tracklist th,.mix-tracklist td { text-align:left; vertical-align:top; padding:.75rem .5rem; border-bottom:1px solid var(--rule); }
.mix-tracklist th:first-child,.mix-tracklist td:first-child { width:2rem; padding-left:0; color:var(--muted); }
.mix-tracklist th:last-child,.mix-tracklist td:last-child { padding-right:0; }
.mix-tracklist .track-time { width:6rem; font-variant-numeric:tabular-nums; }
.mix-tracklist .track-listen { width:9rem; }
.mix-tracklist .track-listen a { white-space:nowrap; }
.tracklist-json { width:100%; font-family:monospace; font-size:14px; }
.mix-tracklist .track-listen a { text-decoration:underline; text-underline-offset:.2em; }
@media (max-width:600px) {
  .mix-tracklist { font-size:12px; }
  .mix-tracklist th,.mix-tracklist td { padding:.65rem .25rem; }
  .mix-tracklist .track-time { width:3.6rem; }
  .mix-tracklist .track-listen { width:7rem; }
}
.mix-links { display:flex; flex-direction:column; align-items:flex-start; gap:.75rem; margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--rule); }
.mix-info .section-return { margin-top:2.5rem; }
@media (max-width:900px) {
  .mix-layout.has-player { grid-template-columns:minmax(0,1fr); }
  .mix-heading { margin-bottom:2rem; }
}
body.release-detail-page main { width:min(1320px,100%); }
.release-page { width:100%; margin:0 auto; }
.release-heading { margin:0 0 3rem; text-align:center; }
.release-heading .release-meta { margin:0 0 .5rem; }
.release-heading h1 { margin:0; font-size:clamp(2rem,4.5vw,4rem); line-height:1.1; letter-spacing:-.035em; overflow-wrap:anywhere; }
.release-layout { display:grid; grid-template-columns:minmax(280px,520px) minmax(0,1fr); gap:clamp(2rem,6vw,5rem); align-items:start; }
.release-cover { width:100%; aspect-ratio:1; object-fit:cover; }
.release-cover-placeholder { background:var(--rule); }
.release-info { min-width:0; }
.release-by { margin:0; font-size:clamp(1.6rem,3vw,2.5rem); line-height:1.1; }
.release-by span { font-size:.65em; font-weight:400; }
.release-by strong { font-weight:700; }
.short-url { margin:1rem 0 .75rem; color:#c4beba; }
.short-url a { font-family:ui-monospace,monospace; text-decoration:underline; text-underline-offset:.2em; }
.listen-links { display:flex; flex-wrap:wrap; gap:.6rem 1rem; text-transform:capitalize; font-size:14px; }
.release-description { width:100%; max-width:none; margin-top:1.75rem; font-size:16px; line-height:1.62; }
.release-description>:first-child { margin-top:0; }
.release-track-section { margin-top:5rem; }
.release-track-section h2 { margin:0 0 1.5rem; font-size:30px; }
.release-track-table-wrap { max-width:100%; overflow-x:auto; }
.release-tracklist { width:100%; min-width:680px; border-collapse:collapse; font-size:14px; }
.release-tracklist th,.release-tracklist td { padding:1rem .75rem; border-bottom:1px solid var(--rule); text-align:left; vertical-align:top; }
.release-tracklist th { color:var(--muted); font-weight:400; }
.release-tracklist th:first-child,.release-tracklist td:first-child { width:3rem; padding-left:0; color:var(--muted); }
.release-tracklist th:nth-child(3),.release-tracklist td:nth-child(3),.release-tracklist th:nth-child(4),.release-tracklist td:nth-child(4),.release-tracklist th:nth-child(5),.release-tracklist td:nth-child(5) { width:6rem; }
.release-tracklist th:last-child,.release-tracklist td:last-child { width:13rem; padding-right:0; }
.release-track-links { display:flex; flex-wrap:wrap; gap:.4rem .8rem; text-transform:capitalize; }
.release-notes { display:grid; grid-template-columns:1fr 1fr; gap:4rem; margin-top:5rem; padding-top:2rem; border-top:1px solid var(--rule); }
@media (max-width:900px) {
  .release-layout { grid-template-columns:1fr; }
  .release-heading { margin-bottom:2rem; }
}

/* Admin remains intentionally separate from the public site. */
.admin-page { min-height:100%; background:#f4f3f1; color:#24211f; font-family:Helvetica,Arial,sans-serif; font-size:15px; }
.admin-page a { color:inherit; }
.admin-bar { position:sticky; top:0; z-index:100; min-height:58px; padding:.7rem 1.5rem; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:2rem; color:#fff; background:#b42318; box-shadow:0 1px 0 rgba(0,0,0,.18); }
.admin-bar a { color:#fff; }
.admin-bar a:hover { color:#fff; opacity:.75; }
.admin-brand { white-space:nowrap; }
.admin-nav { display:flex; gap:.25rem; align-items:center; }
.admin-nav a { padding:.35rem .55rem; border-radius:3px; }
.admin-nav a:hover { background:rgba(255,255,255,.12); opacity:1; }
.admin-account { display:flex; align-items:center; gap:1rem; font-size:12px; white-space:nowrap; }
.admin-account span { opacity:.68; }
body.admin-page main { width:min(1220px,100%); margin:0 auto; padding:2.25rem 1.5rem 5rem; }
.flash { margin-bottom:1rem; padding:.75rem 1rem; border-radius:4px; background:#fff; }
.flash.error { color:#b42318; border:1px solid #e0b4b0; }
.admin-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.admin-heading.compact { margin-top:3rem; }
.admin-heading h1 { margin:0; font-size:30px; }
.admin-heading h2 { margin:0; }
.admin-kicker { margin:0 0 .25rem; color:#b42318; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.admin-panel { padding:1.35rem; border:1px solid #ddd9d5; border-radius:5px; background:#fff; box-shadow:0 1px 2px rgba(32,25,20,.04); }
.table-panel { padding:0; overflow-x:auto; }
.table { border:1px solid #ddd9d5; border-radius:5px; background:#fff; }
.table .row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 1rem; border-bottom:1px solid #e8e4e1; }
.table .row:last-child { border-bottom:0; }
.empty-state { margin:0; padding:1rem; color:#888; }
.button,button { display:inline-flex; align-items:center; justify-content:center; min-height:35px; padding:.45rem .7rem; border:1px solid #d8d4d0; border-radius:3px; background:#fff; color:#24211f; cursor:pointer; }
.button.primary,button.primary { border-color:#24211f; background:#24211f; color:#fff; }
button.danger { color:#b42318; }
.actions,.panel-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; }
.panel-actions { padding:1rem; }
.actions form { margin:0; }
.meta { color:#888; }
.form-grid { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)); gap:1rem; }
.span-all { grid-column:1/-1; }
.field { display:grid; gap:.4rem; color:#5d5752; font-size:13px; font-weight:600; }
.field input,.field select,.field textarea,.admin-page input,.admin-page select,.admin-page textarea { width:100%; min-height:42px; padding:.5rem .65rem; border:1px solid #dedad6; border-radius:3px; background:#fff; color:#24211f; font-weight:400; }
.field-title input { font-size:17px; }
.post-editor-form { display:grid; gap:1.25rem; }
.editor-panel { padding:0; overflow:hidden; }
.field-heading { padding:1.15rem 1.25rem; border-bottom:1px solid #e2dfdc; }
.field-heading h2 { margin:0; font-size:17px; }
.field-heading p { margin:.2rem 0 0; color:#888; font-size:13px; }
.wysiwyg-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:.35rem; padding:.55rem .65rem; border-bottom:1px solid #e2dfdc; background:#faf9f8; }
.wysiwyg-toolbar button,.wysiwyg-toolbar select { width:auto; min-height:34px; border-color:transparent; background:transparent; }
.wysiwyg-toolbar button[aria-pressed="true"] { background:#eadedb; border-color:#c5a8a2; }
.editor-link-panel:not([hidden]) { display:flex; flex-wrap:wrap; align-items:end; gap:.6rem; padding:1rem; background:#f4eeeb; border-bottom:1px solid #ddd9d5; }
.editor-link-panel .field { flex:1 1 260px; }
.editor-link-panel [role="alert"] { flex-basis:100%; color:#b42318; }
.wysiwyg-body a { color:#9c291f; text-decoration:underline; cursor:pointer; }
.toolbar-divider { width:1px; height:24px; background:#ddd9d5; }
.toolbar-spacer { flex:1; }
.wysiwyg-body { min-height:420px; padding:2.5rem max(1.25rem,calc((100% - 720px)/2)); outline:0; background:#fff; font-size:17px; line-height:1.75; }
.wysiwyg-body:empty::before { content:"Start writing, or drop an image here…"; color:#aaa39d; }
.wysiwyg-body img { width:auto; max-width:100%; margin:0 auto; }
.wysiwyg-body pre { padding:1rem; overflow:auto; background:#f3f2f0; font-family:ui-monospace,monospace; }
.wysiwyg.is-dragover .wysiwyg-body { outline:3px solid rgba(180,35,24,.22); outline-offset:-3px; }
.upload-status { min-height:30px; padding:.35rem .75rem; color:#888; font-size:12px; background:#faf9f8; }
.upload-status:empty { display:none; }
.editor-actions { position:sticky; bottom:0; z-index:20; display:flex; justify-content:space-between; gap:1rem; padding:.75rem 1rem; border:1px solid #ddd9d5; border-radius:5px; background:rgba(255,255,255,.96); box-shadow:0 -5px 20px rgba(32,25,20,.06); }
.admin-table { width:100%; border-collapse:collapse; font-size:14px; }
.admin-table th,.admin-table td { padding:.7rem .6rem; border-bottom:1px solid #e8e4e1; text-align:left; vertical-align:middle; }
.admin-table th { color:#888; font-weight:400; }
.admin-table input { min-width:110px; }
.wide-table { min-width:1100px; }
.position { width:4rem!important; }
.drag-handle { min-width:38px; border-color:transparent; background:transparent; font-size:22px; cursor:grab; }
.admin-page:not(.no-js) .sortable-table .position { position:absolute; width:1px!important; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.sortable-table tr.is-dragging { opacity:.34; }
.sortable-table tr.drop-before td { box-shadow:inset 0 3px 0 #b42318; }
.sortable-table tr.drop-after td { box-shadow:inset 0 -3px 0 #b42318; }
.hero-picker { list-style:none; margin:1rem 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:.75rem; }
.hero-picker label { cursor:pointer; }
.thumb { width:96px; height:96px; object-fit:cover; }
.tiny-thumb { width:48px; height:48px; object-fit:cover; }
.item-with-thumb { display:flex; align-items:center; gap:.8rem; }
.item-with-thumb>span { display:grid; }
.cover-builder { margin-top:2rem; }
.cover-builder>div { display:grid; grid-template-columns:180px 1fr; gap:1.5rem; }
.cover-builder img { width:180px; }
.media-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1.5rem; }
.media-upload,.media-card { display:grid; gap:.75rem; margin-bottom:1.5rem; padding:1rem; border:1px solid #ddd9d5; border-radius:5px; background:#fff; }
.media-preview img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.media-meta { display:flex; flex-wrap:wrap; gap:.5rem; color:#888; font-size:12px; }
.pager { display:flex; justify-content:center; gap:1.5rem; margin-top:2rem; }

@media (max-width:800px) {
  .mix-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem 1.25rem; }
  .mix-card h2 { font-size:21px; }
  .site-header { align-items:flex-start; flex-wrap:wrap; padding:1rem; gap:1rem; }
  .brand { --brand-height:34px; }
  .site-header nav { width:100%; justify-content:flex-start; gap:.45rem .8rem; }
  body:not(.admin-page) main { padding:3rem 1rem 6rem; }
  body.home-page main { padding:1.5rem 1rem; }
  .home-mark { width:169px; }
  .archive>h1 { margin-bottom:3rem; }
  .archive-item>a { grid-template-columns:1fr; gap:1.5rem; }
  .vertical-list { gap:4.5rem; }
  .release-notes { grid-template-columns:1fr; gap:2rem; }
  .site-footer { flex-direction:column; padding:2rem 1rem; }
  .footer-notes { justify-items:start; text-align:left; }
  .admin-bar { grid-template-columns:1fr auto; gap:.5rem 1rem; padding:.65rem 1rem; }
  .admin-nav { grid-column:1/-1; grid-row:2; overflow-x:auto; }
  .admin-account span { display:none; }
  body.admin-page main { padding:1.5rem 1rem 4rem; }
  .form-grid { grid-template-columns:1fr; }
  .span-all { grid-column:auto; }
  .wysiwyg-body { min-height:340px; padding:1.5rem 1rem; }
  .editor-actions .meta { display:none; }
  .cover-builder>div { grid-template-columns:1fr; }
}
@media (max-width:480px) {
  .site-header { padding-inline:.75rem; overflow-x:clip; }
  .brand { --brand-height:28px; max-width:100%; }
  .redaction-brand { font-size:calc(var(--brand-height) * 1.25); }
  .mix-grid { grid-template-columns:1fr; }
}
