/* ================================================
   PERSONALITY TESTS – Premium Dark CSS
   ================================================ */
:root {
  --bg:    #0d0714;
  --bg2:   #130a1f;
  --card:  rgba(255,255,255,0.04);
  --cardh: rgba(255,255,255,0.07);
  --gb:    rgba(255,255,255,0.08);
  --gb-glow: rgba(255,107,157,0.3);
  --text:  #ffffff;
  --t2:    rgba(255,255,255,0.75);
  --t3:    rgba(255,255,255,0.45);
  --rose:  #ff6b9d;
  --gold:  #f6c86e;
  --lav:   #c77dff;
  --teal:  #06d6a0;
  --fd:    'Playfair Display',serif;
  --fb:    'Inter',sans-serif;
  --fs:    'Dancing Script',cursive;
  --r:     all 0.32s cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--fb);background:var(--bg);color:var(--text);
  line-height:1.7;
  background-image:
    radial-gradient(circle at 15% 0%, rgba(107,45,170,0.15) 0%, transparent 50%),
    radial-gradient(circle at 85% 100%, rgba(255,107,157,0.1) 0%, transparent 50%),
    radial-gradient(circle at 50% 50%, rgba(246,200,110,0.05) 0%, transparent 60%);
  background-attachment: fixed;
}
::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-thumb{background:var(--rose);border-radius:3px;}
a{text-decoration:none;color:inherit;}
button{cursor:pointer;font-family:var(--fb);}

/* Particle canvas */
#t-canvas{position:fixed;inset:0;pointer-events:none;z-index:0;}
#t-confetti{position:fixed;inset:0;pointer-events:none;z-index:999;}

/* ── Header ── */
.t-header{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 32px;
  background:rgba(13,7,20,0.85);backdrop-filter:blur(20px);
  border-bottom:1px solid var(--gb);
  flex-wrap:wrap;gap:12px;
}
.t-logo{display:flex;align-items:center;gap:8px;}
.t-logo span:first-child{font-size:22px;animation:bloom 2s ease-in-out infinite;}
@keyframes bloom{0%,100%{transform:scale(1);}50%{transform:scale(1.18);}}
.t-logo-text{
  font-family:var(--fd);font-size:1.35rem;font-weight:700;
  background:linear-gradient(135deg,var(--gold),var(--rose));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.t-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.t-nl{
  color:var(--t2);font-size:0.87rem;font-weight:500;
  padding:7px 15px;border-radius:50px;border:1px solid transparent;transition:var(--r);
}
.t-nl:hover,.t-nl.active{color:var(--text);background:var(--card);border-color:var(--gb);}
.t-ncta{
  color:#fff;font-size:0.87rem;font-weight:600;
  padding:8px 18px;border-radius:50px;
  background:linear-gradient(135deg,#e8447a,#6b2d6b);
  box-shadow:0 4px 18px rgba(232,68,122,0.35);transition:var(--r);
}
.t-ncta:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(232,68,122,0.5);}

/* ── Hero ── */
.t-hero{
  text-align:center;padding:90px 24px 60px;position:relative;
  max-width:900px;margin:0 auto;
}
.t-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(70px);}
.t-o1{width:500px;height:400px;background:radial-gradient(circle,rgba(107,45,170,0.3) 0%,transparent 70%);top:-100px;left:-100px;animation:of 9s ease-in-out infinite;}
.t-o2{width:400px;height:350px;background:radial-gradient(circle,rgba(255,107,157,0.18) 0%,transparent 70%);top:0;right:-80px;animation:of 11s ease-in-out infinite reverse;}
@keyframes of{0%,100%{transform:translate(0,0);}50%{transform:translate(20px,-25px);}}
.t-hero-badge{
  display:inline-block;padding:7px 20px;border-radius:50px;
  font-size:0.78rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--gold);border:1px solid rgba(246,200,110,0.3);background:rgba(246,200,110,0.08);
  margin-bottom:24px;animation:fdu 0.7s ease both;
}
@keyframes fdu{from{opacity:0;transform:translateY(-14px);}to{opacity:1;transform:translateY(0);}}
.t-hero-title{font-family:var(--fd);font-size:clamp(2.4rem,5.5vw,4.2rem);font-weight:900;line-height:1.08;margin-bottom:18px;}
.t-ht1{display:block;color:rgba(255,255,255,0.8);font-size:.5em;text-transform:uppercase;letter-spacing:.1em;font-family:var(--fb);font-weight:400;margin-bottom:6px;animation:fdu .7s .1s ease both;}
.t-ht2{
  display:block;
  background:linear-gradient(to right, #ffb8d1, #ff6b9d, var(--lav), #ffb8d1);
  background-size: 200% auto;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  filter:drop-shadow(0 4px 20px rgba(255,107,157,0.5));
  animation: fdu .7s .2s ease both, gradientShift 6s linear infinite;
}
@keyframes gradientShift {
  0% { background-position: 0% center; }
  100% { background-position: 200% center; }
}
.t-hero-sub{color:var(--t2);font-size:clamp(.9rem,2vw,1.1rem);max-width:580px;margin:0 auto;font-weight:300;animation:fdu .7s .3s ease both;}

/* ── Ad ── */
.t-ad{padding:14px 24px;max-width:1200px;margin:0 auto;}
.t-ad-ph{
  background:rgba(255,255,255,0.02);border:1px dashed rgba(255,255,255,0.07);
  border-radius:16px;min-height:90px;display:flex;align-items:center;justify-content:center;
  font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);
}

