/* ===========================================================
   Self-hosted variable fonts (Inter, Montserrat)
   =========================================================== */
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('../fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('../fonts/inter-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Montserrat';
  font-style:normal;
  font-weight:600 800;
  font-display:swap;
  src:url('../fonts/montserrat-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Montserrat';
  font-style:normal;
  font-weight:600 800;
  font-display:swap;
  src:url('../fonts/montserrat-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===========================================================
   QUEER UNO — Design System (light theme)
   =========================================================== */

:root{
  --blue: #4f6bff;
  --violet: #9b5cf6;
  --pink: #ff4fc6;
  --link: #7c3aed;
  --gradient: linear-gradient(120deg, var(--blue) 0%, var(--violet) 50%, var(--pink) 100%);
  --gradient-soft: linear-gradient(120deg, rgba(79,107,255,.12) 0%, rgba(155,92,246,.12) 50%, rgba(255,79,198,.12) 100%);

  --bg: #fdfcff;
  --bg-elev: #f5f2fb;
  --surface: #ffffff;
  --surface-2: #faf8ff;
  --border: rgba(30,15,60,.08);
  --border-strong: rgba(30,15,60,.14);

  --text: #1c1330;
  --text-muted: #5e5670;
  --text-dim: #6a6280;

  --radius-sm: 10px;
  --radius: 18px;
  --radius-lg: 28px;
  --radius-full: 999px;

  --shadow-glow: 0 0 0 1px rgba(30,15,60,.04), 0 24px 60px -20px rgba(155,92,246,.28);
  --shadow-card: 0 14px 34px -18px rgba(40,20,70,.22);

  --container: 1180px;
  --ease: cubic-bezier(.22,1,.36,1);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }

/* ---------- Accessibility: focus & skip link ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, .player-btn:focus-visible{
  outline: 2px solid var(--violet);
  outline-offset: 3px;
  border-radius: 6px;
}
.skip-link{
  position: fixed;
  top: -60px; left: 16px;
  z-index: 3000;
  background: var(--text);
  color: #fff;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:.85rem;
  padding: 12px 20px;
  border-radius: var(--radius-full);
  transition: top .25s var(--ease);
}
.skip-link:focus{ top: 16px; }
body{
  margin:0;
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
  overflow-x: hidden;
}

h1,h2,h3,h4{
  font-family: 'Montserrat', 'Inter', sans-serif;
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -.02em;
  margin: 0 0 .5em;
  color: var(--text);
}
h1{ font-size: clamp(2.2rem, 5.5vw, 4.4rem); }
h2{ font-size: clamp(1.7rem, 3.6vw, 2.7rem); }
h3{ font-size: 1.25rem; }
p{ margin:0 0 1em; color: var(--text-muted); }
a{ color: inherit; text-decoration: none; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }

.gradient-text{
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  background-size: 200% auto;
  animation: gradient-shift 6s ease-in-out infinite;
}
@keyframes gradient-shift{
  0%,100%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
}

.container{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
  position: relative;
}

.section{ padding: 100px 0; position: relative; }
.section-sm{ padding: 60px 0; }
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: #c026a3;
  background: rgba(255,79,198,.1);
  border:1px solid rgba(255,79,198,.22);
  padding: 6px 14px;
  border-radius: var(--radius-full);
  margin-bottom: 18px;
}
.section-head{ max-width: 680px; margin-bottom: 56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.01em;
  padding: 15px 30px;
  border-radius: var(--radius-full);
  border:1px solid transparent;
  cursor:pointer;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), opacity .35s var(--ease), background .35s var(--ease);
  white-space: nowrap;
  position: relative;
}
.btn-primary{
  background: var(--gradient);
  background-size: 180% auto;
  background-position: 0% 50%;
  color:#fff;
  box-shadow: 0 12px 28px -10px rgba(155,92,246,.55);
}
.btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 18px 36px -12px rgba(255,79,198,.55); background-position: 100% 50%; }
.btn-outline{
  background: rgba(30,15,60,.03);
  color: var(--text);
  border-color: var(--border-strong);
}
.btn-outline:hover{ background: rgba(30,15,60,.07); transform: translateY(-2px); }
.btn-block{ width:100%; }
.btn-sm{ padding: 10px 20px; font-size:.85rem; }

/* ---------- Page progress bar (pjax navigation) ---------- */
.page-progress{
  position: fixed; top:0; left:0; height:3px; width:0%;
  background: var(--gradient); z-index: 2000;
  opacity:0; transition: width .3s var(--ease), opacity .3s var(--ease);
  pointer-events:none;
}
.page-progress.loading{ opacity:1; }
.page-progress.done{ width:100% !important; opacity:0; transition: width .2s var(--ease), opacity .4s ease .15s; }

/* ---------- Header ---------- */
.site-header{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 1000;
  transition: box-shadow .4s var(--ease), background .4s var(--ease);
  background: rgba(253,252,255,.7);
  backdrop-filter: blur(14px);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 20px;
  padding-top: 18px;
  padding-bottom: 18px;
  transition: padding .4s var(--ease);
}
.site-header.scrolled{
  background: rgba(253,252,255,.92);
  box-shadow: 0 1px 0 var(--border), 0 20px 40px -30px rgba(40,20,70,.25);
}
.site-header.scrolled .container{ padding-top: 12px; padding-bottom: 12px; }
.brand{ display:flex; align-items:center; }

/* ---------- Wordmark logo: "queer.uno" with a soft color-cycling dot ---------- */
.brand-word{
  font-family:'Montserrat',sans-serif;
  font-weight:800;
  font-size: 1.5rem;
  letter-spacing: -.01em;
  color: var(--text);
  line-height: 1;
  white-space: nowrap;
}
.brand-dot{
  display:inline-block;
  animation: dot-color-cycle 7s ease-in-out infinite;
}
@keyframes dot-color-cycle{
  0%, 100%{ color: var(--pink); }
  34%{ color: var(--violet); }
  67%{ color: var(--blue); }
}
@media (prefers-reduced-motion: reduce){
  .brand-dot{ animation: none; color: var(--pink); }
}

/* ---------- Submit Music conversion flow ---------- */
.submit-page main{display:flex;flex-direction:column}
.submit-page main>.hero{order:1}
.submit-page main>.submit-flow-strip{order:2}
.submit-page main>#pricing{order:3}
.submit-page main>.submission-section{order:4}
.submit-page main>.section:not(#pricing):not(.submission-section){order:5}

.submit-page .hero{padding-bottom:72px!important}
.submit-page .hero-inner{max-width:740px}
.submit-page .hero h1{max-width:720px}
.submit-page .hero-tagline{max-width:680px;font-size:1.08rem;line-height:1.72;margin-bottom:28px}
.submit-hero-proof{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.submit-hero-proof span{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(116,84,205,.18);border-radius:999px;background:rgba(255,255,255,.72);box-shadow:0 8px 24px rgba(54,31,96,.06);font-size:.82rem;font-weight:700;color:var(--text-muted);backdrop-filter:blur(10px)}
.submit-hero-proof svg{width:17px;height:17px;color:var(--violet);flex:none}

.submit-flow-strip{padding:0 0 34px;background:linear-gradient(180deg,transparent,#fff)}
.submit-flow-strip ol{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);max-width:940px;margin:-24px auto 0;padding:0;list-style:none;border:1px solid var(--border);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 22px 55px rgba(43,22,82,.1);overflow:hidden}
.submit-flow-strip li{display:grid;grid-template-columns:42px 1fr;column-gap:12px;align-items:center;padding:20px 22px}
.submit-flow-strip li+li{border-left:1px solid var(--border)}
.submit-flow-strip .flow-num{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--gradient);color:#fff;font-family:'Montserrat',sans-serif;font-weight:800;box-shadow:0 8px 20px rgba(123,79,225,.25)}
.submit-flow-strip strong{font-family:'Montserrat',sans-serif;font-size:.9rem;color:var(--text)}
.submit-flow-strip small{margin-top:3px;font-size:.76rem;line-height:1.35;color:var(--text-dim)}

.submit-page #pricing{padding:74px 0 62px!important;background:linear-gradient(180deg,#fff 0,#f8f5ff 52%,#fff 100%)}
.submit-page #pricing .section-head{max-width:780px;margin-bottom:34px}
.submit-page .pricing-grid{gap:18px;max-width:1160px;margin:0 auto}
.submit-page .pricing-card{min-height:100%;padding:28px 26px 24px;border:1px solid #e1dbea;border-radius:22px;background:rgba(255,255,255,.95);box-shadow:0 14px 36px rgba(42,24,76,.07);cursor:pointer;overflow:hidden}
.submit-page .pricing-card::before{content:"";position:absolute;top:24px;right:24px;width:20px;height:20px;border:2px solid #cfc5df;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 5px #fff;transition:.2s ease}
.submit-page .pricing-card:hover{transform:translateY(-5px);border-color:#cfc0ee;box-shadow:0 22px 46px rgba(67,35,122,.12)}
.submit-page .pricing-card:focus-visible{outline:3px solid rgba(131,88,239,.3);outline-offset:4px}
.submit-page .pricing-card.selected{transform:translateY(-7px);border:2px solid #8358ef;background:linear-gradient(180deg,#fff 0,#fbf8ff 100%);box-shadow:0 26px 60px rgba(109,69,202,.19)}
.submit-page .pricing-card.selected::before{border-color:#7653df;background:#7653df}
.submit-page .pricing-card .tier-name{font-size:1.2rem;padding-right:38px}
.submit-page .pricing-card .tier-price{font-size:2.75rem;letter-spacing:-1.6px;margin:12px 0 4px}
.submit-page .pricing-card .tier-tagline{min-height:3.8em;margin-bottom:22px;line-height:1.5}
.submit-page .pricing-card li{font-size:.88rem;line-height:1.45}
.submit-page .pricing-card .popular-tag{top:16px;right:auto;left:24px;transform:none;border-radius:999px;padding:7px 13px;background:var(--gradient);color:#fff;line-height:1;white-space:nowrap}
.submit-page .pricing-card[data-tier-card="pro"]{padding-top:58px}
.tier-choose{display:flex;align-items:center;justify-content:center;margin-top:24px;min-height:44px;border:1px solid #d8cee9;border-radius:999px;color:#6841bb;font-family:'Montserrat',sans-serif;font-size:.84rem;font-weight:800;transition:.2s ease}
.pricing-card.selected .tier-choose{border-color:transparent;background:var(--gradient);color:#fff;box-shadow:0 9px 22px rgba(111,72,207,.25)}
.pricing-card.selected .tier-choose::before{content:"✓";margin-right:7px}
.submit-page .pricing-note{max-width:820px;margin-top:24px;padding:14px 18px;border-radius:14px;background:#f7f4fb}

.submission-section{padding:72px 0 84px!important}
.submission-section .section-head{max-width:760px;margin-bottom:34px}
.submission-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);gap:24px;align-items:start;max-width:1040px;margin:0 auto}
.submission-main{min-width:0}
.submission-main .field-note{margin:0 0 16px}
.submit-page .qform{max-width:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:30px;border-radius:22px;box-shadow:0 18px 48px rgba(44,25,78,.1)}
.submit-page .qform .fgroup{margin:0}
.submit-page .qform .fgroup-wide,.submit-page .qform .form-error,.submit-page .qform .fcheck,.submit-page .qform button[type=submit],.submit-page .qform .pay-line,.submit-page .qform .pay-badges{grid-column:1/-1}
.submit-page .qform input[type=text],.submit-page .qform input[type=email],.submit-page .qform input[type=url]{min-height:50px;background:#fff}
.submit-page .qform .fcheck{margin:0;padding:15px 16px;border:1px solid var(--border);border-radius:13px;background:#faf8fd}
.submit-page .qform button[type=submit]{min-height:54px;margin-top:2px;font-size:1rem;box-shadow:0 14px 30px rgba(111,72,207,.3)}
.submit-page .qform .pay-line{margin:0}
.submit-page .qform .pay-badges{margin:0}
#qu-checkout{padding:18px;border:1px solid var(--border);border-radius:22px;background:#fff;box-shadow:var(--shadow-card)}

.order-summary{position:sticky;top:118px;border:1px solid #ded5ed;border-radius:22px;background:#1d142d;color:#fff;box-shadow:0 22px 55px rgba(33,19,54,.2);overflow:hidden}
.order-summary::before{content:"";display:block;height:6px;background:var(--gradient)}
.order-summary-inner{padding:26px}
.order-summary .summary-kicker{margin:0 0 7px;color:#cbb9ec;font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.order-summary h3{margin:0;font-size:1.5rem;color:#fff}
.order-summary .summary-price{margin:12px 0 20px;font-family:'Montserrat',sans-serif;font-size:2.7rem;font-weight:800;letter-spacing:-1px}
.order-summary .summary-price small{font-size:.78rem;font-weight:600;color:#bdb2ca;letter-spacing:0}
.order-summary ul{display:flex;flex-direction:column;gap:10px;margin:0;padding:18px 0;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);list-style:none}
.order-summary li{display:flex;gap:9px;font-size:.84rem;line-height:1.45;color:#ddd5e8}
.order-summary li::before{content:"✓";color:#f064c8;font-weight:900}
.order-summary .summary-secure{display:flex;gap:10px;align-items:flex-start;margin:18px 0 0;color:#bfb5cb;font-size:.78rem;line-height:1.45}
.order-summary .summary-secure svg{width:18px;height:18px;color:#a88bf3;flex:none}

@media(max-width:900px){
  .submit-page .hero{padding-bottom:58px!important}
  .submit-hero-proof{justify-content:center}
  .submit-flow-strip ol{margin:-18px 18px 0}
  .submission-grid{grid-template-columns:1fr;max-width:720px}
  .order-summary{position:static;order:-1}
  .order-summary-inner{display:grid;grid-template-columns:1fr auto;column-gap:20px;align-items:center}
  .order-summary .summary-price{margin:0;text-align:right}
  .order-summary ul,.order-summary .summary-secure{grid-column:1/-1}
}
@media(max-width:700px){
  .submit-flow-strip ol{grid-template-columns:1fr;margin-top:-12px}
  .submit-flow-strip li{padding:15px 18px}
  .submit-flow-strip li+li{border-left:0;border-top:1px solid var(--border)}
  .submit-page #pricing{padding-top:54px!important}
  .submit-page .pricing-grid{gap:14px}
  .submit-page .pricing-card,.submit-page .pricing-card.selected{transform:none;padding:24px 22px}
  .submit-page .pricing-card[data-tier-card="pro"]{padding-top:24px}
  .submit-page .pricing-card .popular-tag{position:static;align-self:flex-start;max-width:calc(100% - 52px);margin:0 0 18px;white-space:normal;line-height:1.15}
  .submit-page .qform{grid-template-columns:1fr;padding:22px;gap:16px}
  .submit-page .qform .fgroup{grid-column:1/-1}
  .order-summary-inner{display:block}
  .order-summary .summary-price{text-align:left;margin:10px 0 18px}
}
.nav-desktop{ display:flex; align-items:center; gap: 8px; }
.nav-desktop a{
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  font-size:.88rem;
  color: var(--text-muted);
  padding: 10px 16px;
  border-radius: var(--radius-full);
  transition: color .25s, background .25s;
}
.nav-desktop a:hover, .nav-desktop a.active{ color: var(--text); background: rgba(30,15,60,.055); }
.header-actions{ display:flex; align-items:center; gap:12px; }
.lang-switch{
  display:flex;
  border:1px solid var(--border-strong);
  border-radius: var(--radius-full);
  overflow:hidden;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:.72rem;
}
.lang-switch a{ padding:7px 11px; color: var(--text-dim); transition: color .2s; }
.lang-switch a.active{ background: var(--gradient); color:#fff; }

.menu-toggle{
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  width:44px; height:44px;
  padding:0;
  margin:-6px;
}
.menu-toggle span{ width:22px; height:2px; background: var(--text); border-radius:2px; transition: all .3s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* ---------- Ticker ---------- */
.ticker{
  overflow:hidden;
  white-space:nowrap;
  background: var(--gradient);
  max-height: 34px;
  transition: max-height .4s var(--ease), opacity .3s var(--ease), padding .4s var(--ease);
}
.site-header.scrolled .ticker{ max-height:0; opacity:0; }
.ticker-track{
  display:inline-flex;
  width:max-content;
  animation: ticker-scroll 300s linear infinite;
  padding: 8px 0;
}
.ticker-track span{
  display:inline-block;
  padding-right: 8px;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:.68rem;
  letter-spacing:.09em;
  color:#fff;
}
@keyframes ticker-scroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

/* ---------- Mobile nav ---------- */
.mobile-nav{
  position: fixed;
  inset:0;
  background: var(--surface);
  z-index: 999;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap: 26px;
  opacity:0;
  visibility:hidden;
  transition: opacity .3s var(--ease), visibility .3s;
}
.mobile-nav.open{ opacity:1; visibility:visible; }
.mobile-nav a{
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:1.5rem;
  opacity:0; transform: translateY(14px);
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.mobile-nav.open a{ opacity:1; transform:none; }
.mobile-nav.open a:nth-child(1){ transition-delay: .05s; }
.mobile-nav.open a:nth-child(2){ transition-delay: .1s; }
.mobile-nav.open a:nth-child(3){ transition-delay: .15s; }
.mobile-nav.open a:nth-child(4){ transition-delay: .2s; }
.mobile-nav .lang-switch{
  margin-top: 10px;
  opacity:0; transform: translateY(14px);
  transition: opacity .4s var(--ease) .25s, transform .4s var(--ease) .25s;
}
.mobile-nav.open .lang-switch{ opacity:1; transform:none; }

/* ---------- Decorative blobs ---------- */
.blob-field{ position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.blob{
  position:absolute;
  border-radius:50%;
  filter: blur(60px);
  opacity:.55;
}
.blob-a{ width:520px; height:520px; top:-180px; left:-120px; background: radial-gradient(circle, rgba(79,107,255,.35), transparent 70%); animation: drift-a 18s ease-in-out infinite; }
.blob-b{ width:460px; height:460px; top:-60px; right:-160px; background: radial-gradient(circle, rgba(255,79,198,.3), transparent 70%); animation: drift-b 22s ease-in-out infinite; }
.blob-c{ width:380px; height:380px; bottom:-200px; left:35%; background: radial-gradient(circle, rgba(155,92,246,.28), transparent 70%); animation: drift-c 20s ease-in-out infinite; }
@keyframes drift-a{ 0%,100%{ transform: translate(0,0) scale(1); } 50%{ transform: translate(60px,40px) scale(1.1); } }
@keyframes drift-b{ 0%,100%{ transform: translate(0,0) scale(1); } 50%{ transform: translate(-50px,60px) scale(1.15); } }
@keyframes drift-c{ 0%,100%{ transform: translate(0,0) scale(1); } 50%{ transform: translate(40px,-30px) scale(1.08); } }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding: 210px 0 110px;
  overflow:hidden;
}
.hero .container{ position:relative; z-index:1; }
.hero-inner{ max-width: 980px; margin: 0 auto; text-align:center; }
.hero-tagline{ font-size: clamp(1.02rem,2vw,1.25rem); color: var(--text-muted); max-width: 620px; margin: 0 auto 36px; }
.hero-cta-row{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top: 10px; }

/* Decorative vinyl belongs exclusively to the music submission hero. */
.submit-page .hero{
  min-height: 610px;
  background:
    radial-gradient(circle at 84% 35%, rgba(255,79,198,.16), transparent 25rem),
    radial-gradient(circle at 72% 4%, rgba(79,107,255,.15), transparent 29rem);
}
.submit-page .hero::before{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  right:max(28px, calc((100vw - 1160px) / 2));
  top:165px;
  border-radius:50%;
  background:
    repeating-radial-gradient(circle, transparent 0 10px, rgba(255,255,255,.08) 11px 12px),
    conic-gradient(from 35deg, #1a1029, #4f6bff, #171020, #ff4fc6, #181025, #9b5cf6, #1a1029);
  box-shadow:0 34px 70px -28px rgba(71,34,117,.58);
  transform:rotate(-9deg);
}
.submit-page .hero::after{
  content:"";
  position:absolute;
  z-index:1;
  width:60px;
  height:60px;
  right:max(138px, calc((100vw - 940px) / 2));
  top:275px;
  border:10px solid rgba(255,255,255,.94);
  border-radius:50%;
  background:var(--gradient);
}
.submit-page .hero-inner{
  max-width:780px;
  margin:0;
  text-align:left;
}
.submit-page .hero-tagline{ margin-left:0; margin-right:0; }
.submit-page .hero-cta-row{ justify-content:flex-start; }

@media (max-width: 900px){
  .submit-page .hero{ min-height:0; }
  .submit-page .hero::before,
  .submit-page .hero::after{ display:none; }
  .submit-page .hero-inner{ max-width:900px; margin:0 auto; text-align:center; }
  .submit-page .hero-tagline{ margin-left:auto; margin-right:auto; }
  .submit-page .hero-cta-row{ justify-content:center; }
}

/* Staggered entrance for hero children */
.hero-inner > *{ opacity:0; transform: translateY(22px); animation: fade-up .8s var(--ease) forwards; }
.hero-inner > .eyebrow{ animation-delay: .05s; }
.hero-inner > h1{ animation-delay: .15s; }
.hero-inner > .hero-tagline{ animation-delay: .28s; }
.hero-inner > .hero-cta-row{ animation-delay: .4s; }
.hero-inner > .player, .hero-inner > .radio-stage{ animation-delay: .52s; }
.hero-inner > .app-badges{ animation-delay: .64s; }
@keyframes fade-up{ to{ opacity:1; transform:none; } }

/* ---------- Player ---------- */
.player{
  margin: 56px auto 0;
  max-width: 560px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 22px 26px;
  display:flex;
  align-items:center;
  gap: 18px;
  box-shadow: var(--shadow-glow);
}
.player-btn{
  flex: 0 0 auto;
  width: 58px; height:58px;
  border-radius:50%;
  background: var(--gradient);
  border:none;
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  font-size:0;
  position:relative;
  transition: transform .25s var(--ease);
}
.player-btn::before{
  content:"";
  position:absolute; inset:-6px;
  border-radius:50%;
  border: 2px solid rgba(155,92,246,.35);
  animation: ring-pulse 2.4s ease-out infinite;
}
@keyframes ring-pulse{
  0%{ transform: scale(.9); opacity:.7; }
  100%{ transform: scale(1.35); opacity:0; }
}
.player-btn:hover{ transform: scale(1.06); }
.player-btn svg{ width:22px; height:22px; }
.player-btn.is-loading svg{ opacity:.4; }
.player-btn.is-loading::after{
  content:"";
  position:absolute; inset:9px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.3);
  border-top-color:#fff;
  animation: qu-btn-spin .8s linear infinite;
}
@keyframes qu-btn-spin{ to{ transform: rotate(360deg); } }
.player-info{ flex:1; min-width:0; text-align:left; }
.player-info .status{
  display:flex; align-items:center; gap:8px;
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:.72rem;
  letter-spacing:.1em; text-transform:uppercase; color: #c026a3;
  margin-bottom:4px;
}
.live-dot{ width:8px; height:8px; border-radius:50%; background: var(--pink); box-shadow: 0 0 0 0 rgba(255,79,198,.5); animation: pulse 1.8s infinite; }
@keyframes pulse{
  0%{ box-shadow: 0 0 0 0 rgba(255,79,198,.5); }
  70%{ box-shadow: 0 0 0 10px rgba(255,79,198,0); }
  100%{ box-shadow: 0 0 0 0 rgba(255,79,198,0); }
}
.player-info .title{ font-family:'Montserrat',sans-serif; font-weight:700; font-size:1rem; color: var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.player-info .sub{ font-size:.82rem; color: var(--text-dim); }
.bars{ display:flex; align-items:flex-end; gap:3px; height:22px; flex:0 0 auto; }
.bars span{ width:3px; background: var(--gradient); border-radius:2px; height:6px; animation: bar 1s infinite ease-in-out; opacity:.35; }
.player.is-playing .bars span, .mini-player.is-playing .bars span{ opacity:1; }
.bars span:nth-child(1){ animation-delay: -.9s; }
.bars span:nth-child(2){ animation-delay: -.6s; }
.bars span:nth-child(3){ animation-delay: -.3s; }
.bars span:nth-child(4){ animation-delay: -.15s; }
.bars span:nth-child(5){ animation-delay: 0s; }
@keyframes bar{ 0%,100%{ height:6px; } 50%{ height:22px; } }
.player:not(.is-playing) .bars span, .mini-player:not(.is-playing) .bars span{ animation-play-state: paused; height:6px; }
.volume-wrap{ display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.volume-wrap svg{ width:16px; height:16px; color: var(--text-dim); }
.volume-wrap input[type=range]{
  -webkit-appearance:none; appearance:none;
  width: 70px; height:4px; border-radius:2px;
  background: var(--border-strong);
  outline:none;
}
.volume-wrap input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:13px; height:13px; border-radius:50%;
  background: var(--violet); cursor:pointer; box-shadow: 0 0 0 3px rgba(155,92,246,.18);
}
.volume-wrap input[type=range]::-moz-range-thumb{
  width:13px; height:13px; border-radius:50%; border:none;
  background: var(--violet); cursor:pointer;
}

/* ---------- Radio stage (immersive now-playing hero) ---------- */
.radio-stage{
  position: relative;
  margin: 56px auto 0;
  width: 100%;
  max-width: 720px;
  min-height: 420px;
  border-radius: var(--radius-lg);
  background: radial-gradient(ellipse at 50% 40%, #150b28 0%, #08050f 70%);
  overflow: hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-shadow: 0 30px 70px -25px rgba(79,20,120,.45);
}
.stage-bg{ position:absolute; inset:0; overflow:hidden; }
.stage-rays{
  position:absolute; inset: -20%;
  background: repeating-conic-gradient(from 0deg, rgba(255,255,255,.05) 0deg 1.2deg, transparent 1.2deg 9deg);
  -webkit-mask-image: radial-gradient(circle at 50% 45%, #000 0%, transparent 62%);
  mask-image: radial-gradient(circle at 50% 45%, #000 0%, transparent 62%);
  animation: stage-spin 50s linear infinite;
}
.stage-ring{
  position:absolute; left:50%; top:45%;
  border-radius:50%;
  transform: translate(-50%,-50%);
  background: conic-gradient(from 0deg, var(--blue), var(--violet), var(--pink), var(--blue));
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
  opacity:.7;
  filter: blur(.3px);
}
.stage-ring-1{ width: 230px; height:230px; animation: stage-spin 14s linear infinite; }
.stage-ring-2{ width: 300px; height:300px; opacity:.35; animation: stage-spin-rev 22s linear infinite; }
.stage-glow{
  position:absolute; left:50%; top:45%; width:340px; height:340px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(155,92,246,.55) 0%, rgba(79,107,255,.25) 45%, transparent 72%);
  filter: blur(30px);
  animation: stage-pulse 3.6s ease-in-out infinite;
}
@keyframes stage-spin{ to{ transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes stage-spin-rev{ to{ transform: translate(-50%,-50%) rotate(-360deg); } }
@keyframes stage-pulse{ 0%,100%{ opacity:.75; transform: translate(-50%,-50%) scale(1); } 50%{ opacity:1; transform: translate(-50%,-50%) scale(1.08); } }

.stage-play{
  position:relative; z-index:2;
  width: 108px; height:108px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(6px);
  box-shadow: 0 0 0 1px rgba(255,255,255,.05), 0 20px 50px -12px rgba(0,0,0,.6);
}
.stage-play::before{ border-color: rgba(255,255,255,.25); }
.stage-play svg{ width:38px; height:38px; }
.stage-play:hover{ transform: scale(1.05); background: rgba(255,255,255,.13); }

.stage-info{ position:relative; z-index:2; text-align:center; margin-top: 26px; padding: 0 24px 8px; }
.stage-info .status{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:.72rem;
  letter-spacing:.12em; text-transform:uppercase; color: #ff8ede;
  margin-bottom: 10px;
}
.stage-track{
  font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.3rem; color:#fff;
  max-width: 480px; margin: 0 auto;
}
.stage-sub{ font-size:.9rem; color: rgba(255,255,255,.55); margin-top:4px; }
.radio-stage .volume-wrap{ justify-content:center; margin: 18px auto 0; }
.radio-stage .volume-wrap svg{ color: rgba(255,255,255,.6); }
.radio-stage .volume-wrap input[type=range]{ background: rgba(255,255,255,.2); }

@media (max-width: 640px){
  .radio-stage{ min-height: 340px; border-radius: var(--radius); }
  .stage-ring-1{ width:170px; height:170px; }
  .stage-ring-2{ width:220px; height:220px; }
  .stage-glow{ width:240px; height:240px; filter: blur(22px); }
  .stage-play{ width:84px; height:84px; }
  .stage-play svg{ width:30px; height:30px; }
  .stage-track{ font-size:1.1rem; }
}

.mini-player{
  position:fixed; bottom:18px; left:50%; transform:translateX(-50%) translateY(160%);
  z-index: 900;
  display:flex; align-items:center; gap:14px;
  background: rgba(255,255,255,.9);
  border:1px solid var(--border-strong);
  backdrop-filter: blur(14px);
  padding: 12px 18px;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-glow);
  transition: transform .4s var(--ease);
}
.mini-player.show{ transform: translateX(-50%) translateY(0); }
.mini-player .player-btn{ width:40px; height:40px; }
.mini-player .player-btn::before{ display:none; }
.mini-player .player-btn svg{ width:16px; height:16px; }
.mini-player .title{ font-family:'Montserrat',sans-serif; font-weight:700; font-size:.85rem; color: var(--text); }
.mini-player .bars{ height:16px; }

/* ---------- Feature grid ---------- */
.grid{ display:grid; gap: 24px; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }

.card{
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 34px 30px;
  transition: transform .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
  position: relative;
  overflow:hidden;
}
.card:hover{ transform: translateY(-8px); border-color: var(--border-strong); box-shadow: var(--shadow-card); }
.card .icon{
  width: 52px; height:52px;
  border-radius: 14px;
  background: var(--gradient-soft);
  display:flex; align-items:center; justify-content:center;
  margin-bottom: 20px;
  transition: transform .4s var(--ease);
}
.card:hover .icon{ transform: rotate(-6deg) scale(1.08); }
.card .icon svg{ width:24px; height:24px; }
.card .icon svg [fill="#fff"]{ fill: var(--violet); }
.card .icon svg [stroke="#fff"]{ stroke: var(--violet); }
.card h3{ margin-bottom:.4em; }
.card p{ margin-bottom:0; font-size:.94rem; }

/* stagger reveal for grids */
.grid-3 .card:nth-child(1){ transition-delay: 0s; }
.grid-3 .card:nth-child(2){ transition-delay: .08s; }
.grid-3 .card:nth-child(3){ transition-delay: .16s; }
.grid-3 .card:nth-child(4){ transition-delay: .24s; }
.grid-3 .card:nth-child(5){ transition-delay: .32s; }

/* ---------- Article (guides) ---------- */
.article-content{ max-width: 760px; }
.article-content h2{ font-size:1.4rem; margin-top: 1.8em; }
.article-content h2:first-of-type{ margin-top:0; }
.article-content p, .article-content li{ color: var(--text-muted); line-height:1.7; }
.article-content ul, .article-content ol{ padding-left: 1.3em; margin-bottom:1em; }
.article-content ul{ list-style: disc; }
.article-content strong{ color: var(--text); }
.article-content a{ color: var(--link); text-decoration: underline; text-underline-offset: 2px; }
.article-cta{
  background: var(--gradient-soft);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: 26px 30px;
  margin: 2em 0;
}
.article-cta p{ color: var(--text); margin:0 0 14px; }
.article-related{ margin-top: 2.5em; padding-top: 1.6em; border-top:1px solid var(--border); }
.article-related h2{ margin-top:0 !important; }
.article-related ul{ list-style:none; padding:0; }
.article-related li{ margin-bottom:.5em; }
.guide-index{ list-style:none !important; padding:0 !important; display:flex; flex-direction:column; gap:22px; margin-top:2em !important; }
.guide-index li{ padding-bottom:22px; border-bottom:1px solid var(--border); }
.guide-index li:last-child{ border-bottom:none; }
.guide-index a{ font-family:'Montserrat',sans-serif; font-size:1.05rem; }
.guide-index p{ margin:6px 0 0; }

/* ---------- Pricing tiers ---------- */
.pricing-grid{ margin: 28px 0 8px; align-items:stretch; }
.pricing-card{
  cursor:pointer; display:flex; flex-direction:column;
  border-width:2px; border-style:solid; border-color:var(--border);
  overflow:visible;
}
.pricing-card input[type=radio]{ position:absolute; opacity:0; pointer-events:none; }
.pricing-card.selected{
  border-color: var(--violet);
  box-shadow: 0 0 0 3px rgba(155,92,246,.15), var(--shadow-card);
  transform: translateY(-4px);
}
.pricing-card .popular-tag{
  position:absolute; top:0; right:24px; transform:translateY(-50%);
  background: var(--gradient); color:#fff;
  font-family:'Montserrat',sans-serif; font-size:.7rem; font-weight:800;
  letter-spacing:.04em; padding:5px 12px; border-radius: var(--radius-full);
  white-space:nowrap; z-index:2;
}
.pricing-card .tier-name{ font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.15rem; margin:0; }
.pricing-card .tier-price{ font-family:'Montserrat',sans-serif; font-weight:800; font-size:2.1rem; margin:10px 0 2px; color:var(--text); }
.pricing-card .tier-price span{ font-size:.95rem; font-weight:600; color:var(--text-dim); }
.pricing-card .tier-tagline{ font-size:.88rem; color:var(--text-muted); margin:0 0 18px; min-height:2.6em; }
.pricing-card ul{ list-style:none; padding:0; margin:0 0 auto; display:flex; flex-direction:column; gap:11px; flex:1; }
.pricing-card li{ display:flex; gap:9px; align-items:flex-start; font-size:.9rem; color:var(--text-muted); }
.pricing-card li svg{ flex:none; width:18px; height:18px; color:var(--violet); margin-top:2px; }
.pricing-card li.dim{ color:var(--text-dim); }
.pricing-card li.dim svg{ color:var(--text-dim); opacity:.5; }
.pricing-note{ max-width:760px; margin:18px auto 0; text-align:center; font-size:.85rem; color:var(--text-dim); }
@media(max-width:760px){ .pricing-grid{ grid-template-columns:1fr; } .pricing-card.selected{ transform:none; } }

/* ---------- Stats ---------- */
.stat-row{ display:grid; grid-template-columns: repeat(4,1fr); gap:20px; }
.stat{
  text-align:center;
  padding: 30px 16px;
  background: var(--surface);
  border:1px solid var(--border);
  border-radius: var(--radius);
  transition: transform .3s var(--ease);
}
.stat:hover{ transform: translateY(-4px); }
.stat .num{ font-family:'Montserrat',sans-serif; font-weight:800; font-size:2.2rem; }
.stat .label{ font-size:.82rem; color: var(--text-dim); margin-top:4px; }

/* ---------- CTA band ---------- */
.cta-band{
  border-radius: var(--radius-lg);
  padding: 64px 48px;
  background: var(--gradient);
  background-size: 160% 160%;
  animation: gradient-shift 10s ease-in-out infinite;
  position:relative;
  overflow:hidden;
  text-align:center;
}
.cta-band::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.25), transparent 55%);
}
.cta-band > *{ position:relative; z-index:1; }
.cta-band h2, .cta-band p{ color:#fff; }
.cta-band p{ color: rgba(255,255,255,.9); max-width: 560px; margin-left:auto; margin-right:auto; }
.cta-band .btn-outline{ background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.55); color:#fff; }
.cta-band .btn-outline:hover{ background: rgba(255,255,255,.26); }
.cta-band .btn-light{ background:#fff; color:#241a3a; }
.cta-band .btn-light:hover{ transform: translateY(-2px); box-shadow: 0 18px 40px -12px rgba(0,0,0,.3); }

/* ---------- App badges ---------- */
.app-badges{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top: 28px; }
.app-badge{
  display:flex; align-items:center; gap:10px;
  border:1px solid var(--border-strong);
  border-radius: 14px;
  padding: 10px 18px;
  background: var(--surface);
  transition: background .25s, transform .25s, box-shadow .25s;
}
.app-badge:hover{ transform: translateY(-3px); box-shadow: var(--shadow-card); }
.app-badge svg{ width:22px; height:22px; }
.app-badge svg[viewBox="0 0 384 512"], .app-badge svg[viewBox="0 0 512 512"]{ fill: var(--text); }
.app-badge .txt small{ display:block; font-size:.62rem; color: var(--text-dim); letter-spacing:.05em; text-transform:uppercase; }
.app-badge .txt strong{ display:block; font-family:'Montserrat',sans-serif; font-size:.92rem; color: var(--text); }

/* ---------- Form ---------- */
.form-shell{
  background: var(--surface);
  border:1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 8px;
  overflow:hidden;
  box-shadow: var(--shadow-card);
}
.form-shell iframe{ width:100%; border:none; display:block; border-radius: calc(var(--radius-lg) - 6px); background:#fff; }

.field-note{
  display:flex; gap:12px; align-items:flex-start;
  background: var(--gradient-soft);
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px 20px;
  font-size:.88rem;
  color: var(--text-muted);
  margin-bottom: 22px;
}
.field-note svg{ flex:0 0 auto; width:20px; height:20px; color: #c026a3; margin-top:2px; }

/* ---------- Agreement box ---------- */
.agreement{
  background: var(--surface);
  border:1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 40px;
  box-shadow: var(--shadow-card);
}
.agreement h3{ margin-top: 1.4em; }
.agreement h3:first-child{ margin-top:0; }
.agreement ol{ padding-left: 1.2em; list-style: decimal; color: var(--text-muted); }
.agreement ol li{ margin-bottom: .6em; }
.agreement ol li::marker{ color: #c026a3; font-weight:700; }
.badge-price{
  display:inline-flex; align-items:center; gap:8px;
  background: var(--gradient-soft);
  border:1px solid rgba(255,79,198,.3);
  color: var(--text);
  font-family:'Montserrat',sans-serif; font-weight:700;
  padding: 10px 18px; border-radius: var(--radius-full);
  margin: 16px 0;
}
.badge-price svg{ color: var(--violet); width:18px; height:18px; }

/* ---------- Legal ---------- */
.legal-content h2{ font-size:1.4rem; margin-top: 1.8em; }
.legal-content h2:first-of-type{ margin-top:0; }
.legal-content p, .legal-content li{ color: var(--text-muted); }
.legal-content ul{ padding-left: 1.3em; list-style: disc; margin-bottom:1em; }
.legal-content strong{ color: var(--text); }
.legal-content a{ color: var(--link); text-decoration: underline; text-underline-offset: 2px; }
.legal-meta{
  display:inline-block;
  font-size:.85rem;
  color: var(--text-dim);
  border:1px solid var(--border);
  padding: 8px 16px;
  border-radius: var(--radius-full);
  margin-bottom: 30px;
}
.legal-content{ max-width: 760px; }

/* ---------- Submit-music page extras ----------
   Moved here from a per-page <style> block: pjax navigation only swaps
   #app-shell, never <head>, so page-specific inline styles silently
   vanished (rendering unstyled, oversized SVGs etc.) whenever a page was
   reached via an in-app link instead of a full reload. */
.genre-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.genre-tags span{display:inline-block;padding:8px 16px;border-radius:var(--radius-full);background:var(--surface-2);border:1px solid var(--border);font-size:.92rem;font-weight:500;color:var(--text)}
.genre-tags span.more{background:var(--gradient-soft);border-color:var(--border-strong);font-weight:600}
.who-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.who-list{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-direction:column;gap:12px}
.who-list li{display:flex;gap:12px;align-items:flex-start;color:var(--text-muted)}
.who-list svg{flex:none;width:22px;height:22px;color:var(--violet);margin-top:1px}
.faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:0 24px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.faq-item[open]{border-color:var(--border-strong);box-shadow:var(--shadow-card)}
.faq-item summary{cursor:pointer;list-style:none;padding:20px 0;font-weight:600;font-size:1.05rem;display:flex;justify-content:space-between;align-items:center;gap:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:1.6rem;line-height:1;font-weight:400;color:var(--violet);transition:transform .2s var(--ease)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{margin:0 0 20px;color:var(--text-muted)}
.terms-details{max-width:820px;margin:26px auto 0;border:1px solid var(--border);border-radius:var(--radius);padding:0 24px;background:var(--surface)}
.terms-details summary{cursor:pointer;list-style:none;padding:20px 0;font-weight:600;display:flex;justify-content:space-between;gap:16px}
.terms-details summary::-webkit-details-marker{display:none}
.terms-details summary::after{content:"+";font-size:1.6rem;line-height:1;color:var(--violet)}
.terms-details[open] summary::after{content:"–"}
.terms-details ol{margin:0 0 20px;padding-left:20px}
.terms-details li{margin-bottom:12px;color:var(--text-muted)}
@media(max-width:760px){.who-grid{grid-template-columns:1fr;gap:28px}}

/* ---------- Native forms (submit-music + feedback) ---------- */
.qform{max-width:640px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow-card)}
.qform .fgroup{margin-bottom:18px}
.qform label.flabel{display:block;font-weight:600;font-size:.95rem;margin-bottom:7px}
.qform .req{color:var(--pink)}
.qform input[type=text],.qform input[type=email],.qform input[type=url],.qform select,.qform textarea{width:100%;padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);font:inherit;color:var(--text);box-sizing:border-box;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.qform textarea{min-height:140px;resize:vertical}
.qform input:focus,.qform select:focus,.qform textarea:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px rgba(155,92,246,.15)}
.qform .hint{font-size:.82rem;color:var(--text-dim);margin-top:5px}
.qform .fcheck{display:flex;gap:12px;align-items:flex-start;margin:4px 0 18px}
.qform .fcheck input{margin-top:3px;width:18px;height:18px;accent-color:var(--violet);flex:none}
.qform .fcheck label{font-weight:400;font-size:.88rem;line-height:1.55;color:var(--text-muted);margin:0}
.qform .honey{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.qform .form-error{display:none;background:rgba(255,79,198,.08);border:1px solid rgba(255,79,198,.35);color:#b0186f;border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:16px;font-size:.9rem}
.qform button[type=submit]{width:100%;justify-content:center;margin-top:8px}
.qform .pay-line{text-align:center;font-size:.82rem;color:var(--text-dim);margin-top:14px}
.pay-badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.pay-badge{display:inline-flex;align-items:center;gap:4px;height:28px;min-width:44px;padding:0 9px;background:#fff;border:1px solid var(--border);border-radius:6px;font-size:12px;font-weight:800;letter-spacing:.02em;box-shadow:0 1px 2px rgba(30,15,60,.06)}
.pay-badge.visa{color:#1a1f71;font-style:italic}
.pay-badge.amex{color:#2e77bc}
.pay-badge.pp{color:#003087}
.pay-badge.pp .b{color:#009cde}
.pay-badge.apay{color:#000}
.pay-badge svg{display:block}
#qu-checkout{max-width:640px;margin:24px auto 0}
@media(max-width:520px){.qform{padding:22px}}

/* ---------- Success pages (submit + feedback confirmation) ---------- */
.success-card{max-width:620px;margin:0 auto;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px 40px;box-shadow:var(--shadow-glow)}
.success-ic{width:76px;height:76px;margin:0 auto 22px;border-radius:50%;background:var(--gradient);display:flex;align-items:center;justify-content:center}
.success-ic svg{width:38px;height:38px;color:#fff}
.success-card h1{margin:.15em 0 .4em}
.success-card p{color:var(--text-muted);max-width:52ch;margin:0 auto 14px}
.success-card p.muted{font-size:.92rem;color:var(--text-dim)}
.success-card .hero-cta-row{margin-top:26px;justify-content:center}
@media(max-width:520px){.success-card{padding:34px 22px}}

/* ---------- Steps ---------- */
.steps{ counter-reset: step; display:grid; gap:18px; }
.step{
  display:flex; gap:18px; align-items:flex-start;
  background: var(--surface);
  border:1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 24px;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.step:hover{ transform: translateX(4px); box-shadow: var(--shadow-card); }
.step .num{
  counter-increment: step;
  flex:0 0 auto;
  width:38px; height:38px;
  border-radius:50%;
  background: var(--gradient);
  display:flex; align-items:center; justify-content:center;
  font-family:'Montserrat',sans-serif; font-weight:800;
  color:#fff;
}
.step .num::before{ content: counter(step); }

/* ---------- Footer ---------- */
.site-footer{
  border-top: 1px solid var(--border);
  padding: 60px 0 30px;
  background: var(--bg-elev);
}
.footer-top{
  display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap;
  margin-bottom: 40px;
}
.footer-brand{ display:block; }
.footer-brand .brand{ display:inline-flex; margin-bottom: 14px; }
.footer-brand p{ max-width: 320px; font-size:.9rem; }
.footer-cols{ display:flex; gap:60px; flex-wrap:wrap; }
.footer-col h4{
  font-family:'Montserrat',sans-serif; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color: var(--text-dim); margin-bottom:16px;
}
.footer-col a{ display:block; font-size:.92rem; color: var(--text-muted); padding: 6px 0; transition: color .2s; }
.footer-col a:hover{ color: var(--text); }
.footer-license{ font-size:.78rem; color: var(--text-dim); margin-bottom: 24px; }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  padding-top: 24px; border-top:1px solid var(--border);
  font-size:.82rem; color: var(--text-dim);
}
.footer-bottom a{ color: var(--text-dim); }
.footer-bottom a:hover{ color: var(--text); }

/* ---------- Language suggestion pill (floats below the fixed header) ---------- */
.lang-suggest{
  position: fixed; top: 84px; right: 20px; z-index: 1100;
  max-width: 300px;
  background: rgba(255,255,255,.97);
  border:1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-glow);
  backdrop-filter: blur(16px);
  font-size: .86rem;
}
.lang-suggest[hidden]{ display:none; }
.lang-suggest .container{
  display:flex; align-items:center; gap:10px;
  flex-wrap:wrap; padding:14px 16px;
}
.lang-suggest a{ color: var(--link); font-weight:600; text-decoration: underline; text-underline-offset: 2px; }
.lang-suggest-close{
  background:none; border:none; cursor:pointer; line-height:1;
  font-size:1.1rem; color: var(--text-muted); padding:2px 6px; margin-left:auto;
}
.lang-suggest-close:hover{ color: var(--text); }
@media (max-width: 480px){
  .lang-suggest{ left:16px; right:16px; top:76px; max-width:none; }
}

/* ---------- Cookie banner ---------- */
.cookie-banner{
  position:fixed; left:20px; right:20px; bottom:20px; z-index: 1200;
  max-width: 640px; margin: 0 auto;
  background: rgba(255,255,255,.97);
  border:1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: 22px 24px;
  box-shadow: var(--shadow-glow);
  backdrop-filter: blur(16px);
  transform: translateY(160%);
  transition: transform .5s var(--ease);
}
.cookie-banner.show{ transform: translateY(0); }
.cookie-banner p{ font-size:.86rem; margin-bottom: 16px; }
.cookie-banner a{ color: var(--text); text-decoration: underline; }
.cookie-actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.btn-link{
  background:none; border:none; cursor:pointer;
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:.82rem;
  color: var(--link); text-decoration: underline; text-underline-offset: 2px;
  padding: 10px 4px;
}
.footer-link-btn{
  display:block; background:none; border:none; cursor:pointer; text-align:left;
  font-size:.92rem; color: var(--text-muted); padding: 6px 0; font-family:'Inter',sans-serif;
  transition: color .2s;
}
.footer-link-btn:hover{ color: var(--text); }

/* ---------- Cookie preferences modal ---------- */
.cookie-modal{
  position: fixed; inset:0; z-index: 2100;
  display:flex; align-items:flex-end; justify-content:center;
  opacity:0; visibility:hidden; transition: opacity .3s var(--ease), visibility .3s;
}
.cookie-modal.show{ opacity:1; visibility:visible; }
@media (min-width: 640px){ .cookie-modal{ align-items:center; } }
.cookie-modal-backdrop{
  position:absolute; inset:0; background: rgba(20,10,35,.45); backdrop-filter: blur(2px);
}
.cookie-modal-panel{
  position:relative; z-index:1;
  background: var(--surface);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  padding: 32px 28px 26px;
  max-width: 560px; width:100%;
  max-height: 85vh; overflow-y:auto;
  box-shadow: var(--shadow-glow);
  transform: translateY(24px);
  transition: transform .35s var(--ease);
}
.cookie-modal.show .cookie-modal-panel{ transform: none; }
@media (min-width: 640px){
  .cookie-modal-panel{ border-radius: var(--radius-lg); }
}
.cookie-modal-panel h3{ margin-bottom:.3em; }
.cookie-modal-panel > p{ font-size:.9rem; margin-bottom: 22px; }
.cookie-cat{ border-top:1px solid var(--border); padding: 16px 0; }
.cookie-cat:first-of-type{ border-top:none; }
.cookie-cat-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; }
.cookie-cat-head span:first-child{ font-family:'Montserrat',sans-serif; font-weight:700; font-size:.95rem; }
.cookie-cat p{ font-size:.85rem; margin-bottom:0; }
.cookie-always{
  font-family:'Montserrat',sans-serif; font-weight:700; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
  color: var(--text-dim); background: var(--bg-elev); border:1px solid var(--border);
  padding: 5px 10px; border-radius: var(--radius-full); flex:0 0 auto;
}
.cookie-modal-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top: 24px; }

/* Toggle switch */
.switch{ position:relative; display:inline-block; width:42px; height:24px; flex:0 0 auto; cursor:pointer; }
.switch input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.switch-track{
  position:absolute; inset:0; background: var(--border-strong); border-radius: var(--radius-full);
  transition: background .25s var(--ease);
}
.switch-track::before{
  content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%;
  background:#fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .25s var(--ease);
}
.switch input:checked + .switch-track{ background: var(--gradient); }
.switch input:checked + .switch-track::before{ transform: translateX(18px); }
.switch input:focus-visible + .switch-track{ outline: 2px solid var(--violet); outline-offset: 2px; }

/* ---------- Cookie gate over embedded forms ---------- */
.cookie-gate{
  padding: 40px 26px;
  text-align:center;
}
.cookie-gate p{ max-width: 420px; margin: 0 auto 18px; font-size:.9rem; }

/* ---------- Schedule ---------- */
.card.is-live{ border-color: var(--violet); box-shadow: 0 0 0 2px rgba(155,92,246,.22), var(--shadow-card); }
.schedule-live-badge{ display:flex; align-items:center; gap:8px; margin-top:16px; font-family:'Montserrat',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:#c026a3; }

/* ---------- Weekly timetable (static, hand-maintained) ---------- */
.timetable{ background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-lg); padding: 20px 20px 22px; box-shadow: var(--shadow-card); overflow-x:auto; }
.timetable-loading{ text-align:center; padding: 50px 0; color: var(--text-dim); font-size:.9rem; }
.timetable-nav{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; min-width: 840px; }
.timetable-tabs{ display:flex; gap:6px; background: var(--bg-elev); border:1px solid var(--border); border-radius: var(--radius-full); padding:4px; }
.timetable-tab{ border:none; background:none; cursor:pointer; padding:8px 16px; border-radius: var(--radius-full); font-family:'Montserrat',sans-serif; font-weight:700; font-size:.8rem; color: var(--text-dim); transition: background .2s, color .2s; }
.timetable-tab.is-active{ background: var(--gradient); color:#fff; }
.timetable-week-label{ font-size:.85rem; color: var(--text-dim); font-weight:600; }
.timetable-grid{ display:grid; grid-template-columns: 46px repeat(7, minmax(108px,1fr)); gap:0; min-width: 840px; }
.timetable-daylabel{ font-family:'Montserrat',sans-serif; font-weight:700; font-size:.8rem; text-align:center; padding: 0 4px 12px; color: var(--text-dim); text-transform:capitalize; }
.timetable-daylabel.is-today{ color: var(--violet); }
.timetable-daylabel small{ display:block; font-weight:600; font-size:.68rem; color: var(--text-dim); margin-top:2px; text-transform:none; }
.timetable-hourcol{ position:relative; height: 576px; }
.timetable-hourcol span{ position:absolute; left:0; right:8px; transform: translateY(-50%); font-size:.66rem; color: var(--text-dim); text-align:right; }
.timetable-daycol{ position:relative; height:576px; border-left:1px solid var(--border); background-image: repeating-linear-gradient(to bottom, var(--border) 0, var(--border) 1px, transparent 1px, transparent 24px); }
.timetable-daycol.is-today{ background-color: rgba(155,92,246,.045); }
.timetable-block{ position:absolute; left:3px; right:3px; border-radius:6px; background: var(--gradient-soft); border:1px solid var(--border-strong); padding:3px 6px; overflow:hidden; font-size:.68rem; line-height:1.25; color: var(--text-muted); min-height:15px; cursor:default; }
.timetable-block strong{ display:block; font-family:'Montserrat',sans-serif; font-weight:700; font-size:.7rem; color: var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.timetable-block.is-live{ background: var(--gradient); border-color:transparent; box-shadow: 0 6px 18px -6px rgba(155,92,246,.5); z-index:2; }
.timetable-block.is-live strong{ color:#fff; }
.tt-live-tag{ display:block; font-family:'Montserrat',sans-serif; font-weight:700; font-size:.6rem; letter-spacing:.06em; text-transform:uppercase; color:#fff; opacity:.9; }
.timetable-now-line{ position:absolute; left:0; right:0; height:2px; background: var(--pink); z-index:3; }
.timetable-now-line::before{ content:""; position:absolute; left:-4px; top:-3px; width:8px; height:8px; border-radius:50%; background: var(--pink); box-shadow:0 0 0 3px rgba(255,79,198,.25); }
.timetable-fallback{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
@media (max-width: 760px){ .timetable-fallback{ grid-template-columns:1fr; } }

/* ---------- Utility ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.reveal{ opacity:0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .nav-desktop{ display:none; }
  .menu-toggle{ display:flex; }
  .grid-3{ grid-template-columns: 1fr 1fr; }
  .stat-row{ grid-template-columns: repeat(2,1fr); }
  .footer-top{ flex-direction:column; }
  .nav-cta{ display:none; }
}
@media (max-width: 640px){
  .grid-3, .grid-2{ grid-template-columns: 1fr; }
  .stat-row{ grid-template-columns: repeat(2,1fr); }
  .hero{ padding: 150px 0 70px; }
  .section{ padding: 70px 0; }
  .player{ flex-wrap:wrap; padding: 20px; justify-content:center; text-align:center; }
  .player-info{ text-align:center; }
  .volume-wrap{ display:none; }
  .agreement{ padding: 24px; }
  .cta-band{ padding: 40px 22px; }
  .footer-cols{ gap: 32px; }
  .form-shell iframe{ height: var(--ifh-mobile, inherit) !important; }
  .ticker-track span{ font-size:.6rem; }
  .blob{ filter: blur(40px); }
  .mini-player{ padding: 10px 14px; gap:10px; max-width: calc(100vw - 32px); }
  .mini-player .title{ display:none; }
}
@media (max-width: 400px){
  h1{ font-size: 2rem; }
  .brand-word{ font-size:1.25rem; }
  .hero-cta-row .btn{ width:100%; }
  .app-badges{ flex-direction:column; align-items:stretch; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .reveal{ opacity:1; transform:none; }
  .hero-inner > *{ opacity:1; transform:none; }
}
