:root{--today-accent:#f05a28;--bg:#050607;--ink:#f2f1ec;--muted:#8d9297;--line:rgba(255,255,255,.14);--panel:rgba(8,9,10,.88);--green:#47d16c;--red:#e53935}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}body{margin:0;min-height:100vh;background:#050607;overflow-x:hidden}a{color:inherit}.ambient{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 74% 4%,color-mix(in srgb,var(--today-accent),transparent 90%),transparent 34%),linear-gradient(115deg,transparent 0 44%,rgba(255,255,255,.018) 44.1% 44.3%,transparent 44.4% 100%)}.ambient:after{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,transparent 49.8%,rgba(255,255,255,.02) 50%,transparent 50.2%),linear-gradient(0deg,transparent 49.8%,rgba(255,255,255,.014) 50%,transparent 50.2%);background-size:80px 80px;mask-image:linear-gradient(to bottom,black,transparent 78%)}.scanlines{position:fixed;inset:0;z-index:5;pointer-events:none;opacity:.045;background:repeating-linear-gradient(to bottom,transparent 0 4px,rgba(255,255,255,.11) 5px)}.frame{position:fixed;inset:16px;z-index:6;pointer-events:none;border:1px solid rgba(255,255,255,.12)}.frame i{position:absolute;width:28px;height:28px}.frame i:nth-child(1){left:-1px;top:-1px;border-left:2px solid #fff;border-top:2px solid #fff}.frame i:nth-child(2){right:-1px;top:-1px;border-right:2px solid #fff;border-top:2px solid #fff}.frame i:nth-child(3){left:-1px;bottom:-1px;border-left:2px solid #fff;border-bottom:2px solid #fff}.frame i:nth-child(4){right:-1px;bottom:-1px;border-right:2px solid #fff;border-bottom:2px solid #fff}.frame-ticks{position:absolute;left:10%;right:10%;height:5px;opacity:.35;background:repeating-linear-gradient(90deg,#fff 0 1px,transparent 1px 24px)}.frame-ticks.top{top:-3px}.frame-ticks.bottom{bottom:-3px}main{position:relative;z-index:1;width:min(1180px,calc(100% - 56px));margin:auto}.shell{border-left:1px solid var(--line);border-right:1px solid var(--line)}.hero{min-height:620px;border-top:1px solid var(--line);margin-top:48px;position:relative;background:linear-gradient(110deg,rgba(255,255,255,.025),transparent 45%)}.topline,.status-strip{display:flex;align-items:center;gap:22px;padding:12px 18px;font:700 9px/1.2 "Courier New",monospace;letter-spacing:.13em;color:#9da3a7;border-bottom:1px solid var(--line)}.topline span:last-child{margin-left:auto}.pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);margin-right:8px;animation:pulse 1.8s steps(2,end) infinite}@keyframes pulse{50%{opacity:.3}}.hero-lockup{display:grid;grid-template-columns:1.25fr .75fr;align-items:center;min-height:505px;padding:56px 6% 42px;position:relative;overflow:hidden}.hero-lockup:after{content:"SLC-01";position:absolute;right:-18px;bottom:10px;font:700 108px/1 Arial,sans-serif;letter-spacing:-.07em;color:rgba(255,255,255,.016)}.sensor-field{position:absolute;left:2%;top:50%;width:300px;height:300px;transform:translateY(-50%);opacity:.24;pointer-events:none}.radar{position:absolute;inset:0;border:1px solid var(--today-accent);border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 47px,color-mix(in srgb,var(--today-accent),transparent 58%) 48px 49px,transparent 50px 95px),linear-gradient(90deg,transparent 49.7%,color-mix(in srgb,var(--today-accent),transparent 45%) 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,color-mix(in srgb,var(--today-accent),transparent 45%) 50%,transparent 50.3%)}.radar:before,.radar:after{content:"";position:absolute;inset:12%;border:1px dashed color-mix(in srgb,var(--today-accent),transparent 55%);border-radius:50%}.radar:after{inset:33%}.radar .sweep{position:absolute;left:50%;top:50%;width:49%;height:1px;transform-origin:left center;background:linear-gradient(90deg,var(--today-accent),transparent);box-shadow:0 0 12px var(--today-accent);animation:sweep 5s linear infinite}@keyframes sweep{to{transform:rotate(360deg)}}.radar span{position:absolute;top:-17px;left:50%;font:700 8px "Courier New",monospace;color:var(--today-accent)}.blip{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--today-accent);box-shadow:0 0 9px var(--today-accent)}.b1{left:67%;top:31%}.b2{left:29%;top:63%;opacity:.7}.b3{left:74%;top:70%;opacity:.5}.sensor-label{position:absolute;left:12px;bottom:-36px;font:700 8px/1.55 "Courier New",monospace;letter-spacing:.11em;color:var(--today-accent)}.logo-wrap{width:min(690px,100%);justify-self:center;transform:translateX(-9%);position:relative;z-index:2}.logo{display:block;width:100%;height:auto}.logo-main{position:relative;z-index:4;filter:brightness(1.12) contrast(1.1) drop-shadow(0 3px 3px #000) drop-shadow(0 0 3px rgba(255,255,255,.2))}.logo-wrap:after{content:"";position:absolute;z-index:2;inset:11% 5%;background:#000;filter:blur(22px);opacity:.72}.logo-ghost{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.09}.logo-ghost-a{transform:translate(-3px,1px);filter:drop-shadow(0 0 4px var(--today-accent))}.logo-ghost-b{transform:translate(3px,-1px);filter:drop-shadow(0 0 5px var(--today-accent));opacity:.055}.hero-copy{padding-left:38px;border-left:1px solid rgba(255,255,255,.22);position:relative;z-index:3}.kicker{font:700 10px/1.4 "Courier New",monospace;letter-spacing:.15em;color:#9ca1a5}.hero h1{font-size:clamp(56px,7vw,94px);line-height:.79;letter-spacing:-.07em;margin:18px 0 25px}.hero-copy p{max-width:360px;color:#a7aaad;font-size:14px;line-height:1.55;margin:0}.signal-line{display:block;color:#d8d9d7;font:700 13px/1.45 "Courier New",monospace;letter-spacing:.08em}.frequency-line{display:block;margin-top:8px;color:#777d81;font:700 9px/1.4 "Courier New",monospace;letter-spacing:.14em}.telemetry{margin-top:30px;display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:8px;align-items:center;font:700 7px "Courier New",monospace;letter-spacing:.1em;color:#6f7579}.telemetry b{height:4px;background:#1a1d1f;overflow:hidden}.telemetry i{display:block;width:0;height:100%;background:var(--today-accent);box-shadow:0 0 7px var(--today-accent);transition:width .45s ease}.telemetry span{white-space:nowrap}.status-strip{border-top:1px solid var(--line);border-bottom:0}.status-strip span:nth-child(2){color:#fff}.coordinates{margin-left:auto;color:#666!important}.section{padding:64px 5% 72px;border-top:1px solid var(--line);position:relative}.section:before{content:"";position:absolute;top:0;left:0;width:70px;height:4px;background:repeating-linear-gradient(90deg,var(--today-accent) 0 3px,transparent 3px 8px);opacity:.6}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px}.section h2{font-size:clamp(42px,7vw,76px);line-height:.85;letter-spacing:-.06em;margin:8px 0 0}.date{font:700 11px/1 "Courier New",monospace;letter-spacing:.13em;color:#8e9397;padding-bottom:5px}.event-grid{display:grid;gap:16px}.event{--accent:#d7d7d2;display:grid;grid-template-columns:8px minmax(0,1fr) 150px;position:relative;min-height:226px;background:linear-gradient(110deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 48%,transparent),var(--panel);border:1px solid rgba(255,255,255,.13);overflow:hidden;transition:transform .2s ease,border-color .2s ease}.event:before{content:"";position:absolute;inset:8px;pointer-events:none;background:linear-gradient(var(--accent),var(--accent)) left top/16px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) left top/1px 16px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/16px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/1px 16px no-repeat;opacity:.45}.event:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.28)}.event>.accent{background:var(--accent);box-shadow:0 0 25px color-mix(in srgb,var(--accent),transparent 45%)}.event-main{padding:25px 28px 48px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:start}.contact-id{font:700 8px/1 "Courier New",monospace;letter-spacing:.14em;color:#62686c;margin-bottom:11px}.event-date{font:700 11px/1.2 "Courier New",monospace;letter-spacing:.13em;color:var(--accent);margin-bottom:12px}.event h3{font-size:clamp(36px,5vw,64px);line-height:.88;letter-spacing:-.055em;margin:0;text-transform:uppercase}.title{font:700 11px/1.4 "Courier New",monospace;letter-spacing:.08em;color:#9ca1a5;margin-top:13px}.meta{font-size:13px;line-height:1.75;color:#9da1a4;padding-top:3px;justify-self:start;width:100%;text-align:left}.meta-label{font:700 8px/1 "Courier New",monospace;letter-spacing:.13em;color:#60666a}.meta b{font-size:20px;line-height:1.2;color:#f4f3ef;text-transform:uppercase}.support{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font:700 10px/1.6 "Courier New",monospace;letter-spacing:.08em;color:#858a8e}.event-action{grid-column:3;display:flex;align-items:center;justify-content:center;padding:0 24px 0 12px}.ticket{margin:0;padding:15px 18px;border:1px solid color-mix(in srgb,var(--accent),transparent 25%);font:700 10px/1 "Courier New",monospace;letter-spacing:.12em;text-decoration:none;color:var(--accent);transition:.2s}.ticket:hover{background:var(--accent);color:#050607}.event-action:empty{visibility:hidden}.source{position:absolute;left:36px;bottom:17px;font:700 9px/1 "Courier New",monospace;letter-spacing:.13em;color:#5e6367}.source:before{content:"";display:inline-block;width:5px;height:5px;background:var(--accent);margin-right:8px}.empty{min-height:230px;display:flex;align-items:center;justify-content:center;gap:28px;border:1px solid rgba(229,57,53,.3);background:linear-gradient(90deg,rgba(229,57,53,.055),transparent);color:var(--red)}.empty-mark{font:100 78px/1 Arial}.empty strong{display:block;font-size:42px;letter-spacing:-.05em}.empty span{display:block;margin-top:8px;font:700 10px/1 "Courier New",monospace;letter-spacing:.14em;color:#7f8589}.hidden{display:none}.upcoming-section{background:linear-gradient(to bottom,rgba(255,255,255,.012),transparent)}.footer{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;padding:30px 5% 58px;border-top:1px solid var(--line);font:700 9px/1.5 "Courier New",monospace;letter-spacing:.12em;color:#696e72}.footer small{display:block;margin-top:8px;font:inherit;color:#42464a}.footer-right{display:flex;gap:26px;align-items:center}.footer em{font-style:normal;color:#9da1a4}.footer a{text-decoration:none;color:#d6d6d2}.footer a:hover{color:#fff}@media(max-width:760px){.frame{inset:8px}main{width:calc(100% - 30px)}.hero{margin-top:30px;min-height:auto}.topline span:nth-child(3),.topline span:nth-child(4){display:none}.hero-lockup{grid-template-columns:1fr;min-height:460px;padding:42px 7% 35px}.sensor-field{width:240px;height:240px;left:50%;top:145px;transform:translate(-50%,-50%);opacity:.14}.logo-wrap{width:100%;margin:10px auto 44px;transform:translateX(-7%)}.hero-copy{padding:24px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.18)}.hero h1{font-size:60px}.telemetry{grid-template-columns:auto 1fr auto 1fr}.telemetry span:nth-of-type(3),.telemetry b:nth-of-type(3){display:none}.status-strip{overflow:hidden;white-space:nowrap}.status-strip span:nth-child(3),.coordinates{display:none}.section{padding:48px 5% 55px}.section-head{align-items:flex-start}.date{padding-top:8px}.event{grid-template-columns:6px 1fr}.event-main{grid-column:2;grid-template-columns:1fr;gap:20px;padding:23px 22px 50px}.event-action{grid-column:2;padding:0 22px 22px;justify-content:flex-start}.ticket{width:max-content}.source{left:28px}.footer{display:block}.footer-right{margin-top:22px;justify-content:space-between}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.future-toggle{display:block;width:100%;margin-top:18px;padding:17px 20px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.018);color:#858b8f;font:700 9px/1 "Courier New",monospace;letter-spacing:.14em;text-align:center;cursor:pointer;transition:.2s}.future-toggle:hover{border-color:var(--today-accent);color:var(--today-accent);background:color-mix(in srgb,var(--today-accent),transparent 96%)}.future-wrap{margin-top:34px;padding-top:30px;border-top:1px solid rgba(255,255,255,.1)}.future-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px;font:700 9px/1.3 "Courier New",monospace;letter-spacing:.13em;color:#656b6f}.future-head b{font-size:13px;color:#a4a8aa}.future-wrap .event{min-height:190px}.future-wrap .event h3{font-size:clamp(30px,4vw,48px)}

/* V2.10.1 — deliberate mobile composition */
@media (max-width:700px){
 body{overflow-x:hidden}.frame{inset:10px}.shell{width:auto;margin-left:22px;margin-right:22px}
 .hero{min-height:auto;padding-top:48px;padding-bottom:34px}
 .logo-wrap{display:flex;justify-content:center;align-items:center;width:100%;margin:0 auto 28px}
 .logo-wrap img,.logo{display:block;max-width:92%;width:auto;height:auto;margin-left:auto!important;margin-right:auto!important;transform:none!important}
 .hero-copy{padding-top:0}.hero h1{font-size:clamp(52px,15vw,78px);line-height:.88;letter-spacing:-.055em}
 .hero .tagline{margin-top:34px}.telemetry{margin-top:28px;gap:14px}.telemetry>div{min-width:0}
 .status-strip{padding:15px 20px;gap:10px;flex-wrap:wrap}.section{padding-top:62px;padding-bottom:30px}
 .section-head{align-items:flex-start;margin-bottom:28px}.section-head h2{font-size:clamp(46px,13vw,68px);line-height:.92}
 .section-head .date{padding-top:8px;text-align:right}.event-grid{gap:22px}
 .event{min-height:0!important;height:auto!important;padding:30px 28px 26px 36px!important;display:flex!important;flex-direction:column!important}
 .event h3{font-size:clamp(38px,11vw,54px)!important;line-height:.94!important;letter-spacing:-.045em;margin-top:15px;margin-bottom:16px;overflow-wrap:anywhere}
 .event .support{position:static!important;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.11);line-height:1.7}
 .event .ticket,.event a.ticket{position:static!important;display:inline-flex!important;align-self:flex-start;margin-top:26px!important;left:auto!important;right:auto!important;bottom:auto!important}
 .event .verified{position:static!important;margin-top:14px!important;left:auto!important;right:auto!important;bottom:auto!important}
 .future-toggle{margin-top:14px;padding:16px 12px}.future-wrap{margin-top:26px;padding-top:24px}
}
@media (max-width:430px){
 .shell{margin-left:18px;margin-right:18px}.hero{padding-top:40px}.logo-wrap img,.logo{max-width:94%}
 .event{padding:27px 22px 24px 30px!important}.event h3{font-size:clamp(36px,10.5vw,48px)!important}
}

