:root{--bg:#130f0d;--paper:#f5e8cf;--ink:#251916;--red:#8f2731;--gold:#d99b46;--muted:#806f5d;--glass:rgba(255,248,232,.91);--shadow:0 28px 80px rgba(0,0,0,.42)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 50% 0,#6a4a31 0,#201713 42%,#0f0d0b 100%);color:var(--paper);min-height:100vh}.shell{width:min(1040px,100%);margin:0 auto;padding:16px;display:grid;gap:16px}.single{min-height:100vh;place-items:center}.card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.06));box-shadow:var(--shadow);backdrop-filter:blur(20px);padding:22px}.hero{min-height:640px;display:flex;flex-direction:column;justify-content:flex-end;background-image:linear-gradient(180deg,rgba(14,10,8,.04) 0%,rgba(14,10,8,.15) 44%,rgba(14,10,8,.92) 100%),url('/poster-bg.jpg');background-size:cover;background-position:center top}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 24%,rgba(255,201,104,.18),transparent 32%),linear-gradient(90deg,rgba(0,0,0,.2),transparent 28%,transparent 72%,rgba(0,0,0,.22));pointer-events:none}.heroCopy{position:relative;z-index:1;text-shadow:0 3px 18px rgba(0,0,0,.55)}.eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;color:var(--gold);font-weight:900}.eyebrow.dark{color:var(--red)}h1{font-size:clamp(2.2rem,11vw,5.2rem);line-height:.85;margin:0;text-transform:uppercase;font-family:Georgia,serif;letter-spacing:.01em}h2{margin:0 0 14px;font-size:1.45rem}.subtitle{font-size:1.05rem;line-height:1.45;max-width:720px;color:rgba(255,248,232,.92);margin:14px 0}.booking,.successCard{background:var(--glass);color:var(--ink)}.ticketRow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-radius:18px;background:#fff7e8;margin:10px 0;border:1px solid rgba(37,25,22,.08)}.ticketRow strong{display:block}.ticketRow small,.tiny,.muted{color:var(--muted);line-height:1.45}.qty{display:grid;grid-template-columns:42px 34px 42px;align-items:center;text-align:center;gap:4px}.qty button{width:42px;height:42px;border-radius:999px;border:0;background:var(--ink);color:var(--paper);font-size:1.3rem}.qty output{font-weight:900}.field{display:grid;gap:6px;margin:14px 0}.field span{font-size:.82rem;font-weight:900;color:#5f4d3e}.field input{width:100%;border:1px solid rgba(37,25,22,.14);border-radius:16px;padding:14px;font-size:1rem;background:white;color:var(--ink)}.summary{display:flex;align-items:center;justify-content:space-between;padding:14px 0;font-size:1.1rem}.summary strong{font-size:1.45rem;color:var(--red)}button,.linkButton,.ghost{font:inherit;cursor:pointer;text-decoration:none}.primary{width:100%;border:0;border-radius:18px;background:linear-gradient(135deg,var(--red),#5e1721);color:white;padding:16px;font-weight:950;box-shadow:0 12px 30px rgba(143,39,49,.32)}.primary:disabled{opacity:.55;cursor:not-allowed}.ghost{margin-top:10px;width:100%;display:block;text-align:center;border:1px solid rgba(37,25,22,.16);border-radius:18px;color:var(--ink);padding:14px;font-weight:850;background:rgba(255,255,255,.55)}.status{min-height:24px;color:var(--red);font-weight:850}.status.ok{color:#16734a}.large{font-size:1.2rem}.successCard{width:min(560px,100%);text-align:center}.successCard h1{font-size:clamp(2.2rem,10vw,4rem);color:var(--ink)}.qrBox{margin:20px auto;padding:18px;background:white;border-radius:24px;width:min(310px,100%);min-height:260px;display:grid;place-items:center;color:var(--muted)}.qrBox img{width:240px;max-width:100%;height:auto}.ticketDetails{border-top:1px solid rgba(37,25,22,.12);border-bottom:1px solid rgba(37,25,22,.12);padding:14px 0;margin-bottom:12px;text-align:left;line-height:1.6;word-break:break-word}.actions{display:grid;gap:0}.checkCard{width:min(560px,100%)}@media(min-width:760px){.shell{grid-template-columns:1.08fr .92fr;align-items:start;padding:28px}.hero{min-height:780px}.booking{position:sticky;top:20px}.single{display:grid;grid-template-columns:1fr}}

/* Door Mode v3.2 */
.doorBody{background:#101010;color:white;min-height:100vh}.doorScreen{min-height:100vh;display:grid;place-items:center;padding:18px;transition:background .18s ease,color .18s ease}.doorScreen.neutral,.doorScreen.checking{background:#161616}.doorScreen.valid{background:#0b8f4d}.doorScreen.used{background:#e0a400;color:#1c1300}.doorScreen.invalid{background:#b01220}.doorPanel{width:min(560px,100%);border-radius:30px;background:rgba(255,255,255,.94);color:var(--ink);padding:24px;box-shadow:0 28px 90px rgba(0,0,0,.36);text-align:left}.resultPanel{background:rgba(0,0,0,.16);color:white;border:1px solid rgba(255,255,255,.3);text-align:center;backdrop-filter:blur(12px)}.doorScreen.used .resultPanel{color:#1c1300;background:rgba(255,255,255,.25)}.resultPanel h1{font-size:clamp(4rem,24vw,9rem);line-height:.82;margin:12px 0 18px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:-.06em}.doorText{font-size:clamp(1.3rem,6vw,2.4rem);font-weight:950;margin:0 0 10px}.doorMeta{font-size:1rem;opacity:.88;min-height:1.4em}.scannerBox{margin-top:16px}.scannerBox video{width:100%;border-radius:22px;background:#000;min-height:220px;object-fit:cover;margin-bottom:12px}.resultPanel .primary{background:rgba(255,255,255,.92);color:#111;box-shadow:none;margin-top:18px}.doorScreen.used .resultPanel .primary{background:#1c1300;color:white}

.promoBox{margin-top:18px;padding-top:18px;border-top:1px solid rgba(15,23,42,.12)}
.promoBox h3{margin:0 0 12px;font-size:1.15rem}.qrBox{display:grid;gap:14px}.ticketQr{display:grid;gap:8px;justify-items:center;padding:14px;border:1px solid rgba(15,23,42,.12);border-radius:22px;background:rgba(255,255,255,.72)}.ticketQr img{width:min(260px,80vw);height:auto}.ticketQr small{color:#64748b;font-weight:700}.checking{background:#0f172a;color:#fff}

.donationToggle{width:100%;border:1px solid rgba(143,39,49,.28);border-radius:18px;background:#fff7e8;color:var(--red);padding:14px;font-weight:950;margin:8px 0 2px}.donationToggle.active{background:var(--red);color:white;box-shadow:0 10px 24px rgba(143,39,49,.24)}
.venueLink{color:inherit;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;font-weight:900}.venueLink:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}.cashNote{margin-top:4px;font-weight:800;color:rgba(255,248,232,.88)}


.dateChoice{border:1px solid rgba(37,25,22,.1);border-radius:20px;background:#fff7e8;margin:8px 0 14px;padding:12px;display:grid;gap:8px}
.dateChoice legend{padding:0 6px;font-size:.82rem;font-weight:900;color:#5f4d3e}
.dateChoice label{display:flex;align-items:center;gap:10px;padding:10px;border-radius:14px;background:rgba(255,255,255,.55);font-weight:800;color:var(--ink)}
.dateChoice input{accent-color:var(--red);width:18px;height:18px}
.dateChoice span{line-height:1.3}


.promoBox.is-hidden-for-launch{display:none!important}


.capacityCounter{margin:6px 0 12px;padding:10px 12px;border-radius:16px;background:rgba(143,39,49,.08);border:1px solid rgba(143,39,49,.14);color:#5f4d3e;font-size:.9rem;font-weight:900}
.capacityCounter[data-status="low"]{background:rgba(217,155,70,.15)}
.capacityCounter[data-status="full"]{background:rgba(143,39,49,.16);color:var(--red)}
.doorStats{margin:12px 0 0;padding:12px;border-radius:16px;background:rgba(255,255,255,.65);color:var(--ink);font-weight:900}
.doorDateChoice{margin:10px 0 12px;display:grid;gap:7px}
.doorDateChoice label{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:800;color:var(--ink)}
.doorDateChoice input{accent-color:var(--red)}


/* Launch layout: square poster as content, event copy in separate readable box. */
.posterCard{overflow:hidden;border-radius:30px;background:#0f0d0b;border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow)}
.posterCard img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:#0f0d0b}
.eventInfo{background:var(--glass);color:var(--ink)}
.eventInfo h1{font-size:clamp(2rem,10vw,4.4rem);line-height:.9;color:var(--ink);text-shadow:none}
.eventInfo .subtitle{color:#5f4d3e;max-width:100%;text-shadow:none}
.eventInfo .cashNote{font-weight:900;color:var(--red)}
.eventInfo .venueLink{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.hero{display:none!important}
@media (min-width:760px){
  .shell{max-width:760px}
  .posterCard img{max-height:760px}
}


/* Desktop refinement: keep mobile-first stack, but make laptop/PC layout balanced. */
@media (min-width: 980px){
  body{
    min-height:100vh;
    display:flex;
    align-items:center;
  }
  .shell{
    width:min(1180px,100%);
    grid-template-columns:minmax(430px,540px) minmax(420px,1fr);
    grid-template-areas:
      "poster info"
      "poster booking";
    align-items:start;
    gap:18px;
    padding:24px;
  }
  .posterCard{
    grid-area:poster;
    position:sticky;
    top:24px;
  }
  .posterCard img{
    width:100%;
    max-height:calc(100vh - 48px);
    object-fit:contain;
  }
  .eventInfo{
    grid-area:info;
    padding:24px;
  }
  .eventInfo h1{
    font-size:clamp(2.35rem,4.2vw,4.6rem);
  }
  .eventInfo .subtitle{
    font-size:1rem;
  }
  .booking{
    grid-area:booking;
    padding:24px;
  }
}

@media (min-width: 1280px){
  .shell{
    width:min(1280px,100%);
    grid-template-columns:minmax(500px,620px) minmax(440px,1fr);
    gap:22px;
  }
}


/* Desktop final placement: poster + info on left, ticket tool on right. */
@media (min-width: 980px){
  .shell{
    grid-template-columns:minmax(430px,540px) minmax(420px,1fr);
    grid-template-areas:
      "poster booking"
      "info booking";
    align-items:start;
  }
  .posterCard{
    position:static;
    top:auto;
  }
  .eventInfo{
    grid-area:info;
  }
  .booking{
    grid-area:booking;
    position:sticky;
    top:24px;
  }
  .posterCard img{
    max-height:none;
  }
}

@media (min-width: 1280px){
  .shell{
    grid-template-columns:minmax(500px,620px) minmax(440px,1fr);
  }
}


/* Unified launch box design refinement */
.eventInfo,
.booking{
  background:linear-gradient(180deg, rgba(255,248,236,.96) 0%, rgba(244,231,210,.92) 100%);
  border:1px solid rgba(143,39,49,.12);
  color:var(--ink);
}
.eventInfo{padding:24px}
.eventInfo h1{
  margin-top:2px;
  font-size:clamp(2.35rem, 7vw, 4.25rem);
  line-height:.94;
  color:var(--ink);
  text-transform:none;
  letter-spacing:-.02em;
  text-shadow:none;
}
.eventInfo .eyebrow.dark,
.booking .eyebrow.dark{
  color:var(--red);
  letter-spacing:.18em;
}
.booking h2{
  margin:2px 0 16px;
  font-family:Georgia,serif;
  font-size:clamp(1.6rem, 3.2vw, 2.1rem);
  line-height:1;
  letter-spacing:-.01em;
  color:var(--ink);
}
.infoStack{display:grid;gap:10px;margin-top:16px}
.infoPill{
  padding:14px 16px;
  border-radius:20px;
  background:rgba(255,252,246,.92);
  border:1px solid rgba(37,25,22,.08);
  box-shadow:0 10px 30px rgba(37,25,22,.06);
}
.infoLabel{
  display:block;
  margin-bottom:5px;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:900;
  color:var(--red);
}
.infoPill strong{
  display:block;
  font-size:1.02rem;
  line-height:1.35;
  color:var(--ink);
}
.infoPill small{
  display:block;
  margin-top:4px;
  font-size:.93rem;
  line-height:1.35;
  color:var(--muted);
}
.eventInfo .venueLink{
  color:var(--ink);
  text-decoration:none;
  border-bottom:1px solid rgba(143,39,49,.38);
}
.cashNoteBanner{
  margin:14px 0 0;
  padding:14px 16px;
  border-radius:20px;
  background:linear-gradient(135deg, rgba(143,39,49,.10) 0%, rgba(217,155,70,.15) 100%);
  border:1px solid rgba(143,39,49,.14);
  color:var(--ink);
  font-size:.98rem;
  line-height:1.45;
  font-weight:800;
}
.booking .dateChoice{
  margin-top:4px;
  padding:0;
  border:0;
  background:transparent;
}
.booking .dateChoice label,
.booking .ticketRow,
.booking .summary,
.booking .field input,
.booking .donationToggle{
  box-shadow:0 10px 28px rgba(37,25,22,.06);
}
.booking .dateChoice label{
  padding:13px 14px;
  border-radius:18px;
  border:1px solid rgba(37,25,22,.08);
  background:rgba(255,252,246,.92);
}
.booking .ticketRow{
  padding:15px 16px;
  border-radius:20px;
  background:rgba(255,252,246,.92);
}
.booking .ticketRow strong{font-size:1rem;color:var(--ink)}
.booking .ticketRow small{font-size:.93rem}
.booking .field{margin:16px 0}
.booking .field span{
  font-size:.76rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--red);
}
.booking .field input{
  border-radius:18px;
  border:1px solid rgba(37,25,22,.1);
  background:#fffdf8;
}
.booking .capacityCounter{
  margin:8px 0 14px;
  border-radius:18px;
  background:linear-gradient(135deg, rgba(143,39,49,.09) 0%, rgba(217,155,70,.12) 100%);
  border:1px solid rgba(143,39,49,.12);
  color:#5f4d3e;
}
.booking .donationToggle{
  border-radius:18px;
  background:rgba(255,252,246,.92);
  border:1px solid rgba(37,25,22,.08);
  color:var(--ink);
  font-weight:800;
}
.booking .donationToggle.active{
  background:rgba(143,39,49,.12);
  border-color:rgba(143,39,49,.2);
}
.booking .summary{
  margin-top:16px;
  padding:14px 16px;
  border-radius:20px;
  background:rgba(255,252,246,.92);
  border:1px solid rgba(37,25,22,.08);
}
.booking .summary strong{
  font-size:1.25rem;
  color:var(--ink);
}
.booking .primary{
  margin-top:12px;
  min-height:56px;
  border-radius:18px;
  background:linear-gradient(135deg, #8f2731 0%, #6f1f27 100%);
  box-shadow:0 16px 34px rgba(111,31,39,.28);
  font-size:1rem;
  letter-spacing:.01em;
}
.booking .status{margin-top:10px}
@media (min-width:980px){
  .eventInfo,.booking{padding:26px}
  .infoStack{gap:12px}
  .infoPill{padding:15px 17px}
}


/* Donation amount stepper */
.donationStepper{margin:14px 0;padding:14px 16px;border-radius:18px;background:rgba(255,252,246,.92);border:1px solid rgba(37,25,22,.08);box-shadow:0 10px 28px rgba(37,25,22,.06);display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--ink);font-weight:800}
.donationStepper>span{font-size:.92rem;line-height:1.25}
.donationControls{display:grid;grid-template-columns:38px minmax(78px,auto) 38px;align-items:center;gap:6px}
.donationControls button{width:38px;height:38px;border-radius:999px;border:0;background:var(--ink);color:var(--paper);font-size:1.2rem;font-weight:900}
.donationControls button:disabled{opacity:.35}
.donationControls output{min-width:78px;text-align:center;font-weight:900;color:var(--red)}
@media (max-width:420px){.donationStepper{align-items:stretch;flex-direction:column}.donationControls{grid-template-columns:42px 1fr 42px}.donationControls button{width:42px;height:42px}}


.siteFootnote{
  width:min(1040px,100%);
  margin:0 auto 18px;
  padding:0 18px;
  text-align:center;
  font-size:.72rem;
  line-height:1.4;
  letter-spacing:.04em;
  color:rgba(255,248,232,.62);
}
.siteFootnote span{
  font-weight:800;
  color:rgba(255,248,232,.82);
}
@media (min-width:980px){
  .siteFootnote{
    width:min(1180px,100%);
    margin-top:-6px;
  }
}
@media (min-width:1280px){
  .siteFootnote{width:min(1280px,100%)}
}
