:root{
  --bg:#0A1018;
  --paper:#F4F7FB;
  --dim:#7C8CA1;
  --hair:#1D2837;
  --blue:#29A8DF; --plum:#8E2A4E; --magenta:#E11D5F; --amber:#F9B233;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--paper);
  font-family:'Space Grotesk',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.mono{font-family:'IBM Plex Mono',monospace}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.s1{background:var(--blue)}.s2{background:var(--plum)}.s3{background:var(--magenta)}.s4{background:var(--amber)}

/* ============ HEADER ============ */
.hdr{
  position:relative;z-index:5;
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 26px;
}
.hdr .brand{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.18em;line-height:1.8;color:var(--paper);text-decoration:none}
.hdr .brand .est{color:var(--dim)}
.stripe{display:flex;width:148px;height:4px;margin-top:7px}
.stripe span{flex:1}
nav{display:flex;gap:28px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.2em}
nav a{color:var(--dim);text-decoration:none;padding:6px 0;transition:color .15s}
nav a:hover{color:var(--paper)}
nav a.on{color:var(--paper);border-bottom:2px solid var(--magenta)}
nav .livedot{color:var(--magenta);animation:blink 1.4s steps(2,start) infinite}
@keyframes blink{to{visibility:hidden}}
@media(max-width:560px){
  .hdr{flex-direction:column;gap:14px;align-items:flex-start}
}

/* ============ TICKER ============ */
.ticker{
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  overflow:hidden;white-space:nowrap;background:var(--bg);
}
.ticker .belt{display:inline-block;padding:13px 0;
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.22em;
  animation:belt 26s linear infinite}
.ticker b{font-weight:600}
.ticker .d1{color:var(--blue)} .ticker .d2{color:var(--magenta)} .ticker .d3{color:var(--amber)}
@keyframes belt{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============ LAYOUT ============ */
section{border-bottom:1px solid var(--hair)}
.inner{max-width:1080px;margin:0 auto;padding:0 26px}
.seclabel{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.26em;
  color:var(--dim);padding-top:34px;
}

/* big slab button */
.bigbtn{
  display:flex;align-items:center;justify-content:center;gap:14px;
  width:100%;padding:24px;cursor:pointer;
  background:var(--paper);color:var(--bg);border:0;
  font-family:'Anton',sans-serif;font-size:clamp(19px,2.6vw,26px);
  letter-spacing:.09em;text-transform:uppercase;text-decoration:none;
  transition:background .18s,color .18s;
}
.bigbtn:hover{background:var(--magenta);color:var(--paper)}
.bigbtn:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* ============ NOW PLAYING (live page) ============ */
.np{display:grid;grid-template-columns:190px 1fr;gap:34px;padding:26px 0 44px}
@media(max-width:760px){.np{grid-template-columns:1fr;gap:18px}}
.np .meta{font-family:'IBM Plex Mono',monospace;font-size:12px;line-height:2.1;color:var(--dim)}
.np .meta b{color:var(--paper);font-weight:600}
.np .tc{font-size:30px;color:var(--paper);font-weight:600;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.np h2{
  font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;
  font-size:clamp(52px,8.4vw,110px);line-height:.94;letter-spacing:.005em;
}
.np .artist{font-size:clamp(17px,2.2vw,22px);color:var(--dim);margin-top:10px}
.artist a{color:inherit;text-decoration:none;border-bottom:1px dotted #46586F;
  transition:color .15s,border-color .15s}
.artist a:hover{color:var(--paper);border-color:var(--paper)}
.artist a::after{content:" ↗";font-size:.72em;color:#46586F}
.tags{display:flex;gap:26px;margin-top:20px;flex-wrap:wrap}
.tag{display:flex;align-items:center;gap:9px;
  font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.18em;color:var(--dim)}
.tag i{width:10px;height:10px;flex:none}
.prog{margin-top:30px}
.prog .line{position:relative;height:2px;background:var(--hair)}
.prog .line i{position:absolute;inset:0 auto 0 0;width:38%;background:var(--paper)}
.prog .line em{position:absolute;top:-3px;left:38%;width:8px;height:8px;background:var(--paper);border-radius:50%}
.prog .t{display:flex;justify-content:space-between;margin-top:9px;
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;color:var(--dim);
  font-variant-numeric:tabular-nums}
.joinwrap{padding:0 0 40px}
.joinnote{margin-top:12px;font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.16em;color:var(--dim);text-align:center}

/* your submission strip */
.mine{display:flex;align-items:center;gap:18px;padding:22px 0;flex-wrap:wrap}
.mine .dot{width:10px;height:10px;background:var(--amber);flex:none;
  animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.mine .mono{font-size:12px;letter-spacing:.16em;color:var(--dim)}
.mine b{color:var(--paper);font-weight:600}

/* ============ SUBMIT PAGE ============ */
.rules{
  font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:clamp(30px,5.6vw,64px);line-height:1.04;letter-spacing:.01em;
  padding:26px 0 8px;
}
.rules .no{-webkit-text-stroke:1.5px var(--paper);color:transparent}
.retain{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.16em;
  color:var(--dim);padding-bottom:34px}
form{padding-bottom:60px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:40px}
@media(max-width:700px){.frow{grid-template-columns:1fr;gap:0}}
.field{margin-top:34px}
label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;
  letter-spacing:.24em;color:var(--dim);margin-bottom:10px}
input[type=text],input[type=email],input[type=tel]{
  width:100%;background:none;border:0;border-bottom:1px solid #2B3A4E;
  color:var(--paper);font-family:'Space Grotesk';font-size:22px;font-weight:500;
  padding:8px 0 12px;outline:none;border-radius:0;
}
input[type=text]::placeholder,input[type=email]::placeholder,input[type=tel]::placeholder{color:#3D4E64}
input[type=text]:focus,input[type=email]:focus,input[type=tel]:focus{border-color:var(--paper)}
.drop{
  border:1px dashed #33445B;padding:34px;text-align:center;cursor:pointer;
  font-size:16px;color:var(--dim);transition:border-color .15s;
}
.drop:hover{border-color:var(--paper)}
.drop b{color:var(--paper);font-weight:500}
.drop .mono{display:block;margin-top:8px;font-size:11px;letter-spacing:.16em}
.opts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:700px){.opts{grid-template-columns:repeat(2,1fr)}}
.opt{
  border:1px solid #2B3A4E;border-left-width:4px;
  padding:16px 12px;cursor:pointer;user-select:none;
  font-size:14.5px;font-weight:500;color:var(--dim);
  transition:background .15s,color .15s,border-color .15s;
}
.opt:hover{color:var(--paper)}
.opt.c1{border-left-color:var(--blue)}
.opt.c2{border-left-color:var(--plum)}
.opt.c3{border-left-color:var(--magenta)}
.opt.c4{border-left-color:var(--amber)}
.opt.on.c1{background:rgba(41,168,223,.13);color:var(--blue);border-color:var(--blue)}
.opt.on.c2{background:rgba(142,42,78,.18);color:#D4728F;border-color:var(--plum)}
.opt.on.c3{background:rgba(225,29,95,.13);color:var(--magenta);border-color:var(--magenta)}
.opt.on.c4{background:rgba(249,178,51,.13);color:var(--amber);border-color:var(--amber)}
.sendwrap{margin-top:44px}

/* classic logo lockup (submit page) */
.logo{max-width:640px;margin:22px auto 6px;text-align:center}
.limg{display:block;width:100%;height:auto}
.lsub{
  margin-top:2px;font-family:'Anton',sans-serif;color:var(--paper);
  font-size:clamp(20px,3.4vw,30px);letter-spacing:.28em;text-indent:.28em;
  text-transform:uppercase;
}
.drop.over{border-color:var(--blue);color:var(--paper)}
.drop.ready{border-style:solid;border-color:var(--amber)}

/* ============ MODAL ============ */
.modal[hidden]{display:none}
.modal{
  position:fixed;inset:0;z-index:20;
  background:rgba(6,10,16,.82);
  display:flex;align-items:center;justify-content:center;padding:26px;
}
.modal .panel{
  background:var(--bg);border:1px solid #2B3A4E;border-top:4px solid var(--magenta);
  max-width:480px;width:100%;padding:34px;
}
.modal .mhead{
  font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:clamp(26px,4.6vw,40px);line-height:1;margin-bottom:14px;
}
.modal p{color:var(--dim);font-size:15.5px;line-height:1.55;margin-bottom:26px}
.mrow{display:flex;gap:12px;flex-wrap:wrap}
.mrow .bigbtn{width:auto;flex:1;padding:16px 22px;font-size:17px}
.ghost{
  flex:none;background:none;border:1px solid #2B3A4E;color:var(--dim);
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.16em;
  padding:16px 22px;cursor:pointer;transition:color .15s,border-color .15s;
}
.ghost:hover{color:var(--paper);border-color:var(--paper)}

/* ============ FOOTER ============ */
footer{
  padding:30px 26px 40px;text-align:center;
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.18em;
  color:#46586F;line-height:2.2;
}
footer a{color:#7C8CA1;text-decoration:underline;text-underline-offset:3px}
footer a:hover{color:var(--paper)}
.stripe.footer{width:120px;margin:0 auto 18px}

/* ============ MOBILE TUNING ============ */
@media(max-width:760px){
  /* song title first; meta condenses to one wrapped line below it */
  .np .meta{order:2;display:flex;flex-wrap:wrap;align-items:baseline;
    column-gap:14px;row-gap:4px;line-height:1.6;margin-top:18px}
  .np>div:last-child{order:1}
  .np .meta br{display:none}
  .np .tc{font-size:20px}
  .prog .t{flex-direction:column;align-items:flex-start;gap:3px}
}
@media(max-width:560px){
  .hdr{gap:10px}
  footer{letter-spacing:.12em}
  .bigbtn{padding:19px}
}

@media (prefers-reduced-motion:reduce){
  .ticker .belt,.mine .dot,nav .livedot{animation:none}
}
