/* ===== Thème « Néon » : sombre, verre dépoli, accents cyan / violet / rose ===== */
:root{
  --cream:#07051c; --paper:rgba(255,255,255,.05); --ink:#eef0ff; --green:#22e6ff; --orange:#ff5fa2;
  --lime:#4c2fb3; --muted:#a7a4d8; --line:rgba(255,255,255,.14); --strip:rgba(255,255,255,.08); --teal:#a855f7;
  --glass:rgba(255,255,255,.055); --glass2:rgba(255,255,255,.1); --neon1:#22e6ff; --neon2:#a855f7; --neon3:#ff5fa2;
  --grad:linear-gradient(120deg,#22e6ff,#a855f7 55%,#ff5fa2);
}
html{color-scheme:dark}
body{background:#07051c;color:var(--ink);position:relative;min-height:100vh}
body::before{content:"";position:fixed;inset:0;z-index:-2;background:
  radial-gradient(60vw 50vh at 15% 8%,rgba(34,230,255,.16),transparent 70%),
  radial-gradient(55vw 55vh at 90% 18%,rgba(168,85,247,.24),transparent 70%),
  radial-gradient(50vw 50vh at 60% 100%,rgba(255,95,162,.14),transparent 70%),
  linear-gradient(180deg,#0b0833,#07051c 60%)}
#fn-stars{position:fixed;inset:0;z-index:-1;pointer-events:none;width:100%;height:100%}
::selection{background:#a855f7;color:#fff}
:focus-visible{outline:2px solid var(--neon1);outline-offset:3px}
::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:#0a0726}::-webkit-scrollbar-thumb{background:linear-gradient(#22e6ff,#a855f7);border-radius:9px;border:2px solid #0a0726}
/* texte */
.g,.display .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{color:var(--neon1);text-shadow:0 0 14px rgba(34,230,255,.6)}.eyebrow::before{background:var(--grad);height:2px}
.display{letter-spacing:-.045em}
.hero h1 span:first-child{background:linear-gradient(120deg,#fff,#cfd2ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero h1 span.g{filter:drop-shadow(0 0 22px rgba(168,85,247,.55))}
/* barre du haut + en-tête */
.topbar{background:rgba(255,255,255,.04);border-bottom:1px solid var(--line);color:#c9c7f5}
.topbar .live::before{background:#22e6ff;box-shadow:0 0 10px #22e6ff}
.header{background:rgba(9,6,38,.62);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.logo b{color:#fff}.logo b span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.logo .bars i{box-shadow:0 0 12px currentColor}
.nav a{color:#cfcdf7}.nav a:hover{color:#fff;text-shadow:0 0 12px #22e6ff}
/* boutons */
.btn,.btn-outline,.link-arrow{transition:transform .2s,box-shadow .2s,background .2s}
.btn{background:var(--grad);color:#07051c;font-weight:800;border-radius:14px;box-shadow:0 0 0 1px rgba(255,255,255,.25) inset,0 10px 30px -8px rgba(168,85,247,.7),0 0 28px -6px rgba(34,230,255,.6)}
.btn:hover{background:var(--grad);transform:translateY(-2px) scale(1.02);box-shadow:0 0 0 1px rgba(255,255,255,.4) inset,0 16px 40px -8px rgba(168,85,247,.9),0 0 40px -4px rgba(34,230,255,.8)}
.btn[disabled]{opacity:.5;filter:grayscale(.6)}
.btn.ghost,.btn-outline{background:var(--glass);border:1px solid rgba(255,255,255,.22);color:#fff;border-radius:14px;backdrop-filter:blur(10px)}
.btn.ghost:hover,.btn-outline:hover{background:var(--glass2);border-color:var(--neon1);box-shadow:0 0 22px -4px rgba(34,230,255,.6)}
.link-arrow{color:#cfcdf7}.link-arrow:hover{color:#fff}
/* accueil */
.hero{background:transparent;border-bottom:0;overflow:hidden}
.hero p.lead{color:#cfcdf7}.hero .note{color:var(--muted)}.hero .foot,.hero .vert{color:#8f8cc9}
.hero-art.has3d{position:relative;min-height:560px;overflow:visible}
.hero-art.has3d>*:not(.hero-3d):not(.hero-hint){display:none!important}
.hero-hint{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);font:600 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#bdb9ff;background:rgba(255,255,255,.07);border:1px solid var(--line);padding:6px 14px;border-radius:99px;backdrop-filter:blur(8px);pointer-events:none;white-space:nowrap}
.slab{background:rgba(255,255,255,.06);border:1px solid var(--line)}.slab .shadow{background:rgba(168,85,247,.2)}
.strip{background:rgba(255,255,255,.04);border-block:1px solid var(--line);backdrop-filter:blur(10px)}
.strip .lbl,.step{color:#cfcdf7}.step sup{color:var(--neon3)}.strip .rule{background:linear-gradient(90deg,var(--neon1),var(--neon2))}
.step .ic{border-color:rgba(255,255,255,.25);background:var(--glass);color:var(--neon1);box-shadow:0 0 18px -4px rgba(34,230,255,.5)}
.strip .pick{color:var(--neon1)}
/* catalogue */
.catalogue{background:transparent}.catalogue h2{color:#fff}.catalogue .head p{color:var(--muted)}
.filters .count{color:var(--muted)}
.tabs button,.domains button{background:var(--glass);border:1px solid var(--line);color:#cfcdf7;border-radius:99px;transition:all .2s}
.tabs button:hover,.domains button:hover{border-color:var(--neon1);color:#fff;box-shadow:0 0 18px -4px rgba(34,230,255,.6)}
.tabs button[aria-pressed="true"],.domains button[aria-pressed="true"]{background:var(--grad);border-color:transparent;color:#07051c;font-weight:800;box-shadow:0 8px 24px -8px rgba(168,85,247,.8)}
.card{background:var(--glass);border:1px solid var(--line);border-radius:22px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow:hidden;
  transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .18s,border-color .25s,box-shadow .25s;position:relative;box-shadow:0 20px 50px -30px #000}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--grad);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .3s;pointer-events:none}
.card:hover{border-color:transparent;box-shadow:0 30px 70px -25px rgba(168,85,247,.55),0 0 50px -12px rgba(34,230,255,.5)}.card:hover::after{opacity:1}
.card .art,.buybox .art{background:linear-gradient(135deg,#1b1260,#3a1a8c 55%,#16356f)!important;position:relative}
.card .art::before,.buybox .art::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(34,230,255,.35),transparent 55%),radial-gradient(circle at 20% 90%,rgba(255,95,162,.3),transparent 55%)}
.card .art svg,.buybox .art svg{filter:drop-shadow(0 0 14px rgba(34,230,255,.6));position:relative}
.card .art .num{color:#cfcdf7}.card .art .spark{color:var(--neon3)}
.card h3{color:#fff}.card p{color:var(--muted)}.card .meta .cat{color:var(--neon1)}.card .meta .cat i{color:#6f6cb0}
.tag{background:rgba(255,255,255,.07);border:1px solid var(--line);color:#cfcdf7;border-radius:99px}
.card .inc{color:#cfcdf7}.card .inc svg{color:var(--neon1)}.card .inc .more{color:var(--muted)}
.card .buy{border-top:1px solid var(--line)}.card .price{color:#fff}.card .price s,.card .price small{color:var(--muted)}
.go{background:var(--grad);color:#07051c;border-radius:12px;box-shadow:0 8px 20px -6px rgba(168,85,247,.8)}.card:hover .go{background:var(--grad);transform:translateX(4px)}
.card .owned,.accessible{color:var(--neon1)}
.badge{background:var(--grad);color:#07051c;font-weight:800;border-radius:99px;box-shadow:0 0 22px -2px rgba(255,95,162,.8);right:14px}
.card.has-badge{border-color:var(--line)}
.deal .pct,.dealbox .pct{background:var(--neon3);color:#fff;border-radius:6px}.deal s,.dealbox s{color:var(--muted)}.deal em,.dealbox em{color:var(--neon1)}.dealbox p{color:var(--muted)}
/* méthode / final / pied */
.method{background:linear-gradient(180deg,rgba(168,85,247,.12),rgba(34,230,255,.05));border-block:1px solid var(--line)}
.method h2,.final h2{color:#fff}.method .intro{color:#cfcdf7}.pillars div{background:var(--glass);border:1px solid var(--line);border-radius:18px;padding:22px;backdrop-filter:blur(10px)}.pillars p{color:var(--muted)}.pillars h4{color:#fff}.pillars small{color:var(--neon3)}
.ghostfn{color:rgba(255,255,255,.04)}.final{background:transparent}.final .idx,.final .secure{color:var(--muted)}
.footer{background:rgba(255,255,255,.03);border-top:1px solid var(--line);color:var(--muted)}.footer .legal,.footer span{color:var(--muted)}
/* fiche formation */
.crumb,.crumb a{color:var(--muted)}.crumb a:hover{color:var(--neon1)}
.detail h1{color:#fff}.detail .sub{color:#cfcdf7}.detail h2.sec{color:#fff;border-color:var(--line)}
.prog li{border-color:var(--line);color:#e7e6ff;transition:background .2s,transform .2s,padding .2s}.prog li:hover{background:var(--glass);transform:translateX(4px)}
.prog .k{color:var(--neon3)}.prog .d{color:var(--muted)}.prog .lock{color:#7b78c0}.course-h{color:#fff;border-color:var(--line)}
.buybox{background:var(--glass);border:1px solid var(--line);border-radius:24px;overflow:hidden;backdrop-filter:blur(16px);box-shadow:0 30px 70px -30px rgba(168,85,247,.5),0 0 60px -20px rgba(34,230,255,.4)}
.buybox .price{color:#fff;text-shadow:0 0 24px rgba(34,230,255,.5)}.buybox .price s,.buybox .lbl,.buybox .legal{color:var(--muted)}.buybox ul{color:#cfcdf7}.buybox li svg{color:var(--neon1)}
.upsell{background:rgba(255,255,255,.04);border-top:1px solid var(--line)}.upsell a{background:var(--glass);border:1px solid var(--line);border-radius:12px;color:#fff}.upsell a:hover{border-color:var(--neon1);box-shadow:0 0 22px -6px rgba(34,230,255,.6)}.upsell small{color:var(--muted)}.upsell em{color:var(--neon1)}
.err{background:rgba(255,95,162,.12);border:1px solid rgba(255,95,162,.5);color:#ffc0d8;border-radius:10px}.ok-msg{background:rgba(34,230,255,.1);border:1px solid rgba(34,230,255,.45);color:#b9f6ff;border-radius:10px}
.linkbox input{background:rgba(255,255,255,.07);border:1px solid var(--line);color:#fff;border-radius:10px}.linkbox label{color:var(--muted)}
.center h1{color:#fff}.center p.lead{color:#cfcdf7}
/* bibliothèque */
.mylist .card{}
/* page d'apprentissage */
.learn{background:transparent}
.side{background:rgba(10,7,42,.7);border-right:1px solid var(--line);backdrop-filter:blur(16px)}
.side h1{color:#fff}.side .pct{color:var(--muted)}.bar{background:rgba(255,255,255,.1);border-radius:99px;overflow:hidden}.bar i,.bar b,.bar span{background:var(--grad)!important;box-shadow:0 0 14px #22e6ff}
.lessons button{color:#cfcdf7;border-color:var(--line);transition:all .2s;border-radius:0}.lessons button:hover{background:var(--glass);color:#fff}
.lessons button[aria-current="true"]{background:linear-gradient(90deg,rgba(34,230,255,.16),rgba(168,85,247,.12));color:#fff;box-shadow:inset 3px 0 0 var(--neon1)}.lessons .k{color:var(--neon3)}
.lessons .is-done .done,.lessons .done{color:var(--neon1)}
.lesson h2{color:#fff}.lesson .meta{color:var(--neon1)}.prose,.prose p,.prose li{color:#e1e0ff}.prose h3{color:#fff}.prose li::before{background:var(--neon3)}
.prose pre{background:#0b0830;border:1px solid rgba(168,85,247,.4);color:#9fe9ff;border-radius:12px;box-shadow:0 0 30px -12px rgba(168,85,247,.6) inset}
.prose .tip{background:rgba(34,230,255,.08);border-left:3px solid var(--neon1);color:#d6f7ff;border-radius:0 12px 12px 0}
.prose .exo{background:rgba(255,95,162,.08);border:1px solid rgba(255,95,162,.4);color:#ffd5e6;border-radius:12px}.prose .exo b{color:var(--neon3)}
.lnav{border-top:1px solid var(--line)}
/* activités interactives */
.acts-head h3,.act-top h4{color:#fff}.acts-count{color:var(--muted)}
.act{background:var(--glass);border:1px solid var(--line);border-radius:22px;backdrop-filter:blur(14px);box-shadow:0 24px 60px -34px #000}
.act::before{height:3px;background:var(--grad);box-shadow:0 0 18px #a855f7}
.act-type{background:rgba(34,230,255,.12);color:var(--neon1);border:1px solid rgba(34,230,255,.4)}
.act-chip.ok{background:linear-gradient(90deg,#22e6ff,#a855f7);color:#07051c;font-weight:800}
.act .btn.ghost{background:var(--glass)}
.sp{background:rgba(255,255,255,.07);border-color:var(--line);color:var(--neon1)}.sp:hover{background:rgba(34,230,255,.14)}.sp.is-speaking{background:var(--grad);color:#07051c}
.dots i{background:rgba(255,255,255,.14)}.dots i.on{background:var(--neon1);box-shadow:0 0 10px var(--neon1)}.dots i.cur{background:var(--neon3);box-shadow:0 0 10px var(--neon3)}
.opt{background:rgba(255,255,255,.06);border-color:var(--line);color:#fff;border-radius:14px}.opt:hover:not(:disabled){border-color:var(--neon1);box-shadow:0 0 22px -6px rgba(34,230,255,.7)}
.opt.is-ok{background:rgba(34,230,255,.16);border-color:var(--neon1);box-shadow:0 0 26px -6px #22e6ff}.opt.is-bad{background:rgba(255,95,162,.16);border-color:var(--neon3);box-shadow:0 0 26px -6px #ff5fa2}
.explain{background:rgba(255,255,255,.07);color:#e7e6ff}.explain.ok{background:rgba(34,230,255,.12)}.explain.bad{background:rgba(255,95,162,.12)}
.blank{background:rgba(255,255,255,.08);border-bottom-color:var(--neon1);color:#fff}.blank:focus{outline-color:var(--neon3)}
.fills li.is-ok .blank{background:rgba(34,230,255,.2)}.fills li.is-bad .blank{background:rgba(255,95,162,.2)}.accents button{background:rgba(255,255,255,.07);border-color:var(--line);color:#fff}
.fc-front{background:linear-gradient(135deg,#22a8ff,#a855f7);color:#fff;box-shadow:0 0 40px -10px #a855f7}.fc-back{background:linear-gradient(135deg,#3a1a8c,#7a2bd6);color:#fff;box-shadow:0 0 40px -10px #ff5fa2}
.mbtn{background:rgba(255,255,255,.06);border-color:var(--line);color:#fff}.mbtn.sel{border-color:var(--neon3);background:rgba(255,95,162,.18);box-shadow:0 0 22px -6px #ff5fa2}.mbtn.is-ok{background:rgba(34,230,255,.18);border-color:var(--neon1)}.mbtn.is-bad{background:rgba(255,95,162,.2)}
.oline{background:rgba(255,255,255,.05);border-color:var(--line)}.oline.is-ok{background:rgba(34,230,255,.12);border-color:var(--neon1)}.oline.is-bad{background:rgba(255,95,162,.12);border-color:var(--neon3)}
.tile{background:rgba(255,255,255,.08);border-color:var(--neon2);color:#fff;box-shadow:0 3px 0 var(--neon2),0 0 18px -6px var(--neon2)}.tile.in{background:var(--neon2);color:#fff}
.cj-p{background:rgba(255,255,255,.06);border-color:var(--line);color:#fff}.cj-p.on{background:var(--grad);color:#07051c;border-color:transparent;font-weight:800}
.cj-stage{background:radial-gradient(circle at 30% 20%,rgba(168,85,247,.35),rgba(34,230,255,.06))}.cj-stem{color:#fff}.cj-end{color:var(--neon3);text-shadow:0 0 18px var(--neon3)}.cj-verb{color:#fff}.cj-tense{color:var(--neon3)}
.cj-row{border-color:var(--line)}.cj-qt{color:var(--muted)}
.sp-card{background:rgba(255,255,255,.05);border-color:var(--line)}.sp-text .w-ok{color:#22e6ff}.sp-text .w-bad{color:#ff5fa2}
.mic{background:var(--grad);color:#07051c}.mic.rec{background:#ff3b6b;color:#fff}.tip2{background:rgba(255,200,60,.1);border-left-color:#ffd166;color:#ffe9b0}
.bigplay{background:var(--grad);color:#07051c;box-shadow:0 10px 36px -8px #a855f7}
.chat{background:rgba(0,0,0,.25)}.bub.them{background:rgba(255,255,255,.09);border-color:var(--line);color:#fff}.bub.me{background:linear-gradient(135deg,#22a8ff,#a855f7);color:#fff}
.vchart{background:rgba(255,255,255,.04)}.vframe{fill:rgba(255,255,255,.04);stroke:var(--neon1)}.vlbl{fill:var(--muted)}.vnode circle{fill:#14104a;stroke:var(--neon1)}.vnode text{fill:#fff}.vnode:hover circle,.vnode:focus circle{fill:#2b1a7a}.vnode.on circle{fill:var(--neon1)}.vnode.on text{fill:#07051c}.vnode.nasal circle{stroke:var(--neon3)}
.vpanel{background:rgba(255,255,255,.05);border-color:var(--line)}.vbig{color:var(--neon1);text-shadow:0 0 24px #22e6ff}.chip{background:rgba(255,255,255,.07);border-color:var(--line);color:#fff}
.ring .bg{stroke:rgba(255,255,255,.12)}.ring .fg{stroke:url(#ringg);stroke:#22e6ff;filter:drop-shadow(0 0 8px #22e6ff)}.ring b{color:#fff}
.stage3d{border-color:rgba(34,230,255,.35);box-shadow:0 0 50px -16px rgba(34,230,255,.55);background:#0b0830}
.stage-hud{background:rgba(10,7,42,.8);border:1px solid var(--line)}.stage-tabs{background:rgba(10,7,42,.8);border:1px solid var(--line)}.stage-tabs button{color:#cfcdf7}.stage-tabs .on{background:var(--grad);color:#07051c}
.lbl3d{background:rgba(10,7,42,.88);color:#fff;border:1px solid var(--neon1);box-shadow:0 0 16px -2px rgba(34,230,255,.7)}
.it-card{background:rgba(255,255,255,.06);border-color:var(--line)}.it-word{color:var(--neon1);text-shadow:0 0 16px rgba(34,230,255,.7)}
.amb-btn{background:rgba(10,7,42,.85);color:#fff;border:1px solid var(--line)}.amb-btn.on{background:var(--grad);color:#07051c}
.ar{background:rgba(255,95,162,.1);color:#ffd2e4;border-right-color:var(--neon3)}.fc-back .ar{background:rgba(0,0,0,.25)}
.ar-toggle{background:rgba(255,255,255,.07);border-color:var(--neon3);color:#ffd2e4}.ar-toggle[aria-pressed=true]{background:var(--neon3);color:#fff}
.next-up{background:rgba(255,95,162,.08);border-color:var(--neon3)}.next-up.big{background:linear-gradient(135deg,rgba(168,85,247,.25),rgba(34,230,255,.1));box-shadow:0 0 60px -20px #a855f7}.up-k{color:var(--neon1)}.up-sub{color:var(--muted)}.up-list li{background:rgba(255,255,255,.07);border-color:var(--line);color:#fff}.up-hl em{background:rgba(34,230,255,.12);color:var(--neon1)}
.fn-free-banner{background:linear-gradient(120deg,rgba(34,230,255,.25),rgba(168,85,247,.35),rgba(255,95,162,.25));border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(14px);box-shadow:0 0 60px -20px #a855f7}.fn-free-banner a{background:var(--grad);color:#07051c;border-radius:12px}
.fnp-toast{background:rgba(10,7,42,.95);border:1px solid var(--neon1);box-shadow:0 0 30px -4px rgba(34,230,255,.6)}
.notfound,.page{color:var(--ink)}
/* ===== HUD, XP, mascotte ===== */
.xp-hud{display:flex;align-items:center;gap:10px;margin-right:6px;font:700 12px var(--mono);color:#fff}
.xp-lvl{display:flex;align-items:center;gap:8px;background:var(--glass);border:1px solid var(--line);border-radius:99px;padding:5px 12px 5px 6px;backdrop-filter:blur(10px)}
.xp-badge{width:26px;height:26px;border-radius:50%;background:var(--grad);color:#07051c;display:grid;place-items:center;font-weight:900;box-shadow:0 0 16px #a855f7}
.xp-track{width:74px;height:6px;border-radius:9px;background:rgba(255,255,255,.14);overflow:hidden}.xp-track i{display:block;height:100%;background:var(--grad);width:0;transition:width .8s cubic-bezier(.2,1.2,.3,1);box-shadow:0 0 10px #22e6ff}
.xp-streak{background:var(--glass);border:1px solid var(--line);border-radius:99px;padding:5px 11px}
.xp-pop{position:fixed;left:50%;top:84px;transform:translateX(-50%);z-index:90;font:900 26px var(--display);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 14px #a855f7);animation:xppop 1.6s ease forwards;pointer-events:none}
@keyframes xppop{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}15%{opacity:1;transform:translate(-50%,0) scale(1.15)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-40px) scale(1)}}
.lvl-up{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:rgba(7,5,28,.7);backdrop-filter:blur(8px);animation:fadein .3s}.lvl-up div{text-align:center;padding:36px 48px;border-radius:28px;background:var(--glass2);border:1px solid var(--neon1);box-shadow:0 0 80px -10px #a855f7}.lvl-up b{display:block;font:900 64px var(--display);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.lvl-up p{color:#cfcdf7;margin:6px 0 16px}
@keyframes fadein{from{opacity:0}}
#fn-confetti{position:fixed;inset:0;z-index:92;pointer-events:none}
.kai{position:fixed;left:16px;bottom:14px;z-index:60;display:flex;align-items:flex-end;gap:8px;pointer-events:none}
.kai-svg{width:92px;height:auto;cursor:pointer;pointer-events:auto;filter:drop-shadow(0 8px 18px rgba(168,85,247,.7));animation:kaifloat 3.4s ease-in-out infinite;transform-origin:50% 100%}
.kai-svg:hover{animation-duration:1.4s}.kai.hop .kai-svg{animation:kaihop .7s ease}
@keyframes kaifloat{50%{transform:translateY(-8px) rotate(2deg)}}@keyframes kaihop{40%{transform:translateY(-34px) scale(1.06)}}
.kai-say{max-width:240px;background:rgba(10,7,42,.92);border:1px solid var(--neon1);color:#fff;padding:9px 13px;border-radius:16px 16px 16px 4px;font-size:13.5px;line-height:1.35;box-shadow:0 0 26px -6px rgba(34,230,255,.7);opacity:0;transform:translateY(8px) scale(.95);transition:all .3s;pointer-events:none;margin-bottom:34px}
.kai-say.on{opacity:1;transform:none}
.kai .blink{animation:kaiblink 4s infinite;transform-origin:center}@keyframes kaiblink{0%,94%,100%{transform:scaleY(1)}97%{transform:scaleY(.1)}}
@media(max-width:700px){.kai-svg{width:64px}.kai-say{max-width:170px;font-size:12px}.xp-track{display:none}.hero-art.has3d{min-height:420px}}
@media(prefers-reduced-motion:reduce){.kai-svg,.kai .blink,.xp-pop{animation:none!important}.card{transform:none!important}}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}
body:has(.learn) .header{position:relative}
