/* ── Meet Beat hero — 2026 AI-app dark language (scoped to hero zone) ── */
  .beat-hero{background:#0f0c07;color:#fdf8ec;position:relative;overflow:hidden;padding:54px 0 46px;text-align:center}
  .beat-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:
    radial-gradient(60% 45% at 50% 0%, rgba(245,179,1,.16), transparent 70%),
    radial-gradient(40% 35% at 85% 20%, rgba(34,197,94,.10), transparent 70%),
    radial-gradient(45% 40% at 10% 30%, rgba(245,179,1,.07), transparent 70%)}
  .beat-hero .wrap{position:relative;z-index:1}
  .beat-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:800;letter-spacing:2px;color:#f5b301;text-transform:uppercase;margin-bottom:18px}
  .beat-live{width:9px;height:9px;border-radius:50%;background:#22c55e;animation:beatPulse 1.8s infinite}
  @keyframes beatPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 10px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
  .beat-h1{font-size:clamp(48px,13vw,84px);line-height:1.02;letter-spacing:-.035em;margin:0 0 14px;color:#fdf8ec;font-weight:800}
  .beat-glow{color:#f5b301;text-shadow:0 0 34px rgba(245,179,1,.45)}
  .beat-sub{color:#cbbfa4;font-size:17px;line-height:1.55;margin:0 auto 28px;max-width:36ch}
  .beat-call3{display:inline;background:none;border:0;color:#ffe9a8;font-weight:700;font-size:15.5px;padding:2px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;font-family:inherit}
  .beat-call{display:inline-flex;align-items:center;gap:10px;background:#22c55e;color:#052e12;font-weight:800;font-size:19px;padding:18px 36px;border:0;border-radius:999px;text-decoration:none;cursor:pointer;font-family:inherit;animation:callPulse 2.2s infinite}
  @keyframes callPulse{0%,100%{box-shadow:0 0 0 6px rgba(34,197,94,.16),0 10px 30px rgba(34,197,94,.35)}50%{box-shadow:0 0 0 13px rgba(34,197,94,.06),0 10px 30px rgba(34,197,94,.35)}}
  .beat-call:active{transform:scale(.96)}
  .beat-micro{color:#cbbfa4;font-size:13.5px;margin:16px 0 8px}
  .beat-trust{display:inline-block;font-size:12.5px;color:#ffe9a8;background:rgba(245,179,1,.08);border:1px solid #2b2416;border-radius:999px;padding:7px 15px;margin:4px 0 30px}
  .beat-props{display:grid;gap:12px;text-align:left;margin:0 0 28px}
  @media(min-width:900px){.beat-props{grid-template-columns:repeat(3,1fr)}}
  .beat-prop{background:rgba(255,255,255,.04);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #2b2416;border-radius:18px;padding:18px}
  .beat-prop-n{font-size:30px;font-weight:800;color:#f5b301;letter-spacing:-1px;margin-bottom:6px}
  .beat-prop h3{margin:0 0 6px;font-size:16px;color:#fdf8ec}
  .beat-prop p{margin:0;font-size:13.5px;line-height:1.55;color:#cbbfa4}
  .beat-alt{border-color:#4a3d1e !important;color:#ffe9a8 !important;max-width:430px;margin:0 auto}
  .start-pill{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#16130a;background:var(--brand);border-radius:999px;padding:5px 14px;margin-bottom:10px}
  .beat-alts{margin:16px auto 0;max-width:430px;font-size:13.5px;color:#9d937c;text-align:center;line-height:1.6}
  .beat-alts a{color:#ffe9a8;font-weight:700;text-decoration:underline;text-underline-offset:3px}
  /* ── slim sticky Talk-to-Beat pill (sits above the existing sticky bar) ── */
  .beat-pill{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;display:inline-flex;align-items:center;gap:8px;background:#f5b301;color:#16130a;font-weight:800;font-size:15px;padding:13px 22px;border:0;border-radius:999px;text-decoration:none;cursor:pointer;font-family:inherit;white-space:nowrap;box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 24px rgba(245,179,1,.35);opacity:0;pointer-events:none;transform:translateX(-50%) translateY(16px);transition:opacity .3s,transform .3s}
  .beat-pill.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
  .beat-fine{color:#9d937c;font-size:12.5px;margin:2px 0 10px}
  .beat-fine a{color:#ffe9a8}
  .pill-note{position:fixed;left:50%;bottom:calc(72px + env(safe-area-inset-bottom));z-index:40;background:rgba(15,12,7,.94);color:#fdf8ec;font-size:11.5px;padding:6px 14px;border-radius:999px;white-space:nowrap;box-shadow:0 6px 20px rgba(0,0,0,.35);opacity:0;pointer-events:none;transform:translateX(-50%) translateY(8px);transition:opacity .3s,transform .3s}
  .pill-note a{color:#ffe9a8;font-weight:700}
  .pill-note.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
  section[id]{scroll-margin-top:70px}
  /* ── inline ticket-photo snap card ── */
  #snapSection .wrap{max-width:760px}
  .snap-card{background:rgba(255,255,255,.025);border:1px solid rgba(245,179,1,.16);border-radius:26px;
    box-shadow:0 24px 70px rgba(0,0,0,.45);padding:22px 20px;display:flex;flex-direction:column;gap:14px;align-items:stretch;text-align:center}
  .snap-card h2{margin:0;font-size:21px;color:#fdf8ec;letter-spacing:-.01em}
  .snap-card p{margin:0;font-size:14px;color:#cbbfa4;line-height:1.55}
  .snap-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#f5b301;color:#16130a;
    font-weight:800;font-size:17px;padding:15px 30px;border-radius:999px;cursor:pointer;border:0;font-family:inherit}
  .snap-btn:active{transform:scale(.97)}
  .snap-result{font-size:15px;line-height:1.6;color:#fdf8ec;background:rgba(245,179,1,.06);
    border:1px solid rgba(245,179,1,.22);border-radius:16px;padding:14px 16px}
  .snap-result[hidden]{display:none}
  .snap-pct{font-size:30px;font-weight:800;color:#f5b301;letter-spacing:-1px}
  .snap-result a{color:#f5b301;font-weight:700}

/* ═══ Beat — Muse-like voice chat ═══ */
  :root{ --brand:#f5b301; --bg:#0b0906; }
  *{ -webkit-tap-highlight-color:transparent; box-sizing:border-box; }
  body{ background:var(--bg); color:#fdf8ec; }
  /* Light shared components sit on white cards — body text is cream for the
     dark hero, which made step titles near-invisible (QA 2026-10-12). */
  .step h3{ color:var(--ink); }
  .step p{ color:#57503f; }
  /* ── embedded call app ── */
  #callSection{ padding:6px 0 10px; }
  #callSection .wrap{ max-width:760px; }
  .call-app{ background:rgba(255,255,255,.025); border:1px solid rgba(245,179,1,.16); border-radius:26px;
    overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.45); }
  /* ── header ── */
  .app-head{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; padding:10px 16px;
    background:rgba(11,9,6,.92); border-bottom:1px solid rgba(245,179,1,.14); z-index:20; }
  .beat-word{ font-size:20px; font-weight:800; letter-spacing:-.5px; color:#fdf8ec; text-decoration:none;
    display:flex; align-items:center; gap:8px; }
  .beat-word .dot{ width:9px; height:9px; border-radius:50%; background:var(--brand); box-shadow:0 0 12px var(--brand); }
  .head-pills{ display:flex; align-items:center; gap:8px; }
  .live-pill{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; letter-spacing:1.4px;
    color:#ff6b5e; background:rgba(192,53,43,.14); border:1px solid rgba(192,53,43,.45); padding:6px 12px; border-radius:999px; }
  .live-pill[hidden]{ display:none; }
  .live-pill i{ width:7px; height:7px; border-radius:50%; background:#ff6b5e; animation:blink 1.2s infinite; }
  @keyframes blink{ 50%{ opacity:.25; } }
  .timer{ font-variant-numeric:tabular-nums; font-weight:700; font-size:13px; color:#ffe9a8; background:rgba(245,179,1,.08);
    border:1px solid rgba(245,179,1,.25); padding:7px 13px; border-radius:999px; white-space:nowrap; }
  /* ── avatar band ── */
  .avatar-band{ flex:0 0 auto; display:flex; flex-direction:column; align-items:center; padding:14px 16px 12px;
    background:radial-gradient(90% 120% at 50% 0%, #1e170c 0%, #0b0906 78%); border-bottom:1px solid rgba(245,179,1,.1); }
  .avatar-wrap{ position:relative; width:148px; height:148px; }
  .avatar-wrap canvas{ width:148px !important; height:148px !important; border-radius:50%; display:block;
    border:1px solid rgba(245,179,1,.32); box-shadow:0 0 44px rgba(245,179,1,.16); background:#0f0c07; }
  .avatar-wrap canvas[hidden]{ display:none !important; }
  .speak-ring{ position:absolute; inset:-7px; border-radius:50%; border:2px solid transparent; pointer-events:none; }
  .avatar-band.speaking .speak-ring{ border-color:rgba(245,179,1,.6); animation:ringpulse 1.6s ease-out infinite; }
  .avatar-band.listening .avatar-wrap canvas{ box-shadow:0 0 44px rgba(46,224,111,.22); border-color:rgba(46,224,111,.5); }
  @keyframes ringpulse{ 0%{ transform:scale(.9); opacity:.9;} 100%{ transform:scale(1.18); opacity:0;} }
  .stage-status{ margin-top:10px; }
  .stage-status span{ display:inline-block; background:rgba(255,255,255,.05); border:1px solid rgba(245,179,1,.25);
    color:#ffe9a8; font-size:13px; font-weight:700; padding:7px 15px; border-radius:999px; }
  /* ── message list ── */
  .feed{ max-height:430px; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; padding:16px 14px; display:flex;
    flex-direction:column; gap:10px; width:100%; -webkit-overflow-scrolling:touch; }
  .empty-state{ margin:auto; text-align:center; padding:12px 8px; max-width:400px; }
  .empty-state .kicker{ font-size:11px; font-weight:800; letter-spacing:2.4px; color:var(--brand); margin-bottom:10px; }
  .empty-state h1{ font-size:32px; letter-spacing:-1px; margin:0 0 8px; font-weight:800; }
  .empty-state h1 em{ font-style:normal; color:var(--brand); }
  .empty-state p{ color:#cbbfa4; font-size:14.5px; line-height:1.55; margin:0 0 14px; }
  .props{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; list-style:none; margin:0; padding:0; }
  .props li{ font-size:12.5px; font-weight:700; color:#ffe9a8; background:rgba(255,255,255,.05);
    border:1px solid rgba(245,179,1,.22); padding:7px 13px; border-radius:999px; }
  .bubble{ max-width:86%; padding:11px 15px; border-radius:18px; font-size:15px; line-height:1.5; animation:fadeup .3s ease both; overflow-wrap:break-word; }
  .bubble.you{ align-self:flex-end; background:var(--brand); color:#16130a; border-bottom-right-radius:5px; font-weight:600; }
  .bubble.beat{ align-self:flex-start; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.07); color:#fdf8ec; border-bottom-left-radius:5px; }
  .bubble .who{ display:block; font-size:10.5px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; margin-bottom:4px; color:#9d937c; }
  .bubble.you .who{ color:#5b4a12; }
  .bubble.thinking{ opacity:.6; font-style:italic; }
  @keyframes fadeup{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none;} }
  .card{ background:rgba(255,255,255,.035); border:1px solid rgba(245,179,1,.2); border-radius:16px; padding:16px; font-size:14px; color:#fdf8ec; animation:fadeup .35s ease both; }
  .card h3{ margin:0 0 8px; font-size:15.5px; color:var(--brand); }
  .card .fine{ font-size:12px; color:#9d937c; margin-top:10px; line-height:1.5; }
  .card .btn{ margin-top:10px; }
  .ticket-row{ display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid #2b2416; font-size:14px; }
  .ticket-row:last-child{ border:0; }
  .ticket-row .amt{ color:var(--brand); font-weight:800; white-space:nowrap; }
  .defect-list{ margin:6px 0 0; padding:0; list-style:none; }
  .defect-list li{ padding:8px 0 8px 30px; position:relative; border-bottom:1px solid #2b2416; font-size:14px; }
  .defect-list li:last-child{ border:0; }
  .defect-list li::before{ content:"☐"; position:absolute; left:2px; color:var(--brand); font-size:17px; }
  .fight-steps{ margin:6px 0 0; padding-left:22px; }
  .fight-steps li{ padding:6px 0; font-size:14px; }
  .odds-inline{ background:#16130a; border:1px solid #4a3d1e; border-radius:12px; padding:14px; margin:4px 0 8px; }
  .odds-inline .pct{ font-size:38px; font-weight:800; color:var(--brand); letter-spacing:-1px; }
  .pay-card{ border-color:var(--brand); background:linear-gradient(180deg, rgba(245,179,1,.09), rgba(255,255,255,.02)); }
  .pay-card .price{ font-size:28px; font-weight:800; color:var(--brand); letter-spacing:-.5px; margin:2px 0 8px; }
  .pay-card .price small{ font-size:13px; color:#cbbfa4; font-weight:600; }
  .pay-email{ width:100%; padding:12px 14px; border:2px solid #3a3018; border-radius:12px; background:#0f0c07; color:#fdf8ec; font-size:15px; margin-top:8px; }
  .pay-email:focus{ outline:none; border-color:var(--brand); }
  /* ── composer ── */
  .composer{ border-top:1px solid rgba(245,179,1,.14); background:rgba(11,9,6,.96);
    padding:12px 14px calc(10px + env(safe-area-inset-bottom)); }
  .call-cta{ max-width:560px; margin:0 auto; text-align:center; }
  #callBtn{ width:100%; display:inline-flex; align-items:center; justify-content:center; gap:10px;
    background:linear-gradient(180deg,#2ee06f,#1cb859); border:0; color:#052e12; font-weight:800; font-size:18px;
    padding:16px 20px; border-radius:18px; cursor:pointer; box-shadow:0 8px 28px rgba(46,224,111,.3); }
  #callBtn:active{ transform:scale(.98); }
  .micro{ margin:9px 0 0; font-size:12px; color:#9d937c; font-weight:600; }
  .call-dock{ max-width:560px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:14px; }
  .call-dock[hidden]{ display:none; }
  #muteBtn{ width:58px; height:58px; border-radius:50%; border:1px solid rgba(245,179,1,.3); background:rgba(255,255,255,.06);
    color:#ffe9a8; font-size:24px; cursor:pointer; flex:0 0 auto; }
  #muteBtn[aria-pressed="true"]{ background:#c0352b; border-color:#c0352b; color:#fff; }
  .dock-status{ font-size:13px; font-weight:700; color:#ffe9a8; flex:1 1 auto; text-align:center;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
  #endBtn{ background:#c0352b; border:0; color:#fff; font-weight:800; font-size:15px; padding:16px 26px; border-radius:18px; cursor:pointer; flex:0 0 auto; }
  #callBtn:focus-visible, #muteBtn:focus-visible, #endBtn:focus-visible, .feed .btn:focus-visible, a:focus-visible, summary:focus-visible{ outline:3px solid #f5b301; outline-offset:3px; }
  .legal{ max-width:560px; margin:10px auto 0; font-size:11px; color:#9d937c; text-align:center; line-height:1.7; }
  .legal a{ color:#9d937c; }
  .toast{ bottom:120px; }
'
+'#ms-cookie-bar{position:fixed;left:12px;right:12px;bottom:12px;z-index:2147483000;'
+'background:#111827;color:#f9fafb;border:1px solid #374151;border-radius:12px;'
+'padding:12px 14px;font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;'
+'box-shadow:0 8px 30px rgba(0,0,0,.35);display:flex;gap:10px;align-items:center;flex-wrap:wrap}'
+'#ms-cookie-bar p{margin:0;flex:1 1 220px;font-size:13px}'
+'#ms-cookie-bar a{color:#93c5fd;text-decoration:underline}'
+'#ms-cookie-bar button{border:0;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}'
+'#ms-ok{background:#22c55e;color:#052e12}#ms-no{background:#374151;color:#f9fafb}'
+'@media(min-width:640px){#ms-cookie-bar{left:auto;right:20px;bottom:20px;max-width:420px}}'
+'

/* ── Beat stage (Mayor's order 2026-10-22): Beat is the FIRST screen —
   full-screen on mobile, a wide two-column stage on desktop. */
.beat-stage{background:#0f0c07;color:#fdf8ec;position:relative;overflow:hidden;padding:24px 0 26px}
.beat-stage::before{content:"";position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(60% 45% at 50% 0%, rgba(245,179,1,.16), transparent 70%),
  radial-gradient(40% 35% at 85% 20%, rgba(34,197,94,.10), transparent 70%),
  radial-gradient(45% 40% at 10% 30%, rgba(245,179,1,.07), transparent 70%)}
.beat-stage .wrap{position:relative;z-index:1;max-width:760px}
.beat-stage #callSection{padding:0}
.stage-intro{text-align:center;margin-bottom:16px}
.stage-intro .beat-h1{font-size:clamp(42px,11vw,68px);margin-bottom:10px}
.stage-intro .beat-sub{margin-bottom:18px}
.stage-intro .beat-trust{margin-bottom:6px}
.beat-stage .call-app{display:flex;flex-direction:column}
.props-band{background:#0f0c07;padding:2px 0 30px}
.props-band .wrap{max-width:760px}
.snap-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:16px 0 2px}
.snap-chip{display:inline-flex;align-items:center;gap:8px;background:#f5b301;color:#16130a;font-weight:800;font-size:14.5px;padding:11px 20px;border-radius:999px;cursor:pointer;border:0;font-family:inherit}
.snap-chip.ghost{background:transparent;color:#ffe9a8;border:2px solid #4a3d1e}
.snap-chip:active{transform:scale(.97)}
.plate-chip{display:inline-block;margin:12px auto 0;background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.45);color:#b7f4cd;font-size:13.5px;font-weight:700;padding:8px 16px;border-radius:999px}
.plate-chip[hidden]{display:none}
.snap-note{color:#9d937c;font-size:12.5px;margin:10px auto 0;max-width:44ch;line-height:1.55}
@media(max-width:899px){
  .beat-stage{min-height:calc(100dvh - 50px);display:flex;flex-direction:column}
  .beat-stage .wrap{flex:1;display:flex;flex-direction:column;width:100%}
  .stage-grid{display:flex;flex-direction:column;flex:1}
  .beat-stage .call-app{flex:1}
  .beat-stage .feed{max-height:none;flex:1 1 auto;min-height:160px}
}
@media(min-width:900px){
  .beat-stage .wrap{max-width:1180px}
  .props-band .wrap{max-width:1180px}
  .stage-grid{display:grid;grid-template-columns:390px 1fr;gap:30px;align-items:start}
  .stage-intro{text-align:left;position:sticky;top:86px;margin-bottom:0}
  .stage-intro .beat-sub{margin-left:0}
  .stage-intro .snap-row{justify-content:flex-start}
  .beat-stage .feed{max-height:62vh}
  .beat-stage .avatar-wrap{width:168px;height:168px}
  .beat-stage .avatar-wrap canvas{width:168px !important;height:168px !important}
}
/* ── expandable ticket cards ── */
.ticket-x{border-bottom:1px solid #2b2416}
.ticket-x:last-of-type{border-bottom:0}
.ticket-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:11px 2px;cursor:pointer;text-align:left;font-family:inherit;color:inherit}
.ticket-hl{flex:1;min-width:0}
.ticket-name{font-weight:700;font-size:14.5px;color:#fdf8ec;line-height:1.35}
.ticket-sub{font-size:12.5px;color:#9d937c;margin-top:1px}
.ticket-amt{color:var(--brand);font-weight:800;white-space:nowrap}
.ticket-chev{color:#9d937c;font-size:13px;flex:0 0 auto}
.ticket-body{padding:2px 2px 14px}
.ticket-body[hidden]{display:none}
.ticket-rowline{font-size:13.5px;color:#cbbfa4;padding:3px 0;line-height:1.5}
.ticket-odds{font-size:13.5px;color:#ffe9a8;background:rgba(245,179,1,.07);border:1px solid rgba(245,179,1,.2);border-radius:10px;padding:9px 12px;margin-top:8px;line-height:1.55}
.ticket-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.hear-row{margin:14px 0 2px}
.hear-btn{display:inline-flex;align-items:center;gap:8px;background:transparent;color:#ffe9a8;border:2px solid #4a3d1e;font-weight:800;font-size:14px;padding:10px 20px;border-radius:999px;cursor:pointer;font-family:inherit}
.hear-btn:active{transform:scale(.97)}
