:root{
  --bg:#f4f3fb;
  --surface:#ffffff;
  --ink:#2b2a3d;
  --muted:#605e78;   /* assombri pour le contraste (WCAG AA) */
  --line:#e9e6f5;
  --primary:#7c5cdb;
  --primary-2:#9b6ef0;
  --accent:#5ec8b4;
  --accent-warm:#f7a85c;
  --pink:#f48fb1;
  --ok:#4caf82;
  --warn:#e07a7a;
  --grad:linear-gradient(135deg,#7c5cdb 0%,#9b6ef0 45%,#5ec8b4 100%);
  --grad-soft:linear-gradient(135deg,#efeafd,#e6f7f3);
  --radius:22px;
  --shadow:0 14px 40px rgba(90,70,160,.12);
  --shadow-sm:0 6px 18px rgba(90,70,160,.08);
  --shadow-lg:0 26px 60px rgba(90,70,160,.20);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Nunito',system-ui,sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.55;
  overflow-x:hidden;
}
h1,h2,h3,.brand-name{font-family:'Poppins',sans-serif}

/* Décor de fond animé */
.bg-blobs{position:fixed;inset:0;z-index:-1;overflow:hidden;filter:blur(70px);opacity:.55}
.bg-blobs span{position:absolute;width:46vmax;height:46vmax;border-radius:50%;animation:float 18s ease-in-out infinite}
.bg-blobs span:nth-child(1){background:#c9b8f7;top:-12vmax;left:-8vmax}
.bg-blobs span:nth-child(2){background:#b6ebe0;bottom:-14vmax;right:-6vmax;animation-delay:-6s}
.bg-blobs span:nth-child(3){background:#f7d3b8;top:30vmax;left:40vmax;animation-delay:-11s}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(3vmax,4vmax) scale(1.08)}}

/* ============ SPLASH D'OUVERTURE ============ */
.splash{position:fixed;inset:0;z-index:200;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 38%,#3a2d6b,#241d49 55%,#1c3f3a);
  transition:opacity .6s ease}
.splash.hide{opacity:0;pointer-events:none}
.splash-inner{display:flex;flex-direction:column;align-items:center}
/* Le prisme flotte en haut, en attente, puis tombe au tap (-> son synchronisé) */
.splash-prism{width:140px;height:140px;filter:drop-shadow(0 10px 24px rgba(0,0,0,.4));
  transform:translateY(-34vh);animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(-34vh) rotate(-2deg)}50%{transform:translateY(-37vh) rotate(2deg)}}
.splash-prism.drop{animation:prismDrop .72s cubic-bezier(.4,1.5,.5,1) forwards}
@keyframes prismDrop{
  0%{transform:translateY(-34vh) rotate(-6deg) scale(.9)}
  70%{transform:translateY(7px) rotate(4deg) scale(1.07)}
  85%{transform:translateY(-4px) rotate(-1deg) scale(.99)}
  100%{transform:translateY(0) rotate(0) scale(1)}}
.splash-name{margin-top:18px;font-family:'Poppins';font-weight:800;font-size:2.6rem;letter-spacing:10px;text-indent:10px;
  background:linear-gradient(135deg,#c9b6ff,#7fe4d2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  opacity:0;transform:translateY(16px) scale(.92);transition:opacity .6s ease,transform .6s ease}
.splash.revealed .splash-name{opacity:1;transform:none}
.splash-skip{position:absolute;bottom:42px;color:rgba(255,255,255,.55);font-weight:700;font-size:.85rem;
  letter-spacing:1px;opacity:0;animation:skipIn 1s ease .8s forwards}
.splash.revealed .splash-skip{opacity:0;transition:opacity .4s}
@keyframes skipIn{from{opacity:0}to{opacity:.7}}
.splash-flash{position:absolute;left:50%;top:42%;width:8px;height:8px;border-radius:50%;
  background:radial-gradient(circle,#fff,rgba(255,255,255,0));transform:translate(-50%,-50%) scale(0);opacity:0}
.splash-flash.boom{animation:boom .5s ease-out forwards}
@keyframes boom{0%{transform:translate(-50%,-50%) scale(0);opacity:.9}100%{transform:translate(-50%,-50%) scale(60);opacity:0}}

/* Topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;position:relative;z-index:20;
  background:rgba(255,255,255,.7);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:12px;cursor:pointer}
.brand-logo{width:42px;height:42px;flex:none;animation:spin 22s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.brand-txt{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-weight:800;font-size:1.35rem;letter-spacing:2px;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-sub{font-size:.62rem;color:var(--muted);font-weight:700;letter-spacing:.3px;max-width:240px}
.user-zone{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem}
.avatar-btn{border:2px solid var(--line);background:var(--grad-soft);border-radius:50%;width:42px;height:42px;
  padding:0;cursor:pointer;overflow:hidden;display:grid;place-items:center;transition:.18s;flex:none}
.avatar-btn:hover{border-color:var(--primary);transform:scale(1.06)}
.avatar-svg{display:block}
.topbar-right{display:flex;align-items:center;gap:12px;position:relative}

/* Modale avatar */
.avatar-preview{display:grid;place-items:center;margin:6px auto 16px;width:150px;height:150px;border-radius:50%;
  background:var(--grad-soft);border:1px solid var(--line)}
.av-group{margin-top:14px}
.av-group>label{display:block;font-weight:800;font-size:.85rem;margin-bottom:8px;color:var(--muted)}
.swatches{display:flex;gap:10px}
.swatch{width:36px;height:36px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:.15s;box-shadow:var(--shadow-sm)}
.swatch:hover{transform:scale(1.1)}
.swatch.sel{border-color:var(--primary);box-shadow:0 0 0 2px #fff inset}
.opts-row{display:flex;flex-wrap:wrap;gap:8px}
.av-opt{border:2px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 14px;
  font-family:inherit;font-weight:700;font-size:.9rem;cursor:pointer;transition:.15s;color:var(--ink)}
.av-opt:hover{border-color:var(--primary)}
.av-opt.sel{background:var(--grad);color:#fff;border-color:transparent}
.gear{border:none;background:rgba(124,92,219,.1);width:38px;height:38px;border-radius:50%;cursor:pointer;
  font-size:1.1rem;transition:.2s;display:grid;place-items:center}
.gear:hover{background:rgba(124,92,219,.2);transform:rotate(40deg)}
.settings-pop{position:absolute;top:48px;right:0;background:var(--surface);border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow);padding:16px;width:240px;z-index:30;animation:pop .2s ease}
.set-row{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:.95rem}
.settings-pop p{margin:8px 0 0}
.switch{position:relative;display:inline-block;width:46px;height:26px;flex:none}
.switch input{opacity:0;width:0;height:0}
.switch .slider{position:absolute;inset:0;background:var(--line);border-radius:99px;cursor:pointer;transition:.2s}
.switch .slider::before{content:'';position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;
  border-radius:50%;transition:.2s;box-shadow:var(--shadow-sm)}
.switch input:checked + .slider{background:var(--grad)}
.switch input:checked + .slider::before{transform:translateX(20px)}

/* Tabs */
.tabs{display:flex;justify-content:center;gap:6px;padding:8px 12px;position:sticky;top:0;z-index:5;
  background:rgba(255,255,255,.65);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.tab{border:none;background:none;padding:10px 18px;font-family:inherit;font-weight:800;font-size:.95rem;
  color:var(--muted);cursor:pointer;border-radius:999px;transition:.2s;display:flex;align-items:center;gap:6px}
.tab .tic{font-size:1rem}
.tab:hover{color:var(--ink);background:rgba(124,92,219,.08)}
.tab.active{color:#fff;background:var(--grad);box-shadow:var(--shadow-sm)}

/* Layout */
.content{max-width:840px;margin:0 auto;padding:30px 20px 90px}
.panel{display:none;animation:fade .4s ease}
.panel.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.title{font-size:1.7rem;font-weight:800;margin:.2em 0 .4em}
.title.big{font-size:2.3rem;line-height:1.12}
.lead{font-size:1.12rem}
.muted{color:var(--muted)}
.center{text-align:center}
.small{font-size:.85rem}
.section-title{margin-top:2.4em;font-size:1.35rem;font-weight:800}
.accent-pill{display:inline-block;background:var(--grad-soft);border:1px solid var(--line);
  padding:8px 16px;border-radius:999px;margin:6px auto}

/* Boutons */
.start-btn{margin:22px auto 0;display:block;border:none;cursor:pointer;background:var(--grad);color:#fff;
  font-family:'Poppins',sans-serif;font-weight:700;font-size:1.15rem;padding:18px 52px;border-radius:999px;
  box-shadow:0 12px 30px rgba(124,92,219,.35);transition:transform .15s,box-shadow .15s;position:relative}
.start-btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 18px 40px rgba(124,92,219,.45)}
.start-btn:active{transform:translateY(-1px)}
.primary-btn{background:var(--grad);color:#fff;border:none;border-radius:14px;padding:13px 28px;
  font-family:inherit;font-weight:800;font-size:1rem;cursor:pointer;transition:.15s;box-shadow:var(--shadow-sm)}
.primary-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.primary-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.primary-btn.full{width:100%;margin-top:8px}
.ghost-btn{background:none;border:none;color:var(--muted);font-family:inherit;font-weight:700;cursor:pointer;
  text-decoration:underline;font-size:.9rem}
.link{background:none;border:none;color:var(--primary);font-family:inherit;font-weight:800;cursor:pointer;
  text-decoration:underline;padding:0;font-size:inherit}

/* Test home */
.test-home{text-align:center;padding:54px 0;position:relative}
.th-glow{position:absolute;width:280px;height:280px;left:50%;top:30px;transform:translateX(-50%);
  background:radial-gradient(circle,rgba(124,92,219,.18),transparent 70%);z-index:-1}

/* Age gate */
.age-gate{max-width:440px;margin:50px auto;text-align:center;background:var(--surface);
  padding:34px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}
.age-display{font-family:'Poppins';font-size:2.6rem;font-weight:800;color:var(--primary);margin:18px 0 4px}
.age-display span{font-size:3.4rem}
.age-slider{width:100%;-webkit-appearance:none;height:8px;border-radius:99px;
  background:linear-gradient(90deg,var(--primary),var(--accent));outline:none}
.age-slider::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;
  background:#fff;border:4px solid var(--primary);cursor:pointer;box-shadow:var(--shadow-sm)}

/* Runner */
.runner-head{margin-bottom:24px}
.progress{height:10px;background:var(--line);border-radius:99px;overflow:hidden}
.progress-bar{height:100%;width:0;background:var(--grad);transition:width .35s;border-radius:99px}
.runner-meta{display:flex;justify-content:space-between;margin-top:10px;font-size:.85rem;font-weight:800}
.dim-label{color:var(--primary)}
.q-counter{color:var(--muted)}
.speed-timer{text-align:center;font-weight:800;color:var(--accent-warm);font-size:1.15rem;margin-bottom:12px}
.question-area{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px;box-shadow:var(--shadow);min-height:210px}
.q-text{font-size:1.3rem;font-weight:800;margin-bottom:22px}
.q-figure{font-family:'Courier New',monospace;font-size:1.5rem;text-align:center;background:var(--grad-soft);
  padding:20px;border-radius:14px;margin-bottom:20px;white-space:pre;line-height:1.4}
.options{display:grid;gap:12px}
.opt{text-align:left;border:2px solid var(--line);background:var(--surface);border-radius:14px;padding:15px 18px;
  font-family:inherit;font-size:1.05rem;cursor:pointer;transition:.15s;color:var(--ink)}
.opt:hover{border-color:var(--primary);transform:translateX(3px)}
.opt.selected{border-color:var(--primary);background:linear-gradient(135deg,#f3eefe,#e9f8f4);font-weight:800}
/* Feedback bonne/mauvaise réponse */
.opt.correct{border-color:#3fae7c;background:linear-gradient(135deg,#e6f8ef,#d8f3e6);color:#1c7a52;font-weight:800}
.opt.wrong{border-color:#e0706f;background:linear-gradient(135deg,#fdeaea,#fbdede);color:#b23636;font-weight:800}
.opt.correct::after{content:'✓';float:right;font-weight:800}
.opt.wrong::after{content:'✗';float:right;font-weight:800}
.opt.locked{pointer-events:none}
.opt.locked:not(.correct):not(.wrong){opacity:.55}
/* Explication pédagogique affichée après une réponse fausse */
.q-explain{margin-top:14px;padding:12px 16px;border-radius:12px;
  background:var(--grad-soft);border-left:4px solid var(--primary);
  font-size:.92rem;color:var(--ink);line-height:1.5;animation:explainIn .25s ease}
@keyframes explainIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.likert{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between}
.likert .opt{flex:1;text-align:center;min-width:88px}
/* Items VISUELS (matrices & rotations SVG) */
.q-figure-visual{background:var(--grad-soft);border-radius:16px;padding:16px;display:flex;justify-content:center;align-items:center}
.q-figure-visual svg.vmatrix{width:min(100%,260px);height:auto}
.q-figure-visual svg.vtile{width:120px;height:120px}
.options-visual{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.opt-visual{display:flex;align-items:center;justify-content:center;padding:10px;min-height:100px}
.opt-visual svg.vtile{width:78px;height:78px;pointer-events:none;display:block}
.open-input{width:100%;border:2px solid var(--line);border-radius:14px;padding:14px;font-family:inherit;
  font-size:1.05rem;min-height:90px;resize:vertical}
.open-hint{font-size:.8rem;color:var(--muted);margin-top:8px}
.runner-actions{display:flex;justify-content:space-between;align-items:center;margin-top:22px}

/* Fin de test / personnage */
.test-done{text-align:center;padding:34px 0}
.character{width:190px;height:190px;margin:0 auto 6px;animation:pop .5s ease}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.char-title{font-family:'Poppins';font-size:1.7rem;font-weight:800}
.char-desc{max-width:480px;margin:8px auto 22px;color:var(--muted)}
.done-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px;box-shadow:var(--shadow);max-width:440px;margin:0 auto}
.blur-score{filter:blur(8px);user-select:none;font-family:'Poppins';font-size:3rem;font-weight:800;color:var(--primary)}

/* Hero accueil */
.hero{text-align:center;padding:18px 0 8px}
.hero-badge{display:inline-block;background:var(--surface);border:1px solid var(--line);border-radius:999px;
  padding:7px 16px;font-weight:800;font-size:.82rem;box-shadow:var(--shadow-sm);margin-bottom:14px}
.hero .lead{max-width:540px;margin:10px auto}

/* Acronyme */
.acronym{max-width:420px;margin:34px auto;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:14px 26px;box-shadow:var(--shadow-sm)}
.acro-row{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:16px;padding:9px 0;border-bottom:1px solid var(--line)}
.acro-row:last-child{border-bottom:none}
.acro-row b{font-family:'Poppins';font-size:1.6rem;text-align:center;line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.acro-row span{color:var(--ink);font-weight:700;font-size:1.05rem}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-top:14px}
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;
  text-align:center;box-shadow:var(--shadow-sm);transition:.2s}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.step-n{width:44px;height:44px;margin:0 auto 10px;border-radius:50%;background:var(--grad);color:#fff;
  font-family:'Poppins';font-weight:800;font-size:1.2rem;display:grid;place-items:center}
.step h3{margin:0 0 4px;font-size:1.1rem}
.step p{margin:0;font-size:.9rem;color:var(--muted)}

/* Chips facettes */
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:14px}
.chip{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:10px 18px;
  font-weight:800;font-size:.92rem;box-shadow:var(--shadow-sm);transition:.18s;cursor:default}
.chip:hover{transform:translateY(-2px);border-color:var(--primary)}
.chip .ci{margin-right:6px}

/* Détails / tarifs repliés */
.more{margin-top:30px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:6px 22px;box-shadow:var(--shadow-sm)}
.more summary{cursor:pointer;font-weight:800;padding:14px 0;color:var(--primary)}
.pricing{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:10px 0}
.price-card{background:var(--grad-soft);border:1px solid var(--line);border-radius:16px;padding:18px;text-align:center}
.price-card.featured{outline:2px solid var(--primary)}
.price-name{font-weight:800;color:var(--primary)}
.price-val{font-family:'Poppins';font-size:1.5rem;font-weight:800;margin-top:6px}
.price-val span{display:block;font-size:.75rem;color:var(--muted);font-weight:600}

/* DÉFI */
.defi-cta{text-align:center}
.defi-incoming{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:30px;box-shadow:var(--shadow);max-width:460px;margin:30px auto}
.defi-incoming .vs{font-family:'Poppins';font-size:1.4rem;font-weight:800;margin:10px 0}
.score-to-beat{font-family:'Poppins';font-size:2.6rem;font-weight:800;color:var(--accent-warm)}
.defi-result{text-align:center}
.defi-verdict{font-family:'Poppins';font-size:1.8rem;font-weight:800;margin:8px 0}
.win{color:var(--ok)}.lose{color:var(--warn)}.tie{color:var(--primary)}
.share-box{display:flex;gap:8px;max-width:480px;margin:16px auto;background:var(--surface);
  border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:var(--shadow-sm)}
.share-box input{flex:1;border:none;background:none;font-family:inherit;font-size:.85rem;color:var(--muted);outline:none}
.defi-board{margin-top:30px}
.board-row{display:flex;justify-content:space-between;align-items:center;background:var(--surface);
  border:1px solid var(--line);border-radius:14px;padding:12px 18px;margin-top:8px;box-shadow:var(--shadow-sm)}
.board-row .rank{font-family:'Poppins';font-weight:800;color:var(--primary);margin-right:10px}

/* Résultat */
.result-empty{text-align:center;padding:50px 0}
.global-score{background:var(--grad);color:#fff;border-radius:var(--radius);padding:32px;text-align:center;
  box-shadow:0 18px 44px rgba(124,92,219,.32);position:relative;overflow:hidden}
.global-score::after{content:'';position:absolute;width:220px;height:220px;background:rgba(255,255,255,.12);
  border-radius:50%;top:-90px;right:-60px}
.global-score .num{font-family:'Poppins';font-size:3.4rem;font-weight:800;line-height:1}
.global-score .lbl{opacity:.92;font-weight:800;letter-spacing:.5px}
.global-score .pct{margin-top:8px;font-size:.95rem;opacity:.96}
.detail-list{margin-top:24px;display:grid;gap:14px}
.detail-row{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow-sm)}
.detail-row .dr-head{display:flex;justify-content:space-between;font-weight:800;margin-bottom:8px}
.bar{height:12px;background:var(--line);border-radius:99px;overflow:hidden}
.bar>span{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .8s}
.dr-tip{font-size:.85rem;color:var(--muted);margin-top:8px}
.wellbeing{background:#fff6ef;border:1px solid #f4dcc4;border-radius:18px;padding:18px;margin-top:20px}
.wellbeing h3{margin:0 0 6px;color:#c87a3a}
.evo-chart{width:100%;height:220px;background:var(--surface);border:1px solid var(--line);border-radius:18px}
.cohort-note{font-size:.85rem;color:var(--muted);margin-top:6px}

/* Modales */
.modal-overlay{position:fixed;inset:0;background:rgba(43,42,61,.5);backdrop-filter:blur(4px);display:flex;
  align-items:center;justify-content:center;z-index:50;padding:20px}
.modal-overlay[hidden]{display:none}
.modal{background:var(--surface);border-radius:var(--radius);padding:28px;max-width:430px;width:100%;
  position:relative;box-shadow:var(--shadow);max-height:90vh;overflow:auto;animation:pop .3s ease}
.modal-wide{max-width:680px}
.modal h2{margin-top:0;font-size:1.35rem}
.modal label{display:block;font-weight:800;font-size:.88rem;margin-top:14px}
.modal input{width:100%;border:2px solid var(--line);border-radius:12px;padding:11px;font-family:inherit;font-size:1rem;margin-top:5px}
.modal input:focus{outline:none;border-color:var(--primary)}
/* Champ mot de passe avec bouton "afficher" */
.pw-wrap{position:relative;display:block;margin-top:5px}
.pw-wrap input{margin-top:0;padding-right:44px}
.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:none;
  cursor:pointer;font-size:1.15rem;line-height:1;padding:4px;opacity:.6;transition:.15s}
.pw-toggle:hover,.pw-toggle.on{opacity:1}
.modal textarea,.modal select{width:100%;border:2px solid var(--line);border-radius:12px;padding:11px;font-family:inherit;font-size:1rem;margin-top:5px;background:#fff;resize:vertical}
.modal textarea:focus,.modal select:focus{outline:none;border-color:var(--primary)}
.modal .row{display:flex;gap:12px}
.modal .row label{flex:1}
.modal-close{position:absolute;top:12px;right:16px;border:none;background:none;font-size:1.7rem;cursor:pointer;color:var(--muted)}
.check{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.84rem;margin-top:16px}
.check input{width:auto}
.form-err{color:var(--warn);font-weight:800;font-size:.85rem;margin-top:10px}
.form-ok{color:var(--ok);font-weight:800;font-size:.85rem;margin-top:10px}
.pay-opt{border:2px solid var(--line);border-radius:14px;padding:15px;margin-top:12px;cursor:pointer;transition:.15s}
.pay-opt:hover{border-color:var(--primary);background:var(--grad-soft)}
#cguBody h3{margin:16px 0 6px}
#cguBody p{font-size:.9rem}

/* ===========================================================================
   COUCHE PREMIUM — radar, insights, partage, PRISME+, micro-interactions
   =========================================================================== */

/* --- Typo & accents --- */
.grad-txt{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
:focus-visible{outline:3px solid rgba(124,92,219,.45);outline-offset:2px;border-radius:8px}

/* --- Accueil : pastilles héro + bandeau rétention --- */
.hero-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:20px}
.hero-pills span{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 14px;
  font-weight:800;font-size:.8rem;color:var(--muted);box-shadow:var(--shadow-sm);transition:.18s}
.hero-pills span:hover{transform:translateY(-2px);border-color:var(--primary);color:var(--ink)}
.retention-strip{display:flex;gap:16px;align-items:center;margin-top:28px;
  background:var(--grad-soft);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;box-shadow:var(--shadow-sm)}
.retention-strip .rs-ico{font-size:2rem;flex:none}
.retention-strip span{color:var(--muted);font-size:.92rem}

/* --- Micro-interactions générales --- */
.primary-btn:active{transform:translateY(0) scale(.98)}
.opt:hover{box-shadow:var(--shadow-sm)}
.detail-row{transition:transform .2s ease,box-shadow .2s ease}
.detail-row:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.chip:hover{box-shadow:var(--shadow)}

/* --- Apparition douce des blocs du Résultat --- */
.reveal{animation:rise .55s cubic-bezier(.2,.7,.3,1) both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* --- Palier (badge sur l'indice global) --- */
.level-chip{display:inline-block;margin-top:12px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 16px;
  font-weight:800;font-size:.9rem;letter-spacing:.3px}

/* --- Radar / signature cognitive --- */
.radar-card{margin-top:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 14px 16px;box-shadow:var(--shadow);text-align:center;position:relative;overflow:hidden}
.radar-card::before{content:'';position:absolute;left:-10%;right:-10%;top:-30%;height:55%;
  background:radial-gradient(ellipse at 50% 0,rgba(124,92,219,.08),transparent 70%);pointer-events:none}
.radar-title{margin:0;font-size:1.25rem}
.radar-sub{margin:2px 0 0;font-size:.85rem;color:var(--muted)}
.radar-svg{width:100%;max-width:440px;height:auto;margin:2px auto 0;display:block}
.radar-poly{stroke-dasharray:100;stroke-dashoffset:100;animation:radarDraw 1.25s ease .25s forwards}
@keyframes radarDraw{to{stroke-dashoffset:0}}
.radar-fill{opacity:0;animation:radarFill .8s ease .95s forwards}
@keyframes radarFill{to{opacity:1}}
.radar-dot{opacity:0;animation:dotIn .4s ease forwards}
@keyframes dotIn{from{opacity:0}to{opacity:1}}

/* --- Insights personnalisés --- */
.insights{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.insight{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 20px 16px 24px;
  box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.insight::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px}
.insight.strength::before{background:linear-gradient(180deg,#7c5cdb,#9b6ef0)}
.insight.growth::before{background:linear-gradient(180deg,#5ec8b4,#8fdccd)}
.in-k{font-weight:800;font-size:.74rem;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.in-facet{font-family:'Poppins';font-weight:800;font-size:1.12rem;margin:4px 0 0}
.insight.strength .in-facet{color:var(--primary)}
.insight.growth .in-facet{color:#2fa08c}
.in-score{float:right;font-family:'Poppins';font-weight:800;font-size:1.05rem;color:var(--ink);opacity:.85}
.in-txt{font-size:.9rem;color:var(--muted);margin:6px 0 0;line-height:1.5}

/* --- Carte de résultat partageable --- */
.share-card{margin-top:22px;border-radius:var(--radius);padding:26px 22px 22px;color:#fff;text-align:center;
  background:radial-gradient(circle at 18% 12%,rgba(155,110,240,.4),transparent 55%),
             radial-gradient(circle at 85% 92%,rgba(94,200,180,.3),transparent 55%),
             linear-gradient(150deg,#332766,#241d49 55%,#1d3a38);
  box-shadow:0 22px 54px rgba(36,29,73,.38);position:relative;overflow:hidden}
.sc-inner{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap}
.share-char{width:104px;height:104px;flex:none}
.sc-mid{min-width:150px}
.sc-brand{font-family:'Poppins';font-weight:800;letter-spacing:6px;text-indent:6px;font-size:.8rem;
  background:linear-gradient(135deg,#c9b6ff,#7fe4d2);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.sc-title{font-family:'Poppins';font-weight:800;font-size:1.15rem;margin-top:2px}
.sc-indice{font-family:'Poppins';font-weight:800;font-size:2.7rem;line-height:1.1}
.sc-lvl{font-size:.85rem;font-weight:800;opacity:.92}
.sc-radar{flex:none;opacity:.95}
.share-btn{margin-top:18px;border:none;cursor:pointer;background:#fff;color:#332766;
  font-family:'Poppins',sans-serif;font-weight:700;font-size:1rem;padding:13px 30px;border-radius:999px;
  box-shadow:0 10px 26px rgba(0,0,0,.3);transition:transform .15s,box-shadow .15s}
.share-btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 14px 34px rgba(0,0,0,.38)}
.share-btn:active{transform:scale(.98)}
.sc-hint{margin:10px 0 0;font-size:.78rem;color:rgba(255,255,255,.65);font-weight:700}

/* --- Message d'évolution (rétention) --- */
.evo-hint{margin-top:12px;background:var(--grad-soft);border:1px solid var(--line);border-radius:16px;
  padding:14px 18px;font-weight:700;font-size:.95rem}

/* --- Bloc PRISME+ (conversion, honnête) --- */
.plus-block{margin-top:36px;border-radius:var(--radius);padding:26px 24px;position:relative;
  border:2px solid transparent;
  background:linear-gradient(var(--surface),var(--surface)) padding-box,var(--grad) border-box;
  box-shadow:var(--shadow-lg)}
.plus-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.plus-logo{font-family:'Poppins';font-weight:800;font-size:1.2rem;letter-spacing:3px;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.plus-soon{background:var(--grad-soft);border:1px solid var(--line);border-radius:999px;
  padding:5px 13px;font-size:.75rem;font-weight:800;color:var(--primary)}
.plus-title{font-size:1.3rem;margin:14px 0 2px;font-family:'Poppins'}
.plus-lead{margin:2px 0 0;color:var(--muted);font-size:.95rem}
.plus-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:11px}
.plus-list li{display:flex;gap:11px;align-items:flex-start;font-size:.95rem;line-height:1.5}
.plus-list li>span:first-child{flex:none;font-size:1.1rem}
.plus-list li>span:last-child{flex:1;min-width:0}
.plus-prices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.pp{background:var(--grad-soft);border:1px solid var(--line);border-radius:14px;padding:13px 10px;text-align:center;transition:.18s}
.pp:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.pp b{font-family:'Poppins';font-size:1.05rem}
.pp span{display:block;font-size:.72rem;color:var(--muted);font-weight:700;margin-top:3px}
.pp.featured{outline:2px solid var(--primary)}
.plus-cta{margin:20px auto 0;display:block;background:var(--grad);color:#fff;border:none;cursor:pointer;
  font-family:'Poppins',sans-serif;font-weight:700;font-size:1rem;padding:14px 34px;border-radius:999px;
  box-shadow:0 12px 28px rgba(124,92,219,.35);transition:transform .15s,box-shadow .15s}
.plus-cta:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(124,92,219,.45)}
.plus-note{font-size:.78rem;color:var(--muted);text-align:center;margin:12px 0 0}

/* --- Détail par facette : score typographié --- */
.dr-score{font-family:'Poppins';color:var(--primary)}
.dr-score .dr-max{font-size:.72em;color:var(--muted);font-weight:700}

/* --- Personnage de fin premium --- */
.character{filter:drop-shadow(0 14px 26px rgba(90,70,160,.28))}
.spark{fill:#b39ddb;animation:twinkle 1.9s ease-in-out infinite}
.spark.s2{animation-delay:.6s;fill:#5ec8b4}
.spark.s3{animation-delay:1.15s;fill:#f7a85c}
@keyframes twinkle{0%,100%{opacity:.15}50%{opacity:1}}
.char-ring{transform-box:fill-box;transform-origin:center;animation:ringSpin 16s linear infinite}
@keyframes ringSpin{to{transform:rotate(360deg)}}

@media(max-width:560px){
  .insights{grid-template-columns:1fr}
  .plus-prices{grid-template-columns:1fr}
  .sc-inner{gap:12px}
  .retention-strip{padding:16px}
  .radar-card{padding:20px 6px 12px}
}

/* Respect de la préférence "réduire les animations" */
@media (prefers-reduced-motion: reduce){
  .bg-blobs span, .brand-logo, .splash-prism{animation:none !important}
  *{transition-duration:.001ms !important; animation-duration:.001ms !important}
}

@media(max-width:560px){
  .tab{padding:9px 12px;font-size:.85rem}
  .tab .tic{display:none}
  .title.big{font-size:1.8rem}
  .modal .row{flex-direction:column;gap:0}
  .brand-sub{display:none}
}
