/* =========================================
   0. VARIABLES (COLOUR PALETTE)
   ========================================= */

:root {
  --bg-body: #111111;
  --bg-page: #f7f4ee;
  --ink: #111111;
  --accent: #784a4a;       /* hot pink accent */
  --accent-2: #451e1e;     /* toxic green accent */
  --grey-mid: #666666;
  --grey-light: #cccccc;
}

/* =========================================
   1. RESET & BASE STYLES
   ========================================= */

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  background:
    repeating-linear-gradient(
      0deg,
      #101010,
      #101010 2px,
      #111111 2px,
      #111111 4px
    );
  font-family: "Verdana", "Geneva", sans-serif;
  font-size: 14px;
  color: var(--ink);
  overflow-x: hidden;
}


/* Global link styles */
a {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

a:visited {
  color: #cc1f52;
}

a:hover {
  color: var(--accent-2);
  text-decoration-style: wavy;
}


/* =========================================
   2. PAGE LAYOUT
   ========================================= */

#page {
  max-width: 860px;
  width: 100%;
  margin: 25px auto 40px auto;
  background: var(--bg-page);
  border: 2px solid #000;
  box-shadow: 6px 6px 0 #000;
  padding: 12px 14px 20px 14px;
}

#main {
  /* hook for later if needed */
}

/* Main content area */
#content {
  width: 100%;
  padding: 0 4px;
}

/* Top-level H1 inside content */
#content h1 {
  margin-top: 8px;
  margin-bottom: 8px;
  font-size: 24px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}


/* =========================================
   3. HEADER & ASCII LOGO
   ========================================= */

#header {
  border-bottom: 2px dashed #000;
  padding-bottom: 10px;
  margin-bottom: 10px;
}

#header h1 {
  font-family: "Courier New", monospace;
  font-size: 30px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

#header h1 a {
  text-decoration: none;
  color: var(--ink);
}

#header h1 a:hover {
  background: var(--accent);
  color: #fff;
  padding: 0 3px;
}

#header .tagline {
  font-size: 11px;
  color: var(--grey-mid);
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Container for logo(s) */
.ascii-logo {
  text-align: center;
  margin: 0 auto;
}

/* ASCII art logo (default) */
.ascii-logo pre {
  font-family: monospace;
  white-space: pre;
  line-height: 1;
  margin: 0 auto;
  max-width: 100%;
  font-size: clamp(6px, 2.2vw, 14px);
  filter: contrast(1.2);
}

/* Image logo (hidden by default, shown only in Instagram webview) */
.logo-img {
  display: none;
  max-width: 100%;
  height: auto;
  margin: 4px auto 0 auto;
  image-rendering: pixelated; /* keep it crunchy */
}

/* Small screens tweak for ASCII size */
@media (max-width: 480px) {
  .ascii-logo pre {
    font-size: 6px;
  }
}

/* Center logo within header */
#header .ascii-logo {
  text-align: center;
}

/* === Instagram-specific behaviour === */
/* When <html> has .insta-webview (set by JS), hide ASCII and show image */

html.insta-webview .ascii-logo pre {
  display: none;
}

html.insta-webview .ascii-logo .logo-img {
  display: block;
}

/* =========================================
   4. TOP NAVIGATION BAR
   ========================================= */

#nav {
  margin: 6px 0 10px 0;
  padding: 5px 0;
  border-bottom: 1px dotted #000;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;

  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 10px;
}

#nav a {
  color: var(--ink);
  background: #f0e7d5;
  border: 1px solid #000;
  padding: 2px 6px;
  display: inline-block;
}

#nav a:hover {
  background: var(--accent);
  color: #fff;
}


/* =========================================
   5. POSTS / BASIC CONTENT BLOCKS
   ========================================= */

.post {
  margin-bottom: 25px;
  padding: 10px;
  border: 1px solid #000;
  background: #fdfaf2;
  box-shadow: 3px 3px 0 #00000055;
}

