:root{
  --bg:#12030f;--pink:#ff4d8d;--pink2:#ff86b3;--violet:#a24bff;--gold:#ffcf8b;
  --text:#fff2f7;--mut:#d9b7c8;--glass:rgba(255,255,255,.08);--gline:rgba(255,255,255,.16);--r:22px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--text);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;display:flex;flex-direction:column;
  background:radial-gradient(900px 600px at 80% -10%,#7a1250 0,transparent 55%),radial-gradient(800px 600px at 0% 20%,#4a1173 0,transparent 55%),linear-gradient(160deg,#1a0416,#12030f)}
a{color:inherit;text-decoration:none}
h1,h2{font-family:"Sora",sans-serif;font-weight:800;line-height:1.14;letter-spacing:-.02em}

.fx{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fx span{position:absolute;bottom:-40px;font-size:22px;opacity:0;animation:fxup linear infinite}
.fx span::before{content:"❤";color:var(--pink)}
.fx span:nth-child(1){left:8%;animation-duration:13s}.fx span:nth-child(2){left:26%;animation-duration:17s;animation-delay:3s}
.fx span:nth-child(3){left:46%;animation-duration:11s;animation-delay:1s}.fx span:nth-child(4){left:64%;animation-duration:19s;animation-delay:5s}
.fx span:nth-child(5){left:80%;animation-duration:15s;animation-delay:2s}.fx span:nth-child(6){left:92%;animation-duration:12s;animation-delay:6s}
@keyframes fxup{0%{transform:translateY(0) scale(.7);opacity:0}12%{opacity:.5}100%{transform:translateY(-105vh) scale(1.1);opacity:0}}

.fv-top{position:relative;z-index:2;display:flex;align-items:center;max-width:1080px;margin:0 auto;width:100%;padding:22px 24px 0}
.fv-logo{font-family:"Sora",sans-serif;font-weight:800;font-size:21px;display:flex;align-items:center;gap:8px}
.fv-logo b{color:var(--pink2)}.fv-logo-ic{color:var(--pink)}
.fv-age{margin-left:auto;font-size:12px;font-weight:700;color:var(--gold);border:1px solid rgba(255,207,139,.35);border-radius:999px;padding:3px 10px}

/* hero */
.fv-hero{position:relative;z-index:2;flex:1;max-width:1080px;margin:0 auto;width:100%;padding:34px 24px 20px}
.fv-hero-head{text-align:center;max-width:760px;margin:0 auto 30px}
.fv-live{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--mut);background:rgba(255,255,255,.06);border:1px solid var(--gline);border-radius:999px;padding:7px 14px;margin-bottom:16px}
.fv-live b{color:#fff}
.fv-live-dot{width:8px;height:8px;border-radius:50%;background:#38d39f;box-shadow:0 0 0 4px rgba(56,211,159,.2);animation:pulse 1.6s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(56,211,159,0)}}
.fv-hero-head h1{font-size:38px;margin-bottom:12px}
.fv-hero-head h1 span{background:linear-gradient(120deg,var(--pink),var(--gold));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.fv-lead{color:var(--mut);font-size:17px}

.fv-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:stretch}

.fv-card{background:var(--glass);border:1px solid var(--gline);border-radius:var(--r);padding:28px;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 30px 70px rgba(10,2,12,.5)}

/* buttons */
.fv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 26px;border-radius:15px;
  font-family:"Manrope",sans-serif;font-weight:700;font-size:16px;cursor:pointer;border:none;color:#fff;
  background:linear-gradient(120deg,var(--pink),var(--violet));box-shadow:0 14px 34px rgba(255,77,141,.4);transition:transform .18s,box-shadow .18s,filter .18s}
.fv-btn:hover{transform:translateY(-2px);box-shadow:0 20px 44px rgba(255,77,141,.5);filter:brightness(1.05)}
.fv-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;filter:grayscale(.3)}
.fv-btn-lg{width:100%;padding:17px;font-size:17px}
.fv-btn-ghost{background:rgba(255,255,255,.08);border:1px solid var(--gline);box-shadow:none}
.fv-btn-ghost:hover{background:rgba(255,255,255,.16)}

/* quiz steps */
.fv-quiz{display:flex;flex-direction:column;min-height:360px}
.fv-q{display:none;animation:pop .4s ease both}
.fv-q.is-on{display:block}
@keyframes pop{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.fv-prog{height:8px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin-bottom:18px}
.fv-prog-bar{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--pink),var(--violet));transition:width .5s ease}
.fv-step{font-size:13px;font-weight:700;color:var(--pink2);margin-bottom:6px}
.fv-q h2{font-size:25px;margin-bottom:6px}
.fv-hint{color:var(--mut);font-size:15px;margin-bottom:18px}
.fv-pick{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fv-opt{padding:26px 16px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid var(--gline);color:#fff;font-size:17px;font-weight:700;cursor:pointer;display:flex;flex-direction:column;gap:10px;align-items:center;transition:.18s;font-family:inherit}
.fv-opt:hover{background:rgba(255,255,255,.13);border-color:var(--pink);transform:translateY(-3px)}
.fv-opt-emo{font-size:38px}
.fv-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.fv-tag{padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--gline);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;transition:.16s;font-family:inherit}
.fv-tag:hover{background:rgba(255,255,255,.12)}
.fv-tag.on{background:linear-gradient(120deg,var(--pink),var(--violet));border-color:transparent;color:#fff;transform:scale(1.04)}
.fv-nav{display:flex;gap:12px}.fv-nav .fv-btn{flex:1}

/* done state */
.fv-done{text-align:center}
.fv-heart{font-size:44px;color:var(--pink);animation:beat 1s infinite;margin-bottom:8px}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.15)}}
.fv-done-badge{display:inline-block;background:rgba(56,211,159,.14);border:1px solid rgba(56,211,159,.35);color:#8ff0cd;font-weight:700;font-size:13px;padding:6px 14px;border-radius:999px;margin-bottom:10px}
.fv-bars{display:flex;gap:6px;justify-content:center;align-items:flex-end;height:46px;margin:14px 0 6px}
.fv-bars i{width:9px;border-radius:6px;background:linear-gradient(var(--pink),var(--violet));animation:eq 1.1s ease-in-out infinite}
.fv-bars i:nth-child(1){animation-delay:0s}.fv-bars i:nth-child(2){animation-delay:.12s}.fv-bars i:nth-child(3){animation-delay:.24s}.fv-bars i:nth-child(4){animation-delay:.36s}.fv-bars i:nth-child(5){animation-delay:.48s}.fv-bars i:nth-child(6){animation-delay:.6s}.fv-bars i:nth-child(7){animation-delay:.72s}
@keyframes eq{0%,100%{height:12px}50%{height:46px}}
.fv-match{background:rgba(255,255,255,.05);border:1px solid var(--gline);border-radius:14px;padding:14px;margin:16px 0 4px;text-align:left}
.fv-match-head{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.fv-match-ava{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--gold));display:grid;place-items:center;font-weight:800;color:#fff}
.fv-match-head b{display:block;font-size:14px}.fv-match-head small{color:var(--mut);font-size:12px}
.fv-match-pct{margin-left:auto;color:#8ff0cd;font-weight:800}
.fv-match-bar{height:7px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin-bottom:10px}
.fv-match-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pink),var(--gold));transition:width 1.4s ease}
.fv-match-msg{max-width:88%;padding:9px 13px;border-radius:14px;font-size:13.5px;background:rgba(255,255,255,.09);border-bottom-left-radius:4px}

