/* nudg — liquid glass / purple + black */
:root{
  --bg:#050507;
  --text:#F5F3FF; --text-2:#DDD8EE; --muted:#C9C4DB;
  --violet-700:#6D28D9; --violet-600:#7C3AED; --purple-500:#A855F7; --purple-400:#C084FC; --lavender:#D8B4FE; --lavender-2:#C4B5FD;
  --accent:#A855F7; --accent-text:#D8B4FE; --accent-dim:rgba(168,85,247,.18);
  --grad:linear-gradient(135deg,#6D28D9 0%,#7C3AED 45%,#A855F7 100%);
  --grad-text:linear-gradient(100deg,#E9D5FF 0%,#C084FC 55%,#A78BFA 100%);
  --glass:rgba(255,255,255,.065); --glass-2:rgba(255,255,255,.1); --glass-purple:rgba(168,85,247,.08);
  --glass-border:rgba(255,255,255,.12); --glass-border-2:rgba(255,255,255,.2);
  --sheen:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 0 1px rgba(255,255,255,.04);
  --shadow:0 24px 60px -24px rgba(0,0,0,.85),0 8px 24px -12px rgba(20,4,40,.6);
  --blur:blur(24px) saturate(170%);
  --wave-idle:rgba(196,181,253,.34); --wave-hover:rgba(216,180,254,.6); --wave-played-1:#F3E8FF; --wave-played-2:#B26BFF;
  --radius:24px; --radius-sm:14px;
  --font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter",ui-sans-serif,system-ui,"Segoe UI",Roboto,sans-serif;
  --font-body:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter",ui-sans-serif,system-ui,"Segoe UI",Roboto,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
  --wrap:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:88px;-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:transparent;color:var(--text);font:400 16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;min-height:100vh}
img,svg,canvas{display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);line-height:1.06;letter-spacing:-.035em;margin:0;font-weight:700}
p{margin:0}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--lavender-2);outline-offset:3px;border-radius:8px}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--grad);color:#fff;padding:10px 16px;border-radius:999px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.muted{color:var(--muted)} .small{font-size:.875rem} .mono{font-family:var(--font-mono)}
.accent-text{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.maxw{max-width:420px}
.nw{white-space:nowrap}
.eyebrow{font:500 .76rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--accent-text);margin-bottom:14px}
.label-sm{font:500 .72rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.ico{width:18px;height:18px;flex:none}

/* ---------- Ambient background glows ---------- */
.bg-glow{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse 120% 1200px at 50% 0,#140b26 0%,rgba(5,5,7,0) 70%)}
.blob{position:absolute;border-radius:50%;filter:blur(80px);will-change:transform}
.b1{width:640px;height:640px;left:-180px;top:-200px;background:radial-gradient(circle,#7C3AED 0%,rgba(124,58,237,0) 68%);opacity:.6;animation:drift1 38s ease-in-out infinite alternate}
.b2{width:600px;height:600px;right:-180px;top:4%;background:radial-gradient(circle,#A855F7 0%,rgba(168,85,247,0) 68%);opacity:.45;animation:drift2 46s ease-in-out infinite alternate}
.b3{width:720px;height:720px;left:-260px;top:24%;background:radial-gradient(circle,#6D28D9 0%,rgba(109,40,217,0) 68%);opacity:.5;animation:drift3 52s ease-in-out infinite alternate}
.b4{width:620px;height:620px;right:-220px;top:38%;background:radial-gradient(circle,#9333EA 0%,rgba(147,51,234,0) 68%);opacity:.42;animation:drift2 58s ease-in-out infinite alternate-reverse}
.b5{width:760px;height:760px;left:22%;top:58%;background:radial-gradient(circle,#6D28D9 0%,rgba(109,40,217,0) 68%);opacity:.55;animation:drift1 64s ease-in-out infinite alternate}
.b6{width:560px;height:560px;right:-120px;top:78%;background:radial-gradient(circle,#A855F7 0%,rgba(168,85,247,0) 68%);opacity:.45;animation:drift3 50s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate(120px,90px) scale(1.12)}}
@keyframes drift2{to{transform:translate(-140px,120px) scale(.9)}}
@keyframes drift3{to{transform:translate(110px,-140px) scale(1.08)}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- Glass surfaces ---------- */
.glass,.site-header,.hero-card,.sample,.filters,.pack,.signup,.mini-player{
  position:relative;
  background:linear-gradient(160deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,.035) 45%,rgba(168,85,247,.06) 100%);
  -webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);
  border:1px solid var(--glass-border);
  box-shadow:var(--sheen),var(--shadow);
}
/* top-edge specular sheen */
.hero-card::before,.sample::before,.filters::before,.pack::before,.signup::before,.mini-player::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,0) 28%),
             radial-gradient(120% 60% at 15% 0%,rgba(255,255,255,.07),transparent 60%);
}
.hero-card>*,.sample>*,.filters>*,.pack>*,.signup>*,.mini-player>*{position:relative;z-index:1}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass,.hero-card,.sample,.filters,.pack,.signup{background:rgba(22,16,36,.94)}
  .site-header{background:rgba(8,6,14,.96)}
  .mini-player{background:rgba(28,20,46,.97)}
}

/* ---------- Buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 24px;border-radius:999px;border:1px solid transparent;font-weight:600;letter-spacing:-.01em;text-decoration:none;cursor:pointer;transition:transform .2s ease,box-shadow .25s ease,background .2s ease,border-color .2s ease;white-space:nowrap}
.btn:active{transform:translateY(1px) scale(.99)}
.btn-primary{background:var(--grad);color:#fff;border-color:rgba(255,255,255,.22);text-shadow:0 1px 1px rgba(40,0,80,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 30px -8px rgba(139,92,246,.75),0 0 0 1px rgba(124,58,237,.4)}
.btn-primary:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 14px 40px -6px rgba(168,85,247,.9),0 0 0 1px rgba(168,85,247,.6);transform:translateY(-1px)}
.btn-ghost{background:rgba(255,255,255,.07);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-color:var(--glass-border-2);color:var(--text);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3)}
.btn-sm{height:38px;padding:0 18px;font-size:.9rem}
.link-btn{background:none;border:0;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px 2px;font-size:.875rem}
.link-btn:hover{color:var(--text)}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--accent-text);font-weight:600;text-decoration:none;margin-top:auto}
.text-link:hover{color:#F3E8FF}
.text-link:hover .ico{transform:translateX(3px)} .text-link .ico{transition:transform .2s ease}

/* ---------- Header ---------- */
.site-header{position:sticky;top:12px;z-index:50;max-width:calc(var(--wrap) - 24px);margin:12px auto 0;border-radius:999px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.03));box-shadow:var(--sheen),0 18px 40px -20px rgba(0,0,0,.9)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;height:62px;padding:0 12px 0 24px}
.site-header .wrap{max-width:none}
.brand{display:flex;flex:none;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.wordmark{width:80px;height:32px;color:var(--text)}
.wordmark-sm{width:70px;height:28px}
.nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(16px,2.2vw,28px);min-width:0;margin-left:auto}
.nav>a{flex:none;white-space:nowrap;text-decoration:none;color:var(--text-2);font-weight:500;font-size:.94rem;transition:color .15s ease}
.nav>a:hover{color:#fff}

/* ---------- Hero ---------- */
.hero{position:relative;padding:88px 0 100px}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.7rem,5.8vw,4.8rem);font-weight:700;letter-spacing:-.045em;margin-bottom:22px}
.lede{font-size:1.15rem;color:var(--text-2);max-width:540px;margin-bottom:34px}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:40px}
.facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:.88rem}
.facts li{padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09)}
.facts strong{color:var(--text);font-weight:600;margin-right:4px}
.hero-card{border-radius:28px;padding:26px;box-shadow:var(--sheen),0 40px 90px -30px rgba(0,0,0,.9),0 0 80px -20px rgba(124,58,237,.35)}
.hero-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;font-size:.8rem}
.hero-card-title{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.hero-card-title h2{font-size:1.5rem;letter-spacing:-.03em}
.hero-card-foot{display:flex;justify-content:space-between;margin-top:10px}

/* ---------- Play buttons ---------- */
.play{position:relative;flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:var(--grad);color:#fff;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 8px 22px -6px rgba(139,92,246,.8);transition:transform .2s ease,box-shadow .25s ease}
.play:hover{transform:scale(1.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 10px 28px -4px rgba(168,85,247,.95)}
.play svg{width:20px;height:20px}
.play .ico-pause{display:none}
.play[aria-pressed="true"] .ico-play{display:none}
.play[aria-pressed="true"] .ico-pause{display:block}
.play[aria-pressed="true"]{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 0 0 6px rgba(168,85,247,.22),0 0 30px rgba(168,85,247,.7)}
.play-lg{width:62px;height:62px}.play-lg svg{width:24px;height:24px}
.play-sm{width:38px;height:38px}.play-sm svg{width:16px;height:16px}

/* ---------- Waveform ---------- */
.wave{position:relative;height:56px;cursor:pointer;border-radius:10px;touch-action:none}
.wave canvas{width:100%;height:100%}
.wave-lg{height:110px}

/* ---------- Sections ---------- */
.section{position:relative;padding:96px 0}
.section-alt{background:linear-gradient(180deg,rgba(124,58,237,0),rgba(124,58,237,.05) 50%,rgba(124,58,237,0))}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px;flex-wrap:wrap}
.section-head h2{font-size:clamp(2rem,3.8vw,3rem);letter-spacing:-.04em}

/* ---------- Filters ---------- */
.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.25fr;gap:16px 18px;border-radius:var(--radius);padding:22px;margin-bottom:22px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0;border:0;margin:0;padding:0}
.field>label:not(.check),.field>legend{font:500 .72rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:0;margin-bottom:8px}
.field>label:not(.check){margin-bottom:0}
.filters input[type=search],.filters input[type=number],.filters select,.signup input{height:46px;background:rgba(5,5,10,.45);border:1px solid rgba(255,255,255,.13);border-radius:var(--radius-sm);padding:0 14px;width:100%;min-width:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.4);transition:border-color .15s ease,box-shadow .15s ease}
.filters input[type=search]{border-radius:999px}
.filters input::placeholder,.signup input::placeholder{color:#8F89A6}
.filters input:hover,.filters select:hover{border-color:rgba(255,255,255,.24)}
.filters input:focus,.filters select:focus,.signup input:focus{border-color:var(--purple-400);outline:none;box-shadow:0 0 0 4px rgba(168,85,247,.25)}
.filters select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5' fill='none' stroke='%23C4B5FD' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:20px;padding-right:38px;cursor:pointer}
.filters select option{background:#14101f;color:var(--text)}
.input-icon{position:relative}
.input-icon .ico{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--lavender-2);pointer-events:none;z-index:1}
.input-icon input{padding-left:44px!important}
.bpm-inputs{display:flex;align-items:center;gap:8px;color:var(--muted)}
.bpm-inputs input{text-align:center;font-family:var(--font-mono);padding:0 8px!important}
.check{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted);cursor:pointer;margin-top:8px}
.check input{accent-color:var(--purple-500);width:16px;height:16px;margin:0}
.tag-filter{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:12px 18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}
.tag-filter .label-sm{padding-top:9px}
.tag-filter .link-btn{white-space:nowrap}

/* ---------- Chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;height:30px;padding:0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05);color:var(--text-2);font-size:.82rem;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);transition:all .15s ease;white-space:nowrap}
.chip:hover{border-color:rgba(192,132,252,.5);background:rgba(168,85,247,.12);color:#fff}
.chip[aria-pressed="true"]{background:var(--grad);border-color:rgba(255,255,255,.28);color:#fff;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 4px 14px -4px rgba(139,92,246,.8)}
.chip-sm{height:26px;padding:0 10px;font-size:.76rem}

/* ---------- Sample list ---------- */
.sample-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.sample{display:grid;grid-template-columns:46px minmax(220px,1.15fr) minmax(220px,1.6fr) 210px;gap:22px;align-items:center;border-radius:var(--radius);padding:20px 24px;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.sample:hover{border-color:var(--glass-border-2)}
.sample.is-playing{border-color:rgba(192,132,252,.55);box-shadow:var(--sheen),var(--shadow),0 0 0 1px rgba(168,85,247,.25),0 0 50px -12px rgba(168,85,247,.55)}
.sample-title{display:flex;flex-direction:column;gap:6px;min-width:0}
.sample-title h3{font-size:1.14rem;font-weight:600;letter-spacing:-.02em}
.sample-title .desc{font-size:.86rem;color:var(--muted);line-height:1.45}
.type-badge{align-self:flex-start;font:500 .66rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--lavender);background:rgba(168,85,247,.18);border:1px solid rgba(192,132,252,.28);padding:5px 9px;border-radius:999px}
.sample-wave{display:flex;flex-direction:column;gap:6px;min-width:0}
.sample-wave .times{display:flex;justify-content:space-between;font:400 .72rem/1 var(--font-mono);color:var(--muted)}
.sample-meta{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:10px 14px}
.meta-item{display:flex;flex-direction:column;gap:4px}
.meta-item dt{font:500 .66rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.meta-item dd{margin:0;font:500 .98rem/1.1 var(--font-mono);color:var(--text)}
.sample-meta dl{display:contents}
.sample-tags{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sample-tags .fmt{margin-left:auto;font:400 .72rem/1 var(--font-mono);color:var(--muted)}
.empty{text-align:center;padding:48px 20px;border:1px dashed rgba(255,255,255,.18);border-radius:var(--radius);color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:14px;background:rgba(255,255,255,.03)}

/* ---------- Packs ---------- */
.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pack{display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;transition:transform .3s ease,border-color .3s ease}
.pack:hover{transform:translateY(-4px);border-color:var(--glass-border-2)}
.pack-art{aspect-ratio:16/10;position:relative;overflow:hidden;margin:10px 10px 0;border-radius:18px;border:1px solid rgba(255,255,255,.08)}
.pack-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 35%)}
.art-1{background:radial-gradient(circle at 28% 32%,#E9D5FF 0 6%,#C084FC 12%,#7C3AED 22%,transparent 23%),radial-gradient(circle at 28% 32%,transparent 0 31%,rgba(192,132,252,.45) 31.5% 32.3%,transparent 33%),radial-gradient(circle at 28% 32%,transparent 0 44%,rgba(192,132,252,.25) 44.5% 45.2%,transparent 46%),radial-gradient(ellipse at 80% 90%,rgba(124,58,237,.45),transparent 60%),linear-gradient(135deg,#1a0f2e,#0a0812)}
.art-2{background:repeating-linear-gradient(115deg,rgba(255,255,255,.08) 0 2px,transparent 2px 18px),radial-gradient(ellipse at 78% 22%,rgba(168,85,247,.6),transparent 55%),radial-gradient(ellipse at 10% 100%,rgba(91,33,182,.5),transparent 60%),linear-gradient(135deg,#150d26,#09070f)}
.art-3{background:repeating-radial-gradient(circle at 70% 120%,rgba(216,180,254,.12) 0 1px,transparent 1px 16px),radial-gradient(ellipse at 70% 110%,rgba(192,132,252,.5),transparent 60%),linear-gradient(180deg,#07060c,#160d28)}
.pack-body{display:flex;flex-direction:column;gap:10px;padding:20px 22px 24px;flex:1}
.pack-body h3{font-size:1.3rem;letter-spacing:-.03em}
.pack-body p{font-size:.93rem;margin-bottom:8px}
.pill{align-self:flex-start;font:500 .66rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-2);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);padding:5px 10px;border-radius:999px}
.pill-accent{color:#fff;background:var(--grad);border-color:rgba(255,255,255,.25)}

/* ---------- Signup ---------- */
.signup{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;border-radius:32px;padding:54px;background:radial-gradient(ellipse at 100% 0%,rgba(168,85,247,.22),transparent 55%),radial-gradient(ellipse at 0% 100%,rgba(91,33,182,.18),transparent 50%),linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.03))}
.signup-copy h2{font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-.04em;margin-bottom:14px}
.signup-fields{display:flex;flex-direction:column;gap:10px}
.signup-fields>label{font:500 .72rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.signup-row{display:flex;gap:10px}
.signup input{height:50px;min-height:50px;flex:1 1 auto;border-radius:999px;padding:0 20px}
.signup input[aria-invalid="true"]{border-color:#FF8FA3}
.err{color:#FFB3C1;min-height:1.2em}
.err:empty{display:none}
.thanks{display:flex;gap:16px;align-items:center;padding:22px;border-radius:20px;background:rgba(168,85,247,.14);border:1px solid rgba(192,132,252,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.15)}
.thanks:focus{outline:none}
.thanks h3{font-size:1.25rem;margin-bottom:4px;letter-spacing:-.02em}
.thanks-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--grad);color:#fff;font-weight:700;font-size:1.2rem;flex:none;box-shadow:0 6px 20px -6px rgba(168,85,247,.9)}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid rgba(255,255,255,.08);padding:48px 0 110px;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent)}
.footer-inner{display:grid;grid-template-columns:1fr auto;gap:24px 40px;align-items:start}
.footer-brand{display:flex;flex-direction:column;gap:10px}
.footer-nav{display:flex;flex-wrap:wrap;gap:12px 26px}
.footer-nav a{text-decoration:none;color:var(--text-2);font-size:.92rem}
.footer-nav a:hover{color:var(--lavender)}
.footer-note{grid-column:1/-1;padding-top:20px;border-top:1px solid rgba(255,255,255,.08)}

/* ---------- Mini player ---------- */
.mini-player{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:14px;width:min(560px,calc(100% - 24px));padding:10px 18px 10px 10px;border-radius:999px;background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(168,85,247,.08));box-shadow:var(--sheen),0 24px 60px -12px rgba(0,0,0,.9),0 0 40px -10px rgba(124,58,237,.5)}
.mini-info{display:flex;flex-direction:column;min-width:0;flex:0 1 auto;line-height:1.25}
.mini-label{font:500 .62rem/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--lavender)}
#mini-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-bar{flex:1;min-width:40px;height:4px;background:rgba(255,255,255,.14);border-radius:4px;overflow:hidden}
.mini-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#7C3AED,#D8B4FE);box-shadow:0 0 10px rgba(192,132,252,.8)}

/* ---------- Responsive ---------- */
@media (max-width:1180px){.site-header{margin-left:12px;margin-right:12px}}
@media (max-width:1080px){
  .sample{grid-template-columns:46px 1fr 210px}
  .sample-wave{grid-column:2/-1;grid-row:2}
  .sample-tags{grid-row:3}
  .filters{grid-template-columns:1fr 1fr}
  .field-search{grid-column:1/-1}
}
@media (max-width:900px){
  .hero{padding:60px 0 72px}
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .packs{grid-template-columns:1fr 1fr}
  .packs .pack:last-child{grid-column:1/-1}
  .signup{grid-template-columns:1fr;padding:36px;gap:28px}
}
@media (max-width:640px){
  .wrap{padding:0 18px}
  .site-header{top:8px;margin:8px 10px 0}
  .header-inner{height:56px;padding:0 8px 0 18px}
  .nav{gap:0}
  .nav>a{display:none}
  html{scroll-padding-top:76px}
  .blob{filter:blur(60px)}
  .b1{width:440px;height:440px;left:-200px}.b2{width:400px;height:400px;right:-220px}.b3{width:460px;height:460px;left:-260px}.b4{width:420px;height:420px;right:-240px}.b5{width:480px;height:480px;left:-10%}.b6{width:380px;height:380px;right:-200px}
  .hero{padding:40px 0 56px}
  .hero h1{font-size:2.6rem}
  .lede{font-size:1.04rem;margin-bottom:28px}
  .cta-row{flex-direction:column;align-items:stretch;margin-bottom:30px}
  .facts{gap:8px}
  .hero-card{padding:18px;border-radius:24px}
  .wave-lg{height:84px}
  .section{padding:64px 0}
  .section-head{margin-bottom:22px}
  .filters{grid-template-columns:1fr 1fr;padding:16px;gap:14px;border-radius:22px}
  .field-bpm,.field-format{grid-column:1/-1}
  .field-bpm .check{margin-top:6px}
  .tag-filter{grid-template-columns:1fr;gap:10px}
  .tag-filter .label-sm{padding-top:0}
  .tag-filter .link-btn{justify-self:start}
  .sample{grid-template-columns:46px 1fr;gap:14px;padding:16px;border-radius:22px}
  .sample-meta{grid-column:1/-1;grid-row:3;grid-template-columns:repeat(3,auto);justify-content:start;gap:4px 26px}
  .sample-wave{grid-column:1/-1;grid-row:2}
  .sample-tags{grid-column:1/-1;grid-row:4}
  .sample-tags .fmt{margin-left:0;width:100%;margin-top:4px}
  .packs{grid-template-columns:1fr}
  .packs .pack:last-child{grid-column:auto}
  .pack-art{aspect-ratio:16/7}
  .signup{padding:26px 20px;border-radius:26px}
  .signup-row{flex-direction:column}
  .signup-row .btn{width:100%}
  .footer-inner{grid-template-columns:1fr}
  .mini-player{bottom:12px}
}

/* ---------- Live: coming-soon states ---------- */
.soon-label{align-self:flex-start;margin-top:auto;font:500 .7rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--lavender);background:rgba(168,85,247,.14);border:1px solid rgba(192,132,252,.32);padding:7px 12px;border-radius:999px}
.signup-soon{display:flex;flex-direction:column;gap:12px;padding:26px 28px;border-radius:22px;background:rgba(5,5,10,.4);border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.soon-row{display:flex;align-items:center;gap:12px}
.soon-dot{width:12px;height:12px;border-radius:50%;background:var(--purple-400);box-shadow:0 0 0 5px rgba(168,85,247,.2),0 0 18px rgba(192,132,252,.9);animation:soonpulse 2.4s ease-in-out infinite}
.soon-title{font-family:var(--font-display);font-weight:600;font-size:1.3rem;letter-spacing:-.02em}
@keyframes soonpulse{50%{box-shadow:0 0 0 9px rgba(168,85,247,.08),0 0 24px rgba(192,132,252,.6)}}
@media (prefers-reduced-motion:reduce){.soon-dot{animation:none}}

/* ---------- Free badges ---------- */
.free-badge{display:inline-flex;align-items:center;font:600 .64rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:#fff;background:var(--grad);border:1px solid rgba(255,255,255,.28);padding:5px 9px;border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 4px 14px -6px rgba(139,92,246,.9);text-shadow:0 1px 1px rgba(40,0,80,.35)}
.free-badge-sm{font-size:.58rem;padding:4px 7px;margin-left:8px;vertical-align:1px}
.badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.midi-badge{color:#CCFBEF;background:rgba(45,212,191,.14);border-color:rgba(94,234,212,.42)}
.type-badge-ghost{color:var(--text-2);background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}

/* ---------- Instrument navigation ---------- */
.inst-nav{margin-bottom:18px}
.inst-nav>.label-sm{display:block;margin:0 0 12px;font-weight:500;letter-spacing:.12em}
.inst-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:10px}
.inst-grid li{display:flex;min-width:0}
.inst-card{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding:14px 12px 13px;border-radius:18px;text-decoration:none;color:var(--text);
  background:linear-gradient(160deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.03) 50%,rgba(168,85,247,.05) 100%);
  -webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);box-shadow:var(--sheen),0 12px 30px -18px rgba(0,0,0,.9);
  transition:border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease}
.inst-card:hover{border-color:rgba(192,132,252,.5);background:linear-gradient(160deg,rgba(168,85,247,.16),rgba(255,255,255,.04));transform:translateY(-2px)}
.inst-card:focus-visible{outline:2px solid var(--lavender-2);outline-offset:3px;border-radius:18px}
.inst-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:rgba(168,85,247,.16);border:1px solid rgba(192,132,252,.28);color:var(--lavender);margin-bottom:4px}
.inst-ico svg{width:20px;height:20px}
.inst-name{font-family:var(--font-display);font-weight:600;font-size:.9rem;line-height:1.2;letter-spacing:-.01em}
.inst-count{font:500 .66rem/1.2 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:auto}
.inst-card.is-soon .inst-ico{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:var(--muted)}
.inst-card.is-soon .inst-name{color:var(--text-2)}
.inst-card[aria-current="true"]{border-color:rgba(216,180,254,.6);background:radial-gradient(120% 90% at 0% 0%,rgba(168,85,247,.38),transparent 70%),linear-gradient(160deg,rgba(124,58,237,.3),rgba(168,85,247,.12));box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0 0 1px rgba(168,85,247,.3),0 12px 34px -12px rgba(139,92,246,.75)}
.inst-card[aria-current="true"] .inst-ico{background:var(--grad);border-color:rgba(255,255,255,.3);color:#fff}
.inst-card[aria-current="true"] .inst-count{color:var(--lavender)}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.inst-card{background:rgba(22,16,36,.94)}}

/* empty instrument: coming soon */
.inst-soon{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:26px 28px;border-radius:var(--radius);border:1px dashed rgba(192,132,252,.35);background:radial-gradient(ellipse at 0% 0%,rgba(168,85,247,.14),transparent 60%),rgba(255,255,255,.03)}
.inst-soon-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:rgba(168,85,247,.16);border:1px solid rgba(192,132,252,.3);color:var(--lavender)}
.inst-soon-icon svg{width:28px;height:28px}
.inst-soon .soon-row{margin-bottom:6px}
.inst-soon .soon-title{font-size:1.15rem}

/* ---------- Creators teaser ---------- */
.section-tight{padding-top:0}
.creators{display:grid;grid-template-columns:1.2fr 1fr;gap:20px 48px;align-items:center;padding:40px 44px;border-radius:28px;border:1px solid var(--glass-border);background:radial-gradient(ellipse at 100% 100%,rgba(124,58,237,.18),transparent 55%),linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.02));box-shadow:var(--sheen),0 24px 60px -30px rgba(0,0,0,.85)}
.creators-copy h2{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.035em;margin-bottom:12px}
.creators-copy p.muted{max-width:520px}
.creators-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.creators-points li{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:rgba(5,5,10,.35);border:1px solid rgba(255,255,255,.1);color:var(--text-2);font-size:.93rem}
.creators-points .ico{color:var(--lavender)}
.creators-soon{grid-column:1/-1;justify-self:start;margin-top:4px}

