:root{
  --ink:#15131F;
  --ink-soft:#221E30;
  --ink-line:#322C45;
  --paper:#F4F1E8;
  --paper-soft:#E8E2D4;
  --coral:#FF6E4E;   /* Voz A — Cobre */
  --teal:#1EC6AE;    /* Voz B — Agua  */
  --muted:#9B95A8;
  --muted-ink:#6E6880;
  --display:"Bricolage Grotesque",serif;
  --body:"Hanken Grotesk",sans-serif;
  --mono:"JetBrains Mono",monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);
  background:var(--ink);
  color:var(--paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
  overflow-x:hidden;
}
.wrap{max-width:960px;margin:0 auto;padding:0 28px}
a{color:inherit}

/* ---------------- HERO ---------------- */
.hero{position:relative;min-height:62vh;display:flex;flex-direction:column;
  justify-content:center;overflow:hidden;padding:64px 0 48px}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.32}
.hero-bg{position:absolute;inset:0;z-index:1;
  background:radial-gradient(120% 90% at 78% 6%, rgba(255,110,78,.18), transparent 55%),
             radial-gradient(120% 90% at 12% 96%, rgba(30,198,174,.18), transparent 55%),
             linear-gradient(180deg, rgba(21,19,31,.55), rgba(21,19,31,.86));}
.hero .wrap{position:relative;z-index:2}
.brandrow{display:flex;align-items:center;gap:16px;margin-bottom:26px}
.brandrow svg{width:78px;height:auto;flex:none}
.wordmark{font-family:var(--display);font-weight:800;letter-spacing:-.03em;line-height:.9;
  font-size:clamp(30px,6vw,52px)}
.wordmark .v{color:var(--muted)}
.hero-tag{font-family:var(--display);font-weight:400;font-size:clamp(18px,3vw,30px);
  color:var(--paper);margin-top:6px;letter-spacing:-.01em;max-width:24ch}
.hero-tag b{color:var(--coral);font-weight:600}
.hero-tag i{color:var(--teal);font-style:normal;font-weight:600}

/* ---------------- CARD / FORM ---------------- */
section{padding:54px 0;border-top:1px solid var(--ink-line)}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--coral);display:flex;align-items:center;gap:10px;margin-bottom:20px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--coral)}
h2{font-family:var(--display);font-weight:800;font-size:clamp(24px,3.4vw,38px);
  line-height:1.05;letter-spacing:-.02em;margin-bottom:14px}
p{color:#D8D3E0;font-size:16px;max-width:62ch}
.mono{font-family:var(--mono);font-size:13px;color:var(--muted)}

.panel{background:var(--ink-soft);border:1px solid var(--ink-line);border-radius:20px;
  padding:30px;margin-top:8px}

.drop{border:1.5px dashed var(--ink-line);border-radius:16px;padding:34px 24px;text-align:center;
  cursor:pointer;transition:border-color .2s, background .2s;background:rgba(244,241,232,.02)}
.drop:hover,.drop.drag{border-color:var(--coral);background:rgba(255,110,78,.06)}
.drop .big{font-family:var(--display);font-weight:600;font-size:20px;margin-bottom:6px}
.drop .small{color:var(--muted);font-size:14px}
.drop .file{margin-top:14px;font-family:var(--mono);font-size:13px;color:var(--teal);word-break:break-all}
input[type=file]{display:none}

.controls{display:flex;gap:24px;align-items:flex-end;flex-wrap:wrap;margin-top:26px}
.field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted-ink);margin-bottom:10px}
select{font-family:var(--body);font-size:16px;background:var(--ink);color:var(--paper);
  border:1px solid var(--ink-line);border-radius:12px;padding:12px 16px;min-width:140px;cursor:pointer}
select:focus{outline:none;border-color:var(--teal)}

.cta{margin-left:auto}
.btn{display:inline-flex;align-items:center;gap:12px;background:var(--paper);color:var(--ink);
  border:none;border-radius:999px;padding:15px 26px;font-family:var(--display);font-weight:600;
  font-size:16px;cursor:pointer;transition:transform .12s, opacity .2s}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}
.btn.ghost{background:transparent;color:var(--paper);border:1px solid var(--ink-line)}
.btn svg{width:24px;height:16px}

.hint{margin-top:16px;font-family:var(--mono);font-size:12px;color:var(--muted-ink)}

