/* MixTape Showcase — shared styles for /mixes and every mix detail page.
   Reuses the landing site's palette + self-hosted Playfair. */

@font-face{
  font-family:'Playfair Display';font-style:normal;font-weight:400 900;
  font-display:swap;src:url(/fonts/pf-1.woff2) format('woff2');
}
@font-face{
  font-family:'Playfair Display';font-style:italic;font-weight:400 900;
  font-display:swap;src:url(/fonts/pf-2.woff2) format('woff2');
}

:root{
  --paper:#F0EADE; --paper-2:#E9E0D1; --card:#EDE6D6;
  --ink:#2A2521; --sub:#6B6259; --faint:#9A8E7D;
  --terra:#B4522E; --terra-deep:#9A421F;
  --sage:#5F7A5A; --dusty:#4A6B8A;
  --line:#D6CCBB; --line-soft:#E4DBCC;
  --display:"Playfair Display","Didot",Georgia,serif;
  --body:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:ui-sans-serif,system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --script:"Snell Roundhand","Segoe Script","Bradley Hand",cursive;
}
*{box-sizing:border-box}
html{background:var(--paper);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--body);color:var(--ink);line-height:1.6;font-size:17px;
  -webkit-font-smoothing:antialiased}
a{color:var(--terra);text-decoration:none}
a:hover{text-decoration:underline}
/* Cards and tracklist rows are whole-block links — never underline them. */
.card,.card:hover,.card *,.tracklist li a,.tracklist li a:hover{text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}

/* header / footer */
.nav{border-bottom:1px solid var(--line);background:var(--paper)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 0}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.brand img{height:28px;width:auto}
.brand .wordmark{font-family:var(--display);font-weight:800;font-size:22px}
.nav-links a{color:var(--sub);font-family:var(--sans);font-size:14px;margin-left:22px}
.nav-links a:hover{color:var(--terra)}
footer.site{border-top:1px solid var(--line);margin-top:70px;color:var(--faint);
  font-family:var(--sans);font-size:12.5px}
footer.site .row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:26px 0}
footer.site a{color:var(--faint)}
footer.site a:hover{color:var(--terra)}

/* eyebrow / headings */
.eyebrow{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--terra)}
h1.hero{font-family:var(--display);font-weight:600;font-size:clamp(34px,6.5vw,54px);
  line-height:1.06;margin:.24em 0 .18em;letter-spacing:-.01em;text-wrap:balance}
h1.hero em{font-style:italic;color:var(--terra)}
.lede{color:var(--sub);font-size:clamp(15px,2.3vw,18px);max-width:56ch;margin:0}

/* type badge */
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);
  font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:4px 11px;border-radius:20px;color:#fff;white-space:nowrap}
.badge.music{background:var(--terra)}
.badge.podcast{background:var(--dusty)}
.badge.both{background:var(--sage)}

/* filter chips (index) */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin:26px 0 8px}
.chip{font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--sub);
  background:transparent;border:1px solid var(--line);border-radius:22px;
  padding:8px 16px;cursor:pointer}
.chip:hover{border-color:var(--terra);color:var(--terra)}
.chip.on{background:var(--terra);border-color:var(--terra);color:#fff}

/* polaroid — matches the app: white card, square photo, captioned chin, tilt */
.polaroid{background:#FFFEFB;padding:6.5% 6.5% 20%;border-radius:3px;position:relative;
  box-shadow:0 10px 26px rgba(40,32,24,.20),0 2px 6px rgba(40,32,24,.12);
  transform:rotate(-1.4deg)}
.polaroid.r{transform:rotate(1.1deg)}
.polaroid .photo{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background:#E8E2D6}
.polaroid .photo img{width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.06)}
.polaroid .photo::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 32% 26%,rgba(255,246,222,.32),transparent 62%);
  box-shadow:inset 0 0 30px rgba(70,50,30,.22);mix-blend-mode:multiply}
.polaroid .cap{position:absolute;left:7%;right:7%;bottom:6%;text-align:center;
  font-family:var(--script);font-size:clamp(13px,2.7vw,18px);color:#4A4238;
  line-height:1.1;max-height:2.4em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* grid of cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:clamp(22px,3vw,34px);margin:30px 0 0}
.card{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.card .frame{padding:6px 10px 0}
.card .body{padding:16px 6px 0}
.card h3{font-family:var(--display);font-weight:600;font-size:21px;line-height:1.15;
  margin:10px 0 6px}
.card .desc{color:var(--sub);font-size:14.5px;line-height:1.5;margin:0 0 12px}
.card .tracks{list-style:none;padding:0;margin:0;border-top:1px solid var(--line-soft)}
.card .tracks li{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:13.5px;
  border-bottom:1px solid var(--line-soft);color:var(--ink)}
.card .tracks li:last-child{border-bottom:0}
.card .tri{color:var(--terra);font-size:11px;flex:none}
.card .tname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card .tby{color:var(--faint);flex:none}
.card .open{font-family:var(--sans);font-size:13px;font-weight:700;color:var(--terra);
  margin-top:12px}
.card:hover h3{color:var(--terra)}

/* detail page */
.detail{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:clamp(28px,5vw,56px);
  align-items:start;margin-top:34px}
.detail .art{position:sticky;top:24px}
.detail .prompt{font-family:var(--display);font-style:italic;font-size:clamp(18px,2.6vw,23px);
  color:var(--ink);line-height:1.4;margin:14px 0 10px}
.detail .desc{color:var(--sub);font-size:16px;line-height:1.65;max-width:56ch}
.detail h2.section{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);margin:30px 0 6px}
.tracklist{list-style:none;padding:0;margin:0}
.tracklist li a{display:flex;align-items:center;gap:13px;padding:12px 4px;
  border-bottom:1px solid var(--line-soft);color:var(--ink);text-decoration:none}
.tracklist li a:hover{color:var(--terra)}
.tracklist li a:hover .num{border-color:var(--terra);color:var(--terra)}
.tracklist .num{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--sub);
  font-family:var(--sans);font-size:12px}
.tracklist .info{min-width:0}
.tracklist .tt{font-weight:600;font-size:15.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tracklist .tb{color:var(--faint);font-size:13px;font-family:var(--sans)}
.tags{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0 0}
.tag{font-family:var(--sans);font-size:12px;color:var(--sub);border:1px solid var(--line);
  border-radius:16px;padding:4px 11px}
.cta{margin-top:34px;background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:22px 24px;display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:14px}
.cta .t{font-family:var(--display);font-weight:600;font-size:19px}
.cta .s{color:var(--sub);font-size:14px;font-family:var(--sans)}
.cta a.btn{background:var(--terra);color:#fff;font-family:var(--sans);font-weight:700;
  font-size:14.5px;padding:12px 22px;border-radius:24px;white-space:nowrap}
.cta a.btn:hover{background:var(--terra-deep);text-decoration:none}
.back{font-family:var(--sans);font-size:13.5px;color:var(--sub);margin:26px 0 0;display:inline-block}

@media (max-width:720px){
  .detail{grid-template-columns:1fr}
  .detail .art{position:static;max-width:300px}
}