@media (max-width:1080px){
  .inst-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (max-width:900px){
  .creators{grid-template-columns:1fr;padding:32px}
}
@media (max-width:640px){
  .inst-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .inst-grid li:first-child{grid-column:1/-1} /* "All" on its own row keeps the 9 sections in a 3x3 grid */
  .inst-card{padding:12px 10px 11px;border-radius:16px;gap:5px}
  .inst-ico{width:30px;height:30px;border-radius:10px}
  .inst-ico svg{width:18px;height:18px}
  .inst-name{font-size:.84rem}
  .inst-count{font-size:.6rem;letter-spacing:.06em}
  .inst-soon{grid-template-columns:auto 1fr;padding:20px;gap:14px 16px}
  .inst-soon .btn{grid-column:1/-1;justify-self:start}
  .creators{padding:26px 20px;border-radius:26px}
}

/* ---------- 3D geometric background (js/geo-bg.js draws the canvas; this is the no-JS fallback) ---------- */
.geo-bg{position:fixed;top:0;left:0;width:100%;height:100vh;height:100lvh;z-index:-2;pointer-events:none;overflow:hidden;contain:strict;
  background:radial-gradient(ellipse 70% 55% at 88% 6%,rgba(124,58,237,.28),transparent 62%),
             radial-gradient(ellipse 60% 55% at 4% 78%,rgba(109,40,217,.22),transparent 62%),
             radial-gradient(ellipse 60% 50% at 50% 45%,rgba(5,5,7,.85),transparent 75%),
             url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='208' viewBox='0 0 120 208'%3E%3Cg stroke='rgba(205,180,255,.06)' stroke-width='1'%3E%3Cpath d='M0 104L60 0L120 104Z' fill='rgba(124,58,237,.07)'/%3E%3Cpath d='M0 0H60L0 104Z' fill='rgba(255,255,255,.012)'/%3E%3Cpath d='M60 0H120V104Z' fill='rgba(168,85,247,.035)'/%3E%3Cpath d='M0 104H120L60 208Z' fill='rgba(109,40,217,.05)'/%3E%3Cpath d='M0 104L60 208H0Z' fill='rgba(255,255,255,.01)'/%3E%3Cpath d='M120 104V208H60Z' fill='rgba(139,92,246,.04)'/%3E%3C/g%3E%3C/svg%3E") 0 0/120px 208px,
             linear-gradient(160deg,#0b0714 0%,#050507 55%,#0a0612 100%)}
.geo-bg canvas{position:absolute;inset:0;width:100%;height:100%}
.geo-bg.geo-on+.bg-glow{opacity:.16}

/* bolder geo background: keep glass readable */
.hero-card,.sample,.filters,.pack,.signup,.inst-card,.mini-player{background-color:rgba(9,6,17,.5)}
.creators,.inst-soon{-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);background-color:rgba(9,6,17,.4)}
.facts li{background:rgba(12,8,22,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}

/* =================== Accounts (auth.js / account / profile) =================== */

/* ---------- header auth slot: flex + gap, never overlaps ---------- */
.auth-slot{display:flex;flex:none;align-items:center;gap:8px;white-space:nowrap}
.auth-slot::before{content:"";flex:none;width:1px;height:22px;margin-right:clamp(6px,1vw,12px);background:linear-gradient(180deg,transparent,rgba(255,255,255,.22),transparent)}
.auth-slot .btn{flex:none;height:38px;padding:0 17px;font-size:.9rem}
.auth-slot .btn-ghost.nav-signin{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16);color:var(--text)}
.auth-slot .btn-ghost.nav-signin:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.3)}
.avatar{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--grad);color:#fff;font-weight:700;border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar-sm{width:30px;height:30px;font-size:.82rem}
.acct-menu{position:relative;flex:none}
.acct-btn{display:flex;align-items:center;gap:9px;height:40px;padding:0 12px 0 4px;border-radius:999px;border:1px solid var(--glass-border-2);background:rgba(255,255,255,.07);cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.16);max-width:230px;transition:background .15s ease,border-color .15s ease}
.acct-btn:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3)}
.acct-name{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.acct-caret{width:16px;height:16px;color:var(--lavender-2);flex:none;transition:transform .2s ease}
.acct-btn[aria-expanded="true"] .acct-caret{transform:rotate(180deg)}
.acct-pop{position:absolute;right:0;top:calc(100% + 12px);min-width:232px;max-width:min(300px,calc(100vw - 24px));padding:8px;border-radius:20px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(168,85,247,.06)),rgba(14,9,26,.94);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border-2);box-shadow:var(--sheen),0 24px 50px -16px rgba(0,0,0,.95),0 0 50px -20px rgba(124,58,237,.5);z-index:70;display:flex;flex-direction:column;gap:2px}
.acct-pop{background-color:rgba(14,9,26,.98)}
.acct-pop a,.acct-pop button{display:block;width:100%;text-align:left;padding:11px 12px;border-radius:12px;border:0;background:none;color:var(--text);text-decoration:none;font-size:.93rem;font-weight:500;cursor:pointer}
.acct-pop a:hover,.acct-pop button:hover{background:rgba(168,85,247,.18)}
.acct-who{display:flex;flex-direction:column;gap:2px;padding:8px 12px 12px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.08);min-width:0}
.acct-who-name{font-weight:600;font-size:.94rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-who-mail{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px){
  .auth-slot{gap:6px}
  .auth-slot::before{display:none}
  .auth-slot .btn{height:36px;padding:0 14px;font-size:.86rem}
  .acct-name{display:none}
  .acct-btn{padding:0 8px 0 3px;height:38px;gap:6px}
}
@media (max-width:370px){
  .header-inner{gap:10px;padding:0 7px 0 16px}
  .wordmark{width:70px;height:28px}
  .auth-slot .btn{padding:0 12px;font-size:.84rem}
}

/* ---------- download buttons ---------- */
.btn-dl{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px;border-radius:999px;border:1px solid rgba(192,132,252,.45);background:rgba(168,85,247,.16);color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.14);transition:background .15s ease,border-color .15s ease}
.btn-dl .ico{width:15px;height:15px;color:var(--lavender)}
.btn-dl:hover{background:rgba(168,85,247,.3);border-color:rgba(216,180,254,.7)}
.btn-dl.is-busy,#hero-dl.is-busy{opacity:.6;cursor:progress}
.sample-tags .fmt+.btn-dl{margin-left:12px}
.hero-card-dl{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}
.hero-card-dl .btn .ico{width:16px;height:16px}
.hero-card-dl a{color:var(--accent-text)}
@media (max-width:640px){.sample-tags .fmt+.btn-dl{margin-left:0;margin-top:6px}}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);z-index:90;max-width:min(520px,calc(100% - 24px));padding:13px 20px;border-radius:18px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(168,85,247,.08)),rgba(18,12,32,.95);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid rgba(192,132,252,.45);box-shadow:var(--sheen),0 20px 50px -16px rgba(0,0,0,.95);font-size:.92rem}
.toast-err{border-color:rgba(255,143,163,.6)}