/* ── Hub Section ── */
.t-hub-section{padding:20px 24px 60px;max-width:1200px;margin:0 auto;}
.t-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:20px;
}

/* ── Test Card ── */
.t-card{
  background:var(--card);border:1px solid var(--gb);border-radius:24px;
  padding:32px 28px;cursor:pointer;transition:all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:14px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
}
.t-card::before{
  content:'';position:absolute;inset:0;
  border-radius: 24px;
  padding: 2px;
  background: var(--card-accent, linear-gradient(135deg, var(--rose), var(--lav)));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.4s ease;
}
.t-card::after {
  content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 60%);
  opacity: 0; transition: opacity 0.4s ease;
  transform: scale(0.5);
  pointer-events: none;
}
.t-card:hover{
  transform:translateY(-8px) scale(1.02);
  background:var(--cardh);
  box-shadow: 0 25px 50px rgba(0,0,0,0.4), 0 0 40px var(--card-color, rgba(255,107,157,0.2));
}
.t-card:hover::before { opacity: 0.7; }
.t-card:hover::after { opacity: 1; transform: scale(1); }
.t-card:focus{outline:2px solid var(--rose);outline-offset:3px;}
.t-card-icon{font-size:2.8rem;line-height:1;}
.t-card-name{font-family:var(--fd);font-size:1.2rem;font-weight:700;color:var(--text);}
.t-card-tag{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--t3);margin-bottom:2px;
}
.t-card-desc{color:var(--t2);font-size:.875rem;line-height:1.6;flex:1;}
.t-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px;}
.t-card-meta{font-size:.75rem;color:var(--t3);font-weight:500;}
.t-card-btn{
  padding:8px 18px;border-radius:50px;border:1px solid rgba(255,255,255,.15);
  background:transparent;color:var(--t2);font-size:.82rem;font-weight:600;
  transition:var(--r);
}
.t-card:hover .t-card-btn{background:var(--card-color,var(--rose));border-color:transparent;color:#fff;}

/* ── Why section ── */
.t-why{padding:40px 24px 70px;max-width:1100px;margin:0 auto;}
.t-sec-head{text-align:center;margin-bottom:44px;}
.t-badge{display:inline-block;padding:6px 18px;border-radius:50px;font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);border:1px solid rgba(246,200,110,.25);background:rgba(246,200,110,.07);margin-bottom:12px;}
.t-sec-title{font-family:var(--fd);font-size:clamp(1.7rem,3.5vw,2.5rem);font-weight:700;margin-bottom:10px;background:linear-gradient(135deg,#fff,#ffb8d1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.t-sec-sub{color:var(--t2);font-size:.95rem;max-width:480px;margin:0 auto;}
.t-why-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px;}
.t-why-card{background:var(--card);border:1px solid var(--gb);border-radius:18px;padding:24px 20px;text-align:center;transition:var(--r);}
.t-why-card:hover{transform:translateY(-4px);border-color:rgba(255,107,157,.3);}
.t-why-icon{font-size:2rem;display:block;margin-bottom:12px;}
.t-why-card h3{font-weight:700;font-size:1rem;margin-bottom:8px;}
.t-why-card p{color:var(--t2);font-size:.85rem;line-height:1.6;}

/* ── RUNNER ── */
.t-runner-wrap{max-width:680px;margin:0 auto;padding:32px 24px 80px;position:relative;z-index:1;}
.t-runner-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap;}
.t-back-btn{
  padding:9px 18px;border-radius:50px;border:1px solid var(--gb);
  background:transparent;color:var(--t2);font-size:.85rem;font-weight:500;transition:var(--r);
}
.t-back-btn:hover{border-color:var(--rose);color:var(--rose);}
.t-runner-meta{flex:1;text-align:right;}
.t-runner-name{font-family:var(--fd);font-size:1.1rem;font-weight:700;display:block;}
.t-runner-qcount{font-size:.8rem;color:var(--t3);}
.t-progress-track{height:5px;background:rgba(255,255,255,.07);border-radius:3px;margin-bottom:36px;overflow:hidden;}
.t-progress-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--rose),var(--lav));transition:width .4s ease;width:0%;box-shadow:0 0 10px rgba(255,107,157,.5);}