.post h2 {
  font-family: "Courier New", monospace;
  font-size: 18px;
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.post h2 a {
  text-decoration: none;
  color: var(--ink);
}

.post h2 a:hover {
  background: var(--accent-2);
  color: #000;
  padding: 0 3px;
}

.post .meta {
  font-size: 10px;
  color: var(--grey-mid);
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.post p {
  margin-bottom: 8px;
  line-height: 1.5;
}

/* Old sidebar styles (kept but toned down) */
#sidebar h3 {
  font-size: 12px;
  background: #000;
  color: #fff;
  padding: 4px 6px;
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

#sidebar p {
  margin-bottom: 8px;
}

#sidebar ul {
  list-style-type: square;
  padding-left: 18px;
  margin-bottom: 10px;
}

#sidebar li {
  margin-bottom: 3px;
}
/* =========================================
   6. SIMPLE TAB STRIP (if still used)
   ========================================= */

.tabs {
  margin-top: 12px;
}

/* Top tab navigation bar */
.tab-nav {
  border-bottom: 1px solid #000;
  margin-bottom: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.tab-link {
  background: #f0e7d5;
  border: 1px solid #000;
  border-bottom: none;
  padding: 4px 9px;
  font-size: 12px;
  cursor: pointer;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.tab-link.is-active {
  background: #ffffff;
  font-weight: bold;
  border-bottom: 1px solid #ffffff;
}

/* Tab panels (for the old single tab set) */
.tab-panels {
  padding: 8px 0;
}

.tab-panel {
  display: none;
}

.tab-panel.is-active {
  display: block;
}

/* Latest posts list on the home tab */
.latest-list {
  list-style: square;
  margin: 8px 0 0 18px;
  font-size: 13px;
}

.latest-list li {
  margin-bottom: 3px;
}

.latest-meta {
  color: var(--grey-mid);
  font-size: 11px;
  font-style: italic;
}


/* =========================================
   7. DROPDOWN SECTIONS (<details>)
   ========================================= */

.dropdown {
  margin: 10px 0;
  border: 1px dashed #000;
  background: #f7f0dd;
  padding: 5px 8px;
}

.dropdown summary {
  cursor: pointer;
  font-weight: bold;
  font-size: 12px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.dropdown ul {
  list-style: square;
  margin-top: 6px;
  margin-left: 18px;
  font-size: 13px;
}

.dropdown li {
  margin-bottom: 3px;
}

/* Horizontal retro flyer strip */
.gig-gallery {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 8px 0;
  scrollbar-width: thin;
}

/* For WebKit (Chrome, Safari) optional scroll styling */
.gig-gallery::-webkit-scrollbar {
  height: 6px;
}
.gig-gallery::-webkit-scrollbar-track {
  background: #ddd;
}
.gig-gallery::-webkit-scrollbar-thumb {
  background: #888;
}

/* Each flyer */
.gig-gallery img {
  height: 260px;                  /* adjust to taste */
  border: 1px solid #000;
  box-shadow: 3px 3px 0 #000;
  filter: grayscale(100%) contrast(1.2);
  background: #fff;
  flex-shrink: 0;                  /* don’t let them squish */
  object-fit: cover;
}

/* Tiny “wonky photocopy” effect */
.gig-gallery img:nth-child(2n) {
  transform: rotate(-1.5deg);
}
.gig-gallery img:nth-child(2n+1) {
  transform: rotate(1deg);
}

.gig-gallery img:hover {
  filter: grayscale(0%) contrast(1.1);
  box-shadow: 4px 4px 0 #000;
  transform: scale(1.02);
}

/* =========================================
   8. MULTI-SECTION TABBED BOXES
      (Featured / Releases / Archive)
   ========================================= */

/* Intro at the top of the page */
.page-intro {
  margin-bottom: 16px;
  border-left: 3px solid var(--accent);
  padding-left: 8px;
}

.page-intro h1 {
  font-size: 22px;
  margin-bottom: 3px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.page-intro p {
  font-size: 12px;
  color: var(--grey-mid);
}

/* Outer containers (Featured, Releases, Archive) */
.tab-section {
  background: #fff;
  border: 2px solid #000;
  border-radius: 0;
  margin-bottom: 20px;
  box-shadow: 4px 4px 0 #000;
  overflow: hidden;
}

/* Header strip per section */
.section-header {
  background: #fff;
  color: #000;
  border-bottom: 1px solid #000;
  padding: 5px 10px;
}

.section-header h2 {
  font-size: 14px;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

/* Inner tab bar inside each section */
.section-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 5px 10px;
  border-bottom: 1px dashed #000;
  background: #fff;
}

.section-tab {
  background: #ffffff;
  border: 1px solid #000;
  padding: 5px 10px;
  font-size: 12px;
  cursor: pointer;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.section-tab.is-active {
  background: var(--accent);
  color: #fff;
}

/* Panels inside each section */
.section-panels {
  padding: 8px 12px 12px 12px;
}

.section-panel {
  display: none;
  font-size: 13px;
}

.section-panel.is-active {
  display: block;
}

.section-panel h3 {
  font-size: 12px;
  margin-top: 8px;
  margin-bottom: 3px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.section-panel ul {
  list-style: square;
  margin-left: 18px;
  margin-bottom: 6px;
}

.section-panel li {
  margin-bottom: 3px;
}

/* Spacing and layout for article/archive filter controls */
.review-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 12px;
}

/* Adds space between "Filter by type" and "Sort by" */
.review-type-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}

.review-sort select {
  font-family: "Courier New", monospace;
  font-size: 12px;
  padding: 3px 6px;
  border: 1px solid #000;
  background: #fff;
}

.review-filter-btn {
  font-family: "Courier New", monospace;  /* change this to any font you like */
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 8px;
  border: 1px solid #000;
  background: #fff;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
/* Headings inside filter areas ("Filter by type", "Sort by") */
.review-filters strong {
  font-family: "Courier New", monospace;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  font-size: 13px;
  color: #000;
  margin-right: 3px;
}

/* Active or hovered button */
.review-filter-btn:hover,
.review-filter-btn.is-active {
  background: var(--accent);
  color: #fff;
}

/* =========================================
   9. FOOTER
   ========================================= */

#footer {
  clear: both; /* ensure it sits below floated elements */
  text-align: center; /* horizontal centering */
  font-family: "Courier New", monospace;
  font-size: 10px;
  padding: 10px 0;
  letter-spacing: 0.1em;
  transform: rotate(-0.3deg);
  margin-top: 20px;
  color: var(--grey-mid);
}
#footer p {
  margin-top: 2px;
}
/* =========================================
   STICKY "BACK TO HOME" BUTTON (PER ARTICLE)
   ========================================= */

.post {
  position: relative; /* ensures sticky behaves nicely inside */
}

/* default / desktop-ish behaviour */
.back-home-btn {
  position: sticky;
  bottom: 1.2rem;          /* distance from bottom of viewport while in view */

  display: inline-block;
  margin-top: 1.5rem;
  margin-bottom: 0;        /* avoid extra gap after */

  padding: 0.5rem 1.2rem;

  background: #784a4a;
  color: #fff;
  border: 2px solid #fff;
  box-shadow: 3px 3px 0 #000;

  font-family: "Courier New", monospace;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;

  float: right;            /* sits towards the right edge of the article */
  opacity: 0.95;

  transition:
    transform 0.1s ease-out,
    box-shadow 0.1s ease-out,
    opacity 0.15s ease-out,
    background 0.1s ease-out,
    color 0.1s ease-out;
}

.back-home-btn:hover {
  background: var(--accent);
  color: #000;
  box-shadow: 4px 4px 0 #000;
  transform: translate(-1px, -1px);
  opacity: 1;
}

/* Mobile: make it span the width inside the article */
@media (max-width: 600px) {
  .back-home-btn {
    float: none;
    display: block;

    width: 100%;
    text-align: center;

    margin-top: 1.5rem;
    padding: 0.7rem 1.2rem;

    font-size: 0.9rem;
    bottom: 0.8rem; /* still sticky near bottom of viewport */
  }
}
/* === LISTEN SECTION === */

.listen-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.listen-item {
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 8px;
  align-items: center;
  padding: 6px 8px;
  border: 1px solid #000;
  background: #fdfaf2;
  box-shadow: 3px 3px 0 #000;
}

/* Album art */
.listen-art img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border: 1px solid #000;
  background: #fff;
  box-shadow: 2px 2px 0 #000;
}

.listen-art-placeholder {
  width: 80px;
  height: 80px;
  border: 1px dashed #000;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  text-transform: uppercase;
}

/* BUTTON WRAPPER */
.listen-links {
  display: flex;
  flex-direction: column;  /* desktop: stacked */
  align-items: flex-end;   /* right-align in the grid column */
  gap: 4px;
}

/* GENRE TAG ETC. */
.listen-genre-tag {
  display: inline-block;
  margin-top: 8px;
  padding: 3px 6px;
  border: 1px solid #000;
  background: #f0e7d5;
  font-family: "Courier New", monospace;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

@media (max-width: 600px) {
  .listen-genre-tag {
    font-size: 9px;
    padding: 2px 5px;
    margin-top: 6px;
    white-space: normal;        /* allow wrapping */
    overflow-wrap: break-word;  /* break long words */
    display: inline-block;      /* ensures wrapping happens */
  }
}

/* Text column */
.listen-meta {
  font-size: 12px;
}

.listen-title {
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 2px;
}

.listen-details {
  font-size: 11px;
  color: var(--grey-mid);
}

/* LISTEN button */
.bc-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center !important;
  line-height: 0;
  gap: 4px;
  padding: 3px 8px;
  font-size: 11px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  border: 1px solid #000;
  background: #fff;
  text-decoration: none;
  color: #000;
}

.bc-link:hover {
  background: var(--accent);
  color: #fff;
}

.bc-logo {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 1px solid #000;
  border-radius: 3px;
  font-size: 9px;
  line-height: 12px;
  text-align: center;
  background: #000;
  color: #fff;
}

.website-desc {
  font-size: 12px;
  margin-top: 4px;
  color: var(--grey-mid);
}

/* READ REVIEW button */
.review-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  font-size: 11px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  padding: 4px 6px;
  border: 1px solid #000;
  background: #fff;
  text-decoration: none;
  margin-top: 4px;
  color: #000;
  transition:
    transform 0.1s ease-out,
    box-shadow 0.1s ease-out,
    background 0.1s ease-out,
    color 0.1s ease-out;
}

.review-link:hover {
  background: var(--accent);
  color: #fff;
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #000;
}

/* ⭐ make both buttons same size */
.bc-link,
.review-link {
  width: 110px;
  box-sizing: border-box;
}

/* MOBILE: buttons inline + centred */
@media (max-width: 640px) {
  .listen-links {
    flex-direction: row;     /* side by side */
    justify-content: left;
    align-items: left;
    text-align: center;
  }

  .review-link {
    margin-top: 0;           /* remove the vertical gap when inline */
  }
}

/* === LISTEN SECTION PAGINATION === */
.listen-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.listen-page-btn {
  font-size: 11px;
  padding: 6px 10px;
  border: 1px solid #000;
  background: #fff;
  box-shadow: 2px 2px 0 #000;
  color: #000;
  cursor: pointer;
  transition:
    transform 0.1s ease-out,
    box-shadow 0.1s ease-out,
    background 0.1s ease-out,
    color 0.1s ease-out;
}

.listen-page-btn:hover:not(:disabled) {
  background: var(--accent);
  color: #fff;
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #000;
}

/* Disabled state */
.listen-page-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  box-shadow: none;
}