/* ---------- shared glass card (account, profile, modal) ---------- */
.auth-card,.profile-card,.gate-card{
  position:relative;border:1px solid var(--glass-border);
  background:linear-gradient(160deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,.035) 45%,rgba(168,85,247,.07) 100%);background-color:rgba(9,6,17,.62);
  -webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);
  box-shadow:var(--sheen),0 40px 90px -30px rgba(0,0,0,.9),0 0 80px -20px rgba(124,58,237,.38)}
.auth-card::before,.profile-card::before,.gate-card::before,.acct-box::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,0) 26%),radial-gradient(120% 60% at 15% 0%,rgba(255,255,255,.07),transparent 60%)}
.auth-card>*,.profile-card>*,.gate-card>*,.acct-box>*{position:relative;z-index:1}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.auth-card,.profile-card,.gate-card,.acct-box{background:rgba(22,16,36,.96)}}

/* ---------- download gate modal ---------- */
html.gate-open{overflow:hidden}
.gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}
.gate-scrim{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(40,14,80,.55),rgba(4,2,10,.82) 70%);-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%)}
.gate-card{width:min(480px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:40px 36px 34px;border-radius:30px;border-color:var(--glass-border-2);
  background:radial-gradient(ellipse at 100% 0%,rgba(168,85,247,.26),transparent 55%),radial-gradient(ellipse at 0% 100%,rgba(91,33,182,.2),transparent 55%),linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));background-color:rgba(13,9,24,.86);
  box-shadow:var(--sheen),0 40px 90px -20px rgba(0,0,0,.95),0 0 100px -20px rgba(124,58,237,.55);transform:translateY(10px) scale(.98);opacity:0;transition:transform .25s ease,opacity .25s ease}
