/* CVolt — styles du CV interactif. Structure « console de supervision », 15 thèmes (Console et Rapide iT en sombre/clair).
   Copié tel quel dans l'export HTML (les polices sont alors intégrées). */
@font-face{font-family:Unbounded;src:url('../fonts/unbounded-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Unbounded;src:url('../fonts/unbounded-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url('../fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url('../fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2');font-weight:500 600;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('../fonts/manrope-latin-700-normal.woff2') format('woff2');font-weight:500 700;font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/inter-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/inter-latin-500-normal.woff2') format('woff2');font-weight:500 600;font-display:swap}
@font-face{font-family:Caveat;src:url('../fonts/caveat-latin-700-normal.woff2') format('woff2');font-weight:600 700;font-display:swap}
@font-face{font-family:Fraunces;src:url('../fonts/fraunces-latin-600-normal.woff2') format('woff2');font-weight:500 700;font-display:swap}

/* ---- Jetons par style : --a (accent principal), --b (accent secondaire) ---- */
.cv{--mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;--radius:6px;--grid-size:32px;container:cv/inline-size}
.cv.st-console{--display:Unbounded,"Arial Black",system-ui,sans-serif;--body:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;
  --bg:#0E1520;--surface:#152031;--line:#26374D;--fg:#E7EDF4;--muted:#94A4B9;--a:#F2A541;--b:#62C9D9;--grid:rgba(98,201,217,.055);--glow:rgba(242,165,65,.35);--on-a:#0E1520}
.cv.st-console.mode-light{--bg:#E4E9F0;--surface:#EEF2F7;--line:#C3CEDB;--fg:#132034;--muted:#4D5E74;--a:#A85F08;--b:#0F7484;--grid:rgba(15,116,132,.07);--glow:rgba(168,95,8,.22);--on-a:#fff}
.cv.st-rapide{--display:Manrope,Inter,system-ui,sans-serif;--body:Inter,system-ui,sans-serif;--radius:14px;
  --bg:#0B1628;--surface:#132640;--line:#24406A;--fg:#EEF2FB;--muted:#A9B6CC;--a:#FF7AB6;--b:#7FA0FF;--grid:rgba(127,160,255,.06);--glow:rgba(232,62,140,.35);--on-a:#0B1628}
.cv.st-rapide.mode-light{--bg:#F7F8F4;--surface:#FDFDFB;--line:#DCE1DA;--fg:#162421;--muted:#5E6864;--a:#B5226A;--b:#1746D1;--grid:rgba(23,70,209,.05);--glow:rgba(181,34,106,.2);--on-a:#fff}

.cv{background:var(--bg);color:var(--fg);font:16px/1.6 var(--body);min-height:100%;-webkit-font-smoothing:antialiased;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:var(--grid-size) var(--grid-size);
  padding:24px max(16px,env(safe-area-inset-right,0px)) 48px max(16px,env(safe-area-inset-left,0px))}
.cv *{box-sizing:border-box}
.cv .wrap{width:auto;max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:44px}
:where(.cv) h1,:where(.cv) h2,:where(.cv) h3{text-wrap:balance;margin:0;letter-spacing:normal;line-height:1.3}
:where(.cv) h3{font-family:var(--body)}
.cv p{margin:0}
.cv a{color:var(--b);text-underline-offset:3px}
.cv .label{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--b)}
.cv :focus-visible{outline:2px solid var(--b);outline-offset:2px}

/* Console de démarrage */
.boot{font-family:var(--mono);font-size:13px;color:var(--muted);border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:4px;overflow-x:auto}
.boot .ln{white-space:nowrap;padding-left:7ch;text-indent:-7ch;animation:lineIn .35s ease-out both;animation-delay:calc(.1s + var(--i) * .35s)}
.boot .ok{color:var(--b)}
/* Petit écran : les lignes passent à la ligne (alignées sous le texte) au lieu d'être coupées au milieu d'un mot */
@container cv (max-width:640px){.boot .ln{white-space:normal}}.boot .cmd{color:var(--fg)}
.cursor{display:inline-block;width:.6em;height:1.05em;vertical-align:-.15em;background:var(--a);margin-left:4px;animation:blink 1s steps(1) infinite}

/* Identité */
.hero{display:flex;flex-direction:column;gap:16px}
.hero-top{display:flex;gap:20px;align-items:flex-end;min-width:0}
.hero-id{display:flex;flex-direction:column;gap:10px;min-width:0}
.avatar{width:clamp(76px,16vw,112px);aspect-ratio:1;border-radius:var(--radius);object-fit:cover;border:2px solid var(--a);box-shadow:0 0 0 5px var(--glow);flex:none;animation:fadeUp .6s ease-out 1s both}
.cv-name{font-family:var(--display);font-weight:700;font-size:clamp(2.1rem,8vw,4.2rem);line-height:1.02;letter-spacing:-.01em;overflow-wrap:anywhere}
.cv-name .ch{display:inline-block;animation:charUp .5s cubic-bezier(.2,.8,.2,1) both}
.cv-name .last{color:var(--a)}
.role{font-family:var(--mono);font-size:clamp(.95rem,2.6vw,1.1rem);color:var(--fg);min-height:1.6em}
.cv .lead{font-size:16px;color:var(--muted);max-width:62ch;animation:fadeUp .6s ease-out 2.1s both}
.tags{display:flex;flex-wrap:wrap;gap:8px;animation:fadeUp .6s ease-out 2.25s both}
.tag{font-family:var(--mono);font-size:12px;padding:5px 10px;border-radius:4px;border:1px solid var(--line);color:var(--fg);display:inline-flex;align-items:center;gap:7px}
.tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--a);box-shadow:0 0 0 3px var(--glow);flex:none}
.actions{display:flex;flex-wrap:wrap;gap:8px;animation:fadeUp .6s ease-out 2.3s both}
.act,.copy,.filter-banner button{font-family:var(--mono);font-size:12px;padding:6px 10px;border-radius:4px;cursor:pointer;border:1px solid var(--a);color:var(--a);background:transparent}
.act:hover,.copy:hover,.filter-banner button:hover{background:var(--glow)}

/* Compteurs */
.stats{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;animation:fadeUp .6s ease-out 2.4s both}
.stat{background:var(--surface);padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.stat b{font-family:var(--display);font-weight:500;font-size:clamp(1.7rem,5vw,2.3rem);color:var(--a);font-variant-numeric:tabular-nums;line-height:1.1;overflow-wrap:anywhere}
.stat span{font-size:13px;color:var(--muted);line-height:1.35}

/* Sections */
.cv-sec{display:flex;flex-direction:column;gap:20px;animation:fadeUp .6s ease-out both;animation-delay:calc(2.55s + var(--d,0s));scroll-margin-top:16px}
.sec-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.sec-head h2{font-family:var(--display);font-weight:500;font-size:clamp(1.25rem,3.6vw,1.6rem)}
.hint{font-size:14px;color:var(--muted);margin-top:-8px}

/* Ligne de temps */
.tl{position:relative;padding-left:30px;display:flex;flex-direction:column;gap:26px}
.tl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl-fill{position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--a),var(--b));transform-origin:top;transform:scaleY(var(--p,1))}
.item{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;transition:opacity .3s,filter .3s}
.item::before{content:"";position:absolute;left:-30px;top:5px;width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--line);transition:border-color .4s,box-shadow .4s,background .4s}
.item.lit::before{border-color:var(--a);background:var(--a);box-shadow:0 0 0 5px var(--glow)}
.item.lit.pulse::before{animation:pulse 1.2s ease-out 1}
.item h3{font-size:1.05rem;font-weight:600;line-height:1.35}
.meta{font-family:var(--mono);font-size:12.5px;color:var(--b)}
.meta em{font-style:normal;color:var(--muted)}
.item ul{margin:4px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:15px}
.item li::marker{color:var(--a)}
.cv.filtering .tl .item:not(.match){opacity:.3;filter:grayscale(1)}
.cv.filtering .item.match h3{color:var(--a)}
.filter-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px dashed var(--a);border-radius:var(--radius);font-family:var(--mono);font-size:13px;background:var(--surface)}
.filter-banner[hidden]{display:none}

/* Compétences */
.skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.group{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:var(--surface);display:flex;flex-direction:column;gap:10px;min-width:0}
.group h3{font-size:14px;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:13px/1.4 var(--body);padding:4px 9px;border-radius:3px;background:var(--bg);border:1px solid var(--line);color:var(--fg);animation:chipIn .4s ease-out both;animation-delay:calc(2.8s + var(--c,0) * .03s);display:inline-flex;align-items:center;gap:7px;text-align:left}
button.chip{cursor:pointer}
button.chip:hover{border-color:var(--a)}
.chip.active{background:var(--a);border-color:var(--a);color:var(--on-a)}
.lvl{font-style:normal;font-size:9px;letter-spacing:1px;color:var(--a)}
.lvl b{color:var(--line);font-weight:400}
.chip.active .lvl,.chip.active .lvl b{color:inherit;opacity:.8}
.langs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.langs li{display:grid;grid-template-columns:1fr auto;gap:0 12px;align-items:center;font-size:14px}
.langs small{grid-column:1/-1;color:var(--muted);font-size:12.5px}
.dots{display:flex;gap:4px}
.dots i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.dots i.on{background:var(--a);box-shadow:0 0 0 2px var(--glow)}

