@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,400&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --s0:#0F0D0A;--s1:#181512;--s2:#231F19;--s3:#2E2922;
  --cream:#F5F0E8;--ink:#0F0D0A;--lime:#D4F241;--coral:#FF5C4D;
  --violet:#A992F8;--teal:#3ECFA6;--amber:#F59E0B;
  --t-hi:#F5F0E8;--t-md:#C4BAB0;--t-lo:#8C8278;
  --t-chi:#0F0D0A;--t-cmd:#2B2620;--t-clo:#6B6459;
  --border-d:rgba(255,255,255,0.07);--border-m:rgba(255,255,255,0.14);
  --r-pill:999px;--r-xl:22px;--r-lg:16px;--r-md:12px;--r-sm:8px;
  --ease:cubic-bezier(0.22,1,0.36,1);--dur:0.22s;
  --font-body:'DM Sans',sans-serif;--font-serif:'DM Serif Display',serif;
  --shadow-deep:0 24px 64px rgba(0,0,0,.5);
  --shadow-card:0 4px 24px rgba(0,0,0,.35);
  --shadow-lift:0 12px 40px rgba(0,0,0,.5);
}

html{scroll-behavior:smooth}
body{background:var(--s0);color:var(--t-hi);font-family:var(--font-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}

/* ── ANIMATIONS ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes floatSlow{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}
@keyframes pulse-glow{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(212,242,65,.4)}50%{opacity:.7;box-shadow:0 0 0 8px rgba(212,242,65,0)}}
@keyframes barsWave{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes toastIn{from{transform:translateX(120%);opacity:0}to{transform:none;opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}

.anim-fadeup{animation:fadeUp .55s var(--ease) both}
.float{animation:floatSlow 6s ease-in-out infinite}

/* ── TYPOGRAPHY ── */
h1,h2,h3,h4,h5{font-family:var(--font-body);font-weight:700;line-height:1.2;color:var(--t-hi)}
.serif{font-family:var(--font-serif)}
.serif-italic{font-family:var(--font-serif);font-style:italic}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-family:var(--font-body);font-weight:700;border-radius:var(--r-pill);transition:all var(--dur) var(--ease);text-decoration:none;white-space:nowrap;line-height:1}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn-sm{padding:8px 18px;font-size:13px}
.btn-md{padding:11px 24px;font-size:14px}
.btn-lg{padding:14px 32px;font-size:15px}
.btn-xl{padding:17px 40px;font-size:16px}
.btn-full{width:100%}
.btn-icon{width:40px;height:40px;padding:0;font-size:16px}