.listen-page-info {
  font-size: 11px;
  color: var(--grey-mid);
}


/* If you want the Visit button to look slightly different from Bandcamp links, you can do: */
.website-link .bc-logo {
  font-size: 12px;
}
/* Mobile layout: stack vertically */
@media (max-width: 660px) {
  .listen-item {
    grid-template-columns: 60px 1fr;
    grid-template-rows: auto auto;
  }
  .listen-links {
    grid-column: 1 / -1;
    text-align: left;
    margin-top: 4px;
  }
  .listen-art img,
  .listen-art-placeholder {
    width: 60px;
    height: 60px;
  }
}

/* Listen section controls (sort + page size) */
.listen-controls {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
  font-family: "Courier New", monospace;
  font-size: 11px;
  text-transform: uppercase;
}

.listen-controls label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.listen-controls select {
  font-family: "Courier New", monospace;
  font-size: 11px;
  border: 1px solid #000;
  background: #fff;
  padding: 2px 4px;
}


.listen-sort-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.listen-sort-select {
  font-family: "Courier New", monospace;
  font-size: 11px;
  border: 1px solid #000;
  background: #fff;
  padding: 2px 4px;
}

.listen-filter-btn {
  font-family: "Courier New", monospace;
  font-size: 11px;
  letter-spacing: 0.06em;
  padding: 3px 7px;
  border: 1px solid #000;
  background: #fff;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    transform 0.1s ease-out,
    box-shadow 0.1s ease-out;
}

