/* Xaelyx — feuille de style commune des pages société (Néon v2). */
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}

.t-neon{--bg:#000000;--glow:rgba(168,85,255,.10);--hdr:rgba(0,0,0,.72);--line:#2A2633;--border:#2A2633;--border2:#3A3546;--card:#121018;--surface:rgba(18,16,24,.86);--hover:#1C1924;--text:#EEEBF5;--body:#A7A2B4;--faint:#8A8498;--accent:#C08BFF;--accent-hover:#D4B0FF;--brand:#A855FF;--brand-soft:rgba(168,85,255,.14);--glowc:rgba(168,85,255,.55);--grid:rgba(42,38,51,.38);--warn:#FFB38A;--ok-bg:#160F22;--ok-border:#4A2F73;--pill-strong:#3B1F66;--pill-strong-fg:#EEEBF5;--term-bg:rgba(12,10,18,.94);--card-rgb:18,16,24;--bg-rgb:0,0,0;--term-rgb:12,10,18;color-scheme:dark}
.t-clair{--bg:#F7F5FB;--glow:rgba(124,47,230,.08);--hdr:rgba(247,245,251,.84);--line:#E1DCEA;--border:#DDD7E8;--border2:#C4BCD4;--card:#FFFFFF;--surface:rgba(255,255,255,.92);--hover:#F1ECF9;--text:#15111E;--body:#4A4458;--faint:#625C72;--accent:#6B21D9;--accent-hover:#5516B8;--brand:#7C2FE6;--brand-soft:rgba(124,47,230,.10);--glowc:rgba(124,47,230,.35);--grid:rgba(196,188,212,.45);--warn:#A14A12;--ok-bg:#F1E9FD;--ok-border:#C9B0F0;--pill-strong:#5516B8;--pill-strong-fg:#FFFFFF;--term-bg:rgba(251,249,254,.96);--card-rgb:255,255,255;--bg-rgb:247,245,251;--term-rgb:251,249,254;color-scheme:light}
html{background:var(--bg)}
body{margin:0;background:var(--bg);font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
.app{background:radial-gradient(900px 600px at 10% 30%, var(--glow) 0%, transparent 70%), var(--bg);color:var(--body);transition:background-color .8s ease,color .8s ease}
.app a{color:var(--accent)}.app a:hover{color:var(--accent-hover)}
.app ::selection{background:var(--brand-soft);color:var(--text)}
.m-pleines{--op:1;--op-h:.94;--blur:0px}
.m-voile{--op:.8;--op-h:.32;--blur:2px}
.m-verre{--op:.42;--op-h:.16;--blur:6px}
.glass{background:rgba(var(--card-rgb),var(--op)) !important;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));transition:background .7s ease,border-color .5s ease}
.glass:hover{background:rgba(var(--card-rgb),var(--op-h)) !important}
.glass-bg{background:rgba(var(--bg-rgb),var(--op)) !important;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));transition:background .7s ease}
.glass-bg:hover{background:rgba(var(--bg-rgb),var(--op-h)) !important}
.glass-term{background:rgba(var(--term-rgb),calc(var(--op) + .1)) !important;-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));transition:background .7s ease}
.glass-term:hover{background:rgba(var(--term-rgb),calc(var(--op-h) + .2)) !important}
.spot{position:relative}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), var(--brand-soft), transparent 70%)}
.spot:hover::after{opacity:1}
[data-px]{translate:0 var(--py,0px);transition:translate .25s linear}
.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes breathe{0%,100%{opacity:.5}50%{opacity:1}}
.tcur{display:inline-block;width:8px;height:15px;background:var(--accent);margin-left:4px;vertical-align:-2px;animation:blink 1s steps(1) infinite}
.breathe{animation:breathe 1.8s ease-in-out infinite}
.slow4{animation-duration:4s}
.skip{position:absolute;left:-9999px;top:8px;z-index:50;padding:10px 14px;background:var(--card);border:1px solid var(--brand);border-radius:4px}
.skip:focus{left:16px}
.navlinks{display:flex}
.navmob{display:none;gap:18px;overflow-x:auto;padding:0 24px 12px;max-width:1180px;margin:0 auto}
.navmob .nav-a{white-space:nowrap}
.nav-a{color:var(--text) !important;text-decoration:none;font-size:14px;padding:6px 2px;border-bottom:1px solid transparent}
.nav-a:hover{color:var(--accent) !important}
.nav-a.on{color:var(--accent) !important;border-bottom-color:var(--brand)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 20px;border-radius:4px;font:inherit;font-size:15px;text-decoration:none;cursor:pointer;transition:background .4s ease,border-color .4s ease,color .4s ease}
.btn-p{background:transparent;border:1px solid var(--brand);color:var(--accent) !important}
.btn-p:hover{background:var(--brand-soft)}
.btn-s{background:var(--card);border:1px solid var(--border);color:var(--text) !important}
.btn-s:hover{border-color:var(--border2);background:var(--hover)}
.frame{position:relative;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg)}
.frame::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--grid) 1px, transparent 1px),linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:40px 40px;pointer-events:none}
.halo{position:absolute;left:-160px;bottom:-220px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle, var(--brand-soft) 0%, transparent 65%);pointer-events:none}
.mark{position:absolute;width:14px;height:14px;pointer-events:none}
.mark.tr{top:14px;right:14px;border-top:1px solid var(--mk,var(--faint));border-right:1px solid var(--mk,var(--faint))}
.mark.bl{bottom:14px;left:14px;border-bottom:1px solid var(--mk,var(--faint));border-left:1px solid var(--mk,var(--faint))}
.card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:8px;transition:border-color .5s ease,background .5s ease}
.card:hover{border-color:var(--border2)}
.fig{--mk:var(--brand)}
.pill{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:12px}
.pill-s{background:var(--pill-strong);color:var(--pill-strong-fg)}
.pill-n{background:var(--hover);color:var(--text)}
.pill-o{border:1px solid var(--brand);color:var(--accent);font-family:"IBM Plex Mono",monospace}
.catbtn{min-height:34px;padding:0 14px;border:0;font:inherit;font-size:13px;cursor:pointer;background:var(--hover);color:var(--text)}
.catbtn[aria-pressed="true"]{background:var(--pill-strong);color:var(--pill-strong-fg)}
.app a:focus-visible,.app button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.rv{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hero{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.g4>div:last-child{border-right:0 !important}
.dock{position:fixed;right:16px;bottom:16px;z-index:20}
.dockbtn{min-height:32px;padding:0 10px;border-radius:4px;border:1px solid transparent;background:transparent;color:var(--body);font:inherit;font-size:12px;cursor:pointer}
.dockbtn[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft);color:var(--accent)}
.tl{min-height:1.85em;white-space:pre-wrap}
.tl .p{color:var(--accent)}
.tl .ok{color:var(--accent);font-weight:500}
.hide{display:none !important}
@media (max-width:960px){
.navlinks{display:none}
.navmob{display:flex}
.g3,.g4,.g2,.hero{grid-template-columns:minmax(0,1fr)}
.g4>div{border-right:0 !important;border-bottom:1px solid var(--border)}
.h1big{font-size:38px !important;line-height:44px !important}
.pad-lg{padding:36px 22px !important}
.dock{left:16px;right:16px}
.navcta{display:none !important}
}
@media (max-width:960px){[data-px]{translate:none}}
@media (max-width:560px){.dock .dlabel,.dock .grp-speed,.dock .grp-veil{display:none !important}.dock{left:auto}}
@media (prefers-reduced-motion:reduce){[data-px]{translate:none}.tcur,.breathe{animation:none}.rv{opacity:1;transform:none;transition:none}}