/* V2.10.2 — mobile density + optical logo centering */
@media (max-width:700px){
  /* The transparent logo artwork is visually heavier on the left.
     Shift the image itself slightly right for optical, not mathematical, centering. */
  .logo-wrap{overflow:visible!important}
  .logo-wrap img,.logo{position:relative!important;left:3.2%!important;margin-left:auto!important;margin-right:auto!important}

  .hero{padding-top:34px!important;padding-bottom:24px!important}
  .hero .tagline{margin-top:24px!important}
  .telemetry{margin-top:20px!important}
  .status-strip{padding-top:12px!important;padding-bottom:12px!important}
  .section{padding-top:46px!important;padding-bottom:24px!important}
  .section-head{margin-bottom:22px!important}
  .event-grid{gap:16px!important}

  .event{
    min-height:0!important;height:auto!important;
    padding:23px 24px 21px 31px!important;
  }
  .event h3{
    margin-top:10px!important;margin-bottom:10px!important;
    font-size:clamp(35px,10vw,49px)!important;
    line-height:.94!important
  }
  .event .event-title{margin-bottom:18px!important;line-height:1.35!important}
  .event .location{margin-top:2px!important}
  .event .details{line-height:1.48!important}
  .event .support{
    margin-top:16px!important;padding-top:14px!important;
    line-height:1.45!important;font-size:10px!important
  }
  .event .ticket,.event a.ticket{
    margin-top:18px!important;padding:14px 20px!important
  }
  .event .verified{margin-top:10px!important;font-size:9px!important}

  /* Empty TONIGHT should read as status, not consume an event-card-sized screen. */
  #tonight .empty{min-height:170px!important;padding:26px!important}
  #tonight .empty-mark{font-size:58px!important}

  /* Long festival/bill headings are deliberately quieter on phones. */
  .event.long-lineup h3{font-size:clamp(28px,7.8vw,39px)!important;line-height:.98!important}
}
@media (max-width:430px){
  .logo-wrap img,.logo{left:3.8%!important}
  .event{padding:21px 20px 19px 28px!important}
}

/* V2.10.3 — mobile cleanup */
@media (max-width:700px){
  /* Undo percentage optical shift; center safely with breathing room. */
  .logo-wrap{width:100%!important;display:flex!important;justify-content:center!important;overflow:visible!important}
  .logo-wrap img,.logo{
    position:static!important;left:auto!important;transform:none!important;
    width:89%!important;max-width:520px!important;height:auto!important;
    margin-left:auto!important;margin-right:auto!important
  }

  /* Compact action/footer region. */
  .event .support{margin-bottom:0!important}
  .event .ticket,.event a.ticket{margin-top:14px!important;margin-bottom:0!important}
  .event .verified{margin-top:8px!important;margin-bottom:0!important}
  .event{padding-bottom:17px!important}

  /* Festival presentation: event identity first, detected lineup second. */
  .event.festival-card h3{font-size:clamp(35px,9.5vw,48px)!important;line-height:.93!important}
  .event.festival-card .festival-lineup{
    margin:13px 0 17px;font:700 11px/1.65 "Courier New",monospace;
    letter-spacing:.08em;color:#a9abad;text-transform:uppercase
  }
  .event.festival-card .festival-lineup-label{
    display:block;margin-bottom:5px;font-size:8px;letter-spacing:.16em;color:#62676a
  }
}

/* V2.10.4 — root-cause mobile fixes */
@media (max-width:700px){
  /* Treat every hero-logo image/effect layer as one centered stack. */
  .logo-wrap{
    position:relative!important;
    width:100%!important;
    height:auto!important;
    display:grid!important;
    place-items:center!important;
    overflow:hidden!important;
  }
  .logo-wrap>*,
  .logo-wrap img,
  .logo{
    grid-area:1/1!important;
    position:relative!important;
    inset:auto!important;
    left:auto!important;right:auto!important;
    top:auto!important;bottom:auto!important;
    transform:none!important;
    width:86%!important;
    max-width:500px!important;
    height:auto!important;
    margin:0 auto!important;
    justify-self:center!important;
  }

  /* Compact footer: actions no longer inherit desktop vertical placement. */
  .event-action{
    position:static!important;
    margin:14px 0 0!important;
    padding:0!important;
    min-height:0!important;
  }
  .event .ticket,.event a.ticket{
    position:static!important;
    margin:0!important;
    padding:12px 18px!important;
  }
  .event .source{
    position:static!important;
    margin:8px 0 0!important;
    padding:0!important;
    min-height:0!important;
  }
  .event{padding-bottom:15px!important}

  .event.festival-card .festival-lineup{
    max-width:100%;
    overflow-wrap:anywhere;
  }
}

/* V2.10.5 — phone-native full-width composition */
@media (max-width:700px){
  /* Kill the desktop viewport/frame treatment on phones. */
  body{padding-left:0!important;padding-right:0!important}
  .shell,.frame,.site-frame,.radar-frame,.outer-frame,.page-frame{
    width:100%!important;max-width:none!important;
    margin-left:0!important;margin-right:0!important;
    border-left:0!important;border-right:0!important;
    box-shadow:none!important;
  }
  /* Hide decorative outer-frame pseudo elements/ticks where used. */
  .frame::before,.frame::after,.site-frame::before,.site-frame::after,
  .radar-frame::before,.radar-frame::after,.outer-frame::before,.outer-frame::after,
  .page-frame::before,.page-frame::after{display:none!important}

  /* Sections get simple phone gutters instead of nested desktop gutters. */
  main,section,.section,.hero,.system-bar,.scan-status{
    max-width:none!important;
  }
  .section,.events-section,#tonight,#upcoming,#future{
    padding-left:16px!important;padding-right:16px!important;
  }

  /* Cards consume the available phone canvas. */
  .event{
    width:100%!important;max-width:none!important;
    margin-left:0!important;margin-right:0!important;
    padding:20px 18px 14px!important;
  }
  .event-main{gap:12px!important}
  .event h3{font-size:clamp(38px,11.5vw,54px)!important;line-height:.91!important}
  .event .title{margin-top:12px!important;margin-bottom:14px!important}
  .event .meta{margin-top:12px!important}
  .event .support{margin-top:14px!important;padding-top:13px!important}
  .event-action{margin-top:12px!important}
  .event .source{margin-top:7px!important}

  /* Festival cards now benefit from the extra width. */
  .event.festival-card h3{font-size:clamp(36px,10.5vw,50px)!important}
  .event.festival-card .festival-lineup{margin:10px 0 13px!important;line-height:1.5!important}

  /* Make the empty state a status strip rather than a giant card. */
  #tonight .empty{
    min-height:120px!important;
    padding:20px 18px!important;
  }
  #tonight .empty .empty-mark{font-size:48px!important}

  /* Shorter hero, full-width visual field. */
  .hero{padding-top:24px!important;padding-bottom:18px!important}
  .hero .logo-wrap{margin-top:12px!important;margin-bottom:18px!important}
  .logo-wrap>*,
  .logo-wrap img,
  .logo{
    width:82%!important;
    max-width:460px!important;
    transform:translateX(-5px)!important; /* tiny optical correction only */
  }
  .hero h1{margin-top:8px!important;margin-bottom:12px!important}
  .hero .tagline{margin-top:8px!important}
  .telemetry{margin-top:16px!important;margin-bottom:10px!important}
}
@media (max-width:430px){
  .section,.events-section,#tonight,#upcoming,#future{
    padding-left:12px!important;padding-right:12px!important;
  }
  .event{padding-left:16px!important;padding-right:16px!important}
}