.listen-toggle-reviews {
  transition: none;
}

.listen-toggle-reviews.is-active {
  background: var(--accent);
  color: #fff;
  transform: none;
  box-shadow: 2px 2px 0 #000; /* or whatever your normal state is */
}



/* Page-size dropdown styling to match */
.listen-page-size-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: "Courier New", monospace;
  font-size: 11px;
  text-transform: uppercase;
}

.listen-page-size {
  font-family: "Courier New", monospace;
  font-size: 11px;
  border: 1px solid #000;
  background: #fff;
  padding: 2px 4px;
}

/* === ZINE GRID (Option B) === */

.zine-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 8px;
}

.zine-card {
  border: 1px solid #000;
  background: #fdfaf2;
  box-shadow: 3px 3px 0 #000;
  padding: 6px;
  display: flex;
  flex-direction: column;
}

.zine-cover-placeholder {
  width: 100%;
  height: 200px;
  border: 1px dashed #000;
  background: #fdfaf2;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  text-transform: uppercase;
}

.zine-card-header h3 {
  font-family: "Courier New", monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 3px 0;
}

/* Blurb / meta: 5 lines visible by default, expandable */
.zine-card-meta {
  font-size: 11px;
  line-height: 1.4;
  margin: 0 0 8px 0;

  /* ~5 lines worth of height */
  min-height: 7em;
  max-height: 7em;
  overflow: hidden;

  display: -webkit-box;
  -webkit-line-clamp: 5;      /* show up to 5 lines */
  -webkit-box-orient: vertical;
}

