/* ============================================================
   Digixis — feuille de style (mobile-first dans l'esprit, 320px → 4K)
   Palette : fond nuit, accent bleu électrique (dérivé du logo)
   ============================================================ */
:root{
  --bg:#050b1a;
  --bg-alt:#07112a;
  --line:rgba(148,176,255,.14);
  --line-strong:rgba(148,176,255,.28);
  --text:#e8eefc;
  --muted:#93a4c8;
  --accent:#4c8dff;
  --accent-2:#22d3ee;
  --radius:14px;
  --maxw:1180px;
  --nav-h:72px;
  --gutter:clamp(18px,5vw,32px);
  --section-y:clamp(72px,10vw,120px);
  --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{
  scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px);
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
  background:var(--bg);
}
html.menu-open{overflow:hidden}
body{
  background:var(--bg);color:var(--text);font-family:var(--font);
  font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;min-width:320px;
  overflow-wrap:break-word;
}
img,svg,canvas{max-width:100%;display:block}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
ul,ol{list-style:none}
button,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:4px}

.container{
  width:100%;max-width:var(--maxw);margin-inline:auto;
  padding-left:max(var(--gutter),env(safe-area-inset-left));
  padding-right:max(var(--gutter),env(safe-area-inset-right));
}
.skip{
  position:fixed;left:16px;top:-60px;z-index:100;background:var(--accent);color:#fff;
  padding:10px 16px;border-radius:8px;font-weight:600;transition:top .2s;
}
.skip:focus{top:12px}

/* ---------- Header ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:50;
  background:var(--bg);border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;height:var(--nav-h);gap:18px}
.brand{display:flex;align-items:center;flex-shrink:0;min-height:44px}
.logo{height:30px;width:auto}
.menu{display:flex;align-items:center;gap:clamp(20px,2.4vw,34px)}
.menu a{position:relative;font-size:14.5px;font-weight:500;color:var(--muted);transition:color .2s;white-space:nowrap}
.menu a:not(.btn):after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--accent-2);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.menu a:not(.btn):hover:after{transform:scaleX(1)}
.menu a:hover{color:var(--text)}
.menu a.btn{color:#fff;border-radius:8px}

/* lang : simple texte "FR / EN" */
.lang-switch{display:flex;align-items:center;flex-shrink:0;gap:2px}
.lang-switch a{
  min-width:34px;min-height:34px;display:grid;place-items:center;
  font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--muted);
  border-radius:6px;transition:color .2s;
}
.lang-switch a + a{position:relative}
.lang-switch a + a:before{content:"";position:absolute;left:-2px;top:9px;bottom:9px;width:1px;background:var(--line-strong)}
.lang-switch a:hover{color:var(--text)}
.lang-switch a.active{color:var(--text);font-weight:700}

/* desktop : logo | liens ........ langue | CTA */
@media (min-width:1001px){
  .menu{display:contents}
  .brand{order:0;margin-right:clamp(16px,3vw,48px)}
  .menu a:not(.btn){order:1}
  .lang-switch{order:2;margin-left:auto}
  .menu a.btn{order:3;margin-left:6px}
}

.burger{display:none;background:none;border:0;width:44px;height:44px;position:relative;cursor:pointer;flex-shrink:0;margin-right:-8px}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:var(--text);border-radius:2px;transition:transform .25s,top .25s}
.burger span:first-child{top:16px}
.burger span:last-child{top:26px}
.burger[aria-expanded="true"] span:first-child{top:21px;transform:rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{top:21px;transform:rotate(-45deg)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:13px 26px;border-radius:999px;border:1px solid transparent;
  background:linear-gradient(135deg,var(--accent),#2f6bff);color:#fff;
  font-weight:600;font-size:15px;line-height:1.2;text-align:center;cursor:pointer;
  transition:transform .2s,box-shadow .2s,background .2s;
  box-shadow:0 8px 28px -10px rgba(76,141,255,.8);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px -10px rgba(76,141,255,.95)}
.btn-small{min-height:42px;padding:9px 20px;font-size:14px}
.btn-ghost{background:transparent;border-color:var(--line-strong);box-shadow:none;color:var(--text)}
.btn-ghost:hover{background:rgba(255,255,255,.05);box-shadow:none}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:calc(var(--nav-h) + clamp(40px,7vw,88px)) 0 clamp(56px,8vw,96px);overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-glow{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(700px 460px at 82% 30%,rgba(76,141,255,.18),transparent 62%),
    linear-gradient(var(--line) 1px,transparent 1px) 0 0/64px 64px,
    linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/64px 64px;
  -webkit-mask-image:linear-gradient(180deg,#000 40%,transparent 96%);
          mask-image:linear-gradient(180deg,#000 40%,transparent 96%);
  opacity:.9;
}
.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(36px,5vw,72px);align-items:center}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2);
  font-weight:600;margin-bottom:22px;line-height:1.5;
}
.hero-copy .eyebrow{padding:7px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--bg);font-size:12px;letter-spacing:.1em}
.eyebrow .dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 4px rgba(34,211,238,.18)}
h1{
  font-size:clamp(32px,4.3vw,58px);line-height:1.07;letter-spacing:-.04em;
  font-weight:700;max-width:960px;
}
h1 em{font-style:normal;color:var(--accent-2)}
.lead{margin-top:26px;max-width:560px;font-size:clamp(16px,1.5vw,19px);color:var(--muted)}
.hero-cta{margin-top:36px;display:flex;flex-wrap:wrap;gap:14px}
.hero-foot{
  position:relative;z-index:2;margin-top:clamp(44px,6vw,80px);
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  padding-top:22px;border-top:1px solid var(--line);
  font-size:14px;color:var(--muted);
}
.hero-foot .k{color:var(--accent);font-weight:600;margin-right:10px;font-variant-numeric:tabular-nums}