/* V2.10.6 — mobile information-density pass */
@media (max-width:700px){
  /* Branding becomes a masthead, not the content. */
  .hero{
    padding:12px 16px 10px!important;
  }
  .hero .logo-wrap{
    margin:4px auto 7px!important;
    max-height:88px!important;
  }
  .logo-wrap>*,
  .logo-wrap img,
  .logo{
    width:48%!important;
    max-width:260px!important;
    transform:translateX(-3px)!important;
  }
  .hero h1{
    font-size:clamp(30px,8.5vw,40px)!important;
    line-height:.9!important;
    margin:4px 0 8px!important;
  }
  .hero .eyebrow,.hero .signal-intelligence{
    margin:4px 0!important;
    font-size:8px!important;
  }
  .hero .tagline{
    margin:5px 0 3px!important;
    font-size:10px!important;
  }
  .hero .frequency{
    margin:2px 0!important;
    font-size:7px!important;
  }
  .telemetry{
    margin:8px 0 4px!important;
    gap:10px!important;
    min-height:0!important;
  }
  .system-bar{
    padding-top:9px!important;padding-bottom:9px!important;
    min-height:0!important;
  }
  .scan-status{
    padding-top:8px!important;padding-bottom:8px!important;
    min-height:0!important;
  }

  /* Current-contact heading consumes less vertical real estate. */
  #tonight,#upcoming,#future{padding-top:24px!important;padding-bottom:18px!important}
  #tonight h2,#upcoming h2,#future h2,.section h2{
    font-size:clamp(42px,12vw,58px)!important;
    line-height:.9!important;
    margin:6px 0 18px!important;
  }

  /* NO SIGNAL is a compact status banner. */
  #tonight .empty{
    min-height:0!important;
    height:auto!important;
    padding:16px!important;
    margin-bottom:4px!important;
  }
  #tonight .empty .empty-mark{font-size:34px!important}
  #tonight .empty h3,#tonight .empty .empty-title{
    font-size:clamp(28px,8vw,38px)!important;
    margin:0!important;
  }

  /* Event cards: dense phone-first information blocks. */
  .cards,.event-list{gap:12px!important}
  .event{
    padding:15px 16px 11px!important;
    min-height:0!important;
  }
  .event-main{display:block!important}
  .contact-id{font-size:7px!important;margin-bottom:7px!important}
  .event-date{font-size:10px!important;margin-bottom:9px!important}
  .event h3{
    font-size:clamp(36px,10.5vw,48px)!important;
    line-height:.9!important;
    margin:0 0 7px!important;
  }
  .event .title{
    font-size:9px!important;
    line-height:1.35!important;
    margin:7px 0 11px!important;
  }
  .event .meta{
    margin-top:9px!important;
    font-size:13px!important;
    line-height:1.42!important;
  }
  .event .meta-label{font-size:7px!important}
  .event .meta b{
    font-size:20px!important;
    line-height:1.05!important;
  }
  .event .support{
    margin-top:10px!important;
    padding-top:9px!important;
    font-size:8px!important;
    line-height:1.4!important;
  }
  .event-action{margin-top:9px!important}
  .event .ticket,.event a.ticket{
    min-height:0!important;
    padding:9px 14px!important;
    font-size:9px!important;
  }
  .event .source{
    margin-top:6px!important;
    font-size:7px!important;
    line-height:1.2!important;
  }

  .event.festival-card h3{font-size:clamp(32px,9.5vw,44px)!important}
  .event.festival-card .festival-lineup{
    margin:7px 0 9px!important;
    font-size:8px!important;
    line-height:1.4!important;
  }
  .event.festival-card .festival-lineup-label{font-size:7px!important;margin-bottom:3px!important}
}

/* V2.10.7 — edge-to-edge mobile data canvas */
@media (max-width:700px){
  /* Remove the remaining decorative phone frame completely. */
  .frame,.site-frame,.radar-frame,.outer-frame,.page-frame{display:none!important}
  main{width:100%!important;max-width:none!important;margin:0!important}
  .shell{width:100%!important;margin:0!important;border:0!important}

  /* Use nearly the entire viewport for useful data. */
  .section,.events-section,#tonight,#upcoming,#future{
    padding-left:6px!important;padding-right:6px!important;
  }
  .section-head{padding-left:12px!important;padding-right:12px!important}
  .event-grid,.cards,.event-list{width:100%!important;gap:8px!important}

  /* Cards become edge-to-edge data bands instead of boxes inside boxes. */
  .event{
    width:100%!important;
    border-left:0!important;border-right:0!important;
    border-radius:0!important;
    padding:14px 20px 10px!important;
    background:linear-gradient(110deg,rgba(255,255,255,.035),rgba(255,255,255,.009) 55%,transparent),var(--panel)!important;
  }
  .event:before{display:none!important}
  .event>.accent{width:3px!important}
  .event-main{padding-left:0!important;padding-right:0!important}
  .event-action{padding-left:0!important;padding-right:0!important}
  .source{left:20px!important}

  /* Brand still reads clearly, but stops competing with Tonight. */
  .hero{padding:10px 14px 8px!important}
  .hero .logo-wrap{margin:3px auto 6px!important;max-height:112px!important}
  .logo-wrap>*,.logo-wrap img,.logo{
    width:64%!important;max-width:340px!important;transform:translateX(-3px)!important;
  }
  .hero h1{font-size:clamp(25px,7vw,34px)!important;line-height:.9!important;margin:3px 0 6px!important}
  .hero .tagline{margin:3px 0 2px!important;font-size:9px!important}
  .hero .frequency{font-size:7px!important;margin:1px 0!important}
  .telemetry{margin:5px 0 2px!important}
  .system-bar{padding:7px 12px!important}
  .scan-status{padding:6px 12px!important}

  #tonight,#upcoming,#future{padding-top:18px!important;padding-bottom:12px!important}
  #tonight h2,#upcoming h2,#future h2,.section h2{margin:4px 12px 12px!important}
  #tonight .empty{margin-left:0!important;margin-right:0!important;border-left:0!important;border-right:0!important;padding:12px 18px!important}
}
@media (max-width:430px){
  .section,.events-section,#tonight,#upcoming,#future{padding-left:0!important;padding-right:0!important}
  .section-head{padding-left:16px!important;padding-right:16px!important}
  .event{padding-left:18px!important;padding-right:18px!important}
  .source{left:18px!important}
}


/* ==========================================================
   V2.10.8 — MOBILE HIERARCHY REBUILD
   Brand mark stays prominent. UI chrome shrinks. Data wins.
   ========================================================== */
@media (max-width:700px){

  /* Phone canvas */
  html,body{overflow-x:hidden!important}
  body{padding:0!important}
  .shell,.frame,.site-frame,.radar-frame,.outer-frame,.page-frame{
    width:100%!important;max-width:none!important;
    margin:0!important;border:0!important;box-shadow:none!important;
  }

  /* Compact system header */
  .system-bar{
    padding:9px 20px!important;
    min-height:0!important;
    font-size:7px!important;
    line-height:1.25!important;
  }

  /* BRAND: larger logo, much less surrounding dead space */
  .hero{
    padding:10px 20px 11px!important;
    min-height:0!important;
  }
  .hero .logo-wrap{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin:0 auto 5px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    overflow:visible!important;
  }
  .logo-wrap>*,
  .logo-wrap img,
  .logo{
    grid-area:1/1!important;
    position:relative!important;
    inset:auto!important;
    width:72%!important;
    max-width:400px!important;
    height:auto!important;
    margin:0 auto!important;
    transform:translateX(-3px)!important;
    justify-self:center!important;
  }

  /* Radar name is an identifier, not another hero */
  .hero .eyebrow,.hero .signal-intelligence{
    margin:2px 0 3px!important;
    font-size:7px!important;
    line-height:1.2!important;
  }
  .hero h1{
    font-size:clamp(23px,6.7vw,31px)!important;
    line-height:.92!important;
    letter-spacing:-.035em!important;
    margin:2px 0 5px!important;
    max-width:none!important;
  }
  .hero .tagline{
    margin:3px 0 2px!important;
    font-size:8px!important;
    line-height:1.25!important;
  }
  .hero .frequency{
    margin:1px 0!important;
    font-size:6px!important;
    line-height:1.2!important;
  }
  .telemetry{
    margin:6px 0 2px!important;
    gap:10px!important;
    min-height:0!important;
    font-size:6px!important;
  }
  .telemetry>*{min-height:0!important}

  .scan-status{
    padding:7px 20px!important;
    min-height:0!important;
    font-size:7px!important;
    line-height:1.25!important;
  }

  /* Sections: labels, not poster headlines */
  #tonight,#upcoming,#future,
  .section,.events-section{
    padding:15px 18px 12px!important;
    margin:0!important;
  }
  .section-head,.section-header{
    margin:0 0 10px!important;
    padding:0!important;
  }
  #tonight h2,#upcoming h2,#future h2,
  .section h2,.events-section h2{
    font-size:clamp(28px,8vw,36px)!important;
    line-height:.92!important;
    letter-spacing:-.04em!important;
    margin:3px 0 10px!important;
  }
  .section-kicker,.section-index,.section-range{
    font-size:7px!important;
    line-height:1.2!important;
  }

  /* Empty current state = status strip */
  #tonight .empty{
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:12px 14px!important;
    display:flex!important;
    align-items:center!important;
    gap:13px!important;
  }
  #tonight .empty .empty-mark{
    font-size:29px!important;
    line-height:1!important;
    flex:0 0 auto!important;
  }
  #tonight .empty h3,
  #tonight .empty .empty-title{
    font-size:clamp(22px,6.5vw,29px)!important;
    line-height:1!important;
    margin:0!important;
  }
  #tonight .empty p,
  #tonight .empty .empty-sub{
    margin:3px 0 0!important;
    font-size:6px!important;
    line-height:1.2!important;
  }

  /* Event stream: full-width information blocks */
  .cards,.event-list{
    gap:0!important;
    margin:0!important;
  }
  .event{
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    padding:14px 18px 11px!important;
    border-left:0!important;
    border-right:0!important;
    border-radius:0!important;
  }
  .event + .event{margin-top:8px!important}
  .event-main{display:block!important;gap:0!important}
  .contact-id{
    margin:0 0 5px!important;
    font-size:6px!important;
    line-height:1.2!important;
  }
  .event-date{
    margin:0 0 7px!important;
    font-size:9px!important;
    line-height:1.2!important;
  }
  .event h3{
    margin:0 0 5px!important;
    font-size:clamp(35px,10vw,47px)!important;
    line-height:.91!important;
    letter-spacing:-.035em!important;
  }
  .event .title{
    margin:5px 0 9px!important;
    font-size:8px!important;
    line-height:1.25!important;
  }
  .event .meta{
    margin:7px 0 0!important;
    font-size:12px!important;
    line-height:1.3!important;
  }
  .event .meta-label{
    margin-bottom:3px!important;
    font-size:6px!important;
  }
  .event .meta b{
    font-size:19px!important;
    line-height:1.05!important;
  }
  .event .support{
    margin-top:8px!important;
    padding-top:7px!important;
    font-size:7px!important;
    line-height:1.3!important;
  }

  /* Actions live in the information flow; no footer-sized dead zone */
  .event-action{
    position:static!important;
    margin:8px 0 0!important;
    padding:0!important;
    min-height:0!important;
  }
  .event .ticket,.event a.ticket{
    position:static!important;
    margin:0!important;
    padding:8px 13px!important;
    min-height:0!important;
    font-size:8px!important;
    line-height:1!important;
  }
  .event .source{
    position:static!important;
    margin:5px 0 0!important;
    padding:0!important;
    min-height:0!important;
    font-size:6px!important;
    line-height:1.15!important;
  }

  /* Festival: event title + compact lineup */
  .event.festival-card h3{
    font-size:clamp(31px,9vw,42px)!important;
    line-height:.91!important;
  }
  .event.festival-card .festival-lineup{
    margin:5px 0 8px!important;
    font-size:7px!important;
    line-height:1.35!important;
  }
  .event.festival-card .festival-lineup-label{
    margin:0 0 2px!important;
    font-size:6px!important;
  }

  /* Future control/footer compact */
  .future-toggle,.future-control{
    margin:10px 18px!important;
    padding:11px 12px!important;
    min-height:0!important;
    font-size:7px!important;
  }
  footer,.footer{
    padding:15px 18px!important;
    min-height:0!important;
  }
}