/* Formations */
.certs{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:0}
.certs dt{font-family:var(--mono);font-size:13px;color:var(--a);font-variant-numeric:tabular-nums;padding-top:2px}
.certs dd{margin:0;color:var(--fg);font-size:15px}

/* Contact */
.contact{display:flex;flex-direction:column;gap:10px}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px dashed var(--line);padding-bottom:10px}
.row .k{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;min-width:80px}
.row .v{flex:1;min-width:0;overflow-wrap:break-word}
.cv-foot{font-family:var(--mono);font-size:12px;color:var(--muted)}

/* ==== Mise en page commune : corps en une colonne, deux colonnes selon le thème ==== */
.cv .body,.cv .col-main,.cv .col-side{display:flex;flex-direction:column;gap:44px;min-width:0}
.cv:not(.st-console):not(.st-phosphore) .boot{display:none}
.cv.name-fade .cv-name{animation:fadeUp .8s ease-out .3s both}
@container cv (min-width:760px){
  .cv.two-col .wrap{max-width:1080px}
  .cv.two-col .body{display:grid;gap:40px;align-items:start}
  .cv.two-col .col-side .skills{grid-template-columns:1fr}
}

/* ==== 2. Rapide iT : charte, halos bleu/rose, colonne latérale à gauche ==== */
.cv.st-rapide{background-image:radial-gradient(48% 38% at 8% 0%,rgba(23,70,209,.38),transparent 70%),radial-gradient(40% 32% at 100% 6%,rgba(232,62,140,.3),transparent 70%);background-size:auto}
.cv.st-rapide.mode-light{background-image:radial-gradient(48% 38% at 8% 0%,rgba(23,70,209,.13),transparent 70%),radial-gradient(40% 32% at 100% 6%,rgba(232,62,140,.12),transparent 70%)}
.st-rapide{--name-anim:fade}
.st-rapide .cv-name .last{background:linear-gradient(90deg,var(--b),var(--a));-webkit-background-clip:text;background-clip:text;color:transparent}
.st-rapide .tag::before{border-radius:3px}
.st-rapide .stats{gap:12px;background:none;border:0;overflow:visible}
.st-rapide .stat{border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 28px -18px var(--glow)}
.st-rapide .act{border-radius:999px;border-color:var(--line);color:var(--fg)}
.st-rapide .chip{border-radius:999px}
@container cv (min-width:760px){
  .st-rapide .body{grid-template-columns:300px minmax(0,1fr)}
  .st-rapide .col-side{order:-1;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 20px;gap:34px}
  .st-rapide .col-side .group{background:var(--bg)}
}

