:root {
  --cream: #c9e8f5;
  --wine: #641600;
  --pink: #d44fa4;
  --orange: #ec5a38;
  --yellow: #e8b927;
  --teal: #176d82;
  --ink: #17251f;
}

body { color: var(--ink); }
nav { background: rgba(239, 126, 188, .96); border-color: var(--ink); }
.date-pill, .cta, .small-button { background: var(--ink); }
.hero {
  color: var(--ink);
  background:
    radial-gradient(circle at 15% 28%, rgba(232,185,39,.9) 0 8%, transparent 8.5%),
    radial-gradient(circle at 82% 72%, rgba(91,63,154,.82) 0 14%, transparent 14.5%),
    repeating-radial-gradient(ellipse at 55% 45%, transparent 0 25px, rgba(100,22,0,.14) 27px 31px),
    linear-gradient(135deg, #65c9e8 0 27%, #ec5a38 27% 57%, #6a49a5 57% 78%, #f4d126 78%);
}
.ticker { background: var(--ink); }
.details { background: #512073; }
.lineup { background: linear-gradient(150deg, #c9e8f5 0 45%, #8dc7ec 45% 70%, #ffd23f 70%); }
.artist { border-color: var(--ink); }
.artist-photo { box-shadow: 10px 10px 0 var(--orange); }
.tag { background: var(--yellow); border-color: var(--ink); }
.number { color: var(--yellow); }
.eats { background: linear-gradient(135deg, #ff7043, #7150ad 55%, #ffc928); }
.card { background: #bde9ff; border-color: var(--ink); box-shadow: 5px 5px 0 var(--ink); }
.sponsor { display:inline-block; margin:22px 0 4px; padding:11px 15px; background:var(--yellow); border:2px solid var(--ink); font-weight:700; }
footer { background: linear-gradient(135deg, #512073, #347fbc 42%, #ec5a38 72%, #f4d126); color:#fff; }
.footer-sponsor { margin:20px auto 0; font-family:'Bebas Neue',sans-serif; font-size:22px; letter-spacing:2px; }
footer > p:last-child { margin-top:22px; }

.sponsor-logo { display:block; width:min(280px,72vw); height:auto; margin:28px 0 10px; }
.food-only { grid-template-columns:minmax(0,720px); }

.dj-blake-photo { object-fit:contain; background:#171329; filter:brightness(1.14) contrast(1.03) saturate(1.05); }
.footer-sponsor-block { width:min(520px,90vw); margin:28px auto 0; padding:18px; border:2px solid rgba(255,255,255,.75); border-radius:18px; background:rgba(255,255,255,.12); }
.footer-sponsor-block .footer-sponsor { margin:0; }
.footer-sponsor-block .sponsor-logo { margin:18px auto 0; filter:drop-shadow(0 2px 0 rgba(255,255,255,.7)); }

.collab-credit { display:inline-block; margin:0 0 18px; padding:9px 14px; border:2px solid var(--ink); background:var(--pink); font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:2px; }
.compact-artist { padding-top:28px; padding-bottom:28px; }
.compact-artist .artist-copy { padding-top:10px; }
.compact-artist h3 { font-size:clamp(38px,4.3vw,58px); }
.compact-artist .artist-copy>p { font-size:17px; }
.dj-blake-photo { object-fit:cover; object-position:center; filter:brightness(1.14) contrast(1.03) saturate(1.05); }
.dj-eclectic-photo { width:78%; max-height:520px; margin-inline:auto; object-fit:contain; background:#171329; }

/* Preserve the supplied photo proportions while retaining the existing cards. */
.compact-artist .artist-photo { height:auto; }
.dj-blake-photo { width:100%; aspect-ratio:3 / 2; object-fit:cover; object-position:center; }
.dj-eclectic-photo { width:min(72%, 430px); max-height:none; aspect-ratio:2 / 3; object-fit:cover; object-position:center; }
.dj-shiva-photo { aspect-ratio:1 / 1; object-fit:contain; object-position:center; background:#eee; }