@media (max-width:430px){
  #tonight,#upcoming,#future,.section,.events-section{
    padding-left:14px!important;padding-right:14px!important;
  }
  .event{padding-left:15px!important;padding-right:15px!important}
  .hero{padding-left:16px!important;padding-right:16px!important}
  .logo-wrap>*,.logo-wrap img,.logo{
    width:76%!important;
    max-width:390px!important;
  }
}

/* =========================================================
   V2.10.9 — MOBILE INFO-FIRST MASTHEAD
   Bigger logo, dramatically smaller Radar branding, wider data.
   Desktop intentionally unchanged.
   ========================================================= */
@media (max-width:700px){
  /* Use the phone width. No decorative outer frame or shell rails. */
  .frame{display:none!important}
  main{width:100%!important;max-width:none!important;margin:0!important}
  .shell{margin-left:0!important;margin-right:0!important;border-left:0!important;border-right:0!important}

  /* Compact system line */
  .hero{margin-top:0!important;padding:0!important;min-height:0!important;border-top:0!important}
  .topline{
    min-height:0!important;padding:8px 18px!important;gap:14px!important;
    font-size:6px!important;line-height:1.15!important;
  }
  .topline span:nth-child(2){display:none!important}

  /* Masthead, not a full hero. */
  .hero-lockup{
    display:block!important;min-height:0!important;height:auto!important;
    padding:12px 18px 10px!important;overflow:hidden!important;
  }
  .hero-lockup:after{display:none!important}
  .sensor-field{
    display:block!important;width:190px!important;height:190px!important;
    left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;
    opacity:.10!important;
  }

  /* Logo is intentionally prominent. */
  .hero .logo-wrap{
    position:relative!important;display:flex!important;justify-content:center!important;
    width:100%!important;height:auto!important;max-height:none!important;
    margin:0 auto 5px!important;transform:none!important;
  }
  .logo-wrap>*,.logo-wrap img,.logo{
    position:relative!important;inset:auto!important;left:auto!important;
    width:74%!important;max-width:430px!important;height:auto!important;
    margin:0 auto!important;transform:translateX(2px)!important;
  }
  .logo-ghost{position:absolute!important;left:50%!important;transform:translateX(-50%)!important}

  /* Collapse Radar branding to one compact identity row. */
  .hero-copy{
    position:relative!important;padding:0!important;margin:0!important;border:0!important;
    display:grid!important;grid-template-columns:auto 1fr!important;
    align-items:end!important;column-gap:12px!important;
  }
  .hero-copy .kicker{display:none!important}
  .hero h1{
    grid-column:1!important;margin:0!important;max-width:none!important;
    font-size:19px!important;line-height:.9!important;letter-spacing:-.035em!important;
    white-space:nowrap!important;
  }
  .hero-copy p{grid-column:2!important;margin:0!important;max-width:none!important;align-self:center!important}
  .signal-line{font-size:7px!important;line-height:1.2!important;letter-spacing:.08em!important;white-space:nowrap!important}
  .frequency-line{display:none!important}
  .telemetry{display:none!important}
  .status-strip{display:none!important}

  /* Information begins immediately. */
  .section{padding:12px 14px 14px!important}
  .section:before{height:3px!important;width:72px!important}
  .section-head{margin:0 0 8px!important;align-items:end!important}
  .section .kicker{font-size:6px!important;line-height:1.1!important}
  .section h2,#tonight h2,#upcoming h2,#future h2{
    font-size:26px!important;line-height:.92!important;letter-spacing:-.035em!important;
    margin:2px 0 0!important;
  }
  .section-head .date{font-size:7px!important;padding:0 0 2px!important}

  /* Empty tonight is a compact status row, not a poster. */
  .empty,#tonight-empty,#tonight .empty{
    min-height:0!important;height:auto!important;margin:0!important;
    padding:10px 14px!important;gap:12px!important;justify-content:flex-start!important;
  }
  .empty-mark,#tonight .empty .empty-mark{font-size:30px!important}
  .empty strong,#tonight .empty strong{font-size:22px!important;line-height:1!important}
  .empty span,#tonight .empty span{font-size:6px!important;margin-top:2px!important}

  /* Upcoming follows tightly after Tonight. */
  .upcoming-section{padding-top:15px!important}
  .upcoming-section .section-head{margin-bottom:10px!important}

  /* Cards consume nearly the whole screen width. */
  .event-grid{gap:8px!important}
  .event{
    width:100%!important;max-width:none!important;margin:0!important;
    border-left:0!important;border-right:0!important;border-radius:0!important;
  }
  .event-main{padding:14px 12px 9px!important}
  .event h3{font-size:clamp(34px,10vw,45px)!important}
  .event .meta b{font-size:20px!important}
  .event-action{padding:0 12px 10px!important}
  .source{left:12px!important}
  .event + .event{margin-top:0!important}

  .future-toggle,.future-control{margin:9px 0!important}
  footer,.footer{padding:13px 14px 22px!important}
}

@media (max-width:430px){
  .hero-lockup{padding-left:14px!important;padding-right:14px!important}
  .logo-wrap>*,.logo-wrap img,.logo{width:78%!important;max-width:400px!important}
  .signal-line{font-size:6px!important}
  .section{padding-left:10px!important;padding-right:10px!important}
  .event-main{padding-left:11px!important;padding-right:11px!important}
  .event-action{padding-left:11px!important;padding-right:11px!important}
}

/* =========================================================
   V2.11 — MOBILE RESET
   Compact identity, prominent centered logo, information-first feed.
   Desktop unchanged.
   ========================================================= */
@media (max-width:700px){
  html,body{overflow-x:hidden!important}
  main,.shell{width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important}
  .frame{display:none!important}

  /* Masthead: one compact identity block, not a poster. */
  .topline{height:24px!important;min-height:24px!important;padding:0 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important}
  .topline span{font-size:5.5px!important}
  .topline span:nth-child(2),.topline span:nth-child(3),#clock{display:none!important}
  .hero-lockup{height:auto!important;min-height:0!important;padding:7px 14px 9px!important;overflow:visible!important}
  .sensor-field{width:150px!important;height:150px!important;opacity:.09!important;top:45%!important}
  .sensor-label{display:none!important}

  /* Only the master logo establishes layout. Ghosts stay behind it. */
  .hero .logo-wrap{position:relative!important;width:100%!important;height:104px!important;margin:0 auto 4px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important}
  .hero .logo-main{position:relative!important;display:block!important;width:auto!important;height:auto!important;max-height:100px!important;max-width:min(88vw,470px)!important;margin:0 auto!important;left:auto!important;right:auto!important;transform:translateX(5px)!important;object-fit:contain!important}
  .hero .logo-ghost{position:absolute!important;display:block!important;width:auto!important;height:auto!important;max-height:100px!important;max-width:min(88vw,470px)!important;left:50%!important;top:50%!important;margin:0!important;object-fit:contain!important;opacity:.08!important}
  .hero .logo-ghost-a{transform:translate(-50%,-50%) translateX(2px)!important}
  .hero .logo-ghost-b{transform:translate(-50%,-50%) translateX(8px)!important}

  /* Radar is a label, not a headline. */
  .hero-copy{display:flex!important;align-items:baseline!important;justify-content:center!important;gap:12px!important;margin:0!important;padding:0!important;text-align:center!important}
  .hero-copy .kicker,.frequency-line,.telemetry,.status-strip{display:none!important}
  .hero h1{display:block!important;margin:0!important;font-size:15px!important;line-height:1!important;letter-spacing:-.02em!important;white-space:nowrap!important}
  .hero h1 br{display:none!important}
  .hero-copy p{display:block!important;margin:0!important;padding:0!important}
  .signal-line{display:block!important;font-size:6px!important;line-height:1!important;letter-spacing:.08em!important;white-space:nowrap!important}

  /* Sections are labels + data, not giant title panels. */
  .section{padding:12px 0 10px!important}
  .section:before{width:56px!important;height:2px!important}
  .section-head{padding:0 14px!important;margin:0 0 7px!important;align-items:end!important}
  .section .kicker{font-size:5.5px!important;line-height:1!important;margin-bottom:3px!important}
  .section h2,#tonight h2,#upcoming h2,#future h2{font-size:22px!important;line-height:1!important;letter-spacing:-.025em!important;margin:0!important}
  .section-head .date{font-size:6px!important;line-height:1!important;padding-bottom:2px!important}

  /* Tonight empty state = a status strip. */
  .empty,#tonight-empty,#tonight .empty{min-height:0!important;height:58px!important;margin:0!important;padding:8px 16px!important;border-left:0!important;border-right:0!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important}
  .empty.hidden,#tonight-empty.hidden{display:none!important}
  .empty-mark,#tonight .empty .empty-mark{font-size:27px!important;line-height:1!important}
  .empty strong,#tonight .empty strong{font-size:19px!important;line-height:1!important}
  .empty span,#tonight .empty span{font-size:5.5px!important;line-height:1!important;margin-top:2px!important}

  .upcoming-section{padding-top:11px!important}
  .upcoming-section .section-head{margin-bottom:7px!important}

  /* Feed owns the viewport width. Horizontal rules provide structure. */
  .event-grid{width:100%!important;gap:0!important}
  .event{width:100%!important;max-width:none!important;margin:0!important;border:0!important;border-top:1px solid rgba(255,255,255,.14)!important;border-radius:0!important;background:rgba(8,9,10,.50)!important;box-shadow:none!important}
  .event:last-child{border-bottom:1px solid rgba(255,255,255,.14)!important}
  .event:before,.event:after,.event .corner,.event .bracket{display:none!important}
  .event-main{padding:15px 16px 8px!important}
  .event h3{font-size:clamp(32px,9.2vw,43px)!important;line-height:.93!important;margin:6px 0 7px!important;letter-spacing:-.035em!important}
  .event .event-title,.event .subtitle{margin-bottom:10px!important}
  .event .meta{margin-top:9px!important}
  .event .meta b{font-size:19px!important;line-height:1.05!important}
  .event .meta span{font-size:14px!important;line-height:1.25!important}
  .event .support{margin-top:9px!important;padding-top:8px!important}
  .event-action{padding:7px 16px 12px!important;min-height:0!important}
  .event-action a,.ticket{padding:9px 14px!important}
  .source{position:static!important;margin:6px 0 0!important;font-size:5px!important}

  .future-toggle,.future-control{margin:8px 12px!important;width:calc(100% - 24px)!important}
  footer,.footer{padding:12px 14px 20px!important}
}

