/* Micatan — Labo du cerveau. Complète micatan.css (jetons, boutons, panneaux).
   Couleur d'univers : améthyste ; l'or est réservé aux récompenses (étoiles, records, réussites). */
.cv-vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.cv-defs{position:absolute;width:0;height:0}
html.cv-verrou,html.cv-verrou body{overflow:hidden}
kbd{font-family:var(--f-texte);font-weight:800;font-size:.68rem;line-height:1;min-width:20px;padding:4px 5px;border-radius:6px;background:rgba(10,14,28,.7);border:1px solid var(--ligne);color:var(--doux);text-align:center}

/* ---------- Héros ---------- */
.cv-heros{position:relative;min-height:min(86vh,760px);display:flex;align-items:center;overflow:hidden;isolation:isolate;
  background:radial-gradient(800px 520px at 72% 50%,rgba(167,123,255,.20),transparent 65%),radial-gradient(600px 400px at 15% 90%,rgba(242,184,75,.08),transparent 60%)}
.cv-reseau{position:absolute;inset:0;width:100%;height:100%;z-index:-2;max-width:none}
.cv-heros-voile{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,14,28,.92) 0%,rgba(10,14,28,.55) 42%,transparent 70%),linear-gradient(0deg,var(--nuit) 0%,transparent 22%)}
.cv-heros-in{width:100%;padding-block:72px}
.cv-heros-texte{max-width:600px;display:grid;gap:22px;animation:cv-monte .9s cubic-bezier(.2,.8,.2,1) both}
.cv-eyebrow{color:#c9adff}
.cv-heros .mc-h1{font-size:clamp(2.3rem,6vw,4.6rem)}
.cv-heros-verset{margin:0;padding:14px 0 14px 18px;border-left:2px solid var(--amethyste);display:grid;gap:6px;max-width:48ch}
.cv-heros-verset p{font-family:var(--f-titre);font-size:1.02rem;color:var(--texte);letter-spacing:.01em}
.cv-heros-verset cite{font-style:normal}
.cv-heros-actions{gap:12px}
.cv-heros-joueur{display:flex;align-items:center;gap:10px;color:var(--doux);font-size:.92rem}
.cv-heros-joueur b{color:var(--texte)}
@media (max-width:860px){
  .cv-heros{min-height:auto;align-items:flex-end}
  .cv-heros-in{padding-top:min(62vw,340px);padding-bottom:40px}
  .cv-heros-voile{background:linear-gradient(0deg,var(--nuit) 0%,rgba(10,14,28,.88) 46%,rgba(10,14,28,.2) 75%,transparent)}
}
@keyframes cv-monte{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* ---------- Vitrine ---------- */
.cv-grille{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:22px}
.cv-item{display:flex}
.cv-carte{--teinte:var(--amethyste);--mx:50%;--my:0%;position:relative;display:flex;flex-direction:column;width:100%;text-align:left;padding:0;border:1px solid var(--ligne-douce);border-radius:var(--r-l);overflow:hidden;
  background:linear-gradient(180deg,var(--nuit-2),#0d1226);color:var(--texte);transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s;isolation:isolate}
.cv-carte::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .3s;background:radial-gradient(420px 260px at var(--mx) var(--my),color-mix(in srgb,var(--teinte) 22%,transparent),transparent 70%)}
.cv-carte:hover,.cv-carte:focus-visible{transform:translateY(-6px);border-color:color-mix(in srgb,var(--teinte) 60%,var(--ligne));box-shadow:0 26px 60px -24px #000,0 0 0 1px color-mix(in srgb,var(--teinte) 30%,transparent),0 18px 50px -20px color-mix(in srgb,var(--teinte) 55%,transparent)}
.cv-carte:hover::before,.cv-carte:focus-visible::before{opacity:1}
.cv-carte:focus-visible{outline:3px solid var(--or);outline-offset:4px}
.cv-carte-art{position:relative;display:block;aspect-ratio:16/9;background:radial-gradient(circle at 50% 120%,color-mix(in srgb,var(--teinte) 25%,transparent),transparent 70%),#0b1024;border-bottom:1px solid var(--ligne-douce);overflow:hidden}
.cv-carte-art svg{width:100%;height:100%;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.cv-carte:hover .cv-carte-art svg{transform:scale(1.05)}
.cv-carte-num{position:absolute;top:12px;left:14px;font-family:var(--f-titre);font-weight:700;font-size:.8rem;letter-spacing:.2em;color:rgba(238,241,251,.45)}
.cv-carte-corps{display:grid;gap:10px;padding:20px 22px 22px;flex:1;align-content:start}
.cv-carte-haut{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.cv-puce-dom{--teinte:var(--amethyste);background:color-mix(in srgb,var(--teinte) 16%,transparent);color:color-mix(in srgb,var(--teinte) 70%,#fff)}
.cv-carte-titre{font-family:var(--f-titre);font-weight:700;font-size:1.32rem;line-height:1.15}
.cv-carte-desc{color:var(--doux);font-size:.95rem}
.cv-carte-pied{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px;padding-top:14px;border-top:1px solid var(--ligne-douce);font-size:.88rem}
.cv-carte-record{color:var(--doux);font-weight:600}
.cv-nouveau{color:#c9adff;font-weight:700}
.cv-jouer{display:inline-flex;gap:8px;align-items:center;font-weight:800;color:var(--or-clair);transition:gap .2s}
.cv-carte:hover .cv-jouer{gap:12px}
/* animations des visuels */
.cv-art-pulse{animation:cv-pulse 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.cv-d1{animation-delay:.35s}.cv-d2{animation-delay:.7s}.cv-d3{animation-delay:1.05s}.cv-d4{animation-delay:1.4s}
.cv-art-lueur{animation:cv-lueur 2.4s ease-in-out infinite}
.cv-art-trace{animation:cv-trace 2.6s linear infinite}
.cv-art-vague{animation:cv-vague 4s linear infinite}
@keyframes cv-pulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.08);opacity:1}}
@keyframes cv-lueur{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes cv-trace{to{stroke-dashoffset:-44}}
@keyframes cv-vague{to{transform:translateX(-80px)}}

/* ---------- Profil cognitif ---------- */
.cv-profil-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px}
@media (max-width:900px){.cv-profil-grille{grid-template-columns:minmax(0,1fr)}}
.cv-radar-panneau{display:grid;place-items:center;padding:12px}
.cv-radar-boite{position:relative;width:100%;max-width:460px;aspect-ratio:1}
.cv-radar{width:100%;height:100%;display:block}
.cv-radar-vide{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(70%,240px);text-align:center;font-size:.9rem;color:var(--doux);background:rgba(10,14,28,.78);border:1px solid var(--ligne);border-radius:14px;padding:12px}
.cv-profil-details{display:grid;gap:18px;align-content:start}
.cv-p-tete{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cv-p-avatar{width:48px;height:48px;font-size:1.2rem}
.cv-p-nom{font-family:var(--f-titre);font-weight:700;font-size:1.3rem}
.cv-p-niv{color:var(--doux);font-size:.88rem}
.cv-p-changer{margin-left:auto;min-height:44px;padding:10px 16px;font-size:.9rem}
.cv-p-stats{display:flex;gap:18px;color:var(--doux);font-size:.9rem}
.cv-p-stats b{color:var(--or-clair);font-size:1.1rem}
.cv-domaines{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.cv-dom{display:grid;gap:6px}
.cv-dom-tete{display:flex;justify-content:space-between;align-items:baseline;font-weight:700}
.cv-dom-tete b{color:var(--or-clair)}
.cv-dom-barre{height:10px;border-radius:999px;background:var(--nuit-3);overflow:hidden}
.cv-dom-barre i{--c:var(--amethyste);display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--c) 70%,#000),var(--c),color-mix(in srgb,var(--c) 55%,#fff));box-shadow:0 0 14px color-mix(in srgb,var(--c) 60%,transparent);transition:width 1s cubic-bezier(.2,.8,.2,1)}
.cv-dom-src{font-size:.78rem;color:var(--pale)}
.cv-conseil{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:16px;border:1px dashed rgba(167,123,255,.45);background:rgba(167,123,255,.07)}
.cv-conseil-l{font-weight:700;color:#d8c6ff;font-size:.92rem}
.cv-conseil-btn{min-height:44px;padding:10px 16px;font-size:.92rem}
.cv-avertissement{border-top:1px solid var(--ligne-douce);padding-top:14px}

/* ---------- Scène plein écran ---------- */
.cv-scene{--teinte:var(--amethyste);position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;background:var(--nuit);opacity:0;transform:scale(.985);transition:opacity .28s,transform .28s;
  padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
.cv-scene.cv-ouverte{opacity:1;transform:none}
.cv-scene-fond{position:absolute;inset:0;z-index:-1;background:radial-gradient(900px 600px at 50% -10%,color-mix(in srgb,var(--teinte) 22%,transparent),transparent 65%),radial-gradient(700px 500px at 50% 120%,rgba(242,184,75,.08),transparent 60%),var(--nuit)}
.cv-sc-barre{display:flex;align-items:center;gap:14px;padding:10px max(16px,2vw);border-bottom:1px solid var(--ligne-douce);background:rgba(10,14,28,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);flex-wrap:wrap}
.cv-sc-id{min-width:0;flex:1 1 180px}
.cv-sc-titre{font-family:var(--f-titre);font-weight:700;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-sc-hud{display:flex;gap:8px;flex-wrap:wrap}
.cv-sc-hud:empty{display:none}
.cv-hud-item{display:grid;justify-items:center;min-width:70px;padding:4px 10px;border:1px solid var(--ligne-douce);border-radius:12px;background:rgba(24,32,63,.6)}
.cv-hud-l{font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--pale)}
.cv-hud-item b{font-size:1.05rem;color:var(--texte)}
.cv-pop{animation:cv-pop .35s ease-out}
@keyframes cv-pop{40%{transform:scale(1.3);color:var(--or-clair)}}
.cv-sc-outils{display:flex;gap:8px}
.cv-rond{width:44px;height:44px;border-radius:50%;border:1px solid var(--ligne);background:rgba(255,255,255,.04);display:grid;place-items:center;color:var(--doux);transition:border-color .2s,color .2s}
.cv-rond:hover{border-color:var(--or);color:var(--texte)}
.cv-rond svg{width:20px;height:20px}
.cv-rond-texte{font-weight:800;font-size:.8rem;letter-spacing:.06em}
#cv-sc-son .cv-onde{display:none}
#cv-sc-son.cv-actif{color:var(--or-clair);border-color:var(--or-sombre)}
#cv-sc-son.cv-actif .cv-onde{display:inline}
#cv-sc-son.cv-actif .cv-muet{display:none}
@media (max-width:640px){
  .cv-sc-barre{gap:8px 10px;padding:8px 12px}
  .cv-sc-id{flex:1 1 0}
  .cv-sc-hud{order:3;flex:1 1 100%;justify-content:center}
  .cv-hud-item{min-width:0;flex:1;padding:3px 6px}
}
.cv-sc-corps{flex:1;overflow:auto;overscroll-behavior:contain;display:flex}
.cv-ecran{margin:auto;width:100%;max-width:1100px;padding:24px max(16px,3vw) 40px;animation:cv-entre .45s cubic-bezier(.2,.8,.2,1) both}
@keyframes cv-entre{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.cv-particules{position:fixed;inset:0;width:100vw;height:100vh;max-width:none;pointer-events:none;z-index:90}
.cv-flotte{position:fixed;z-index:91;transform:translate(-50%,-50%);pointer-events:none;font-family:var(--f-titre);font-weight:700;font-size:1.3rem;color:var(--or-clair);text-shadow:0 2px 12px rgba(242,184,75,.6);animation:cv-flotte 1.1s ease-out forwards}
@keyframes cv-flotte{from{opacity:0;transform:translate(-50%,-30%)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-180%)}}

/* intro */
.cv-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:center}
.cv-intro-art{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--ligne);background:#0b1024;box-shadow:0 30px 80px -30px color-mix(in srgb,var(--teinte) 60%,transparent)}
.cv-intro-art svg{display:block;width:100%;height:auto}
.cv-intro-texte{display:grid;gap:16px}
.cv-intro-titre{font-family:var(--f-titre);font-weight:700;font-size:clamp(1.9rem,4vw,3rem)}
.cv-verset{font-size:1.08rem;color:var(--texte);max-width:58ch}
.cv-citation{font-family:var(--f-titre);color:var(--or-clair);font-size:.98rem;padding-left:14px;border-left:2px solid var(--or-sombre)}
.cv-regles{color:var(--doux);max-width:60ch}
.cv-intro-puces{gap:8px}
.cv-puce-niv{background:color-mix(in srgb,var(--teinte) 18%,transparent);color:#e3d4ff}
.cv-intro-actions{margin-top:6px}
.cv-go{min-width:200px;font-size:1.08rem}
@media (max-width:820px){.cv-intro{grid-template-columns:minmax(0,1fr);gap:22px}.cv-intro-art{max-width:460px}.cv-go{width:100%}}
@media (hover:none){.cv-clavier{display:none}}
.cv-segment{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cv-segment-l{font-weight:700;font-size:.9rem;margin-right:6px}
.cv-segment-note{font-size:.78rem;color:var(--pale);flex-basis:100%}
.cv-seg{min-height:44px;min-width:44px;padding:8px 14px;border-radius:12px;border:1px solid var(--ligne);background:var(--nuit-2);font-weight:700;position:relative}
.cv-seg[aria-pressed="true"]{border-color:var(--or);background:rgba(242,184,75,.12);color:var(--or-clair);box-shadow:inset 0 0 0 1px var(--or)}
.cv-seg .cv-astuce{position:absolute;top:-6px;right:-4px;font-size:.7rem;color:var(--or)}

/* fin */
.cv-ecran-fin{max-width:680px;text-align:center}
.cv-fin{display:grid;gap:14px;justify-items:center}
.cv-fin-titre{font-family:var(--f-titre);font-weight:700;font-size:clamp(2rem,6vw,3.2rem)}
.cv-etoiles-fin{display:flex;gap:10px;margin:6px 0}
.cv-etoile{width:68px;height:68px;fill:var(--nuit-3);stroke:var(--ligne);stroke-width:2;transition:fill .3s,stroke .3s}
.cv-etoile:nth-child(2){width:84px;height:84px;margin-top:-10px}
.cv-etoile.cv-allumee{fill:var(--or);stroke:var(--or-clair);filter:drop-shadow(0 0 14px rgba(242,184,75,.7));animation:cv-etoile .55s cubic-bezier(.3,1.6,.5,1)}
@keyframes cv-etoile{from{transform:scale(.2) rotate(-40deg)}to{transform:none}}
.cv-fin-score{display:grid;gap:2px}
.cv-fin-l{font-size:.72rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--pale)}
.cv-fin-score b{font-family:var(--f-titre);font-size:clamp(3rem,10vw,4.6rem);line-height:1;color:var(--or-clair);text-shadow:0 0 30px rgba(242,184,75,.35)}
.cv-record{font-weight:800;color:var(--encre-or);background:linear-gradient(180deg,var(--or-clair),var(--or));padding:6px 14px;border-radius:999px;animation:cv-pop .6s ease-out}
.cv-fin-meilleur{color:var(--doux)}
.cv-fin-meilleur b{color:var(--texte)}
.cv-fin-details{list-style:none;margin:0;padding:0;display:grid;gap:4px;color:var(--doux);font-size:.95rem}
.cv-fin-verset{max-width:52ch;color:var(--doux);font-size:.92rem;padding:14px 18px;border-radius:16px;background:rgba(24,32,63,.5);border:1px solid var(--ligne-douce)}
.cv-fin-actions{justify-content:center;margin-top:8px}

/* ---------- Composants de jeu ---------- */
.cv-jeu{display:grid;gap:22px;justify-items:center}
.cv-consigne{font-family:var(--f-titre);font-weight:600;font-size:clamp(1.1rem,2.6vw,1.45rem);text-align:center}
.cv-choix{display:grid;gap:12px;width:100%}
.cv-choix-4{grid-template-columns:repeat(4,minmax(0,1fr));max-width:620px}
.cv-choix-6{grid-template-columns:repeat(3,minmax(0,1fr))}
.cv-option{position:relative;display:grid;place-items:center;aspect-ratio:1;min-height:64px;padding:10px;border-radius:18px;border:1px solid var(--ligne);background:linear-gradient(180deg,var(--nuit-3),var(--nuit-2));transition:transform .15s,border-color .2s,box-shadow .2s,opacity .3s}
.cv-option svg{width:100%;height:100%}
.cv-option kbd{position:absolute;top:6px;left:6px}
.cv-option:hover:not(:disabled){transform:translateY(-3px);border-color:var(--amethyste);box-shadow:0 12px 30px -14px rgba(167,123,255,.7)}
.cv-option:disabled{cursor:default}
.cv-option.cv-juste{border-color:var(--ok);box-shadow:0 0 0 2px var(--ok),0 0 30px -4px rgba(71,209,140,.6);animation:cv-juste .5s}
.cv-option.cv-faux{border-color:var(--erreur);box-shadow:0 0 0 2px var(--erreur);animation:cv-secoue .4s}
.cv-option:disabled:not(.cv-juste):not(.cv-faux){opacity:.45}
@keyframes cv-juste{40%{transform:scale(1.07)}}
@keyframes cv-secoue{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@media (hover:none){.cv-option kbd{display:none}}
.cv-retour{width:100%;max-width:720px;min-height:10px}
.cv-retour-in{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 18px;border-radius:16px;animation:cv-entre .35s both}
.cv-retour-in p{flex:1 1 260px}
.cv-ok{background:rgba(71,209,140,.1);border:1px solid rgba(71,209,140,.4)}
.cv-ok b{color:var(--ok)}
.cv-ko{background:rgba(255,107,107,.08);border:1px solid rgba(255,107,107,.35)}
.cv-ko b{color:#ff9a9a}
.cv-q{font-family:var(--f-titre);font-weight:700;font-size:2.2rem;color:var(--or-clair);animation:cv-lueur 1.6s ease-in-out infinite}
.cv-manque{border:2px dashed var(--or)!important;background:rgba(242,184,75,.07)!important;display:grid;place-items:center}
.cv-manque.cv-revele{border-style:solid!important;animation:cv-juste .5s}

/* suites */
.cv-suite{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%}
.cv-terme{width:clamp(56px,10vw,92px);aspect-ratio:1;display:grid;place-items:center;border-radius:16px;background:rgba(24,32,63,.65);border:1px solid var(--ligne-douce);padding:6px;animation:cv-entre .4s both}
.cv-terme:nth-child(2){animation-delay:.05s}.cv-terme:nth-child(3){animation-delay:.1s}.cv-terme:nth-child(4){animation-delay:.15s}.cv-terme:nth-child(5){animation-delay:.2s}.cv-terme:nth-child(6){animation-delay:.25s}.cv-terme:nth-child(7){animation-delay:.3s}.cv-terme:nth-child(8){animation-delay:.35s}.cv-terme:nth-child(9){animation-delay:.4s}
.cv-terme svg{width:100%;height:100%}
.cv-nombre{font-family:var(--f-titre);font-weight:700;font-size:clamp(1.15rem,3vw,1.9rem);color:var(--texte)}
.cv-option .cv-nombre{font-size:clamp(1.3rem,4vw,2.1rem)}
@media (max-width:520px){.cv-suite{gap:6px}.cv-terme{width:calc((100% - 24px)/5);border-radius:12px}.cv-suite-longue .cv-terme{width:calc((100% - 30px)/5)}.cv-choix-4{gap:8px}.cv-option{border-radius:14px}}

/* matrices */
.cv-mx-zone{display:grid;grid-template-columns:minmax(0,420px) minmax(0,400px);justify-content:center;gap:40px;align-items:center;width:100%;max-width:980px}
.cv-grille3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;border-radius:20px;background:rgba(24,32,63,.6);border:1px solid var(--ligne);width:min(420px,100%)}
.cv-cellule{aspect-ratio:1;border-radius:12px;background:#0d1328;border:1px solid var(--ligne-douce);display:grid;place-items:center;padding:4px}
.cv-cellule svg{width:100%;height:100%}
.cv-choix-6{width:100%;max-width:400px}
.cv-option-mx{background:#0d1328}
@media (max-width:820px){.cv-mx-zone{grid-template-columns:minmax(0,1fr);justify-items:center;gap:18px}.cv-grille3{width:min(340px,100%)}.cv-choix-6{grid-template-columns:repeat(6,minmax(0,1fr));max-width:100%;gap:6px}.cv-option-mx{padding:4px;border-radius:10px;min-height:48px}}
@media (max-width:520px){.cv-choix-6{grid-template-columns:repeat(3,minmax(0,1fr));max-width:320px;gap:8px}}

/* tribus */
.cv-cercle{--d:min(560px,calc(100vw - 32px),calc(100vh - 220px));position:relative;width:var(--d);height:var(--d);min-width:300px;min-height:300px;margin-inline:auto}
@media (max-width:360px){.cv-cercle{min-width:0;min-height:0}}
.cv-cercle::before{content:"";position:absolute;inset:10%;border-radius:50%;border:1px solid var(--ligne-douce);background:radial-gradient(circle,rgba(167,123,255,.10),transparent 70%)}
.cv-tribu{--c:var(--or);position:absolute;width:19%;aspect-ratio:1;min-width:48px;transform:translate(-50%,-50%);border:0;padding:0;background:none;border-radius:50%;display:grid;place-items:center;transition:transform .15s,filter .2s}
.cv-tribu svg{width:100%;height:100%;overflow:visible}
.cv-med-fond{fill:#10162d;transition:fill .15s}
.cv-med-icone{opacity:.72;transition:opacity .15s}
.cv-tribu-nom{position:absolute;bottom:-1.25em;left:50%;transform:translateX(-50%);font-size:clamp(.6rem,1.6vw,.76rem);font-weight:700;color:var(--pale);white-space:nowrap}
.cv-tribu:hover{transform:translate(-50%,-50%) scale(1.06)}
.cv-tribu:focus-visible{outline:3px solid var(--or);outline-offset:3px;border-radius:50%}
.cv-tribu.cv-allume{transform:translate(-50%,-50%) scale(1.16);filter:drop-shadow(0 0 18px var(--c)) brightness(1.25)}
.cv-tribu.cv-allume .cv-med-fond{fill:color-mix(in srgb,var(--c) 35%,#10162d)}
.cv-tribu.cv-allume .cv-med-icone{opacity:1}
.cv-tribu.cv-erreur{animation:cv-secoue .4s;filter:drop-shadow(0 0 14px var(--erreur))}
.cv-tribu.cv-indice{filter:drop-shadow(0 0 16px var(--ok));animation:cv-juste .6s}
.cv-attente .cv-tribu{cursor:wait}
.cv-centre{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44%;text-align:center;display:grid;gap:4px}
.cv-etat{font-family:var(--f-titre);font-weight:700;font-size:clamp(1rem,3.2vw,1.5rem)}
.cv-sous{font-size:clamp(.75rem,2vw,.9rem);color:var(--doux)}
.cv-envers .cv-etat{color:#e3d4ff}

/* jourdain */
.cv-jourdain{width:100%}
.cv-plateau{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(6px,2vw,22px);width:100%;max-width:960px;padding:0 4px 8px;touch-action:none}
.cv-fleuve{position:absolute;left:-4%;right:-4%;bottom:46px;height:30px;z-index:-1;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(76,198,232,.28),rgba(76,198,232,.18),transparent);filter:blur(6px)}
.cv-pile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:clamp(240px,46vh,400px);padding:12px 6px 10px;border-radius:20px;border:1px solid var(--ligne-douce);background:rgba(16,22,45,.55);transition:border-color .2s,background .2s,box-shadow .2s;touch-action:none;user-select:none;-webkit-user-select:none}
.cv-pile:hover{border-color:var(--ligne)}
.cv-pile-but{background:linear-gradient(180deg,rgba(242,184,75,.06),rgba(16,22,45,.55))}
.cv-pile.cv-choisie,.cv-pile.cv-survol{border-color:var(--or);box-shadow:inset 0 0 0 1px var(--or),0 0 40px -12px rgba(242,184,75,.6);background:rgba(242,184,75,.07)}
.cv-tige{position:absolute;bottom:52px;top:26px;left:50%;width:8px;transform:translateX(-50%);border-radius:6px;background:linear-gradient(180deg,#a3aed3,#5d6894)}
.cv-pierres{position:absolute;left:6px;right:6px;bottom:52px;top:26px}
.cv-pierre{--c:var(--or);position:absolute;left:50%;transform:translateX(-50%);border-radius:999px;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 70%,#fff),var(--c) 45%,color-mix(in srgb,var(--c) 60%,#000));box-shadow:inset 0 -3px 0 rgba(0,0,0,.25),0 4px 10px -4px #000;transition:bottom .25s cubic-bezier(.2,.8,.2,1),transform .25s}
.cv-pierre.cv-leve{transform:translate(-50%,-28px);box-shadow:0 0 22px -2px var(--c),0 14px 18px -8px #000}
.cv-pierre.cv-pose{animation:cv-pose .32s cubic-bezier(.3,1.5,.5,1)}
.cv-pierre.cv-refus{animation:cv-refus .42s}
.cv-pierre.cv-fantome{opacity:.25}
.cv-pierre-volante{position:fixed;z-index:95;pointer-events:none;transform:none;left:0;filter:drop-shadow(0 12px 18px rgba(0,0,0,.6));transition:none}
@keyframes cv-pose{from{transform:translate(-50%,-14px)}to{transform:translateX(-50%)}}
@keyframes cv-refus{20%,60%{transform:translate(calc(-50% - 6px),-28px)}40%,80%{transform:translate(calc(-50% + 6px),-28px)}}
.cv-pile-nom{position:relative;display:flex;align-items:center;gap:6px;font-family:var(--f-titre);font-weight:700;font-size:clamp(.72rem,2vw,.95rem);color:var(--doux)}
.cv-pile-but .cv-pile-nom{color:var(--or-clair)}
@media (hover:none){.cv-pile-nom kbd{display:none}}
.cv-j-outils{justify-content:center}

/* calcul */
.cv-calcul{width:100%;max-width:720px;margin-inline:auto}
.cv-chrono{width:100%;height:10px}
.cv-chrono i{width:100%;transition:width .1s linear}
.cv-chrono.cv-urgent i{background:linear-gradient(90deg,#a33,var(--erreur),#ffb0b0)}
.cv-question{min-height:200px;display:grid;place-items:center;align-content:center;gap:14px;width:100%;text-align:center}
.cv-expr{font-family:var(--f-titre);font-weight:700;font-size:clamp(2.2rem,9vw,4.2rem);line-height:1.1;animation:cv-entre .25s both}
.cv-expr-petite{font-size:clamp(1.3rem,4vw,1.9rem)}
.cv-egal{color:var(--or-clair)}
.cv-panier{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:520px;animation:cv-entre .3s both}
.cv-panier svg{width:clamp(54px,14vw,84px);height:auto}
.cv-decompte{font-family:var(--f-titre);font-weight:700;font-size:5rem;color:var(--or-clair)}
.cv-decompte.cv-pulse{animation:cv-decompte .6s ease-out}
@keyframes cv-decompte{from{transform:scale(1.8);opacity:0}30%{opacity:1}to{transform:scale(1)}}
.cv-choix-num{grid-template-columns:repeat(4,minmax(0,1fr))}
.cv-option-num{aspect-ratio:auto;min-height:86px}
.cv-option-num span{font-family:var(--f-titre);font-weight:700;font-size:clamp(1.4rem,5vw,2.2rem)}
@media (max-width:520px){.cv-choix-num{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-option-num{min-height:72px}}
.cv-en-feu .cv-chrono{box-shadow:0 0 20px rgba(242,184,75,.6)}
.cv-en-feu .cv-option{border-color:rgba(242,184,75,.45)}

/* carré */
.cv-carre{width:100%}
.cv-manche{font-family:var(--f-texte);font-size:.82rem;font-weight:700;color:var(--pale);margin-left:6px}
.cv-sudoku{display:grid;gap:0;width:min(440px,100%);padding:6px;border-radius:18px;background:rgba(24,32,63,.7);border:2px solid var(--amethyste);box-shadow:0 20px 60px -30px rgba(167,123,255,.8)}
.cv-sudoku.cv-n6{width:min(520px,100%)}
.cv-rangee-s{display:flex}
.cv-cs{flex:1;aspect-ratio:1;min-width:0;min-height:44px;border:1px solid var(--ligne-douce);background:#0d1328;display:grid;place-items:center;padding:6%;margin:1px;border-radius:8px;transition:background .15s,box-shadow .15s}
.cv-cs{position:relative}
.cv-cs svg{position:absolute;inset:9%;width:82%;height:82%}
.cv-cs.cv-bd{margin-right:5px}
.cv-rangee-s:has(.cv-bb){margin-bottom:4px}
.cv-cs.cv-bloc-alt{background:#141a36}
.cv-cs.cv-fixe{background:#1c2548}
.cv-cs.cv-fixe.cv-bloc-alt{background:#222b55}
.cv-cs.cv-fixe .cv-med-fond{fill:#1c2548}
.cv-cs.cv-fixe.cv-bloc-alt .cv-med-fond{fill:#222b55}
.cv-cs.cv-bloc-alt:not(.cv-fixe) .cv-med-fond{fill:#141a36}
.cv-cs .cv-med-icone{opacity:1}
.cv-cs:not(.cv-fixe) .cv-med-icone{opacity:1}
.cv-cs.cv-sel{box-shadow:inset 0 0 0 3px var(--or);background:rgba(242,184,75,.10)}
.cv-cs.cv-conflit{box-shadow:inset 0 0 0 2px var(--erreur);background:rgba(255,107,107,.10)}
.cv-cs.cv-sel.cv-conflit{box-shadow:inset 0 0 0 3px var(--or),inset 0 0 0 6px var(--erreur)}
.cv-cs.cv-erreur{animation:cv-secoue .4s;background:rgba(255,107,107,.22)}
.cv-cs.cv-indice-c{background:rgba(71,209,140,.10)}
.cv-cs.cv-pose svg{animation:cv-etoile .35s cubic-bezier(.3,1.6,.5,1)}
.cv-cs:focus-visible{outline:3px solid var(--or);outline-offset:-3px}
.cv-resolu{border-color:var(--or);box-shadow:0 0 0 2px var(--or),0 0 60px -10px rgba(242,184,75,.8)}
.cv-palette{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:560px}
.cv-pal{position:relative;width:60px;height:60px;padding:5px;border-radius:16px;border:1px solid var(--ligne);background:var(--nuit-2);transition:transform .15s,border-color .2s}
.cv-pal:hover{transform:translateY(-2px);border-color:var(--amethyste)}
.cv-pal svg{width:100%;height:100%}
.cv-pal .cv-med-icone{opacity:1}
.cv-pal kbd{position:absolute;bottom:-6px;right:-6px}
.cv-gomme{color:var(--doux);display:grid;place-items:center}
.cv-gomme svg{width:26px;height:26px}
@media (hover:none){.cv-pal kbd{display:none}}
@media (max-width:420px){.cv-pal{width:50px;height:50px}.cv-palette{gap:6px}}
.cv-carre-outils{justify-content:center}

/* mouvement réduit : pas d'animation décorative, mais les états restent lisibles */
@media (prefers-reduced-motion:reduce){
  .cv-scene{transform:none}
  .cv-tribu.cv-allume{transform:translate(-50%,-50%)}
}
