:root {
    --ink: #0a0a0a;
    --charcoal: #141414;
    --paper: #efe4cf;
    --paper2: #f7f0e2;
    --red: #a91f1f;
    --red2: #d1412f;
    --gold: #d2a34d;
    --cream: #fff6e5;
    --muted: #b8ab9b;
    --line: rgba(210, 163, 77, .34);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--cream);
    background: #090909;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.55;
}
a { color: inherit; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 12px 4vw;
    background: rgba(5,5,5,.96);
    border-bottom: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(10px);
}
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-weight:800; letter-spacing:.08em; }
.brand img { width: 56px; height: 56px; object-fit: contain; }
.site-nav { display:flex; align-items:center; gap:20px; font-weight:700; font-size:.92rem; }
.site-nav a { text-decoration:none; opacity:.88; }
.site-nav a:hover { opacity:1; color:#fff; }
.nav-donate { background:var(--red); padding:10px 16px; border-radius:8px; }
.nav-toggle { display:none; background:none; color:#fff; border:1px solid #444; border-radius:7px; font-size:1.4rem; padding:6px 10px; }

.hero {
    position: relative;
    overflow: hidden;
    min-height: 660px;
    display:flex;
    align-items:center;
    background:
        radial-gradient(circle at 75% 34%, rgba(196,93,24,.22), transparent 24%),
        radial-gradient(circle at 83% 65%, rgba(139,29,23,.2), transparent 22%),
        linear-gradient(115deg, #060606 0%, #0b0b0b 48%, #1a100a 100%);
}
.hero::before {
    content:"";
    position:absolute;
    inset:0;
    background-image:
      linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.015) 1px, transparent 1px);
    background-size: 34px 34px;
    opacity:.4;
}
.hero::after {
    content:"";
    position:absolute;
    right:7%; bottom:5%;
    width:310px; height:400px;
    border:3px solid rgba(210,163,77,.28);
    border-radius:150px 150px 28px 28px;
    transform:rotate(7deg);
    box-shadow:0 0 80px rgba(209,65,47,.13);
}
.hero-glow { position:absolute; border-radius:50%; filter:blur(50px); opacity:.28; }
.hero-glow-one { width:280px; height:280px; right:11%; top:16%; background:#d07a2c; }
.hero-glow-two { width:220px; height:220px; right:28%; bottom:10%; background:#a11d1d; }
.stage-lines { position:absolute; right:4%; bottom:0; width:46%; height:48%; border-top:1px solid rgba(210,163,77,.22); background:linear-gradient(180deg,transparent,rgba(100,55,22,.17)); }
.hero-inner { position:relative; z-index:2; width:min(1180px,92vw); margin:auto; display:grid; grid-template-columns:1.4fr .72fr; gap:54px; align-items:center; }
.presented { color:var(--gold); font-size:.82rem; font-weight:800; letter-spacing:.24em; margin-bottom:18px; }
.event-mark { width:min(650px,100%); display:block; margin-bottom:18px; }
.hero h1 { font-family:Georgia, serif; font-size:clamp(2.1rem,4vw,4rem); margin:.2em 0; line-height:1.05; }
.hero p { max-width:720px; color:#ddd1c0; font-size:1.12rem; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }
.btn { display:inline-block; text-decoration:none; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:13px 19px; border-radius:8px; transition:.2s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-red { background:var(--red); color:white; }
.btn-outline { border:1px solid rgba(255,255,255,.35); color:white; }
.btn-dark { background:#101010; color:white; }
.btn-cream { background:var(--paper2); color:#17110d; }
.event-card { background:rgba(15,15,15,.78); border:1px solid var(--line); border-radius:14px; padding:30px; box-shadow:0 22px 60px rgba(0,0,0,.35); }
.event-card-label { color:var(--gold); letter-spacing:.16em; font-weight:900; }
.event-time { font-family:Georgia,serif; font-size:2.4rem; font-weight:700; margin:8px 0; }
.event-time span { font-family:Arial,sans-serif; font-size:.8rem; letter-spacing:.14em; color:#c9bca9; }
.event-time em { color:var(--red2); font-style:normal; }
.event-rule { height:1px; background:var(--line); margin:20px 0; }
.event-card strong { font-size:1.45rem; }
.event-card p { font-size:1rem; margin:.4em 0 1em; }
.event-card a { color:var(--gold); text-decoration:none; font-weight:800; }

.quick-strip { display:grid; grid-template-columns:repeat(4,1fr); background:#111; border-top:1px solid #2a2118; border-bottom:1px solid #2a2118; }
.quick-strip > div { padding:19px 24px; border-right:1px solid #2b241d; text-align:center; }
.quick-strip > div:last-child { border-right:0; }
.quick-strip strong { display:block; color:var(--gold); letter-spacing:.08em; font-size:.9rem; }
.quick-strip span { display:block; color:#bfb5a7; font-size:.84rem; margin-top:3px; }

.section-inner { width:min(1120px,90vw); margin:auto; }
.paper-section { background:
   linear-gradient(rgba(255,255,255,.35),rgba(255,255,255,.35)),
   repeating-linear-gradient(0deg,rgba(70,45,25,.025),rgba(70,45,25,.025) 1px,transparent 1px,transparent 5px),
   var(--paper);
   color:#211b16; padding:76px 0;
}
.dark-section { background:#101010; padding:78px 0; }
.tv-section { background:#e5d7bf; color:#1c1713; padding:70px 0; border-top:5px solid var(--red); }
.past-section { background:#0d0d0d; padding:78px 0; }
.cta-section { background:linear-gradient(90deg,#821b1c,#b32a21); padding:40px 0; }
.eyebrow { margin:0 0 8px; font-size:.82rem; font-weight:900; letter-spacing:.18em; color:var(--red); }
.eyebrow.gold { color:var(--gold); }
h2 { font-family:Georgia,serif; font-size:clamp(2rem,4vw,3.4rem); margin:.2em 0 .4em; line-height:1.05; }
.lead { font-size:1.14rem; }
.show-date { font-weight:800; color:#5e4a38; margin:8px 0 28px; }
.show-date span { color:var(--red); padding:0 8px; }
.lineup-coming { display:flex; gap:22px; align-items:center; padding:28px; border:2px dashed rgba(123,70,40,.35); border-radius:14px; background:rgba(255,255,255,.3); }
.lineup-icon { font-size:2.4rem; color:var(--red); }
.lineup-coming h3 { margin:0 0 4px; font-size:1.35rem; }
.lineup-coming p { margin:0; color:#665443; }
.artist-grid {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:16px;
    width:min(728px, 100%);
    max-width:728px;
    margin:0 auto;
    align-items:flex-start;
}
.artist-card {
    flex:0 0 170px;
    width:170px;
    background:#fff8ea;
    border:1px solid rgba(85,55,35,.18);
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 8px 24px rgba(71,43,20,.08);
}
.artist-photo,
.artist-photo-img {
    display:block;
    width:170px;
    height:170px;
    background:#f1e6d5;
}
.artist-photo {
    display:grid;
    place-items:center;
    color:var(--gold);
    font-size:2.4rem;
    background:linear-gradient(135deg,#2a251f,#111);
}
.artist-photo-img {
    object-fit:contain;
    object-position:center;
}
.artist-card h3,
.artist-card p {
    padding:0 11px;
}
.artist-card h3 {
    margin:7px 0 2px;
    font-size:.98rem;
    line-height:1.2;
}
.artist-card p {
    margin:0 0 10px;
    color:#6b5a49;
    font-size:.78rem;
    line-height:1.3;
}
.artist-role {
    padding:9px 11px 0;
    font-size:.6rem;
    line-height:1.2;
    font-weight:900;
    letter-spacing:.06em;
    color:var(--red);
}

.two-col { display:grid; grid-template-columns:1.2fr .8fr; gap:56px; align-items:start; }
.mission-card { border:1px solid var(--line); border-radius:14px; padding:32px; background:linear-gradient(180deg,#181818,#111); }
.mission-kicker { color:var(--gold); font-weight:900; letter-spacing:.18em; font-size:.76rem; }
.mission-card h3 { font-family:Georgia,serif; font-size:2rem; margin:.4em 0; }
.mission-card p { color:#cfc5b7; }
.tv-grid { display:grid; grid-template-columns:.55fr 1.45fr; gap:44px; align-items:center; }
.tv-badge { min-height:250px; border-radius:18px; display:grid; place-items:center; align-content:center; gap:10px; background:linear-gradient(145deg,#151515,#391312); color:white; border:1px solid rgba(0,0,0,.25); }
.tv-icon { width:86px; height:86px; display:grid; place-items:center; border-radius:50%; background:var(--red); font-size:2rem; box-shadow:0 0 0 12px rgba(169,31,31,.18); }
.tv-badge small { font-weight:900; letter-spacing:.18em; }
.fine-print { font-size:.85rem; color:#6e6257; font-style:italic; }
.venue-grid { align-items:center; }
.venue-art { min-height:350px; border-radius:16px; position:relative; overflow:visible; }
.venue-photos {
    min-height:380px;
    background:#17120f;
    box-shadow:0 18px 42px rgba(49,31,18,.20);
}
.venue-photo-main {
    display:block;
    width:100%;
    height:380px;
    object-fit:cover;
    object-position:center;
    border-radius:16px;
    border:5px solid #fff7e8;
    box-shadow:0 12px 30px rgba(48,28,13,.22);
}
.venue-photo-inset {
    position:absolute;
    right:-24px;
    bottom:-28px;
    width:42%;
    padding:8px 8px 24px;
    background:#fff7e8;
    transform:rotate(3deg);
    box-shadow:0 14px 30px rgba(30,19,11,.30);
    border-radius:3px;
}
.venue-photo-inset::before {
    content:"";
    position:absolute;
    width:74px;
    height:20px;
    right:16px;
    top:-10px;
    background:rgba(211,191,151,.78);
    transform:rotate(-8deg);
}
.venue-photo-inset img {
    display:block;
    width:100%;
    aspect-ratio: 4 / 3;
    object-fit:cover;
    border-radius:2px;
}

.video-placeholders { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:30px; }
.video-placeholders > div { min-height:180px; border:1px solid rgba(210,163,77,.3); border-radius:12px; display:grid; place-items:center; align-content:center; gap:10px; background:linear-gradient(145deg,#151515,#0b0b0b); }
.video-placeholders span { width:56px; height:56px; display:grid; place-items:center; border-radius:50%; border:2px solid var(--gold); color:var(--gold); }
.video-placeholders small { color:#a99c8b; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.cta-inner h2 { margin-bottom:0; }

.site-footer { background:#050505; padding:52px 4vw 20px; border-top:1px solid rgba(255,255,255,.08); }
.footer-grid { width:min(1180px,92vw); margin:auto; display:grid; grid-template-columns:1.45fr 1fr 1fr 1.2fr; gap:34px; }
.footer-logo { width:90px; }
.site-footer h3 { color:var(--gold); margin-top:0; }
.site-footer p, .site-footer a { color:#aaa095; font-size:.9rem; }
.site-footer a { display:block; text-decoration:none; margin:7px 0; }
.footer-bottom { width:min(1180px,92vw); margin:30px auto 0; padding-top:20px; border-top:1px solid #222; color:#716b64; font-size:.82rem; }

/* Keep the featured lineup at four cards per row on desktop.
   Flexbox centers any remaining cards on the final row. */
.paper-section .artist-grid {
    width:min(728px, 100%);
    max-width:728px;
    margin-left:auto;
    margin-right:auto;
    justify-content:center;
}

@media (max-width: 900px) {
    .site-nav { display:none; position:absolute; top:75px; left:0; right:0; background:#080808; padding:18px 4vw; flex-direction:column; align-items:flex-start; border-top:1px solid #222; }
    .site-nav.open { display:flex; }
    .nav-toggle { display:block; }
    .hero-inner, .two-col, .tv-grid { grid-template-columns:1fr; }
    .hero { min-height:auto; padding:70px 0; }
    .event-card { max-width:520px; }

    .venue-photos { min-height:300px; margin-bottom:44px; }
    .venue-photo-main { height:300px; }
    .venue-photo-inset { width:46%; right:10px; bottom:-38px; }
    .quick-strip { grid-template-columns:repeat(2,1fr); }
    .artist-grid { max-width:688px; }
    .video-placeholders { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 560px) {
    .brand span { display:none; }
    .quick-strip { grid-template-columns:1fr; }
    .quick-strip > div { border-right:0; border-bottom:1px solid #2b241d; }
    .artist-grid { max-width:302px; gap:12px; }
    .footer-grid { grid-template-columns:1fr; }
    .cta-inner { flex-direction:column; align-items:flex-start; }
    .hero-inner { width:min(94vw,1180px); }
    .event-mark { width:100%; }
    .event-time { font-size:2rem; }
}
/* =========================================================
   22UESDAY — TUESDAYS ONLY
   ========================================================= */

.calendar-section {
    background: #080808;
    color: #f7f0e5;
    padding: 80px 0;
}

.calendar-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 32px;
}

.calendar-heading h2 {
    margin: 0 0 12px;
}

.calendar-heading .lead {
    margin-bottom: 0;
}

.calendar-nav {
    display: flex;
    align-items: center;
    gap: 16px;
    white-space: nowrap;
    font-size: 20px;
}

.calendar-nav a {
    color: var(--gold);
    text-decoration: none;
    font-size: 32px;
    line-height: 1;
}

.calendar-nav a:hover {
    color: #fff;
}

.calendar-nav strong {
    color: #fff;
    font-family: Georgia, serif;
    font-size: 1.35rem;
}

/* One card for every Tuesday in the selected month */
.tuesday-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 18px;
    align-items: stretch;
}

.tuesday-card {
    appearance: none;
    width: 100%;
    min-height: 290px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    text-align: left;
    color: #fff;
    font: inherit;
    border: 1px solid rgba(210,163,77,.28);
    border-radius: 12px;
    background: linear-gradient(160deg, #171717 0%, #0d0d0d 100%);
}

button.tuesday-card {
    cursor: pointer;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

button.tuesday-card:hover {
    transform: translateY(-4px);
    border-color: var(--gold);
    box-shadow: 0 14px 32px rgba(0,0,0,.28);
}

.tuesday-card.has-show {
    border-color: rgba(210,163,77,.55);
    background:
        radial-gradient(circle at 100% 0%, rgba(169,31,31,.18), transparent 34%),
        linear-gradient(160deg, #1b1712 0%, #0c0c0c 100%);
}

.tuesday-card-date {
    padding: 22px 20px 18px;
    border-bottom: 1px solid rgba(255,255,255,.09);
    background: rgba(255,255,255,.025);
}

.tuesday-month {
    display: block;
    color: var(--gold);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .16em;
}

.tuesday-card-date strong {
    display: block;
    margin: 2px 0 0;
    font-family: Georgia, serif;
    font-size: 3.6rem;
    line-height: 1;
    color: var(--cream);
}

.tuesday-day {
    display: block;
    margin-top: 7px;
    color: #9f9588;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .15em;
}

.tuesday-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 19px 20px 20px;
}

.tuesday-time {
    margin-bottom: 17px;
    color: #d8cbbb;
    font-size: .86rem;
    font-weight: 800;
}

.tuesday-lineup-preview {
    display: grid;
    gap: 11px;
}

.tuesday-writer {
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}

.tuesday-writer:last-child {
    border-bottom: 0;
}

.tuesday-writer span {
    display: block;
    margin-bottom: 1px;
    color: var(--gold);
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.tuesday-writer strong {
    display: block;
    color: #fff;
    font-size: 1rem;
    line-height: 1.25;
}

.tuesday-view {
    margin-top: auto;
    padding-top: 18px;
    color: var(--gold);
    font-size: .78rem;
    font-weight: 900;
}

.tuesday-tbd {
    margin: auto 0;
    color: #92877a;
    font-family: Georgia, serif;
    font-size: 1.15rem;
    font-style: italic;
}

.tuesday-card.is-tbd {
    opacity: .78;
}

.calendar-details {
    margin-top: 30px;
    padding: 28px;
    border: 1px solid rgba(210,163,77,.35);
    border-radius: 12px;
    background: #111;
}

.calendar-details h3 {
    margin: 5px 0 8px;
    color: #fff;
}

.calendar-lineup {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
    margin-top: 22px;
}

.calendar-artist {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 15px;
    background: #181818;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 8px;
}

.calendar-artist-photo {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    border-radius: 50%;
    overflow: hidden;
    background: #242424;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.calendar-artist-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.calendar-artist span {
    display: block;
    font-size: 10px;
    letter-spacing: .09em;
    font-weight: 800;
    color: var(--gold);
}

.calendar-artist h4 {
    margin: 4px 0;
    font-size: 18px;
}

.calendar-artist p {
    margin: 0;
    font-size: 13px;
    color: rgba(255,255,255,.7);
}

@media (max-width: 850px) {
    .calendar-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .tuesday-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .tuesday-list {
        grid-template-columns: 1fr;
    }

    .tuesday-card {
        min-height: 0;
    }

    .tuesday-card-date strong {
        font-size: 3rem;
    }

    .calendar-nav {
        width: 100%;
        justify-content: space-between;
    }
}




@media (max-width: 340px) {
    .artist-grid { max-width:145px; }
}

/* Final 22uesday artist-card sizing overrides */
@media (max-width: 900px) {
    .artist-grid {
        max-width:682px;
        gap:14px;
    }
    .artist-card {
        flex-basis:160px;
        width:160px;
    }
    .artist-photo,
    .artist-photo-img {
        width:160px;
        height:160px;
    }
}

@media (max-width: 560px) {
    .artist-grid {
        max-width:302px;
        gap:12px;
    }
    .artist-card {
        flex-basis:145px;
        width:145px;
    }
    .artist-photo,
    .artist-photo-img {
        width:145px;
        height:145px;
    }
}

@media (max-width: 330px) {
    .artist-grid {
        max-width:145px;
    }
}