@media (max-width:430px){
  .hero .logo-wrap{height:108px!important}
  .hero .logo-main,.hero .logo-ghost{max-height:104px!important;max-width:90vw!important}
  .hero .logo-main{transform:translateX(6px)!important}
  .section-head{padding-left:12px!important;padding-right:12px!important}
  .event-main{padding-left:14px!important;padding-right:14px!important}
  .event-action{padding-left:14px!important;padding-right:14px!important}
}

/* =========================================================
   V2.12 — MOBILE CLEANUP
   Logo-only masthead, denser event rows, stronger NO SIGNAL.
   Desktop unchanged.
   ========================================================= */
@media (max-width:700px){
  /* The logo is the brand. Remove the redundant NOCLIP RADAR/tagline row. */
  .hero-copy{display:none!important}
  .hero-lockup{padding:7px 12px 7px!important}
  .hero .logo-wrap{height:112px!important;margin:0!important}
  .hero .logo-main,.hero .logo-ghost{max-height:108px!important;max-width:92vw!important}

  /* Small section labels; information gets the space. */
  .section{padding-top:10px!important;padding-bottom:8px!important}
  .section-head{margin-bottom:6px!important}
  .section h2,#tonight h2,#upcoming h2,#future h2{font-size:21px!important}

  /* NO SIGNAL should read as a deliberate state card, not another header. */
  .empty,#tonight-empty,#tonight .empty{
    height:88px!important;
    padding:13px 18px!important;
    gap:14px!important;
    background:linear-gradient(90deg,rgba(229,57,53,.075),rgba(229,57,53,.018))!important;
    border-top:1px solid rgba(229,57,53,.42)!important;
    border-bottom:1px solid rgba(229,57,53,.42)!important;
  }
  .empty-mark,#tonight .empty .empty-mark{font-size:34px!important}
  .empty strong,#tonight .empty strong{font-size:24px!important}
  .empty span,#tonight .empty span{font-size:6px!important;margin-top:5px!important}

  /* Denser feed: each contact is a compact information row. */
  .event-main{padding:11px 16px 5px!important}
  .contact-id{margin-bottom:4px!important;font-size:5.5px!important}
  .event-date{margin-bottom:5px!important;font-size:8px!important}
  .event h3{
    margin:4px 0 4px!important;
    font-size:clamp(29px,8.5vw,39px)!important;
    line-height:.92!important;
  }
  .event .title{margin:4px 0 7px!important;font-size:7px!important}
  .event .meta{margin-top:6px!important;font-size:11px!important;line-height:1.18!important}
  .event .meta-label{font-size:5.5px!important;margin-bottom:1px!important}
  .event .meta b{font-size:18px!important;line-height:1!important}
  .event .meta span{font-size:12px!important;line-height:1.15!important}
  .event .support{margin-top:6px!important;padding-top:6px!important;font-size:6px!important;line-height:1.2!important}
  .event-action{padding:5px 16px 0!important}
  .event-action a,.event .ticket,.event a.ticket{padding:8px 13px!important;font-size:7px!important}
  .source{margin:5px 16px 9px!important;font-size:5px!important;line-height:1!important}
  .event.festival-card h3{font-size:clamp(28px,8.2vw,38px)!important}
  .event.festival-card .festival-lineup{margin:4px 0 6px!important;font-size:6px!important;line-height:1.25!important}
  .event.festival-card .festival-lineup-label{font-size:5.5px!important}

  .upcoming-section{padding-top:9px!important}
  .upcoming-section .section-head{margin-bottom:5px!important}
}

@media (max-width:430px){
  .hero .logo-wrap{height:116px!important}
  .hero .logo-main,.hero .logo-ghost{max-height:112px!important;max-width:94vw!important}
  .event-main{padding-left:12px!important;padding-right:12px!important}
  .event-action{padding-left:12px!important;padding-right:12px!important}
  .source{margin-left:12px!important;margin-right:12px!important}
}

/* =========================================================
   V2.13 MOBILE INFORMATION HIERARCHY
   Separate TONIGHT from masthead, center status, widen feed.
   ========================================================= */
@media (max-width:700px){
  /* Give TONIGHT its own visual zone instead of attaching it to the logo. */
  #tonight{margin-top:12px!important;padding-top:14px!important;border-top:1px solid rgba(255,255,255,.13)!important}
  #tonight .section-head{margin-bottom:10px!important}

  /* NO SIGNAL is a real centered status panel. */
  .empty,#tonight-empty,#tonight .empty{
    height:92px!important;
    min-height:92px!important;
    padding:12px 18px!important;
    justify-content:center!important;
    text-align:left!important;
    gap:14px!important;
    border-top:1px solid rgba(229,57,53,.52)!important;
    border-bottom:1px solid rgba(229,57,53,.52)!important;
    background:linear-gradient(90deg,rgba(229,57,53,.025),rgba(229,57,53,.09),rgba(229,57,53,.025))!important;
  }
  .empty-mark,#tonight .empty .empty-mark{font-size:38px!important}
  .empty strong,#tonight .empty strong{font-size:25px!important}
  .empty span,#tonight .empty span{font-size:6px!important;margin-top:5px!important}

  /* Use nearly the entire phone width for the actual information feed. */
  #upcoming .section-inner,#future .section-inner{width:100%!important;max-width:none!important;padding-left:10px!important;padding-right:10px!important}
  #upcoming .event-grid,#future .event-grid{width:100%!important}
  .event-main{padding:10px 10px 4px!important}
  .event-action{padding:4px 10px 7px!important}

  /* Remove residual poster-like vertical rhythm inside each contact. */
  .event h3{margin:4px 0 5px!important;font-size:clamp(31px,9vw,41px)!important;line-height:.91!important}
  .event .event-title,.event .subtitle{margin-bottom:6px!important}
  .event .meta{margin-top:4px!important}
  .event .support{margin-top:5px!important;padding-top:5px!important}
  .event-action a,.event .ticket,.event a.ticket{padding:7px 12px!important}
}
@media (max-width:430px){
  #upcoming .section-inner,#future .section-inner{padding-left:6px!important;padding-right:6px!important}
  .event-main{padding-left:8px!important;padding-right:8px!important}
  .event-action{padding-left:8px!important;padding-right:8px!important}
}

/* =========================================================
   V2.14 MOBILE COMPOSITION
   Distinct masthead/TONIGHT zones + ticket beside venue data.
   ========================================================= */
.ticket-mobile{display:none}
@media (max-width:700px){
  /* Masthead ends decisively before the information feed begins. */
  #tonight{
    margin-top:30px!important;
    padding-top:18px!important;
    border-top:1px solid rgba(255,255,255,.22)!important;
  }
  #tonight:before{top:0!important}
  #tonight .section-head{margin-bottom:12px!important}

  /* Keep the status panel centered and visually substantial. */
  .empty,#tonight-empty,#tonight .empty{
    height:100px!important;
    min-height:100px!important;
    justify-content:center!important;
    text-align:left!important;
  }

  /* Venue facts and CTA share the same horizontal band. */
  .event .meta-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    width:100%!important;
  }
  .event .meta-info{min-width:0!important}
  .event .ticket-mobile{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    padding:9px 10px!important;
    white-space:nowrap!important;
    align-self:center!important;
    font-size:6.5px!important;
  }
  .event .event-action{display:none!important}
  .event .source{display:none!important}

  /* With CTA/source removed from the bottom, contacts can end immediately. */
  .event-main{padding-bottom:10px!important}
  .event .support{margin-bottom:0!important}
}
@media (max-width:430px){
  #tonight{margin-top:34px!important;padding-top:18px!important}
  .event .meta-row{gap:8px!important}
  .event .ticket-mobile{padding:8px 9px!important;font-size:6px!important}
}

/* =========================================================
   V2.15 — MOBILE RESET
   Desktop is the visual source of truth. Mobile is a purpose-built
   Radar interface: branded masthead + readable full-width contact records.
   ========================================================= */