.t-q-card{
  background:var(--card);border:1px solid var(--gb);border-radius:26px;
  padding:40px 36px;box-shadow:0 24px 80px rgba(0,0,0,.5);
  position:relative;overflow:hidden;
}
.t-q-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,107,157,.5),rgba(199,125,255,.5),transparent);}
.t-q-num{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--rose);margin-bottom:16px;}
.t-q-text{font-family:var(--fd);font-size:clamp(1.1rem,2.5vw,1.45rem);font-weight:700;line-height:1.45;margin-bottom:30px;}
.t-opts{display:flex;flex-direction:column;gap:11px;margin-bottom:28px;}
.t-opt{
  background:rgba(255,255,255,.03);border:1px solid var(--gb);border-radius:16px;
  padding:16px 20px;color:var(--text);font-size:.95rem;text-align:left;
  display:flex;align-items:center;gap:16px;transition:all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: relative; overflow: hidden;
}
.t-opt::after {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--rose); transform: scaleY(0); transition: transform 0.3s ease;
}
.t-opt:hover{border-color:rgba(255,107,157,0.5);background:rgba(255,107,157,.08);transform:translateX(6px);box-shadow: 0 4px 15px rgba(255,107,157,0.15);}
.t-opt.sel{border-color:var(--rose);background:rgba(255,107,157,.15);transform:translateX(8px);box-shadow: 0 4px 20px rgba(255,107,157,0.25);}
.t-opt.sel::after { transform: scaleY(1); }
.t-opt-l{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  background:rgba(255,107,157,.1);border:1px solid rgba(255,107,157,.4);
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;font-weight:700;color:var(--rose);
  transition: all 0.3s ease;
}
.t-opt.sel .t-opt-l {
  background: var(--rose); color: #fff; border-color: var(--rose);
  box-shadow: 0 0 15px rgba(255,107,157,0.5);
}
/* Binary (2-option) special style */
.t-opt.binary{border-radius:14px;padding:18px 20px;font-size:.95rem;}
.t-q-foot{text-align:center;}
.t-next-btn{
  padding:16px 44px;border:none;border-radius:50px;
  background:linear-gradient(135deg,#ff6b9d,#c77dff);color:#fff;
  font-size:1rem;font-weight:600;transition:all 0.3s ease;
  box-shadow:0 8px 25px rgba(255,107,157,.4);
  position: relative; overflow: hidden;
}
.t-next-btn::before {
  content: ''; position: absolute; top:0; left: -100%; width: 50%; height: 100%;
  background: linear-gradient(to right, transparent, rgba(255,255,255,0.4), transparent);
  transform: skewX(-20deg); transition: none;
}
.t-next-btn:not(:disabled):hover::before {
  animation: shine 0.7s ease forwards;
}
@keyframes shine { 100% { left: 200%; } }
.t-next-btn:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:0 12px 35px rgba(255,107,157,.6);}
.t-next-btn:disabled{opacity:.4;pointer-events:none; filter: grayscale(50%);}

