/* /merch — merch landing page. Self-contained like advertise.css: the page
   never depends on the app shell. Kept in an external file because every
   inline <style> block would need its own CSP hash (see gen-csp-hashes). */

:root {
  --merch-bg: #060606;
  --merch-panel: #111113;
  --merch-panel-2: #17171c;
  --merch-line: #232326;
  --merch-text: #f2f2f4;
  --merch-muted: #9a9aa4;
  --merch-dim: #6f6f79;
  --merch-red: #e50914;
  /* Small red text (kicker, slot numbers) needs the brighter tone: #e50914
     on #060606 is 4.23:1, under AA for 10-12px copy. */
  --merch-red-text: #ff2233;
  --merch-red-dim: #7a1f2a;
}

* { box-sizing: border-box; }
html { background: var(--merch-bg); }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--merch-bg);
  background-image: radial-gradient(ellipse at 50% -10%, rgba(229, 9, 20, 0.18), transparent 60%);
  color: var(--merch-text);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }

.merch-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  max-width: 1040px;
  margin: 0 auto;
  padding: 18px 22px;
  border-bottom: 1px solid var(--merch-line);
}
.merch-logo { display: flex; align-items: center; text-decoration: none; }
.merch-logo .logo-img { display: block; height: 38px; width: auto; }
.merch-back {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--merch-muted);
  text-decoration: none;
}
.merch-back:hover { color: #fff; }

.merch-main {
  max-width: 1040px;
  margin: 0 auto;
  padding: 52px 22px 80px;
}

.merch-kicker {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2.4px;
  color: var(--merch-red-text);
  border: 1px solid var(--merch-red-dim);
  border-radius: 999px;
  padding: 5px 12px;
  text-transform: uppercase;
}
.merch-h1 {
  font-family: "Archivo Black", "Arial Black", Impact, sans-serif;
  font-size: clamp(36px, 6.4vw, 68px);
  line-height: 0.98;
  letter-spacing: -1px;
  text-transform: uppercase;
  margin: 18px 0 16px;
}
.merch-h1 span { color: var(--merch-red); }
.merch-lede {
  font-size: 17px;
  color: #c9c9d1;
  margin: 0 0 28px;
  max-width: 620px;
}

.merch-cta {
  display: inline-block;
  background: var(--merch-red);
  color: #fff;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 8px;
  text-decoration: none;
  transition: background 0.16s, transform 0.16s;
}
.merch-cta:hover { background: #ff1a27; transform: translateY(-1px); }
.merch-cta-note {
  display: block;
  margin-top: 10px;
  font-size: 12px;
  color: var(--merch-muted);
}

/* The drop — one card per live product. Mockups come from Printify's image
   host (CSP img-src allows any https: host); the fixed 1:1 aspect-ratio
   reserves the box so the lazy image cannot shift the layout. */
.merch-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin: 48px 0 0;
}
.merch-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--merch-line);
  border-radius: 14px;
  background: var(--merch-panel);
  text-decoration: none;
  transition: border-color 0.16s, transform 0.16s;
}
.merch-card:hover { border-color: var(--merch-red-dim); transform: translateY(-2px); }
.merch-card-shot {
  display: block;
  aspect-ratio: 1 / 1;
  background: #0d0d0f;
  overflow: hidden;
}
.merch-card-shot img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.merch-card-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px 18px 18px;
}
.merch-card-name {
  font-family: "Archivo Black", "Arial Black", Impact, sans-serif;
  font-size: 15px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: #fff;
}
.merch-card-meta { font-size: 12.5px; color: var(--merch-muted); }
.merch-card-cta {
  margin-top: 8px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--merch-red-text);
}

.merch-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 40px;
}
.merch-panel {
  background: var(--merch-panel);
  border: 1px solid var(--merch-line);
  border-radius: 14px;
  padding: 24px;
}
.merch-panel h2 {
  font-family: "Archivo Black", "Arial Black", Impact, sans-serif;
  font-size: 15px;
  letter-spacing: 0.4px;
  margin: 0 0 8px;
}
.merch-panel p {
  margin: 0;
  font-size: 13.5px;
  color: var(--merch-muted);
}

.merch-final {
  margin-top: 56px;
  padding: 34px 26px;
  border: 1px solid var(--merch-red-dim);
  border-radius: 16px;
  background: radial-gradient(120% 140% at 50% 0%, #1b0c10 0%, var(--merch-panel) 60%);
  text-align: center;
}
.merch-final h2 {
  font-family: "Archivo Black", "Arial Black", Impact, sans-serif;
  font-size: clamp(20px, 3vw, 28px);
  text-transform: uppercase;
  margin: 0 0 10px;
}
.merch-final p {
  color: var(--merch-muted);
  font-size: 13.5px;
  margin: 0 auto 22px;
  max-width: 460px;
}

.merch-foot {
  border-top: 1px solid var(--merch-line);
  padding: 22px;
  text-align: center;
  font-size: 12px;
  color: var(--merch-muted);
}
.merch-foot a { color: var(--merch-muted); text-decoration: none; }
.merch-foot a:hover { color: #fff; }

@media (max-width: 760px) {
  .merch-main { padding-top: 40px; }
  .merch-grid { grid-template-columns: 1fr; margin-top: 36px; }
  .merch-split { grid-template-columns: 1fr; }
  .merch-lede { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .merch-cta { transition: none; }
  .merch-cta:hover { transform: none; }
}