@media (max-width:700px){
  /* Compact branded masthead — identity without a desktop-sized hero. */
  .hero{padding-bottom:0!important}
  .hero .topline{height:25px!important;padding:0 18px!important;border-bottom:1px solid rgba(255,255,255,.11)!important;font-size:5.5px!important}
  .hero .topline span:nth-child(2),.hero .topline span:nth-child(3),#clock{display:none!important}
  .hero .topline span:first-child,#updated{display:inline-flex!important}
  .hero-lockup{padding:8px 18px 11px!important;display:grid!important;grid-template-columns:1fr!important;gap:0!important}
  .sensor-field{display:block!important;position:absolute!important;inset:25px 0 auto!important;height:132px!important;opacity:.48!important;pointer-events:none!important}
  .sensor-field .radar{width:132px!important;height:132px!important;margin:auto!important}
  .sensor-label{display:none!important}
  .hero .logo-wrap{height:112px!important;margin:0!important;position:relative!important;z-index:2!important}
  .hero .logo-main,.hero .logo-ghost{max-height:108px!important;max-width:92vw!important}
  .hero .logo-main{transform:none!important}
  .hero-copy{display:grid!important;grid-template-columns:auto 1fr!important;align-items:center!important;justify-content:start!important;gap:13px!important;margin:-5px auto 0!important;padding:0 4px!important;width:min(100%,590px)!important;text-align:left!important;position:relative!important;z-index:3!important}
  .hero-copy .kicker,.frequency-line,.telemetry{display:none!important}
  .hero h1{display:block!important;font-size:18px!important;line-height:.88!important;letter-spacing:-.035em!important;white-space:normal!important;margin:0!important}
  .hero h1 br{display:block!important}
  .hero-copy p{display:block!important;margin:0!important;padding-left:13px!important;border-left:1px solid rgba(255,255,255,.18)!important}
  .signal-line{display:block!important;font-size:7px!important;line-height:1.35!important;letter-spacing:.12em!important;white-space:normal!important}
  .status-strip{display:flex!important;margin-top:10px!important;height:27px!important;padding:0 18px!important;justify-content:space-between!important;border-top:1px solid rgba(255,255,255,.10)!important;border-bottom:1px solid rgba(255,255,255,.10)!important;font-size:5.5px!important}
  .status-strip span:nth-child(3),.status-strip .coordinates{display:none!important}

  /* TONIGHT is a distinct information section, not part of the masthead. */
  #tonight{margin-top:18px!important;padding-top:17px!important;border-top:0!important}
  #tonight:before{top:0!important;width:72px!important;height:3px!important}
  #tonight .section-head{margin-bottom:13px!important}
  .section-head{padding:0 20px!important}
  .section .kicker{font-size:6.5px!important;letter-spacing:.15em!important;margin-bottom:5px!important}
  .section h2,#tonight h2,#upcoming h2,#future h2{font-size:28px!important;line-height:.95!important}
  .section-head .date{font-size:6.5px!important}

  /* Status card is deliberately graphic and centered. */
  .empty,#tonight-empty,#tonight .empty{
    height:112px!important;min-height:112px!important;margin:0!important;padding:16px 22px!important;
    justify-content:center!important;gap:16px!important;text-align:left!important;
    background:radial-gradient(circle at 50% 50%,rgba(229,57,53,.10),rgba(229,57,53,.025) 65%)!important;
    border-top:1px solid rgba(229,57,53,.50)!important;border-bottom:1px solid rgba(229,57,53,.50)!important;
  }
  .empty-mark,#tonight .empty .empty-mark{font-size:42px!important}
  .empty strong,#tonight .empty strong{font-size:27px!important}
  .empty span,#tonight .empty span{font-size:6.5px!important;letter-spacing:.13em!important;margin-top:6px!important}

  .upcoming-section{padding-top:18px!important}
  .upcoming-section .section-head{margin-bottom:13px!important}

  /* Contact records: no card box, readable type, consistent left edge. */
  .event-grid{width:100%!important;gap:0!important}
  .event{width:100%!important;margin:0!important;border:0!important;border-top:1px solid rgba(255,255,255,.15)!important;background:linear-gradient(90deg,rgba(255,255,255,.018),transparent 70%)!important;box-shadow:none!important;position:relative!important}
  .event:last-child{border-bottom:1px solid rgba(255,255,255,.15)!important}
  .event .accent{display:block!important;position:absolute!important;left:20px!important;top:-1px!important;width:54px!important;height:2px!important;background:var(--accent)!important;opacity:.95!important}
  .event-main{padding:18px 20px 16px!important}
  .contact-id{font-size:6px!important;line-height:1.2!important;letter-spacing:.13em!important;margin-bottom:6px!important;color:#777!important}
  .event-date{font-size:9px!important;line-height:1.2!important;letter-spacing:.14em!important;margin-bottom:7px!important}
  .event h3{font-size:clamp(34px,9.8vw,46px)!important;line-height:.94!important;letter-spacing:-.035em!important;margin:0 0 8px!important}
  .event .title{font-size:7.5px!important;line-height:1.35!important;letter-spacing:.12em!important;margin:0 0 14px!important}
  .event .meta{margin-top:12px!important}
  .event .meta-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:18px!important;width:100%!important}
  .event .meta-info{min-width:0!important;font-size:14px!important;line-height:1.32!important;color:#a9aaad!important}
  .event .meta-label{font-size:6px!important;letter-spacing:.14em!important;color:#74767a!important}
  .event .meta b{font-size:21px!important;line-height:1.05!important;color:#f1f0eb!important}
  .event .meta span{font-size:14px!important;line-height:1.25!important}
  .event .ticket-mobile{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:10px 12px!important;margin:0!important;font-size:7px!important;letter-spacing:.14em!important;white-space:nowrap!important;align-self:center!important;min-width:82px!important}
  .event .support{margin-top:12px!important;padding-top:9px!important;border-top:1px solid rgba(255,255,255,.12)!important;font-size:6.5px!important;line-height:1.35!important;letter-spacing:.11em!important;color:#8d8e91!important}
  .event .event-action,.event .source{display:none!important}

  /* Festival contact: title is the signal, lineup is secondary but legible. */
  .event.festival-card h3{font-size:clamp(32px,9.2vw,43px)!important}
  .event.festival-card .festival-lineup{margin:0 0 14px!important;font-size:7px!important;line-height:1.45!important;letter-spacing:.08em!important;color:#aaa!important}
  .event.festival-card .festival-lineup-label{display:block!important;font-size:6px!important;margin-bottom:3px!important;color:#777!important}

  .future-toggle,.future-control{margin:14px 20px!important;width:calc(100% - 40px)!important}
  footer,.footer{padding-left:20px!important;padding-right:20px!important}
}

@media (max-width:430px){
  .hero .logo-wrap{height:116px!important}
  .hero .logo-main,.hero .logo-ghost{max-height:112px!important;max-width:94vw!important}
  .hero-copy{padding-left:8px!important;padding-right:8px!important}
  .section-head{padding-left:18px!important;padding-right:18px!important}
  .event .accent{left:18px!important}
  .event-main{padding-left:18px!important;padding-right:18px!important}
  .event .meta-row{gap:12px!important}
  .event .ticket-mobile{min-width:76px!important;padding:9px 10px!important}
  .future-toggle,.future-control{margin-left:18px!important;margin-right:18px!important;width:calc(100% - 36px)!important}
}

/* =========================================================
   V2.16 — LOCAL MOBILE MASTHEAD PREVIEW
   Side-by-side logo + Radar identity. Preview-only layer.
   ========================================================= */
@media (max-width:700px){
  .hero .topline{height:24px!important}
  .hero-lockup{
    min-height:0!important;
    padding:14px 18px 13px!important;
    display:grid!important;
    grid-template-columns:minmax(150px,46%) minmax(0,1fr)!important;
    align-items:center!important;
    gap:15px!important;
    position:relative!important;
  }
  .sensor-field{
    display:block!important;position:absolute!important;right:-30px!important;left:auto!important;top:50%!important;
    transform:translateY(-50%)!important;width:150px!important;height:150px!important;opacity:.18!important;overflow:hidden!important;
  }
  .sensor-field .radar{width:145px!important;height:145px!important;margin:0!important}
  .hero .logo-wrap{height:auto!important;min-height:0!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:3!important}
  .hero .logo-main,.hero .logo-ghost{max-width:100%!important;max-height:none!important;width:100%!important;height:auto!important}
  .hero-copy{
    display:block!important;width:auto!important;margin:0!important;padding:0 0 0 15px!important;text-align:left!important;
    border-left:1px solid rgba(255,255,255,.18)!important;z-index:3!important;
  }
  .hero-copy .kicker{display:block!important;font-size:5.5px!important;line-height:1.2!important;letter-spacing:.13em!important;margin:0 0 5px!important;color:#777!important}
  .hero h1{font-size:clamp(22px,6.5vw,31px)!important;line-height:.82!important;letter-spacing:-.045em!important;margin:0 0 8px!important}
  .hero-copy p{display:block!important;margin:0!important;padding:0!important;border:0!important}
  .signal-line{font-size:6.5px!important;line-height:1.35!important;letter-spacing:.10em!important}
  .frequency-line{display:block!important;margin-top:4px!important;font-size:5.5px!important;line-height:1.2!important;letter-spacing:.12em!important;color:#777!important}
  .telemetry{display:none!important}
  .status-strip{margin-top:0!important;height:25px!important}
  .status-strip span:nth-child(2){display:inline-flex!important}
  #tonight{margin-top:24px!important;padding-top:18px!important}
}
@media (max-width:430px){
  .hero-lockup{grid-template-columns:minmax(132px,44%) minmax(0,1fr)!important;gap:11px!important;padding-left:15px!important;padding-right:15px!important}
  .hero-copy{padding-left:12px!important}
  .hero-copy .kicker{font-size:5px!important}
  .hero h1{font-size:clamp(21px,6.8vw,28px)!important}
  .signal-line{font-size:5.8px!important}
  .frequency-line{font-size:5px!important}
}

/* =========================================================
   V2.16.1 — MOBILE MASTHEAD HIERARCHY
   Larger overall header; Noclip logo is dominant over Radar label.
   ========================================================= */
@media (max-width:700px){
  .hero-lockup{
    padding:20px 18px 19px!important;
    grid-template-columns:minmax(178px,55%) minmax(0,1fr)!important;
    gap:14px!important;
  }
  .hero .logo-wrap{transform:scale(1.08)!important;transform-origin:center center!important}
  .hero-copy{padding-left:14px!important}
  .hero-copy .kicker{font-size:5.5px!important;margin-bottom:5px!important}
  .hero h1{font-size:clamp(19px,5.2vw,25px)!important;line-height:.84!important;margin-bottom:8px!important}
  .signal-line{font-size:6.3px!important}
  .frequency-line{font-size:5.3px!important}
  .sensor-field{width:164px!important;height:164px!important;right:-38px!important}
  .sensor-field .radar{width:160px!important;height:160px!important}
}
@media (max-width:430px){
  .hero-lockup{
    grid-template-columns:minmax(155px,53%) minmax(0,1fr)!important;
    gap:10px!important;
    padding:18px 14px 17px!important;
  }
  .hero .logo-wrap{transform:scale(1.07)!important}
  .hero-copy{padding-left:11px!important}
  .hero h1{font-size:clamp(18px,5.5vw,23px)!important}
  .hero-copy .kicker{font-size:4.8px!important}
  .signal-line{font-size:5.7px!important}
  .frequency-line{font-size:4.8px!important}
}

/* =========================================================
   V2.16.2 — MOBILE BRAND DOMINANCE
   Noclip is the primary brand; Radar is clearly secondary.
   ========================================================= */
@media (max-width:700px){
  .hero-lockup{
    padding:25px 17px 24px!important;
    grid-template-columns:minmax(210px,64%) minmax(0,1fr)!important;
    gap:12px!important;
  }
  .hero .logo-wrap{
    transform:scale(1.12)!important;
    transform-origin:center center!important;
  }
  .hero-copy{
    padding-left:12px!important;
    border-left-color:rgba(255,255,255,.14)!important;
  }
  .hero-copy .kicker{
    font-size:4.8px!important;
    letter-spacing:.12em!important;
    margin-bottom:5px!important;
    opacity:.72!important;
  }
  .hero h1{
    font-size:clamp(16px,4.25vw,21px)!important;
    line-height:.86!important;
    letter-spacing:-.035em!important;
    margin-bottom:7px!important;
  }
  .signal-line{font-size:5.5px!important;line-height:1.35!important;color:#a7aaa9!important}
  .frequency-line{font-size:4.7px!important;margin-top:4px!important;opacity:.78!important}
  .sensor-field{width:176px!important;height:176px!important;right:-52px!important;opacity:.14!important}
  .sensor-field .radar{width:172px!important;height:172px!important}
  .status-strip{height:27px!important}
}
@media (max-width:430px){
  .hero-lockup{
    grid-template-columns:minmax(180px,62%) minmax(0,1fr)!important;
    gap:8px!important;
    padding:22px 12px 21px!important;
  }
  .hero .logo-wrap{transform:scale(1.11)!important}
  .hero-copy{padding-left:9px!important}
  .hero-copy .kicker{font-size:4.3px!important}
  .hero h1{font-size:clamp(15px,4.4vw,19px)!important}
  .signal-line{font-size:5px!important}
  .frequency-line{font-size:4.25px!important}
}

/* =========================================================
   V2.16.4 — MOBILE MASTHEAD BREATHING + BALANCED STATUS
   V2.16.2 balance, slightly smaller logo, more divider air,
   and symmetric NO SIGNAL spacing between section headings.
   ========================================================= */
@media (max-width:700px){
  .hero-lockup{
    padding:25px 18px 24px!important;
    grid-template-columns:minmax(202px,62%) minmax(0,1fr)!important;
    gap:18px!important;
  }
  .hero .logo-wrap{
    transform:scale(1.035)!important;
    transform-origin:center center!important;
  }
  .hero-copy{
    padding-left:18px!important;
    border-left-color:rgba(255,255,255,.14)!important;
  }

  /* Center the status panel optically between TONIGHT and UPCOMING. */
  #tonight .section-head{margin-bottom:14px!important}
  #upcoming.upcoming-section{padding-top:14px!important}
  #upcoming.upcoming-section .section-head{margin-bottom:13px!important}
}
@media (max-width:430px){
  .hero-lockup{
    grid-template-columns:minmax(172px,60%) minmax(0,1fr)!important;
    gap:13px!important;
    padding:22px 13px 21px!important;
  }
  .hero .logo-wrap{transform:scale(1.03)!important}
  .hero-copy{padding-left:13px!important}
  #tonight .section-head{margin-bottom:12px!important}
  #upcoming.upcoming-section{padding-top:12px!important}
}

/* =========================================================
   V2.16.5 — NO SIGNAL TOP-EDGE CLEANUP
   Remove the dead air immediately above the red status rule
   while preserving the overall TONIGHT / UPCOMING balance.
   ========================================================= */
@media (max-width:700px){
  #tonight .section-head{margin-bottom:5px!important}
  #upcoming.upcoming-section{padding-top:23px!important}
}
@media (max-width:430px){
  #tonight .section-head{margin-bottom:4px!important}
  #upcoming.upcoming-section{padding-top:20px!important}
}


/* =========================================================
   V2.16.7 — NOCLIP NAMING + NEAR-TERM CARD LANGUAGE
   Public naming is always Noclip. Upcoming contacts retain the
   desktop-style day-color rail; long-range contacts stay subtle.
   Tighten the actual TONIGHT -> NO SIGNAL boundary.
   ========================================================= */
@media (max-width:700px){
  /* The red rule is the immediate next visual element after the Tonight header. */
  #tonight{padding-bottom:0!important}
  #tonight .section-head{margin-bottom:2px!important}
  #tonight-empty,#tonight .empty{
    margin-top:0!important;
    border-top:1px solid rgba(229,57,53,.58)!important;
    border-bottom:1px solid rgba(229,57,53,.46)!important;
  }
  #upcoming.upcoming-section{padding-top:18px!important}

  /* Active / near-term contacts inherit the desktop card grammar. */
  #upcoming .event-grid{gap:12px!important;padding:0 14px!important}
  #upcoming .event{
    display:grid!important;
    grid-template-columns:6px minmax(0,1fr)!important;
    width:100%!important;
    margin:0!important;
    border:1px solid rgba(255,255,255,.13)!important;
    background:linear-gradient(110deg,rgba(255,255,255,.042),rgba(255,255,255,.012) 52%,transparent),var(--panel)!important;
    overflow:hidden!important;
    box-shadow:none!important;
  }
  #upcoming .event:last-child{border-bottom:1px solid rgba(255,255,255,.13)!important}
  #upcoming .event:before{
    content:""!important;display:block!important;position:absolute!important;inset:7px!important;pointer-events:none!important;
    background:linear-gradient(var(--accent),var(--accent)) left top/13px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) left top/1px 13px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/13px 1px no-repeat,linear-gradient(var(--accent),var(--accent)) right bottom/1px 13px no-repeat!important;
    opacity:.36!important;
  }
  #upcoming .event .accent{
    display:block!important;position:static!important;grid-column:1!important;grid-row:1!important;width:6px!important;height:auto!important;min-height:100%!important;
    background:var(--accent)!important;box-shadow:0 0 18px color-mix(in srgb,var(--accent),transparent 48%)!important;opacity:1!important;
  }
  #upcoming .event-main{grid-column:2!important;grid-row:1!important;padding:16px 16px 15px!important;position:relative!important;z-index:1!important}
  #upcoming .event h3{font-size:clamp(32px,9vw,43px)!important;line-height:.94!important}
  #upcoming .event .title{margin-bottom:11px!important}
  #upcoming .event .meta{margin-top:9px!important}
  #upcoming .event .support{margin-top:10px!important;padding-top:8px!important}
}
@media (max-width:430px){
  #tonight .section-head{margin-bottom:1px!important}
  #upcoming.upcoming-section{padding-top:16px!important}
  #upcoming .event-grid{padding-left:10px!important;padding-right:10px!important;gap:10px!important}
  #upcoming .event-main{padding:14px 14px 13px!important}
}


/* =========================================================
   V2.16.8 — MOBILE FULL-WIDTH CONTACTS + REAL GAP FIX
   Targets the section wrapper itself (not the event-grid id).
   ========================================================= */
@media (max-width:700px){
  /* Keep section labels aligned, but let status/cards use the full shell width. */
  .tonight-section,
  .upcoming-section{
    padding-left:0!important;
    padding-right:0!important;
  }
  .tonight-section > .section-head,
  .upcoming-section > .section-head,
  .upcoming-section > .future-toggle,
  .upcoming-section > .future-wrap > .future-head{
    margin-left:16px!important;
    margin-right:16px!important;
  }

  /* Actual source of the perceived gap: section-head margin on the wrapper. */
  .tonight-section > .section-head{
    margin-bottom:4px!important;
  }
  .tonight-section > #tonight{
    gap:0!important;
    padding:0!important;
    margin:0!important;
  }
  .tonight-section > #tonight-empty{
    margin:0!important;
    width:100%!important;
    border-left:0!important;
    border-right:0!important;
  }

  /* Full-width near-term cards. */
  .upcoming-section > #upcoming{
    width:100%!important;
    padding:0!important;
    margin:0!important;
    gap:10px!important;
  }
  .upcoming-section > #upcoming > .event{
    width:100%!important;
    margin:0!important;
    border-left:0!important;
    border-right:0!important;
    border-top:1px solid rgba(255,255,255,.13)!important;
    border-bottom:1px solid rgba(255,255,255,.13)!important;
    border-radius:0!important;
  }
  .upcoming-section > #upcoming > .event > .accent{
    width:6px!important;
  }

  /* Preserve the intentionally quieter long-range treatment. */
  .upcoming-section #future-signals{
    margin-left:16px!important;
    margin-right:16px!important;
  }
}
@media (max-width:430px){
  .tonight-section > .section-head,
  .upcoming-section > .section-head,
  .upcoming-section > .future-toggle,
  .upcoming-section > .future-wrap > .future-head{
    margin-left:12px!important;
    margin-right:12px!important;
  }
  .tonight-section > .section-head{margin-bottom:3px!important}
  .upcoming-section #future-signals{margin-left:12px!important;margin-right:12px!important}
}

