:root{
  --bg:#0a0014; --fg:#fff; --accent:#ffdb4d; --pink:#ff4dcb; --purple:#7b2ff7; --cyan:#2ff7e6;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);overflow-x:hidden}
a{color:inherit}

/* ---------- лендинг / ввод ---------- */
.wrap{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:28px 20px;text-align:center;position:relative;z-index:2}
.aurora{position:fixed;inset:-30%;z-index:0;filter:blur(70px);opacity:.55;pointer-events:none}
.aurora span{position:absolute;width:46vmax;height:46vmax;border-radius:50%;
  animation:float 16s ease-in-out infinite}
.aurora span:nth-child(1){background:var(--purple);top:-10%;left:-8%}
.aurora span:nth-child(2){background:var(--pink);bottom:-12%;right:-6%;animation-delay:-5s}
.aurora span:nth-child(3){background:var(--cyan);top:30%;right:20%;animation-delay:-9s;opacity:.5}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4%,6%) scale(1.15)}}

.badge{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
  opacity:.9;margin-bottom:18px}
h1{font-size:clamp(30px,7vw,54px);line-height:1.05;font-weight:800;
  background:linear-gradient(90deg,#fff,#ffdb4d,#ff4dcb);-webkit-background-clip:text;
  background-clip:text;color:transparent;margin-bottom:14px}
.sub{opacity:.8;max-width:520px;font-size:16px;line-height:1.5;margin-bottom:30px}
.card{width:100%;max-width:460px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:22px;padding:22px;backdrop-filter:blur(12px);text-align:left}
.card label{display:block;font-size:13px;opacity:.7;margin:0 0 8px 2px}
input[type=text]{width:100%;padding:15px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.35);color:#fff;font-size:15px;outline:none}
input[type=text]:focus{border-color:var(--accent)}
.btn{display:inline-block;width:100%;margin-top:16px;padding:16px;border:0;border-radius:14px;
  font-size:16px;font-weight:700;cursor:pointer;color:#1a0033;
  background:linear-gradient(90deg,#ffdb4d,#ff4dcb);transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
.btn.sec{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2)}
.hint{font-size:12.5px;opacity:.55;margin-top:14px;line-height:1.5}
.err{background:rgba(255,77,77,.15);border:1px solid rgba(255,77,77,.4);color:#ffb3b3;
  padding:12px 14px;border-radius:12px;font-size:13.5px;margin-bottom:16px}
.warn{background:rgba(255,219,77,.12);border:1px solid rgba(255,219,77,.35);color:#ffe98a;
  padding:12px 14px;border-radius:12px;font-size:13px;margin-bottom:18px;max-width:460px}
.share{display:flex;gap:8px;margin-top:14px}
.share input{flex:1}
.mini{margin-top:26px;font-size:13px;opacity:.6}
.pcover{width:64px;height:64px;border-radius:12px;object-fit:cover;background:#2a1245;
  display:flex;align-items:center;justify-content:center;font-size:26px}
.prow{display:flex;gap:14px;align-items:center;margin-bottom:18px}
.prow b{font-size:17px}.prow small{opacity:.6}

/* ---------- аудио-кнопка ---------- */
#sound{position:fixed;top:16px;right:16px;z-index:50;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#fff;font-size:18px;
  cursor:pointer;backdrop-filter:blur(6px)}

/* ---------- истории/сцены ---------- */
#scenes{position:fixed;inset:0;z-index:5}
.scene{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;padding:60px 26px 90px;opacity:0}
.scene.on{display:flex;animation:sceneIn .8s ease forwards}
@keyframes sceneIn{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.scene .big{font-size:clamp(64px,22vw,180px);font-weight:900;line-height:.9;
  background:linear-gradient(180deg,#fff,#ffdb4d);-webkit-background-clip:text;background-clip:text;
  color:transparent;filter:drop-shadow(0 8px 40px rgba(255,219,77,.35))}
.scene .lead{font-size:clamp(20px,5vw,30px);font-weight:800;margin-bottom:10px}
.scene .note{opacity:.8;font-size:16px;max-width:520px;line-height:1.5;margin-top:14px}
.scene .kicker{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);
  margin-bottom:20px;opacity:.9}
.ring{position:relative;width:min(72vw,300px);height:min(72vw,300px);margin:6px 0}
.ring svg{transform:rotate(-90deg);width:100%;height:100%}
.ring .val{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:clamp(48px,16vw,110px);font-weight:900}
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:600px;margin-top:8px}
.chip{padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);font-size:15px;font-weight:600;
  animation:pop .5s backwards}
@keyframes pop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.tracklist{width:100%;max-width:460px;margin-top:10px;text-align:left}
.trk{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;
  background:rgba(255,255,255,.06);margin-bottom:8px;animation:slideIn .5s backwards}