/* install card */
.fv-install{display:flex;flex-direction:column;justify-content:center}
.fv-app{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.fv-app-ic{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,var(--pink),var(--violet));display:grid;place-items:center;font-size:32px;box-shadow:0 12px 26px rgba(255,77,141,.4)}
.fv-app-name{font-family:"Sora",sans-serif;font-weight:800;font-size:22px}
.fv-app-meta{color:var(--mut);font-size:13px;margin:2px 0 4px}
.fv-stars{color:var(--gold);font-size:14px;letter-spacing:1px}.fv-stars b{color:#fff;margin-left:4px}
.fv-app-note{color:var(--mut);font-size:14px;margin-bottom:18px}
.fv-mini{color:var(--mut);font-size:13px;margin-top:12px;opacity:.85;text-align:center}
.fv-dl{position:relative;overflow:hidden}
.fv-dl-shine{position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine 2.6s infinite}
@keyframes shine{0%{left:-60%}55%,100%{left:130%}}
.fv-steps{text-align:left;margin-top:18px;background:rgba(255,255,255,.04);border:1px solid var(--gline);border-radius:14px;padding:16px}
.fv-inst-title{font-weight:700;margin-bottom:10px}
.fv-steps ol{padding-left:20px;display:flex;flex-direction:column;gap:8px}
.fv-steps li{color:var(--mut);font-size:13.5px}.fv-steps li b{color:#fff}
.fv-linkbtn{display:inline-block;margin-top:14px;background:none;border:none;color:var(--mut);cursor:pointer;font:inherit;text-decoration:underline}

.fv-foot{position:relative;z-index:2;text-align:center;padding:26px 20px;color:var(--mut);font-size:13px}
.fv-foot-links{margin:6px 0}.fv-foot-links a{color:var(--pink2);text-decoration:underline}
.fv-foot-legal{opacity:.7;font-size:12px;margin-top:4px}

@media (max-width:820px){
  .fv-grid{grid-template-columns:1fr;gap:18px}
  .fv-hero-head h1{font-size:30px}
  .fv-quiz{min-height:auto}
}
@media (max-width:480px){
  .fv-hero-head h1{font-size:25px}
  .fv-card{padding:22px}
  .fv-q h2{font-size:21px}.fv-opt-emo{font-size:30px}
}
@media (prefers-reduced-motion:reduce){.fx,.fv-heart,.fv-bars i,.fv-dl-shine{animation:none}.fv-q{animation:none}}