/* =========================================================
   V2.16.9 — NO SIGNAL BOX EDGES
   Match the desktop system-state panel with restrained red
   vertical edges. No other mobile layout changes.
   ========================================================= */
@media (max-width:700px){
  .tonight-section > #tonight-empty{
    border-left:1px solid rgba(229,57,53,.46)!important;
    border-right:1px solid rgba(229,57,53,.46)!important;
  }
}

/* V2.17 // Progressive Web App install affordance */
.install-radar{appearance:none;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;padding:0;cursor:pointer;text-decoration:none}.install-radar:hover{opacity:.72}.install-help{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:24px}.install-help.hidden{display:none}.install-help-card{position:relative;width:min(420px,100%);border:1px solid rgba(255,255,255,.22);background:#080a0c;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.55)}.install-help-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--today-accent,#d7d7d2)}.install-help-card strong{display:block;margin:8px 0 16px;font-size:1.1rem;letter-spacing:.08em}.install-help-card p{margin:8px 0;color:rgba(255,255,255,.72);line-height:1.5}.install-help-close{position:absolute;right:10px;top:8px;border:0;background:none;color:#fff;font-size:24px;cursor:pointer}.install-radar.hidden{display:none}
@media (display-mode: standalone){.install-radar{display:none!important}}


/* V2.20 — TONIGHT bracket acquisition / signal lock */
.tonight-signal{
  isolation:isolate;overflow:hidden;
  border-color:color-mix(in srgb,var(--accent),transparent 58%);
  background:radial-gradient(ellipse at 0% 50%,color-mix(in srgb,var(--accent),transparent 86%),transparent 43%),linear-gradient(110deg,rgba(255,255,255,.065),rgba(255,255,255,.014) 48%,transparent),var(--panel);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent),transparent 88%),0 0 34px color-mix(in srgb,var(--accent),transparent 88%);
}
.tonight-signal>.accent{width:auto;box-shadow:0 0 34px color-mix(in srgb,var(--accent),transparent 22%)}
.tonight-signal .signal-state,.tonight-signal .signal-countdown{color:var(--accent);text-shadow:0 0 9px color-mix(in srgb,var(--accent),transparent 35%)}
.tonight-signal .ticket{background:color-mix(in srgb,var(--accent),transparent 92%);box-shadow:inset 0 0 18px color-mix(in srgb,var(--accent),transparent 93%),0 0 14px color-mix(in srgb,var(--accent),transparent 88%)}
.signal-acquisition{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.scan-trace{position:absolute;left:5%;right:5%;height:1px;top:-2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent),transparent 70%) 24%,var(--accent) 50%,color-mix(in srgb,var(--accent),transparent 70%) 76%,transparent);box-shadow:0 0 9px color-mix(in srgb,var(--accent),transparent 38%);opacity:0;animation:acquireScan 1.15s cubic-bezier(.2,.7,.2,1) .06s 1 forwards}
.lock-bracket{position:absolute;width:19px;height:19px;opacity:0;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent),transparent 25%));animation:bracketAcquire .82s cubic-bezier(.16,.8,.2,1) .24s 1 forwards}
.lock-bracket:before,.lock-bracket:after{content:"";position:absolute;background:var(--accent)}
.lb-tl{left:7px;top:7px;--sx:-20px;--sy:-16px}.lb-tr{right:7px;top:7px;--sx:20px;--sy:-16px}.lb-bl{left:7px;bottom:7px;--sx:-20px;--sy:16px}.lb-br{right:7px;bottom:7px;--sx:20px;--sy:16px}
.lb-tl:before,.lb-bl:before{left:0;width:1px;height:11px}.lb-tr:before,.lb-br:before{right:0;width:1px;height:11px}
.lb-tl:after,.lb-tr:after{top:0;height:1px;width:11px}.lb-bl:after,.lb-br:after{bottom:0;height:1px;width:11px}
.lb-tl:before,.lb-tr:before{top:0}.lb-bl:before,.lb-br:before{bottom:0}.lb-tl:after,.lb-bl:after{left:0}.lb-tr:after,.lb-br:after{right:0}
.lock-confirm{position:absolute;inset:0;border:1px solid var(--accent);opacity:0;box-shadow:inset 0 0 18px color-mix(in srgb,var(--accent),transparent 72%),0 0 16px color-mix(in srgb,var(--accent),transparent 55%);animation:lockConfirm .42s ease-out .93s 1 forwards}
.signal-wave{display:inline-flex;align-items:center;gap:2px;height:9px;margin-left:5px;vertical-align:-1px;opacity:.72}
.signal-wave i{display:block;width:1px;height:3px;background:var(--accent);box-shadow:0 0 4px var(--accent);animation:waveLock 1.1s ease-in-out infinite}
.signal-wave i:nth-child(2){height:7px;animation-delay:.1s}.signal-wave i:nth-child(3){height:4px;animation-delay:.2s}.signal-wave i:nth-child(4){height:8px;animation-delay:.3s}.signal-wave i:nth-child(5){height:3px;animation-delay:.4s}
.tonight-signal.proximity-hot{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent),transparent 80%),0 0 46px color-mix(in srgb,var(--accent),transparent 80%)}
.tonight-signal.proximity-critical,.tonight-signal.proximity-live{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent),transparent 70%),0 0 58px color-mix(in srgb,var(--accent),transparent 72%)}
.tonight-signal.proximity-hot>.accent,.tonight-signal.proximity-critical>.accent,.tonight-signal.proximity-live>.accent{animation:signalHeat 2.2s ease-in-out infinite}
.tonight-signal.proximity-critical .signal-wave i{animation-duration:.72s}.tonight-signal.proximity-live .signal-wave i{animation-duration:1.45s;opacity:1}
@keyframes acquireScan{0%{top:-2px;opacity:0}12%{opacity:.62}82%{opacity:.42}100%{top:100%;opacity:0}}
@keyframes bracketAcquire{0%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(1.18)}55%{opacity:.92}78%{transform:translate(2px,2px) scale(.96)}100%{opacity:.48;transform:translate(0,0) scale(1)}}
@keyframes lockConfirm{0%{opacity:0}35%{opacity:.72}100%{opacity:0}}
@keyframes waveLock{0%,100%{transform:scaleY(.55);opacity:.5}50%{transform:scaleY(1);opacity:1}}
@keyframes signalHeat{0%,100%{filter:brightness(1);opacity:.86}50%{filter:brightness(1.45);opacity:1}}
@media(max-width:700px){
  #tonight .tonight-signal{border:1px solid color-mix(in srgb,var(--accent),transparent 52%)!important;border-left:0!important;border-right:0!important;background:radial-gradient(ellipse at 0% 45%,color-mix(in srgb,var(--accent),transparent 82%),transparent 50%),rgba(8,9,10,.72)!important;box-shadow:inset 0 0 30px color-mix(in srgb,var(--accent),transparent 93%),0 0 28px color-mix(in srgb,var(--accent),transparent 82%)!important}
  #tonight .tonight-signal>.accent{width:5px!important;box-shadow:0 0 24px var(--accent)!important}
  #tonight .tonight-signal .contact-id{font-size:7px!important;letter-spacing:.1em!important;color:#858b8f!important}
  #tonight .tonight-signal h3{text-shadow:0 0 18px color-mix(in srgb,var(--accent),transparent 82%)}
  #tonight .lock-bracket{width:15px;height:15px}.signal-wave{margin-left:3px}
  #tonight .lb-tl,#tonight .lb-bl{left:5px}#tonight .lb-tr,#tonight .lb-br{right:5px}#tonight .lb-tl,#tonight .lb-tr{top:5px}#tonight .lb-bl,#tonight .lb-br{bottom:5px}
}
@media(prefers-reduced-motion:reduce){.scan-trace,.lock-bracket,.lock-confirm,.signal-wave i,.tonight-signal>.accent{animation:none!important}.lock-bracket{opacity:.38;transform:none}.lock-confirm{display:none}}