/* ── RESULT ── */
.t-result-wrap{
  max-width:700px;margin:0 auto;padding:48px 24px 100px;
  position:relative;z-index:1;
  animation:fupin .5s ease both;
}
@keyframes fupin{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}
.t-result-top{text-align:center;margin-bottom:36px;}
.t-result-test-name{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:18px;}
.t-ring-wrap{position:relative;width:220px;height:220px;margin:0 auto;}
.t-ring-svg{display:block;}
.t-ring-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;}
.t-ring-pct{font-family:var(--fd);font-size:3rem;font-weight:900;line-height:1;
  background:linear-gradient(135deg,var(--rose),var(--lav));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.t-ring-pct span{font-size:1.4rem;}
.t-ring-emoji{font-size:1.7rem;animation:bloom 1.8s ease-in-out infinite;}
.t-result-body{background:var(--card);border:1px solid var(--gb);border-radius:26px;padding:36px;box-shadow:0 24px 80px rgba(0,0,0,.5);position:relative;overflow:hidden;}
.t-result-body::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,107,157,.5),rgba(199,125,255,.5),transparent);}
.t-result-label{font-family:var(--fd);font-size:1.9rem;font-weight:900;margin-bottom:12px;text-align:center;
  background:linear-gradient(135deg,var(--rose),var(--lav));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.t-result-desc{color:var(--t2);font-size:.97rem;line-height:1.75;text-align:center;margin-bottom:24px;}

/* Sub-scores */
.t-sub-scores{margin-bottom:28px;}
.t-sub-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--t3);margin-bottom:14px;text-align:center;}
.t-sub-item{margin-bottom:12px;}
.t-sub-label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600;margin-bottom:5px;}
.t-sub-pct{color:var(--rose);}
.t-sub-track{height:8px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden;}
.t-sub-fill{height:100%;border-radius:4px;width:0%;transition:width 1.4s cubic-bezier(.4,0,.2,1);}

/* Traits */
.t-traits-wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;}
.t-traits-col h4{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-bottom:10px;}
.t-tag{
  display:inline-block;padding:6px 14px;border-radius:20px;
  font-size:.8rem;font-weight:600;margin:4px 3px;
  opacity:0;transform:scale(0.7);
  animation:popIn .3s ease forwards;
}
@keyframes popIn{to{opacity:1;transform:scale(1);}}
.t-tag.strength{background:rgba(6,214,160,.12);border:1px solid rgba(6,214,160,.25);color:var(--teal);}
.t-tag.growth{background:rgba(246,200,110,.1);border:1px solid rgba(246,200,110,.25);color:var(--gold);}

/* Advice */
.t-advice-card{background:rgba(255,107,157,.06);border:1px solid rgba(255,107,157,.18);border-radius:16px;padding:22px 24px;margin-bottom:28px;text-align:center;}
.t-advice-icon{font-size:1.8rem;margin-bottom:8px;}
.t-advice-text{color:var(--t2);font-size:.92rem;line-height:1.7;font-style:italic;}

/* Result buttons */
.t-result-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.t-retake-btn,.t-hub-btn,.t-copy-btn{
  padding:12px 24px;border-radius:50px;font-size:.88rem;font-weight:600;transition:var(--r);
}
.t-retake-btn{background:linear-gradient(135deg,var(--rose),var(--lav));border:none;color:#fff;box-shadow:0 6px 22px rgba(255,107,157,.4);}
.t-retake-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(255,107,157,.5);}
.t-hub-btn{background:transparent;border:1px solid var(--gb);color:var(--t2);}
.t-hub-btn:hover{border-color:var(--lav);color:var(--lav);}
.t-copy-btn{background:rgba(246,200,110,.1);border:1px solid rgba(246,200,110,.25);color:var(--gold);}
.t-copy-btn:hover{background:rgba(246,200,110,.2);}

/* Footer */
.t-footer{text-align:center;padding:36px 24px;border-top:1px solid var(--gb);color:var(--t3);font-size:.78rem;}
.t-footer a{color:var(--t3);transition:color .2s;}
.t-footer a:hover{color:var(--rose);}

/* Toast */
.t-toast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(80px);
  background:rgba(20,10,32,.96);border:1px solid rgba(255,107,157,.3);
  border-radius:50px;padding:11px 26px;font-size:.86rem;font-weight:500;
  box-shadow:0 8px 32px rgba(0,0,0,.5);transition:transform .3s cubic-bezier(.4,0,.2,1);
  z-index:9999;white-space:nowrap;color:var(--text);
}
.t-toast.show{transform:translateX(-50%) translateY(0);}

/* Responsive */
@media(max-width:640px){
  .t-header{padding:14px 16px;}
  .t-nav .t-nl{display:none;}
  .t-q-card{padding:28px 20px;}
  .t-result-body{padding:24px 18px;}
  .t-traits-wrap{grid-template-columns:1fr;}
  .t-result-btns{flex-direction:column;}
  .t-retake-btn,.t-hub-btn,.t-copy-btn{width:100%;text-align:center;}
}
@media(max-width:400px){
  .t-grid{grid-template-columns:1fr;}
}