.gate.is-in .gate-card{transform:none;opacity:1}
.gate-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:var(--grad);color:#fff;margin-bottom:22px;border:1px solid rgba(255,255,255,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 12px 30px -8px rgba(139,92,246,.9),0 0 0 6px rgba(168,85,247,.12)}
.gate-ico svg{width:26px;height:26px}
.gate-card .eyebrow{margin-bottom:12px}
.gate-card h2{font-size:clamp(1.55rem,4.2vw,1.9rem);letter-spacing:-.035em;line-height:1.1;margin-bottom:14px;padding-right:24px}
.gate-card #gate-p{font-size:.98rem;line-height:1.6}
.gate-card strong{color:var(--text)}
.gate-x{position:absolute;top:16px;right:16px;z-index:2;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--glass-border);background:rgba(255,255,255,.06);cursor:pointer;color:var(--text-2);transition:background .15s ease,color .15s ease}
.gate-x svg{width:18px;height:18px}
.gate-x:hover{background:rgba(255,255,255,.13);color:#fff}
.gate-perks,.benefits{list-style:none;margin:22px 0 0;padding:18px 0 0;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:12px}
.gate-perks li,.benefits li{position:relative;padding-left:32px;color:var(--text-2);font-size:.95rem;line-height:1.45}
.gate-perks li::before,.benefits li::before{content:"";position:absolute;left:0;top:0;width:21px;height:21px;border-radius:50%;background:rgba(168,85,247,.22) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.5 3.5 7.5-8' fill='none' stroke='%23E9D5FF' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;border:1px solid rgba(192,132,252,.4)}
.gate-soon{display:flex;align-items:center;gap:12px;margin-top:20px;padding:13px 15px;border-radius:16px;background:rgba(168,85,247,.12);border:1px solid rgba(192,132,252,.3);font-size:.9rem;color:var(--text-2)}
.gate-soon .soon-dot{width:10px;height:10px;flex:none}
.gate-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
.gate-actions .btn{width:100%}
@media (max-width:640px){
  .gate{padding:14px}
  .gate-card{padding:32px 22px 24px;border-radius:26px}
  .gate-ico{width:50px;height:50px;border-radius:16px;margin-bottom:18px}
}
@media (max-width:380px){.gate-actions{grid-template-columns:1fr}}

/* ---------- account page (showcase) ---------- */
.page-auth main{position:relative;padding:72px 0 112px}
.auth-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,460px);grid-template-areas:"intro card" "perks card";column-gap:clamp(40px,6vw,88px);row-gap:36px;align-items:center;min-height:calc(100vh - 74px - 184px)}
.auth-intro{grid-area:intro;align-self:end}
.auth-perks{grid-area:perks;align-self:start}
.auth-card{grid-area:card}
.auth-intro h1{font-size:clamp(2.7rem,5.6vw,4.6rem);font-weight:700;letter-spacing:-.045em;margin-bottom:22px}
.auth-intro .lede{max-width:520px;margin-bottom:28px}
.auth-intro .facts{max-width:none;gap:8px}
.auth-intro .facts li{font-size:.84rem;padding:6px 13px}
.auth-perks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;max-width:540px}
.auth-perks li{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:18px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02));background-color:rgba(9,6,17,.5);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sheen),0 14px 34px -22px rgba(0,0,0,.9)}
.auth-perks strong{display:block;font-family:var(--font-display);font-weight:600;font-size:1rem;letter-spacing:-.01em;color:var(--text);margin-bottom:2px}
.auth-perks span.perk-text{display:block;font-size:.9rem;color:var(--muted);line-height:1.45}
.perk-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:14px;background:rgba(168,85,247,.16);border:1px solid rgba(192,132,252,.3);color:var(--lavender);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.perk-ico svg{width:22px;height:22px}
.auth-perks li:first-child .perk-ico{background:var(--grad);border-color:rgba(255,255,255,.28);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 8px 22px -8px rgba(139,92,246,.85)}