/* V2.20.2 — remove legacy event-card corner decoration from TONIGHT.
   The acquisition brackets are now the only corner geometry on a hot signal. */
#tonight .tonight-signal::before{
  content:none!important;
  display:none!important;
  background:none!important;
}

/* V2.20.3 — TONIGHT spacing cleanup.
   Remove the full-height accent rail from the hot-signal card; the lock brackets,
   border energy, waveform and proximity glow carry the day color instead. */
#tonight .tonight-signal > .accent{
  display:none!important;
  width:0!important;
  min-width:0!important;
  box-shadow:none!important;
}
@media(max-width:700px){
  #tonight .tonight-signal{
    grid-template-columns:minmax(0,1fr)!important;
  }
  #tonight .tonight-signal .event-main,
  #tonight .tonight-signal .event-action{
    grid-column:1!important;
  }
  #tonight .tonight-signal .source{
    left:22px!important;
  }
}

/* V2.20.4 — preserve desktop card grid after removing TONIGHT accent rail. */
@media(min-width:701px){
  #tonight .tonight-signal{
    grid-template-columns:minmax(0,1fr) 150px!important;
  }
  #tonight .tonight-signal .event-main{
    grid-column:1!important;
  }
  #tonight .tonight-signal .event-action{
    grid-column:2!important;
  }
  #tonight .tonight-signal .source{
    left:28px!important;
  }
}

/* V2.20.5 — hard desktop isolation for TONIGHT signal-lock card.
   The lock treatment must never inherit the compact/mobile event stream layout. */
@media (min-width:701px){
  #tonight .tonight-signal{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 150px!important;
    padding:0!important;
    min-height:226px!important;
  }
  #tonight .tonight-signal .event-main{
    display:grid!important;
    grid-column:1!important;
    grid-row:1!important;
    grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)!important;
    gap:34px!important;
    align-items:start!important;
    width:100%!important;
    min-width:0!important;
    padding:25px 28px 48px!important;
  }
  #tonight .tonight-signal .event-main > div{
    min-width:0!important;
  }
  #tonight .tonight-signal .meta{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding-top:3px!important;
  }
  #tonight .tonight-signal .meta-row{
    display:block!important;
    width:100%!important;
  }
  #tonight .tonight-signal .ticket-mobile{
    display:none!important;
  }
  #tonight .tonight-signal .event-action{
    display:flex!important;
    grid-column:2!important;
    grid-row:1!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0 24px 0 12px!important;
  }
  #tonight .tonight-signal .source{
    display:block!important;
    left:28px!important;
    bottom:17px!important;
  }
}


/* V2.20.6 — desktop TONIGHT layout reset + explicit asset cache bust.
   Use named grid areas so no legacy grid-column rule can create an implicit column. */
@media (min-width:701px){
  #tonight .event-grid > .tonight-signal{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 150px!important;
    grid-template-rows:auto!important;
    grid-template-areas:"main action"!important;
    column-gap:0!important;
    min-height:226px!important;
  }
  #tonight .event-grid > .tonight-signal > .event-main{
    grid-area:main!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)!important;
    gap:34px!important;
    width:auto!important;
    min-width:0!important;
    padding:25px 28px 48px!important;
  }
  #tonight .event-grid > .tonight-signal > .event-action{
    grid-area:action!important;
    grid-column:auto!important;
    grid-row:auto!important;
    width:auto!important;
    min-width:0!important;
    padding:0 24px 0 12px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}


/* V2.20.7 — desktop TONIGHT structural reset.
   Do not use the legacy card grid at all for the hot-signal card. */
@media (min-width:701px){
  #tonight .event-grid > article.event.tonight-signal{
    display:block!important;
    position:relative!important;
    grid-template-columns:none!important;
    grid-template-rows:none!important;
    grid-template-areas:none!important;
    min-height:226px!important;
    padding:0!important;
  }

  #tonight .event-grid > article.event.tonight-signal > .event-main{
    display:flex!important;
    flex-direction:row!important;
    align-items:flex-start!important;
    gap:42px!important;
    width:100%!important;
    min-width:0!important;
    padding:25px 190px 48px 28px!important;
    margin:0!important;
  }

  #tonight .event-grid > article.event.tonight-signal > .event-main > div:first-child{
    flex:1.15 1 0!important;
    width:auto!important;
    min-width:0!important;
  }

  #tonight .event-grid > article.event.tonight-signal > .event-main > .meta{
    flex:.85 1 0!important;
    width:auto!important;
    min-width:280px!important;
    max-width:none!important;
    justify-self:auto!important;
    text-align:left!important;
  }

  #tonight .event-grid > article.event.tonight-signal > .event-action{
    position:absolute!important;
    z-index:4!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    width:170px!important;
    min-width:170px!important;
    height:auto!important;
    margin:0!important;
    padding:0 22px 0 10px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  #tonight .event-grid > article.event.tonight-signal > .source{
    display:block!important;
    position:absolute!important;
    left:28px!important;
    bottom:17px!important;
  }
}