/* visuel produit (décoratif) */
.hero-visual{position:relative;container-type:inline-size;width:100%;aspect-ratio:1/.92;font-size:3.2cqw}
.hv-win,.hv-phone,.hv-ai{
  position:absolute;background:var(--bg-alt);border:1px solid var(--line-strong);
  box-shadow:0 30px 60px -30px rgba(2,10,30,.55);
}
.hv-win{left:0;top:13%;width:86%;border-radius:2.2cqw;overflow:hidden;background:#0a1226;border-color:rgba(120,150,220,.28);animation:hvfloat 9s ease-in-out infinite}
.hv-bar{display:flex;align-items:center;gap:1.1cqw;padding:2cqw 2.8cqw;border-bottom:1px solid rgba(255,255,255,.08)}
.hv-bar i{width:1.7cqw;height:1.7cqw;border-radius:50%;background:rgba(255,255,255,.18)}
.hv-bar i:first-child{background:#ff6b6b}.hv-bar i:nth-child(2){background:#ffc857}.hv-bar i:nth-child(3){background:#3ddc97}
.hv-tab{margin-left:2.4cqw;padding:.8cqw 2cqw;border-radius:1cqw;background:rgba(255,255,255,.07);font:600 2.3cqw/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#c9d6f5}
.hv-code{margin:0;padding:3cqw 3cqw 4.4cqw;font:500 2.55cqw/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#d6e0fb;white-space:pre;overflow:hidden}
.hv-code .ln{display:inline-block;width:3.4cqw;margin-right:2.2cqw;text-align:right;color:rgba(214,224,251,.28)}
.hv-code .c{color:#6f7fa6;font-style:italic}.hv-code .k{color:#8fb0ff}.hv-code .s{color:#7ee0b0}.hv-code .f{color:#ffd479}.hv-code .n{color:#ff9d7a}
.caret{display:inline-block;width:1.2cqw;height:2.6cqw;margin-left:.8cqw;vertical-align:-.5cqw;background:#8fb0ff;animation:hvblink 1.1s steps(1) infinite}
.hv-status{position:absolute;left:3%;bottom:3%;display:flex;align-items:center;gap:1.6cqw;padding:1.8cqw 3cqw;border-radius:999px;background:var(--bg);border:1px solid var(--line-strong);font-size:2.6cqw;font-weight:600;box-shadow:0 20px 40px -24px rgba(2,10,30,.5)}
.hv-status .live{width:2cqw;height:2cqw;border-radius:50%;background:#2fd47d;box-shadow:0 0 0 .8cqw rgba(47,212,125,.22)}
@keyframes hvblink{50%{opacity:0}}
.hv-phone{right:0;bottom:0;width:25%;aspect-ratio:9/18.5;border-radius:3.6cqw;padding:2.2cqw;display:flex;flex-direction:column;gap:1.8cqw;background:var(--bg);border-width:2px;animation:hvfloat 8s ease-in-out -3s infinite}
.hv-notch{align-self:center;width:34%;height:1.5cqw;border-radius:1cqw;background:var(--line-strong)}
.hv-ph-h{height:3cqw;width:55%;border-radius:1cqw;background:var(--line-strong)}
.hv-ph-card{flex:0 0 22%;border-radius:2cqw;background:linear-gradient(135deg,var(--accent),var(--accent-2))}
.hv-ph-row{height:3.4cqw;border-radius:1.2cqw;background:var(--bg-alt);border:1px solid var(--line)}
.hv-ph-row.short{width:70%}
.hv-ph-tabs{margin-top:auto;display:flex;justify-content:space-around;padding-top:1.6cqw;border-top:1px solid var(--line)}
.hv-ph-tabs i{width:2.6cqw;height:2.6cqw;border-radius:50%;background:var(--line-strong)}
.hv-ph-tabs i.on{background:var(--accent-2)}

.hv-ai{right:3%;top:0;width:46%;padding:2.4cqw 2.8cqw;border-radius:2.2cqw;animation:hvfloat 10s ease-in-out -6s infinite}
.hv-ai-h{display:flex;align-items:center;gap:1.4cqw;font-size:2.5cqw;font-weight:700;margin-bottom:1.2cqw}
.hv-ai .spark{width:2.6cqw;height:2.6cqw;border-radius:50%;background:conic-gradient(var(--accent-2),var(--accent),var(--accent-2));box-shadow:0 0 0 .7cqw rgba(76,141,255,.2)}
.hv-ai p{font-size:2.3cqw;line-height:1.45;color:var(--muted)}
.typing{display:flex;gap:.9cqw;margin-top:1.6cqw}
.typing i{width:1.3cqw;height:1.3cqw;border-radius:50%;background:var(--accent-2);animation:hvdot 1.2s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes hvfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.6cqw)}}
@keyframes hvgrow{from{transform:scaleY(0)}}
@keyframes hvdot{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media (prefers-reduced-motion:reduce){.hv-win,.hv-phone,.hv-ai,.typing i,.caret{animation:none}}

/* ---------- Sections ---------- */
.section{padding:var(--section-y) 0;position:relative;overflow:hidden}
.section[data-bg]:before{
  content:attr(data-bg);position:absolute;z-index:0;pointer-events:none;user-select:none;
  top:clamp(4px,1.2vw,18px);left:50%;transform:translateX(-50%);width:100%;text-align:center;
  font-size:clamp(46px,12.5vw,200px);font-weight:800;letter-spacing:-.05em;line-height:1;white-space:nowrap;
  color:var(--accent-2);opacity:.1;
  -webkit-mask-image:linear-gradient(180deg,#000 35%,transparent 100%);mask-image:linear-gradient(180deg,#000 35%,transparent 100%);
}
.section>.container{position:relative;z-index:1}
.section-alt{background:var(--bg-alt);border-block:1px solid var(--line)}
.section-head{max-width:760px;margin-bottom:clamp(36px,5vw,60px)}
.section-head .eyebrow{margin-bottom:16px}
h2{font-size:clamp(27px,4vw,48px);line-height:1.12;letter-spacing:-.03em;font-weight:700}
.sub{margin-top:18px;color:var(--muted);font-size:clamp(16px,1.5vw,18px);max-width:640px}
h3{font-size:20px;letter-spacing:-.01em;font-weight:600;line-height:1.3}

/* ---------- Cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{
  position:relative;padding:clamp(24px,3vw,34px) clamp(22px,2.6vw,30px);border-radius:var(--radius);
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01));
  border:1px solid var(--line);
  transition:transform .3s,border-color .3s;
}
.card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;pointer-events:none;
  background:radial-gradient(420px 200px at 50% 0,rgba(76,141,255,.16),transparent 70%);
  transition:opacity .3s;
}
@media (hover:hover){
  .card:hover{transform:translateY(-6px);border-color:var(--line-strong)}
  .card:hover::before{opacity:1}
}
.card .icon{
  width:52px;height:52px;border-radius:12px;display:grid;place-items:center;
  color:var(--accent-2);background:rgba(34,211,238,.08);border:1px solid rgba(34,211,238,.22);
  margin-bottom:24px;
}
.card .icon svg{width:26px;height:26px}
.card h3{margin-bottom:12px}
.card p{color:var(--muted);font-size:15.5px}
.card ul{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:10px;font-size:14.5px;color:#c4d1ee}
.card li{position:relative;padding-left:20px}
.card li::before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1.5px;background:var(--accent)}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr)}
.steps li{padding:8px 28px 8px 0;margin-right:28px;border-right:1px solid var(--line)}
.steps li:last-child{border-right:0;margin-right:0;padding-right:0}
.steps .num{display:block;font-size:14px;color:var(--accent);font-weight:600;margin-bottom:46px;letter-spacing:.1em}
.steps h3{margin-bottom:12px}
.steps p{color:var(--muted);font-size:15.5px}

/* ---------- Why ---------- */
.why{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,70px);align-items:start}
.why .section-head{margin-bottom:0}
.why .btn{margin-top:32px}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.why-item{background:var(--bg);padding:clamp(22px,3vw,32px) clamp(20px,2.6vw,28px)}
.why-item h3{font-size:18px;margin-bottom:10px}
.why-item p{color:var(--muted);font-size:15px}

/* ---------- Tech marquee (logos) ---------- */
.tech .section-head{margin-bottom:36px}
.marquee{
  overflow:hidden;padding:14px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
}
.marquee-track{display:flex;align-items:center;gap:clamp(44px,6vw,76px);width:max-content;animation:scroll 48s linear infinite}
@media (hover:hover){.marquee:hover .marquee-track{animation-play-state:paused}}
.tech-logo{display:block;height:clamp(30px,3.4vw,38px);width:clamp(30px,3.4vw,38px);flex:none;fill:currentColor;color:var(--muted);opacity:.75;transition:opacity .2s,color .2s}
.tech-logo:hover{opacity:1;color:var(--text)}
@keyframes scroll{to{transform:translateX(calc(-50% - clamp(22px,3vw,38px)))}}

/* ---------- Contact ---------- */
.contact{background:radial-gradient(700px 400px at 90% 0,rgba(76,141,255,.14),transparent 60%),var(--bg)}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,6vw,70px);align-items:start}
.contact-mail{margin-top:32px;font-size:clamp(17px,2vw,20px);font-weight:600;word-break:break-all}
.contact-mail a{border-bottom:1px solid var(--accent);padding-bottom:2px;transition:color .2s}
.contact-mail a:hover{color:var(--accent-2)}
.form{
  padding:clamp(20px,3vw,34px);border-radius:var(--radius);
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));
  border:1px solid var(--line);display:grid;gap:18px;min-width:0;
}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{display:grid;gap:8px;font-size:13.5px;color:var(--muted);font-weight:500;min-width:0}
.form input,.form textarea{
  width:100%;min-height:48px;padding:13px 15px;border-radius:10px;
  background:rgba(5,11,26,.7);border:1px solid var(--line-strong);
  font-size:16px; /* 16px = pas de zoom automatique sur iOS */
  transition:border-color .2s,box-shadow .2s;
}
.form textarea{resize:vertical;min-height:140px}
.form input::placeholder,.form textarea::placeholder{color:#5a6c92}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px rgba(76,141,255,.22)}
.form .invalid{border-color:#ff6b7a}
.form .btn{justify-self:start}
.form .btn[disabled]{opacity:.6;cursor:wait}
.form-status{font-size:14.5px;min-height:22px}
.form-status.ok{color:#4ade80}
.form-status.err{color:#ff8b97}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:56px 0 calc(28px + env(safe-area-inset-bottom));background:var(--bg)}
.foot{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap}
.site-footer .logo{height:30px;margin-bottom:16px}
.foot p{color:var(--muted);font-size:14.5px;max-width:320px}
.foot-links{display:flex;gap:10px 28px;flex-wrap:wrap;align-items:flex-start;font-size:14.5px;color:var(--muted)}
.foot-links a{padding:6px 0}
.foot-links a:hover{color:#fff}
.copy{margin-top:44px;padding-top:24px;border-top:1px solid var(--line);color:#62739b;font-size:13.5px}

/* ---------- Apparition au scroll (uniquement si JS actif) ---------- */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- Pages légales / 404 ---------- */
.legal{padding-top:calc(var(--nav-h) + 56px);padding-bottom:90px;max-width:860px}
.legal h1{font-size:clamp(30px,5vw,50px);margin-bottom:30px}
.legal h2{font-size:clamp(19px,2.4vw,22px);margin:36px 0 12px;letter-spacing:-.01em}
.legal p{color:var(--muted);margin-bottom:10px}
.legal a{color:var(--accent-2);border-bottom:1px solid rgba(34,211,238,.4)}
.legal .note{padding:16px 18px;border:1px dashed var(--line-strong);border-radius:10px;color:#c4d1ee;font-size:14.5px;margin-bottom:28px}
.notfound{min-height:100vh;min-height:100svh;display:grid;place-items:center;text-align:center;padding:40px var(--gutter)}
.notfound .code{font-size:clamp(80px,22vw,180px);font-weight:700;letter-spacing:-.05em;line-height:1;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
.notfound p{color:var(--muted);margin:14px 0 30px}
.notfound .logo{margin:0 auto 40px}

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* Très grands écrans */
@media (min-width:1600px){
  :root{--maxw:1320px}
  body{font-size:17px}
}

/* Petits laptops / tablettes paysage */
@media (max-width:1100px){
  .steps li{padding-right:20px;margin-right:20px}
}

/* Tablettes */
@media (max-width:980px){
  .cards{grid-template-columns:1fr 1fr}
  .cards .card:last-child{grid-column:1/-1}
  .steps{grid-template-columns:1fr 1fr;gap:44px 0}
  .steps li:nth-child(2){border-right:0;margin-right:0;padding-right:0}
  .why,.contact-grid{grid-template-columns:1fr}
  .hero-inner{grid-template-columns:1fr}
  .hero-visual{max-width:620px;margin-inline:auto}
  .why .section-head,.contact-grid .reveal:first-child{max-width:680px}
}

/* Navigation mobile */
@media (max-width:1000px){
  .burger{display:block}
  .lang-switch{margin-left:auto}
  .menu a:not(.btn):after{display:none}
  .menu{
    position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;margin:0;
    overflow-y:auto;overscroll-behavior:contain;
    flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;
    background:var(--bg);
    border-top:1px solid var(--line);
    padding:6px max(var(--gutter),env(safe-area-inset-right)) 26px max(var(--gutter),env(safe-area-inset-left));
    transform:translateY(-10px);opacity:0;visibility:hidden;pointer-events:none;
    transition:transform .25s,opacity .25s,visibility .25s;
  }
  .menu.open{transform:none;opacity:1;visibility:visible;pointer-events:auto}
  .menu a{padding:17px 0;border-bottom:1px solid var(--line);font-size:17px;white-space:normal}
  .menu a.btn{margin-top:22px;border:0;border-radius:10px;padding:14px;min-height:50px;font-size:16px}
}

/* Mobile */
@media (max-width:640px){
  .cards{grid-template-columns:1fr}
  .cards .card:last-child{grid-column:auto}
  .steps{grid-template-columns:1fr;gap:0}
  .steps li{border-right:0;margin-right:0;padding:0 0 28px;margin-bottom:28px;border-bottom:1px solid var(--line)}
  .steps li:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
  .steps li:nth-child(2){padding-right:0}
  .steps .num{margin-bottom:12px}
  .hero-foot{grid-template-columns:1fr;gap:8px;margin-top:48px}
  .form .row{grid-template-columns:1fr}
  .form .btn{justify-self:stretch}
  .hero-cta .btn{flex:1 1 100%}
  .why .btn{width:100%}
  .foot{flex-direction:column;gap:28px}
}

/* Petits téléphones */
@media (max-width:520px){
  :root{--nav-h:64px}
  .logo{height:28px}
  .nav{gap:12px}
  .eyebrow{font-size:12px;letter-spacing:.1em}
  .why-grid{grid-template-columns:1fr}
  .card .icon{width:46px;height:46px;margin-bottom:20px}
  .legal{padding-bottom:60px}
}

/* Très petits écrans (320–360px) */
@media (max-width:360px){
  .lang-switch a{min-width:30px}
  .btn{padding-left:18px;padding-right:18px}
  h3{font-size:18px}
}

/* Téléphone en paysage / écrans très peu hauts */
@media (max-height:520px) and (orientation:landscape){
  .hero-foot{margin-top:36px}
  .notfound{min-height:auto;padding-block:90px 40px}
}

/* Appareils tactiles : pas d'effets de survol collants */
@media (hover:none){
  .btn:hover{transform:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .marquee-track,.refs-track{animation:none}
  .js .reveal{opacity:1;transform:none;transition:none}
  .card,.btn{transition:none}
}

/* ============================================================
   Compléments : attribut hidden, liens, note formulaire, listes légales
   ============================================================ */
[hidden]{display:none !important}
.linklike{background:none;border:0;cursor:pointer;font:inherit;color:inherit;padding:6px 0;text-align:left}
.linklike:hover{color:#fff}
.form-note{font-size:12.5px;line-height:1.55;color:var(--muted)}
.form-note a{color:var(--text);border-bottom:1px solid var(--accent)}
.legal strong{color:var(--text);font-weight:600}
.legal .plist{display:grid;gap:12px;margin:0 0 14px}
.legal .plist li{padding:14px 16px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:15px;line-height:1.6}

/* ---------- Bandeau cookies ---------- */
.cookie{
  position:fixed;z-index:70;
  left:max(16px,env(safe-area-inset-left));
  bottom:max(16px,env(safe-area-inset-bottom));
  width:min(460px,calc(100vw - 32px));
  max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;
  padding:22px;border-radius:var(--radius);
  background:rgba(8,18,42,.97);border:1px solid var(--line-strong);
  box-shadow:0 24px 70px -20px rgba(0,0,0,.75);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  display:grid;gap:14px;
  opacity:0;transform:translateY(18px);transition:opacity .3s,transform .3s;
}
.cookie.show{opacity:1;transform:none}
.cookie:focus{outline:0}
.cookie-title{font-weight:600;font-size:16px;letter-spacing:-.01em}
.cookie-text{font-size:13.5px;line-height:1.6;color:#c4d1ee}
.cookie-text a{color:#fff;border-bottom:1px solid var(--accent);white-space:nowrap}
.cookie-prefs{display:grid;gap:10px}
.ck-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03);cursor:pointer}
div.ck-row{cursor:default}
.ck-row div{display:grid;gap:2px;min-width:0}
.ck-row strong{font-size:14px;font-weight:600;color:var(--text)}
.ck-row div span{font-size:12.5px;line-height:1.5;color:var(--muted)}
.switch{position:relative;flex-shrink:0;width:44px;height:26px;display:block}
.switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.switch i{position:absolute;inset:0;border-radius:999px;background:rgba(148,176,255,.25);transition:background .2s;pointer-events:none}
.switch i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.switch input:checked + i{background:var(--accent)}
.switch input:checked + i::after{transform:translateX(18px)}
.switch input:disabled{cursor:not-allowed}
.switch input:disabled + i{opacity:.55}
.switch input:focus-visible + i{outline:2px solid var(--accent-2);outline-offset:3px}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px}
.cookie-actions .btn{flex:1 1 calc(50% - 5px);min-height:44px;padding:10px 14px;font-size:14px}
.cookie-actions .btn-ghost{flex-basis:100%}
@media (max-width:640px){
  .cookie{
    left:0;right:0;bottom:0;width:auto;max-height:88vh;max-height:88dvh;
    border-radius:var(--radius) var(--radius) 0 0;border-bottom:0;
    padding:20px max(var(--gutter),env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(var(--gutter),env(safe-area-inset-left));
  }
}
@media (prefers-reduced-motion:reduce){.cookie{transition:none}}

/* ============================================================
   THEME CLAIR (blanc / bleu / noir) — actif avec <html data-theme="light">
   ============================================================ */
html[data-theme="light"]{
  --bg:#ffffff;--bg-alt:#f3f6fc;
  --line:rgba(3,45,98,.12);--line-strong:rgba(3,45,98,.24);
  --text:#0a0f1e;--muted:#4a5878;
  --accent:#032d62;--accent-2:#1a5fd8;
}
html[data-theme="light"] .menu a:hover,
html[data-theme="light"] .lang-switch a:hover,
html[data-theme="light"] .foot-links a:hover,
html[data-theme="light"] .linklike:hover{color:var(--text)}
html[data-theme="light"] .menu a.btn,
html[data-theme="light"] .menu a.btn:hover{color:#fff}
html[data-theme="light"] .btn{background:linear-gradient(135deg,#032d62,#1a5fd8);box-shadow:0 8px 26px -10px rgba(3,45,98,.55)}
html[data-theme="light"] .btn:hover{box-shadow:0 14px 32px -10px rgba(3,45,98,.7)}
html[data-theme="light"] .btn-ghost{background:transparent;box-shadow:none;color:var(--text)}
html[data-theme="light"] .btn-ghost:hover{background:rgba(3,45,98,.05);box-shadow:none}
html[data-theme="light"] .hero-glow{background:radial-gradient(700px 460px at 82% 30%,rgba(26,95,216,.13),transparent 62%),linear-gradient(var(--line) 1px,transparent 1px) 0 0/64px 64px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/64px 64px}
html[data-theme="light"] .hv-phone,html[data-theme="light"] .hv-ai{background:#fff;box-shadow:0 30px 60px -28px rgba(3,45,98,.28)}
html[data-theme="light"] .hv-ph-row{background:#f7f9fe}
html[data-theme="light"] #network{opacity:1}
html[data-theme="light"] .eyebrow .dot{box-shadow:0 0 0 4px rgba(26,95,216,.16)}
html[data-theme="light"] .card{background:#fff;box-shadow:0 1px 2px rgba(3,45,98,.04),0 12px 32px -18px rgba(3,45,98,.18)}
html[data-theme="light"] .card::before{background:radial-gradient(420px 200px at 50% 0,rgba(26,95,216,.08),transparent 70%)}
html[data-theme="light"] .card .icon{background:rgba(26,95,216,.08);border-color:rgba(26,95,216,.22)}
html[data-theme="light"] .card ul{color:#2b3957}
html[data-theme="light"] .why-item{background:#fff}
html[data-theme="light"] .contact{background:radial-gradient(700px 400px at 90% 0,rgba(26,95,216,.08),transparent 60%),var(--bg)}
html[data-theme="light"] .form{background:#f7f9fe}
html[data-theme="light"] .form input,
html[data-theme="light"] .form textarea{background:#fff}
html[data-theme="light"] .form input::placeholder,
html[data-theme="light"] .form textarea::placeholder{color:#8a97b3}
html[data-theme="light"] .form-status.ok{color:#15803d}
html[data-theme="light"] .form-status.err{color:#c81e3a}
html[data-theme="light"] .form .invalid{border-color:#e11d48}
html[data-theme="light"] .copy{color:#6b7a99}
html[data-theme="light"] .legal .note{color:#2b3957;background:#f7f9fe}
html[data-theme="light"] .legal a{border-bottom-color:rgba(26,95,216,.4)}
html[data-theme="light"] .cookie{background:rgba(255,255,255,.98);box-shadow:0 24px 70px -24px rgba(3,45,98,.4)}
html[data-theme="light"] .cookie-text{color:#2b3957}
html[data-theme="light"] .cookie-text a{color:var(--text)}
html[data-theme="light"] .ck-row{background:#f7f9fe}
html[data-theme="light"] .switch i{background:rgba(3,45,98,.22)}

/* ---------- reCAPTCHA (chargé uniquement après consentement) ---------- */
.captcha{display:grid;gap:10px;min-width:0}
.captcha-gate{display:grid;gap:12px;padding:14px 16px;border:1px dashed var(--line-strong);border-radius:10px;background:rgba(255,255,255,.02)}
.captcha-gate p{font-size:13px;line-height:1.55;color:var(--muted)}
.captcha-gate a{color:var(--text);border-bottom:1px solid var(--accent);white-space:nowrap}
.captcha-gate .btn{justify-self:start}
.captcha-box{min-height:78px;max-width:100%;overflow:hidden}
@media (max-width:640px){.captcha-gate .btn{justify-self:stretch}}
html[data-theme="light"] .captcha-gate{background:#fff}

/* ---------- Références clients : mur de logos monochromes ---------- */
.refs{
  overflow:hidden;padding:clamp(14px,2.4vw,30px) 0 6px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.refs-track{display:flex;align-items:center;width:max-content;animation:refscroll 55s linear infinite}
.ref-item{display:flex;align-items:center;flex:none;margin-right:clamp(52px,7vw,104px)}
.ref-logo{display:block;height:auto;max-width:none;opacity:.9;transition:filter .3s}
.ref-name{font-size:26px;font-weight:700;letter-spacing:-.03em;color:var(--muted)}
@media (hover:hover){.refs:hover .refs-track{animation-play-state:paused}.ref-item:hover .ref-logo{filter:brightness(1.2)}}
@keyframes refscroll{to{transform:translateX(-50%)}}
@media (max-width:640px){.ref-logo{zoom:.74}.ref-item{margin-right:48px}}
html[data-theme="light"] .ref-logo{opacity:1}
@media (hover:hover){html[data-theme="light"] .ref-item:hover .ref-logo{filter:brightness(.62)}}

html[data-theme="light"] .section[data-bg]:before{color:var(--accent);opacity:.085}
html[data-theme="light"] .hv-win{box-shadow:0 30px 60px -26px rgba(3,45,98,.45)}

/* =====================================================================
   EXPERTISES : lignes éditoriales + visuels animés
   ===================================================================== */
.xp-list{display:grid;gap:clamp(60px,9vw,120px)}
.xp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:clamp(32px,5.5vw,84px);align-items:center}
.xp:nth-child(even) .xp-vis{order:-1}
.xp-kick{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);margin-bottom:18px}
.xp-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;border:1px solid var(--line-strong);background:var(--bg-alt);color:var(--accent-2)}
.xp-ico svg{width:22px;height:22px}
.xp h3{font-size:clamp(26px,3.2vw,40px);letter-spacing:-.03em;line-height:1.1;margin-bottom:16px}
.xp-p{color:var(--muted);font-size:clamp(16px,1.4vw,18px);max-width:560px}
.xp-sub{margin:26px 0 12px;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.xp-bul{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px}
.xp-bul li{position:relative;padding-left:26px;font-size:15px;line-height:1.5;color:var(--muted)}
.xp-bul li:before{content:"";position:absolute;left:0;top:.28em;width:16px;height:16px;border-radius:50%;background:rgba(76,141,255,.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4.5 8.2 2.3 2.3 4.7-4.9' fill='none' stroke='%234c8dff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.xp-out{margin-top:26px;padding:14px 18px;border-left:3px solid var(--accent-2);background:var(--bg-alt);border-radius:0 12px 12px 0;font-weight:600;font-size:15.5px}
.xp-out b{color:var(--accent-2);margin-right:6px}
.xp-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.xp-tags span{padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:12.5px;color:var(--muted);background:var(--bg)}

.xp-vis{position:relative;container-type:inline-size;aspect-ratio:1/.84;border-radius:24px;border:1px solid var(--line);overflow:hidden;
  background:radial-gradient(520px 320px at 70% 10%,rgba(76,141,255,.14),transparent 62%),linear-gradient(160deg,var(--bg-alt),var(--bg));
  box-shadow:0 40px 80px -50px rgba(3,45,98,.4)}
.xp-grid{position:absolute;inset:0;background:radial-gradient(var(--line-strong) 1px,transparent 1.2px) 0 0/22px 22px;opacity:.55;-webkit-mask-image:radial-gradient(circle at 50% 50%,#000 30%,transparent 80%);mask-image:radial-gradient(circle at 50% 50%,#000 30%,transparent 80%)}
.live{display:inline-block;width:2.2cqw;height:2.2cqw;min-width:8px;min-height:8px;border-radius:50%;background:#2fd47d;box-shadow:0 0 0 .8cqw rgba(47,212,125,.22);animation:livep 1.8s ease-in-out infinite}
@keyframes livep{50%{box-shadow:0 0 0 1.5cqw rgba(47,212,125,0)}}
.xp-chip{position:absolute;display:flex;align-items:center;gap:1.4cqw;padding:1.6cqw 2.8cqw;border-radius:999px;background:var(--bg);border:1px solid var(--line-strong);font:600 2.7cqw/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;box-shadow:0 14px 30px -18px rgba(2,10,30,.5);animation:hvfloat 7s ease-in-out infinite}
.xp-chip.c1{top:6%;right:5%}.xp-chip.c2{bottom:7%;right:8%;animation-delay:-3s}

/* logiciel : architecture */
.xv{position:absolute;left:4%;top:5%;width:92%;height:90%}
.xv-arch .ed{fill:none;stroke:var(--line-strong);stroke-width:2;stroke-dasharray:5 7}
.xv-arch .nd rect{fill:var(--bg);stroke:var(--line-strong);stroke-width:1.5}
.xv-arch .nd text{fill:var(--text);font:600 15px Inter,system-ui,sans-serif}
.xv-arch .nd.hot rect{fill:var(--accent);stroke:none}
.xv-arch .nd.hot text{fill:#fff}
.xv-arch .dot{fill:var(--accent-2)}
.xv-arch .ring{fill:none;stroke:var(--accent-2);stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:ringp 2.8s ease-out infinite}
@keyframes ringp{from{transform:scale(.8);opacity:.7}to{transform:scale(1.6);opacity:0}}

/* mobile : trois téléphones */
.ph{position:absolute;width:27%;aspect-ratio:9/17.5;border-radius:4cqw;border:2px solid var(--line-strong);background:var(--bg);padding:2.2cqw;display:flex;flex-direction:column;gap:1.6cqw;box-shadow:0 30px 50px -30px rgba(2,10,30,.55);overflow:hidden}
.ph-l{left:7%;top:20%;transform:rotate(-6deg);animation:phf 8s ease-in-out infinite}
.ph-r{right:7%;top:20%;transform:rotate(6deg);animation:phf 8s ease-in-out -4s infinite}
.ph-c{left:35.5%;top:7%;width:29%;z-index:2;animation:phf 7s ease-in-out -2s infinite}
@keyframes phf{50%{translate:0 -2cqw}}
.pn{align-self:center;width:34%;height:1.3cqw;border-radius:1cqw;background:var(--line-strong)}
.pt{height:2.6cqw;width:52%;border-radius:1cqw;background:var(--line-strong)}
.pr{height:3.4cqw;border-radius:1.2cqw;background:var(--bg-alt);border:1px solid var(--line)}
.pr.s{width:66%}
.pav{align-self:center;width:9cqw;height:9cqw;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2))}
.pbtn{margin-top:auto;height:4.2cqw;border-radius:1.4cqw;background:linear-gradient(135deg,var(--accent),var(--accent-2))}
.pbars{display:flex;align-items:flex-end;gap:1.2cqw;height:15cqw;padding:1cqw 0}
.pbars span{flex:1;height:var(--h);border-radius:.8cqw .8cqw 0 0;background:linear-gradient(180deg,var(--accent-2),var(--accent));transform-origin:bottom;animation:hvgrow 1.2s cubic-bezier(.2,.8,.2,1) both,barp 4s ease-in-out 1.2s infinite}
.pbars span:nth-child(2n){animation-delay:.1s,1.6s}
@keyframes barp{50%{transform:scaleY(.7)}}
.pfeed{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 85%,transparent);mask-image:linear-gradient(180deg,#000 85%,transparent)}
.pfeed-in{animation:feed 14s linear infinite}
@keyframes feed{to{transform:translateY(-50%)}}
.fc{display:grid;grid-template-columns:5.4cqw 1fr;grid-template-rows:auto auto;gap:.9cqw 1.6cqw;align-items:center;padding:1.8cqw;margin-bottom:1.6cqw;border-radius:2cqw;border:1px solid var(--line);background:var(--bg-alt)}
.fc b{grid-row:1/3;width:5.4cqw;height:5.4cqw;border-radius:1.6cqw;background:linear-gradient(135deg,var(--accent),var(--accent-2));opacity:.85}
.fc i{display:block;height:1.4cqw;border-radius:1cqw;background:var(--line-strong)}
.fc i.s{width:60%;opacity:.6}
.ptabs{display:flex;justify-content:space-around;padding-top:1.4cqw;border-top:1px solid var(--line)}
.ptabs i{width:2.4cqw;height:2.4cqw;border-radius:50%;background:var(--line-strong)}
.ptabs i.on{background:var(--accent-2)}
.toast{position:absolute;left:50%;top:5%;z-index:3;width:42%;display:flex;align-items:center;gap:2cqw;padding:2cqw 2.4cqw;border-radius:2.4cqw;background:var(--bg);border:1px solid var(--line-strong);box-shadow:0 18px 36px -18px rgba(2,10,30,.55);transform:translate(-50%,-160%);animation:toast 7s ease-in-out infinite}
.toast>span{flex:1;display:grid;gap:.9cqw}
.toast b{display:block;height:1.5cqw;width:80%;border-radius:1cqw;background:var(--text);opacity:.7}
.toast i:not(.live){display:block;height:1.3cqw;width:55%;border-radius:1cqw;background:var(--line-strong)}
@keyframes toast{0%,12%{transform:translate(-50%,-160%)}20%,62%{transform:translate(-50%,0)}72%,100%{transform:translate(-50%,-160%)}}

/* IA (carte d'expertise) */
.xv.net{left:0;top:0;width:100%;height:76%}
.xp-chat{position:absolute;left:6%;right:6%;bottom:6%;display:grid;gap:1.6cqw}
.xp-chat .q{justify-self:end;max-width:72%;padding:1.8cqw 2.6cqw;border-radius:2.4cqw 2.4cqw .6cqw 2.4cqw;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:2.6cqw;font-weight:500}
.xp-chat .a{max-width:84%;padding:1.8cqw 2.6cqw;border-radius:2.4cqw 2.4cqw 2.4cqw .6cqw;background:var(--bg);border:1px solid var(--line-strong);font-size:2.6cqw;line-height:1.45;box-shadow:0 14px 30px -20px rgba(2,10,30,.5)}
.net .ne,.ai-net .ne{stroke:var(--accent-2);stroke-opacity:.35;stroke-width:1;stroke-dasharray:3 7;animation:flow 2.4s linear infinite;animation-delay:var(--d)}
.net .nn,.ai-net .nn{fill:var(--accent-2);transform-box:fill-box;transform-origin:center;animation:nnp 2.6s ease-in-out infinite;animation-delay:var(--d)}
@keyframes flow{to{stroke-dashoffset:-20}}
@keyframes nnp{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.5);opacity:1}}
.typing{display:inline-flex;gap:.6cqw;margin-left:1.2cqw;vertical-align:middle}
.typing i{width:1.1cqw;height:1.1cqw;min-width:5px;min-height:5px;border-radius:50%;background:var(--accent-2);animation:hvdot 1.2s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}

/* =====================================================================
   SECTION IA : mise en avant (toujours sombre)
   ===================================================================== */
.ai{--bg:#050b1a;--bg-alt:#0b1530;--text:#f2f6ff;--muted:#a9b6d3;--line:rgba(255,255,255,.1);--line-strong:rgba(255,255,255,.22);--accent:#2f6bff;--accent-2:#6fb0ff;
  background:#050b1a;color:var(--text);border-block:1px solid rgba(255,255,255,.08)}
.ai h2,.ai h3{color:#fff}
.ai .eyebrow{color:var(--accent-2)}
.ai .eyebrow .dot{background:var(--accent-2);box-shadow:0 0 0 4px rgba(111,176,255,.2)}
.ai[data-bg]:before{opacity:.07;color:#6fb0ff}
.ai-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(900px 520px at 85% 18%,rgba(47,107,255,.32),transparent 62%),radial-gradient(700px 420px at 5% 90%,rgba(34,211,238,.12),transparent 60%)}
.ai .container{position:relative;z-index:1}
.ai-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:clamp(32px,5vw,80px);align-items:center}
.ai-copy h2{font-size:clamp(32px,4.6vw,60px);line-height:1.05;letter-spacing:-.04em;margin-bottom:22px}
.ai-copy .sub{color:var(--muted);font-size:clamp(16px,1.5vw,19px);max-width:560px}
.ai-flow{display:flex;flex-wrap:wrap;gap:10px 0;margin:30px 0 34px}
.ai-flow li{position:relative;padding:9px 16px;border:1px solid var(--line-strong);border-radius:999px;font-size:13.5px;font-weight:600;color:#dbe6ff;background:rgba(255,255,255,.04)}
.ai-flow li+li{margin-left:28px}
.ai-flow li+li:before{content:"";position:absolute;left:-28px;top:50%;width:28px;height:1px;background:linear-gradient(90deg,transparent,var(--accent-2))}
.ai-flow li+li:after{content:"";position:absolute;left:-7px;top:calc(50% - 3px);width:6px;height:6px;border-right:1.5px solid var(--accent-2);border-top:1.5px solid var(--accent-2);transform:rotate(45deg)}
html .ai .btn,html[data-theme] .ai .btn{background:linear-gradient(135deg,#4c8dff,#2f6bff);color:#fff;box-shadow:0 14px 40px -12px rgba(76,141,255,.9)}
.ai-stage{position:relative;container-type:inline-size;aspect-ratio:560/400;border-radius:28px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.01));overflow:hidden;box-shadow:0 50px 100px -50px rgba(47,107,255,.7)}
.ai-net{position:absolute;inset:0;width:100%;height:100%}
.ai-core{position:absolute;left:50%;top:43%;width:13cqw;height:13cqw;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(111,176,255,.9),rgba(47,107,255,.25) 60%,transparent 72%);animation:core 3.2s ease-in-out infinite}
.ai-core span{position:absolute;inset:28%;border-radius:50%;background:#fff;opacity:.9;filter:blur(.5px)}
@keyframes core{50%{transform:translate(-50%,-50%) scale(1.25);opacity:.8}}
.ai-chatcard{position:absolute;left:5%;right:30%;bottom:6%;display:grid;gap:1.6cqw;font-size:2.7cqw}
.ai-chatcard .u{justify-self:end;max-width:86%;padding:1.7cqw 2.6cqw;border-radius:2.4cqw 2.4cqw .6cqw 2.4cqw;background:linear-gradient(135deg,#4c8dff,#2f6bff);color:#fff;font-weight:500}
.ai-chatcard .a{display:block;padding:1.9cqw 2.8cqw;border-radius:2.4cqw 2.4cqw 2.4cqw .6cqw;background:rgba(8,16,38,.92);border:1px solid var(--line-strong);line-height:1.45;color:#e8efff;backdrop-filter:blur(8px)}
.ai-chatcard .spark{display:inline-block;width:2.4cqw;height:2.4cqw;margin-right:1.4cqw;vertical-align:-.3cqw;border-radius:50%;background:conic-gradient(#6fb0ff,#2f6bff,#6fb0ff)}
.ai-badge{position:absolute;display:flex;align-items:center;gap:1.4cqw;padding:1.4cqw 2.6cqw;border-radius:999px;background:rgba(8,16,38,.9);border:1px solid var(--line-strong);font:700 2.6cqw/1 ui-monospace,Menlo,Consolas,monospace;color:#dbe6ff;animation:hvfloat 7s ease-in-out infinite}
.ai-badge.b1{top:7%;left:6%}.ai-badge.b2{top:10%;right:6%;animation-delay:-3s}

.ai-caps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:clamp(48px,7vw,90px)}
.ai-cap{padding:22px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.035);transition:transform .3s,border-color .3s,background .3s}
@media (hover:hover){.ai-cap:hover{transform:translateY(-5px);border-color:rgba(111,176,255,.45);background:rgba(255,255,255,.06)}}
.ai-cap h3{font-size:18px;margin:18px 0 10px}
.ai-cap p{font-size:14.5px;color:var(--muted);line-height:1.6}
.ai-mini{position:relative;height:118px;border-radius:14px;border:1px solid var(--line);background:rgba(5,11,26,.7);overflow:hidden}
/* mini : chat */
.m-chat{position:absolute;inset:14px;display:grid;align-content:center;gap:8px}
.m-chat i{display:block;height:22px;border-radius:10px;opacity:0;animation:bub 6s ease-in-out infinite}
.m-chat .b1{width:62%;justify-self:end;background:linear-gradient(135deg,#4c8dff,#2f6bff)}
.m-chat .b2{width:78%;background:rgba(255,255,255,.14);animation-delay:.9s}
.m-chat .b3{width:50%;background:rgba(255,255,255,.14);animation-delay:1.8s}
@keyframes bub{0%{opacity:0;transform:translateY(8px)}10%,80%{opacity:1;transform:none}92%,100%{opacity:0}}
/* mini : workflow */
.m-flow{position:absolute;inset:0}
.m-flow span{position:absolute;top:50%;width:34px;height:34px;margin-top:-17px;border-radius:10px;border:1px solid var(--line-strong);background:rgba(111,176,255,.14)}
.m-flow .n1{left:12%}.m-flow .n2{left:50%;margin-left:-17px;background:#2f6bff;border-color:#6fb0ff;animation:core2 3s ease-in-out infinite}.m-flow .n3{right:12%}
@keyframes core2{50%{box-shadow:0 0 0 8px rgba(76,141,255,.22)}}
.m-flow svg{position:absolute;inset:0;width:100%;height:100%}
.m-flow path{fill:none;stroke:var(--accent-2);stroke-width:1.5;stroke-dasharray:4 6;vector-effect:non-scaling-stroke;animation:flow 1.6s linear infinite}
.m-flow b{position:absolute;top:50%;left:20%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#fff;box-shadow:0 0 12px #6fb0ff;animation:fdot 3s ease-in-out infinite}
@keyframes fdot{0%{left:22%;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:78%;opacity:0}}
/* mini : vision */
.m-vis .img{position:absolute;inset:12px;border-radius:10px;background:linear-gradient(135deg,rgba(111,176,255,.25),rgba(47,107,255,.08)),repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0 6px,transparent 6px 12px)}
.m-vis .box{position:absolute;left:34%;top:30%;width:34%;height:42%;border:2px solid #2fd47d;border-radius:6px;animation:detect 4s ease-in-out infinite}
.m-vis .scan{position:absolute;left:12px;right:12px;top:12px;height:2px;background:linear-gradient(90deg,transparent,#6fb0ff,transparent);box-shadow:0 0 14px #6fb0ff;animation:scan 3s ease-in-out infinite}
@keyframes scan{0%,100%{top:12px}50%{top:calc(100% - 14px)}}
@keyframes detect{0%,30%{opacity:0;transform:scale(1.2)}45%,85%{opacity:1;transform:none}100%{opacity:0}}
/* mini : prédiction */
.m-pred{position:absolute;inset:10px 8px;width:calc(100% - 16px);height:calc(100% - 20px)}
.m-pred .area{fill:rgba(111,176,255,.16)}
.m-pred .ln{fill:none;stroke:#6fb0ff;stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-dasharray:400;stroke-dashoffset:400;animation:draw 4.5s ease-in-out infinite}
.m-pred .fc{fill:none;stroke:#2fd47d;stroke-width:2;stroke-dasharray:5 5;vector-effect:non-scaling-stroke;opacity:0;animation:fcin 4.5s ease-in-out infinite}
@keyframes draw{0%{stroke-dashoffset:400}55%,90%{stroke-dashoffset:0}100%{stroke-dashoffset:0;opacity:0}}
@keyframes fcin{0%,50%{opacity:0}65%,90%{opacity:1}100%{opacity:0}}

.ai-prin{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(40px,6vw,70px);border-top:1px solid var(--line)}
.ai-prin li{padding:26px 28px 0 0;margin-right:28px;border-right:1px solid var(--line);display:grid;gap:8px;align-content:start}
.ai-prin li:last-child{border-right:0;margin-right:0}
.ai-prin b{font-size:17px;color:#fff}
.ai-prin span{font-size:14.5px;color:var(--muted);line-height:1.6}

/* =====================================================================
   APPROCHE : frise verticale + visuels animés
   ===================================================================== */
.ap{display:grid;gap:clamp(44px,6vw,84px)}
.ap-step{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,.92fr);gap:clamp(20px,3.4vw,52px);align-items:center;position:relative}
.ap-rail{position:relative;align-self:stretch;display:flex;justify-content:center}
.ap-num{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:1px solid var(--line-strong);background:var(--bg);font-weight:700;font-size:15px;color:var(--accent-2);letter-spacing:.04em;box-shadow:0 0 0 8px var(--bg);align-self:center}
.ap-step:not(:last-child) .ap-rail:after{content:"";position:absolute;left:50%;top:calc(50% + 28px);bottom:calc(-1 * clamp(44px,6vw,84px) - 50% + 28px);width:2px;margin-left:-1px;background:linear-gradient(180deg,var(--accent-2),var(--line));opacity:.7}
.ap-step:first-child .ap-num{background:var(--accent);border-color:transparent;color:#fff}
.ap-copy h3{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.025em;margin-bottom:12px}
.ap-copy>p{color:var(--muted);font-size:16px;max-width:520px}
.ap-del{margin:22px 0 10px;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text)!important}
.ap-copy ul{display:grid;gap:9px}
.ap-copy li{position:relative;padding-left:24px;font-size:15px;color:var(--muted)}
.ap-copy li:before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;border-radius:2px;background:var(--accent-2)}
.ap-vis{position:relative;container-type:inline-size;aspect-ratio:16/10;border-radius:20px;border:1px solid var(--line);background:linear-gradient(160deg,var(--bg-alt),var(--bg));overflow:hidden;padding:5cqw;box-shadow:0 30px 60px -44px rgba(3,45,98,.4)}
/* 1 : cadrage */
.v1{display:grid;align-content:center;gap:3cqw}
.v1 .r{display:grid;grid-template-columns:5cqw 1fr 24%;gap:3cqw;align-items:center}
.v1 .ck{width:5cqw;height:5cqw;border-radius:1.4cqw;border:2px solid var(--line-strong);animation:tick 7s ease-in-out infinite}
.v1 .r:nth-child(2) .ck{animation-delay:1s}.v1 .r:nth-child(3) .ck{animation-delay:2s}.v1 .r:nth-child(4) .ck{animation-delay:3s}
.v1 b{height:2.2cqw;border-radius:1cqw;background:var(--line-strong)}
.v1 s{height:2.2cqw;border-radius:1cqw;background:var(--line);text-decoration:none}
@keyframes tick{0%,8%{background:transparent;border-color:var(--line-strong)}18%,84%{background:var(--accent-2);border-color:var(--accent-2);box-shadow:inset 0 0 0 1cqw var(--bg)}100%{background:transparent;border-color:var(--line-strong)}}
.v1 .prog{height:2cqw;border-radius:2cqw;background:var(--line);overflow:hidden;margin-top:1cqw}
.v1 .prog span{display:block;height:100%;border-radius:2cqw;background:linear-gradient(90deg,var(--accent),var(--accent-2));animation:prog 7s ease-in-out infinite}
@keyframes prog{0%{width:6%}60%,90%{width:100%}100%{width:6%}}
/* 2 : conception */
.v2{display:grid}
.v2 .wf{min-height:0;border:1.5px dashed var(--line-strong);border-radius:3cqw;padding:3cqw;display:grid;grid-template-rows:auto 1fr auto;gap:2.4cqw;background:var(--bg)}
.v2 .wf>*{border-radius:2cqw;background:var(--line);opacity:0;animation:wfin 6s ease-in-out infinite}
.v2 .hd{height:5cqw}.v2 .hb{background:linear-gradient(135deg,rgba(76,141,255,.35),rgba(76,141,255,.1))!important;animation-delay:.5s!important}
.v2 .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2cqw;height:12cqw;background:none!important;animation-delay:1s!important}
.v2 .cols div{border-radius:1.8cqw;background:var(--line-strong);opacity:.7}
@keyframes wfin{0%{opacity:0;transform:translateY(2cqw) scale(.97)}14%,86%{opacity:1;transform:none}100%{opacity:0}}
/* 3 : développement */
.v3{display:grid;align-content:center;gap:3cqw}
.v3 .board{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:2.4cqw;height:30cqw}
.v3 .col{display:grid;align-content:start;gap:2cqw;padding:2cqw;border-radius:2cqw;background:var(--bg);border:1px solid var(--line)}
.v3 .col i{display:block;height:5.4cqw;border-radius:1.4cqw;background:var(--line-strong)}
.v3 .mv{position:absolute;left:2.4cqw;top:2cqw;width:calc(33.3% - 3.6cqw);height:5.4cqw;border-radius:1.4cqw;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 8px 20px -8px rgba(47,107,255,.8);animation:mv 6s ease-in-out infinite}
@keyframes mv{0%,10%{left:2.4cqw;top:2cqw}45%,70%{left:calc(66.7% + .8cqw);top:2cqw;}85%,100%{left:calc(66.7% + .8cqw);top:2cqw;opacity:0}}
.v3 .ci{display:flex;gap:2.4cqw;justify-content:center}
.v3 .ci span{display:grid;place-items:center;width:6cqw;height:6cqw;border-radius:50%;background:rgba(47,212,125,.16);color:#1fae63;font-size:3.2cqw;font-weight:700;animation:ci 6s ease-in-out infinite}
.v3 .ci span:nth-child(2){animation-delay:.4s}.v3 .ci span:nth-child(3){animation-delay:.8s}
@keyframes ci{0%,35%{opacity:.2;transform:scale(.8)}50%,90%{opacity:1;transform:none}100%{opacity:.2}}
/* 4 : déploiement */
.v4{display:grid;align-content:center;gap:3.4cqw}
.v4 .pipe{display:flex;gap:2.4cqw;justify-content:center}
.v4 .pipe span{position:relative;padding:2cqw 4cqw 2cqw 6cqw;border-radius:999px;border:1px solid var(--line-strong);background:var(--bg);font:600 3cqw/1 ui-monospace,Menlo,Consolas,monospace;animation:pipe 6s ease-in-out infinite}
.v4 .pipe span:before{content:"";position:absolute;left:2.4cqw;top:50%;width:2.2cqw;height:2.2cqw;margin-top:-1.1cqw;border-radius:50%;background:var(--line-strong);animation:pdot 6s ease-in-out infinite}
.v4 .pipe span:nth-child(2),.v4 .pipe span:nth-child(2):before{animation-delay:1s}
.v4 .pipe span:nth-child(3),.v4 .pipe span:nth-child(3):before{animation-delay:2s}
@keyframes pipe{0%,10%{border-color:var(--line-strong)}25%,85%{border-color:#2fd47d}100%{border-color:var(--line-strong)}}
@keyframes pdot{0%,10%{background:var(--line-strong)}25%,85%{background:#2fd47d}100%{background:var(--line-strong)}}
.v4 svg{width:100%;height:22cqw}
.v4 .up{fill:none;stroke:var(--accent-2);stroke-width:2.4;vector-effect:non-scaling-stroke;stroke-dasharray:320;stroke-dashoffset:320;animation:draw 6s ease-in-out infinite;stroke-linejoin:round}
.v4 .ok{justify-self:center;display:flex;align-items:center;gap:1.8cqw;padding:1.8cqw 3.4cqw;border-radius:999px;background:var(--bg);border:1px solid var(--line-strong);font:700 3cqw/1 ui-monospace,Menlo,Consolas,monospace}

@media (prefers-reduced-motion:reduce){
  .xp-chip,.ph,.pbars span,.pfeed-in,.toast,.net .ne,.net .nn,.ai-net .ne,.ai-net .nn,.ai-core,.ai-badge,.m-chat i,.m-flow b,.m-flow path,.m-flow .n2,.m-vis .box,.m-vis .scan,.m-pred .ln,.m-pred .fc,
  .v1 .ck,.v1 .prog span,.v2 .wf>*,.v3 .mv,.v3 .ci span,.v4 .pipe span,.v4 .pipe span:before,.v4 .up,.xv-arch .ring,.live{animation:none!important}
  .m-chat i,.v2 .wf>*{opacity:1}.m-pred .ln,.v4 .up{stroke-dashoffset:0}.toast{transform:translate(-50%,0)}
}

/* ---- responsive ---- */
@media (max-width:1100px){.ai-caps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:980px){
  .xp{grid-template-columns:1fr}.xp:nth-child(even) .xp-vis{order:0}
  .ai-hero{grid-template-columns:1fr}.ai-stage{max-width:640px}
  .ap-step{grid-template-columns:56px minmax(0,1fr)}
  .ap-step .ap-vis{grid-column:2;max-width:520px}
}
@media (max-width:640px){
  .xp-bul{grid-template-columns:1fr}
  .ai-caps{grid-template-columns:1fr}
  .ai-prin{grid-template-columns:1fr}.ai-prin li{border-right:0;margin-right:0;padding:22px 0;border-bottom:1px solid var(--line)}
  .ai-flow li+li{margin-left:20px}.ai-flow li+li:before{left:-20px;width:20px}
  .ap-step{grid-template-columns:40px minmax(0,1fr);gap:16px}
  .ap-num{width:38px;height:38px;font-size:12px;box-shadow:0 0 0 6px var(--bg)}
  .ap-step:not(:last-child) .ap-rail:after{top:calc(50% + 19px)}
}

/* ---- thème clair : adaptations ---- */
html[data-theme="light"] .xp-vis,html[data-theme="light"] .ap-vis{background:radial-gradient(520px 320px at 70% 10%,rgba(26,95,216,.1),transparent 62%),linear-gradient(160deg,#f3f6fc,#fff)}
html[data-theme="light"] .xp-chip,html[data-theme="light"] .ph,html[data-theme="light"] .toast{background:#fff}
html[data-theme="light"] .xv-arch .nd rect{fill:#fff}
html[data-theme="light"] .xp-bul li:before{background-color:rgba(26,95,216,.1)}
html[data-theme="light"] .xv-arch .nd.hot rect{fill:var(--accent)}

/* ---- IA : loop engineering + VLM ---- */
.ai-feats{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:clamp(48px,7vw,90px)}
.ai-feat{position:relative;padding:clamp(22px,3vw,34px);border:1px solid var(--line-strong);border-radius:24px;overflow:hidden;
  background:radial-gradient(420px 240px at 80% 0,rgba(47,107,255,.2),transparent 70%),rgba(255,255,255,.03)}
.ai-fk{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2);margin:24px 0 10px}
.ai-feat h3{font-size:clamp(22px,2.4vw,30px);letter-spacing:-.025em;line-height:1.15;margin-bottom:12px}
.ai-fp{color:var(--muted);font-size:15.5px;line-height:1.65}
.ai-feat ul{display:grid;gap:9px;margin-top:20px}
.ai-feat li{position:relative;padding-left:24px;font-size:14.5px;color:#dbe6ff}
.ai-feat li:before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;border-radius:2px;background:var(--accent-2)}
.ai-fv{position:relative;container-type:inline-size;aspect-ratio:16/10;border-radius:18px;border:1px solid var(--line);background:rgba(5,11,26,.75);overflow:hidden}
/* boucle */
.lp-box{position:absolute;inset:0}
.lp-svg{position:absolute;inset:3% 4%;width:92%;height:94%}
.lp-ring{fill:none;stroke:var(--accent-2);stroke-width:1.5;stroke-dasharray:4 7;opacity:.7;animation:flow 2s linear infinite}
.lp-dot{fill:#fff}.lp-dot2{fill:#6fb0ff;opacity:.35}
.lp-n rect{fill:rgba(8,16,38,.95);stroke:var(--line-strong);stroke-width:1.2;animation:lpn 6s ease-in-out infinite;animation-delay:var(--d)}
.lp-n text{fill:#e8efff;font:600 13px Inter,system-ui,sans-serif}
@keyframes lpn{0%,18%{stroke:#6fb0ff;fill:rgba(47,107,255,.5)}30%,100%{stroke:rgba(255,255,255,.22);fill:rgba(8,16,38,.95)}}
.lp-c circle{fill:rgba(47,107,255,.3);stroke:#6fb0ff;stroke-width:1.5;animation:core2 3s ease-in-out infinite}
.lp-c text{fill:#fff;font:700 13px Inter,system-ui,sans-serif}
.lp-count{position:absolute;right:4%;bottom:6%;padding:1.6cqw 3cqw;border-radius:999px;border:1px solid var(--line-strong);background:rgba(8,16,38,.9);font:600 3cqw/1 ui-monospace,Menlo,Consolas,monospace;color:#dbe6ff}
.lp-count b{margin-left:.5cqw;color:#6fb0ff}
/* VLM */
.vl-img{position:absolute;left:4%;right:4%;top:6%;height:58%;border-radius:12px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(111,176,255,.18),rgba(47,107,255,.05));overflow:hidden}
.vl-grid{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 16%),repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 12.5%)}
.vl-img .it{position:absolute;bottom:14%;width:14%;height:44%;border-radius:8px;background:rgba(255,255,255,.2)}
.vl-img .i1{left:8%}.vl-img .i2{left:30%;height:52%}.vl-img .i3{left:56%;height:40%}
.vl-img .bx{position:absolute;border:2px solid #ff6b6b;border-radius:6px;opacity:0;animation:detect 5s ease-in-out infinite}
.vl-img .b1{left:28%;top:22%;width:20%;height:56%}
.vl-img .b2{left:54%;top:34%;width:18%;height:44%;animation-delay:.6s}
.vl-img em{position:absolute;left:-2px;top:-1.7em;padding:1px 6px;border-radius:4px;background:#ff6b6b;color:#fff;font:600 10px/1.5 Inter,sans-serif;font-style:normal}
.vl-img .scan{position:absolute;top:0;bottom:0;width:2px;left:0;background:linear-gradient(180deg,transparent,#6fb0ff,transparent);box-shadow:0 0 14px #6fb0ff;animation:vscan 5s ease-in-out infinite}
@keyframes vscan{0%{left:2%}100%{left:98%}}
.vl-chat{position:absolute;left:4%;right:4%;bottom:5%;display:grid;gap:1.4cqw;font-size:2.8cqw}
.vl-chat .q{justify-self:end;padding:1.2cqw 2.6cqw;border-radius:2cqw 2cqw .6cqw 2cqw;background:linear-gradient(135deg,#4c8dff,#2f6bff);color:#fff}
.vl-chat .a{padding:1.2cqw 2.6cqw;border-radius:2cqw 2cqw 2cqw .6cqw;background:rgba(255,255,255,.1);border:1px solid var(--line);color:#e8efff}
@media (max-width:980px){.ai-feats{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.lp-ring,.lp-n rect,.lp-c circle,.vl-img .bx,.vl-img .scan{animation:none!important}.vl-img .bx{opacity:1}}

/* ---- IA : 6 cartes (loop engineering + VLM intégrés) ---- */
.ai-caps{grid-template-columns:repeat(3,1fr)}
.m-loop{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px)}
.m-loop .rg{fill:none;stroke:var(--accent-2);stroke-width:1.3;stroke-dasharray:3 6;animation:flow 2s linear infinite}
.m-loop .nd{fill:rgba(8,16,38,.95);stroke:var(--accent-2);stroke-width:1.5}
.m-loop .d1{fill:#fff;filter:drop-shadow(0 0 5px #6fb0ff)}
.m-loop .ct{fill:rgba(47,107,255,.5);stroke:#6fb0ff;stroke-width:1.5;animation:core2 3s ease-in-out infinite}
.m-vlm{position:absolute;inset:10px;display:grid;grid-template-rows:1fr auto;gap:8px}
.m-vlm .im{position:relative;border-radius:8px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(111,176,255,.2),rgba(47,107,255,.06));overflow:hidden}
.m-vlm .im i{position:absolute;bottom:12%;width:18%;border-radius:5px;background:rgba(255,255,255,.2)}
.m-vlm .a{left:10%;height:42%}.m-vlm .b{left:40%;height:56%}.m-vlm .c{left:70%;height:36%}
.m-vlm .im span{position:absolute;border:2px solid #ff6b6b;border-radius:4px;opacity:0;animation:detect 4.5s ease-in-out infinite}
.m-vlm .x1{left:36%;top:16%;width:26%;height:68%}.m-vlm .x2{left:66%;top:34%;width:26%;height:52%;animation-delay:.5s!important}
.m-vlm .sc{position:absolute;top:0;bottom:0;width:2px;left:0;background:linear-gradient(180deg,transparent,#6fb0ff,transparent);box-shadow:0 0 10px #6fb0ff;animation:vscan 4.5s ease-in-out infinite;border:0!important;opacity:1!important}
.m-vlm .tx{display:grid;gap:4px}
.m-vlm .tx b{display:block;height:6px;width:86%;border-radius:4px;background:rgba(255,255,255,.18)}
.m-vlm .tx b.s{width:54%}
@media (max-width:1100px){.ai-caps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.ai-caps{grid-template-columns:1fr}}