.zine-card-meta.is-expanded {
  max-height: none;
  min-height: 0;
  -webkit-line-clamp: unset;
}

/* For cards with no meta, we still want space reserved
   so the button & download link line up nicely */
.zine-card-meta--empty {
  min-height: 7em;
  max-height: 7em;
}

.zine-card-more-btn {
  align-self: flex-start;
  margin: 0 0 6px 0;
  padding: 2px 6px;
  font-size: 10px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 1px solid #000;
  background: #fff;
  cursor: pointer;
  box-shadow: 2px 2px 0 #000;
}

.zine-card-more-btn:hover {
  background: var(--accent);
  color: #fff;
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #000;
}


.zine-card-featured {
  list-style: square;
  padding-left: 14px;
  margin: 0 0 6px 0;
  font-size: 11px;
}

.zine-card-actions {
  margin-top: auto;
  text-align: left;
}

/* ========== ZINE DOWNLOAD STRIP ========== */

.section-zines .section-panel {
  font-size: 13px;
}
/* Horizontal scroll row for zines */
.zine-scroll-row {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 8px 0;
  scrollbar-width: thin;
}

.zine-scroll-row::-webkit-scrollbar {
  height: 6px;
}
.zine-scroll-row::-webkit-scrollbar-track {
  background: #ddd;
}
.zine-scroll-row::-webkit-scrollbar-thumb {
  background: #888;
}

/* Zine card container */
.zine-card {
  flex: 0 0 190px;            /* fixed-ish width for consistency */
  border: 1px solid #000;
  background: #fdfaf2;
  box-shadow: 3px 3px 0 #000;
  padding: 6px;
  display: flex;
  flex-direction: column;
}
/* Cover area */
.zine-card-cover {
  width: 100%;
  aspect-ratio: 3 / 4;       /* 3:4 'zine' shape, tweak if you like */
  border: 1px solid #000;
  background: #fff;
  box-shadow: 2px 2px 0 #000;
  overflow: hidden;
  margin-bottom: 6px;

  display: flex;
  align-items: center;
  justify-content: center;
}