/* ---------------- PROGRESS ---------------- */
.progress{margin-top:26px;display:none}
.progress.on{display:block}
.steps{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.step{flex:1;min-width:150px;border:1px solid var(--ink-line);border-radius:12px;padding:14px 16px;
  background:var(--ink);transition:border-color .25s, background .25s}
.step .k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-ink)}
.step .v{font-family:var(--display);font-weight:600;font-size:16px;margin-top:4px}
.step.active{border-color:var(--coral);background:rgba(255,110,78,.08)}
.step.active .k{color:var(--coral)}
.step.ok{border-color:var(--teal)}
.step.ok .k{color:var(--teal)}
.bar{height:6px;border-radius:999px;background:var(--ink-line);overflow:hidden}
.bar > i{display:block;height:100%;width:30%;border-radius:999px;
  background:linear-gradient(90deg,var(--coral),var(--teal));transition:width .4s ease}
.statusline{margin-top:12px;font-family:var(--mono);font-size:13px;color:var(--muted)}
.statusline.err{color:var(--coral)}

/* ---------------- RESULTS / PLAYERS ---------------- */
.results{margin-top:30px;display:none;flex-direction:column;gap:18px}
.results.on{display:flex}
.results-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.track{background:var(--ink-soft);border:1px solid var(--ink-line);border-radius:18px;padding:20px 22px;
  border-left:4px solid var(--coral)}
.track.teal{border-left-color:var(--teal)}
.track .top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.track .name{font-family:var(--display);font-weight:700;font-size:19px;display:flex;align-items:center;gap:10px}
.dot{width:12px;height:12px;border-radius:50%;background:var(--coral);flex:none}
.track.teal .dot{background:var(--teal)}
.track .meta{font-family:var(--mono);font-size:12px;color:var(--muted)}
.wave{width:100%;height:72px}
.track .actions{display:flex;align-items:center;gap:12px;margin-top:14px}
.iconbtn{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--paper);
  border:1px solid var(--ink-line);border-radius:999px;padding:9px 16px;font-family:var(--body);
  font-size:14px;cursor:pointer}
.iconbtn:hover{border-color:var(--paper)}
.iconbtn.play{background:var(--coral);color:var(--ink);border:none;font-weight:600}
.track.teal .iconbtn.play{background:var(--teal)}
.time{font-family:var(--mono);font-size:12px;color:var(--muted);margin-left:auto}

footer{padding:40px 0 60px;border-top:1px solid var(--ink-line);text-align:center}
footer .mono{color:var(--muted-ink)}

@media(max-width:640px){
  .controls{flex-direction:column;align-items:stretch}
  .cta{margin-left:0}
  .btn{width:100%;justify-content:center}
}

/* ===== Fase 1: topbar, auth, créditos, paquetes ===== */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;
  padding:12px 28px;background:rgba(21,19,31,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--ink-line)}
.brandmini{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:18px}
.brandmini svg{width:42px;height:auto}
.brandmini b{color:var(--muted)}
.userbox{display:flex;align-items:center;gap:12px}
.credits{font-family:var(--mono);font-size:13px;color:var(--teal);border:1px solid var(--ink-line);
  border-radius:999px;padding:6px 14px}
.btn.sm{padding:8px 16px;font-size:14px}
.hero.compact{min-height:38vh;padding:40px 0 32px}

.authform{display:flex;flex-direction:column;gap:12px;max-width:380px}
.authform input{font-family:var(--body);font-size:15px;background:var(--ink);color:var(--paper);
  border:1px solid var(--ink-line);border-radius:12px;padding:13px 16px}
.authform input:focus{outline:none;border-color:var(--teal)}
.authbtns{display:flex;gap:12px}
.authbtns .btn{flex:1;justify-content:center}
.btn.google{background:transparent;color:var(--paper);border:1px solid var(--ink-line);justify-content:center}
.authmsg{font-family:var(--mono);font-size:12px;color:var(--muted)}

.overlay{position:fixed;inset:0;z-index:40;background:rgba(10,9,15,.7);display:flex;align-items:center;justify-content:center;padding:24px}
.packs{background:var(--ink-soft);border:1px solid var(--ink-line);border-radius:22px;padding:30px;max-width:760px;width:100%}
.packs-head{display:flex;align-items:center;justify-content:space-between}
.packs-head .x{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer}
.packgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
.pack{background:var(--ink);border:1px solid var(--ink-line);border-radius:16px;padding:24px;text-align:center;display:flex;flex-direction:column;gap:8px}
.pack.featured{border-color:var(--coral)}
.pack .pname{font-family:var(--display);font-weight:700;font-size:20px}
.pack .pcredits{color:var(--teal);font-family:var(--mono);font-size:13px}
.pack .pprice{font-family:var(--display);font-weight:800;font-size:34px;margin:6px 0}
.pack .btn{justify-content:center;margin-top:6px}
@media(max-width:640px){.packgrid{grid-template-columns:1fr}}

.authlink{font-family:var(--mono);font-size:13px;color:var(--teal);text-decoration:none;align-self:flex-start}
.authlink:hover{text-decoration:underline}
