/* self-hosted Orbitron — same font, loads from the project so the chrome logo
     always renders even if Google Fonts can't be reached */
  @font-face{font-family:'Orbitron';font-style:normal;font-weight:700;font-display:swap;
    src:url('/fonts/orbitron-700.woff') format('woff');}
  @font-face{font-family:'Orbitron';font-style:normal;font-weight:800;font-display:swap;
    src:url('/fonts/orbitron-800.woff') format('woff');}
  @font-face{font-family:'Orbitron';font-style:normal;font-weight:900;font-display:swap;
    src:url('/fonts/orbitron-900.woff') format('woff');}
  @font-face{font-family:'Oswald';font-weight:400;font-display:swap;src:url('/fonts/oswald-400.woff') format('woff');}
  @font-face{font-family:'Oswald';font-weight:500;font-display:swap;src:url('/fonts/oswald-500.woff') format('woff');}
  @font-face{font-family:'Oswald';font-weight:600;font-display:swap;src:url('/fonts/oswald-600.woff') format('woff');}
  @font-face{font-family:'Oswald';font-weight:700;font-display:swap;src:url('/fonts/oswald-700.woff') format('woff');}
  @font-face{font-family:'Share Tech Mono';font-weight:400;font-display:swap;src:url('/fonts/sharetechmono-400.woff2') format('woff2');}
  :root{
    --bg:#f1f0ec; --card:#ffffff; --ink:#0b0b0b; --red:#0b0b0b; --red-deep:#000000;
    --line:#141414; --muted:#8c8c8c; --thumb1:#2a2a2a; --thumb2:#0a0a0a; --radius:24px;
  }
  body.dark-theme{
    --bg:#0c0c0c; --card:#1a1a1a; --ink:#f1f0ec; --red:#f1f0ec; --red-deep:#ffffff;
    --line:#3a3a3a; --muted:#9a9a9a; --thumb1:#2a2a2a; --thumb2:#0a0a0a; --radius:24px;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  html,body{margin:0;padding:0;overflow-x:hidden;}
  body{
    background:var(--bg); font-family:'Oswald','Arial Narrow',sans-serif; color:var(--ink);
    display:flex;justify-content:center;min-height:100vh;
    background-image:radial-gradient(circle at 50% 0%, var(--card) 0%, var(--bg) 60%);
  }
  .app{width:100%;max-width:440px;padding:18px 16px 120px;position:relative;}
  @media(max-width:380px){ .app{padding:16px 12px 120px;} }
  .mono{font-family:'Share Tech Mono','Courier New',monospace;}

  /* status bar */
  .statusbar{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;
    font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.04em;font-weight:600;padding:4px 6px 14px;}
  .statusbar .dot{margin:0 8px;}
  .sb-tag{opacity:.85;}
  .sb-visits{font-size:10px;letter-spacing:.1em;color:var(--muted);opacity:.75;}
  .sb-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;}
  .sb-pill{font-family:'Share Tech Mono',monospace;font-size:10.5px;font-weight:700;letter-spacing:.05em;
    border:1.4px solid var(--ink);border-radius:8px;padding:5px 9px;cursor:pointer;color:var(--ink);white-space:nowrap;}
  .sb-pill:active{background:var(--ink);color:var(--bg);}
  .sbicons{display:flex;align-items:center;gap:5px;cursor:pointer;}
  .sb-hof{font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--ink);}
  .bars{display:flex;align-items:flex-end;gap:2px;height:13px;}
  .bars i{width:3px;background:var(--ink);border-radius:1px;display:block;}
  .bars i:nth-child(1){height:4px;opacity:.5}.bars i:nth-child(2){height:7px}
  .bars i:nth-child(3){height:10px}.bars i:nth-child(4){height:13px}
  .battery{width:24px;height:12px;border:1.6px solid var(--ink);border-radius:3px;position:relative;}
  .battery::after{content:"";position:absolute;right:-4px;top:3px;width:3px;height:6px;background:var(--ink);border-radius:0 2px 2px 0;}
  .battery i{position:absolute;inset:1.5px;background:var(--ink);border-radius:1px;}

  /* logo */
  .logo-wrap{position:relative;text-align:center;margin:6px 0 18px;height:120px;display:flex;align-items:center;justify-content:center;}
  /* launch countdown → July 10 */
  .cd-wrap{margin:-4px auto 20px;max-width:380px;text-align:center;background:#0b0b0b;color:#f4f4f4;
    border-radius:16px;padding:16px 14px 14px;box-shadow:0 8px 26px rgba(0,0,0,.22);}
  .cd-lbl{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:.32em;opacity:.7;}
  .cd-date{font-family:'Orbitron','Share Tech Mono',monospace;font-weight:800;font-size:26px;letter-spacing:.06em;
    margin:2px 0 12px;background:linear-gradient(180deg,#fff,#bdbdbd 60%,#8f8f8f);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .cd-grid{display:flex;gap:8px;justify-content:center;}
  .cd-unit{flex:1;max-width:74px;background:#141414;border:1px solid #2a2a2a;border-radius:10px;padding:8px 4px;}
  .cd-unit span{display:block;font-family:'Orbitron','Share Tech Mono',monospace;font-weight:800;font-size:24px;line-height:1;color:#fff;
    font-variant-numeric:tabular-nums;}
  .cd-unit small{display:block;margin-top:5px;font-family:'Share Tech Mono',monospace;font-size:8px;letter-spacing:.18em;opacity:.55;}
  .cd-wrap.cd-live .cd-date{background:linear-gradient(180deg,#ff5e5e,#c70000);-webkit-background-clip:text;background-clip:text;color:transparent;}
  /* countdown on the dark lock screen — lighter surface + top spacing so it stands out */
  .cd-wrap.cd-onlock{margin:30px auto 0;background:#141414;border:1px solid #2a2a2a;box-shadow:none;}
  .cd-wrap.cd-onlock .cd-unit{background:#0e0e0e;border-color:#333;}
  .cd-wrap.cd-onlock .cd-date{font-size:22px;letter-spacing:.02em;white-space:nowrap;}
  /* TEMP — visible entry to 518 DASH while testing */
  .dash-test{text-align:center;margin:2px 0 14px;}
  .dash-test button{font-family:'Share Tech Mono',monospace;font-size:12px;font-weight:700;
    letter-spacing:.14em;padding:11px 22px;border-radius:99px;cursor:pointer;
    border:1.6px solid var(--ink);background:var(--ink);color:#f4f1ec;
    box-shadow:0 3px 0 rgba(0,0,0,.25);transition:transform .14s,filter .14s;}
  .dash-test button:hover{transform:translateY(-1px);filter:brightness(1.15);}
  .dash-test button:active{transform:translateY(1px);box-shadow:none;}
  .dash-test small{display:block;margin-top:5px;font-family:'Share Tech Mono',monospace;
    font-size:8.5px;letter-spacing:.13em;color:#9a9a9a;}
  .logo-img{max-height:118px;max-width:92%;width:auto;object-fit:contain;cursor:pointer;position:relative;z-index:2;animation:logoIn .5s ease;}
  @keyframes logoIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
  .orbit{position:absolute;width:104%;height:120px;left:-2%;top:0;pointer-events:none;z-index:1;}
  .logo-dish{position:absolute;width:88%;height:150px;left:6%;top:-16px;pointer-events:none;z-index:0;opacity:.05;}
  .logo{font-family:'Orbitron','Oswald',sans-serif;font-weight:900;font-size:clamp(38px,15vw,62px);line-height:1;letter-spacing:1px;
    transform:skewX(-9deg);
    background:linear-gradient(180deg,#fdfdfd 0%,#cfcfcf 38%,#5f5f5f 52%,#e9e9e9 66%,#9a9a9a 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:2px #0b0b0b;
    filter:drop-shadow(3px 4px 0 rgba(0,0,0,.85));position:relative;z-index:2;cursor:pointer;}
  .spark{position:absolute;color:#0b0b0b;font-size:20px;z-index:3;}
  .spark.s1{left:8%;top:34%;font-size:24px;}.spark.s2{right:9%;bottom:16%;font-size:26px;}
  .spark.s3{right:16%;top:60%;font-size:14px;color:#8c8c8c;}

  /* card */
  .card{background:var(--card);border:1.6px solid var(--line);border-radius:var(--radius);position:relative;margin-bottom:16px;}
  .tag{position:absolute;top:-12px;left:18px;font-family:'Share Tech Mono',monospace;font-size:12px;font-weight:700;
    letter-spacing:.12em;padding:4px 12px;border-radius:8px;background:var(--ink);color:var(--bg);border:1.6px solid var(--line);z-index:4;}
  .tag.red{background:var(--red);border-color:var(--red);color:var(--bg);}

  /* view system */
  .view{display:none;animation:fade .25s ease;}
  .view.show{display:block;}
  @keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
  .vhead{margin:4px 4px 16px;}
  .vhead h2{font-family:'Orbitron',sans-serif;font-weight:900;font-size:26px;margin:0;letter-spacing:.02em;font-style:italic;}
  .vhead p{font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--muted);margin:4px 0 0;text-transform:uppercase;}

  /* on air */
  .onair{display:flex;align-items:center;gap:14px;padding:24px 20px 22px;}
  .heart{display:grid;grid-template-columns:repeat(7,5px);grid-auto-rows:5px;gap:2px;flex:0 0 auto;animation:beat 1.1s ease-in-out infinite;}
  .heart span{width:5px;height:5px;border-radius:1px;background:transparent;}
  .heart span.on{background:var(--heart,#0b0b0b);transition:background .8s ease;}
  @keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.14)}30%{transform:scale(1)}45%{transform:scale(1.08)}}
  .onair-txt{flex:1;}
  .onair-txt .big{font-size:30px;font-weight:700;line-height:1;display:flex;align-items:center;gap:9px;}.onair-txt .big b{color:var(--red);}
  .onair-txt .sub{font-family:'Share Tech Mono',monospace;font-size:13px;letter-spacing:.06em;margin-top:5px;color:#222;}
  .onair-txt .sub b{color:var(--ink);}
  .live-dot{width:13px;height:13px;border-radius:50%;background:#e6001f;display:inline-block;flex:0 0 auto;animation:livepulse 1.6s infinite;}
  @keyframes livepulse{0%,100%{box-shadow:0 0 0 0 rgba(230,0,31,.55);opacity:1}50%{box-shadow:0 0 0 7px rgba(230,0,31,0);opacity:.65}}
  .divline{width:1.5px;height:46px;background:#cfcfcf;margin:0 4px;}
  .playbtn{flex:0 0 auto;width:74px;height:74px;border-radius:50%;border:1.8px solid var(--ink);background:var(--card);
    display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s,background .12s;}
  .playbtn:active{transform:scale(.93);}.playbtn svg{width:30px;height:30px;}
  .playbtn .tri,.playbtn .pause{fill:var(--red);}
  .playbtn.playing{background:var(--red);border-color:var(--red);}
  .playbtn.playing .tri,.playbtn.playing .pause{fill:#fff;}

  /* now playing */
  .now{display:flex;align-items:center;gap:16px;padding:26px 18px 22px;}
  .art{width:96px;height:96px;border-radius:12px;flex:0 0 auto;border:1.6px solid var(--line);overflow:hidden;
    background:linear-gradient(145deg,var(--thumb1),var(--thumb2));display:flex;align-items:center;justify-content:center;color:#fff;position:relative;}
  .art::after{content:"✦";position:absolute;font-size:34px;opacity:.18;}
  .art .num{position:relative;z-index:2;font-family:'Orbitron',sans-serif;font-weight:800;font-size:20px;opacity:.85;}
  .art.has-photo::after,.art.has-photo .num{display:none;}
  .now-info{flex:1;min-width:0;}
  .now-info .t{font-size:24px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .now-info .a{font-family:'Share Tech Mono',monospace;font-size:15px;letter-spacing:.06em;margin-top:3px;display:flex;align-items:center;gap:6px;text-transform:uppercase;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .now-info .a::before{content:"▶";color:var(--red);font-size:11px;}
  .now-info .prod{font-family:'Share Tech Mono',monospace;font-size:11px;color:#777;letter-spacing:.06em;text-transform:uppercase;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .now-info .time{font-family:'Share Tech Mono',monospace;font-size:13px;color:#444;margin-top:10px;letter-spacing:.08em;}
  .eq{display:flex;align-items:flex-end;gap:3px;height:48px;flex:0 0 auto;}
  .eq i{width:4px;background:repeating-linear-gradient(0deg,var(--red) 0 3px,transparent 3px 5px);height:30%;border-radius:1px;align-self:flex-end;}
  .eq.run i{animation:bounce .9s ease-in-out infinite;}
  .eq i:nth-child(1){animation-delay:-.1s}.eq i:nth-child(2){animation-delay:-.5s}.eq i:nth-child(3){animation-delay:-.2s}
  .eq i:nth-child(4){animation-delay:-.7s}.eq i:nth-child(5){animation-delay:-.35s}.eq i:nth-child(6){animation-delay:-.6s}.eq i:nth-child(7){animation-delay:-.15s}
  @keyframes bounce{0%,100%{height:18%}50%{height:100%}}
  .progress{height:4px;background:#e6e6e6;border-radius:4px;margin:0 18px 18px;overflow:hidden;}
  .progress i{display:block;height:100%;width:0%;background:var(--red);border-radius:4px;}
  .vol{display:flex;align-items:center;gap:10px;margin:-6px 18px 16px;}
  .vol-ic{background:none;border:0;cursor:pointer;font-size:16px;line-height:1;padding:0;}
  .vol-range{flex:1;-webkit-appearance:none;appearance:none;height:28px;background:transparent;
    outline:none;cursor:pointer;touch-action:none;}
  .vol-range::-webkit-slider-runnable-track{height:4px;border-radius:4px;
    background:linear-gradient(90deg,var(--red) var(--vol-pct,100%),#e6e6e6 var(--vol-pct,100%));}
  .vol-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;
    background:var(--red);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.35);margin-top:-5px;}
  .vol-range::-moz-range-track{height:4px;border-radius:4px;background:#e6e6e6;}
  .vol-range::-moz-range-progress{height:4px;border-radius:4px 0 0 4px;background:var(--red);}
  .vol-range::-moz-range-thumb{width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:var(--red);border:none;}

  /* chart */
  .chart{padding:24px 8px 8px;}
  .row{display:flex;align-items:center;gap:14px;padding:12px;border-top:1px solid rgba(128,128,128,.2);cursor:pointer;border-radius:12px;transition:background .12s;}
  .row:first-child{border-top:none;}.row:hover{background:rgba(128,128,128,.08);}.row.active{background:rgba(128,128,128,.14);}
  .rank{font-family:'Orbitron',sans-serif;font-weight:900;font-size:30px;width:44px;text-align:center;flex:0 0 auto;font-style:italic;overflow:visible;}
  .rank.r3{font-size:16px;letter-spacing:-.03em;}   /* 100+ ranks shrink to fit the 44px column (widest 3-digit ≈ 41px) so they never clash with the title */
  .rank.red{color:var(--red);}.rank.blk{color:var(--ink);}
  .rthumb{width:54px;height:54px;border-radius:9px;flex:0 0 auto;border:1.4px solid var(--line);
    background:linear-gradient(145deg,var(--thumb1),var(--thumb2));display:flex;align-items:center;justify-content:center;}
  .rthumb span{color:#fff;font-family:'Orbitron',sans-serif;font-weight:800;font-size:13px;opacity:.6;}
  .rmeta{flex:1;min-width:0;}
  .rmeta .t{font-size:18px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .rmeta .a{font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.06em;color:#555;text-transform:uppercase;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .rmove{font-family:'Share Tech Mono',monospace;font-size:11px;flex:0 0 auto;width:34px;text-align:right;}
  .rmove.up{color:var(--ink);}.rmove.dn{color:var(--red);}.rmove.fl{color:var(--muted);}
  .rplay{flex:0 0 auto;width:22px;text-align:center;color:var(--ink);font-size:15px;}
  .row:hover .rplay{color:var(--red);}

  /* live chat */
  .chat{padding:24px 16px 16px;}
  .chat-list{display:flex;flex-direction:column;gap:8px;min-height:90px;max-height:220px;overflow-y:auto;margin-bottom:12px;}
  .msg{font-size:14px;line-height:1.3;padding:8px 12px;border:1.4px solid #e6e6e6;border-radius:12px;transition:opacity .5s;}
  .msg b{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--red);letter-spacing:.06em;margin-right:8px;text-transform:uppercase;}
  .msg .ttl{float:right;font-family:'Share Tech Mono',monospace;font-size:10px;color:var(--muted);}
  .chat-form{display:flex;gap:8px;}
  .chat-form input{flex:1;border:1.6px solid var(--line);border-radius:12px;padding:11px 14px;font-family:'Oswald',sans-serif;font-size:16px;outline:none;}
  .chat-form button{border:1.6px solid var(--red);background:var(--red);color:var(--bg);border-radius:12px;padding:0 18px;font-family:'Share Tech Mono',monospace;font-size:13px;cursor:pointer;letter-spacing:.06em;}
  .chat-note{font-family:'Share Tech Mono',monospace;font-size:10px;color:var(--muted);margin-top:8px;letter-spacing:.05em;text-align:center;}
  /* floating chat bubbles on the sides of the playlist */
  .chatfloat{position:fixed;z-index:8;pointer-events:none;max-width:38vw;width:max-content;
    background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:8px 12px;
    font-family:'Oswald',sans-serif;font-size:13px;line-height:1.3;box-shadow:0 6px 18px rgba(0,0,0,.10);
    animation:chatfall 7s ease-in forwards;}
  .chatfloat b{font-family:'Share Tech Mono',monospace;font-size:9px;color:var(--red);letter-spacing:.05em;display:block;margin-bottom:2px;}
  @media(min-width:480px){.chatfloat{max-width:170px;}}
  @keyframes chatfall{0%{transform:translateY(-24px) scale(.92);opacity:0}10%{opacity:1;transform:translateY(0) scale(1)}82%{opacity:1}100%{transform:translateY(180px) scale(.96);opacity:0}}

  /* artists grid */
  .agrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .acard{background:var(--card);border:1.6px solid var(--line);border-radius:18px;padding:16px;cursor:pointer;transition:transform .12s,box-shadow .12s;}
  .acard:active{transform:scale(.97);}
  .acard:hover{box-shadow:0 6px 18px rgba(0,0,0,.08);}
  .avatar{width:100%;aspect-ratio:1;border-radius:14px;border:1.4px solid var(--line);
    background:linear-gradient(145deg,var(--thumb1),var(--thumb2));display:flex;align-items:center;justify-content:center;margin-bottom:10px;}
  .avatar span{font-family:'Orbitron',sans-serif;font-weight:900;font-size:30px;color:#fff;opacity:.85;}
  .acard .an{font-size:17px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;}
  .acard .ac{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.06em;margin-top:2px;}

  /* artist profile */
  .back{font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.08em;cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin:0 4px 14px;color:var(--ink);}
  .pro-head{display:flex;gap:16px;align-items:center;margin-bottom:18px;}
  .pro-av{width:110px;height:110px;border-radius:16px;border:1.6px solid var(--line);flex:0 0 auto;
    background:linear-gradient(145deg,var(--thumb1),var(--thumb2));display:flex;align-items:center;justify-content:center;}
  .pro-av span{font-family:'Orbitron',sans-serif;font-weight:900;font-size:38px;color:#fff;opacity:.85;}
  .pro-meta{min-width:0;flex:1;}
  .pro-name{font-family:'Orbitron',sans-serif;font-weight:900;font-size:24px;font-style:italic;overflow-wrap:break-word;word-break:break-word;}
  /* memorial gold nameplate + crown */
  .pro-head.memorial .pro-name{
    background:linear-gradient(180deg,#fff3c4 0%,#ffd95e 30%,#e8a200 60%,#b87400 100%);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#c98a00;
    text-shadow:0 1px 0 rgba(0,0,0,.12);display:inline-flex;align-items:center;gap:6px;}
  .pro-head.memorial .crown{-webkit-text-fill-color:initial;font-size:20px;}
  .pro-head.memorial .pro-av{border:2.5px solid #e8a200;box-shadow:0 0 0 3px rgba(232,162,0,.25);}
  .rip-banner{margin:2px 4px 14px;padding:9px 12px;border-radius:10px;text-align:center;
    font-family:'Share Tech Mono',monospace;font-weight:700;font-size:11px;letter-spacing:.06em;color:#7a5200;
    background:linear-gradient(90deg,#fff7da,#ffe9a8,#fff7da);border:1.5px solid #e8c45e;}
  /* now-playing gold name when a fallen artist is on */
  #npArtist.gold-mem{background:linear-gradient(180deg,#fff0b8,#e8b400,#9a6b00);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#c89200;}
  /* memorial gold name in the chart list */
  .row.memorial .a{
    background:linear-gradient(180deg,#fff0b8 0%,#e8b400 55%,#9a6b00 100%);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    color:#c89200;font-weight:700;}
  /* black & gold memorial card overlay */
  .mem-overlay{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
    background:rgba(8,7,4,.82);backdrop-filter:blur(4px);padding:24px;}
  .mem-overlay.show{display:flex;animation:memfade .25s ease;}
  @keyframes memfade{from{opacity:0}to{opacity:1}}
  /* BLOG — updates, vlogs, events */
  .blog-overlay{position:fixed;inset:0;z-index:246;display:none;flex-direction:column;background:var(--bg,#f1f0ec);}
  .blog-overlay.show{display:flex;animation:memfade .2s ease;}
  .blog-top{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 14px;border-bottom:1.4px solid var(--line);}
  .blog-ttl{font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:22px;color:var(--ink);}
  .blog-sub{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:.16em;color:var(--muted);margin-top:2px;}
  .blog-x{font-size:20px;color:var(--muted);cursor:pointer;padding:4px 8px;}
  .blog-feed{flex:1;overflow-y:auto;padding:16px;max-width:640px;width:100%;margin:0 auto;}
  .blog-loading,.blog-empty{font-family:'Share Tech Mono',monospace;font-size:13px;color:var(--muted);text-align:center;padding:50px 20px;line-height:1.7;}
  .blog-post{background:var(--card,#fff);border:1.4px solid var(--line);border-radius:16px;padding:16px;margin-bottom:16px;}
  .blog-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
  .blog-tag{font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:800;letter-spacing:.08em;background:var(--ink);color:var(--bg);padding:3px 9px;border-radius:12px;}
  .blog-when{font-family:'Share Tech Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.06em;}
  .blog-h2{font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;line-height:1.15;color:var(--ink);margin-bottom:8px;}
  .blog-evt{font-family:'Share Tech Mono',monospace;font-size:12px;font-weight:700;color:var(--ink);margin-bottom:10px;}
  .blog-img{border-radius:12px;overflow:hidden;margin:4px 0 10px;border:1px solid var(--line);}
  .blog-img img{width:100%;display:block;}
  .blog-video{position:relative;padding-bottom:56.25%;height:0;border-radius:12px;overflow:hidden;margin:4px 0 10px;background:#000;}
  .blog-video iframe{position:absolute;inset:0;width:100%;height:100%;}
  .blog-body{font-family:'Share Tech Mono',monospace;font-size:13.5px;line-height:1.7;color:var(--ink);white-space:normal;}
  .blog-vlink{display:inline-block;margin-top:10px;font-family:'Share Tech Mono',monospace;font-weight:700;font-size:12px;
    border:1.3px solid var(--ink);border-radius:20px;padding:8px 14px;color:var(--ink);text-decoration:none;}
  /* TRIVIA — Guess the 518 */
  .triv-overlay{position:fixed;inset:0;z-index:245;display:none;align-items:center;justify-content:center;
    background:rgba(8,8,8,.72);backdrop-filter:blur(5px);padding:20px;}
  .triv-overlay.show{display:flex;animation:memfade .2s ease;}
  .triv-card{position:relative;width:min(400px,94vw);background:var(--bg,#f1f0ec);border:1.5px solid #161616;
    border-radius:20px;padding:22px 20px 20px;text-align:center;box-shadow:0 18px 50px rgba(0,0,0,.4);}
  .triv-x{position:absolute;top:12px;right:14px;font-size:18px;color:var(--muted);cursor:pointer;line-height:1;}
  .triv-h{font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:20px;letter-spacing:.02em;color:var(--ink);}
  .triv-score{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--muted);margin:6px 0 14px;}
  .triv-score b{color:var(--ink);}
  .triv-frame{width:190px;height:190px;margin:0 auto 14px;border-radius:16px;overflow:hidden;border:2px solid #161616;background:#111;}
  .triv-frame img{width:100%;height:100%;object-fit:cover;display:block;}
  .triv-q{font-family:'Oswald',sans-serif;font-weight:700;font-size:16px;letter-spacing:.04em;color:var(--ink);margin-bottom:12px;}
  .triv-type{font-family:'Share Tech Mono',monospace;font-size:9px;font-weight:800;letter-spacing:.1em;background:var(--ink);color:var(--bg);
    padding:2px 7px;border-radius:10px;vertical-align:middle;margin-left:4px;}
  .triv-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;}
  .triv-btn{padding:13px 8px;border:1.4px solid #161616;border-radius:11px;background:#fff;color:#0b0b0b;
    font-family:'Share Tech Mono',monospace;font-weight:700;font-size:12px;letter-spacing:.02em;cursor:pointer;transition:transform .08s,background .12s;}
  .triv-btn:active{transform:scale(.96);}
  .triv-btn.right{background:#1f9d55;color:#fff;border-color:#1f9d55;}
  .triv-btn.wrong{background:#d63a3a;color:#fff;border-color:#d63a3a;}
  .triv-actions{display:flex;gap:10px;justify-content:center;align-items:center;}
  .triv-hint,.triv-next{font-family:'Share Tech Mono',monospace;font-weight:700;font-size:12px;letter-spacing:.04em;
    border:1.3px solid var(--line);border-radius:20px;padding:9px 16px;background:none;color:var(--ink);cursor:pointer;}
  .triv-next{background:var(--ink);color:var(--bg);border-color:var(--ink);}
  .triv-hintbox{font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--muted);margin-top:12px;min-height:0;opacity:0;transition:opacity .2s;}
  .triv-hintbox.show{opacity:1;}
  .triv-empty{font-family:'Share Tech Mono',monospace;font-size:13px;line-height:1.7;color:var(--muted);padding:30px 10px;}
  /* song action sheet (hold a song) */
  .sheet-overlay{position:fixed;inset:0;z-index:240;display:none;align-items:flex-end;justify-content:center;
    background:rgba(8,8,8,.55);backdrop-filter:blur(3px);}
  .sheet-overlay.show{display:flex;animation:memfade .2s ease;}
  .sheet{width:min(440px,96vw);background:var(--bg,#f1f0ec);border:1.5px solid #161616;border-bottom:none;
    border-radius:22px 22px 0 0;padding:10px 18px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px rgba(0,0,0,.3);
    animation:sheetup .26s cubic-bezier(.2,.9,.3,1);}
  @keyframes sheetup{from{transform:translateY(100%)}to{transform:translateY(0)}}
  .sheet-grip{width:42px;height:5px;border-radius:3px;background:#cdcabf;margin:4px auto 14px;}
  .sheet-song{text-align:center;margin-bottom:14px;}
  .sheet-t{font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;letter-spacing:.01em;line-height:1.1;}
  .sheet-a{font-family:'Share Tech Mono',monospace;font-size:12px;color:#777;letter-spacing:.08em;margin-top:4px;text-transform:uppercase;}
  .sheet-btn{display:block;width:100%;margin:9px 0;padding:15px;border-radius:13px;border:1.5px solid #161616;
    background:var(--card);color:var(--ink);font-family:'Share Tech Mono',monospace;font-weight:700;font-size:14px;
    letter-spacing:.06em;cursor:pointer;transition:transform .08s,background .12s;}
  .sheet-btn:active{transform:scale(.97);}
  .sheet-btn.hot{background:#0b0b0b;color:#fff;border-color:var(--line);}
  .sheet-btn.ghost{border-color:transparent;background:none;color:#888;font-size:12px;margin-top:2px;}
  .mem-card{position:relative;width:min(420px,92vw);background:linear-gradient(170deg,#1a1712,#0a0a0a);
    border:2px solid transparent;border-radius:20px;padding:34px 26px 28px;text-align:center;
    background-origin:border-box;box-shadow:0 0 0 1px #6b4e12, 0 24px 70px rgba(0,0,0,.6), 0 0 60px rgba(232,180,0,.18);
    background-image:linear-gradient(170deg,#1a1712,#0a0a0a),linear-gradient(140deg,#fff0b8,#e8b400,#7a5200);
    background-clip:padding-box,border-box;animation:memrise .35s cubic-bezier(.2,.8,.2,1);}
  @keyframes memrise{from{transform:translateY(16px) scale(.96);opacity:0}to{transform:none;opacity:1}}
  .mem-candle{font-size:46px;line-height:1;filter:drop-shadow(0 0 14px rgba(255,180,40,.8));
    animation:flicker 2.4s infinite ease-in-out;}
  @keyframes flicker{0%,100%{opacity:1;transform:rotate(-1deg) scale(1)}25%{opacity:.85;transform:rotate(1.5deg) scale(1.04)}
    50%{opacity:.95;transform:rotate(-1.5deg) scale(.98)}75%{opacity:.8;transform:rotate(1deg) scale(1.03)}}
  .mem-kicker{margin-top:10px;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.3em;color:#c9a23a;}
  .mem-name{margin:8px 0 4px;font-family:'Orbitron',sans-serif;font-style:italic;font-weight:900;font-size:30px;
    background:linear-gradient(180deg,#fff6cf 0%,#ffd95e 35%,#e3a000 70%,#9a6b00 100%);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    text-shadow:0 2px 18px rgba(232,180,0,.35);}
  .mem-sub{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.15em;color:#b8902f;margin-bottom:16px;}
  .mem-bio{color:#d8cba0;font-size:14px;line-height:1.5;margin:0 4px 22px;font-style:italic;}
  .mem-btns{display:flex;flex-direction:column;gap:10px;}
  .mem-play,.mem-prof{padding:13px;border-radius:11px;font-family:'Share Tech Mono',monospace;font-weight:700;
    letter-spacing:.08em;font-size:12px;cursor:pointer;border:1.5px solid #e8b400;}
  .mem-play{background:linear-gradient(180deg,#ffd95e,#c98a00);color:#1a1200;border:none;}
  .mem-prof{background:transparent;color:#e8b400;}
  .mem-close{position:absolute;top:12px;right:16px;color:#8a7a4a;font-size:18px;cursor:pointer;font-weight:700;}
  .mem-close:hover{color:#e8b400;}

  /* ===== HALL OF FAME ===== */
  .sbicons{cursor:pointer;}
  .hof-overlay{position:fixed;inset:0;z-index:216;display:none;flex-direction:column;
    background:radial-gradient(120% 80% at 50% 0%,#181308 0%,#0a0907 58%,#040404 100%);overflow:hidden;}
  .hof-overlay.show{display:flex;animation:memfade .3s ease;}
  .hof-top{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 10px;flex-shrink:0;}
  .hof-ttl{font-family:'Orbitron',sans-serif;font-weight:900;font-size:22px;letter-spacing:.03em;line-height:1;
    background:linear-gradient(180deg,#fff6cf,#ffd95e,#e3a000,#9a6b00);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
  .hof-sub{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:.3em;color:#b8902f;margin-top:5px;}
  .hof-x{color:#8a7a4a;font-size:24px;cursor:pointer;font-weight:700;line-height:1;}
  .hof-x:hover{color:#e8b400;}
  .hof-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 14px;padding:16px 22px 50px;overflow-y:auto;}
  @media(min-width:480px){.hof-grid{grid-template-columns:repeat(3,1fr);}}
  .hof-cell{display:flex;flex-direction:column;align-items:center;cursor:pointer;}
  .hof-framewrap{display:flex;align-items:center;gap:5px;}
  .hof-frame{position:relative;width:92px;height:116px;border-radius:6px;border:4px solid transparent;
    background-origin:border-box;background-clip:padding-box,border-box;
    background-image:linear-gradient(160deg,#26221a,#0a0a0a),linear-gradient(140deg,#fff0b8,#e8b400,#7a5200);
    box-shadow:0 10px 26px rgba(0,0,0,.6),0 0 22px rgba(232,180,0,.13);
    display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .hof-portrait{font-size:44px;opacity:.45;filter:grayscale(1);}
  .hof-candle{font-size:18px;animation:flicker 2.4s infinite ease-in-out;filter:drop-shadow(0 0 8px rgba(255,180,40,.8));}
  .hof-candle.r{animation-delay:.6s;}
  .hof-cname{margin-top:9px;font-family:'Oswald',sans-serif;font-weight:700;font-size:13px;color:#f0e2b4;text-align:center;letter-spacing:.02em;line-height:1.1;}
  .hof-cyears{font-family:'Share Tech Mono',monospace;font-size:9px;color:#b8902f;letter-spacing:.08em;margin-top:2px;}
  /* detail */
  .hof-detail{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;
    background:radial-gradient(120% 80% at 50% 0%,#181308 0%,#0a0907 58%,#040404 100%);padding:22px 20px 50px;overflow-y:auto;}
  .hof-detail.show{display:flex;animation:memrise .35s cubic-bezier(.2,.8,.2,1);}
  .hof-back{align-self:flex-start;font-family:'Share Tech Mono',monospace;font-size:11px;color:#b8902f;cursor:pointer;letter-spacing:.12em;}
  .hof-bigwrap{position:relative;display:flex;align-items:center;gap:12px;margin:16px 0 4px;}
  .hof-bigframe{position:relative;width:168px;height:208px;border-radius:8px;border:6px solid transparent;
    background-origin:border-box;background-clip:padding-box,border-box;
    background-image:linear-gradient(160deg,#26221a,#0a0a0a),linear-gradient(140deg,#fff0b8,#e8b400,#7a5200);
    box-shadow:0 16px 50px rgba(0,0,0,.6),0 0 40px rgba(232,180,0,.2);
    display:flex;align-items:center;justify-content:center;overflow:hidden;}
  .hof-bigportrait{font-size:90px;opacity:.45;filter:grayscale(1);}
  .hof-frame img,.hof-bigframe img{width:100%;height:100%;object-fit:cover;display:block;}
  .hof-bigcandle{font-size:38px;animation:flicker 2.4s infinite ease-in-out;filter:drop-shadow(0 0 14px rgba(255,180,40,.85));}
  .hof-bigcandle.r{animation-delay:.7s;}
  .hof-dname{margin-top:14px;font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:25px;text-align:center;line-height:1.05;
    background:linear-gradient(180deg,#fff6cf,#ffd95e,#e3a000,#9a6b00);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
  .hof-dyears{font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.2em;color:#c9a23a;margin:6px 0 4px;}
  .hof-dsub{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:.18em;color:#8a7a4a;margin-bottom:14px;}
  .hof-dbio{color:#d8cba0;font-size:14px;line-height:1.55;font-style:italic;text-align:center;max-width:420px;margin-bottom:18px;}
  .hof-hits{width:100%;max-width:420px;margin-bottom:22px;}
  .hof-hits h4{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:.3em;color:#b8902f;margin-bottom:9px;text-align:center;}
  .hof-hit{display:flex;justify-content:space-between;align-items:center;padding:9px 13px;border:1px solid #2a2310;border-radius:9px;margin-bottom:6px;
    font-family:'Oswald',sans-serif;color:#e8dcb0;font-size:14px;cursor:pointer;}
  .hof-hit span{font-family:'Share Tech Mono',monospace;font-size:10px;color:#8a7a4a;}
  .hof-hit:active{background:rgba(232,180,0,.08);}
  .hof-links{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin:0 0 20px;}
  .hof-link{text-decoration:none;padding:9px 16px;border-radius:20px;border:1.4px solid #e8b400;color:#e8b400;
    font-family:'Share Tech Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.06em;}
  .hof-link:active{background:rgba(232,180,0,.12);}
  .hof-flowerbtn{padding:14px 30px;border-radius:30px;border:none;cursor:pointer;
    font-family:'Share Tech Mono',monospace;font-weight:700;letter-spacing:.08em;font-size:13px;
    background:linear-gradient(180deg,#ffd95e,#c98a00);color:#1a1200;box-shadow:0 8px 24px rgba(232,180,0,.3);}
  .hof-flowerbtn:active{transform:scale(.96);}
  .hof-flowercount{margin-top:12px;font-family:'Share Tech Mono',monospace;font-size:11px;color:#b8902f;letter-spacing:.1em;}
  .hof-flower{position:absolute;z-index:6;pointer-events:none;font-size:22px;animation:flowerfall 3.6s ease-in forwards;}
  @keyframes flowerfall{0%{transform:translateY(-14px) rotate(0);opacity:0}12%{opacity:1}
    70%{opacity:1}100%{transform:translateY(300px) rotate(190deg);opacity:0}}
  /* ===== CREATIVES — directors/videographers/producers behind the 518 visuals. Simpler than the Hall of Fame: no candles, no memorial framing. ===== */
  .cre-overlay{position:fixed;inset:0;z-index:217;display:none;flex-direction:column;
    background:radial-gradient(120% 70% at 50% 0%,#1c1c1c 0%,#0b0b0b 60%,#000 100%);}
  .cre-overlay.show{display:flex;animation:memfade .3s ease;}
  .cre-top{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 10px;flex-shrink:0;}
  .cre-ttl{font-family:'Orbitron',sans-serif;font-weight:900;font-size:22px;letter-spacing:.03em;line-height:1;color:#f1f0ec;}
  .cre-sub{font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:.3em;color:#8a8a8a;margin-top:5px;}
  .cre-x{color:#8a8a8a;font-size:24px;cursor:pointer;font-weight:700;line-height:1;}
  .cre-overlay{overflow-y:auto;}
  .cre-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 14px;padding:16px 22px 20px;}
  @media(min-width:480px){.cre-grid{grid-template-columns:repeat(3,1fr);}}
  .cre-cell{display:flex;flex-direction:column;align-items:center;text-align:center;}
  .cre-frame{width:84px;height:84px;border-radius:50%;border:2px solid #3a3a3a;overflow:hidden;
    display:flex;align-items:center;justify-content:center;background:#161616;}
  .cre-frame img{width:100%;height:100%;object-fit:cover;display:block;}
  .cre-portrait{font-size:34px;opacity:.5;filter:grayscale(1);}
  .cre-name{margin-top:9px;font-family:'Oswald',sans-serif;font-weight:700;font-size:13px;color:#f1f0ec;letter-spacing:.02em;line-height:1.1;}
  .cre-role{font-family:'Share Tech Mono',monospace;font-size:9px;color:#ff7a00;letter-spacing:.08em;margin-top:3px;text-transform:uppercase;}
  .cre-link{margin-top:6px;font-family:'Share Tech Mono',monospace;font-size:10px;color:#8a8a8a;text-decoration:none;letter-spacing:.05em;}
  .cre-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 8px;margin-top:6px;}
  .cre-links .cre-link{margin-top:0;}
  .cre-link:active{color:#f1f0ec;}
  .cre-empty{font-family:'Share Tech Mono',monospace;font-size:12px;color:#8a8a8a;text-align:center;padding:40px 20px;letter-spacing:.05em;}
  .cre-note{font-family:'Share Tech Mono',monospace;font-size:10px;color:#ff7a00;text-align:center;padding:10px 30px 40px;letter-spacing:.05em;line-height:1.6;}
  /* share preview sheet (Apple/Spotify/Insta style) */
  .share-overlay{position:fixed;inset:0;z-index:210;display:none;align-items:center;justify-content:center;
    background:rgba(10,10,10,.7);backdrop-filter:blur(5px);padding:20px;}
  .share-overlay.show{display:flex;animation:memfade .2s ease;}
  .share-sheet{position:relative;width:min(380px,94vw);background:var(--card);border:2px solid var(--line);border-radius:20px;
    padding:20px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.5);max-height:92vh;overflow:auto;
    animation:memrise .3s cubic-bezier(.2,.8,.2,1);}
  .share-h{font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.2em;color:#666;margin-bottom:14px;}
  .share-img{width:100%;border-radius:12px;border:1.5px solid var(--line);display:block;}
  .share-cap{font-size:12px;color:#555;line-height:1.45;margin:12px 4px 16px;}
  .share-btns{display:flex;flex-direction:column;gap:9px;}
  .share-go,.share-save{padding:13px;border-radius:11px;font-family:'Share Tech Mono',monospace;font-weight:700;
    letter-spacing:.06em;font-size:13px;cursor:pointer;}
  .share-go{background:var(--ink,#0b0b0b);color:var(--bg,#fff);border:none;}
  .share-save{background:var(--card);color:var(--ink);border:1.5px solid var(--line);}
  .share-x{position:absolute;top:12px;right:16px;font-size:18px;color:#888;cursor:pointer;font-weight:700;}
  .share-x:hover{color:var(--ink);}
  /* private 4-digit access lock */
  .codelock{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;
    background:#050507;padding:28px;touch-action:none;overscroll-behavior:none;overflow:hidden;}
  /* while locked: real content is unrendered (not just covered) so no scroll/zoom/rubber-band glitch can expose it */
  body.site-locked{overflow:hidden!important;height:100vh;overscroll-behavior:none;}
  body.site-locked .gate,body.site-locked .app,body.site-locked .nav{display:none!important;}
  .cl-box{text-align:center;max-width:340px;width:100%;}
  .cl-logo{font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:34px;color:#f1f0ec;letter-spacing:.02em;}
  .cl-sub{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.22em;color:#888;margin:8px 0 26px;}
  .cl-input{width:100%;text-align:center;background:#161616;border:2px solid #333;border-radius:16px;color:#fff;
    font-family:'Orbitron',sans-serif;font-weight:800;font-size:38px;letter-spacing:.5em;padding:18px 0 18px .5em;outline:none;}
  .cl-input:focus{border-color:#f1f0ec;}
  .cl-input.bad{border-color:#e23;animation:clshake .35s;}
  @keyframes clshake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
  .cl-msg{font-family:'Share Tech Mono',monospace;font-size:12px;color:#e23;margin-top:14px;min-height:16px;letter-spacing:.05em;}
  #standbyStatic{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.32;
    image-rendering:pixelated;filter:contrast(145%) brightness(72%);}
  .codelock::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 4px),
      radial-gradient(circle at 50% 46%,transparent 0 25%,rgba(0,0,0,.58) 82%);
    animation:signalRoll 7s linear infinite;}
  .codelock::after{content:"";position:absolute;left:0;right:0;height:3px;z-index:1;pointer-events:none;
    background:rgba(255,255,255,.12);box-shadow:0 0 24px rgba(255,255,255,.08);
    animation:scanRoll 4.8s linear infinite;}
  @keyframes scanRoll{from{top:-4px}to{top:100%}}
  @keyframes signalRoll{0%,97%,100%{transform:none;opacity:1}98%{transform:translateX(3px);opacity:.72}99%{transform:translateX(-2px)}}
  .standby-box{position:relative;z-index:2;text-align:center;width:min(620px,92vw);padding:34px 24px;
    background:radial-gradient(circle at 50% 15%,rgba(255,122,0,.12),transparent 48%);}
  .standby-live{display:inline-flex;align-items:center;gap:8px;margin-bottom:24px;padding:7px 12px;
    border:1px solid rgba(255,255,255,.15);border-radius:99px;color:#aaa;
    font:700 9px/1 'Share Tech Mono',monospace;letter-spacing:.2em;text-transform:uppercase;
    background:rgba(5,5,7,.45);backdrop-filter:blur(10px);}
  .standby-live i{width:6px;height:6px;border-radius:50%;background:#ff7a00;box-shadow:0 0 14px #ff7a00;animation:sbPulse 1.6s infinite;}
  @keyframes sbPulse{50%{opacity:.25;transform:scale(.72)}}
  .standby-logo{font-family:'Orbitron',sans-serif;font-style:italic;font-weight:900;
    font-size:clamp(38px,10vw,76px);line-height:.9;letter-spacing:-.04em;
    background:linear-gradient(180deg,#fff,#c9c9c9 45%,#626262 55%,#eee 72%,#8b8b8b);
    -webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 8px 28px #000);}
  .standby-title{margin-top:24px;color:#ff7a00;font:900 italic clamp(30px,7vw,58px)/.95 'Oswald',sans-serif;
    letter-spacing:.04em;text-transform:uppercase;}
  .standby-copy{margin:18px auto 0;max-width:470px;color:#f1f0ec;
    font:600 clamp(14px,3vw,19px)/1.5 'Oswald',sans-serif;letter-spacing:.04em;text-transform:uppercase;}
  .standby-copy span{display:block;margin-top:8px;color:#8d8d92;font:400 11px/1.7 'Share Tech Mono',monospace;
    letter-spacing:.12em;}
  .standby-countdown{margin:22px auto 0;color:#f1f0ec;text-align:center;}
  .standby-countdown small{display:block;margin-bottom:8px;color:#ff7a00;font:700 9px/1 'Share Tech Mono',monospace;
    letter-spacing:.24em;}
  .standby-countdown strong{display:block;font:800 clamp(17px,4vw,28px)/1 'Orbitron',sans-serif;
    letter-spacing:.08em;text-shadow:0 0 22px rgba(255,122,0,.22);}
  .standby-player{display:inline-flex;align-items:center;gap:10px;margin-top:26px;padding:10px 14px;
    border:1px solid rgba(255,255,255,.17);border-radius:8px;background:rgba(5,5,7,.72);color:#f1f0ec;
    font:700 10px/1 'Share Tech Mono',monospace;letter-spacing:.12em;text-transform:uppercase;
    cursor:pointer;backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.32);}
  .standby-player:hover{border-color:#ff7a00;}
  .standby-player .playicon{color:#ff7a00;font-size:13px;}
  .standby-player.playing .playicon{animation:sbPulse 1.2s infinite;}
  .standby-player small{display:block;color:#85858b;font-size:8px;letter-spacing:.15em;margin-top:5px;}
  .standby-code-link{display:block;margin:22px auto 0;background:none;border:none;color:#5a5a60;
    font:700 10px/1 'Share Tech Mono',monospace;letter-spacing:.12em;text-transform:uppercase;
    cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
  .standby-code-link:hover{color:#8d8d92;}
  .standby-code-row{margin:14px auto 0;max-width:180px;}
  .standby-code-input{width:100%;text-align:center;background:rgba(5,5,7,.72);border:1.5px solid rgba(255,255,255,.17);
    border-radius:10px;color:#f1f0ec;font:800 22px/1 'Orbitron',sans-serif;letter-spacing:.3em;padding:10px 0;}
  .standby-code-input:focus{border-color:#ff7a00;outline:none;}
  .standby-code-input.bad{border-color:#e23;animation:clshake .35s;}
  .standby-code-msg{margin-top:8px;color:#e23;font:700 10px/1 'Share Tech Mono',monospace;letter-spacing:.08em;min-height:12px;}
  /* LIVE push-to-talk message bar */
  .livemsg{position:fixed;top:0;left:0;right:0;z-index:260;display:none;align-items:center;justify-content:center;gap:8px;
    background:#e21d1d;color:#fff;font-family:'Share Tech Mono',monospace;font-weight:700;font-size:13px;letter-spacing:.07em;
    padding:10px;box-shadow:0 4px 20px rgba(0,0,0,.35);}
  .livemsg.show{display:flex;animation:memfade .2s ease;}
  .lm-dot{animation:flicker 1.1s infinite;}
  .lm-tag{opacity:.85;}
  /* G-RADIO secret station bar */
  .gradiobar{position:fixed;top:0;left:0;right:0;z-index:255;display:none;align-items:center;justify-content:center;gap:8px;
    background:linear-gradient(90deg,#1a1408,#3a2c0a,#1a1408);color:#ffd95e;font-family:'Share Tech Mono',monospace;
    font-weight:700;font-size:13px;letter-spacing:.18em;padding:11px;cursor:pointer;border-bottom:1.5px solid #c98a00;}
  .gradiobar.show{display:flex;animation:memfade .25s ease;}
  .gradiobar .gr-mark{font-size:16px;}
  .gradiobar .gr-x{opacity:.7;font-size:11px;letter-spacing:.1em;}
  /* ── LADIES OF THE 518 — secret pink station (double-tap the logo) ── */
  .ladiesbar{position:fixed;top:0;left:0;right:0;z-index:255;display:none;align-items:center;justify-content:center;gap:8px;
    background:linear-gradient(90deg,#ff9ec9,#ffd0e4,#ff9ec9);color:#5e0a2e;font-family:'Share Tech Mono',monospace;
    font-weight:700;font-size:13px;letter-spacing:.18em;padding:11px;cursor:pointer;border-bottom:1.5px solid #e86fa8;}
  .ladiesbar.show{display:flex;animation:memfade .25s ease;}
  .ladiesbar .la-mark{font-size:16px;}
  .ladiesbar .la-x{opacity:.75;font-size:11px;letter-spacing:.1em;}
  /* the whole app goes pink while the station is on */
  body.ladies-518{--bg:#ffe9f2;--card:#fffafc;--ink:#5e0a2e;--red:#d6247e;--red-deep:#a81760;
    --line:#e86fa8;--muted:#b06a88;--thumb1:#e86fa8;--thumb2:#c0407e;}
  body.ladies-518.dark-theme{--bg:#1a0710;--card:#2b0f1d;--ink:#ffd9e8;--red:#ff9ec9;--red-deep:#ffd0e4;
    --line:#e86fa8;--muted:#c98aa5;--thumb1:#e86fa8;--thumb2:#7d2350;}
  /* OFF AIR overlay (owner cut the stream) */
  .offair{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;
    background:rgba(8,8,8,.94);backdrop-filter:blur(6px);padding:28px;}
  .offair.show{display:flex;}
  .offair-box{text-align:center;color:#f1f0ec;max-width:420px;}
  .offair-dot{color:#e23;font-size:30px;animation:flicker 1.6s infinite;}
  .offair-ttl{font-family:'Orbitron',sans-serif;font-style:italic;font-weight:900;font-size:28px;margin:10px 0 12px;letter-spacing:.02em;}
  .offair-sub{font-family:'Share Tech Mono',monospace;font-size:14px;line-height:1.6;color:#bdbcb6;}
  /* owner turned rankings OFF → hide the rank numbers (still a song list, just unranked) */
  body.no-ranks .rank{color:var(--muted);font-style:normal;}
  body.no-ranks .charthint::after{content:' (unranked)';}
  /* PRE-LAUNCH PREVIEW — account features visible but locked with COMING SOON */
  /* prev-only shows ONLY in preview; prev-hide hides in preview (swap live vs coming-soon UI) */
  .prev-only{display:none;}
  body.preview .prev-only{display:block;}
  body.preview .prev-hide{display:none!important;}
  body.preview .acct-only{position:relative;overflow:hidden;}
  body.preview .acct-only > :not(.tag){filter:blur(3.5px);opacity:.3;pointer-events:none;user-select:none;}
  body.preview .acct-only::after{content:'🔒 COMING SOON';position:absolute;left:0;right:0;bottom:0;top:34px;
    display:flex;align-items:center;justify-content:center;font-family:'Share Tech Mono',monospace;font-weight:700;
    letter-spacing:.14em;font-size:13px;color:var(--ink);background:rgba(241,240,236,.35);}
  /* REP stays available in preview (heart + REP are open to everyone) */
  /* lock badge on the account nav items */
  body.preview .nav a[data-k="search"],body.preview .nav a[data-k="submit"],
  body.preview .nav a[data-k="listeners"],body.preview .nav a[data-k="profile"]{position:relative;opacity:.55;}
  body.preview .nav a[data-k="search"]::after,body.preview .nav a[data-k="submit"]::after,
  body.preview .nav a[data-k="listeners"]::after,body.preview .nav a[data-k="profile"]::after{
    content:'🔒';position:absolute;top:-2px;right:50%;transform:translateX(14px);font-size:9px;}
  /* GUEST MODE — live radio + react only, no buttons or features */
  body.guest .acct-only{display:none!important;}
  /* Ladies of the 518 — the collab wishlist stays open to everyone while she's on,
     scoped to female artists only (see refreshCollabForLadies in app.js) */
  body.guest.ladies-518 .acct-only.ladies-ok{display:block!important;}
  body.preview.ladies-518 .acct-only.ladies-ok{position:static;overflow:visible;}
  body.preview.ladies-518 .acct-only.ladies-ok > :not(.tag){filter:none;opacity:1;pointer-events:auto;user-select:auto;}
  body.preview.ladies-518 .acct-only.ladies-ok::after{content:none;}
  /* TEMP: collab poll open to every guest (not just Ladies mode), no account needed — see LADIES_VOTE_OPEN in app.js */
  body.guest.vote-open .acct-only.ladies-ok{display:block!important;}
  body.preview.vote-open .acct-only.ladies-ok{position:static;overflow:visible;}
  body.preview.vote-open .acct-only.ladies-ok > :not(.tag){filter:none;opacity:1;pointer-events:auto;user-select:auto;}
  body.preview.vote-open .acct-only.ladies-ok::after{content:none;}
  body.guest .nav{display:none!important;}
  body.guest .sb-rep{display:none!important;}
  body.guest .rplay{display:none!important;}          /* no per-song play button for guests */
  body.guest #view-live{padding-bottom:30px;}
  /* coming-soon lock (submissions) */
  .comingsoon{text-align:center;padding:38px 22px;border:1.5px dashed #bbb;border-radius:16px;background:var(--card);margin:6px 2px;}
  .comingsoon .cs-ic{font-size:40px;}
  .comingsoon .cs-ttl{font-family:'Oswald',sans-serif;font-style:italic;font-weight:700;font-size:22px;margin:12px 0 8px;letter-spacing:.02em;}
  .comingsoon .cs-sub{font-size:14px;color:#555;line-height:1.55;}
  /* claim-flow dropdown matches the gate inputs */
  .gate select.gate-input{width:100%;text-align:center;border:1.6px solid var(--line);border-radius:14px;
    padding:16px;font-family:'Oswald',sans-serif;font-weight:600;font-size:17px;letter-spacing:.02em;outline:none;
    margin-bottom:14px;background:var(--card);-webkit-appearance:none;appearance:none;cursor:pointer;}
  .pro-city{font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--muted);letter-spacing:.08em;margin-top:4px;}
  .pro-bio{font-size:15px;line-height:1.45;margin:0 4px 18px;color:var(--ink);overflow-wrap:break-word;word-break:break-word;}
  .collabrow{display:flex;flex-wrap:wrap;gap:10px;margin:0 2px 20px;}
  .collabchip{display:flex;align-items:center;gap:9px;padding:7px 14px 7px 7px;border:1.5px solid var(--line);
    border-radius:40px;background:var(--card);font-weight:700;font-size:13px;letter-spacing:.02em;}
  .collabchip.linked{cursor:pointer;transition:transform .12s,background .12s;}
  .collabchip.linked:hover{background:#0b0b0b;color:#fff;transform:translateY(-1px);}
  .collabchip.linked:hover .collabav{border-color:#fff;}
  .collabav{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:#e9e8e3;
    display:flex;align-items:center;justify-content:center;font-size:13px;overflow:hidden;flex:0 0 auto;}
  .collabvote{padding:2px;}
  .cv-sub{font-size:13px;color:#555;margin:8px 0 14px;line-height:1.4;}
  .cv-pick{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
  .cv-sel{flex:1;min-width:0;padding:11px 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);
    font-family:'Share Tech Mono',monospace;font-size:16px;font-weight:700;letter-spacing:.03em;color:var(--ink);
    -webkit-appearance:none;appearance:none;cursor:pointer;}
  .cv-x{font-weight:800;font-size:18px;color:#888;flex:0 0 auto;}
  .cv-btn{width:100%;padding:12px;border:none;border-radius:10px;background:var(--ink,#0b0b0b);color:var(--bg,#fff);
    font-family:'Share Tech Mono',monospace;font-weight:700;letter-spacing:.08em;font-size:12px;cursor:pointer;}
  .cv-btn:active{transform:translateY(1px);}
  .cv-board{margin-top:16px;display:flex;flex-direction:column;gap:8px;}
  .cv-itm{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);}
  .cv-rank{font-family:'Oswald',sans-serif;font-style:italic;font-weight:700;font-size:18px;flex:0 0 auto;width:18px;}
  .cv-names{flex:1;min-width:0;font-weight:700;font-size:13px;letter-spacing:.02em;}
  .cv-cnt{font-family:'Share Tech Mono',monospace;font-size:11px;color:#555;flex:0 0 auto;}
  .cv-up{flex:0 0 auto;border:1.5px solid var(--line);background:var(--card);border-radius:8px;padding:5px 10px;
    font-family:'Share Tech Mono',monospace;font-weight:700;font-size:11px;cursor:pointer;}
  .cv-up.voted{background:var(--red,#e23);color:var(--bg,#fff);border-color:var(--red,#e23);cursor:default;}
  /* my playlist builder */
  .pl-sub{font-size:13px;color:#555;margin:8px 0 14px;line-height:1.4;}
  .pl-add{width:100%;padding:12px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);
    font-family:'Share Tech Mono',monospace;font-weight:700;letter-spacing:.06em;font-size:12px;cursor:pointer;margin-bottom:8px;}
  .pl-add:active{transform:translateY(1px);}
  .pl-play{width:100%;padding:12px;border:none;border-radius:10px;background:var(--ink,#0b0b0b);color:var(--bg,#fff);
    font-family:'Share Tech Mono',monospace;font-weight:700;letter-spacing:.08em;font-size:12px;cursor:pointer;margin-top:6px;}
  .pl-play:disabled{opacity:.4;cursor:default;}
  .pl-play.on{background:var(--red,#e23);}
  .pl-list{display:flex;flex-direction:column;gap:7px;margin-top:6px;}
  .pl-itm{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);}
  .pl-n{font-family:'Oswald',sans-serif;font-style:italic;font-weight:700;font-size:15px;width:16px;flex:0 0 auto;}
  .pl-t{flex:1;min-width:0;font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .pl-t small{display:block;font-weight:400;font-size:10px;color:#888;font-family:'Share Tech Mono',monospace;}
  .pl-rm{flex:0 0 auto;border:none;background:none;font-size:18px;color:#bbb;cursor:pointer;line-height:1;padding:0 2px;}
  .pl-rm:hover{color:var(--red,#e23);}
  .pl-empty{text-align:center;padding:10px;font-family:'Share Tech Mono',monospace;font-size:11px;color:#999;}
  .pl-lock{text-align:center;padding:6px 0 2px;}
  .pl-lock .lk{font-size:30px;}
  .pl-lock .lkt{font-family:'Oswald',sans-serif;font-style:italic;font-weight:700;font-size:18px;margin:6px 0 2px;}
  .pl-lock .lks{font-size:12px;color:#666;margin-bottom:12px;}
  .pl-bar{height:8px;border:1.5px solid var(--line);border-radius:6px;overflow:hidden;background:var(--card);}
  .pl-bar > i{display:block;height:100%;background:var(--ink,#0b0b0b);}
  .pl-rem{font-family:'Share Tech Mono',monospace;font-size:11px;color:#666;margin-top:7px;}
  /* all-artists directory */
  .adir-search{width:100%;margin:0 0 14px;padding:12px 16px;border:1.6px solid var(--line);border-radius:30px;
    font-family:'Share Tech Mono',monospace;font-size:16px;letter-spacing:.03em;background:var(--card);color:var(--ink);outline:none;}
  .adir-search::placeholder{color:var(--muted);}
  .adir-empty{text-align:center;font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--muted);padding:20px 0;}
  .adir{display:flex;flex-direction:column;gap:10px;perspective:900px;}
  .adir-card{display:flex;align-items:center;gap:13px;background:var(--card);border:1.6px solid var(--line);
    border-radius:16px;padding:12px 14px;cursor:pointer;position:relative;overflow:hidden;
    transform-style:preserve-3d;will-change:transform;
    transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
    transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease;}
  .adir-card.tilting{transition:transform .06s linear,box-shadow .25s ease;
    box-shadow:0 14px 30px -14px rgba(0,0,0,.45);}
  /* chrome sheen that follows the pointer — matches the logo's metal language */
  .adir-card::after{content:"";position:absolute;inset:-40%;pointer-events:none;opacity:0;
    background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),
      rgba(255,255,255,.28),rgba(210,210,210,.10) 38%,transparent 62%);
    transition:opacity .3s ease;}
  .adir-card.tilting::after{opacity:1;}
  body.dark-theme .adir-card::after{background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),
      rgba(255,255,255,.14),rgba(255,255,255,.05) 38%,transparent 62%);}
  /* depth layers — avatar and name float above the card plane */
  .adir-card .adir-av{transform:translateZ(26px);}
  .adir-card .adir-meta{transform:translateZ(16px);}
  .adir-card .adir-go{transform:translateZ(20px);}
  @media (prefers-reduced-motion: reduce){
    .adir-card,.adir-card.tilting{transform:none!important;transition:none;}
    .adir-card::after{display:none;}
    .adir-card .adir-av,.adir-card .adir-meta,.adir-card .adir-go{transform:none;}
  }
  .adir-card:active{background:#f6f5f1;}
  .adir-av{width:52px;height:52px;border-radius:12px;flex-shrink:0;border:1.5px solid var(--line);
    background:#111 center/cover no-repeat;display:flex;align-items:center;justify-content:center;}
  .adir-av span{font-family:'Orbitron',sans-serif;font-weight:900;font-size:20px;color:#fff;}
  .adir-meta{flex:1;min-width:0;}
  .adir-name{font-family:'Oswald',sans-serif;font-weight:700;font-size:17px;letter-spacing:.02em;}
  .adir-city{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.05em;}
  .adir-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
  .adir-links a{font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:700;text-decoration:none;
    border:1.2px solid var(--line);border-radius:14px;padding:3px 9px;color:var(--ink);letter-spacing:.04em;}
  .adir-go{font-size:22px;color:var(--muted);flex-shrink:0;}
  /* 518 LEGEND — chrome ring + badge */
  .adir-av.legend518{box-shadow:0 0 0 2px #0b0b0b,0 0 0 4px #ededed,0 0 0 6px #8a8a8a;border-color:transparent;}
  .pro-av.legend518{box-shadow:0 0 0 2px #0b0b0b,0 0 0 4px #f4f4f4,0 0 0 6px #8f8f8f,0 0 0 8px #dadada,0 0 16px rgba(210,210,210,.55);border-color:transparent;}
  .legend-badge{display:inline-block;margin-left:8px;vertical-align:middle;font-family:'Share Tech Mono',monospace;
    font-size:10px;font-weight:800;letter-spacing:.08em;padding:3px 9px;border-radius:20px;color:#000;
    background:linear-gradient(180deg,#fdfdfd,#cfcfcf 45%,#9a9a9a 55%,#ededed);border:1px solid #5a5a5a;text-shadow:none;}
  .adir-badge{display:inline-block;margin-left:6px;font-family:'Share Tech Mono',monospace;font-size:8px;font-weight:800;
    letter-spacing:.06em;padding:2px 6px;border-radius:12px;color:#000;vertical-align:middle;
    background:linear-gradient(180deg,#fdfdfd,#cfcfcf 45%,#9a9a9a 55%,#ededed);border:1px solid #5a5a5a;}
  /* female 518 artists — pink badges */
  .legend-badge.pink,.adir-badge.pink{color:#5e0033;border-color:#d63a86;
    background:linear-gradient(180deg,#ffe3f1,#ff9ecb 45%,#ff5fa8 55%,#ffd0e6);}
  /* artist external links */
  .pro-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 4px 18px;}
  .pro-links a{font-family:'Share Tech Mono',monospace;font-size:11px;font-weight:700;text-decoration:none;
    border:1.4px solid var(--line);border-radius:20px;padding:7px 14px;color:var(--ink);letter-spacing:.04em;}
  /* artist spotlight — random artist w/ a photo, on the home page */
  .spot-head{display:flex;gap:14px;align-items:center;margin:14px 4px 12px;}
  .spot-av{width:78px;height:78px;border-radius:14px;border:1.6px solid var(--line);flex:0 0 auto;background-size:cover;background-position:center;}
  .spot-name{font-family:'Oswald',sans-serif;font-weight:800;font-size:19px;letter-spacing:.02em;}
  .spot-city{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.05em;margin-top:2px;}
  .spot-bio{font-size:13px;line-height:1.55;color:var(--ink);opacity:.85;margin:0 4px 12px;overflow-wrap:break-word;word-break:break-word;}
  .spot-cta{font-family:'Share Tech Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--muted);margin:0 4px 8px;text-transform:uppercase;}
  .spot-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 4px 4px;}
  .spot-links a{font-family:'Share Tech Mono',monospace;font-size:11px;font-weight:700;text-decoration:none;
    border:1.4px solid var(--line);border-radius:20px;padding:7px 14px;color:var(--ink);letter-spacing:.04em;}
  /* 518 trivia — local history / cinema / culture + artist badges */
  .tv-cat{font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--red);
    margin:14px 4px 8px;text-transform:uppercase;}
  .tv-q{font-size:16px;line-height:1.4;font-weight:600;margin:0 4px 14px;}
  /* city landmark emblem badge */
  .city-badge{display:inline-flex;align-items:center;gap:6px;margin-top:9px;padding:5px 11px;border:1.4px solid var(--line);
    border-radius:20px;font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--ink);vertical-align:middle;}
  .city-badge svg{width:16px;height:16px;flex-shrink:0;}
  .tv-photo{width:150px;height:150px;margin:4px auto 12px;border-radius:14px;overflow:hidden;border:2px solid var(--ink);background:#111;}
  .tv-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .tv-fact{margin-top:10px;font-family:'Share Tech Mono',monospace;font-size:11px;line-height:1.65;letter-spacing:.02em;
    color:var(--ink);opacity:.9;text-transform:none;}
  .tv-fact b{color:var(--red);}
  .bg-opts{display:flex;flex-direction:column;gap:8px;margin:0 4px 4px;}
  .bg-opt{font-family:'Share Tech Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.03em;text-align:left;
    border:1.4px solid var(--line);border-radius:12px;padding:11px 14px;background:none;color:var(--ink);cursor:pointer;}
  .bg-opt:active{background:rgba(128,128,128,.1);}
  .bg-opt.right{border-color:#2e9e4a;background:rgba(46,158,74,.14);color:#2e9e4a;}
  .bg-opt.wrong{border-color:var(--red);background:rgba(230,0,31,.1);color:var(--red);}
  .bg-opt[disabled]{cursor:default;}
  .bg-result{margin:12px 4px 0;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.04em;}
  .bg-correct{color:#2e9e4a;font-weight:700;}
  .bg-wrong{color:var(--red);font-weight:700;}
  .bg-next{display:block;margin-top:10px;font-family:'Share Tech Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.06em;
    border:1.4px solid var(--ink);border-radius:20px;padding:8px 16px;background:none;color:var(--ink);cursor:pointer;}
  /* inline music-video preview */
  .ytlite{position:relative;aspect-ratio:16/9;width:100%;border-radius:16px;overflow:hidden;cursor:pointer;
    border:1.6px solid var(--line);background:#000;margin:0 0 18px;}
  .ytlite img{width:100%;height:100%;object-fit:cover;display:block;}
  .ytlite .ytplay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-size:34px;color:#fff;background:rgba(0,0,0,.28);}
  .ytlite.playing{cursor:default;}
  .ytlite iframe{width:100%;height:100%;border:0;display:block;}
  .socials{display:flex;gap:10px;margin:0 4px 20px;flex-wrap:wrap;}
  .socials a{font-family:'Share Tech Mono',monospace;font-size:12px;border:1.4px solid var(--line);border-radius:20px;padding:7px 14px;text-decoration:none;color:var(--ink);letter-spacing:.05em;}
  .sec-label{font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.1em;color:var(--muted);margin:0 4px 8px;text-transform:uppercase;}

  /* search */
  .searchbar{display:flex;align-items:center;gap:10px;border:1.6px solid var(--line);border-radius:16px;padding:12px 16px;margin-bottom:14px;background:var(--card);}
  .searchbar svg{width:20px;height:20px;stroke:var(--ink);fill:none;stroke-width:1.8;flex:0 0 auto;}
  .searchbar input{border:none;outline:none;flex:1;font-family:'Oswald',sans-serif;font-size:17px;background:transparent;}
  .seg{display:flex;gap:8px;margin-bottom:16px;}
  .seg button{flex:1;border:1.6px solid var(--line);background:var(--card);border-radius:12px;padding:9px;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.08em;cursor:pointer;}
  .seg button.on{background:var(--ink);color:var(--bg);}
  .areachips{display:flex;gap:7px;overflow-x:auto;padding-bottom:5px;margin-bottom:14px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .areachips::-webkit-scrollbar{display:none;}
  .areachip{flex:0 0 auto;border:1.4px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.06em;cursor:pointer;white-space:nowrap;color:var(--ink);}
  .areachip.on{background:var(--ink);color:var(--bg);}
  .empty{text-align:center;font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--muted);padding:30px 0;letter-spacing:.06em;}

  /* submit form */
  .form label{display:block;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.08em;color:#444;margin:14px 4px 6px;text-transform:uppercase;}
  .form input[type=text]{width:100%;border:1.6px solid var(--line);border-radius:12px;padding:13px 15px;font-family:'Oswald',sans-serif;font-size:16px;outline:none;}
  .file{border:1.6px dashed var(--line);border-radius:14px;padding:22px;text-align:center;cursor:pointer;color:var(--muted);font-family:'Share Tech Mono',monospace;font-size:13px;letter-spacing:.05em;}
  .file.has{border-style:solid;color:var(--ink);border-color:var(--red);}
  .rules{border:1.4px solid #eee;border-radius:14px;padding:14px 16px;margin:18px 0;background:#fafafa;}
  .rules div{font-family:'Share Tech Mono',monospace;font-size:11.5px;line-height:1.9;letter-spacing:.03em;color:#444;}
  .rules div b{color:var(--red);}
  .btn{width:100%;border:1.6px solid var(--red);background:var(--red);color:var(--bg);border-radius:14px;padding:15px;
    font-family:'Orbitron',sans-serif;font-weight:800;font-size:16px;letter-spacing:.04em;cursor:pointer;margin-top:6px;}
  .btn:active{transform:scale(.98);}
  .btn.ghost{background:var(--card);color:var(--ink);border-color:var(--line);}
  .formmsg{text-align:center;font-family:'Share Tech Mono',monospace;font-size:13px;margin-top:12px;letter-spacing:.04em;min-height:18px;}
  .formmsg.ok{color:var(--ink);}.formmsg.err{color:var(--red);}

  /* profile */
  .pf-av{width:96px;height:96px;border-radius:50%;border:1.6px solid var(--line);margin:0 auto 14px;
    background:linear-gradient(145deg,var(--thumb1),var(--thumb2));display:flex;align-items:center;justify-content:center;}
  .pf-av span{font-family:'Orbitron',sans-serif;font-weight:900;font-size:34px;color:#fff;}
  .pf-av{position:relative;cursor:pointer;overflow:hidden;background-size:cover;background-position:center;}
  .pf-av.has-photo span{display:none;}
  .pf-cam{position:absolute;right:0;bottom:0;width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--bg);
    border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif;font-size:18px;font-weight:700;}
  /* artist library gallery */
  .library{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;}
  .libcard{border:1.4px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;background:var(--card);transition:transform .12s;}
  .libcard:active{transform:scale(.97);}
  .libart{width:100%;aspect-ratio:1;background:linear-gradient(145deg,var(--thumb1),var(--thumb2));background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;color:#fff;}
  .libart span{font-family:'Orbitron',sans-serif;font-weight:900;font-size:26px;opacity:.7;}
  .libmeta{padding:10px 12px;}
  .libmeta .lt{font-size:14px;font-weight:700;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .libmeta .ls{font-family:'Share Tech Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.04em;margin-top:3px;}
  .libmeta .ls b{color:var(--ink);}
  .pf-name-input{width:100%;text-align:center;border:1.6px solid var(--line);border-radius:12px;padding:12px;font-family:'Oswald',sans-serif;font-size:20px;font-weight:700;outline:none;text-transform:uppercase;}
  .toggle{display:flex;align-items:center;justify-content:space-between;border:1.6px solid var(--line);border-radius:14px;padding:14px 16px;margin:16px 0;}
  .toggle .lbl{font-family:'Share Tech Mono',monospace;font-size:13px;letter-spacing:.06em;}
  .switch{width:48px;height:26px;border-radius:20px;background:#ddd;position:relative;cursor:pointer;transition:background .2s;flex:0 0 auto;}
  .switch i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--card);transition:left .2s;}
  .switch.on{background:var(--red);}.switch.on i{left:25px;}
  .badges{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;}
  .badge{border:1.4px solid #e6e6e6;border-radius:14px;padding:14px;text-align:center;background:#fafafa;opacity:.45;filter:grayscale(1);}
  .badge.on{opacity:1;filter:none;border-color:var(--line);background:var(--card);}
  .badge .ic{font-size:24px;filter:grayscale(1);}
  .badge .bn{font-family:'Share Tech Mono',monospace;font-size:10.5px;letter-spacing:.04em;margin-top:6px;text-transform:uppercase;line-height:1.3;}
  .badge-note{font-family:'Share Tech Mono',monospace;font-size:10px;color:var(--muted);text-align:center;margin-top:12px;letter-spacing:.05em;}
  .memstatus{margin:14px 0 4px;text-align:center;}
  .memok{font-family:'Share Tech Mono',monospace;font-size:14px;letter-spacing:.06em;font-weight:700;}
  .memsub{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.05em;margin-top:4px;}
  .uploads{margin:18px 0;}
  .uprow{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1.4px solid #eee;border-radius:12px;padding:12px 14px;margin-bottom:8px;}
  .upt{font-weight:700;text-transform:uppercase;font-size:15px;}
  .upa{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);margin-left:8px;text-transform:uppercase;}
  .upbadge{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.05em;border:1.4px solid var(--line);border-radius:20px;padding:3px 10px;white-space:nowrap;}
  .upbadge.live{background:var(--ink);color:var(--bg);}
  .upempty{font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--muted);text-align:center;padding:18px 0;letter-spacing:.05em;}

  /* mode toggle on live */
  .modes{display:flex;gap:8px;margin-bottom:16px;}
  .modes button{flex:1;border:1.6px solid var(--line);background:var(--card);border-radius:14px;padding:11px;cursor:pointer;font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.06em;}
  .modes button.on{background:var(--red);color:var(--bg);border-color:var(--red);}

  /* top listeners */
  .lboard{padding:6px 6px;}
  .lrow{display:flex;align-items:center;gap:14px;padding:14px 12px;border-top:1px solid rgba(128,128,128,.2);}
  .lrow:first-child{border-top:none;}
  .lrow.you{background:#f1f1f1;border-radius:12px;}
  .lrank{font-family:'Orbitron',sans-serif;font-weight:900;font-size:26px;width:40px;text-align:center;font-style:italic;flex:0 0 auto;}
  .lrank.red{color:var(--red);}.lrank.blk{color:var(--ink);}
  .lav{width:46px;height:46px;border-radius:50%;border:1.4px solid var(--line);background:linear-gradient(145deg,var(--thumb1),var(--thumb2));display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
  .lav span{color:#fff;font-family:'Orbitron',sans-serif;font-weight:800;font-size:16px;}
  .lmeta{flex:1;min-width:0;}
  .lmeta .ln{font-size:17px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;}
  .lmeta .ls{font-family:'Share Tech Mono',monospace;font-size:11px;color:#555;letter-spacing:.05em;margin-top:2px;}
  .lcrown{font-size:18px;flex:0 0 auto;filter:grayscale(1);}

  /* about */
  .manifesto{padding:28px 22px;text-align:center;}
  .manifesto h3{font-family:'Orbitron',sans-serif;font-style:italic;font-weight:900;font-size:29px;line-height:1.08;margin:0;letter-spacing:.01em;}
  .manifesto h3 b{color:var(--red);}
  .manifesto p{font-family:'Share Tech Mono',monospace;font-size:12px;color:#555;letter-spacing:.04em;margin:14px 0 0;line-height:1.7;}
  .about-body{padding:20px 20px;}
  .alist{list-style:none;padding:0;margin:0;}
  .alist li{display:flex;gap:10px;font-size:15px;line-height:1.45;padding:7px 0;color:#222;}
  .alist li::before{flex:0 0 auto;font-family:'Share Tech Mono',monospace;font-weight:700;}
  .alist.do li::before{content:"✓";color:var(--ink);}
  .alist.dont li::before{content:"✕";color:var(--red);}
  .about-foot{text-align:center;font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.06em;line-height:1.9;padding:8px 0 0;}
  .site-foot{text-align:center;margin:22px 4px 40px;padding:18px 14px;border:1.4px dashed var(--line);border-radius:16px;}
  .site-foot .sf-wip{font-family:'Share Tech Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--ink);margin-bottom:10px;}
  .site-foot .sf-cr{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.06em;}
  .site-foot .sf-sub{font-family:'Share Tech Mono',monospace;font-size:9px;color:var(--muted);letter-spacing:.14em;margin-top:5px;}
  .site-foot .sf-social{margin:2px 0 14px;}
  .site-foot .sf-follow{font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--muted);margin-bottom:9px;}
  .site-foot .sf-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
  .site-foot .sf-links a{font-family:'Share Tech Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.04em;
    color:var(--ink);text-decoration:none;border:1.3px solid var(--line);border-radius:20px;padding:6px 12px;transition:background .12s,color .12s;}
  .site-foot .sf-links a:active{background:var(--ink);color:var(--bg);}
  .footer-about{text-align:center;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--muted);padding:8px 0 4px;cursor:pointer;margin-top:6px;}
  .footer-about:hover{color:var(--red);}
  .copymark{text-align:center;font-family:'Share Tech Mono',monospace;font-size:10px;letter-spacing:.06em;
    color:var(--muted);line-height:1.7;padding:8px 0 24px;}

  /* search lock */
  .lockcard{border:1.6px solid var(--line);border-radius:18px;padding:32px 22px;text-align:center;background:var(--card);}
  .lockic{font-size:42px;line-height:1;filter:grayscale(1);}
  .lockttl{font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:24px;margin-top:12px;letter-spacing:.01em;}
  .locksub{font-family:'Share Tech Mono',monospace;font-size:12px;color:#555;letter-spacing:.04em;margin-top:10px;line-height:1.7;}
  .lockbar{height:10px;background:#eee;border-radius:6px;margin:22px 0 12px;overflow:hidden;border:1.4px solid var(--line);}
  .lockbar i{display:block;height:100%;background:var(--red);border-radius:6px;transition:width .4s;}
  .lockstat{font-family:'Orbitron',sans-serif;font-weight:800;font-size:18px;letter-spacing:.02em;}
  .lockremain{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.05em;margin-top:8px;}
  .nav a.has-lock{position:relative;}
  .navlock{position:absolute;top:-3px;left:calc(50% + 5px);font-size:10px;line-height:1;filter:grayscale(1);}

  /* hold-to-reveal profile */
  .charthint{font-family:'Share Tech Mono',monospace;font-size:10px;color:var(--muted);text-align:center;padding:18px 0 2px;letter-spacing:.08em;text-transform:uppercase;}
  /* V2 Programming Bot — themed-hour / sponsored-hour banner */
  .showbanner{font-family:'Share Tech Mono',monospace;font-size:11.5px;letter-spacing:.03em;text-align:center;
    border:1.4px solid var(--line);border-radius:12px;padding:9px 14px;margin:0 0 12px;background:var(--card);
    overflow-wrap:anywhere;word-break:break-word;}
  .showbanner b{font-family:'Oswald',sans-serif;font-weight:700;letter-spacing:.04em;}
  /* video theatre — cycles through embedded 518 artist videos, one after another */
  .theatre{margin-top:14px;}
  /* creative reel — a distinct, film-strip styled row (not the auto-play playlist) so the
     people BEHIND the videos get their own spotlight, with a direct link to support them */
  .cre-reel-wrap{margin-top:18px;}
  .cre-reel-tag{font-family:'Orbitron',sans-serif;font-weight:800;font-size:13px;letter-spacing:.06em;
    margin:2px 4px 0;}
  .cre-reel{display:flex;gap:12px;overflow-x:auto;padding:10px 4px 6px;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;}
  .cre-reel::-webkit-scrollbar{height:6px;}
  .cre-reel-card{flex:0 0 auto;width:118px;scroll-snap-align:start;text-decoration:none;color:var(--ink);
    display:flex;flex-direction:column;align-items:center;text-align:center;
    background:var(--card);border:1.6px solid var(--line);border-radius:14px;padding:12px 8px;
    position:relative;overflow:hidden;}
  .cre-reel-card::before{content:"▶";position:absolute;top:6px;right:8px;font-size:9px;opacity:.35;}
  .cre-reel-av{width:52px;height:52px;border-radius:50%;background:#111 center/cover no-repeat;
    border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;margin-bottom:8px;}
  .cre-reel-av span{font-family:'Orbitron',sans-serif;font-weight:900;font-size:16px;color:#fff;}
  .cre-reel-name{font-family:'Oswald',sans-serif;font-weight:700;font-size:12px;line-height:1.25;}
  .cre-reel-role{font-family:'Share Tech Mono',monospace;font-size:8.5px;color:var(--muted);
    letter-spacing:.04em;margin-top:3px;line-height:1.35;}
  /* full Creatives directory overlay — reuses the .hof-overlay shell */
  .creatives-body{overflow-y:auto;padding-bottom:50px;}
  .cre-dir-cat{font-family:'Share Tech Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.1em;
    color:var(--muted);text-transform:uppercase;padding:18px 22px 4px;}
  .cre-dir-cell{text-decoration:none;color:var(--ink);display:flex;flex-direction:column;align-items:center;
    text-align:center;background:var(--card);border:1.6px solid var(--line);border-radius:14px;padding:14px 8px;}
  .cre-dir-cell .cre-reel-av{width:56px;height:56px;margin-bottom:8px;}
  /* Creatives directory — same overlay shell as HOF, red instead of gold */
  .creatives-theme{background:radial-gradient(120% 80% at 50% 0%,#1a0a0a 0%,#0a0707 58%,#040404 100%);}
  .creatives-theme .hof-ttl{background:linear-gradient(180deg,#ffd6d6,#ff5e5e,#c70000,#6b0000);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
  .creatives-theme .hof-sub{color:#e05a5a;}
  .creatives-theme .hof-x{color:#a35a5a;}
  .creatives-theme .hof-x:hover{color:#ff5e5e;}
  .creatives-theme .hof-cname{color:#ffd6d6;}
  .creatives-theme .hof-cyears{color:#e05a5a;}
  .creatives-theme .cre-dir-cat{color:#e05a5a;}
  .creatives-theme .cre-dir-cell{background:#150a0a;border-color:#3a1a1a;}
  .creatives-theme .cre-reel-av{border-color:#5a2a2a;}
  .theatre-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;border:1.6px solid var(--line);background:#0b0b0b;}
  .theatre-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
  .theatre-empty{font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--muted);text-align:center;padding:30px 10px;letter-spacing:.05em;}
  /* theatre-tab marquee header — vintage cinema-canopy silhouette, dressed in 518RADIO's
     own chrome/mono palette (not literal brick — a reader-board reinterpretation) */
  .marquee{margin:4px 0 10px;}
  .mq-canopy{position:relative;padding-top:20px;}
  .mq-blade{position:absolute;top:0;width:34px;height:64px;background:var(--ink);color:var(--card);
    border-radius:4px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.25);}
  .mq-blade span{writing-mode:vertical-rl;text-orientation:mixed;font-family:'Orbitron',sans-serif;
    font-weight:900;font-size:11px;letter-spacing:.08em;}
  .mq-blade.left{left:2px;transform:rotate(180deg)}
  .mq-blade.right{right:2px;}
  .mq-sign{position:relative;border:2px solid var(--line);background:var(--card);text-align:center;
    padding:30px 18px 20px;margin:0 40px;
    clip-path:polygon(0% 20px,38% 20px,50% 0%,62% 20px,100% 20px,100% 100%,0% 100%);
    background-image:radial-gradient(circle,#d8d8d0 1.4px,transparent 1.6px);background-size:14px 14px;background-position:center 8px;}
  .mq-bulbs{position:absolute;left:14px;right:14px;height:5px;pointer-events:none;
    background-image:radial-gradient(circle,var(--ink) 0 2.2px,transparent 2.3px 100%);
    background-size:13px 5px;background-repeat:repeat-x;opacity:.5;
    animation:mqchase 900ms steps(2) infinite;}
  .mq-bulbs.mq-top{top:26px;}
  .mq-bulbs.mq-bottom{bottom:9px;animation-direction:reverse;}
  @keyframes mqchase{from{background-position:0 0;}to{background-position:13px 0;}}
  .mq-logo{font-family:'Orbitron',sans-serif;font-weight:900;font-size:34px;letter-spacing:.04em;display:inline-block;
    background:linear-gradient(180deg,#fdfdfd,#cfcfcf 38%,#5f5f5f 52%,#e9e9e9 66%,#9a9a9a);-webkit-background-clip:text;background-clip:text;
    color:transparent;-webkit-text-stroke:1.2px #0b0b0b;margin-bottom:10px;}
  .mq-board{border:1.6px solid var(--line);border-radius:10px;background:var(--card);padding:12px 10px;}
  .mq-line1{font-family:'Oswald',sans-serif;font-weight:700;font-size:13px;letter-spacing:.04em;}
  .mq-line2{font-family:'Share Tech Mono',monospace;font-size:10px;color:#444;letter-spacing:.04em;margin-top:8px;line-height:1.6;}
  .mq-line3{font-family:'Oswald',sans-serif;font-weight:700;font-size:12px;margin-top:8px;letter-spacing:.03em;}
  .mq-line4{font-family:'Share Tech Mono',monospace;font-size:11px;color:#ff7a00;font-weight:700;letter-spacing:.06em;margin-top:6px;}
  @media (max-width:420px){ .mq-blade{display:none;} .mq-sign{margin:0;} }
  .row{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}
  .profilepop{position:fixed;inset:0;z-index:900;display:none;align-items:center;justify-content:center;background:rgba(241,240,236,.72);}
  .profilepop.show{display:flex;animation:fade .2s;}
  .pp-card{background:var(--card);border:1.6px solid var(--line);border-radius:20px;padding:24px;max-width:380px;width:88%;position:relative;box-shadow:0 16px 44px rgba(0,0,0,.2);}
  .pp-top{display:flex;gap:14px;align-items:center;margin-bottom:14px;}
  .pp-av{width:64px;height:64px;border-radius:14px;border:1.4px solid var(--line);background:linear-gradient(145deg,var(--thumb1),var(--thumb2));display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
  .pp-av span{color:#fff;font-family:'Orbitron',sans-serif;font-weight:800;font-size:24px;}
  .pp-name{font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:20px;}
  .pp-city{font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--muted);letter-spacing:.06em;margin-top:2px;}
  .pp-bio{font-size:14px;line-height:1.45;color:var(--ink);margin-bottom:12px;}
  .pp-songs{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:16px;line-height:1.7;}
  .pp-link{font-family:'Share Tech Mono',monospace;font-size:13px;letter-spacing:.08em;border:1.5px solid var(--ink);border-radius:10px;text-align:center;padding:11px;cursor:pointer;text-transform:uppercase;}
  .pp-link:active{background:var(--ink);color:var(--bg);}

  /* represent / share card */
  .repcard{display:flex;align-items:center;gap:14px;padding:22px 20px;}
  .rep-txt{flex:1;min-width:0;}
  .rep-line{font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:18px;line-height:1.15;letter-spacing:.01em;}
  .rep-sub{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.06em;margin-top:6px;text-transform:uppercase;}
  .rep-btn{flex:0 0 auto;display:flex;align-items:center;gap:8px;border:1.6px solid var(--red);background:var(--red);color:var(--bg);border-radius:14px;padding:13px 18px;font-family:'Orbitron',sans-serif;font-weight:800;font-size:14px;letter-spacing:.04em;cursor:pointer;transition:transform .12s;}
  .rep-btn:active{transform:scale(.95);}

  /* react */
  .react{display:flex;align-items:center;gap:20px;padding:26px 22px;position:relative;}
  .bigheart{font-size:62px;line-height:1;background:none;border:none;cursor:pointer;color:var(--heart,#0b0b0b);transition:transform .12s cubic-bezier(.34,1.56,.64,1);transform-origin:center;user-select:none;-webkit-user-select:none;padding:0;}
  .reactmeta .rlabel{font-family:'Share Tech Mono',monospace;font-size:13px;letter-spacing:.05em;text-transform:uppercase;}
  .reactmeta .rcount{font-family:'Orbitron',sans-serif;font-weight:800;font-size:22px;margin-top:6px;}
  .floatheart{position:absolute;pointer-events:none;color:var(--heart,#0b0b0b);will-change:transform,opacity;z-index:5;}
  /* full-screen heart reactions (live-stream style) */
  .screenheart{position:fixed;z-index:30;pointer-events:none;color:var(--heart,#0b0b0b);
    will-change:transform,opacity;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15));}
  @keyframes sheart-rise{
    0%{transform:translateY(0) translateX(0) scale(.5);opacity:0}
    12%{opacity:1;transform:translateY(-6vh) scale(1)}
    50%{transform:translateY(-38vh) translateX(var(--sx,0)) scale(1.05)}
    100%{transform:translateY(-78vh) translateX(calc(var(--sx,0) * -1)) scale(.85);opacity:0}}

  /* 518 member gate */
  .gate{position:fixed;inset:0;z-index:1000;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .35s;}
  .gate-inner{text-align:center;padding:24px;max-width:430px;width:100%;}
  .gate-logo{font-size:clamp(30px,13vw,54px);margin:0 auto;cursor:default;}
  .gate-sub{font-family:'Share Tech Mono',monospace;font-size:13px;letter-spacing:.25em;color:var(--muted);margin:8px 0 34px;}
  .gate-label{font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.08em;color:#333;margin-bottom:14px;text-transform:uppercase;}
  .gate input{width:100%;text-align:center;border:1.6px solid var(--line);border-radius:14px;padding:16px;font-family:'Orbitron',sans-serif;font-weight:800;font-size:22px;letter-spacing:.1em;outline:none;margin-bottom:14px;}
  .gate-enter{width:100%;border:1.6px solid var(--ink);background:var(--ink);color:var(--bg);border-radius:14px;padding:16px;font-family:'Orbitron',sans-serif;font-weight:800;font-size:16px;letter-spacing:.05em;cursor:pointer;}
  .gate-enter:active{transform:scale(.98);}
  .gate-msg{font-family:'Share Tech Mono',monospace;font-size:12px;color:#000;margin-top:12px;min-height:16px;letter-spacing:.04em;}
  .gate input[type=email]{font-family:'Oswald',sans-serif;font-size:17px;letter-spacing:.02em;text-transform:none;font-weight:600;}
  .gate-check{font-family:'Orbitron',sans-serif;font-weight:900;font-size:44px;width:84px;height:84px;border-radius:50%;border:3px solid var(--ink);display:flex;align-items:center;justify-content:center;margin:0 auto 18px;}
  .gate-confirm{font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:24px;line-height:1.12;margin-bottom:10px;}
  .gate-cmeta{font-family:'Share Tech Mono',monospace;font-size:12px;color:var(--muted);letter-spacing:.04em;margin-bottom:26px;}
  .gate-back{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--muted);cursor:pointer;text-align:left;margin-bottom:14px;}
  .gate-back:hover{color:var(--ink);}
  .gate-agree{display:flex;gap:8px;align-items:flex-start;font-family:'Share Tech Mono',monospace;font-size:11px;line-height:1.5;color:#444;letter-spacing:.02em;text-align:left;margin:4px 0 14px;cursor:pointer;}
  .gate-agree input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--ink);margin-top:1px;}
  .gate-agree a{color:var(--ink);text-decoration:underline;cursor:pointer;}
  .gate-alt{font-family:'Share Tech Mono',monospace;font-size:12px;margin-top:14px;letter-spacing:.03em;}
  .gate-alt a{color:var(--ink);text-decoration:underline;cursor:pointer;}
  .gate-enter+.gate-enter{margin-top:0;}
  /* legal viewer */
  #legalOverlay{position:fixed;inset:0;z-index:1200;background:rgba(20,20,20,.55);display:none;align-items:center;justify-content:center;padding:20px;}
  #legalOverlay.show{display:flex;animation:fade .2s;}
  .legal-box{background:var(--card);border:1.6px solid var(--line);border-radius:20px;max-width:440px;width:100%;max-height:84vh;display:flex;flex-direction:column;overflow:hidden;}
  .legal-x{font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.08em;color:var(--muted);cursor:pointer;padding:14px 16px 6px;text-align:right;}
  .legal-tabs{display:flex;gap:6px;padding:0 14px 12px;border-bottom:1.4px solid #eee;overflow-x:auto;}
  .legal-tabs .lt{flex:0 0 auto;font-family:'Share Tech Mono',monospace;font-size:11px;letter-spacing:.06em;border:1.4px solid var(--line);background:var(--card);border-radius:18px;padding:7px 13px;cursor:pointer;}
  .legal-tabs .lt.on{background:var(--ink);color:var(--bg);}
  .legal-content{padding:18px 20px 24px;overflow-y:auto;}
  .legal-content h4{font-family:'Orbitron',sans-serif;font-weight:900;font-size:18px;font-style:italic;margin:0 0 4px;}
  .legal-content .lu{font-family:'Share Tech Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.08em;margin-bottom:14px;text-transform:uppercase;}
  .legal-content h5{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;margin:16px 0 5px;}
  .legal-content p{font-size:13px;line-height:1.55;color:#333;margin:0 0 9px;}

  /* nav */
  .nav{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;width:100%;max-width:440px;background:var(--card);
    border:1.6px solid var(--line);border-radius:22px;display:flex;align-items:center;justify-content:space-around;
    padding:10px 4px 8px;z-index:20;box-shadow:0 8px 24px rgba(0,0,0,.08);}
  .nav a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:#a3a3a3;cursor:pointer;flex:1;min-width:0;}
  .nav a span{font-family:'Share Tech Mono',monospace;font-size:8px;letter-spacing:.01em;white-space:nowrap;}
  .nav a svg{width:19px;height:19px;stroke:#a3a3a3;fill:none;stroke-width:1.8;}
  .nav a.active{color:var(--ink);}.nav a.active svg{stroke:var(--ink);}
  .nav a.active span{font-weight:700;}
  .nav .sep{flex:0 0 auto;width:1.5px;height:26px;background:#e2e2e2;}

  /* toast */
  .toast{position:fixed;left:50%;transform:translateX(-50%) translateY(20px);bottom:96px;background:var(--ink);color:var(--bg);
    font-family:'Share Tech Mono',monospace;font-size:12px;letter-spacing:.05em;padding:11px 18px;border-radius:12px;
    opacity:0;pointer-events:none;transition:.25s;z-index:40;max-width:90%;text-align:center;}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

  /* ===== ARTIST CARD — collectible flip card (Artist Page) + playlist preview ===== */
  .ac-overlay{position:fixed;inset:0;z-index:230;display:none;align-items:center;justify-content:center;
    background:rgba(8,8,8,.62);backdrop-filter:blur(4px);padding:20px;}
  .ac-overlay.show{display:flex;animation:memfade .22s ease;}
  .ac-card3d{perspective:1200px;width:min(340px,90vw);}
  .ac-inner{position:relative;width:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,.8,.3,1);}
  .ac-inner.flipped{transform:rotateY(180deg);}
  .ac-face{width:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;
    background:var(--card);border:2px solid transparent;border-radius:20px;overflow:hidden;
    background-origin:border-box;background-clip:padding-box,border-box;
    background-image:linear-gradient(var(--card),var(--card)),var(--chrome);
    box-shadow:var(--elev-2);}
  .ac-front{position:relative;}
  .ac-back{position:absolute;inset:0;transform:rotateY(180deg);display:flex;flex-direction:column;}
  /* subtle foil shine — desktop hover only */
  @media(hover:hover){
    .ac-front::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;
      background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.14) 45%,transparent 60%);}
    .ac-card3d:hover .ac-front::after{opacity:1;}
  }
  .ac-photo{width:100%;aspect-ratio:1/1;background:linear-gradient(145deg,var(--thumb1),var(--thumb2));
    background-size:cover;background-position:center;}
  .ac-body{padding:14px 16px 16px;}
  .ac-kicker{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:.28em;color:var(--muted);text-transform:uppercase;}
  .ac-name{font-family:'Orbitron',sans-serif;font-weight:900;font-style:italic;font-size:21px;margin:3px 0 2px;
    overflow-wrap:break-word;word-break:break-word;}
  .ac-city{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;}
  .ac-badges{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px;}
  .ac-badges .legend-badge{margin-left:0;}
  .ac-stars{margin-top:7px;font-size:13px;letter-spacing:.18em;color:var(--ink);}
  .ac-line{font-family:'Share Tech Mono',monospace;font-size:11px;color:var(--ink);margin-top:8px;letter-spacing:.04em;}
  .ac-line b{font-weight:700;}
  .ac-actions{display:flex;gap:8px;margin-top:12px;}
  .ac-btn{flex:1;padding:11px;border-radius:11px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);
    font-family:'Share Tech Mono',monospace;font-weight:700;font-size:11px;letter-spacing:.08em;cursor:pointer;
    transition:transform .08s;}
  .ac-btn:active{transform:scale(.96);}
  .ac-btn.dark{background:var(--ink);color:var(--bg);}
  .ac-btn.hot{background:linear-gradient(180deg,#fdfdfd,#c9c9c9 55%,#9a9a9a);color:#0b0b0b;border-color:#5a5a5a;}
  .ac-actions{flex-wrap:wrap;}
  .ac-close{position:absolute;top:10px;right:12px;z-index:3;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);
    background:var(--card);color:var(--ink);font-size:13px;line-height:27px;text-align:center;cursor:pointer;}
  .ac-back-scroll{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch;}
  .ac-back .ac-name{font-size:17px;}
  .ac-sec{font-family:'Share Tech Mono',monospace;font-size:9px;letter-spacing:.24em;color:var(--muted);
    text-transform:uppercase;margin:13px 0 5px;}
  .ac-bio{font-size:13px;line-height:1.5;color:var(--ink);overflow-wrap:break-word;word-break:break-word;}
  .ac-song{font-family:'Share Tech Mono',monospace;font-size:11px;padding:6px 0;border-bottom:1px dashed var(--line);
    display:flex;justify-content:space-between;gap:8px;}
  .ac-song:last-child{border-bottom:none;}
  .ac-song .n{color:var(--muted);flex:0 0 auto;}
  .ac-links{display:flex;flex-wrap:wrap;gap:6px;}
  .ac-links a{font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--ink);
    text-decoration:none;border:1.5px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--card);}
  .ac-back-foot{padding:10px 16px 14px;border-top:1px solid var(--line);}
  /* playlist preview — compact, above the bottom nav, never covers controls */
  .ac-preview{position:fixed;left:50%;transform:translateX(-50%) translateY(12px);opacity:0;
    bottom:calc(104px + env(safe-area-inset-bottom));width:min(400px,92vw);z-index:120;
    background:var(--card);border:1.6px solid var(--line);border-radius:16px;box-shadow:var(--elev-2);
    display:flex;align-items:center;gap:11px;padding:10px 12px;pointer-events:none;
    transition:opacity .25s ease,transform .25s ease;}
  .ac-preview.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;}
  .ac-preview .pv-av{width:46px;height:46px;border-radius:11px;border:1.5px solid var(--line);flex:0 0 auto;
    background:linear-gradient(145deg,var(--thumb1),var(--thumb2));background-size:cover;background-position:center;}
  .ac-preview .pv-meta{flex:1;min-width:0;}
  .ac-preview .pv-name{font-family:'Oswald',sans-serif;font-weight:700;font-size:14px;letter-spacing:.02em;
    text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .ac-preview .pv-sub{font-family:'Share Tech Mono',monospace;font-size:9.5px;color:var(--muted);letter-spacing:.06em;
    text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
  .ac-preview .pv-go{flex:0 0 auto;font-family:'Share Tech Mono',monospace;font-size:10px;font-weight:700;
    letter-spacing:.06em;border:1.5px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--ink);
    color:var(--bg);cursor:pointer;}
  .ac-preview .pv-bar{position:absolute;left:12px;right:12px;bottom:4px;height:2px;border-radius:2px;
    background:var(--line);opacity:.25;overflow:hidden;}
  .ac-preview .pv-bar i{display:block;height:100%;width:100%;background:var(--ink);transform-origin:left;}
  .ac-preview.show .pv-bar i{animation:acPvTick 4s linear forwards;}
  @keyframes acPvTick{from{transform:scaleX(1)}to{transform:scaleX(0)}}
  .ac-open-btn{display:inline-block;margin:0 4px 14px;padding:9px 14px;border-radius:11px;border:1.5px solid var(--line);
    background:var(--card);color:var(--ink);font-family:'Share Tech Mono',monospace;font-weight:700;font-size:11px;
    letter-spacing:.08em;cursor:pointer;transition:transform .08s;}
  .ac-open-btn:active{transform:scale(.96);}
  @media(prefers-reduced-motion: reduce){
    .ac-inner{transition:none;}
    .ac-overlay.show,.ac-preview{animation:none;transition:opacity .15s;}
    .ac-front::after{display:none;}
    .ac-preview.show .pv-bar i{animation:none;transform:scaleX(0);transition:transform 4s linear;}
  }

  /* ============================================================
     V2 UI POLISH LAYER — same fonts, same design language, 10x feel.
     Transform/opacity only · reduced-motion aware · easily reverted.
     ============================================================ */
  :root{
    --elev-1:0 1px 2px rgba(0,0,0,.05), 0 6px 16px -8px rgba(0,0,0,.14);
    --elev-2:0 2px 6px rgba(0,0,0,.07), 0 18px 40px -18px rgba(0,0,0,.28);
    --chrome:linear-gradient(180deg,#fdfdfd,#cfcfcf 38%,#5f5f5f 52%,#e9e9e9 66%,#9a9a9a);
    --ease-spring:cubic-bezier(.34,1.56,.64,1);
  }
  body.dark-theme{
    --elev-1:0 1px 2px rgba(0,0,0,.4), 0 8px 20px -10px rgba(0,0,0,.6);
    --elev-2:0 2px 8px rgba(0,0,0,.5), 0 22px 48px -20px rgba(0,0,0,.75);
  }
  html{scroll-behavior:smooth;}
  ::selection{background:var(--ink);color:var(--bg);}
  ::-webkit-scrollbar{width:9px;height:9px;}
  ::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px;border:2px solid var(--bg);}
  ::-webkit-scrollbar-track{background:transparent;}

  /* Cards: real elevation + a hairline top-light for that pressed-metal depth */
  .card{box-shadow:var(--elev-1);transition:box-shadow .3s ease, transform .3s var(--ease-spring);}
  .card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
    background:linear-gradient(180deg,rgba(255,255,255,.5),transparent 22%);opacity:.6;mix-blend-mode:overlay;}
  body.dark-theme .card::before{background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 20%);}

  /* Section tags get the chrome treatment on the ON AIR / NOW PLAYING pulse cards */
  .tag{box-shadow:0 3px 10px -3px rgba(0,0,0,.35);}

  /* Staggered entrance for stacked cards when a view becomes active */
  @keyframes cardRise{from{opacity:0;transform:translateY(14px) scale(.985);}to{opacity:1;transform:none;}}
  .view.show > .card{animation:cardRise .5s var(--ease-spring) backwards;}
  .view.show > .card:nth-of-type(1){animation-delay:.02s;}
  .view.show > .card:nth-of-type(2){animation-delay:.08s;}
  .view.show > .card:nth-of-type(3){animation-delay:.14s;}
  .view.show > .card:nth-of-type(4){animation-delay:.20s;}
  .view.show > .card:nth-of-type(n+5){animation-delay:.26s;}

  /* Artist directory cards fade in (no transform — the 3D tilt owns transform) */
  @keyframes adirIn{from{opacity:0;}to{opacity:1;}}
  .adir-card{box-shadow:var(--elev-1);animation:adirIn .45s ease backwards;}
  .adir-card:nth-child(2){animation-delay:.04s;}
  .adir-card:nth-child(3){animation-delay:.08s;}
  .adir-card:nth-child(4){animation-delay:.12s;}
  .adir-card:nth-child(n+5){animation-delay:.16s;}

  /* Chart rows: lift + red accent bar on the playing row */
  .row{transition:background .15s ease, transform .15s ease;border-radius:14px;}
  .row.active{position:relative;box-shadow:var(--elev-1);}
  .row.active::before{content:"";position:absolute;left:5px;top:16%;bottom:16%;width:3px;border-radius:3px;
    background:var(--red);opacity:.85;}
  @media(hover:hover){ .row:hover{transform:translateX(2px);} }

  /* Now Playing artwork: soft glow while the station is live */
  .art{transition:box-shadow .4s ease;}
  .art.has-photo{box-shadow:0 8px 26px -10px rgba(0,0,0,.5);}
  .eq.run ~ * .art, .now .art{will-change:box-shadow;}

  /* Live pulse ring on the play button while playing */
  .playbtn.playing{box-shadow:0 0 0 0 rgba(11,11,11,.001);animation:btnPulse 2.4s ease-out infinite;}
  body.dark-theme .playbtn.playing{animation:btnPulseD 2.4s ease-out infinite;}
  @keyframes btnPulse{0%{box-shadow:0 0 0 0 rgba(20,20,20,.35);}70%{box-shadow:0 0 0 14px rgba(20,20,20,0);}100%{box-shadow:0 0 0 0 rgba(20,20,20,0);}}
  @keyframes btnPulseD{0%{box-shadow:0 0 0 0 rgba(241,240,236,.3);}70%{box-shadow:0 0 0 14px rgba(241,240,236,0);}100%{box-shadow:0 0 0 0 rgba(241,240,236,0);}}

  /* Bottom nav: frosted glass + spring-in active pill */
  .nav{backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);
    background:color-mix(in srgb, var(--card) 82%, transparent);box-shadow:var(--elev-2);
    transition:background .3s ease;}
  .nav a{position:relative;transition:color .2s ease;padding:6px 0;border-radius:14px;min-height:44px;justify-content:center;}
  .nav a svg{transition:stroke .2s ease, transform .3s var(--ease-spring);}
  .nav a:active svg{transform:scale(.82);}
  .nav a.active svg{transform:translateY(-1px) scale(1.08);}
  .nav a.active::after{content:"";position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);
    width:5px;height:5px;border-radius:50%;background:var(--ink);animation:dotIn .3s var(--ease-spring);}
  @keyframes dotIn{from{transform:translateX(-50%) scale(0);}to{transform:translateX(-50%) scale(1);}}

  /* Pills & link-chips: tactile press */
  .sb-pill,.adir-links a,.spot-links a,.bg-opt,.bg-next{transition:transform .12s ease, background .2s ease, color .2s ease, border-color .2s ease;}
  .sb-pill:active,.adir-links a:active,.spot-links a:active{transform:scale(.94);}

  /* Primary chrome buttons (share, CTA) get the logo's metal on press-in */
  .playbtn{transition:transform .18s var(--ease-spring), background .25s ease, border-color .25s ease, box-shadow .3s ease;}

  /* Honor reduced motion everywhere in this layer */
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .view.show > .card,.adir-card,.playbtn.playing{animation:none;}
    .card,.row,.nav a svg{transition:none;}
  }
