:root{
  --bg:#0a0a10; --bg2:#12121c; --card:#171724; --card2:#1e1e2e;
  --ink:#f5f2ec; --dim:#a7a3b8; --faint:#6d6a82;
  --coral:#ff4d5e; --pink:#ff2e7e; --gold:#f5c542;
  --grad:linear-gradient(92deg,var(--coral),var(--pink) 55%,#ff8a3d);
  --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;line-height:1.45;overflow-x:hidden}
a{color:inherit}
button{font-family:inherit;cursor:pointer}
input,textarea,select{font-family:inherit}

/* ---------- top bar ---------- */
#topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;background:rgba(10,10,16,.88);backdrop-filter:blur(10px);border-bottom:1px solid #23232f}
.wordmark{display:inline-flex;align-items:center;gap:10px;font-family:'Archivo Black',system-ui,sans-serif;font-size:26px;letter-spacing:.06em;text-decoration:none;color:var(--ink)}
.wordmark-icon{height:36px;width:auto;display:block;flex:none}
.wordmark .wm-text>span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
#mainnav{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
#mainnav a,#mainnav button{background:none;border:0;color:var(--dim);text-decoration:none;font-weight:700;font-size:14px;padding:8px 10px;border-radius:999px}
#mainnav a:hover,#mainnav button:hover{color:var(--ink);background:#1d1d2b}
#mainnav a.cta{background:var(--grad);color:#fff}
#mainnav a.cta:hover{filter:brightness(1.1);color:#fff}

/* ---------- layout ---------- */
#app{max-width:1060px;margin:0 auto;padding:0 18px 70px;min-height:70vh}
.loading{padding:80px 0;text-align:center;color:var(--dim);font-weight:600}
#sitefoot{border-top:1px solid #23232f;padding:28px 18px 40px;text-align:center;color:var(--faint);font-size:13px}
.foot-word{font-family:'Archivo Black',system-ui,sans-serif;font-size:20px;letter-spacing:.06em;color:var(--dim);margin-bottom:6px}
.foot-word span{color:var(--coral)}

/* ---------- hero ---------- */
.hero{padding:64px 0 30px;text-align:left;position:relative}
.hero-logo{display:block;width:min(400px,80vw);height:auto;border-radius:18px;margin-bottom:28px;background:#101014;padding:14px 16px;box-sizing:content-box}
.hero .kicker{display:inline-block;font-weight:800;letter-spacing:.22em;font-size:12px;color:var(--gold);text-transform:uppercase;border:1px solid #3a3421;padding:7px 12px;border-radius:999px;margin-bottom:22px;background:#171408}
.hero h1{font-family:'Archivo Black',system-ui,sans-serif;font-size:clamp(44px,9.5vw,96px);line-height:.98;letter-spacing:.01em;text-transform:uppercase}
.hero h1 .grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.sub{margin:22px 0 6px;font-size:clamp(17px,2.6vw,21px);color:var(--dim);max-width:640px}
.hero p.sub b{color:var(--ink)}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-block;border:0;border-radius:999px;padding:15px 28px;font-weight:800;font-size:16px;text-decoration:none;text-align:center}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 8px 28px rgba(255,46,126,.35)}
.btn-primary:hover{filter:brightness(1.1)}
.btn-ghost{background:#1b1b2a;color:var(--ink);border:1px solid #2e2e42}
.btn-ghost:hover{background:#23233a}
.btn-small{padding:10px 18px;font-size:14px}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
.hero-stats{display:flex;gap:26px;flex-wrap:wrap;margin-top:38px}
.hero-stats div b{display:block;font-family:'Archivo Black',system-ui,sans-serif;font-size:26px;color:var(--ink);white-space:nowrap}
.hero-stats div span{font-size:12.5px;color:var(--faint);font-weight:600;text-transform:uppercase;letter-spacing:.08em}

/* ---------- generic ---------- */
.section{margin-top:44px}
.section h2{font-family:'Archivo Black',system-ui,sans-serif;font-size:clamp(24px,4.5vw,34px);text-transform:uppercase;letter-spacing:.01em;margin-bottom:8px}
.section .lede{color:var(--dim);max-width:660px}
.card{background:var(--card);border:1px solid #262636;border-radius:var(--radius);padding:22px}
.grid{display:grid;gap:16px}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.step-num{font-family:'Archivo Black',system-ui,sans-serif;font-size:34px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.card h3{font-size:18px;margin:8px 0 6px}
.card p{color:var(--dim);font-size:14.5px}
.pill{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:#26263a;color:var(--dim)}
.pill.core{background:#3a1420;color:#ff8fa0}
.pill.bonus{background:#2c2410;color:var(--gold)}
.pill.sample{background:#12303a;color:#7fd7ea}
.pill.done{background:#123324;color:#6fe3a1}
.notice{background:#1a1408;border:1px solid #4a3a14;color:#f3d489;border-radius:12px;padding:14px 16px;font-size:14.5px}
.err{background:#2a1016;border:1px solid #5c1f2c;color:#ff9dab;border-radius:12px;padding:12px 16px;font-size:14.5px;margin-bottom:16px}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:#23233a;border:1px solid #3a3a58;color:var(--ink);padding:12px 20px;border-radius:999px;font-weight:700;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:99;max-width:92vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- forms ---------- */
.formwrap{max-width:520px;margin:40px auto 0}
.formwrap h2{font-family:'Archivo Black',system-ui,sans-serif;font-size:32px;text-transform:uppercase;margin-bottom:6px}
.formwrap .lede{color:var(--dim);margin-bottom:22px}
.field{margin-bottom:16px}
.field label{display:block;font-weight:700;font-size:13.5px;margin-bottom:6px;color:var(--dim)}
.field input,.field textarea{width:100%;background:var(--bg2);border:1px solid #2c2c40;border-radius:12px;padding:13px 14px;color:var(--ink);font-size:16px}
.field input:focus,.field textarea:focus{outline:2px solid var(--pink);border-color:transparent}
.switchrow{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--bg2);border:1px solid #2c2c40;border-radius:12px;padding:14px 16px;margin-bottom:16px}
.switchrow .t b{display:block;font-size:15px}
.switchrow .t span{font-size:13px;color:var(--dim)}
.switch{position:relative;width:52px;height:30px;flex:none}
.switch input{opacity:0;width:100%;height:100%;position:absolute;margin:0;cursor:pointer}
.switch .tr{position:absolute;inset:0;background:#2c2c40;border-radius:999px;transition:.2s;pointer-events:none}
.switch .tr::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#8b88a0;transition:.2s}
.switch input:checked + .tr{background:var(--pink)}
.switch input:checked + .tr::after{left:25px;background:#fff}
.formalt{margin-top:16px;text-align:center;color:var(--dim);font-size:14px}
.formalt a{color:var(--gold);font-weight:700}

/* ---------- meter ---------- */
.meter{background:#26263a;border-radius:999px;height:14px;overflow:hidden}
.meter i{display:block;height:100%;background:var(--grad);border-radius:999px;transition:width .4s}
.meterrow{display:flex;align-items:center;gap:14px}
.meterrow .pct{font-family:'Archivo Black',system-ui,sans-serif;font-size:24px;color:var(--gold);white-space:nowrap}

/* ---------- year list ---------- */
.yeargrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;margin-top:16px}
.yearcell{display:block;text-decoration:none;background:var(--card);border:1px solid #262636;border-radius:14px;padding:12px 10px;text-align:center}
.yearcell:hover{border-color:var(--pink)}
.yearcell .y{font-family:'Archivo Black',system-ui,sans-serif;font-size:21px}
.yearcell .n{font-size:12px;color:var(--dim);font-weight:700;margin-top:2px}
.yearcell.is-done{border-color:#1f5c38;background:#101d15}
.yearcell.is-skipped{opacity:.55}

/* ---------- picker ---------- */
.pickhead{position:sticky;top:57px;z-index:40;background:rgba(10,10,16,.92);backdrop-filter:blur(10px);padding:14px 0 12px;border-bottom:1px solid #23232f}
.pickhead h2{font-family:'Archivo Black',system-ui,sans-serif;font-size:30px}
.pickhead .meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px}
.countbadge{font-weight:800;font-size:14px;background:#26263a;border-radius:999px;padding:5px 12px}
.countbadge.full{background:var(--pink);color:#fff}
.searchrow{margin:16px 0 6px}
.searchrow input{width:100%;background:var(--bg2);border:1px solid #2c2c40;border-radius:12px;padding:13px 14px;color:var(--ink);font-size:16px}
.songrow{display:flex;align-items:center;gap:12px;padding:14px 12px;border-radius:12px;cursor:pointer;border:1px solid transparent;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.songrow:hover{background:#15151f}
.songrow.picked{background:#22101c;border-color:#5c1f3c}
.songrow .rk{font-family:'Archivo Black',system-ui,sans-serif;font-size:17px;color:var(--faint);width:38px;text-align:right;flex:none}
.songrow.picked .rk{color:var(--gold)}
.songrow .tt{flex:1;min-width:0}
.songrow .tt b{display:block;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.songrow .tt span{display:block;font-size:13px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.songrow .acts{display:flex;gap:8px;align-items:center;flex:none}
.playbtn{width:40px;height:40px;border-radius:50%;border:1px solid #3a3a58;background:#1b1b2a;color:var(--ink);font-size:15px;display:flex;align-items:center;justify-content:center;flex:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.playbtn:hover{border-color:var(--pink)}
.playbtn.playing{background:var(--grad);border-color:transparent;color:#fff}
.prevslot{display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;flex:none}
.playbtn.loading{opacity:.45;animation:prevpulse .9s ease-in-out infinite;pointer-events:none}
.playbtn.primed{border-color:var(--pink);background:rgba(255,46,126,.22);color:#fff;animation:prevpulse .9s ease-in-out infinite}
@keyframes prevpulse{0%,100%{transform:scale(1)}50%{transform:scale(.84)}}
.noprev{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.amz{font-size:11px;font-weight:800;letter-spacing:.03em;color:var(--gold);text-decoration:none;border:1px solid #4a3a14;padding:7px 8px;border-radius:8px;white-space:nowrap}
.amz:hover{background:#241c08}
.pickcheck{width:56px;height:56px;border-radius:50%;border:3px solid #3a3a58;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;font-weight:900;position:relative}
.pickcheck::after{content:"";position:absolute;inset:-6px;border-radius:50%} /* hit area ≈68px — easy thumb target */
.songrow.picked .pickcheck{background:var(--pink);border-color:var(--pink)}
.pickfoot{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}

/* ---------- soundtrack ---------- */
.summarycard{background:var(--grad);border-radius:20px;padding:26px;color:#fff;position:relative;overflow:hidden}
.summarycard .sc-word{font-family:'Archivo Black',system-ui,sans-serif;letter-spacing:.06em;font-size:15px;opacity:.85}
.summarycard h3{font-family:'Archivo Black',system-ui,sans-serif;font-size:clamp(26px,6vw,40px);text-transform:uppercase;line-height:1.05;margin:8px 0}
.summarycard p{font-weight:600;opacity:.92}
.summarycard .sc-stats{display:flex;gap:24px;margin-top:16px;flex-wrap:wrap}
.summarycard .sc-stats b{display:block;font-size:24px;font-family:'Archivo Black',system-ui,sans-serif}
.summarycard .sc-stats span{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;opacity:.85}
.yeartable{margin-top:14px}
.yeartable h4{font-family:'Archivo Black',system-ui,sans-serif;font-size:19px;margin:20px 0 4px}
.yeartable h4 span{color:var(--faint);font-size:13px;font-family:'Inter',sans-serif;font-weight:700;margin-left:8px}
.yeartable ul{list-style:none}
.yeartable li{padding:5px 0;border-bottom:1px solid #1d1d2a;font-size:14.5px;color:var(--dim)}
.yeartable li b{color:var(--ink)}
.yeartable li .r{color:var(--gold);font-weight:800;margin-right:8px;font-size:12.5px}

/* ---------- matches ---------- */
.matchcard{display:flex;gap:18px;align-items:flex-start}
.score{flex:none;width:92px;text-align:center}
.score .n{font-family:'Archivo Black',system-ui,sans-serif;font-size:40px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.score .l{font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--faint);text-transform:uppercase;margin-top:4px}
.matchcard .who{flex:1;min-width:0}
.matchcard .who h3{font-size:19px;margin-bottom:2px}
.matchcard .who .meta{color:var(--dim);font-size:13.5px;margin-bottom:8px}
.sharedlist{list-style:none;margin-top:6px}
.sharedlist li{font-size:14px;color:var(--dim);padding:3px 0}
.sharedlist li b{color:var(--ink)}
.sharedlist li .r{color:var(--gold);font-weight:800;font-size:12px;margin-right:6px}
.why{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-top:10px}
@media (max-width:560px){
  .matchcard{flex-direction:column}
  .score{width:auto;text-align:left}
  .hero{padding-top:44px}
  .pickhead{position:static}
  .amz{display:none}
  .songrow{gap:10px;padding:15px 8px}
  .wordmark{font-size:20px}
  .wordmark-icon{height:30px;width:auto}
  #topbar{padding:10px 12px}
  #mainnav a,#mainnav button{font-size:12.5px;padding:6px 7px}
}

/* ---------- avatars + dating profile ---------- */
.avatar{border-radius:50%;object-fit:cover;flex:none;background:#26263a}
.avatar-init{display:flex;align-items:center;justify-content:center;font-family:'Archivo Black',system-ui,sans-serif;color:#fff;letter-spacing:.02em}
.avatar-init.g0{background:linear-gradient(135deg,#ff4d5e,#ff2e7e)}
.avatar-init.g1{background:linear-gradient(135deg,#f5c542,#ff8a3d)}
.avatar-init.g2{background:linear-gradient(135deg,#2ec4e6,#2e7eff)}
.avatar-init.g3{background:linear-gradient(135deg,#9b5cff,#ff2e7e)}
.photorow{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
select{font-family:inherit}

/* ---------- flagship polish pass ---------- */
:root{color-scheme:dark}
body{background:
  radial-gradient(720px 420px at 12% -8%, rgba(255,46,126,.20), transparent 60%),
  radial-gradient(680px 420px at 88% -10%, rgba(245,197,66,.13), transparent 60%),
  radial-gradient(900px 600px at 50% 115%, rgba(46,126,255,.10), transparent 60%),
  var(--bg);
  background-attachment:fixed}
::selection{background:var(--pink);color:#fff}
.card{transition:transform .18s ease,border-color .18s ease}
.card:hover{transform:translateY(-2px);border-color:#34344c}
.yearcell{transition:transform .15s ease,border-color .15s ease}
.yearcell:hover{transform:translateY(-2px)}
.btn:active{transform:scale(.98)}
.btn-primary{transition:filter .15s ease,transform .1s ease}
.playbtn.playing{animation:pulse-ring 1.4s ease-out infinite}
@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(255,46,126,.55)}100%{box-shadow:0 0 0 12px rgba(255,46,126,0)}}
.songrow .tt b{letter-spacing:.01em}
input[type="date"]{color-scheme:dark}

/* ---------- #1-hits ticker ---------- */
.ticker{overflow:hidden;border-top:1px solid #23232f;border-bottom:1px solid #23232f;padding:13px 0;margin-top:44px;background:rgba(18,18,28,.6)}
.ticker-in{display:inline-flex;gap:22px;white-space:nowrap;font-family:'Archivo Black',system-ui,sans-serif;font-size:14.5px;letter-spacing:.05em;color:var(--dim);animation:tick 55s linear infinite;will-change:transform}
.ticker-in i{color:var(--gold);font-style:normal;font-size:10px;align-self:center}
.ticker-in span b{color:var(--ink)}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- flow rail ---------- */
.flowrail{display:flex;align-items:center;gap:10px;margin:34px 0 6px;flex-wrap:nowrap}
.fr-step{display:flex;align-items:center;gap:9px;flex:none}
.fr-n{width:30px;height:30px;border-radius:50%;border:2px solid #3a3a58;color:var(--dim);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13.5px;flex:none}
.fr-l{font-weight:700;font-size:13.5px;color:var(--dim);white-space:nowrap}
.fr-step.on .fr-n{border-color:transparent;background:var(--grad);color:#fff;box-shadow:0 4px 16px rgba(255,46,126,.4)}
.fr-step.on .fr-l{color:var(--ink)}
.fr-step.done .fr-n{border-color:#1f5c38;background:#123324;color:#6fe3a1}
.fr-step.done .fr-l{color:var(--dim)}
.fr-line{flex:1;height:2px;background:#26263a;border-radius:2px;min-width:12px}
@media (max-width:560px){.fr-step .fr-l{display:none}.fr-step.on .fr-l{display:inline;font-size:12px}.fr-n{width:25px;height:25px;font-size:12px}.flowrail{gap:6px}}
