/* julienjimenez.xyz : futur lumineux holographique (blanc, reflets irisés, verre, orbes). Sections numérotées 1 à 25. */
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
@property --t{syntax:"<angle>";inherits:false;initial-value:360deg}

/* 1. Jetons */
:root{
--bg:#FFFFFF;--surface:#F5F7FF;--ink:#0C0A1D;--muted:#5B5872;--line:#E3E5F5;
--primary:#6366F1;--secondary:#EC4899;--accent:#22D3EE;
--link:#4338CA;--primary-strong:#4F46E5;--secondary-ink:#BE185D;
--known-bg:#DDF7FC;--known-ink:#0B6377;--test-bg:#FDE6F1;--test-ink:#A1134F;--tint:#EEF0FF;--text-soft:#24213A;
--glass:#ffffffa8;--glass-strong:#ffffffd1;--glass-edge:#ffffffcc;
--hair:0 0 0 1px var(--line);
--ring:var(--hair),inset 0 1px 0 #ffffffe6;
--shadow:0 24px 60px -32px #6366f159;
--shadow-lg:0 40px 90px -44px #4f46e573;
--lift:0 34px 70px -34px #6366f18c;
--iris:conic-gradient(from var(--a),#6366F1,#EC4899,#22D3EE,#6366F1);
--iris-text:linear-gradient(96deg,#4F46E5 0%,#8B2FE0 50%,#DB2777 100%);
--iris-lin:linear-gradient(135deg,#6366F1,#EC4899);
--indigo-btn:linear-gradient(135deg,#5B5FEF 0%,#4F46E5 55%,#4338CA 100%);
--bead:radial-gradient(circle at 35% 30%,#fff,#E6E8FD);
--spark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1C12.9 8.4 15.6 11.1 23 12C15.6 12.9 12.9 15.6 12 23C11.1 15.6 8.4 12.9 1 12C8.4 11.1 11.1 8.4 12 1Z'/%3E%3C/svg%3E");
--r-card:24px;--r-in:16px;--r-pill:999px;
--container:1180px;--g12:repeat(12,minmax(0,1fr));--g2:repeat(2,minmax(0,1fr));--gap:24px;--pad:clamp(16px,3.2vw,32px);--blur:14px;
--f-display:"Unbounded","Segoe UI",system-ui,sans-serif;
--f-body:"Onest",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
--f-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
--fs-h1:clamp(2.15rem,1.05rem + 4.1vw,4.7rem);
--fs-h2:clamp(1.7rem,1.12rem + 2.2vw,3rem);
--fs-h3:clamp(1.08rem,.98rem + .4vw,1.3rem);
--fs-lead:clamp(1.06rem,.98rem + .36vw,1.26rem);
--fs-body:clamp(1rem,.97rem + .14vw,1.0625rem);
--fs-sm:.92rem;--fs-xs:.82rem;--fs-label:.7rem;
--sec:clamp(48px,2.2rem + 3.4vw,80px);
--ease:cubic-bezier(.2,.7,.2,1);--spring:cubic-bezier(.34,1.56,.64,1);
}

/* 2. Base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);scroll-padding-top:108px}
html:focus-within{scroll-behavior:smooth}
body{margin:0;min-height:100vh;font-family:var(--f-body);font-size:var(--fs-body);line-height:1.65;color:var(--ink);overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg,video{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);font-weight:500;line-height:1.08;letter-spacing:-.02em;text-wrap:balance}
h4{font-family:var(--f-body);font-weight:650;letter-spacing:0;line-height:1.3}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
ul,ol{margin:0;padding:0}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:.22em;transition:color .2s}
a:hover{color:var(--secondary-ink)}
strong{font-weight:650}
::selection{background:#E0E2FE;color:var(--ink)}
:focus-visible{outline:2px solid var(--primary-strong);outline-offset:0;box-shadow:0 0 0 5px #fff}
button{font:inherit;color:inherit}
code,kbd{font-family:var(--f-mono);font-size:.9em;padding:.12em .4em;border-radius:6px;background:var(--tint);color:var(--link)}
.skip{position:absolute;left:16px;top:-100px;z-index:200;padding:12px 20px;border-radius:999px;background:var(--ink);color:#fff;font-weight:600;text-decoration:none;transition:top .25s var(--ease)}
.skip:focus{top:16px;color:#fff}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{width:min(100% - 2 * var(--pad),var(--container));margin-inline:auto}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
[hidden]{display:none!important}
.section{position:relative;padding-block:var(--sec)}
main,.site-footer{overflow-x:clip}
/* Libellés en capitales Unbounded */
.sh-label,.fab-core-k,.fab-step-k,.sources-label,.answer-tag,.demo-k,.code-head,.f-title,.toc-title,.callout-title,.rtable th,.prose th,.tag,.nf-code,.rtable td::before,.prose td::before{font-family:var(--f-display);font-weight:600;text-transform:uppercase;line-height:1.3}
/* Perles numérotées */
.decide li::before,.first-msg li::before,.prose ol li::before,.t-ini,.nf-links .fav,.callout::before{border-radius:50%;background:var(--bead);box-shadow:var(--hair);font:600 .72rem/1 var(--f-display);color:var(--link)}

/* Alignements partagés */
.btn,.link-arrow,.badge,.tag,.brand,.nav-links a,.hero-pill,.h1-kicker,.answer-engine,.src-chip,.demo-ind li,.bot,.testi-foot a,.post-more,.contact-meta span,.f-list a,.network-links a,.article-meta .author-mini,.nf-links a{display:inline-flex;align-items:center}
.decide li::before,.first-msg li::before,.prose ol li::before,.t-ini,.nf-links .fav,.callout::before,.brand-orb,.sh-icon,.a-avatar,.fab-node,.lever-ico,.ks-prism,.orbn,.orb{display:grid;place-items:center}

/* 3. Fond irisé : maillage de dégradés qui dérive, grain léger */
.aurora{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#FBFBFF 60%,#F8F9FF 100%)}
.aurora span,.aurora i{position:absolute;inset:0}
.aurora::before,.aurora::after,.aurora span::before,.aurora span::after{content:"";position:absolute;border-radius:50%;will-change:transform;translate:calc(var(--px,0) * var(--k,40px)) calc(var(--py,0) * var(--k,40px))}
.aurora::before{width:64vmax;height:64vmax;left:-22vmax;top:-30vmax;opacity:.26;--k:-46px;background:radial-gradient(closest-side,#6366F1,#6366f100);animation:drift-a 40s ease-in-out infinite alternate}
.aurora::after{width:58vmax;height:58vmax;right:-24vmax;top:-14vmax;opacity:.2;--k:52px;background:radial-gradient(closest-side,#EC4899,#ec489900);animation:drift-b 40s ease-in-out infinite alternate}
.aurora span::before{width:60vmax;height:60vmax;left:10vmax;bottom:-38vmax;opacity:.24;--k:30px;background:radial-gradient(closest-side,#22D3EE,#22d3ee00);animation:drift-c 40s ease-in-out infinite alternate}
.aurora span::after{width:38vmax;height:38vmax;right:4vmax;bottom:-6vmax;opacity:.16;--k:-24px;background:radial-gradient(closest-side,#A78BFA,#a78bfa00);animation:drift-a 40s -16s ease-in-out infinite alternate-reverse}
.aurora i::after{content:"";position:absolute;inset:0;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E")}
@keyframes drift-a{0%{transform:scale(1)}50%{transform:translate(14vmax,9vmax) scale(1.12)}100%{transform:translate(5vmax,18vmax) scale(.94)}}
@keyframes drift-b{0%{transform:scale(1)}50%{transform:translate(-12vmax,14vmax) scale(.9)}100%{transform:translate(-4vmax,6vmax) scale(1.1)}}
@keyframes drift-c{0%{transform:scale(1)}50%{transform:translate(12vmax,-10vmax) scale(1.08)}100%{transform:translate(-8vmax,-4vmax) scale(.96)}}
@keyframes float{0%,100%{transform:none}50%{transform:translate(0,-22px)}}
@keyframes iris-spin{to{--a:360deg}}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}

/* 4. Briques communes : verre, bordure irisée, icônes, boutons, badges, puces étincelles */
.glass{position:relative;background:var(--glass);border:1px solid var(--glass-edge);border-radius:var(--r-card);box-shadow:var(--ring),var(--shadow)}
.glass--strong{background:var(--glass-strong)}
.iris::before,.photo-card::before,.approach::before{content:"";position:absolute;inset:-1px;z-index:1;border-radius:inherit;padding:1.5px;background:var(--iris);mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);pointer-events:none}
.iris::before{opacity:0;transition:opacity .45s var(--ease)}
.iris:hover::before,.iris:focus-within::before{opacity:1;animation:iris-spin 5s linear infinite}
.ico{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ico--grad{stroke:url(#g-iris)}
.iris-text{font-style:normal;background:var(--iris-text);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.btn{justify-content:center;gap:10px;min-height:52px;padding:0 24px;border:0;border-radius:999px;font:600 1rem/1.2 var(--f-body);text-decoration:none;text-align:center;cursor:pointer;transition:.35s var(--ease)}
.btn .ico{width:20px;height:20px;transition:transform .35s var(--ease)}
.btn:hover .ico{transform:translateX(3px)}
.btn-primary{color:#fff;background:var(--indigo-btn);box-shadow:inset 0 1px 0 #ffffff59,0 14px 34px -14px #4f46e5cc}
.btn-primary:hover{color:#fff;transform:translateY(-2px);box-shadow:inset 0 1px 0 #ffffff59,0 20px 44px -16px #4f46e5e6,0 0 0 4px #6366f124}
.btn-glass{color:var(--ink);background:#ffffffc7;border:1px solid #fffffff2;box-shadow:var(--ring),0 10px 30px -18px #6366f173}
.btn-glass:hover{color:var(--ink);transform:translateY(-2px);box-shadow:0 0 0 1px #CFD2F6,0 16px 36px -18px #6366f18c}
.btn-iris{color:var(--ink);background:linear-gradient(#fff,#fff) padding-box,var(--iris) border-box;border:1.5px solid transparent}
.btn-iris:hover{color:var(--ink);animation:iris-spin 4s linear infinite;box-shadow:0 10px 26px -14px #ec489999}
.link-arrow{gap:8px;font-weight:600;text-decoration:none;color:var(--link)}
.link-arrow .ico{width:18px;height:18px;transition:transform .3s var(--ease)}
.link-arrow:hover .ico{transform:translateX(4px)}
.badge{gap:7px;padding:6px 12px 6px 10px;border-radius:999px;font:600 .76rem/1 var(--f-body);letter-spacing:.01em;white-space:nowrap}
.badge::before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:var(--dot);box-shadow:0 0 0 3px var(--halo)}
.badge--known{--dot:#22D3EE;--halo:#22d3ee47;background:var(--known-bg);color:var(--known-ink);box-shadow:inset 0 0 0 1px #22d3ee80}
.badge--test{--dot:#EC4899;--halo:#ec489938;background:var(--test-bg);color:var(--test-ink);box-shadow:inset 0 0 0 1px #ec489959}
.badge--do{--dot:#6366F1;--halo:#6366f133;background:var(--tint);color:var(--link);box-shadow:inset 0 0 0 1px #6366f14d}
.sparkles{list-style:none;display:grid;gap:9px}
.sparkles li,.prose ul li{position:relative;padding-left:26px}
.sparkles li::before,.prose ul li::before,.breadcrumb li+li::before{content:"";position:absolute;left:1px;top:.38em;width:14px;height:14px;background:var(--iris-lin);mask:var(--spark) center/contain no-repeat}
.tag{gap:8px;font-size:var(--fs-label);letter-spacing:.14em;color:var(--muted)}
.tag::before{content:"";width:18px;height:1px;background:currentColor;opacity:.6}

/* 5. En-tête : pilule de verre flottante, feuille mobile */
.site-header{position:fixed;top:16px;left:0;right:0;z-index:80;display:flex;justify-content:center;padding-inline:var(--pad);pointer-events:none}
.nav-pill{pointer-events:auto;display:flex;align-items:center;gap:4px;max-width:100%;padding:6px 6px 6px 8px;border-radius:999px;background:#ffffffb3;backdrop-filter:blur(14px) saturate(160%);border:1px solid #fffffff2;box-shadow:0 0 0 1px var(--line),0 12px 40px -26px #6366f180;transition:.4s var(--ease)}
.site-header.is-scrolled .nav-pill{background:#ffffffd1;box-shadow:0 0 0 1px var(--line),0 18px 50px -24px #4f46e573}
.brand{gap:10px;min-height:44px;padding:0 12px 0 2px;border-radius:999px;color:var(--ink);text-decoration:none}
.brand:hover{color:var(--ink)}
.brand-orb{width:36px;height:36px;border-radius:50%;font:700 .7rem/1 var(--f-display);letter-spacing:-.02em;color:#fff;background:radial-gradient(circle at 30% 25%,#ffffff8c,#fff0 45%),conic-gradient(from 210deg,#4F46E5,#9333EA,#DB2777,#0E9FB8,#4F46E5);box-shadow:inset 0 0 0 1px #ffffff80,0 6px 16px -6px #6366f1b3}
.brand-name{font:600 .95rem/1 var(--f-display);letter-spacing:-.02em;white-space:nowrap}
.brand-tag{margin-left:8px;padding:4px 7px;border-radius:999px;font:600 .6rem/1 var(--f-display);letter-spacing:.12em;color:var(--link);background:var(--tint);vertical-align:2px}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none}
.nav-links a{position:relative;min-height:40px;padding:0 12px;border-radius:999px;color:var(--ink);font-size:.9rem;font-weight:500;text-decoration:none;transition:.25s}
.nav-links a:hover{background:#6366f114;color:var(--link)}
.nav-links a.is-active{color:var(--link);background:#6366f11a}
.nav-links a.is-active::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--secondary)}
.nav-cta{margin-left:6px;min-height:44px;padding:0 20px;font-size:.92rem}
.menu-btn{display:none;place-items:center;width:44px;height:44px;margin-left:6px;border:0;border-radius:50%;cursor:pointer;color:#fff;background:var(--indigo-btn);box-shadow:0 8px 20px -8px #4f46e5cc}
.menu-btn .ico{width:20px;height:20px}
.menu-btn .i-close,.menu-btn[aria-expanded="true"] .i-open{display:none}
.menu-btn[aria-expanded="true"] .i-close{display:block}
.nav-sheet{position:fixed;left:12px;right:12px;top:12px;z-index:-1;max-height:calc(100vh - 24px);overflow-y:auto;padding:92px 24px 28px;border-radius:28px;background:#ffffffe6;backdrop-filter:blur(18px) saturate(160%);border:1px solid #fff;box-shadow:0 0 0 1px var(--line),0 40px 80px -30px #4f46e573;pointer-events:auto;display:none}
.nav-sheet.is-open{display:block;animation:sheet-in .45s var(--ease) both}
@keyframes sheet-in{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:none}}
.nav-sheet ul{list-style:none;display:grid;gap:2px}
.nav-sheet li a{display:flex;align-items:baseline;gap:14px;min-height:52px;padding:10px 6px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font:500 clamp(1.3rem,1rem + 2vw,1.8rem)/1.2 var(--f-display);letter-spacing:-.02em}
.nav-sheet li a span{min-width:24px;font:600 .68rem/1 var(--f-display);letter-spacing:.14em;color:var(--link)}
.nav-sheet li a:hover{color:var(--link)}
.sheet-foot{margin-top:22px}
.sheet-mail{font-weight:600;overflow-wrap:anywhere}
html.menu-open{overflow:hidden}

/* 6. En-têtes de section : orbe, libellé Prospective 01 à 12, filet, orbites tracées */
.sh{position:relative;isolation:isolate;max-width:880px;margin-bottom:clamp(36px,4vw,60px)}
.sh--center{margin-inline:auto;text-align:center}
.sh--center .sh-meta{justify-content:center}
.sh--center .sh-title,.sh--center .sh-intro{margin-inline:auto}
.sh-meta{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.sh-icon{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff 0%,#ffffffbf 40%,#EEF0FFf2 100%);box-shadow:var(--ring),0 10px 24px -12px #6366f18c}
.sh-icon .ico{stroke:url(#g-iris);stroke-width:1.6}
.sh-label{font-size:var(--fs-label);letter-spacing:.22em;line-height:1;color:var(--link)}
.sh-rule{flex:0 0 56px;height:1px;background:linear-gradient(90deg,var(--primary),#ec489900)}
.sh-title{font-size:var(--fs-h2);max-width:22ch}
@media (min-width:760px){.nb{display:inline-block}}
.sh-title .soft{display:block;margin-top:.45em;font-size:.46em;font-weight:400;line-height:1.35;letter-spacing:0;color:var(--muted)}
.sh-intro{max-width:62ch;margin-top:22px;font-size:var(--fs-lead);line-height:1.6;color:var(--muted)}
.sh-orbit{position:absolute;z-index:-1;left:-60px;top:-46px;width:min(600px,100%);height:auto;overflow:visible;pointer-events:none}
.sh--center .sh-orbit{left:50%;translate:-50% 0}
.sh-orbit ellipse{fill:none;stroke:url(#g-orbit);stroke-width:1;stroke-dasharray:1;stroke-dashoffset:0;opacity:.7}
.sh-orbit ellipse+ellipse{opacity:.4}
.split-head{display:grid;grid-template-columns:var(--g12);gap:var(--gap);align-items:end;margin-bottom:clamp(36px,4vw,60px)}
.split-head .sh{grid-column:1/span 7;margin-bottom:0}
.split-head>p{grid-column:9/span 4;color:var(--muted)}

/* 7. Hero et interface de réponse illustrative */
.hero{position:relative;isolation:isolate;padding:clamp(128px,7rem + 5vw,196px) 0 var(--sec);text-align:center}
.hero-glow{position:absolute;inset:0;z-index:-1;pointer-events:none}
.hero-glow::before,.hero-glow::after{content:"";position:absolute;border-radius:50%;translate:calc(var(--px,0) * var(--k)) calc(var(--py,0) * var(--k));transition:translate .6s var(--ease)}
.hero-glow::before{--k:-38px;width:280px;height:280px;left:6%;top:150px;background:radial-gradient(circle at 35% 35%,#fffffff2,#6366f161 40%,#6366f100 70%);animation:float 14s ease-in-out infinite}
.hero-glow::after{--k:46px;width:220px;height:220px;right:7%;top:290px;background:radial-gradient(circle at 40% 35%,#fffffff2,#ec489957 42%,#22d3ee33 60%,#22d3ee00 72%);animation:float 17s -5s ease-in-out infinite}
.hero-pill{gap:10px;margin:0;padding:7px 16px 7px 8px;border-radius:999px;font-size:.86rem;font-weight:500;background:#ffffff99;backdrop-filter:blur(12px);border:1px solid #fffffff2;box-shadow:var(--ring),0 10px 30px -18px #6366f18c}
.pill-orb{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#ffffffd9,#fff0 50%),var(--iris);animation:iris-spin 8s linear infinite}
.hero h1{max-width:1080px;margin:28px auto 0}
.h1-kicker{gap:12px;margin-bottom:.75em;font-size:clamp(1rem,.86rem + .6vw,1.4rem);font-weight:500;letter-spacing:-.01em}
.h1-kicker::before,.h1-kicker::after{content:"";width:28px;height:1px;background:linear-gradient(90deg,#6366f100,#6366F1)}
.h1-kicker::after{background:linear-gradient(90deg,#EC4899,#ec489900)}
.h1-main{display:block;font-size:var(--fs-h1);font-weight:600;line-height:1.04;letter-spacing:-.035em}
.h1-main em{padding-right:.04em}
.hero-lead{max-width:760px;margin:30px auto 0;font-size:var(--fs-lead);line-height:1.6;color:var(--muted)}
.hero-lead strong{color:var(--ink)}
.hero-trio{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;max-width:820px;margin:22px auto 0;font-size:var(--fs-sm);color:var(--muted)}
.hero-trio>span:first-child{flex-basis:100%}
.hero-ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:36px}
.rise{animation:rise 1s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms)}
.answer{position:relative;max-width:960px;margin:clamp(52px,6vw,84px) auto 0;padding:clamp(18px,2.6vw,34px);text-align:left;background:#ffffff94;box-shadow:var(--ring),var(--shadow-lg)}
.answer::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,#6366f112,#ec48990a 40%,#22d3ee12)}
.answer-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding-bottom:16px;margin-bottom:22px;border-bottom:1px solid var(--line);font-size:.86rem;color:var(--muted)}
.answer-engine{gap:8px;font-weight:600;color:var(--ink)}
.answer-engine .ico{width:18px;height:18px}
.answer-tag{margin-left:auto;white-space:nowrap;padding:6px 11px;border-radius:999px;font-size:.64rem;line-height:1;letter-spacing:.14em;color:var(--link);background:var(--tint);box-shadow:inset 0 0 0 1px #6366f140}
.q-bubble{width:fit-content;max-width:min(540px,88%);margin:0 0 0 auto;padding:14px 20px;border-radius:22px 22px 6px 22px;font-weight:500;background:linear-gradient(135deg,#EEF0FF,#F8EEFB);box-shadow:inset 0 0 0 1px #DCDFFB,0 10px 24px -18px #6366f199}
.a-row{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:16px;margin-top:24px}
.a-row::before{content:"";position:absolute;left:20px;top:52px;bottom:21px;border-left:1.5px dotted #B9BCF5}
.a-avatar{width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffffff80,#fff0 50%),conic-gradient(from 200deg,#4F46E5,#9333EA,#DB2777,#0E9FB8,#4F46E5);box-shadow:0 8px 22px -8px #6366f1b3}
.a-avatar .ico{width:20px;height:20px;stroke:#fff}
.a-text{margin:6px 0 0;font-size:clamp(1rem,.96rem + .22vw,1.12rem);line-height:1.72;color:var(--text-soft)}
.a-text .w{transition:opacity .3s ease,filter .35s ease}
.answer.is-pending .a-text .w{opacity:0;filter:blur(4px)}
.answer .a-text .w.on{opacity:1;filter:none}
.caret{display:inline-block;width:2px;height:1.08em;margin-left:3px;vertical-align:-.17em;border-radius:2px;background:var(--primary);box-shadow:0 0 10px 2px #6366f1a6;animation:blink 1s steps(2,start) infinite}
@keyframes blink{to{visibility:hidden}}
.sources{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:22px}
.sources::before{content:"";position:absolute;left:-37px;top:50%;width:30px;border-top:1.5px dotted #B9BCF5}
.sources-label{font-size:.64rem;line-height:1;letter-spacing:.16em;color:var(--muted)}
.src-list{display:flex;flex-wrap:wrap;gap:14px;list-style:none}
.src-chip{position:relative;gap:8px;padding:7px 14px 7px 8px;border-radius:999px;font-size:.86rem;font-weight:500;background:#fff;box-shadow:0 0 0 1px var(--line),0 8px 20px -14px #0c0a1d66}
.src-chip .fav{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--f,#A5A8F5))}
.src-chip+.src-chip{--f:#8DE3F2}
.src-chip+.src-chip::before{content:"";position:absolute;right:100%;top:50%;width:14px;border-top:1.5px dotted #B9BCF5}
.src-chip.src-chip--you{--f:#F59BC8;color:var(--secondary-ink);background:#ffffffbf;box-shadow:0 10px 24px -16px #ec489999}
.src-chip--you::after{content:"";position:absolute;inset:0;border-radius:inherit;border:1.5px dashed #E0559B;mask:conic-gradient(from -90deg,#000 var(--t),transparent 0)}
.src-chip--you em{font-style:normal;font-weight:600}
.answer.is-pending .src-chip{opacity:0;transform:translateY(10px) scale(.9)}
.answer.is-pending .src-chip--you::after{--t:0deg}
.answer .src-chip.on{opacity:1;transform:none;animation:chip-in .7s var(--spring) both}
.answer .src-chip--you.on::after{animation:trace 1.3s .25s var(--ease) both}
@keyframes chip-in{from{opacity:0;transform:translateY(10px) scale(.86)}to{opacity:1;transform:none}}
@keyframes trace{from{--t:0deg}to{--t:360deg}}
.answer-note{display:flex;gap:8px;align-items:flex-start;max-width:600px;margin:20px 0 0;font-size:var(--fs-xs);line-height:1.5;color:var(--muted)}
.answer-note .ico{width:16px;height:16px;margin-top:1px}
.answer-orb{position:absolute;z-index:2;right:-64px;bottom:-64px;width:232px;aspect-ratio:1;margin:0;border-radius:50%;overflow:hidden;box-shadow:0 0 0 6px #ffffffb3,0 0 0 7px var(--line),0 30px 60px -24px #4f46e58c;translate:calc(var(--px,0) * 18px) calc(var(--py,0) * 18px);transition:translate .6s var(--ease)}
.answer-orb img{width:100%;height:100%;object-fit:cover}
.answer-orb::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 30% 22%,#ffffffb3,#fff0 38%)}

/* 8. Praticien : photo dans une carte de verre à bordure irisée tournante */
.prat{display:grid;grid-template-columns:var(--g12);gap:var(--gap);align-items:start}
.prat-media{position:sticky;top:112px;isolation:isolate;grid-column:1/span 5}
.prat-media::before,.prat-media::after{content:"";position:absolute;z-index:-1;aspect-ratio:1;border-radius:50%}
.prat-media::before{width:70%;left:-12%;bottom:-10%;background:radial-gradient(circle at 40% 40%,#ec489980,#22d3ee57 50%,#22d3ee00 70%);animation:float 16s ease-in-out infinite}
.prat-media::after{width:38%;right:-6%;top:-6%;background:radial-gradient(circle at 40% 40%,#6366f173,#6366f100 70%)}
.photo-card{margin:0;padding:12px;border-radius:28px}
.photo-card::before{inset:-2px;padding:2px;animation:iris-spin 16s linear infinite}
.photo-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px}
.photo-caption{position:relative;z-index:2;width:fit-content;max-width:92%;margin:-24px auto 0;padding:10px 18px;border-radius:999px;font-size:.84rem;font-weight:500;line-height:1.35;text-align:center;background:#ffffffd6;backdrop-filter:blur(12px);box-shadow:0 0 0 1px var(--line),0 12px 28px -16px #6366f18c}
.prat-body{grid-column:7/span 6}
.prat-text p{color:var(--text-soft)}
.prat-text p:first-child{font-size:1.08em;color:var(--ink)}
.sig-quote{position:relative;margin:34px 0;padding:26px 28px 24px 74px;border-radius:20px;background:linear-gradient(120deg,#EEF0FFe6,#FDECF6bf);box-shadow:inset 0 0 0 1px #ffffffe6,0 0 0 1px var(--line)}
.sig-quote svg{position:absolute;left:24px;top:24px;width:32px;height:32px}
.sig-quote p{margin:0;font:500 clamp(1.08rem,1rem + .4vw,1.3rem)/1.4 var(--f-display);letter-spacing:-.02em;color:var(--ink)}
.sig-quote footer,.values-quote footer{margin-top:12px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;color:var(--link)}
.facts{display:grid;grid-template-columns:var(--g2);gap:12px;list-style:none;margin-top:30px}
.facts li{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-in);background:#ffffffa8;box-shadow:var(--ring);font-size:.9rem;line-height:1.3;color:var(--muted)}
.facts li strong{display:block;font:600 .92rem/1.25 var(--f-display);letter-spacing:-.01em;color:var(--ink)}
.facts .ico{color:var(--link)}
.prat-links{margin-top:26px}

/* 9. Fabrique d'une réponse : orbite à cinq étapes (onglets ARIA, liste lisible sans JS) */
.fab{display:grid;grid-template-columns:var(--g12);gap:var(--gap);align-items:center}
.fab-orbit{display:none;position:relative;grid-column:1/span 6;width:100%;max-width:500px;aspect-ratio:1;margin-inline:auto}
.js .fab-orbit{display:block}
.fab-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.fab-ring circle{fill:none}
.fab-ring .r1{stroke:#D9DCF7;stroke-width:.35;stroke-dasharray:1 1.4}
.fab-ring .r2{stroke:#E7E8F7;stroke-width:.3}
.fab-ring .r3{stroke:url(#g-iris);stroke-width:.9;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--prog,0));transition:stroke-dashoffset 1s var(--ease)}
.fab-core{position:absolute;inset:26%;display:grid;place-content:center;gap:6px;padding:12px;border-radius:50%;text-align:center;background:radial-gradient(circle at 35% 28%,#fffffffa,#ffffffb3 45%,#EEF0FFcc 100%);box-shadow:var(--ring),inset -14px -18px 40px #6366f11f,0 30px 60px -30px #6366f18c}
.fab-core-k{font-size:var(--fs-label);line-height:1;letter-spacing:.2em;color:var(--muted)}
.fab-core-n{font:600 clamp(2.2rem,1.4rem + 2.6vw,3.4rem)/1 var(--f-display);letter-spacing:-.04em}
.fab-core-t{font-size:.95rem;font-weight:600}
.fab-node{position:absolute;left:var(--x);top:var(--y);z-index:2;width:64px;height:64px;padding:0;border:0;border-radius:50%;cursor:pointer;transform:translate(-50%,-50%) scale(.92);font:600 1rem/1 var(--f-display);color:#8C89A3;background:#ffffffcc;box-shadow:var(--ring),0 10px 26px -16px #0c0a1d59;transition:.5s var(--spring);transition-delay:var(--d,0ms)}
.fab-node .lbl{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);white-space:nowrap;font:500 .82rem/1.2 var(--f-body);color:var(--muted)}
.fab-node.is-lit{color:var(--link);transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 1px #6366f173,0 0 0 7px #6366f114,inset 0 1px 0 #fff,0 14px 30px -12px #6366f199}
.fab-node:hover{color:var(--link)}
.fab-node[aria-selected="true"]{color:#fff;transform:translate(-50%,-50%) scale(1.1);background:var(--indigo-btn);box-shadow:0 0 0 5px #ffffffe6,0 0 0 6px #6366f180,0 0 34px 6px #ec489940,0 16px 34px -10px #4f46e5cc}
.fab-node[aria-selected="true"] .lbl{color:var(--ink);font-weight:600}
.fab-node:focus-visible{outline-offset:4px}
.fab-panels{grid-column:1/-1;min-width:0}
.js .fab-panels{grid-column:7/span 6}
.fab-steps{list-style:none;display:grid;grid-template-columns:var(--g2);gap:16px}
.js .fab-steps{display:block}
.fab-step{padding:clamp(22px,2.6vw,34px)}
.js .fab-step{animation:panel-in .55s var(--ease) both}
.fab-step-k{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:var(--fs-label);line-height:1;letter-spacing:.2em;color:var(--link)}
.fab-step-k::after{content:"";flex:1;max-width:80px;height:1px;background:linear-gradient(90deg,var(--primary),#ec489900)}
.fab-step h3{font-size:clamp(1.3rem,1.05rem + 1vw,1.9rem);margin-bottom:14px}
.fab-step>p{color:var(--text-soft)}
.fab-stake{display:grid;gap:10px;margin-top:22px;padding:18px 20px;border-radius:var(--r-in);background:linear-gradient(120deg,#EEF0FFd9,#DDF7FC99);box-shadow:inset 0 0 0 1px #ffffffe6,0 0 0 1px var(--line)}
.fab-stake p{margin:0;font-weight:500;color:var(--ink)}
.fab-stake .badge{justify-self:start}
.fab-note{display:flex;gap:12px;align-items:flex-start;max-width:820px;margin:clamp(32px,4vw,52px) auto 0;padding:16px 20px;border-radius:var(--r-in);font-size:var(--fs-sm);color:var(--muted);background:#ffffff99;box-shadow:var(--hair)}
.fab-note .ico,.ks-foot .ico{color:var(--link);margin-top:1px}

/* 10. Leviers : bento asymétrique de cartes de verre */
.bento{display:grid;grid-template-columns:var(--g12);gap:var(--gap)}
.lever{display:flex;flex-direction:column;padding:clamp(22px,2.4vw,32px);transition:.5s var(--ease)}
.lever:hover,.post-card:hover{transform:translateY(-4px);box-shadow:var(--ring),var(--lift)}
.lever--1{grid-column:1/span 7;grid-row:1/span 2}
.lever--2{grid-column:8/span 5;grid-row:1}
.lever--3{grid-column:8/span 5;grid-row:2}
.lever--4{grid-column:1/span 5;grid-row:3}
.lever--5{grid-column:1/span 5;grid-row:4}
.lever--6{grid-column:6/span 7;grid-row:3/span 2}
.lever-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.lever-ico{width:48px;height:48px;border-radius:16px;color:var(--link);background:linear-gradient(140deg,#fff,#EEF0FF);box-shadow:var(--ring),0 10px 22px -14px #6366f199}
.lever-n{font:600 .74rem/1 var(--f-display);letter-spacing:.14em;color:#8E8BA6}
.lever h3{font-size:var(--fs-h3);margin-bottom:12px}
.lever--1 h3,.lever--6 h3{font-size:clamp(1.25rem,1.05rem + .8vw,1.7rem)}
.lever>p{color:var(--text-soft);font-size:.98rem}
.lever .sparkles{margin-top:6px;font-size:.94rem;color:var(--text-soft)}
.lever-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;margin-top:auto;padding-top:22px}
.lever-foot .link-arrow{font-size:.9rem}
.lever--1 .demo,.lever--6 .demo{flex:1;display:flex;flex-direction:column}
.lever--6 .demo svg{flex:1;min-height:92px}
.demo-k--foot{margin:auto 0 0;padding-top:18px}
.demo{margin:22px 0 6px;padding:16px;border-radius:18px;background:#F5F7FFd9;box-shadow:inset 0 0 0 1px #ffffffe6,0 0 0 1px var(--line)}
.demo-k{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px;font-size:.62rem;letter-spacing:.16em;color:var(--muted)}
.demo-q{list-style:none;display:grid;gap:8px}
.demo-q li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 14px;border-radius:14px;font-size:.88rem;line-height:1.35;background:#fff;box-shadow:var(--hair)}
.demo-q li span{flex:none;padding:4px 9px;border-radius:999px;font-size:.7rem;font-weight:600;color:var(--link);background:var(--tint)}
.demo-trend svg{width:100%;height:92px;overflow:visible}
.demo-trend .grid-l{stroke:#E3E5F5;stroke-width:1;stroke-dasharray:3 5}
.demo-trend .line{fill:none;stroke:url(#g-iris);stroke-width:2.2;stroke-linecap:round}
.demo-trend .area{fill:url(#g-area)}
.demo-ind{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.demo-ind li{gap:8px;padding:6px 12px;border-radius:999px;font-size:.8rem;font-weight:500;background:#fff;box-shadow:var(--hair)}
.demo-ind li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}

/* 11. Ce que l'on sait, ce que l'on suppose : deux colonnes et un prisme */
.ks{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);align-items:start}
.ks-col-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px}
.ks-col-head h3{font-size:clamp(1.25rem,1.05rem + .8vw,1.7rem)}
.ks-sub{margin:0 0 22px;font-size:var(--fs-sm);color:var(--muted)}
.ks-list{list-style:none;display:grid;gap:14px}
.ks-item{padding:22px 24px;border-radius:20px}
.ks-item h4{display:flex;gap:12px;align-items:flex-start;font-size:1.04rem;margin-bottom:8px}
.ks-item h4 .ico{width:20px;height:20px;margin-top:1px;color:var(--known-ink)}
.ks-col--test .ks-item h4 .ico{color:var(--test-ink)}
.ks-item p{margin:0;padding-left:32px;font-size:.95rem;color:var(--text-soft)}
.ks-item .proto{margin-top:10px;font-size:.88rem;color:var(--muted)}
.ks-item .proto strong{color:var(--test-ink);font-weight:600}
.ks-col--known .ks-item{background:linear-gradient(160deg,#ffffffc7,#DDF7FC80)}
.ks-col--test .ks-item{background:linear-gradient(160deg,#ffffffc7,#FDE6F180)}
.ks-divider{position:relative;align-self:stretch;display:flex;justify-content:center}
.ks-divider::before{content:"";position:absolute;top:64px;bottom:0;left:50%;width:1px;background:linear-gradient(180deg,#22D3EE,#A5A8F5 50%,#EC4899 100%);opacity:.6}
.ks-prism{position:sticky;top:140px;width:52px;height:52px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px var(--line),0 0 0 8px #ffffff99,0 14px 30px -14px #6366f199}
.ks-foot{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:34px;font-size:var(--fs-sm);color:var(--muted);text-align:center}

/* 12. Robots IA : bandeau, tableau de verre (cartes sur mobile), encadré, robots.txt */
.robots-banner{position:relative;margin:0;border-radius:var(--r-card);overflow:hidden;aspect-ratio:1536/560;box-shadow:0 0 0 1px var(--line),var(--shadow-lg)}
.robots-banner img{width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.robots-banner figcaption{position:absolute;left:clamp(14px,2.4vw,28px);top:clamp(14px,2.4vw,28px);max-width:380px;padding:12px 16px;border-radius:var(--r-in);font-size:.9rem;font-weight:500;line-height:1.4;background:#ffffffc7;backdrop-filter:blur(12px);box-shadow:0 0 0 1px #ffffffe6,0 12px 30px -18px #0c0a1d66}
.table-glass{position:relative;z-index:2;backdrop-filter:blur(var(--blur)) saturate(150%);margin:-72px clamp(0px,2.6vw,32px) 0;padding:8px}
.rtable{width:100%;border-collapse:separate;border-spacing:0;font-size:.94rem;line-height:1.5}
.rtable caption,.prose caption{padding:14px 16px 10px;text-align:left;font-size:var(--fs-xs);color:var(--muted)}
.rtable th{padding:14px 16px;text-align:left;vertical-align:bottom;font-size:.64rem;letter-spacing:.14em;color:var(--muted);border-bottom:1px solid var(--line)}
.rtable td{padding:16px;vertical-align:top;border-bottom:1px solid var(--line);color:var(--text-soft)}
.rtable tbody tr:last-child td{border-bottom:0}
.rtable tbody tr{transition:background-color .25s}
.rtable tbody tr:hover{background:#6366f10b}
.rtable td:first-child{width:19%}
.rtable td:nth-child(2){width:12%}
.bot{gap:9px;font:600 .88rem/1.3 var(--f-mono);color:var(--ink)}
.bot::before{content:"";width:8px;height:8px;flex:none;border-radius:50%;background:var(--c,#6366F1);box-shadow:0 0 0 3px #6366f11f}
.bot--search{--c:#22D3EE}
.bot--train{--c:#EC4899}
.role-tag{display:inline-block;margin-bottom:6px;padding:3px 9px;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.02em;color:var(--link);background:var(--tint)}
.role-tag--search{color:var(--known-ink);background:var(--known-bg)}
.role-tag--train{color:var(--test-ink);background:var(--test-bg)}
.rtable .eff{display:block;font-weight:500;color:var(--ink)}
.rtable .eff--warn{color:var(--test-ink)}
.robots-note{margin:8px 0 0;text-align:center;font-size:var(--fs-xs);color:var(--muted)}
.robots-grid{display:grid;grid-template-columns:var(--g12);gap:var(--gap);margin-top:clamp(32px,4vw,56px);align-items:start}
.decide{grid-column:1/span 6;padding:clamp(24px,3vw,36px)}
.decide h3{font-size:var(--fs-h3);margin-bottom:20px}
.decide ol{list-style:none;display:grid;gap:18px;counter-reset:d}
.decide li{position:relative;padding-left:48px;color:var(--text-soft)}
.decide li::before{counter-increment:d;content:counter(d);position:absolute;left:0;top:-2px;width:32px;height:32px;font-size:.8rem}
.decide li strong{display:block;color:var(--ink);margin-bottom:2px}
.code-card{grid-column:7/span 6;margin:0;overflow:hidden}
.code-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line);font-size:.7rem;line-height:1;letter-spacing:.14em;color:var(--muted)}
.code-card pre,.prose pre{margin:0;padding:18px 22px 22px;font:400 .86rem/1.7 var(--f-mono);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;background:#F5F7FF99}
.code-card pre code,.prose pre code{padding:0;background:none;color:inherit;font-size:inherit}
.code-card .c{color:#6E6B85}
.code-card .k{color:var(--link);font-weight:600}
.code-card .v{color:var(--secondary-ink)}
.code-card figcaption{padding:14px 20px;font-size:var(--fs-xs);color:var(--muted);border-top:1px solid var(--line)}

/* 13. Méthode : cinq étapes posées sur une orbite elliptique */
.arc-wrap{position:relative}
.arc{position:absolute;left:0;top:0;width:100%;height:240px;overflow:visible;pointer-events:none}
.arc path{fill:none}
.arc .a1{stroke:url(#g-arc);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.arc .a2{stroke:#DCDFF6;stroke-width:1;stroke-dasharray:2 6}
.steps5{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none}
.step5{padding:0 12px;text-align:center}
.step5:nth-child(1),.step5:nth-child(5){margin-top:120px}
.step5:nth-child(2),.step5:nth-child(4){margin-top:30px}
.orbn{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;font:600 1rem/1 var(--f-display);color:#fff;background:radial-gradient(circle at 32% 26%,#ffffff8c,#fff0 45%),linear-gradient(135deg,var(--o1,#5B5FEF),var(--o2,#4338CA));box-shadow:0 0 0 6px #ffffffd9,0 0 0 7px var(--line),0 16px 30px -12px #4f46e5b3}
.step5:nth-child(2) .orbn{--o1:#6D5DF0;--o2:#6D28D9}
.step5:nth-child(3) .orbn{--o1:#9333EA;--o2:#7E22CE}
.step5:nth-child(4) .orbn{--o1:#C026D3;--o2:#A21CAF}
.step5:nth-child(5) .orbn{--o1:#DB2777;--o2:#BE185D}
.step5-card{padding:20px 18px;border-radius:20px}
.step5 h3{font-size:1.02rem;margin-bottom:10px}
.step5 h3 .ico{display:inline-block;width:18px;height:18px;margin:0 6px -3px 0;color:var(--link)}
.step5 p{margin:0;font-size:.9rem;line-height:1.55;color:var(--muted)}
.values{display:grid;grid-template-columns:var(--g12);gap:var(--gap);margin-top:clamp(40px,5vw,72px);padding:clamp(24px,3.4vw,44px)}
.values-main{grid-column:1/span 7}
.values-main h3{font-size:var(--fs-h3);margin-bottom:20px}
.values-main .sparkles{grid-template-columns:var(--g2);gap:12px 28px;font-size:.96rem;color:var(--text-soft)}
.values-quote{grid-column:9/span 4;align-self:center;margin:0;padding-left:28px;border-left:1px solid var(--line)}
.values-quote p{margin:0;font:500 1.12rem/1.45 var(--f-display);letter-spacing:-.02em}

/* 14. Trajectoire : frise en arc lumineux, cartes en quinconce */
.tl{position:relative;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:auto 120px auto}
.tl-arc{grid-column:1/-1;grid-row:2;position:relative;pointer-events:none}
.tl-arc svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.tl-arc .glow,.footer-arc .glow{fill:none;stroke:url(#g-arc);stroke-width:10;opacity:.18;filter:blur(4px)}
.tl-arc .line,.footer-arc .line{fill:none;stroke:url(#g-arc);stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.tl-item{position:relative;padding:0 12px}
.tl-item:nth-child(odd){grid-row:1;align-self:end}
.tl-item:nth-child(even){grid-row:3;align-self:start}
.tl-item:nth-child(1){grid-column:1/span 2}
.tl-item:nth-child(2){grid-column:2/span 2}
.tl-item:nth-child(3){grid-column:3/span 2}
.tl-item:nth-child(4){grid-column:4/span 2}
.tl-item:nth-child(5){grid-column:5/span 2}
.tl-item:nth-child(6){grid-column:6/span 2}
.tl-item:nth-child(7){grid-column:7/span 2}
.tl-card{padding:18px 20px;border-radius:20px}
.tl-when{display:block;margin-bottom:8px;font:600 1.25rem/1.1 var(--f-display);letter-spacing:-.03em}
.tl-when--word{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;line-height:1.6}
.tl-card h3{font:650 1rem/1.3 var(--f-body);letter-spacing:0;margin-bottom:6px}
.tl-card p{margin:0;font-size:.89rem;line-height:1.5;color:var(--muted)}
.tl-dot{position:absolute;left:var(--x);top:var(--y);width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--c,#6366F1),0 0 0 9px #6366f11f,0 0 18px 4px #ec489940}
.tl-dot::before{content:"";position:absolute;left:7px;border-left:1.5px dotted #B9BCF5}
.tl-dot.up::before{bottom:19px;height:calc(var(--y) - 11px)}
.tl-dot.down::before{top:19px;height:calc(120px - var(--y) - 11px)}

/* 15. Orbes chiffrées */
.orbs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--gap);list-style:none}
.orb-stat{text-align:center}
.orb{--c:99,102,241;width:min(100%,176px);aspect-ratio:1;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 30% 24%,#fffffffa 0 10%,#ffffff80 26%,#fff0 52%),radial-gradient(circle at 72% 80%,rgba(var(--c),.34),rgba(var(--c),0) 62%),#ffffff80;box-shadow:inset 0 0 0 1px #fffffff2,0 0 0 1px var(--line),inset -12px -16px 34px rgba(var(--c),.16),0 26px 50px -28px rgba(var(--c),.75);animation:bob 7s ease-in-out infinite;animation-delay:calc(var(--i,0) * -1.15s)}
.orb-stat:nth-child(3n+2) .orb{--c:236,72,153}
.orb-stat:nth-child(3n) .orb{--c:34,211,238}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.orb-num{font:600 clamp(1.25rem,.8rem + 1vw,1.75rem)/1 var(--f-display);letter-spacing:-.04em;white-space:nowrap}
.orb-num sup{font-size:.5em;vertical-align:.9em;margin-left:.04em}
.orb-cap{max-width:22ch;margin:18px auto 0;font-size:.88rem;line-height:1.45;color:var(--muted)}

/* 16. Témoignages : une grande carte et deux cartes empilées */
.testi{display:grid;grid-template-columns:var(--g12);gap:var(--gap)}
.t-card{display:flex;flex-direction:column;margin:0;padding:clamp(24px,2.6vw,34px)}
.t-card--feat{grid-column:1/span 7;grid-row:1/span 2;justify-content:center;padding:clamp(28px,3.6vw,52px)}
.t-card.t-card--feat figcaption{margin-top:0}
.t-card:nth-child(2){grid-column:8/span 5;grid-row:1}
.t-card:nth-child(3){grid-column:8/span 5;grid-row:2}
.t-mark{width:40px;height:40px;margin-bottom:18px}
.t-card--feat .t-mark{width:56px;height:56px}
.t-card blockquote{margin:0}
.t-card blockquote p{margin:0;color:var(--text-soft);font-size:.98rem;line-height:1.68}
.t-card--feat blockquote p{font-size:clamp(1.05rem,.98rem + .38vw,1.26rem);line-height:1.64;color:var(--ink)}
.t-card figcaption{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:24px}
.t-ini{flex:none;width:46px;height:46px;font-size:.8rem}
.t-name{display:block;font-weight:650}
.t-role{display:block;font-size:.88rem;line-height:1.4;color:var(--muted)}
.testi-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin-top:28px;padding:16px 22px;border-radius:999px;background:#ffffff99;box-shadow:var(--hair);font-size:var(--fs-sm);color:var(--muted)}
.testi-foot strong{color:var(--ink)}
.testi-foot a{gap:8px;font-weight:600;text-decoration:none}
.testi-foot .ico{width:18px;height:18px}

/* 17. Cartes magazine (accueil, index de la rubrique, articles liés) */
.posts{display:grid;grid-template-columns:var(--g12);gap:var(--gap)}
.post-card{position:relative;grid-column:span 6;display:flex;flex-direction:column;padding:10px;transition:.5s var(--ease)}
.post-card--wide{grid-column:1/-1;display:grid;grid-template-columns:var(--g12);gap:var(--gap);align-items:center}
.post-card--wide .post-media{grid-column:1/span 7;aspect-ratio:16/10}
.post-card--wide .post-body{grid-column:8/span 5;padding:18px 22px 18px 0}
.post-card--wide .post-title{font-size:clamp(1.3rem,1.05rem + 1vw,2rem)}
.post-media{margin:0;aspect-ratio:3/2;border-radius:18px;overflow:hidden;background:var(--surface)}
.post-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.post-card:hover .post-media img{transform:scale(1.045)}
.post-body{display:flex;flex-direction:column;flex:1;padding:20px 16px 14px}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0;font-size:var(--fs-xs);color:var(--muted)}
.post-meta .sep,.article-meta .sep{width:4px;height:4px;border-radius:50%;background:#C3C1D3}
.post-title{margin:14px 0 10px;font-size:clamp(1.1rem,.98rem + .5vw,1.4rem);line-height:1.2}
.post-title a{color:var(--ink);text-decoration:none}
.post-title a::after{content:"";position:absolute;inset:0;z-index:2;border-radius:var(--r-card)}
.post-title a:focus-visible{outline:0;box-shadow:none}
.post-title a:focus-visible::after{outline:2px solid var(--primary-strong);outline-offset:2px}
.post-excerpt{margin:0;font-size:.96rem;color:var(--muted)}
.post-more{gap:8px;margin-top:auto;padding-top:16px;font-weight:600;font-size:.92rem;color:var(--link)}
.post-more .ico{width:18px;height:18px;transition:transform .3s var(--ease)}
.post-card:hover .post-more .ico{transform:translateX(4px)}
.posts-foot{display:flex;justify-content:center;margin-top:clamp(28px,3vw,44px)}
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.post-grid .post-card{grid-column:auto}

/* 18. FAQ : accordéon natif dans des cartes de verre */
.faq-wrap{display:grid;grid-template-columns:var(--g12);gap:var(--gap);align-items:start}
.faq-side{position:sticky;top:112px;grid-column:1/span 4}
.faq-side .sh{margin-bottom:26px}
.faq-side .sh-title{font-size:clamp(1.7rem,1.12rem + 1.9vw,2.6rem)}
.faq-ask{padding:22px;border-radius:20px}
.faq-ask p{margin:0 0 10px;font-size:var(--fs-sm);color:var(--muted)}
.faq-ask a{font-weight:600;overflow-wrap:anywhere}
.faq-list{grid-column:6/span 7;display:grid;gap:12px}
.faq-item{border-radius:20px;transition:.4s var(--ease)}
.faq-item[open]{background:#ffffffcc;box-shadow:0 0 0 1px #D6D9F7,inset 0 1px 0 #fff,0 26px 60px -34px #6366f180}
.faq-item summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;min-height:64px;padding:18px 20px;cursor:pointer;list-style:none;border-radius:20px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-n{font:600 .72rem/1 var(--f-display);letter-spacing:.1em;color:var(--link)}
.faq-q{font:600 1.02rem/1.38 var(--f-body);letter-spacing:0}
.faq-ic{position:relative;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#EEF0FF);box-shadow:var(--hair);transition:transform .45s var(--spring)}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.6px;margin:-.8px 0 0 -6px;border-radius:2px;background:var(--link)}
.faq-ic::after{transform:rotate(90deg);transition:transform .35s var(--ease)}
.faq-item[open] .faq-ic{transform:rotate(180deg);background:linear-gradient(135deg,#EEF0FF,#FDE6F1)}
.faq-item[open] .faq-ic::after{transform:rotate(0deg)}
.faq-item summary:hover .faq-q{color:var(--link)}
.faq-a{padding:0 24px 22px 58px;color:var(--text-soft);font-size:.98rem}
.faq-item[open] .faq-a{animation:panel-in .45s var(--ease) both}

/* 19. Contact : grande carte de verre sur une orbe lumineuse */
.contact{position:relative;isolation:isolate;text-align:center}
.contact-orb{position:absolute;z-index:-1;left:50%;top:50%;width:min(760px,92%);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 42% 38%,#ffffffe6 0 8%,#ec48994d 26%,#6366f14d 44%,#22d3ee33 58%,#fff0 70%);animation:breathe 12s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.06)}}
.contact-card{max-width:920px;margin-inline:auto;padding:clamp(28px,5vw,64px);background:#ffffffa8}
.contact-card .sh{margin-bottom:28px}
.contact-mail{display:inline-block;max-width:100%;padding-bottom:8px;font:600 clamp(1.02rem,.5rem + 2.7vw,2.8rem)/1.15 var(--f-display);letter-spacing:-.035em;color:var(--ink);text-decoration:none;overflow-wrap:anywhere;background:var(--iris-text) left bottom/100% 2px no-repeat;transition:.5s var(--ease)}
.contact-mail:hover{color:var(--link);background-size:100% 4px}
.contact-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}
.copy-status{display:block;min-height:1.4em;margin-top:10px;font-size:var(--fs-xs);font-weight:600;color:var(--known-ink)}
.first-msg{margin-top:30px;text-align:left}
.first-msg h3{font-size:1.05rem;text-align:center;margin-bottom:18px}
.first-msg ol{list-style:none;display:grid;grid-template-columns:var(--g2);gap:12px;counter-reset:fm}
.first-msg li{position:relative;padding:16px 18px 16px 60px;border-radius:var(--r-in);font-size:.93rem;line-height:1.45;color:var(--muted);background:#ffffffb3;box-shadow:var(--ring)}
.first-msg li::before{counter-increment:fm;content:counter(fm,decimal-leading-zero);position:absolute;left:16px;top:16px;width:30px;height:30px;font-size:.68rem}
.first-msg li strong{display:block;color:var(--ink)}
.contact-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;margin:28px 0 0;font-size:var(--fs-sm);color:var(--muted)}
.contact-meta span{gap:8px}
.contact-meta .ico{width:18px;height:18px;color:var(--link)}

/* 20. Pied de page : arc lumineux, orbe miniature, liens du réseau */
.site-footer{position:relative;isolation:isolate;padding:clamp(84px,7vw,112px) 0 36px;background:linear-gradient(180deg,#F5F7FF00 0%,#F5F7FFd9 34%,#F5F7FF 100%)}
.footer-arc{position:absolute;left:0;right:0;top:0;width:100%;height:120px;overflow:visible;pointer-events:none}
.footer-arc .glow{stroke-width:12;opacity:.16;filter:blur(5px)}
.footer-arc .line{stroke-width:1.6}
.footer-orb{position:absolute;left:62%;top:34px;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0 18%,#F9A8D4 40%,#8B5CF6 75%,#6366F1);box-shadow:0 0 0 6px #ec48991f,0 0 26px 8px #6366f159;animation:pulse 4s ease-in-out infinite}
.footer-grid{display:grid;grid-template-columns:var(--g12);gap:32px var(--gap)}
.f-brand{grid-column:1/span 4}
.f-brand .brand{padding-left:0}
.f-brand p{margin-top:16px;font-size:var(--fs-sm);color:var(--muted);max-width:40ch}
.f-col{grid-column:span 2}
.f-col--wide{grid-column:span 3}
.f-title{margin:6px 0 14px;font-size:var(--fs-label);letter-spacing:.18em;color:var(--link)}
.f-list{list-style:none;display:grid;gap:4px}
.f-list a{min-height:32px;font-size:.92rem;color:var(--ink);text-decoration:none}
.f-list a:hover{color:var(--link);text-decoration:underline}
.f-mail{font-weight:600;overflow-wrap:anywhere}
.f-small{margin-top:8px;font-size:var(--fs-xs);color:var(--muted)}
.f-network{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:44px;padding:18px 22px;border-radius:22px;background:#ffffffb3;box-shadow:var(--ring)}
.f-network .f-title{margin:0}
.network-links{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.network-links li{margin:0}
.network-links a{gap:8px;min-height:40px;padding:0 16px;border-radius:999px;font-size:.88rem;font-weight:500;color:var(--ink);text-decoration:none;background:#fff;box-shadow:var(--hair);transition:.3s var(--ease)}
.network-links a::before{content:"";width:7px;height:7px;border-radius:50%;background:conic-gradient(#6366F1,#EC4899,#22D3EE,#6366F1)}
.network-links a:hover{color:var(--link);transform:translateY(-1px);box-shadow:0 0 0 1px #C9CCF6,0 10px 22px -14px #6366f199}
.f-legal{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 32px;align-items:end;margin-top:28px;padding-top:22px;border-top:1px solid var(--line);font-size:var(--fs-xs);line-height:1.6;color:var(--muted)}
.f-legal p{margin:0}
.f-copy{font-weight:600;color:var(--ink);white-space:nowrap}

/* 21. Magazine et articles */
.reading-progress{position:fixed;left:0;top:0;z-index:90;width:100%;height:3px;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#6366F1,#EC4899,#22D3EE);box-shadow:0 0 12px #6366f199;pointer-events:none}
.page-top{padding-top:clamp(118px,6.5rem + 4vw,168px)}
.breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;list-style:none;font-size:var(--fs-xs);color:var(--muted)}
.breadcrumb li{position:relative;display:inline-flex;align-items:center}
.breadcrumb li+li{padding-left:19px}
.breadcrumb li+li::before{top:50%;width:9px;height:9px;margin-top:-4.5px}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--link);text-decoration:underline}
.breadcrumb [aria-current="page"]{color:var(--ink);font-weight:600}
.mag-hero{position:relative;isolation:isolate;padding-bottom:clamp(32px,4vw,56px)}
.mag-hero h1,.article-title{margin-top:22px;font-size:clamp(2.1rem,1.1rem + 3.6vw,4.2rem);font-weight:600;line-height:1.06;letter-spacing:-.035em}
.mag-hero h1{max-width:18ch}
.mag-intro{display:grid;grid-template-columns:var(--g12);gap:var(--gap);margin-top:32px}
.mag-intro-text{grid-column:1/span 7;color:var(--text-soft)}
.mag-intro-text p:first-child{font-size:var(--fs-lead);color:var(--ink)}
.mag-intro-aside{grid-column:9/span 4;align-self:start;padding:24px}
.mag-intro-aside h2{font-size:1rem;margin-bottom:14px}
.mag-intro-aside p{font-size:var(--fs-sm);color:var(--muted)}
.article-head{max-width:900px}
.article-cat{margin-top:26px}
.article-title{font-size:clamp(1.9rem,1.05rem + 3vw,3.5rem);letter-spacing:-.03em}
.article-lead{max-width:64ch;margin-top:24px;font-size:var(--fs-lead);line-height:1.6;color:var(--muted)}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:28px;font-size:var(--fs-sm);color:var(--muted)}
.article-meta .author-mini{gap:10px;font-weight:600;color:var(--ink);text-decoration:none}
.article-meta .author-mini img,.approach-head img{width:44px;height:44px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px #fff,0 0 0 3px var(--line)}
.article-cover{margin:clamp(32px,4vw,52px) 0 0;padding:10px;border-radius:28px}
.article-cover img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:20px}
.article-cover figcaption{padding:12px 10px 4px;font-size:var(--fs-xs);color:var(--muted)}
.article-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(32px,4.4vw,72px);align-items:start;margin-top:clamp(40px,5vw,72px)}
.toc{position:sticky;top:104px;max-height:calc(100vh - 128px);overflow-y:auto;padding:20px 14px 16px;border-radius:22px}
.toc-title{margin:0 0 12px 10px;font-size:var(--fs-label);letter-spacing:.18em;color:var(--link)}
.toc ol{list-style:none;display:grid;gap:2px;counter-reset:toc}
.toc a{position:relative;display:block;padding:8px 10px 8px 38px;border-radius:12px;font-size:.88rem;line-height:1.35;color:var(--muted);text-decoration:none;transition:.25s}
.toc a::before{counter-increment:toc;content:counter(toc,decimal-leading-zero);position:absolute;left:10px;top:9px;font:600 .64rem/1.4 var(--f-display);color:#8C89A3}
.toc a:hover{color:var(--ink);background:#6366f10f}
.toc a.is-current{color:var(--ink);font-weight:600;background:var(--tint)}
.toc a.is-current::before{color:var(--link)}
.prose{min-width:0;max-width:740px;font-size:clamp(1.03rem,1rem + .16vw,1.12rem);line-height:1.78;color:var(--text-soft)}
.prose>*+*{margin-top:1.15em}
.prose p{margin-bottom:0}
.nw{white-space:nowrap}
.prose>p:first-child{font-size:1.08em;color:var(--ink)}
.prose h2{margin-top:2.3em;font-size:clamp(1.42rem,1.12rem + 1.15vw,2.05rem);line-height:1.14;color:var(--ink);scroll-margin-top:112px}
.prose h3{margin-top:1.8em;font-size:clamp(1.1rem,1rem + .45vw,1.32rem);line-height:1.25;color:var(--ink);scroll-margin-top:112px}
.prose h2+*,.prose h3+*{margin-top:.8em}
.prose a{font-weight:500}
.prose ul{list-style:none;display:grid;gap:.5em}
.prose ul li{padding-left:28px}
.prose ul li::before{left:2px;top:.5em}
.prose ol{list-style:none;display:grid;gap:.7em;counter-reset:pol}
.prose ol li{position:relative;padding-left:42px}
.prose ol li::before{counter-increment:pol;content:counter(pol);position:absolute;left:0;top:.1em;width:28px;height:28px}
.prose blockquote{position:relative;margin:1.8em 0;padding:22px 26px 22px 30px;border-radius:18px;background:linear-gradient(120deg,#EEF0FFe6,#FDECF6b3);box-shadow:var(--hair);font:500 1.08rem/1.55 var(--f-display);letter-spacing:-.015em;color:var(--ink)}
.prose blockquote::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:3px;background:linear-gradient(180deg,#6366F1,#EC4899)}
.prose blockquote cite,.prose blockquote footer{display:block;margin-top:10px;font:600 var(--fs-xs)/1.4 var(--f-body);font-style:normal;color:var(--link)}
.prose figure{margin:2em 0}
.prose figcaption{margin-top:10px;font-size:var(--fs-xs);color:var(--muted)}
.prose pre{padding:18px 20px;border-radius:16px;box-shadow:var(--hair)}
.table-wrap{margin:1.8em 0;padding:6px;overflow-x:auto;border-radius:20px;background:#ffffffb3;box-shadow:var(--ring),var(--shadow)}
.prose table{width:100%;border-collapse:separate;border-spacing:0;font-size:.93rem;line-height:1.5}
.prose th{padding:12px 14px;text-align:left;font-size:.64rem;letter-spacing:.12em;color:var(--muted);border-bottom:1px solid var(--line);background:#F5F7FFb3}
.prose td{padding:12px 14px;vertical-align:top;border-bottom:1px solid var(--line)}
.prose tr:last-child td{border-bottom:0}
.callout{--cb:#E6E8FD;--cc:#4338CA;position:relative;margin:1.8em 0;padding:20px 22px 20px 64px;border-radius:18px;font-size:.98rem;line-height:1.65;background:linear-gradient(120deg,var(--cg,#EEF0FFe6),#ffffffcc);box-shadow:var(--ring)}
.callout::before{content:"";position:absolute;left:20px;top:20px;width:28px;height:28px;background:radial-gradient(circle at 35% 30%,#fff,var(--cb))}
.callout::after{content:"";position:absolute;left:27px;top:27px;width:14px;height:14px;background:var(--cc);mask:var(--spark) center/contain no-repeat}
.callout>*+*{margin-top:.6em}
.callout-title{display:block;margin-bottom:4px;font-size:var(--fs-label);letter-spacing:.16em;color:var(--cc)}
.callout--key{--cb:#CDF3FA;--cc:#0B6377;--cg:#DDF7FCd9}
.callout--warn{--cb:#FBD3E6;--cc:#A1134F;--cg:#FDE6F1d9}
.approach{position:relative;margin:2.2em 0;padding:clamp(22px,3vw,32px);border-radius:22px;background:#ffffffc7;box-shadow:var(--ring),var(--shadow)}
.approach::before{animation:iris-spin 12s linear infinite}
.approach-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.approach-head img{width:52px;height:52px}
.approach-title{margin:0;font:600 1.05rem/1.25 var(--f-display);letter-spacing:-.015em;color:var(--ink)}
.approach-sub{display:block;margin-top:3px;font:500 var(--fs-xs)/1.4 var(--f-body);letter-spacing:0;color:var(--muted)}
.approach>*+*{margin-top:.7em}
.prose .approach blockquote{margin-bottom:0}
.checklist{list-style:none;display:grid;gap:10px;padding:18px;border-radius:18px;background:#F5F7FFcc;box-shadow:var(--hair)}
.prose ul.checklist li,.checklist li{position:relative;padding:2px 0 2px 36px}
.prose ul.checklist li::before,.checklist li::before{content:"";position:absolute;left:0;top:.2em;width:22px;height:22px;border-radius:7px;background:#fff;box-shadow:0 0 0 1.5px #A5A8F5;mask:none}
.checklist li::after{content:"";position:absolute;left:8px;top:calc(.2em + 4px);width:7px;height:11px;border:solid var(--link);border-width:0 2px 2px 0;transform:rotate(45deg)}
.ks-inline{display:grid;grid-template-columns:var(--g2);gap:14px;margin:1.8em 0}
.ks-inline>div{padding:18px 20px;border-radius:18px;font-size:.95rem;box-shadow:var(--hair);background:linear-gradient(160deg,#fff,#DDF7FCb3)}
.ks-inline>div+div{background:linear-gradient(160deg,#fff,#FDE6F1b3)}
.ks-inline .badge{margin-bottom:10px}
.article-faq{margin-top:2.4em}
.article-faq .faq-list{grid-column:auto}
.author-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;align-items:center;margin-top:clamp(40px,5vw,64px);padding:clamp(22px,3vw,32px)}
.author-card img{width:120px;height:120px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px #fff,0 0 0 5px var(--line),0 18px 36px -18px #6366f199}
.author-card .author-name{margin:0 0 4px;font:600 1.2rem/1.2 var(--f-display);letter-spacing:-.02em;color:var(--ink)}
.prose .faq-q{margin:0;font-size:1.02rem;line-height:1.38}
.prose .code-card pre{border-radius:0;box-shadow:none}
.mag-kicker{display:flex;align-items:center;gap:12px;margin:28px 0 0}
.mag-legend{list-style:none;display:grid;gap:14px;margin-bottom:16px}
.mag-legend li{display:grid;justify-items:start;gap:6px;font-size:var(--fs-sm);color:var(--text-soft)}
.author-card .author-role{display:block;margin-bottom:10px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;color:var(--link)}
.author-card p{font-size:.96rem;color:var(--text-soft)}
.author-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.related{margin-top:clamp(56px,6vw,96px)}
.related-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin-bottom:24px}
.related-head h2{font-size:clamp(1.4rem,1.1rem + 1.2vw,2.1rem)}
.related .post-grid{grid-template-columns:var(--g2)}

/* 22. Page 404 : bulle de réponse et puces de retour */
.nf{padding-bottom:var(--sec)}
.nf-card{max-width:860px;margin:0 auto;padding:clamp(22px,4vw,48px)}
.answer.nf-card{margin-top:0}
.nf-card .answer-top{padding-right:0}
.nf-card h1{margin:6px 0 16px;font-size:clamp(1.7rem,1.05rem + 2.6vw,3rem);font-weight:600;line-height:1.1;letter-spacing:-.03em}
.nf-links{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin-top:24px}
.nf-links a{gap:10px;min-height:46px;padding:0 18px 0 10px;border-radius:999px;font-weight:600;font-size:.95rem;color:var(--ink);text-decoration:none;background:#fff;box-shadow:0 0 0 1px var(--line),0 10px 22px -16px #0c0a1d66;transition:.3s var(--ease)}
.nf-links a:hover{transform:translateY(-2px);color:var(--link);box-shadow:0 0 0 1px #C9CCF6,0 14px 28px -16px #6366f199}
.nf-links .fav{width:26px;height:26px}
.nf-links .fav .ico{width:15px;height:15px}
.nf-code{font-size:var(--fs-label);letter-spacing:.2em;color:var(--secondary-ink)}

/* 23. Apparitions au défilement : état caché uniquement quand le JS a ajouté .js sur html */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0ms)}
.js .reveal.is-in{opacity:1;transform:none}
.js .sh.reveal .sh-orbit ellipse,.js .reveal .arc .a1,.js .reveal .tl-arc .line{stroke-dashoffset:1;transition:stroke-dashoffset 2.3s var(--ease) .25s}
.js .sh.reveal.is-in .sh-orbit ellipse,.js .reveal.is-in .arc .a1,.js .reveal.is-in .tl-arc .line{stroke-dashoffset:0}
.js .reveal .tl-dot{transform:scale(0);transition:transform .6s var(--spring);transition-delay:calc(var(--n,0) * 140ms + 500ms)}
.js .reveal.is-in .tl-dot{transform:none}

/* 24. Adaptations d'écran, de 1920 à 360 px */
@media (max-width:1199px){
.answer{margin-top:96px}
.answer-orb{right:22px;top:-62px;bottom:auto;width:136px}
.answer-top{padding-right:150px}
}
@media (max-width:1079px){
.nav-main,.nav-cta{display:none}
.menu-btn{display:grid}
.nav-pill{width:100%;justify-content:space-between}
.prat-body{grid-column:6/span 7}
.lever--1,.lever--6{grid-column:1/-1;grid-row:auto}
.lever--2,.lever--3,.lever--4,.lever--5{grid-column:span 6;grid-row:auto}
.split-head .sh{grid-column:1/-1}
.split-head>p{grid-column:1/span 9}
.decide,.code-card,.values-main{grid-column:1/-1}
.values-quote{grid-column:1/-1;padding:22px 0 0;border-left:0;border-top:1px solid var(--line)}
.orbs{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}
.t-card--feat,.t-card:nth-child(2),.t-card:nth-child(3){grid-column:1/-1;grid-row:auto}
.faq-side{position:static}
.faq-side,.faq-list,.f-brand,.mag-intro-text,.mag-intro-aside{grid-column:1/-1}
.f-col,.f-col--wide{grid-column:span 4}
.article-layout{grid-template-columns:minmax(0,1fr)}
.toc{position:static;max-height:none}
.post-grid{grid-template-columns:var(--g2)}
}
@media (max-width:999px){
.fab-orbit{grid-column:1/-1;max-width:420px}
.js .fab-panels{grid-column:1/-1}
.arc{display:none}
.steps5{grid-template-columns:minmax(0,1fr);gap:14px}
.step5{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);gap:18px;align-items:start;padding:0;margin-top:0!important;text-align:left}
.step5::before{content:"";position:absolute;left:27px;top:64px;bottom:-14px;border-left:1.5px dotted #B9BCF5}
.step5:last-child::before{display:none}
.orbn{margin:0}
.tl{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:14px;padding-left:36px}
.tl::before{content:"";position:absolute;left:11px;top:8px;bottom:8px;width:2px;border-radius:2px;background:linear-gradient(180deg,#6366F1,#EC4899 60%,#22D3EE);opacity:.55}
.tl-arc{display:none}
.tl-item,.tl-item:nth-child(n){grid-column:1;grid-row:auto;align-self:auto;padding:0}
.tl-item::before{content:"";position:absolute;left:-32px;top:24px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #6366F1,0 0 0 8px #6366f11f}
.tl-item:nth-child(even)::before{box-shadow:0 0 0 3px #EC4899,0 0 0 8px #ec48991f}
}
@media (max-width:899px){
.prat-media{position:relative;top:0;grid-column:1/-1;max-width:480px;width:100%;margin:0 auto 28px}
.prat-body,.post-card{grid-column:1/-1}
.ks{grid-template-columns:minmax(0,1fr);gap:34px}
.ks-divider{display:none}
.post-card--wide{display:flex;flex-direction:column}
.post-card--wide .post-body{padding:20px 16px 14px}
}
@media (max-width:759px){
:root{--blur:8px;--gap:16px}
.aurora::before,.aurora::after,.aurora span::before,.aurora span::after{animation:none}
.hero{padding-top:112px}
.hero-glow::before{width:150px;height:150px;left:-40px;top:110px}
.hero-glow::after{width:120px;height:120px;right:-34px;top:560px;opacity:.75}
.hero-ctas{flex-direction:column;align-items:stretch}
.h1-kicker::before,.h1-kicker::after{width:16px}
.answer{margin-top:64px;padding:16px 16px 20px}
.answer-orb{right:14px;top:-46px;bottom:auto;width:92px;box-shadow:0 0 0 4px #ffffffcc,0 0 0 5px var(--line),0 16px 30px -14px #4f46e58c}
.answer-top{padding-right:96px}
.answer-tag{margin-left:0}
.q-bubble{max-width:94%;font-size:.95rem}
.a-row{grid-template-columns:34px minmax(0,1fr);gap:12px}
.a-row::before{left:16px;top:44px}
.a-avatar{width:34px;height:34px}
.a-avatar .ico{width:17px;height:17px}
.sources{gap:10px}
.sources::before{left:-29px;width:24px;top:6px}
.sources-label{flex-basis:100%}
.src-list{gap:10px}
.src-chip{padding:6px 11px 6px 6px;font-size:.8rem;gap:6px}
.src-chip .fav{width:17px;height:17px}
.src-chip+.src-chip::before{width:10px}
.facts,.fab-steps,.values-main .sparkles,.first-msg ol,.post-grid,.related .post-grid,.ks-inline,.author-card{grid-template-columns:minmax(0,1fr)}
.sig-quote{padding:22px 20px 20px 62px}
.sig-quote svg{left:18px;top:22px;width:28px;height:28px}
.fab-node{width:50px;height:50px;font-size:.88rem}
.fab-node .lbl{display:none}
.fab-core{inset:24%}
.fab-core-t{font-size:.84rem}
.lever--2,.lever--3,.lever--4,.lever--5,.f-col,.f-col--wide{grid-column:1/-1}
.demo-q li{flex-direction:column;align-items:flex-start;gap:6px}
.robots-banner{aspect-ratio:4/3}
.robots-banner figcaption{right:14px;max-width:none;font-size:.84rem}
.table-glass{margin:-40px 10px 0;padding:4px}
.rtable caption{padding:12px 12px 6px}
.rtable thead,.prose thead{display:none}
.rtable,.rtable tbody,.rtable tr,.rtable td,.prose table,.prose tbody,.prose tr,.prose td{display:block;width:100%!important}
.rtable tbody tr,.prose tbody tr{padding:14px 12px;border-bottom:1px solid var(--line)}
.rtable tbody tr:last-child,.prose tbody tr:last-child{border-bottom:0}
.rtable td,.prose td{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;padding:5px 0;border:0;font-size:.9rem}
.rtable td::before,.prose td::before{content:attr(data-label);padding-top:3px;font-size:.58rem;line-height:1.4;letter-spacing:.1em;color:var(--muted)}
.rtable td:first-child,.prose td:first-child{grid-template-columns:minmax(0,1fr);padding-bottom:8px}
.prose td:first-child{font-weight:600;color:var(--ink)}
.rtable caption,.prose caption{display:block}
.f-col:not(.f-col--wide) .f-list{grid-template-columns:var(--g2)}
.rtable td:first-child::before,.prose td:first-child::before{display:none}
.code-card pre{padding:16px;font-size:.8rem}
.orbs{grid-template-columns:var(--g2);gap:32px 16px}
.orb{width:min(100%,150px)}
.testi-foot{border-radius:20px}
.faq-item summary{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px}
.faq-n{display:none}
.faq-a{padding:0 18px 18px}
.contact-card{padding:28px 18px}
.f-legal{grid-template-columns:minmax(0,1fr)}
.author-card img{width:96px;height:96px}
.callout{padding:18px 18px 18px 58px}
.callout::before{left:16px}
.callout::after{left:23px}
}
@media (max-width:399px){
.brand-name{font-size:.86rem}
.brand-tag,.src-chip+.src-chip::before,.sources::before{display:none}
.rtable td{grid-template-columns:74px minmax(0,1fr)}
}

/* 25. Mouvement réduit : tout est figé et visible */
@media (prefers-reduced-motion:reduce){
html,html:focus-within{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important}
.aurora::before,.aurora::after,.aurora span::before,.aurora span::after,.hero-glow::before,.hero-glow::after,.orb,.contact-orb,.prat-media::before,.footer-orb,.photo-card::before,.approach::before,.pill-orb{animation:none!important}
.js .reveal,.js .reveal .tl-dot{opacity:1;transform:none}
.js .sh.reveal .sh-orbit ellipse,.js .reveal .arc .a1,.js .reveal .tl-arc .line{stroke-dashoffset:0}
.answer.is-pending .a-text .w,.answer.is-pending .src-chip{opacity:1;filter:none;transform:none}
.caret{display:none}
}