.auth-card{border-radius:30px;padding:30px 32px 28px;box-shadow:var(--sheen),0 40px 90px -30px rgba(0,0,0,.9),0 0 120px -16px rgba(124,58,237,.5)}
.auth-card-head{text-align:center;margin:26px 0 22px}
.auth-card-head h2{font-size:1.55rem;letter-spacing:-.03em;margin-bottom:8px}
.auth-card-head p{font-size:.92rem;color:var(--muted)}
.tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:5px;border-radius:999px;background:rgba(5,5,10,.55);border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.5)}
.tab{height:42px;border-radius:999px;border:1px solid transparent;background:none;color:var(--text-2);font-weight:600;font-size:.95rem;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}
.tab:hover{color:#fff;background:rgba(255,255,255,.05)}
.tab[aria-selected="true"]{background:var(--grad);color:#fff;border-color:rgba(255,255,255,.22);text-shadow:0 1px 1px rgba(40,0,80,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 8px 22px -8px rgba(139,92,246,.85)}
.oauth{display:flex;flex-direction:column;gap:12px}
.btn-oauth{width:100%;height:50px;gap:12px;justify-content:center;background:#fff;color:#14101f;border-color:rgba(255,255,255,.7);text-shadow:none;box-shadow:inset 0 -1px 0 rgba(0,0,0,.08),0 10px 26px -14px rgba(0,0,0,.9)}
.btn-oauth:hover{background:#F5F3FF;transform:translateY(-1px)}
.btn-oauth svg{width:20px;height:20px;flex:none}
.btn-oauth.is-apple{background:#0b0a10;color:#fff;border-color:rgba(255,255,255,.28)}
.btn-oauth[disabled],.btn-oauth.is-apple[disabled]{cursor:not-allowed;opacity:1;transform:none;background:rgba(255,255,255,.035);color:var(--muted);border:1px dashed rgba(255,255,255,.18);box-shadow:none}
.btn-oauth[disabled] svg{opacity:.6}
.btn-oauth[disabled]:hover{background:rgba(255,255,255,.035)}
.soon-tag{display:inline-flex;align-items:center;font:600 .6rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.1em;padding:5px 8px;border-radius:999px;background:rgba(168,85,247,.2);border:1px solid rgba(192,132,252,.35);color:var(--lavender)}
.divider{display:flex;align-items:center;gap:14px;margin:24px 0;color:var(--muted);font:500 .7rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.14em}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.16))}
.divider::after{background:linear-gradient(90deg,rgba(255,255,255,.16),rgba(255,255,255,0))}
.form{display:flex;flex-direction:column;gap:18px}
.form fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:18px}
.f{display:flex;flex-direction:column;gap:9px;min-width:0}
.f>label,.f>.f-label{font:500 .72rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.f>label .f-hint,.f>.f-label .f-hint{font:400 .78rem/1 var(--font-body);text-transform:none;letter-spacing:0}
.f input,.f textarea{width:100%;min-width:0;height:50px;padding:0 16px;border-radius:var(--radius-sm);background:rgba(5,5,10,.55);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 2px rgba(0,0,0,.45);color:var(--text);font:inherit;font-size:1rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.f textarea{height:auto;min-height:100px;padding:13px 16px;resize:vertical;line-height:1.5}
.f input::placeholder,.f textarea::placeholder{color:#958FAD}
.f input:hover,.f textarea:hover{border-color:rgba(255,255,255,.26)}
.f input:focus,.f textarea:focus{outline:none;border-color:var(--purple-400);background:rgba(5,5,10,.7);box-shadow:0 0 0 4px rgba(168,85,247,.25)}
.f input[aria-invalid="true"],.f textarea[aria-invalid="true"]{border-color:#FF8FA3}
.f input[readonly]{color:var(--muted);background:rgba(255,255,255,.03)}
.f input:disabled,.btn:disabled{cursor:not-allowed;opacity:.55}
.f-hint{font-size:.8rem;color:var(--muted);line-height:1.4}
.f-err{font-size:.84rem;color:#FFB3C1;line-height:1.4}
.f-err:empty{display:none}
.prefix{position:relative}
.prefix span{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.prefix input{padding-left:33px}
.form .btn-primary{width:100%;height:52px;margin-top:4px}
.form-row{display:flex;justify-content:space-between;align-items:center;gap:8px 12px;flex-wrap:wrap;margin-top:-4px}
.form-row .link-btn:only-child,.form-row #to-forgot[hidden]+#to-other{margin:0 auto}
.form .link-btn,.fine a{color:var(--accent-text);text-decoration-color:rgba(216,180,254,.45)}
.form .link-btn:hover{color:#F3E8FF}
.notice{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;font-size:.92rem;line-height:1.5;margin-bottom:22px;background:rgba(168,85,247,.13);border:1px solid rgba(192,132,252,.38);color:var(--text)}
.notice:focus{outline:none}
.notice a{color:var(--accent-text)}
.notice-err{background:rgba(255,92,128,.11);border-color:rgba(255,143,163,.5)}
.notice-ok{background:rgba(74,222,128,.09);border-color:rgba(134,239,172,.42)}
.notice .soon-dot{flex:none;margin-top:6px;width:10px;height:10px}
.notice strong{display:block;font-size:1rem;margin-bottom:2px}
.fine{font-size:.82rem;color:var(--muted);margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);text-align:center}
.auth-sub{font-size:1.5rem;letter-spacing:-.03em;margin-bottom:2px}
#f-forgot .muted,#f-reset .muted{margin-bottom:4px}
#f-forgot .link-btn{align-self:center}
.signed-in{display:flex;flex-direction:column;gap:16px;align-items:flex-start;padding:6px 0}
.signed-in .row{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:960px){
  .auth-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "card" "perks";row-gap:32px;min-height:0;max-width:600px;margin:0 auto}
  .auth-intro,.auth-perks{align-self:auto}
  .auth-intro{text-align:center}
  .auth-intro .lede{margin-left:auto;margin-right:auto}
  .auth-intro .facts{justify-content:center;margin:0 auto}
  .auth-perks{max-width:none}
}
@media (max-width:640px){
  .page-auth main{padding:40px 0 80px}
  .auth-intro h1{font-size:2.6rem;margin-bottom:16px}
  .auth-intro .lede{margin-bottom:22px}
  .auth-intro .facts{gap:8px}
  .auth-card{padding:22px 18px 20px;border-radius:26px}
  .auth-card-head{margin:22px 0 18px}
  .auth-card-head h2{font-size:1.35rem}
  .auth-perks li{padding:14px;gap:14px}
  .perk-ico{width:40px;height:40px;border-radius:12px}
}

/* ---------- profile page ---------- */
.profile-wrap{max-width:920px}
.profile-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap;margin-bottom:32px}
.profile-head h1{font-size:clamp(2.4rem,4.8vw,3.6rem);letter-spacing:-.045em;margin-bottom:12px}
.profile-head .lede{font-size:1.05rem;margin:0;max-width:520px}
#p-email:not(:empty){display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(12,8,22,.6);border:1px solid rgba(255,255,255,.12);color:var(--text-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
#p-email:not(:empty)::before{content:"";width:8px;height:8px;border-radius:50%;background:#86EFAC;box-shadow:0 0 10px rgba(134,239,172,.8)}
.profile-card{border-radius:30px;padding:36px}
.profile-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;align-items:start}
.avatar-edit{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;padding:26px 18px 22px;border-radius:22px;background:rgba(5,5,10,.35);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.avatar-xl{width:150px;height:150px;font-size:3.4rem;border-width:2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 0 0 6px rgba(168,85,247,.14),0 20px 50px -18px rgba(139,92,246,.8)}
.avatar-edit .f{position:relative;align-items:center;width:100%;gap:10px}
.avatar-edit .f>.sr-only{left:0;top:0}
.avatar-edit .f>label.btn{width:100%;cursor:pointer;font:600 .9rem/1 var(--font-body);text-transform:none;letter-spacing:-.01em;color:var(--text);display:inline-flex;align-items:center;justify-content:center}
.avatar-edit .f-hint{font-size:.78rem}
.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.profile-card .form{gap:22px}
.genres{display:flex;flex-wrap:wrap;gap:8px}
.genres .chip{height:36px;padding:0 15px;font-size:.88rem}
.genres .chip:disabled{opacity:.45;cursor:not-allowed}
.profile-actions{display:flex;align-items:center;gap:14px 18px;flex-wrap:wrap;margin-top:4px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08)}
.profile-actions .btn-primary{width:auto;min-width:190px;margin-top:0}
.save-state{font-size:.9rem;color:var(--muted)}
.save-state.ok{color:#BBF7D0}
.save-state.err{color:#FFB3C1}
.acct-foot{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}
.acct-box{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:24px 26px;border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02));background-color:rgba(9,6,17,.55);border:1px solid rgba(255,255,255,.11);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--sheen),0 18px 40px -26px rgba(0,0,0,.9)}
.acct-box h2{font-size:1.1rem;letter-spacing:-.02em;margin-bottom:6px}
.acct-box p{font-size:.9rem;color:var(--muted);margin-bottom:16px}
.acct-box .btn{margin-top:auto}
.acct-box a:not(.btn){color:var(--accent-text)}
.loading{display:flex;align-items:center;gap:12px;color:var(--muted);padding:40px 0}
@media (max-width:760px){
  .profile-grid{grid-template-columns:1fr;gap:26px}
  .avatar-edit{flex-direction:row;text-align:left;align-items:center;padding:18px;gap:18px}
  .avatar-xl{width:96px;height:96px;font-size:2.2rem}
  .avatar-edit .f{align-items:flex-start;width:auto;flex:1;min-width:0}
  .avatar-edit .f>label.btn{width:auto}
  .two,.acct-foot{grid-template-columns:1fr}
}
@media (max-width:640px){
  .profile-head{margin-bottom:24px}
  .profile-head h1{font-size:2.4rem}
  .profile-card{padding:22px 18px;border-radius:26px}
  .profile-actions .btn-primary{width:100%}
  .acct-box{padding:20px}
}
fieldset.form{border:0;margin:0;padding:0;min-width:0}
.fine,.auth-card-head p,.auth-intro .lede,.profile-head .lede{text-wrap:pretty}
@media (max-width:640px){.auth-intro .facts li{font-size:.8rem;padding:6px 12px}}