.zine-card-cover img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;       /* keep original aspect ratio */
  display: block;
}


.zine-card-cover-placeholder {
  width: 100%;
  height: 100%;
  font-size: 10px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0e7d5;
}

/* Inner body is flex column so button can sit at the bottom */
.zine-card-body {
  display: flex;
  flex-direction: column;
  margin-top: 2px;
}

/* Title fixed directly under the image */
.zine-card-title {
  font-size: 12px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 2px 0;
}

/* Date line just under the title */
.zine-card-date {
  font-size: 10px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #777;
  margin-bottom: 4px;
}

/* Featured / summary block:
   - fixed-ish height to keep cards uniform
   - clamp long text to 3 lines
*/
.zine-card-meta {
  font-size: 11px;
  line-height: 1.4;
  margin: 0 0 8px 0;

  min-height: 4.6em;          /* ~3 lines of text */
  max-height: 4.6em;
  overflow: hidden;

  display: -webkit-box;
  -webkit-line-clamp: 4;      /* show up to 3 lines */
  -webkit-box-orient: vertical;
}

.zine-card-meta--empty {
  /* ensures empty ones still take up the same vertical space */
}

/* Download button pinned towards the bottom of the card */
.zine-download-link {
  margin-top: auto;           /* pushes it to the bottom of the card */
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  padding: 4px 6px;
  border: 1px solid #000;
  background: #fff;
  text-decoration: none;
  box-shadow: 2px 2px 0 #000;
}

.zine-download-link:hover {
  background: var(--accent);
  color: #fff;
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #000;
}

/* Mobile: shrink card width a bit */
@media (max-width: 600px) {
  .zine-card {
    flex: 0 0 160px;
  }
}

/* ===== MUSIC DOWNLOADS (torrent-y list) ===== */

.section-music-downloads .download-list {
  list-style: none;
  margin: 8px 0 0 0;
  padding: 0;
}

.section-music-downloads .download-item {
  display: grid;
  grid-template-columns: 1fr auto; /* left meta, right button */
  gap: 8px;
  align-items: center;

  padding: 8px 10px;
  border: 1px solid #000;
  background: #fdfaf2;
  box-shadow: 3px 3px 0 #000;
  margin-bottom: 8px;
}

/* Left column (meta) */
.section-music-downloads .download-meta {
  font-size: 12px;
  font-family: "Courier New", monospace; /* torrent vibe */
  line-height: 1.4;
}

.section-music-downloads .download-title {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 700;
  margin-bottom: 2px;
}

.section-music-downloads .download-details {
  color: var(--grey-mid);
  font-size: 11px;
}

/* Optional tag */
.section-music-downloads .download-genre-tag {
  display: inline-block;
  margin-top: 6px;
  padding: 1px 4px;
  border: 1px solid #000;
  background: #f0e7d5;
  font-family: "Courier New", monospace;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Right column (button) */
.section-music-downloads .listen-links {
  text-align: right;
}

.section-music-downloads .dl-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  padding: 6px 8px;
  border: 1px solid #000;
  background: #fff;
  text-decoration: none;
  box-shadow: 2px 2px 0 #000;
  color: #000;
  transition:
    transform 0.1s ease-out,
    box-shadow 0.1s ease-out,
    background 0.1s ease-out,
    color 0.1s ease-out;
}

.section-music-downloads .dl-link:hover {
  background: var(--accent);
  color: #fff;
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #000;
}

.section-music-downloads .dl-logo {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 1px solid #000;
  border-radius: 3px;
  font-size: 10px;
  line-height: 14px;
  text-align: center;
  background: #000;
  color: #fff;
}

/* Controls */
.section-music-downloads .listen-controls {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
  font-family: "Courier New", monospace;
  font-size: 11px;
  text-transform: uppercase;
}

/* Mobile */
@media (max-width: 600px) {
  .section-music-downloads .download-item {
    grid-template-columns: 1fr;
  }
  .section-music-downloads .listen-links {
    text-align: left;
  }
}