/* ==== 3. Journal : une de quotidien ==== */
.cv.st-journal{--display:Fraunces,Georgia,serif;--body:Georgia,"Times New Roman",serif;--mono:Georgia,"Times New Roman",serif;--radius:0;
  --bg:#EEEDE8;--surface:#E5E3DC;--line:#B9B5AA;--fg:#141414;--muted:#45423B;--a:#C4161C;--b:#141414;--grid:transparent;--glow:rgba(196,22,28,.15);--on-a:#fff}
.st-journal .hero{text-align:center;align-items:center;border-top:5px double var(--fg);border-bottom:5px double var(--fg);padding:18px 0 22px}
.st-journal .hero-top{flex-direction:column;align-items:center}
.st-journal .hero-id{align-items:center}
.st-journal .label{letter-spacing:.22em;color:var(--fg);font-size:11px}
.st-journal .cv-name{font-weight:600;font-size:clamp(2.4rem,9vw,5rem);letter-spacing:-.02em}
.st-journal .cv-name .last{color:var(--fg)}
.st-journal .avatar{border-radius:50%;border:1px solid var(--fg);box-shadow:none;filter:grayscale(1) contrast(1.1)}
.st-journal .role{font-style:italic;font-size:1.15rem;border-top:1px solid var(--fg);border-bottom:1px solid var(--fg);padding:4px 18px}
.st-journal .lead{text-align:justify;hyphens:auto;color:var(--fg);max-width:68ch;font-size:17px}
.st-journal .lead::first-letter{float:left;font-family:var(--display);font-weight:600;font-size:3.6em;line-height:.85;padding:6px 8px 0 0;color:var(--a)}
.st-journal .tags{justify-content:center;gap:4px 16px}
.st-journal .tag{border:0;padding:0;font-style:italic;font-size:14px}
.st-journal .tag::before{width:6px;height:6px;border-radius:0;box-shadow:none}
.st-journal .act{border-color:var(--fg);color:var(--fg);border-radius:0}
.st-journal .stats{background:none;border:0;border-bottom:1px solid var(--fg);border-radius:0;gap:0}
.st-journal .stat{background:none;text-align:center;border-left:1px solid var(--line);padding:6px 12px 14px}
.st-journal .stat:first-child{border-left:0}
.st-journal .stat b{font-family:var(--display);font-weight:600;color:var(--fg)}
.st-journal .sec-head{border-bottom:2px solid var(--fg);padding-bottom:6px}
.st-journal .sec-head .label{color:var(--a)}
.st-journal .sec-head h2{font-weight:600}
.st-journal .tl{padding-left:0;gap:18px}
.st-journal .tl::before,.st-journal .tl-fill,.st-journal .item::before{display:none}
.st-journal .item+.item{border-top:1px solid var(--line);padding-top:18px}
.st-journal .item h3{font-family:var(--display);font-weight:600;font-size:1.25rem}
.st-journal .meta{color:var(--a);font-style:italic}
.st-journal .item ul{color:var(--fg)}
.st-journal .group{background:none;border:0;border-top:1px solid var(--fg);border-radius:0;padding:10px 0 0}
.st-journal .group h3{font-family:var(--display);font-size:1.05rem}
.st-journal .chip{background:none;border:0;border-bottom:1px dotted var(--muted);border-radius:0;padding:0 1px;font-size:14.5px}
.st-journal .chip.active{background:var(--a);color:#fff;border-color:var(--a);padding:0 4px}
.st-journal .lvl{color:var(--a)}.st-journal .lvl b{color:var(--line)}
.st-journal .row{border-bottom-style:solid}
.st-journal .cv-foot{text-align:center;border-top:5px double var(--fg);padding-top:10px}
@container cv (min-width:760px){
  .st-journal .body{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:0 30px}
  .st-journal .col-side{border-left:1px solid var(--fg);padding-left:28px}
}

/* ==== 4. Synthwave : soleil rétro, sol quadrillé, néons ==== */
.cv.st-synthwave{--display:Unbounded,"Arial Black",system-ui,sans-serif;--body:Inter,system-ui,sans-serif;--radius:12px;--name-anim:fade;
  --bg:#12041F;--surface:#1D0933;--line:#4A1D6E;--fg:#FDF0FF;--muted:#CDB0E3;--a:#FF2E97;--b:#2DE2E6;--grid:transparent;--glow:rgba(255,46,151,.42);--on-a:#12041F;
  background-image:linear-gradient(#12041F 0,#2B0748 420px,#12041F 900px)}
.st-synthwave .hero{position:relative;isolation:isolate;overflow:hidden;text-align:center;align-items:center;padding:8px 0 280px}
.st-synthwave .hero::before{content:"";position:absolute;z-index:-1;left:50%;bottom:62px;width:200px;height:200px;transform:translateX(-50%);border-radius:50%;
  background:linear-gradient(#FFD319 8%,#FF8C42 48%,#FF2E97 92%);box-shadow:0 0 70px rgba(255,46,151,.55);
  -webkit-mask:linear-gradient(#000 50%,transparent 50% 54%,#000 54% 63%,transparent 63% 68%,#000 68% 76%,transparent 76% 82%,#000 82% 89%,transparent 89% 96%,#000 96%);
  mask:linear-gradient(#000 50%,transparent 50% 54%,#000 54% 63%,transparent 63% 68%,#000 68% 76%,transparent 76% 82%,#000 82% 89%,transparent 89% 96%,#000 96%)}
.st-synthwave .hero::after{content:"";position:absolute;z-index:-1;left:-60%;right:-60%;bottom:0;height:150px;transform:perspective(160px) rotateX(58deg);transform-origin:50% 100%;
  background:repeating-linear-gradient(90deg,rgba(45,226,230,.75) 0 2px,transparent 2px 56px),repeating-linear-gradient(0deg,rgba(45,226,230,.75) 0 2px,transparent 2px 26px),#1A0530;
  -webkit-mask:linear-gradient(transparent,#000 30%);mask:linear-gradient(transparent,#000 30%)}
.st-synthwave .hero-top{flex-direction:column;align-items:center}
.st-synthwave .hero-id{align-items:center}
.st-synthwave .cv-name{text-transform:uppercase;font-style:italic;transform:skew(-7deg);background:linear-gradient(#FFD319 15%,#FF8C42 50%,#FF2E97 85%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 16px rgba(255,46,151,.45))}
.st-synthwave .cv-name .last{color:transparent}
.st-synthwave .avatar{border-radius:50%;border-color:var(--b);box-shadow:0 0 0 4px rgba(45,226,230,.25),0 0 30px rgba(45,226,230,.5)}
.st-synthwave .role{color:var(--b);text-shadow:0 0 12px rgba(45,226,230,.7)}
.st-synthwave .lead{margin:0 auto}
.st-synthwave .tags,.st-synthwave .actions{justify-content:center}
.st-synthwave .tag{border-color:var(--a);border-radius:999px;box-shadow:inset 0 0 12px rgba(255,46,151,.25)}
.st-synthwave .stats{background:none;border:0;gap:12px;overflow:visible}
.st-synthwave .stat{border:1px solid var(--b);border-radius:var(--radius);box-shadow:0 0 18px rgba(45,226,230,.22),inset 0 0 18px rgba(45,226,230,.1);text-align:center}
.st-synthwave .stat b{color:#FFD319;text-shadow:0 0 14px rgba(255,211,25,.55)}
.st-synthwave .sec-head h2{text-transform:uppercase;color:var(--fg);text-shadow:0 0 10px var(--a),0 0 26px var(--a)}
.st-synthwave .group{border-color:rgba(45,226,230,.5);box-shadow:0 0 22px rgba(45,226,230,.12)}
.st-synthwave .chip{border-radius:999px}
.st-synthwave .tl-fill{background:linear-gradient(var(--a),var(--b));box-shadow:0 0 12px var(--a)}

/* ==== 5. Plan technique : calque d'ingénieur ==== */
.cv.st-blueprint{--display:"IBM Plex Mono",ui-monospace,monospace;--body:"IBM Plex Mono",ui-monospace,monospace;--radius:0;
  --bg:#0D3B66;--surface:#104473;--line:#5E8FBF;--fg:#EAF4FF;--muted:#AFCBE6;--a:#FFD166;--b:#9BD1FF;--glow:rgba(255,209,102,.25);--on-a:#0D3B66;
  background-image:linear-gradient(rgba(155,209,255,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(155,209,255,.11) 1px,transparent 1px),linear-gradient(rgba(155,209,255,.24) 1px,transparent 1px),linear-gradient(90deg,rgba(155,209,255,.24) 1px,transparent 1px);
  background-size:20px 20px,20px 20px,100px 100px,100px 100px;font-size:14.5px}
.st-blueprint .cv-name{text-transform:uppercase;font-weight:500;letter-spacing:.04em}
.st-blueprint .cv-name .first{color:transparent;-webkit-text-stroke:1.4px var(--fg)}
.st-blueprint .cv-name .last{color:var(--fg)}
.st-blueprint .avatar{border:1px dashed var(--fg);box-shadow:none;padding:4px;background:var(--surface);filter:grayscale(1) sepia(.2) hue-rotate(170deg)}
.st-blueprint .role{color:var(--a)}
.st-blueprint .role::before{content:"// "}
.st-blueprint .tag{border-style:dashed;text-transform:uppercase;font-size:11px}
.st-blueprint .tag::before{border-radius:0;box-shadow:none;transform:rotate(45deg)}
.st-blueprint .stats{background:none;border:1px dashed var(--line);gap:0}
.st-blueprint .stat{background:none;border-left:1px dashed var(--line)}
.st-blueprint .stat:first-child{border-left:0}
.st-blueprint .stat b{font-weight:500}
.st-blueprint .cv-sec{border:1px dashed var(--line);padding:24px 20px;background-color:rgba(13,59,102,.6);
  background-image:linear-gradient(var(--fg),var(--fg)),linear-gradient(var(--fg),var(--fg)),linear-gradient(var(--fg),var(--fg)),linear-gradient(var(--fg),var(--fg)),linear-gradient(var(--fg),var(--fg)),linear-gradient(var(--fg),var(--fg)),linear-gradient(var(--fg),var(--fg)),linear-gradient(var(--fg),var(--fg));
  background-size:14px 2px,2px 14px,14px 2px,2px 14px,14px 2px,2px 14px,14px 2px,2px 14px;
  background-position:-1px -1px,-1px -1px,calc(100% + 1px) -1px,calc(100% + 1px) -1px,-1px calc(100% + 1px),-1px calc(100% + 1px),calc(100% + 1px) calc(100% + 1px),calc(100% + 1px) calc(100% + 1px);background-repeat:no-repeat}
.st-blueprint .sec-head{flex-wrap:nowrap;align-items:center}
.st-blueprint .sec-head .label::before{content:"§ "}
.st-blueprint .sec-head h2{text-transform:uppercase;font-weight:500;letter-spacing:.06em;font-size:1.05rem}
.st-blueprint .sec-head::after{content:"";flex:1;min-width:20px;height:0;border-top:1px solid var(--line)}
.st-blueprint .item::before{border-radius:0;transform:rotate(45deg) scale(.8)}
.st-blueprint .item h3{text-transform:uppercase;font-weight:500;font-size:.98rem;letter-spacing:.03em}
.st-blueprint .group{background:none;border-style:dashed}
.st-blueprint .group h3{text-transform:uppercase;font-weight:500;letter-spacing:.06em;color:var(--b)}
.st-blueprint .chip{background:none;border-style:dashed;font-size:12.5px}
.st-blueprint .act{border-style:dashed}
@container cv (min-width:760px){.st-blueprint .body{grid-template-columns:minmax(0,1fr) 330px;gap:24px}.st-blueprint .col-main,.st-blueprint .col-side{gap:24px}}

/* ==== 6. Bento : tuiles arrondies ==== */
.cv.st-bento{--display:Manrope,Inter,system-ui,sans-serif;--body:Inter,system-ui,sans-serif;--radius:26px;
  --bg:#E7E9EE;--surface:#FAFBFC;--line:#D5D9E2;--fg:#16181D;--muted:#555C6C;--a:#5B5BD6;--b:#0E7F5A;--grid:transparent;--glow:rgba(91,91,214,.18);--on-a:#fff}
.st-bento .wrap{gap:16px;max-width:1080px}
.st-bento .hero,.st-bento .cv-sec{background:var(--surface);border-radius:var(--radius);padding:26px;box-shadow:0 1px 0 rgba(22,24,29,.05),0 14px 34px -24px rgba(22,24,29,.35)}
.st-bento .avatar{border-radius:22px;border:0;box-shadow:none}
.st-bento .label{font-family:var(--body);font-weight:500;letter-spacing:.06em}
.st-bento .role{font-family:var(--body);font-weight:500}
.st-bento .tag{border-radius:999px;background:var(--bg);border:0;font-family:var(--body)}
.st-bento .tag::before{box-shadow:none}
.st-bento .act{border-radius:999px;background:var(--fg);color:#fff;border-color:var(--fg)}
.st-bento .stats{background:none;border:0;gap:16px;overflow:visible}
.st-bento .stat{border-radius:var(--radius);padding:20px 22px}
.st-bento .stat:nth-child(4n+1){background:#E1E1FB}.st-bento .stat:nth-child(4n+2){background:#D3F1E5}
.st-bento .stat:nth-child(4n+3){background:#FCE5CF}.st-bento .stat:nth-child(4n+4){background:#FADDE8}
.st-bento .stat b{color:var(--fg);font-weight:700}
.st-bento .stat span{color:#3C4250}
.st-bento .body,.st-bento .col-main,.st-bento .col-side{gap:16px}
.st-bento .sec-head h2{font-weight:700}
.st-bento .item::before{background:var(--surface)}
.st-bento .group{background:var(--bg);border:0;border-radius:18px}
.st-bento .chip{border-radius:999px;background:var(--surface);border-color:transparent}
.st-bento .filter-banner{border-radius:16px}
.st-bento .row{border-bottom:1px solid var(--line)}
.st-bento .copy{border-radius:999px}
.st-bento .cv-foot{text-align:center;padding:6px}
@container cv (min-width:760px){.st-bento .body{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}}

/* ==== 7. Brutaliste : jaune vif, bordures épaisses, ombres dures ==== */
.cv.st-brutal{--display:Unbounded,"Arial Black",system-ui,sans-serif;--body:"IBM Plex Sans",system-ui,sans-serif;--radius:0;
  --bg:#FFE14D;--surface:#FFF8D9;--line:#0A0A0A;--fg:#0A0A0A;--muted:#262626;--a:#0A0A0A;--b:#1A3FD9;--grid:transparent;--glow:rgba(10,10,10,.18);--on-a:#FFE14D}
.st-brutal .cv-name{text-transform:uppercase;letter-spacing:-.02em}
.st-brutal .cv-name .last{background:#0A0A0A;color:#FFE14D;padding:0 .14em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.st-brutal .avatar{border:3px solid #0A0A0A;box-shadow:6px 6px 0 #0A0A0A}
.st-brutal .label{color:#0A0A0A;font-weight:500}
.st-brutal .role{font-weight:500;background:#fff;border:3px solid #0A0A0A;padding:4px 10px;align-self:flex-start}
.st-brutal .lead{color:#0A0A0A}
.st-brutal .tag{border:2px solid #0A0A0A;background:#FF3EA5;color:#0A0A0A;font-weight:500;border-radius:0}
.st-brutal .tag::before{display:none}
.st-brutal .act,.st-brutal .copy,.st-brutal .filter-banner button{background:#0A0A0A;color:#FFE14D;border:2px solid #0A0A0A;box-shadow:3px 3px 0 #1A3FD9;border-radius:0}
.st-brutal .stats{background:none;border:0;gap:16px;overflow:visible}
.st-brutal .stat{border:3px solid #0A0A0A;box-shadow:6px 6px 0 #0A0A0A}
.st-brutal .stat:nth-child(4n+1){background:#FF3EA5;transform:rotate(-1.2deg)}.st-brutal .stat:nth-child(4n+2){background:#8FB8FF;transform:rotate(.8deg)}
.st-brutal .stat:nth-child(4n+3){background:#fff;transform:rotate(-.6deg)}.st-brutal .stat:nth-child(4n+4){background:#4BE39E;transform:rotate(1deg)}
.st-brutal .stat b,.st-brutal .stat span{color:#0A0A0A}
.st-brutal .cv-sec{background:var(--surface);border:3px solid #0A0A0A;box-shadow:8px 8px 0 #0A0A0A;padding:24px 22px}
.st-brutal .sec-head .label{background:#0A0A0A;color:#FFE14D;padding:3px 8px}
.st-brutal .sec-head h2{text-transform:uppercase;font-weight:700}
.st-brutal .tl::before,.st-brutal .tl-fill{width:4px;left:6px}
.st-brutal .tl-fill{background:#0A0A0A}
.st-brutal .item::before{border-radius:0;border:3px solid #0A0A0A}
.st-brutal .item.lit::before{background:#FF3EA5;border-color:#0A0A0A;box-shadow:3px 3px 0 #0A0A0A}
.st-brutal .item h3{font-weight:600;font-size:1.1rem}
.st-brutal .meta{color:#1A3FD9;font-weight:500}
.st-brutal .item ul{color:#0A0A0A}
.st-brutal .item li::marker{color:#0A0A0A}
.st-brutal .group{background:#fff;border:3px solid #0A0A0A;border-radius:0}
.st-brutal .chip{border:2px solid #0A0A0A;border-radius:0;background:#FFE14D;font-weight:500}
.st-brutal button.chip:hover{background:#FF3EA5}
.st-brutal .chip.active{background:#1A3FD9;color:#fff;border-color:#0A0A0A}
.st-brutal .lvl{color:#0A0A0A}.st-brutal .lvl b{color:rgba(10,10,10,.25)}
.st-brutal .dots i{border:2px solid #0A0A0A;background:#fff;border-radius:0}.st-brutal .dots i.on{background:#0A0A0A;box-shadow:none}
.st-brutal .certs dt{background:#0A0A0A;color:#FFE14D;padding:0 6px;align-self:start}
.st-brutal .row{border-bottom:2px solid #0A0A0A}
.st-brutal .filter-banner{border:3px solid #0A0A0A;background:#fff}
.st-brutal .cv-foot{color:#0A0A0A;font-weight:500}

/* ==== 8. Tableau à craie ==== */
.cv.st-craie{--display:Caveat,"Segoe Print","Comic Sans MS",cursive;--body:"IBM Plex Sans",system-ui,sans-serif;--radius:8px;
  --bg:#263B33;--surface:#2D453C;--line:#7D8F86;--fg:#F1F1EA;--muted:#CDD3CB;--a:#F6D365;--b:#9FD8F5;--grid:transparent;--glow:rgba(246,211,101,.28);--on-a:#263B33;
  border:14px solid #8B5A2B;box-shadow:inset 0 0 0 3px #5E3B1A,inset 0 0 90px rgba(0,0,0,.45);
  background-image:radial-gradient(60% 40% at 18% 12%,rgba(255,255,255,.07),transparent 70%),radial-gradient(50% 40% at 85% 65%,rgba(255,255,255,.05),transparent 70%),radial-gradient(40% 30% at 30% 90%,rgba(255,255,255,.04),transparent 70%)}
.st-craie .cv-name{font-weight:700;font-size:clamp(3rem,11vw,5.6rem);line-height:.95;text-shadow:0 0 1px rgba(255,255,255,.7),0 0 6px rgba(255,255,255,.18)}
.st-craie .cv-name .last{color:var(--a)}
.st-craie .label{font-family:var(--display);font-size:21px;letter-spacing:0;text-transform:none;color:var(--b)}
.st-craie .role{font-family:var(--display);font-size:1.6rem;color:var(--fg);line-height:1.2}
.st-craie .cursor{background:var(--fg)}
.st-craie .avatar{border:3px solid var(--fg);border-radius:50% 46% 52% 48%;box-shadow:none;transform:rotate(-2deg)}
.st-craie .tag{border:1.5px dashed var(--line);border-radius:999px}
.st-craie .tag::before{box-shadow:none}
.st-craie .act{border-style:dashed;border-radius:999px}
.st-craie .stats{background:none;border:0;gap:14px;overflow:visible}
.st-craie .stat{background:none;border:2px dashed var(--line);border-radius:14px;text-align:center}
.st-craie .stat b{font-family:var(--display);font-weight:700;font-size:clamp(2.4rem,7vw,3rem);color:var(--a)}
.st-craie .sec-head .label{display:none}
.st-craie .sec-head h2{font-family:var(--display);font-weight:700;font-size:clamp(2rem,6vw,2.5rem);text-decoration:underline wavy var(--a) 2px;text-underline-offset:9px}
.st-craie .tl::before{background:repeating-linear-gradient(var(--line) 0 7px,transparent 7px 13px)}
.st-craie .item::before{background:var(--bg);border:2px dashed var(--fg)}
.st-craie .item.lit::before{background:var(--a);border-style:solid;border-color:var(--a)}
.st-craie .item h3{font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1.15}
.st-craie .meta{color:var(--b)}
.st-craie .group{background:none;border:2px dashed var(--line);border-radius:14px}
.st-craie .group h3{font-family:var(--display);font-size:1.35rem;font-weight:700;color:var(--a)}
.st-craie .chip{background:none;border:1.5px solid rgba(241,241,234,.55);border-radius:999px}
.st-craie .certs dt{font-family:var(--display);font-size:1.25rem;font-weight:700;padding-top:0}
.st-craie .row{border-bottom:2px dashed var(--line)}
.st-craie .cv-foot{font-family:var(--display);font-size:18px}
@container cv (min-width:760px){.st-craie .body{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}

/* ==== 9. Suisse : grille stricte, typographie internationale ==== */
.cv.st-suisse{--display:Inter,"Helvetica Neue",Arial,sans-serif;--body:Inter,"Helvetica Neue",Arial,sans-serif;--mono:Inter,"Helvetica Neue",Arial,sans-serif;--radius:0;
  --bg:#EDEDED;--surface:#E3E3E3;--line:#111;--fg:#111;--muted:#474747;--a:#E30613;--b:#111;--grid:transparent;--glow:rgba(227,6,19,.15);--on-a:#fff}
.st-suisse .hero::before{content:"";width:46px;height:46px;background:var(--a)}
.st-suisse .cv-name{font-weight:600;font-size:clamp(2.6rem,10vw,5.6rem);letter-spacing:-.045em;line-height:.95}
.st-suisse .cv-name > span{display:block}
.st-suisse .avatar{border:0;box-shadow:none;border-radius:0;filter:grayscale(1)}
.st-suisse .label{font-weight:600;letter-spacing:.04em;color:var(--fg)}
.st-suisse .role{font-weight:500;font-size:1.2rem}
.st-suisse .lead{color:var(--fg);font-size:1.1rem;max-width:44ch;line-height:1.5}
.st-suisse .tags{gap:4px 20px}
.st-suisse .tag{border:0;padding:0;font-weight:500;font-size:13px}
.st-suisse .tag::before{border-radius:0;box-shadow:none}
.st-suisse .act{border-color:var(--fg);color:var(--fg);border-radius:0;font-weight:500}
.st-suisse .stats{background:none;border:0;border-top:2px solid var(--fg);gap:0 24px;border-radius:0}
.st-suisse .stat{background:none;padding:12px 0 0}
.st-suisse .stat b{color:var(--fg);font-weight:600;letter-spacing:-.04em;font-size:clamp(2.2rem,7vw,3.4rem)}
.st-suisse .stat span{color:var(--fg)}
.st-suisse .cv-sec{border-top:2px solid var(--fg);padding-top:14px}
.st-suisse .sec-head{flex-direction:column;gap:2px}
.st-suisse .sec-head .label{color:var(--a)}
.st-suisse .sec-head h2{font-weight:600;letter-spacing:-.02em}
.st-suisse .tl{padding-left:0;gap:0}
.st-suisse .tl::before,.st-suisse .tl-fill,.st-suisse .item::before{display:none}
.st-suisse .item{border-top:1px solid #9A9A9A;padding:14px 0}
.st-suisse .item:first-of-type{border-top:0;padding-top:0}
.st-suisse .item h3{font-weight:600}
.st-suisse .meta{color:var(--a);font-weight:500;font-size:13px}
.st-suisse .item ul{list-style:"– ";color:var(--fg)}
.st-suisse .item li::marker{color:var(--fg)}
.st-suisse .group{background:none;border:0;border-top:1px solid var(--fg);border-radius:0;padding:10px 0 0}
.st-suisse .chips{gap:4px 14px}
.st-suisse .chip{background:none;border:0;border-radius:0;padding:2px 0;font-size:14px}
.st-suisse button.chip:hover{color:var(--a)}
.st-suisse .chip.active{background:var(--a);color:#fff;padding:2px 6px}
.st-suisse .lvl{color:var(--a)}.st-suisse .lvl b{color:#B5B5B5}
.st-suisse .dots i{border-radius:0}.st-suisse .dots i.on{box-shadow:none}
.st-suisse .certs dt{color:var(--a);font-weight:600}
.st-suisse .row{border-bottom:1px solid #9A9A9A}
.st-suisse .filter-banner{border:0;border-left:6px solid var(--a);border-radius:0}
@container cv (min-width:760px){
  .st-suisse .wrap{max-width:1000px}
  .st-suisse .cv-sec{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px 32px}
  .st-suisse .sec-head{grid-column:1;grid-row:1/span 6;align-self:start}
  .st-suisse .cv-sec > :not(.sec-head){grid-column:2}
  .st-suisse .hint{margin-top:0}
  .st-suisse .stats{padding-left:232px}
}

/* ==== 10. Aurore : aurore boréale animée, cartes en verre ==== */
.cv.st-aurore{--display:Manrope,Inter,system-ui,sans-serif;--body:Inter,system-ui,sans-serif;--radius:20px;--name-anim:fade;
  --bg:#070B1A;--surface:rgba(255,255,255,.06);--line:rgba(255,255,255,.15);--fg:#EEF1FF;--muted:#AEB5D2;--a:#7CF5C8;--b:#A99CFF;--grid:transparent;--glow:rgba(124,245,200,.28);--on-a:#070B1A;
  position:relative;isolation:isolate;overflow:hidden}
.cv.st-aurore::before{content:"";position:absolute;z-index:-1;inset:-15% -10% auto;height:120%;pointer-events:none;filter:blur(36px);
  background:radial-gradient(38% 28% at 20% 8%,rgba(124,245,200,.32),transparent 70%),radial-gradient(34% 30% at 78% 14%,rgba(156,140,255,.36),transparent 70%),radial-gradient(40% 24% at 50% 46%,rgba(80,170,255,.18),transparent 70%),radial-gradient(36% 22% at 15% 80%,rgba(255,120,200,.14),transparent 70%);
  animation:aurora 18s ease-in-out infinite alternate}
@keyframes aurora{from{transform:translate3d(-3%,0,0) scale(1)}to{transform:translate3d(4%,3%,0) scale(1.08)}}
.st-aurore .cv-name .last{background:linear-gradient(90deg,var(--a),var(--b));-webkit-background-clip:text;background-clip:text;color:transparent}
.st-aurore .avatar{border-radius:50%;border:2px solid rgba(255,255,255,.5);box-shadow:0 0 0 6px rgba(124,245,200,.12),0 0 40px rgba(156,140,255,.4)}
.st-aurore .label{font-family:var(--body);letter-spacing:.14em}
.st-aurore .tag,.st-aurore .act{border-radius:999px;background:rgba(255,255,255,.06);border-color:var(--line);color:var(--fg);backdrop-filter:blur(8px)}
.st-aurore .stats{background:none;border:0;gap:14px;overflow:visible}
.st-aurore .stat,.st-aurore .cv-sec{background:rgba(255,255,255,.055);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.st-aurore .stat b{background:linear-gradient(90deg,var(--a),var(--b));-webkit-background-clip:text;background-clip:text;color:transparent}
.st-aurore .cv-sec{padding:26px}
.st-aurore .sec-head h2{font-weight:700}
.st-aurore .group{background:rgba(255,255,255,.04);border-color:var(--line);border-radius:14px}
.st-aurore .chip{border-radius:999px;background:rgba(255,255,255,.05)}
.st-aurore .item::before{background:#0D1328}
.st-aurore .filter-banner{border-radius:14px}
@container cv (min-width:760px){.st-aurore .body{grid-template-columns:minmax(0,1fr) 340px;gap:20px}.st-aurore .col-main,.st-aurore .col-side{gap:20px}}

/* ==== 11. Sobre : lisible par les logiciels de recrutement (ATS), impression nette ==== */
.cv.st-sobre{--display:"IBM Plex Sans","Segoe UI",Arial,sans-serif;--body:"IBM Plex Sans","Segoe UI",Arial,sans-serif;--mono:"IBM Plex Sans","Segoe UI",Arial,sans-serif;--radius:0;--name-anim:fade;
  --bg:#F4F3EF;--surface:#ECEAE4;--line:#C9C6BD;--fg:#1B1B1B;--muted:#4A4A4A;--a:#1F4E79;--b:#1F4E79;--grid:transparent;--glow:rgba(31,78,121,.15);--on-a:#fff;font-size:15.5px}
.st-sobre .wrap{max-width:780px;gap:30px}
.st-sobre .hero{gap:8px;border-bottom:2px solid var(--a);padding-bottom:20px}
.st-sobre .cv-name{font-weight:600;font-size:clamp(2rem,6vw,2.8rem);letter-spacing:0}
.st-sobre .cv-name .last{color:var(--fg);text-transform:uppercase}
.st-sobre .label{text-transform:none;letter-spacing:0;color:var(--muted);font-size:14px}
.st-sobre .role{font-weight:600;color:var(--a);font-size:1.1rem}
.st-sobre .avatar{border:0;box-shadow:none;border-radius:4px;width:88px}
.st-sobre .lead{color:var(--fg);max-width:none}
.st-sobre .tags{gap:4px 16px}
.st-sobre .tag{border:0;padding:0;font-size:13.5px}
.st-sobre .tag::before{width:5px;height:5px;box-shadow:none}
.st-sobre .act{border-color:var(--line);color:var(--fg);border-radius:4px}
.st-sobre .stats{background:none;border:0;gap:0 28px;display:flex;flex-wrap:wrap}
.st-sobre .stat{background:none;padding:0;flex-direction:row;align-items:baseline;gap:6px}
.st-sobre .stat b{font-size:1.25rem;font-weight:600;color:var(--a)}
.st-sobre .stat span{font-size:14px}
.st-sobre .cv-sec{gap:14px}
.st-sobre .sec-head{border-bottom:1px solid var(--line);padding-bottom:4px}
.st-sobre .sec-head .label{display:none}
.st-sobre .sec-head h2{font-size:1.1rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--a)}
.st-sobre .hint{display:none}
.st-sobre .tl{padding-left:0;gap:16px}
.st-sobre .tl::before,.st-sobre .tl-fill,.st-sobre .item::before{display:none}
.st-sobre .item h3{font-size:1rem}
.st-sobre .meta{color:var(--muted);font-family:var(--body);font-size:13.5px}
.st-sobre .item ul{color:var(--fg);font-size:14.5px}
.st-sobre .item li::marker{color:var(--fg)}
.st-sobre .skills{grid-template-columns:1fr;gap:6px}
.st-sobre .group{background:none;border:0;padding:0;flex-direction:row;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.st-sobre .group h3{font-size:14.5px;min-width:150px}
.st-sobre .group h3::after{content:" :"}
.st-sobre .chips{gap:2px 0}
.st-sobre .chip{background:none;border:0;padding:0;border-radius:0;font-size:14.5px;gap:0}
.st-sobre .chip:not(:last-child)::after{content:",\00a0"}
.st-sobre .chip.active{color:var(--a);text-decoration:underline}
.st-sobre .lvl{display:none}
.st-sobre .langs{flex-direction:row;flex-wrap:wrap;gap:4px 20px}
.st-sobre .dots{display:none}
.st-sobre .langs li{display:flex;gap:6px}
.st-sobre .langs small{color:var(--muted)}
.st-sobre .row{border-bottom:0;padding-bottom:0}
.st-sobre .certs dt{color:var(--a);font-family:var(--body);font-weight:600}

/* ==== 12. Exécutif : bleu nuit, or, empattements ==== */
.cv.st-executif{--display:Fraunces,Georgia,serif;--body:Inter,system-ui,sans-serif;--mono:Inter,system-ui,sans-serif;--radius:2px;
  --bg:#0F1B2D;--surface:#15243A;--line:#2E4058;--fg:#F3EEE3;--muted:#B9B3A6;--a:#D4AF6A;--b:#D4AF6A;--grid:transparent;--glow:rgba(212,175,106,.25);--on-a:#0F1B2D;
  background-image:linear-gradient(180deg,rgba(212,175,106,.08),transparent 380px)}
.st-executif .hero{align-items:center;text-align:center;padding-bottom:26px;border-bottom:1px solid var(--a)}
.st-executif .hero-top{flex-direction:column;align-items:center}
.st-executif .hero-id{align-items:center}
.st-executif .label{letter-spacing:.32em;font-size:11px;color:var(--a)}
.st-executif .cv-name{font-weight:600;letter-spacing:.01em;font-size:clamp(2.3rem,7vw,4rem)}
.st-executif .cv-name .last{color:var(--fg);font-variant:small-caps;letter-spacing:.06em}
.st-executif .avatar{border-radius:50%;border:1px solid var(--a);box-shadow:0 0 0 6px var(--bg),0 0 0 7px rgba(212,175,106,.5)}
.st-executif .role{font-family:var(--display);font-style:italic;font-size:1.25rem;color:var(--a)}
.st-executif .lead{margin:0 auto;font-size:16.5px}
.st-executif .tags,.st-executif .actions{justify-content:center}
.st-executif .tag{border-color:rgba(212,175,106,.45);border-radius:0;letter-spacing:.04em}
.st-executif .tag::before{width:5px;height:5px;transform:rotate(45deg);border-radius:0;box-shadow:none}
.st-executif .act{border-radius:0;letter-spacing:.08em}
.st-executif .stats{background:none;border:0;gap:0}
.st-executif .stat{background:none;text-align:center;border-left:1px solid var(--line)}
.st-executif .stat:first-child{border-left:0}
.st-executif .stat b{font-family:var(--display);font-weight:600}
.st-executif .sec-head{flex-direction:column;align-items:flex-start;gap:2px}
.st-executif .sec-head .label{font-size:10.5px}
.st-executif .sec-head h2{font-weight:600;font-size:1.6rem}
.st-executif .sec-head::after{content:"";width:48px;height:2px;background:var(--a);margin-top:8px}
.st-executif .tl::before{background:var(--line);width:1px;left:7.5px}
.st-executif .tl-fill{width:1px;left:7.5px;background:var(--a)}
.st-executif .item::before{width:11px;height:11px;left:-27px;top:7px;transform:rotate(45deg);border-radius:0;border-width:1px}
.st-executif .item h3{font-family:var(--display);font-weight:600;font-size:1.2rem}
.st-executif .meta{letter-spacing:.04em}
.st-executif .group{background:none;border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0 0}
.st-executif .group h3{color:var(--a);letter-spacing:.12em;text-transform:uppercase;font-size:12px}
.st-executif .chip{background:none;border-color:var(--line);border-radius:0}
.st-executif .certs dt{color:var(--a)}
.st-executif .cv-foot{text-align:center;letter-spacing:.12em;text-transform:uppercase;font-size:11px}
@container cv (min-width:760px){
  .st-executif .body{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:0 44px}
  .st-executif .col-side{border-left:1px solid rgba(212,175,106,.45);padding-left:36px}
}

/* ==== 13. Carnet : papier ligné, encre bleue, surligneur ==== */
.cv.st-carnet{--display:Caveat,"Segoe Print",cursive;--body:"IBM Plex Sans",system-ui,sans-serif;--radius:4px;
  --bg:#F7F1DE;--surface:#FFFBEE;--line:#B9C7DE;--fg:#1F2937;--muted:#46505E;--a:#1E3A8A;--b:#B4232C;--grid:transparent;--glow:rgba(30,58,138,.15);--on-a:#fff;
  background-image:linear-gradient(90deg,transparent 46px,rgba(212,58,58,.55) 46px 48px,transparent 48px),repeating-linear-gradient(transparent 0 27px,rgba(80,120,190,.28) 27px 28px);
  background-size:auto;padding-left:max(64px,env(safe-area-inset-left,0px))}
.st-carnet .cv-name{font-weight:700;color:var(--a);font-size:clamp(3rem,10vw,5.2rem);line-height:.95}
.st-carnet .cv-name .last{color:var(--a);background:linear-gradient(transparent 55%,rgba(255,226,74,.85) 55% 90%,transparent 90%);padding:0 .1em}
.st-carnet .label{font-family:var(--display);font-size:20px;letter-spacing:0;text-transform:none;color:var(--b)}
.st-carnet .avatar{border:6px solid #fff;border-radius:2px;box-shadow:0 6px 14px -6px rgba(0,0,0,.35);transform:rotate(-3deg)}
.st-carnet .role{font-family:var(--display);font-size:1.7rem;color:var(--fg);line-height:1.15}
.st-carnet .cursor{background:var(--a)}
.st-carnet .lead{color:var(--fg)}
.st-carnet .tag{border:0;background:rgba(255,226,74,.6);border-radius:2px;color:var(--fg)}
.st-carnet .tag::before{display:none}
.st-carnet .act{border-color:var(--a);color:var(--a);border-radius:999px}
.st-carnet .stats{background:none;border:0;gap:14px;overflow:visible}
.st-carnet .stat{background:#FFF6B8;border-radius:2px;box-shadow:0 8px 14px -10px rgba(0,0,0,.4);transform:rotate(-1.5deg)}
.st-carnet .stat:nth-child(even){background:#D9F0FF;transform:rotate(1.2deg)}
.st-carnet .stat b{font-family:var(--display);font-weight:700;font-size:2.6rem;color:var(--a)}
.st-carnet .stat span{color:var(--fg)}
.st-carnet .sec-head .label{display:none}
.st-carnet .sec-head h2{font-family:var(--display);font-weight:700;font-size:2.3rem;color:var(--b)}
.st-carnet .tl::before{background:var(--a);opacity:.35}
.st-carnet .tl-fill{background:var(--a)}
.st-carnet .item::before{border-color:var(--a);background:var(--bg)}
.st-carnet .item.lit::before{background:var(--a);box-shadow:none}
.st-carnet .item h3{font-family:var(--display);font-weight:700;font-size:1.55rem;color:var(--a);line-height:1.1}
.st-carnet .meta{color:var(--b)}
.st-carnet .item ul{color:var(--fg)}
.st-carnet .item li::marker{color:var(--b)}
.st-carnet .group{background:rgba(255,251,238,.85);border:1px solid var(--line);box-shadow:0 6px 12px -10px rgba(0,0,0,.35)}
.st-carnet .group h3{font-family:var(--display);font-size:1.4rem;font-weight:700;color:var(--a)}
.st-carnet .chip{background:none;border:1.5px solid var(--a);border-radius:999px;color:var(--a)}
.st-carnet .chip.active{background:var(--a);color:#fff}
.st-carnet .lvl{color:var(--a)}.st-carnet .lvl b{color:var(--line)}
.st-carnet .certs dt{font-family:var(--display);font-size:1.3rem;font-weight:700;color:var(--b);padding-top:0}
.st-carnet .row{border-bottom:0}
.st-carnet .cv-foot{font-family:var(--display);font-size:18px;color:var(--muted)}

/* ==== 14. Phosphore : vieux terminal vert, balayage d'écran ==== */
.cv.st-phosphore{--display:"IBM Plex Mono",ui-monospace,monospace;--body:"IBM Plex Mono",ui-monospace,monospace;--radius:0;
  --bg:#031A0B;--surface:#062712;--line:#1E6B3A;--fg:#5CFF95;--muted:#3FCB72;--a:#C8FF5C;--b:#5CFF95;--grid:transparent;--glow:rgba(92,255,149,.3);--on-a:#031A0B;
  position:relative;isolation:isolate;font-size:14.5px;text-shadow:0 0 6px rgba(92,255,149,.45);
  background-image:radial-gradient(120% 90% at 50% 30%,#06301A,#021208 80%)}
.cv.st-phosphore::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background:repeating-linear-gradient(rgba(0,0,0,.22) 0 1px,transparent 1px 3px);animation:flicker 5s steps(1) infinite}
@keyframes flicker{0%,100%{opacity:1}48%{opacity:.82}50%{opacity:1}}
.st-phosphore .boot{background:transparent;border-style:dashed;color:var(--muted)}
.st-phosphore .boot .ok{color:var(--a)}
.st-phosphore .cv-name{font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.st-phosphore .cv-name .last{color:var(--a)}
.st-phosphore .avatar{border:1px solid var(--fg);box-shadow:none;filter:grayscale(1) sepia(1) hue-rotate(70deg) saturate(3) brightness(.85)}
.st-phosphore .role::before{content:"$ "}
.st-phosphore .tag{border-style:dashed}
.st-phosphore .tag::before{border-radius:0;box-shadow:none}
.st-phosphore .stats{background:none;border:1px dashed var(--line);gap:0}
.st-phosphore .stat{background:none;border-left:1px dashed var(--line)}
.st-phosphore .stat:first-child{border-left:0}
.st-phosphore .stat b{font-weight:500}
.st-phosphore .sec-head .label::before{content:"# "}
.st-phosphore .sec-head h2{text-transform:uppercase;font-weight:500;font-size:1.1rem;letter-spacing:.08em}
.st-phosphore .sec-head h2::before{content:"> "}
.st-phosphore .item::before{border-radius:0}
.st-phosphore .item h3{text-transform:uppercase;font-weight:500;font-size:.98rem}
.st-phosphore .item ul{color:var(--fg);list-style:"- "}
.st-phosphore .group{background:none;border-style:dashed}
.st-phosphore .group h3::before{content:"[ "}.st-phosphore .group h3::after{content:" ]"}
.st-phosphore .chip{background:none;border-style:dashed}
.st-phosphore .chip.active{text-shadow:none}
.st-phosphore .act{border-style:dashed}

/* ==== 15. Terracotta : sable, terre cuite, arches méditerranéennes ==== */
.cv.st-terracotta{--display:Fraunces,Georgia,serif;--body:Inter,system-ui,sans-serif;--mono:Inter,system-ui,sans-serif;--radius:18px;
  --bg:#F3E6D8;--surface:#EAD7C3;--line:#D2B79C;--fg:#2B1D14;--muted:#5C4434;--a:#923C18;--b:#525C2E;--grid:transparent;--glow:rgba(165,70,31,.18);--on-a:#fff;
  background-image:radial-gradient(60% 50% at 100% 0%,rgba(165,70,31,.16),transparent 70%),radial-gradient(50% 40% at 0% 100%,rgba(82,92,46,.14),transparent 70%)}
.st-terracotta .hero-top{align-items:center}
.st-terracotta .avatar{border-radius:999px 999px 14px 14px;border:0;box-shadow:0 0 0 6px var(--surface);aspect-ratio:4/5;height:auto}
.st-terracotta .label{color:var(--b);letter-spacing:.14em}
.st-terracotta .cv-name{font-weight:600;letter-spacing:-.02em}
.st-terracotta .cv-name .last{color:var(--a);font-style:italic}
.st-terracotta .role{font-family:var(--body);font-weight:500;color:var(--b)}
.st-terracotta .tag{border:0;background:var(--surface);border-radius:999px}
.st-terracotta .tag::before{background:var(--a);box-shadow:none}
.st-terracotta .act{border-radius:999px}
.st-terracotta .stats{background:none;border:0;gap:12px;overflow:visible}
.st-terracotta .stat{border-radius:999px 999px 16px 16px;padding:28px 16px 16px;text-align:center;background:var(--surface)}
.st-terracotta .stat:nth-child(odd){background:#E3C6AA}
.st-terracotta .stat b{font-family:var(--display);font-weight:600;color:var(--a)}
.st-terracotta .stat span{color:var(--fg)}
.st-terracotta .sec-head h2{font-weight:600;font-size:1.7rem}
.st-terracotta .sec-head .label{color:var(--b)}
.st-terracotta .tl::before{background:var(--line)}
.st-terracotta .tl-fill{background:linear-gradient(var(--a),var(--b))}
.st-terracotta .item::before{background:var(--bg)}
.st-terracotta .item h3{font-family:var(--display);font-weight:600;font-size:1.2rem}
.st-terracotta .meta{color:var(--a)}
.st-terracotta .group{background:rgba(255,248,240,.55);border:0;border-radius:16px}
.st-terracotta .group h3{color:var(--b)}
.st-terracotta .chip{border-radius:999px;background:var(--bg);border-color:var(--line)}
.st-terracotta .certs dt{color:var(--a)}
@container cv (min-width:760px){
  .st-terracotta .body{grid-template-columns:minmax(0,1fr) 320px}
  .st-terracotta .col-side{background:var(--surface);border-radius:160px 160px 22px 22px;padding:56px 24px 28px}
}

@keyframes lineIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
@keyframes charUp{from{opacity:0;transform:translateY(.55em) rotate(4deg)}to{opacity:1;transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes chipIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@keyframes blink{50%{opacity:0}}
@keyframes pulse{0%{box-shadow:0 0 0 0 var(--glow)}60%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 5px var(--glow)}}

/* Aperçu de l'éditeur et préférence « moins d'animations » : tout est visible tout de suite */
.cv.calm *,.cv.calm *::before,.cv.calm *::after{animation:none!important}
@media (prefers-reduced-motion:reduce){.cv *,.cv *::before,.cv *::after{animation:none!important;transition:none!important}}

@container cv (max-width:620px){
  .st-journal .stat:nth-child(odd){border-left:0}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .skills{grid-template-columns:1fr}
  .hero-top{flex-direction:column;align-items:flex-start}
}

/* ==== Fenêtre « Exporter en PDF » (aux couleurs du thème, recopiées par cv-runtime.js) ==== */
.cvolt-pdf-dlg{border:1px solid var(--line,#26374D);border-radius:14px;padding:0;width:min(440px,calc(100vw - 32px));background:var(--surface,#152031);color:var(--fg,#E7EDF4);font:15px/1.5 var(--body,system-ui,sans-serif);box-shadow:0 24px 60px -20px rgba(0,0,0,.6)}
.cvolt-pdf-dlg::backdrop{background:rgba(5,10,20,.6)}
.cvolt-pdf-dlg form{display:flex;flex-direction:column;gap:14px;padding:20px}
.cvolt-pdf-dlg h2{margin:0;font:600 1.2rem/1.3 var(--display,system-ui,sans-serif)}
.cvolt-pdf-dlg fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cvolt-pdf-dlg legend{font:12px var(--mono,ui-monospace,monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#94A4B9);margin-bottom:8px;padding:0}
.cvolt-pdf-dlg .opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line,#26374D);border-radius:10px;cursor:pointer;background:var(--bg,#0E1520)}
.cvolt-pdf-dlg .opt:has(input:checked){border-color:var(--a,#F2A541);box-shadow:inset 0 0 0 1px var(--a,#F2A541)}
.cvolt-pdf-dlg .opt input{accent-color:var(--a,#F2A541);margin:3px 0 0;width:18px;height:18px;flex:none}
.cvolt-pdf-dlg .opt span{display:flex;flex-direction:column;gap:2px}
.cvolt-pdf-dlg .opt small{color:var(--muted,#94A4B9);font-size:13.5px;line-height:1.4}
.cvolt-pdf-dlg .tip{margin:0;font-size:13px;color:var(--muted,#94A4B9)}
.cvolt-pdf-dlg .btns{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.cvolt-pdf-dlg button{font:600 14px/1 var(--body,system-ui,sans-serif);padding:11px 16px;border-radius:8px;cursor:pointer;border:1px solid var(--a,#F2A541);min-height:44px}
.cvolt-pdf-dlg .main{background:var(--a,#F2A541);color:var(--on-a,#0E1520)}
.cvolt-pdf-dlg .ghost{background:transparent;color:var(--fg,#E7EDF4);border-color:var(--line,#26374D)}
.cvolt-pdf-dlg :focus-visible{outline:2px solid var(--b,#62C9D9);outline-offset:2px}

/* ==== Export PDF (A4) ====
   Mise en page commune : en-tête compact, corps en deux colonnes (parcours | contact, compétences, formations).
   Mode impression (par défaut, ou .print-eco) : fond blanc, couleurs en touches, aucun aplat → économe en encre.
   Mode en ligne (.print-color) : fidèle au thème, fond de page compris.
   @page sans marge : supprime les en-têtes et pieds de page du navigateur (date, adresse) ; les marges
   sont recréées par le padding du CV, répété sur chaque page (box-decoration-break). */
@media print{
  @page{size:A4;margin:0}
  html,body{margin:0!important;padding:0!important;min-height:0!important;background:#fff!important}
  .view-cv{padding:0!important;margin:0!important}
  html:has(.cv.print-color){background:var(--print-bg,#fff)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html:has(.cv.print-color) body{background:transparent!important}
  .cvolt-pdf-dlg,.boot,.actions,.hint,.filter-banner,.copy,.cursor{display:none!important}
  .cv *,.cv *::before,.cv *::after{animation:none!important;transition:none!important}

  /* -- Gabarit -- */
  .cv{font-size:12.5px;line-height:1.45;min-height:0!important;padding:12mm 14mm 11mm!important;
    -webkit-box-decoration-break:clone;box-decoration-break:clone;-webkit-print-color-adjust:exact;print-color-adjust:exact;orphans:3;widows:3}
  .cv .wrap{max-width:none!important}
  .cv .hero{gap:7px!important}
  .cv .hero-top{gap:16px!important;align-items:center!important}
  .cv .hero-id{gap:3px!important}
  .cv .avatar{width:82px!important;box-shadow:none!important}
  .cv .cv-name{font-size:31px!important;line-height:1.08!important}
  .cv .role{font-size:13.5px!important;min-height:0!important}
  .cv .lead{font-size:13px!important;line-height:1.5!important;max-width:none!important}
  .cv .tags{gap:5px 6px!important}
  .cv .tag{font-size:10.5px!important;padding:2px 8px!important;gap:6px!important}
  .cv .tag::before{width:6px!important;height:6px!important;box-shadow:none!important}
  .cv .stats{break-inside:avoid}
  .cv .stat{padding:7px 12px!important;gap:1px!important}
  .cv .stat b{font-size:20px!important}
  .cv .stat span{font-size:10.5px!important;line-height:1.3!important}
  /* Deux colonnes : parcours, projets, formations (et pied de page) à gauche ; contact puis compétences à droite.
     Les conteneurs d'origine s'effacent (display:contents) et tout se place dans une seule grille ;
     la rangée 1fr absorbe la différence de hauteur, pour qu'aucun trou n'apparaisse dans la colonne la plus courte. */
  .cv .wrap{display:grid!important;grid-template-columns:minmax(0,1fr) 38%;grid-template-rows:repeat(6,auto) 1fr;gap:0 24px!important;align-items:start}
  .cv .body,.cv .col-main,.cv .col-side{display:contents!important}
  .cv .hero{grid-column:1;grid-row:1;margin-bottom:14px}
  .cv .stats{grid-column:1 / -1;grid-row:2;margin-bottom:16px}
  .cv .cv-sec{grid-column:1;margin-bottom:16px}
  .cv #cv-parcours{grid-row:3}
  .cv #cv-projets{grid-row:4}
  .cv #cv-formations{grid-row:5}
  .cv .cv-foot{grid-column:1;grid-row:6}
  .cv #cv-contact{grid-column:2;grid-row:1;margin-bottom:14px;padding-top:4px!important}
  .cv #cv-competences{grid-column:2;grid-row:3 / 8;margin-bottom:0}
  .cv.st-rapide .wrap{grid-template-columns:38% minmax(0,1fr)}
  .cv.st-rapide .cv-sec,.cv.st-rapide .cv-foot,.cv.st-rapide .hero{grid-column:2}
  .cv.st-rapide #cv-contact,.cv.st-rapide #cv-competences{grid-column:1}
  /* Sobre : une seule colonne, lisible par les logiciels de tri de CV */
  .cv.st-sobre .wrap{display:flex!important;flex-direction:column;align-items:stretch!important;gap:14px!important}
  .cv.st-sobre .hero,.cv.st-sobre .stats,.cv.st-sobre .cv-sec{margin:0!important}
  .cv.st-sobre #cv-contact{order:1}.cv.st-sobre .stats{order:2}.cv.st-sobre #cv-parcours{order:3}.cv.st-sobre #cv-projets{order:4}
  .cv.st-sobre #cv-competences{order:5}.cv.st-sobre #cv-formations{order:6}.cv.st-sobre .cv-foot{order:7}
  .cv.st-sobre .contact{flex-direction:row!important;flex-wrap:wrap;gap:4px 22px!important}
  .cv.st-sobre .row{border:0!important;padding:0!important}
  .cv.st-sobre .skills{grid-template-columns:1fr!important;gap:4px!important}
  .cv.st-sobre .group{flex-direction:row!important;flex-wrap:wrap;align-items:baseline;gap:2px 10px!important;padding:0!important;border:0!important}
  .cv.st-sobre .group h3{min-width:130px}
  .cv.st-sobre .chips{gap:1px 0!important}
  .cv.st-sobre .chip{font-size:12.5px!important}
  .cv.cv.st-sobre .stats{border:0!important;gap:0 24px!important}
  .cv.cv.st-sobre .stat{border:0!important;padding:0!important;flex-direction:row!important;gap:5px!important;align-items:baseline}
  .cv.st-sobre .stat b{font-size:15px!important}
  .cv.st-sobre .stat span{font-size:12px!important}
  .cv.st-sobre .hero{padding-bottom:12px!important}
  .cv .cv-sec{gap:8px!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:none!important}
  .cv .sec-head{gap:3px 10px!important;break-after:avoid;flex-wrap:wrap!important}
  .cv.st-blueprint .sec-head::after{display:none}
  .cv .sec-head .label{font-size:9.5px!important}
  .cv .sec-head h2{font-size:17px!important}
  .cv .tl{padding-left:20px!important;gap:12px!important}
  .cv .tl::before,.cv .tl-fill{left:4px!important;top:5px!important;bottom:5px!important}
  .cv .tl-fill{transform:none!important}
  .cv:is(.st-journal,.st-suisse,.st-sobre) .tl{padding-left:0!important}
  .cv .item{gap:2px!important;break-inside:avoid}
  .cv .item+.item{padding-top:0}
  .cv .item::before{left:-20px!important;top:4px!important;width:10px!important;height:10px!important;box-shadow:none!important}
  .cv .item h3{font-size:14px!important}
  .cv .meta{font-size:11px!important}
  .cv .item ul{font-size:12.5px!important;gap:2px!important;margin-top:3px!important;padding-left:16px!important}
  .cv .skills{grid-template-columns:1fr!important;gap:7px!important}
  .cv .group{padding:7px 10px 8px!important;gap:4px!important;break-inside:avoid;border-radius:min(var(--radius),8px)!important}
  .cv .group h3{font-size:12.5px!important}
  .cv .chips{gap:4px!important}
  .cv .chip{font-size:11px!important;padding:1px 6px!important}
  .cv.st-sobre .chip,.cv.st-journal .chip{padding:0 1px!important}
  .cv .langs{gap:4px!important}
  .cv .langs li{font-size:12.5px!important;break-inside:avoid}
  .cv .langs small{font-size:10.5px!important}
  .cv .dots i{width:7px!important;height:7px!important;box-shadow:none!important}
  .cv .certs{gap:4px 12px!important}
  .cv .certs dt{font-size:10.5px!important}
  .cv .certs dd{font-size:12.5px!important;break-inside:avoid}
  .cv .contact{gap:5px!important}
  .cv .row{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important;padding-bottom:5px!important;break-inside:avoid}
  .cv .row .k{font-size:9.5px!important;min-width:0!important}
  .cv .row .v{font-size:12.5px!important}
  .cv a{text-decoration:none!important}
  .cv .cv-foot{font-size:9.5px!important;padding-top:6px!important;text-wrap:balance}

  /* Décors trop lourds ou impossibles à découper en pages */
  .cv::before,.cv::after{display:none!important}
  .cv{border:0!important;border-radius:0!important;box-shadow:none!important}
  .cv.st-synthwave .hero{padding:4px 0 0!important;overflow:visible!important}
  .cv.st-synthwave .hero::before,.cv.st-synthwave .hero::after{display:none!important}

  /* -- Mode impression : fond blanc, aucune surface colorée, couleurs réservées aux accents -- */
  .cv:not(.print-color){--bg:#fff;--surface:#fff;--fg:#17202C;--muted:#4A5566;--line:#CBD2DC;--grid:transparent;--glow:transparent;--on-a:#fff;
    background:#fff!important;background-image:none!important;color:var(--fg)!important}
  .cv.st-console:not(.print-color){--a:#A85F08;--b:#0F7484}
  .cv.st-rapide:not(.print-color){--a:#B5226A;--b:#1746D1}
  .cv.st-journal:not(.print-color){--a:#C4161C;--b:#141414;--fg:#141414;--line:#B9B5AA}
  .cv.st-synthwave:not(.print-color){--a:#C2185B;--b:#0E7C86}
  .cv.st-blueprint:not(.print-color){--a:#0D3B66;--b:#2A6496;--line:#8FB0D0}
  .cv.st-bento:not(.print-color){--a:#5B5BD6;--b:#0E7F5A}
  .cv.st-brutal:not(.print-color){--a:#0A0A0A;--b:#1A3FD9;--line:#0A0A0A;--fg:#0A0A0A}
  .cv.st-craie:not(.print-color){--a:#2D6A4F;--b:#1F6F8B}
  .cv.st-suisse:not(.print-color){--a:#E30613;--b:#111;--line:#111;--fg:#111}
  .cv.st-aurore:not(.print-color){--a:#0B8A63;--b:#5B4BD1}
  .cv.st-sobre:not(.print-color){--a:#1F4E79;--b:#1F4E79}
  .cv.st-executif:not(.print-color){--a:#8A6A2C;--b:#0F1B2D}
  .cv.st-carnet:not(.print-color){--a:#1E3A8A;--b:#B4232C}
  .cv.st-phosphore:not(.print-color){--a:#1E6B3A;--b:#1E6B3A}
  .cv.st-terracotta:not(.print-color){--a:#923C18;--b:#525C2E}
  .cv:not(.print-color) *{background:transparent!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;backdrop-filter:none!important}
  .cv:not(.print-color) .avatar{filter:none!important}
  .cv:not(.print-color) .cv-name,.cv:not(.print-color) .cv-name *{color:var(--fg)!important;-webkit-text-fill-color:currentColor!important;-webkit-text-stroke:0!important;transform:none!important}
  .cv:not(.print-color) .cv-name .last,.cv:not(.print-color) .cv-name .last *{color:var(--a)!important}
  .cv.st-journal:not(.print-color) .cv-name .last,.cv.st-journal:not(.print-color) .cv-name .last *{color:var(--fg)!important}
  .cv:not(.print-color) .stat b{color:var(--a)!important;-webkit-text-fill-color:currentColor!important}
  .cv:not(.print-color) .stats{border:1px solid var(--line)!important;gap:0!important;border-radius:min(var(--radius),8px)!important;overflow:hidden}
  .cv:not(.print-color) .stat{border:0!important;border-left:1px solid var(--line)!important;border-radius:0!important}
  .cv:not(.print-color) .stat:first-child{border-left:0!important}
  .cv:not(.print-color) .sec-head h2,.cv:not(.print-color) .role{color:var(--fg)!important}
  .cv:not(.print-color) .sec-head .label{color:var(--b)!important}
  .cv:not(.print-color) .certs dt{color:var(--a)!important}
  .cv:not(.print-color) .tl-fill{display:none!important}
  .cv:not(.print-color) .tl::before{background:var(--line)!important;opacity:1!important}
  .cv:not(.print-color) .item::before{background:#fff!important;border:1.5px solid var(--a)!important}
  .cv:not(.print-color) .tag::before{background:var(--a)!important}
  .cv:not(.print-color) .dots i{background:#D5DAE1!important}
  .cv:not(.print-color) .stat{transform:none!important}
  .cv:not(.print-color) .dots i.on{background:var(--a)!important}
  .cv:not(.print-color) .group,.cv:not(.print-color) .chip,.cv:not(.print-color) .tag{border-color:var(--line)!important}

  /* -- Mode en ligne : le thème tel quel, couleurs de fond imprimées -- */
  .cv.print-color,.cv.print-color *,.cv.print-color *::before,.cv.print-color *::after{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
}
