/* =====================================================================
   POUR LES CURIEUX — en haut : mon avatar et l'assistant ; en dessous : 6 QR codes (3 par ligne).
   Tout tient dans l'écran : les tailles suivent la hauteur disponible (unités cqh du conteneur).
   Accent violet du bouton « Pour les curieux ».
   ===================================================================== */
.cu{--acc:#8a3dff;--acc-rgb:138,61,255;--card:rgba(255,255,255,.035);--line:rgba(255,255,255,.12);--field:rgba(255,255,255,.05);--bot:rgba(255,255,255,.07);
  display:flex;flex-direction:column;gap:12px;padding-top:12px;container-type:size}
:root[data-theme="light"] .cu{--acc:#6f2bdc;--acc-rgb:111,43,220;--card:#fff;--line:rgba(20,26,46,.12);--field:#f6f7fb;--bot:#f1f2f8}
.cu :focus-visible{outline:2px solid var(--acc);outline-offset:3px}
[data-assistant]{flex:1;min-height:0;display:flex}

/* ----- avatar + assistant ----- */
.ai-card{flex:1;min-height:0;display:grid;grid-template-columns:clamp(150px,24cqw,230px) minmax(0,1fr);border-radius:20px;overflow:hidden;background:var(--card);
  box-shadow:inset 0 0 0 1px var(--line),0 18px 44px rgba(0,0,0,.22)}
:root[data-theme="light"] .ai-card{box-shadow:inset 0 0 0 1px var(--line),0 12px 32px rgba(20,26,46,.07)}
.ai-me{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px;text-align:center;
  background:radial-gradient(120% 80% at 50% 0%,rgba(var(--acc-rgb),.28),transparent 70%);border-right:1px solid var(--line)}
.ai-me .avatar{position:relative;display:block;width:min(100%,38cqh);aspect-ratio:1;cursor:pointer;will-change:transform;--holo1:#3ff2ff;--holo2:#b04dff}
:root[data-theme="light"] .ai-me .avatar{--holo1:#0aa9d6;--holo2:#7b2cf0}
/* le personnage : détouré, il se fond dans la plateforme */
.avatar__in{position:absolute;inset:0 6% 9%;transform:translateZ(30px);-webkit-mask:radial-gradient(ellipse 58% 62% at 50% 42%,#000 62%,transparent 100%);mask:radial-gradient(ellipse 58% 62% at 50% 42%,#000 62%,transparent 100%)}
.avatar__in img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;
  filter:drop-shadow(0 0 1.5px var(--holo1)) drop-shadow(0 0 10px color-mix(in srgb,var(--holo2) 70%,transparent))}
.mv-beam{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;opacity:.55;mix-blend-mode:screen;
  filter:brightness(1.6) saturate(0) sepia(1) hue-rotate(140deg) saturate(4);clip-path:inset(0 0 100% 0);animation:mvBeam 3.6s ease-in-out infinite}
@keyframes mvBeam{0%{clip-path:inset(0 0 100% 0)}45%{clip-path:inset(40% 0 52% 0)}90%,100%{clip-path:inset(100% 0 0 0)}}
/* glitch numérique (réactions) */
.mv-g{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none}
.avatar.is-glitch .mv-g--1{opacity:.35;transform:translate(-3px,0);filter:brightness(1.4) sepia(1) hue-rotate(140deg);mix-blend-mode:screen;clip-path:inset(30% 0 60% 0)}
.avatar.is-glitch .mv-g--2{opacity:.35;transform:translate(3px,0);filter:brightness(1.4) sepia(1) hue-rotate(230deg);mix-blend-mode:screen;clip-path:inset(62% 0 26% 0)}
/* sol en grille néon, en perspective */
.mv-floor{position:absolute;left:-30%;right:-30%;bottom:-6%;height:46%;pointer-events:none;transform:perspective(220px) rotateX(62deg) translateX(calc(var(--mx,0) * -14px));transform-origin:50% 100%;
  background:linear-gradient(90deg,color-mix(in srgb,var(--holo2) 55%,transparent) 1px,transparent 1px) 0 0/22px 22px,linear-gradient(0deg,color-mix(in srgb,var(--holo2) 55%,transparent) 1px,transparent 1px) 0 0/22px 22px;
  -webkit-mask:radial-gradient(ellipse 50% 70% at 50% 100%,#000 30%,transparent 72%);mask:radial-gradient(ellipse 50% 70% at 50% 100%,#000 30%,transparent 72%);animation:mvFloor 3s linear infinite}
@keyframes mvFloor{to{background-position:0 22px,0 22px}}
/* plateforme lumineuse */
.mv-pad{position:absolute;left:16%;right:16%;bottom:3%;height:13%;transform:translateZ(10px)}
.mv-pad i{position:absolute;inset:0;border-radius:50%;border:2px solid var(--holo1);box-shadow:0 0 14px var(--holo1),inset 0 0 18px color-mix(in srgb,var(--holo1) 60%,transparent);
  background:radial-gradient(closest-side,color-mix(in srgb,var(--holo1) 35%,transparent),transparent)}
.mv-pad i+i{inset:-30% -14%;border-width:1px;border-color:color-mix(in srgb,var(--holo2) 70%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--holo2) 50%,transparent);background:none;animation:mvPulse 2.6s ease-in-out infinite}
@keyframes mvPulse{50%{opacity:.35;transform:scale(1.06)}}
@keyframes mvSpin{to{transform:rotate(360deg)}}
/* anneaux d'orbite (l'un derrière, l'autre devant le personnage) */
@property --mv-a{syntax:"<angle>";inherits:false;initial-value:0deg}
.mv-ring{position:absolute;left:2%;right:2%;top:70%;height:16%;border-radius:50%;pointer-events:none;
  background:conic-gradient(from var(--mv-a),transparent 0deg,var(--holo1) 60deg,transparent 140deg,color-mix(in srgb,var(--holo2) 80%,transparent) 220deg,transparent 300deg);
  -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 3px),#000 calc(100% - 2.5px),#000 calc(100% - .5px),transparent 100%);mask:radial-gradient(closest-side,transparent calc(100% - 3px),#000 calc(100% - 2.5px),#000 calc(100% - .5px),transparent 100%);
  animation:mvOrbit 4s linear infinite}
.mv-ring--a{transform:translateZ(-10px);opacity:.6}
.mv-ring--b{transform:translateZ(60px);clip-path:inset(50% 0 0 0)}
@keyframes mvOrbit{to{--mv-a:360deg}}
/* particules qui montent */
.mv-dots i{position:absolute;bottom:12%;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;background:var(--holo1);box-shadow:0 0 6px var(--holo1);opacity:0;animation:mvRise 3.2s var(--d) ease-in infinite}
@keyframes mvRise{10%{opacity:.9}100%{opacity:0;transform:translateY(-260%) translateY(-90px)}}
/* badge */
.mv-tag{position:absolute;left:50%;bottom:-4%;transform:translateX(-50%) translateZ(40px);display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;
  font:700 9.5px/1 Outfit,system-ui,sans-serif;letter-spacing:.16em;color:var(--holo1);background:color-mix(in srgb,#000 55%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--holo1) 55%,transparent),0 0 12px color-mix(in srgb,var(--holo1) 35%,transparent)}
:root[data-theme="light"] .mv-tag{background:rgba(255,255,255,.85)}
.mv-tag i{width:6px;height:6px;border-radius:50%;background:#2ee8a6;box-shadow:0 0 6px #2ee8a6;animation:mvBlink 1.6s ease-in-out infinite}
@keyframes mvBlink{50%{opacity:.3}}
.mv-scan{display:none}
@media (prefers-reduced-motion:reduce){ .mv-beam,.mv-scan,.mv-floor,.mv-pad i,.mv-ring,.mv-dots i,.mv-tag i{animation:none} }
.avatar__emo{position:absolute;right:-4%;top:-2%;display:grid;place-items:center;width:30%;aspect-ratio:1;border-radius:50%;font-size:min(26px,7cqh);background:var(--card,#fff);
  box-shadow:0 6px 16px rgba(0,0,0,.3),inset 0 0 0 1px var(--line);opacity:0;transform:scale(.4) translateY(8px);pointer-events:none}
:root:not([data-theme="light"]) .avatar__emo{background:#1b1730}
.avatar__emo.is-on{animation:avEmo 1.6s cubic-bezier(.2,1.3,.4,1) both}
@keyframes avEmo{15%{opacity:1;transform:none}80%{opacity:1;transform:none}100%{opacity:0;transform:scale(.6) translateY(-6px)}}
.avatar[data-move="nod"] .avatar__in{animation:avNod .9s ease}
.avatar[data-move="tilt"] .avatar__in{animation:avTilt 1.1s ease}
.avatar[data-move="tiltr"] .avatar__in{animation:avTiltR 1.1s ease}
.avatar[data-move="bounce"] .avatar__in{animation:avBounce .8s cubic-bezier(.3,1.6,.5,1)}
.avatar[data-move="wiggle"] .avatar__in{animation:avWiggle .9s ease}
@keyframes avNod{25%,75%{transform:translateY(6px) rotateX(10deg)}50%{transform:translateY(-2px)}}
@keyframes avTilt{30%,70%{transform:rotate(-10deg)}}
@keyframes avTiltR{30%,70%{transform:rotate(10deg)}}
@keyframes avBounce{30%{transform:scale(1.1,.9) translateY(4px)}60%{transform:scale(.95,1.06) translateY(-8px)}}
@keyframes avWiggle{20%{transform:rotate(-7deg)}40%{transform:rotate(6deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(3deg)}}
@media (prefers-reduced-motion:reduce){ .avatar[data-move] .avatar__in{animation:none} }
.ai-me h2{margin:4px 0 0;font-size:18px;font-weight:600}
.ai-me p{margin:0;font-size:12px;line-height:1.45;color:var(--dim)}
.ai-chat{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column}
.ai-clear{position:absolute;right:10px;top:10px;z-index:2;display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:50%;cursor:pointer;color:var(--dim);background:var(--field);box-shadow:inset 0 0 0 1px var(--line)}
.ai-clear svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ai-clear:hover{color:var(--ink)}
.ai-log{flex:1;min-height:0;overflow-y:auto;padding:14px 50px 10px 16px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth;scrollbar-width:thin}
.ai-msg{display:flex;align-items:flex-end;gap:8px;max-width:90%}
.ai-msg p{margin:0;padding:9px 13px;border-radius:15px;font-size:14px;line-height:1.5}
.ai-msg a{color:var(--acc);font-weight:600}
.ai-msg--bot p{background:var(--bot);color:var(--ink);border-bottom-left-radius:5px}
.ai-msg--me{align-self:flex-end}
.ai-msg--me p{color:#fff;background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 82%,#fff),var(--acc));border-bottom-right-radius:5px}
.ai-av{flex:none;width:28px;height:28px;border-radius:50%;background:#000}
:root[data-theme="light"] .ai-av{background:#fff}
.ai-me{background:#000!important}
:root[data-theme="light"] .ai-me{background:#fff!important}
.ai-me{overflow:hidden}
@media (prefers-reduced-motion:no-preference){ .ai-msg{animation:aiIn .35s cubic-bezier(.2,.8,.2,1) both} }
@keyframes aiIn{from{opacity:0;transform:translateY(8px)}}
.ai-typing p{display:flex;gap:4px;padding:13px}
.ai-typing span{width:7px;height:7px;border-radius:50%;background:var(--dim);animation:aiDot 1s ease-in-out infinite}
.ai-typing span:nth-child(2){animation-delay:.15s}.ai-typing span:nth-child(3){animation-delay:.3s}
@keyframes aiDot{50%{opacity:.25;transform:translateY(-3px)}}
.ai-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.ai-sugg{flex:none;display:flex;gap:6px;overflow-x:auto;padding:0 14px 8px;scrollbar-width:none}
.ai-sugg::-webkit-scrollbar{display:none}
.ai-sugg button{flex:none;padding:6px 12px;border:0;border-radius:999px;cursor:pointer;font:inherit;font-size:12.5px;color:var(--ink);background:rgba(var(--acc-rgb),.1);box-shadow:inset 0 0 0 1px rgba(var(--acc-rgb),.35);transition:background-color .2s ease}
.ai-sugg button:hover{background:rgba(var(--acc-rgb),.2)}
.ai-form{flex:none;display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line)}
.ai-form input{flex:1;min-width:0;padding:10px 13px;border:0;border-radius:12px;font:inherit;font-size:15px;color:var(--ink);background:var(--field);box-shadow:inset 0 0 0 1px var(--line)}
.ai-form input:focus{outline:none;box-shadow:inset 0 0 0 1.5px var(--acc),0 0 0 4px rgba(var(--acc-rgb),.14)}
.ai-form button{flex:none;display:grid;place-items:center;width:44px;border:0;border-radius:12px;cursor:pointer;color:#fff;background:var(--acc);transition:transform .12s ease-out,filter .2s ease}
.ai-form button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ai-form button:hover{filter:brightness(1.1)}
.ai-form button:active{transform:scale(.95)}

/* ----- 6 QR codes, 3 par ligne ----- */
[data-qr]{flex:none;--q:clamp(52px,13cqh,112px)}
.qr-head{margin:0 0 8px;font-size:12.5px;color:var(--dim)}
.qr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.qr-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:16px;text-decoration:none;color:var(--ink);background:var(--card);
  box-shadow:inset 0 0 0 1px var(--line);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease}
.qr-item:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1.5px rgba(var(--acc-rgb),.6),0 10px 26px rgba(var(--acc-rgb),.2)}
.qr-item__code{flex:none;width:var(--q);height:var(--q);padding:5px;border-radius:10px;background:#fff;box-shadow:0 0 0 2px rgba(var(--acc-rgb),.45)}
.qr-item__code svg{display:block;width:100%;height:100%}
.qr-item__txt{min-width:0;display:flex;flex-direction:column;gap:3px}
.qr-item__type{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--acc)}
.qr-item__type img{width:20px;height:20px}
.qr-item[data-type="riddle"] .qr-item__type{color:#e0a800}
.qr-item[data-type="quiz"] .qr-item__type{color:#ff5a7a}
.qr-item[data-type="dash"] .qr-item__type{color:#14b8a6}
.qr-item b{font-size:15px;font-weight:600;line-height:1.2}
.qr-item small{font-size:12.5px;line-height:1.35;color:var(--dim)}
@media (prefers-reduced-motion:no-preference){ .qr-item{animation:aiIn .45s calc(var(--i) * 60ms) cubic-bezier(.2,.8,.2,1) both} }
@container (max-height:420px){ .qr-item small{display:none} .ai-me p{display:none} }

/* téléphone : avatar en bandeau, cartes compactes (QR + titre) */
@media (max-width:640px){
  .cu{gap:8px;padding-top:6px}
  .ai-card{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);border-radius:16px}
  .ai-me{flex-direction:row;justify-content:flex-start;gap:10px;padding:8px 12px;border-right:0;border-bottom:1px solid var(--line);text-align:left}
  .ai-me .avatar{width:52px;flex:none}
  .ai-me .mv-floor,.ai-me .mv-ring,.ai-me .mv-dots,.ai-me .mv-tag,.ai-me .mv-pad i+i,.ai-me .mv-pad::after{display:none}
  .avatar__emo{width:24px;font-size:13px;right:-10px;top:-8px}
  .ai-me h2{margin:0;font-size:16px}
  .ai-me p{display:none}
  .ai-clear{top:8px;right:8px;width:30px;height:30px}
  .ai-log{padding:10px 46px 8px 12px}
  .ai-msg p{font-size:13.5px;padding:8px 11px}
  [data-qr]{--q:clamp(44px,9cqh,70px)}
  .qr-head{display:none}
  .qr-grid{gap:6px}
  .qr-item{flex-direction:column;gap:5px;padding:7px 4px;text-align:center}
  .qr-item__type{justify-content:center;font-size:0;gap:0}
  .qr-item__type img{display:none}
  .qr-item b{font-size:11.5px}
  .qr-item small{display:none}
}