/* === ABOUT SECTION === */
.about-content {
  position: relative;
  font-size: 12px;
  line-height: 1.5;
}

/* Float image so text wraps around */
.about-figure {
  float: right;
  width: 40%;
  margin: 0 0 10px 16px;
  border: 1px solid #000;
  background: #fdfaf2;
  box-shadow: 3px 3px 0 #000;
  padding: 5px;
  text-align: center;
}

.about-figure img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #000;
}

.about-figure figcaption {
  font-size: 10px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--grey-mid);
  margin-top: 4px;
}

/* Signature */
.about-signoff {
  margin-top: 10px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* Stack neatly on mobile */
@media (max-width: 600px) {
  .about-figure {
    float: none;
    width: 100%;
    margin: 0 0 12px 0;
  }
}
.about-content p {
  margin-bottom: 12px; /* increase this for more space */
}



/* === UNIVERSAL ARTICLE BODY / POST-CONTENT === */

.post-content {
  font-size: 14px;
  line-height: 1.6;
  color: #000;
  font-family: "Verdana", "Geneva", sans-serif;
  position: relative;
}

/* Paragraphs */
.post-content p {
  margin-bottom: 14px;
  padding-bottom: 6px;
}

/* Give the last paragraph a clean edge */
.post-content p:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

/* Headings */
.post-content h2,
.post-content h3 {
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 22px 0 10px;
  border-left: 3px solid #000;
  padding-left: 6px;
  display: inline-block;
  transform: rotate(-0.4deg);
}

/* Slight misprint jitter for DIY vibe */
@keyframes wonky-text {
  0%, 100% { transform: rotate(-0.4deg); }
  50% { transform: rotate(0.4deg); }
}
.post-content h2 {
  animation: wonky-text 6s infinite ease-in-out alternate;
}

/* Inline images / figures (automatic wrapping) */
.post-content figure,

.post-cover {
  float: left;
  background: #fff;
  padding: 1px;
  margin: 4px 18px 4px 0; /* top | right | bottom | left */
  shape-outside: inset(0 round 4px); /* ensures smooth text wrapping */
  shape-margin: 8px; /* controls text distance all around */
}

.post-cover img {
  display: block;
  width: 180px;
  height: 180px;
  object-fit: cover;
  border: 1px solid #000;
  background: #fff;
  box-shadow: 2px 2px 0 #000;
}

.post-content figcaption {
  font-size: 11px;
  color: var(--grey-mid);
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 4px;
  text-align: center;
}

/* Optional slightly imperfect horizontal rules */
.post-content hr {
  border: none;
  border-top: 1px dashed #000;
  margin: 20px 0;
  transform: rotate(-0.3deg);
}

/* On mobile, stack neatly */
@media (max-width: 600px) {
  .post-content figure,
  .post-content img {
    float: none;
    width: 100%;
    margin: 0 0 12px 0;
    transform: none;
  }
  .post-content h2 {
    animation: none;
    transform: none;
  }
}

/* === POST BANDCAMP BUTTON === */

.post-bandcamp {
  margin-top: 24px;
  text-align: center;
}

.post-bandcamp a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: "Courier New", monospace;
  font-size: 13px;
  text-transform: uppercase;
  color: #000;
  background: #fff;
  border: 1px solid #000;
  padding: 6px 10px;
  text-decoration: none;
  box-shadow: 3px 3px 0 #000;
  transition:
    transform 0.1s ease-out,
    box-shadow 0.1s ease-out,
    background 0.1s ease-out,
    color 0.1s ease-out;
}

.post-bandcamp a:hover {
  background: var(--accent);
  color: #fff;
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 #000;
}

.post-bandcamp .bc-logo {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 1px solid #000;
  border-radius: 3px;
  font-size: 10px;
  line-height: 14px;
  text-align: center;
  background: #000;
  color: #fff;
}

/* Zine 'More' clamp — namespaced to the section to avoid earlier overrides */
.section-zines .zine-card-meta {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;     /* show first 4 lines */
  overflow: hidden;
  max-height: 4.6em;         /* ~3–4 lines depending on font */
  min-height: 4.6em;         /* keep cards same height when short */
}