.btn-primary{background:var(--lime);color:var(--ink)}
.btn-primary:hover{background:#c8e835;transform:translateY(-1px)}
.btn-secondary{background:transparent;color:var(--cream);border:1.5px solid rgba(245,240,232,.25)}
.btn-secondary:hover{background:rgba(245,240,232,.06);border-color:rgba(245,240,232,.5)}
.btn-ghost{background:transparent;color:var(--t-md)}
.btn-ghost:hover{color:var(--t-hi);background:rgba(255,255,255,.05)}
.btn-coral{background:var(--coral);color:#fff}
.btn-coral:hover{background:#ff4535}
.btn-cream{background:var(--cream);color:var(--ink)}
.btn-cream:hover{background:#ede8e0}
.btn-ink{background:var(--ink);color:var(--cream)}
.btn-violet{background:var(--violet);color:#fff}
.btn-violet:hover{background:#9880f0}
.btn-teal{background:var(--teal);color:#fff}
.btn-danger{background:transparent;color:var(--coral);border:1.5px solid var(--coral)}
.btn-danger:hover{background:var(--coral);color:#fff}

/* ── CARDS ── */
.card{background:var(--s1);border:1px solid var(--border-d);border-radius:var(--r-xl);padding:20px;transition:border-color var(--dur) var(--ease)}
.card:hover{border-color:var(--border-m)}
.card-lift{transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.card-lift:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.card-cream{background:var(--cream);color:var(--ink)}
.card-lime{background:var(--lime);color:var(--ink)}
.card-coral{background:var(--coral);color:#fff}
.card-violet{background:var(--violet);color:#fff}

/* ── TAGS ── */
.tag{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--r-pill);font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}
.tag-lime{background:rgba(212,242,65,.12);color:var(--lime);border:1px solid rgba(212,242,65,.25)}
.tag-coral{background:rgba(255,92,77,.12);color:var(--coral);border:1px solid rgba(255,92,77,.25)}
.tag-violet{background:rgba(169,146,248,.12);color:var(--violet);border:1px solid rgba(169,146,248,.25)}
.tag-teal{background:rgba(62,207,166,.12);color:var(--teal);border:1px solid rgba(62,207,166,.25)}
.tag-ink{background:var(--ink);color:var(--cream);border:1px solid var(--border-d)}
.tag-stone{background:rgba(255,255,255,.06);color:var(--t-md);border:1px solid var(--border-d)}
.tag-cream{background:var(--cream);color:var(--ink)}
.tag-amber{background:rgba(245,158,11,.12);color:var(--amber);border:1px solid rgba(245,158,11,.25)}
.tag-rnb{background:rgba(169,146,248,.1);color:var(--violet);border:1px solid rgba(169,146,248,.2)}
.tag-hiphop{background:rgba(255,92,77,.1);color:var(--coral);border:1px solid rgba(255,92,77,.2)}
.tag-jazz{background:rgba(62,207,166,.1);color:var(--teal);border:1px solid rgba(62,207,166,.2)}
.tag-electro{background:rgba(212,242,65,.1);color:var(--lime);border:1px solid rgba(212,242,65,.2)}
.tag-indie{background:rgba(169,146,248,.1);color:var(--violet);border:1px solid rgba(169,146,248,.2)}
.tag-gospel{background:rgba(245,158,11,.1);color:var(--amber);border:1px solid rgba(245,158,11,.2)}
.tag-pop{background:rgba(255,92,77,.1);color:var(--coral);border:1px solid rgba(255,92,77,.2)}
.tag-soul{background:rgba(62,207,166,.1);color:var(--teal);border:1px solid rgba(62,207,166,.2)}

/* ── TRUST PILLS ── */
.trust-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:var(--r-pill);font-size:11px;font-weight:700}
.trust-high{background:rgba(62,207,166,.12);color:var(--teal);border:1px solid rgba(62,207,166,.2)}
.trust-mid{background:rgba(169,146,248,.12);color:var(--violet);border:1px solid rgba(169,146,248,.2)}
.trust-rising{background:rgba(245,158,11,.12);color:var(--amber);border:1px solid rgba(245,158,11,.2)}
.trust-new{background:rgba(255,255,255,.05);color:var(--t-lo);border:1px solid var(--border-d)}

/* ── NAVIGATION ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:999;height:64px;background:rgba(15,13,10,.92);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-bottom:1px solid var(--border-d);display:flex;align-items:center;padding:0 24px;gap:0}
.nav-logo{font-family:var(--font-serif);font-style:italic;font-size:22px;text-decoration:none;display:flex;flex-direction:column;line-height:1;margin-right:32px;flex-shrink:0}
.nav-logo-c{color:var(--cream)}
.nav-logo-rest{color:var(--lime)}
.nav-logo-sub{font-family:var(--font-body);font-style:normal;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--t-lo);margin-top:2px}
.nav-links{display:flex;align-items:center;gap:4px;flex:1}
.nav-link{padding:7px 14px;border-radius:var(--r-pill);font-size:13px;font-weight:600;color:var(--t-md);text-decoration:none;transition:all var(--dur) var(--ease)}
.nav-link:hover{color:var(--t-hi);background:rgba(255,255,255,.06)}
.nav-link.active{color:var(--t-hi);background:rgba(255,255,255,.08)}
.nav-cta{margin-left:auto;display:flex;gap:8px;align-items:center}

/* ── FORMS ── */
.form-label{display:block;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--t-md);margin-bottom:6px}
.form-input{width:100%;background:var(--s2);border:1px solid var(--border-d);border-radius:var(--r-md);padding:11px 14px;color:var(--t-hi);font-size:14px;font-family:var(--font-body);outline:none;transition:border-color var(--dur) var(--ease)}
.form-input::placeholder{color:var(--t-lo)}
.form-input:focus{border-color:var(--lime);background:rgba(212,242,65,.03)}
.form-textarea{min-height:110px;resize:vertical;line-height:1.6}
.form-select{-webkit-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238C8278' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.form-field{margin-bottom:18px}
.form-error{font-size:12px;color:var(--coral);margin-top:5px;display:none}
.form-error.show{display:block}

/* ── PROMPT BLOCKS ── */
.prompt-block{background:var(--s2);border-radius:var(--r-lg);padding:14px 16px}
.prompt-q{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--t-lo);margin-bottom:6px}
.prompt-a{font-family:var(--font-serif);font-style:italic;font-size:15px;color:var(--t-hi);line-height:1.5}
.prompt-block-cream{background:rgba(15,13,10,.06);border-radius:var(--r-lg);padding:14px 16px}
.prompt-block-cream .prompt-q{color:var(--t-clo)}
.prompt-block-cream .prompt-a{color:var(--t-chi)}

/* ── WAVE BARS ── */
.wave-bars{display:flex;align-items:center;gap:3px;height:20px}
.wave-bar{width:3px;border-radius:var(--r-pill);background:currentColor;animation:barsWave 1.2s ease-in-out infinite}
.wave-bar:nth-child(1){height:40%;animation-delay:0s}
.wave-bar:nth-child(2){height:70%;animation-delay:.15s}
.wave-bar:nth-child(3){height:100%;animation-delay:.3s}
.wave-bar:nth-child(4){height:60%;animation-delay:.45s}
.wave-bar:nth-child(5){height:30%;animation-delay:.6s}

/* ── SKELETON ── */
.skeleton{background:linear-gradient(90deg,var(--s2) 25%,var(--s3) 50%,var(--s2) 75%);background-size:400px 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--r-md)}

/* ── AVATAR ── */
.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.2em;border:2px solid transparent}
.av-xs{width:28px;height:28px;font-size:14px}
.av-sm{width:38px;height:38px;font-size:18px}
.av-md{width:52px;height:52px;font-size:24px}
.av-lg{width:72px;height:72px;font-size:34px}
.av-xl{width:100px;height:100px;font-size:46px}
.av-2xl{width:130px;height:130px;font-size:60px}
.av-lime{border-color:var(--lime)}
.av-coral{border-color:var(--coral)}

/* ── TOAST ── */
#toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px}
.toast{background:var(--s2);border-radius:var(--r-lg);padding:12px 18px;font-size:13px;font-weight:600;color:var(--t-hi);box-shadow:var(--shadow-card);display:flex;align-items:center;gap:10px;animation:toastIn .35s var(--ease) both;border-left:3px solid var(--border-m);min-width:220px}
.toast-success{border-left-color:var(--teal)}
.toast-error{border-left-color:var(--coral)}
.toast-info{border-left-color:var(--violet)}

/* ── PROGRESS ── */
.progress-bar{height:3px;background:rgba(255,255,255,.08);border-radius:var(--r-pill);overflow:hidden}
.progress-fill{height:100%;background:var(--lime);border-radius:var(--r-pill);transition:width .55s var(--ease)}
.progress-dots{display:flex;gap:6px;align-items:center}
.progress-dot{height:3px;border-radius:var(--r-pill);transition:all .3s var(--ease)}
.pd-inactive{width:20px;background:rgba(255,255,255,.1)}
.pd-active{width:28px;background:var(--lime)}
.pd-done{width:20px;background:var(--teal)}

/* ── SCORE RING ── */
.score-ring-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}
.score-ring-label{position:absolute;text-align:center;top:50%;left:50%;transform:translate(-50%,-50%)}
.score-ring-n{font-family:var(--font-serif);font-size:22px;font-weight:700;color:var(--t-hi);line-height:1}
.score-ring-l{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--t-lo)}

/* ── UTILITIES ── */
.pt-nav{padding-top:80px}
.section{padding:80px 0}
.container{max-width:1180px;margin:0 auto;padding:0 24px}
.container-sm{max-width:780px;margin:0 auto;padding:0 24px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}
.text-center{text-align:center}.text-right{text-align:right}
.fw-300{font-weight:300}.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-800{font-weight:800}
.fs-12{font-size:12px}.fs-13{font-size:13px}.fs-14{font-size:14px}.fs-24{font-size:24px}.fs-32{font-size:32px}.fs-48{font-size:48px}.fs-56{font-size:56px}.fs-64{font-size:64px}
.t-hi{color:var(--t-hi)}.t-md{color:var(--t-md)}.t-lo{color:var(--t-lo)}.t-lime{color:var(--lime)}.t-coral{color:var(--coral)}.t-teal{color:var(--teal)}.t-violet{color:var(--violet)}.t-amber{color:var(--amber)}
.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mt-40{margin-top:40px}.mt-48{margin-top:48px}
.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.mb-32{margin-bottom:32px}
.w-full{width:100%}.hidden{display:none!important}.truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.divider{height:1px;background:var(--border-d);margin:24px 0}

/* ── FOOTER ── */
footer{border-top:1px solid var(--border-d);padding:32px 0;margin-top:80px}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.footer-copy{font-size:12px;color:var(--t-lo)}
.footer-links{display:flex;gap:20px}
.footer-link{font-size:12px;color:var(--t-lo);text-decoration:none;transition:color var(--dur) var(--ease)}
.footer-link:hover{color:var(--t-hi)}

/* ── CHIP SELECT ── */
.chip-group{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 16px;border-radius:var(--r-pill);border:1.5px solid var(--border-d);font-size:13px;font-weight:600;color:var(--t-md);cursor:pointer;transition:all var(--dur) var(--ease);background:transparent;font-family:var(--font-body)}
.chip:hover{border-color:var(--border-m);color:var(--t-hi)}
.chip.selected{border-color:var(--lime);color:var(--lime);background:rgba(212,242,65,.08)}

/* ── OPTION CARDS ── */
.option-card{border:1.5px solid var(--border-d);border-radius:var(--r-lg);padding:14px 16px;cursor:pointer;transition:all var(--dur) var(--ease);font-family:var(--font-body)}
.option-card:hover{border-color:var(--border-m)}
.option-card.selected{border-color:var(--lime);background:rgba(212,242,65,.05)}
.option-card-title{font-size:14px;font-weight:700;color:var(--t-hi);margin-bottom:3px}
.option-card-sub{font-size:12px;color:var(--t-lo)}

/* ── DROPDOWN ── */
.dropdown{position:relative}
.dropdown-list{position:absolute;top:calc(100%+6px);left:0;right:0;background:var(--s2);border:1px solid var(--border-m);border-radius:var(--r-lg);z-index:100;overflow:hidden;box-shadow:var(--shadow-card)}
.dropdown-item{padding:10px 14px;cursor:pointer;font-size:13px;display:flex;align-items:center;gap:10px;transition:background var(--dur)}
.dropdown-item:hover{background:var(--s3)}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .nav-links .nav-link{display:none}
  .nav-links .nav-link.active{display:flex}
  .section{padding:48px 0}
  .fs-64{font-size:40px}.fs-56{font-size:36px}.fs-48{font-size:32px}
}