@keyframes slideIn{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}
.trk img,.trk .ph{width:42px;height:42px;border-radius:8px;object-fit:cover;background:#3a1a5c;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center}
.trk b{font-size:14px;display:block}.trk small{opacity:.6;font-size:12.5px}
.stat-grid{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.stat{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:18px;
  padding:18px 22px;min-width:120px}
.stat .n{font-size:40px;font-weight:900;color:var(--accent)}
.stat .l{font-size:13px;opacity:.7;margin-top:4px}

/* прогресс-полоски сверху (как в сторис) */
#bars{position:fixed;top:10px;left:12px;right:12px;z-index:40;display:flex;gap:6px}
#bars .b{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.25);overflow:hidden}
#bars .b i{display:block;height:100%;width:0;background:#fff}
#bars .b.done i{width:100%}
#bars .b.active i{animation:fill var(--dur,6s) linear forwards}
@keyframes fill{to{width:100%}}

.tapzones{position:fixed;inset:0;z-index:20;display:flex}
.tapzones div{flex:1}

.finalbtns{display:flex;flex-direction:column;gap:12px;width:100%;max-width:360px;margin-top:26px}
.copied{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#fff;color:#1a0033;
  padding:10px 20px;border-radius:999px;font-weight:700;z-index:60;opacity:0;transition:.3s;font-size:14px}
.copied.on{opacity:1}
.confetti{position:fixed;inset:0;z-index:6;pointer-events:none}
.hidden{display:none!important}

/* ---------- режимы: шестерёнка + модалка ---------- */
#mm-gear{position:fixed;top:16px;left:16px;z-index:55;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.35);color:#fff;font-size:18px;
  cursor:pointer;backdrop-filter:blur(6px)}
.mm-modal{position:fixed;inset:0;z-index:100;background:rgba(4,2,20,.72);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:22px;animation:sceneIn .3s ease}
.mm-modal-card{width:100%;max-width:460px;background:rgba(20,10,40,.9);border:1px solid rgba(255,255,255,.14);
  border-radius:24px;padding:26px;text-align:center}
.mm-modal-title{font-size:24px;font-weight:800;margin-bottom:6px}
.mm-modal-sub{opacity:.7;font-size:14px;margin-bottom:20px}
.mm-choices{display:flex;gap:14px}
.mm-choice{flex:1;padding:20px 12px;border-radius:18px;border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);color:#fff;cursor:pointer;transition:transform .15s,border-color .15s}
.mm-choice:hover{transform:translateY(-3px);border-color:var(--accent)}
.mm-choice.sel{border-color:var(--accent);background:rgba(255,219,77,.12)}
.mm-emoji{font-size:38px}.mm-cn{font-size:18px;font-weight:800;margin-top:6px}
.mm-cd{font-size:12.5px;opacity:.65;margin-top:4px}

/* ---------- статистика результата ---------- */
.factlist{width:100%;max-width:420px;margin-top:18px;text-align:left}
.factline{display:flex;justify-content:space-between;align-items:center;padding:11px 4px;
  border-bottom:1px solid rgba(255,255,255,.08);font-size:16px}
.factline b{font-size:19px;color:var(--accent)}
.artlist{width:100%;max-width:460px;margin-top:8px;text-align:left}
.artrow{margin-bottom:14px;animation:slideIn .5s backwards}
.artname{font-size:15px;font-weight:600;margin-bottom:5px}.artname small{opacity:.6;font-weight:400}
.artbars{display:flex;flex-direction:column;gap:4px}
.hbar{height:9px;border-radius:6px;background:rgba(255,255,255,.1);overflow:hidden}
.hbar i{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,#ffdb4d,#ff4dcb);
  animation:grow .9s ease forwards}
.hbar.b i{background:linear-gradient(90deg,#7b2ff7,#2ff7e6)}
@keyframes grow{to{width:var(--w)}}
.profwrap{display:flex;gap:16px;width:100%;max-width:520px;margin-top:10px}
.profcol{flex:1;text-align:left}
.profttl{font-size:14px;font-weight:700;margin-bottom:10px;opacity:.85}
.profrow{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12.5px}
.profrow span{flex:0 0 34%;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profrow .hbar{flex:1}.profrow em{flex:0 0 34px;text-align:right;font-style:normal;opacity:.7}
.epochs{display:flex;align-items:center;gap:22px;margin:6px 0}
.epk{text-align:center}.epy{font-size:clamp(40px,12vw,72px);font-weight:900;color:var(--accent)}
.epk .l{opacity:.7;font-size:14px}.epx{font-size:26px;opacity:.5}
.talklist{width:100%;max-width:480px;margin-top:12px;text-align:left}
.talkrow{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:14px;
  background:rgba(255,255,255,.06);margin-bottom:10px;font-size:15px;line-height:1.4;
  animation:slideIn .5s backwards}
.talkrow .ti{font-size:20px;flex:0 0 auto}

/* ---------- панель «Все совпадения» ---------- */
#explore{position:fixed;inset:0;z-index:80;background:rgba(6,3,20,.96);backdrop-filter:blur(6px)}
.exwrap{max-width:640px;margin:0 auto;height:100%;display:flex;flex-direction:column}
.exhead{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;
  border-bottom:1px solid rgba(255,255,255,.1);font-size:17px}
.exclose{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);color:#fff;font-size:16px;cursor:pointer}
.exscroll{flex:1;overflow-y:auto;padding:14px 18px 60px;-webkit-overflow-scrolling:touch}
.exsec{margin-bottom:26px}
.exsec h3{font-size:15px;margin-bottom:12px;color:var(--accent)}
.exgrid{display:grid;grid-template-columns:1fr;gap:2px}
@media(min-width:520px){.exgrid{grid-template-columns:1fr 1fr;gap:2px 18px}}
.exrow{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:8px 2px;border-bottom:1px solid rgba(255,255,255,.06);font-size:14px}
.exrow span{overflow:hidden;text-overflow:ellipsis}
.exrow small{opacity:.55}.exrow em{font-style:normal;opacity:.6;font-size:12.5px;flex:0 0 auto}
.exhint{font-size:12px;opacity:.5;margin-top:8px}
.exwrap2{display:flex;gap:18px}.excol{flex:1}.excol h4{font-size:13.5px;opacity:.85;margin-bottom:8px}
.chips2{display:flex;flex-wrap:wrap;gap:8px}
.chip2{padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.15);font-size:13.5px}
.onlyrow{padding:6px 0;font-size:14px}.onlyrow small{opacity:.5}

/* финальные кнопки — выше тап-зон, чтобы клики шли по ним */
.finalbtns{position:relative;z-index:30}
.finalbtns .btn,.finalbtns a{position:relative;z-index:31}