.section-zines .zine-card-meta.is-expanded {
  -webkit-line-clamp: unset;
  max-height: none;
  min-height: 0;
}

.section-zines .zine-card-more-btn {
  align-self: flex-start;
  margin: 0 0 6px 0;
  padding: 2px 6px;
  font-size: 10px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 1px solid #000;
  background: #fff;
  cursor: pointer;
  box-shadow: 2px 2px 0 #000;
}

.section-zines .zine-card-more-btn:hover {
  background: var(--accent);
  color: #fff;
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #000;
}
/* ===== MATCH SITE STYLE: Confirm Download Modal ===== */

/* keep the same hide helper */
.download-modal.hidden { display: none !important; }

/* dim background */
.download-modal{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  background: rgba(0,0,0,.45);
}

/* modal card = same card look as lists */
.download-modal-box{
  width: min(520px, 92vw);
  background: #fff;                 /* same as cards */
  color: #000;
  border: 2px solid #000;           /* strong outline like the rest */
  box-shadow: 4px 4px 0 #000;       /* zine-y drop */
  padding: 10px 12px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* text line */
.download-modal-text{
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1.4;
}

/* actions row */
.download-modal-actions{
  display: flex;
  gap: 6px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

/* buttons: clone your .dl-link look */
.btn-confirm,
.btn-cancel{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-family: "Courier New", monospace;
  text-transform: uppercase;
  padding: 6px 8px;
  border: 1px solid #000;
  background: #fff;
  text-decoration: none;
  box-shadow: 2px 2px 0 #000;
  color: #000;
  cursor: pointer;
  transition:
    transform .1s ease-out,
    box-shadow .1s ease-out,
    background .1s ease-out,
    color .1s ease-out;
}

/* hover = same as bc / review / dl buttons */
.btn-confirm:hover,
.btn-cancel:hover{
  background: var(--accent);
  color: #fff;
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 #000;
}

/* tiny nudge: make confirm feel primary */
.btn-confirm{
  background: #fff;
}
.btn-cancel{
  background: #f0e7d5; /* matches nav chip bg */
}

/* focus ring for accessibility */
.btn-confirm:focus-visible,
.btn-cancel:focus-visible{
  outline: 2px dashed #000;
  outline-offset: 2px;
}

/* subtle entrance (no flashy motion) */
@media (prefers-reduced-motion: no-preference){
  .download-modal-box{
    opacity: 0.98;
    transform: translateY(4px);
    transition: transform .12s ease, opacity .12s ease;
  }
  .download-modal:not(.hidden) .download-modal-box{
    opacity: 1; transform: translateY(0);
  }
}

/* stack buttons on mobile */
@media (max-width: 480px){
  .download-modal-box{ padding: 10px; }
  .download-modal-actions{
    justify-content: stretch;
  }
  .btn-confirm, .btn-cancel{
    width: 100%;
    justify-content: center;
  }
}

/* =========================================
   10. BASIC RESPONSIVENESS / MOBILE TAP TARGETS
   ========================================= */

@media (max-width: 600px) {
  #page {
    margin: 10px auto 20px auto;
    box-shadow: 3px 3px 0 #000;
    padding: 10px 10px 16px 10px;
  }

  #header h1 {
    font-size: 20px;
    letter-spacing: 0.08em;
  }

  /* Top nav: slightly larger, more padding */
  #nav {
    font-size: 11px;
    gap: 6px;
  }

  #nav a {
    padding: 4px 10px;
  }

  /* Old single tab strip (if used) */
  .tab-link {
    font-size: 12px;
    padding: 6px 10px;
  }

  /* MULTI-SECTION TABS (Featured / Releases / Archive) */

  /* Stack tabs vertically instead of in a row */
  .section-tabs {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }

  .section-tab {
    width: 100%;
    text-align: left;
    font-size: 13px;
    padding: 10px 12px;
    min-height: 40px; /* better tap target size */
  }

  .section-panels {
    padding: 8px 10px 10px 10px;
  }

  .section-panel {
    font-size: 13px;
  }

  .post {
    padding: 8px;
  }
}
