:root{--paper: #f1ede1;--ivory: #f7f4ea;--vellum: #e4ddc9;--vellum-2: #d9d2bc;--ink: #1e1a14;--ink-2: #2d2820;--red: #a8332b;--red-dk: #7e2620;--red-soft: rgba(168, 51, 43, .08);--red-border: rgba(168, 51, 43, .22);--ochre: #b8834e;--ochre-dk: #8f6537;--stone: #8b8377;--stone-dk: #4a4740;--line: #c9c2b0;--line-dk: #2a2620;--bg-base: var(--paper);--bg-alt: var(--vellum);--bg-dark: var(--ink);--surface-card: var(--paper);--surface-hover: var(--ivory);--text-strong: var(--ink);--text-body: var(--ink-2);--text-muted: var(--stone-dk);--text-faint: var(--stone);--text-on-dark: var(--paper);--accent: var(--red);--accent-press: var(--red-dk);--accent-2: var(--ochre);--rule: var(--line);--rule-strong: var(--ink);--rule-on-dark: var(--paper);--font-h: "Bricolage Grotesque", system-ui, sans-serif;--font-b: "Work Sans", system-ui, sans-serif;--font-m: "JetBrains Mono", "SF Mono", Menlo, monospace;--font-s: "Instrument Serif", Georgia, serif;--w-regular: 400;--w-medium: 500;--w-semibold: 600;--w-bold: 700;--w-extrabold: 800;--t-h1: clamp(48px, 8vw, 116px);--t-h2: clamp(34px, 5vw, 60px);--t-h3: clamp(22px, 2.4vw, 32px);--t-h4: 17px;--t-lead: clamp(18px, 1.8vw, 22px);--t-body: 16.5px;--t-body-sm: 14.5px;--t-caption: 13px;--t-folio: 11px;--t-eyebrow: 11px;--t-micro: 10.5px;--lh-display: .98;--lh-tight: 1.15;--lh-snug: 1.35;--lh-body: 1.55;--lh-relaxed: 1.65;--ls-display: -.035em;--ls-h2: -.03em;--ls-h3: -.025em;--ls-tight: -.015em;--ls-body: -.005em;--ls-folio: .14em;--ls-eyebrow: .2em;--ls-label: .18em;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 2.75rem;--sp-8: 4rem;--sp-9: 6rem;--sp-10: 7.75rem;--bw-hair: 1px;--bw-rule: 1.5px;--bw-bold: 2.5px;--bw-heavy: 3px;--r-none: 0;--r-xs: 2px;--r-sm: 3px;--shadow-card: 0 1px 0 rgba(30, 26, 20, .04);--shadow-pop: 0 18px 50px -22px rgba(30, 26, 20, .35);--ring: 0 0 0 3px rgba(168, 51, 43, .3);--max: 1280px;--max-sm: 1020px;--pad: 36px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-b);font-size:var(--t-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}::selection{background:var(--red);color:var(--paper)}h1,h2,h3,h4{font-family:var(--font-h);color:var(--ink);letter-spacing:-.025em;line-height:1.02;font-weight:500;font-variation-settings:"opsz" 48}h1{font-size:clamp(48px,8vw,112px);letter-spacing:-.035em;line-height:.96;font-variation-settings:"opsz" 96}h2{font-size:clamp(34px,5vw,58px);letter-spacing:-.03em;line-height:1.02;font-variation-settings:"opsz" 72}h3{font-size:clamp(22px,2.4vw,32px);letter-spacing:-.025em}p{margin:0}a{color:inherit;text-decoration:none;transition:opacity .12s,color .12s}ul{list-style:none}em{font-style:italic;color:var(--red)}.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}.wrap-sm{max-width:var(--max-sm);margin:0 auto;padding:0 var(--pad)}.nowrap{white-space:nowrap}.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--ink);color:var(--paper);font-family:var(--font-b);font-size:14px;padding:10px 16px}.skip-link:focus{left:8px;top:8px}.eyebrow{font-family:var(--font-m);font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:40px;display:inline-flex;align-items:center;gap:14px}.eyebrow:before{content:"";width:28px;height:1.5px;background:var(--red)}.folio{font-family:var(--font-m);font-size:var(--t-folio);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--stone-dk)}.nav{position:sticky;top:0;z-index:50;background:#f1ede1eb;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:70px;max-width:var(--max);margin:0 auto;padding:0 var(--pad)}.brand-group{display:inline-flex;align-items:baseline;gap:9px}.brand{font-family:var(--font-h);font-size:22px;font-weight:600;letter-spacing:-.03em;display:inline-flex;align-items:center;gap:10px}.brand .dot{width:7px;height:7px;background:var(--red);border-radius:50%}.brand-by{font-family:var(--font-b);font-size:12px;font-weight:500;color:var(--stone-dk);white-space:nowrap;transition:color .15s}.brand-by:hover{color:var(--red)}.brand .by{font-family:var(--font-m);font-size:10px;font-weight:500;letter-spacing:.14em;color:var(--red);text-transform:uppercase}.brand .by a{border-bottom:1px solid transparent}.brand .by a:hover{border-bottom-color:var(--red)}.nav-links{display:flex;gap:34px;align-items:center}.nav-links a{font-family:var(--font-b);font-size:14px;font-weight:500;position:relative;padding:6px 0}.nav-links a:not(.nav-cta):after{content:"";position:absolute;bottom:2px;left:0;width:0;height:1.5px;background:var(--red);transition:width .2s}.nav-links a:not(.nav-cta):hover:after{width:100%}.nav-links a.nav-cta{background:var(--ink);color:var(--paper);border:1.5px solid var(--ink);padding:13px 24px;font-size:13px;line-height:1;display:inline-flex;align-items:center;gap:10px;transition:background .15s,color .15s,border-color .15s}.nav-links a.nav-cta:hover{background:var(--red);color:var(--paper);border-color:var(--red)}.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}.burger span{width:24px;height:2px;background:var(--ink);transition:.2s}.mobile-menu{display:none;flex-direction:column;gap:4px;padding:16px var(--pad) 24px;border-bottom:1px solid var(--line);background:var(--paper)}.mobile-menu a{padding:12px 0;font-size:16px;font-weight:500;border-bottom:1px solid var(--line)}.mobile-menu.open{display:flex}@media (max-width: 900px){.nav-links a:not(.nav-cta){display:none}.burger{display:flex}}section{padding:var(--sp-10) 0;position:relative}.sec-h2{max-width:24ch;margin-bottom:28px}.sec-lead{font-size:var(--t-lead);max-width:660px;color:var(--ink-2);margin-bottom:64px;line-height:1.4;letter-spacing:-.01em}.hero{padding:120px 0 128px;position:relative;overflow:hidden;min-height:640px}.hero-fig{position:absolute;top:0;right:0;width:58%;height:100%;object-fit:cover;object-position:50% 44%;mix-blend-mode:multiply;opacity:.82;filter:contrast(1.07) saturate(.8);-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 30%,#000 55%,#000 84%,transparent 100%),linear-gradient(180deg,transparent 4%,#000 24%,#000 80%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 30%,#000 55%,#000 84%,transparent 100%),linear-gradient(180deg,transparent 4%,#000 24%,#000 80%,transparent 100%);mask-composite:intersect;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;z-index:0;pointer-events:none}@media (max-width: 760px){.hero-fig{opacity:.4;width:90%}}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--paper) 0%,rgba(241,237,225,.55) 30%,rgba(241,237,225,0) 58%);z-index:1;pointer-events:none}.hero .wrap{position:relative;z-index:2}.hero-row{display:flex;align-items:center;gap:24px;margin-bottom:56px}.hero-row:after{content:"";flex:1;height:1.5px;background:var(--ink)}.hero h1{max-width:15ch;margin-bottom:48px}.hero h1 em{font-family:var(--font-s);font-style:italic;font-weight:400}.hero-sub{font-size:clamp(19px,2vw,24px);max-width:620px;margin-bottom:48px;color:var(--ink-2);line-height:1.35;letter-spacing:-.005em}.cta-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:48px}.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;font-family:var(--font-b);font-weight:500;font-size:14.5px;cursor:pointer;border:1.5px solid transparent;transition:all .15s;letter-spacing:-.005em}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-primary:hover{background:var(--red);border-color:var(--red)}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--paper)}.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding-top:32px;border-top:1.5px solid var(--ink);max-width:860px}@media (max-width: 720px){.hero-meta{grid-template-columns:1fr;gap:18px}}.hero-meta .m{font-size:14.5px;font-weight:500;line-height:1.45}.hero-meta .m:before{content:"";display:block;width:20px;height:2px;background:var(--red);margin-bottom:10px}.hero-meta .m strong{font-weight:600}.thesis{background:var(--ink);color:var(--paper)}.thesis h2,.thesis h3{color:var(--paper)}.thesis .sec-h2 em{color:var(--red)}.thesis-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:56px;padding:64px 0 40px;margin:48px 0 24px;border-top:1.5px solid var(--paper);border-bottom:1.5px solid var(--paper)}@media (max-width: 900px){.thesis-stats{grid-template-columns:repeat(2,1fr);gap:36px}}@media (max-width: 520px){.thesis-stats{grid-template-columns:1fr}}.stat .n{font-family:var(--font-h);font-size:clamp(44px,5vw,72px);font-weight:500;line-height:.9;letter-spacing:-.04em;color:var(--paper);font-variation-settings:"opsz" 96}.stat .n em{color:var(--ochre);font-style:normal}.stat.promise .n em{color:var(--red)}.stat .tag{font-family:var(--font-m);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px;color:#f1ede180}.stat.promise .tag{color:var(--red)}.stat .l{font-size:14px;color:#f1ede1c7;margin-top:16px;line-height:1.5}.thesis-claim{max-width:760px;font-size:clamp(22px,2.4vw,30px);font-family:var(--font-h);font-weight:500;color:var(--paper);line-height:1.25;letter-spacing:-.02em}.thesis-claim em{color:var(--red)}.thesis-src{font-family:var(--font-m);font-size:10.5px;letter-spacing:.04em;color:#f1ede180;margin-top:40px;line-height:1.7}.thesis-src em{font-style:italic;color:#f1ede19e}.ctable{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}.crow{display:grid;grid-template-columns:1fr 1.4fr 1.4fr;border-bottom:1px solid var(--line)}.crow:last-child{border-bottom:none}.crow.head .c{font-family:var(--font-m);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;padding:22px 24px;color:var(--stone-dk)}.crow.head .c.rt{color:var(--red)}.c{padding:28px 24px;font-size:16px;line-height:1.45}.c.lab{font-family:var(--font-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone-dk);padding-top:30px}.c.lt{color:var(--stone-dk);text-decoration:line-through;text-decoration-color:var(--stone)}.c.rt{font-weight:500}.c.rt em{color:var(--red);font-weight:600}@media (max-width: 780px){.crow{grid-template-columns:1fr;padding:18px 0}.c{padding:10px 0}.c.lab{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:8px}}.offres-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1.5px solid var(--ink)}@media (max-width: 980px){.offres-grid{grid-template-columns:1fr}}.offre{background:var(--paper);padding:44px 36px 36px;display:flex;flex-direction:column;border-right:1.5px solid var(--ink);min-height:500px}.offre:last-child{border-right:none}@media (max-width: 980px){.offre{border-right:none;border-bottom:1.5px solid var(--ink)}.offre:last-child{border-bottom:none}}.offre:hover{background:var(--ivory)}.offre-num{font-family:var(--font-m);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-bottom:24px}.offre-name{font-family:var(--font-h);font-size:clamp(38px,3.8vw,50px);font-weight:500;line-height:.95;letter-spacing:-.035em;margin-bottom:10px}.offre-tag{font-family:var(--font-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone-dk);margin-bottom:28px;line-height:1.6;min-height:44px}.offre-price{padding:20px 0;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);margin-bottom:28px;font-family:var(--font-m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone-dk);line-height:1.7}.offre-price strong{font-family:var(--font-h);font-size:18px;letter-spacing:-.01em;text-transform:none;color:var(--ink);display:block;margin-top:4px}.offre-feat{margin-bottom:32px;flex:1}.offre-feat li{padding:12px 0;font-size:14.5px;line-height:1.5;border-top:1px solid var(--line);display:flex;gap:12px}.offre-feat li:before{content:"→";color:var(--red);font-family:var(--font-h);flex-shrink:0;width:16px}.offre-feat li strong{font-weight:600}.offre-cta{font-family:var(--font-b);font-size:13.5px;font-weight:500;border-bottom:1.5px solid var(--ink);padding-bottom:4px;align-self:flex-start;transition:color .15s,border-color .15s}.offre-cta:hover{color:var(--red);border-bottom-color:var(--red)}.value-pricing{background:var(--vellum);border-top:1.5px solid var(--line);border-bottom:1.5px solid var(--line)}.vrule{display:grid;grid-template-columns:80px 1fr;gap:32px;align-items:start;padding:28px 0;border-top:1px solid var(--line)}.vrule:last-of-type{border-bottom:1px solid var(--line)}.vrule-n{font-family:var(--font-h);font-size:54px;font-weight:500;color:var(--red);letter-spacing:-.04em;line-height:1;font-variation-settings:"opsz" 72}.vrule-t{font-size:18px;line-height:1.55;color:var(--ink)}.vrule-t strong{display:block;font-weight:600;margin-bottom:6px;font-size:19px}.methode-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;margin-top:8px}@media (max-width: 900px){.methode-grid{grid-template-columns:1fr;gap:40px}}.methode-card{padding-top:28px;border-top:2.5px solid var(--ink)}.methode-num{font-family:var(--font-m);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:16px}.methode-card h3{font-size:clamp(28px,2.8vw,40px);margin-bottom:22px;font-variation-settings:"opsz" 60}.methode-card p{font-size:15.5px;line-height:1.55;color:var(--ink-2)}.methode-card p em{color:var(--red)}.garantie-box{display:grid;grid-template-columns:1fr 2fr;gap:88px;align-items:start;padding:80px 0;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}@media (max-width: 800px){.garantie-box{grid-template-columns:1fr;gap:40px}}.garantie-line{padding:26px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:130px 1fr;gap:32px;align-items:start}.garantie-line:last-child{border-bottom:none;padding-bottom:0}.garantie-line:first-child{padding-top:0}.garantie-line .lbl{font-family:var(--font-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-weight:600;padding-top:4px}.garantie-line .txt{font-size:16px;line-height:1.55}.garantie-line .txt strong{font-weight:600}.contact{padding:128px 0}.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:start}@media (max-width: 900px){.contact-grid{grid-template-columns:1fr;gap:48px}}.contact-p{font-size:clamp(18px,1.8vw,22px);line-height:1.4;color:var(--ink-2);margin:28px 0 40px;max-width:560px;letter-spacing:-.01em}.contact-card{padding:36px;border:2px solid var(--ink);background:var(--paper);position:relative}.contact-card:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;height:6px;background:var(--ochre)}.contact-card .tag{font-family:var(--font-m);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ochre-dk);margin-bottom:18px;font-weight:600;display:block}.contact-card h3{font-size:26px;font-weight:600;line-height:1.05;margin-bottom:14px;letter-spacing:-.02em}.contact-card h3 em{color:var(--red);font-style:normal}.contact-card p{font-size:14.5px;line-height:1.5;color:var(--stone-dk);margin-bottom:22px}.cform{display:flex;flex-direction:column;gap:12px}.cform input,.cform textarea{font-family:var(--font-b);font-size:14.5px;padding:13px 14px;border:1.5px solid var(--line);background:var(--ivory);color:var(--ink);width:100%}.cform input:focus,.cform textarea:focus{border-color:var(--red)}.cform textarea{resize:vertical;min-height:84px}.cform button{margin-top:4px}.contact-meta{font-family:var(--font-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone-dk);padding-top:18px;border-top:1px solid var(--line);margin-top:6px}footer{background:var(--paper);border-top:1.5px solid var(--ink);padding:56px 0 32px}.castig{max-width:820px;margin:0 auto 56px;padding:0 0 32px;text-align:center;border-bottom:1px solid var(--line)}.castig blockquote{font-family:var(--font-s);font-size:clamp(17px,1.7vw,20px);font-style:italic;color:var(--ink-2);line-height:1.4;margin-bottom:12px}.castig blockquote:before{content:"« "}.castig blockquote:after{content:" »"}.castig cite{font-family:var(--font-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone-dk);font-style:normal}.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:48px;margin-bottom:48px}@media (max-width: 800px){.foot-grid{grid-template-columns:1fr 1fr;gap:32px}}@media (max-width: 520px){.foot-grid{grid-template-columns:1fr}}.foot-brand p{font-size:15px;color:var(--stone-dk);line-height:1.5;max-width:380px;margin-top:14px}.foot-brand .house{display:inline-block;margin-top:16px;font-family:var(--font-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);border-bottom:1px solid var(--red-border);padding-bottom:3px}.foot-col h4{font-family:var(--font-m);font-size:11px;font-weight:500;letter-spacing:.18em;color:var(--red);text-transform:uppercase;margin-bottom:18px}.foot-col li{padding:5px 0;font-size:14.5px}.foot-col li a:hover{color:var(--red)}.foot-news input{font-family:var(--font-b);font-size:13.5px;padding:11px 12px;border:1.5px solid var(--line);background:var(--ivory);width:100%;margin-bottom:8px}.foot-news input:focus{border-color:var(--red)}.foot-news button{width:100%;justify-content:center}.foot-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:28px;border-top:1px solid var(--line);font-family:var(--font-m);font-size:10.5px;letter-spacing:.14em;color:var(--stone-dk);text-transform:uppercase}.foot-bot a:hover{color:var(--red)}.matiere-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:start}@media (max-width: 980px){.matiere-grid{grid-template-columns:1fr;gap:48px}}.matiere p{margin-bottom:20px;font-size:17px;line-height:1.55}.matiere p strong{font-weight:600}.matiere p em{color:var(--red)}.skill-pick{margin-top:30px;border-top:1px solid var(--line)}.skill-pick button{display:flex;width:100%;align-items:center;gap:14px;padding:16px 0;border:none;border-bottom:1px solid var(--line);background:none;cursor:pointer;font-family:var(--font-b);font-size:15.5px;font-weight:500;color:var(--stone-dk);text-align:left;transition:color .15s}.skill-pick button .ix{font-family:var(--font-m);font-size:10.5px;letter-spacing:.12em;color:var(--red)}.skill-pick button:hover,.skill-pick button.active{color:var(--ink)}.skill-pick button.active .ix{font-weight:600}.skill-card{border:1.5px solid var(--ink);padding:40px 36px;background:var(--ivory);position:sticky;top:90px}.skill-tag-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.skill-tag{font-family:var(--font-m);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);font-weight:600}.skill-id{font-family:var(--font-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone-dk)}.skill-card h3{margin-bottom:26px}.skill-row{padding:16px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:120px 1fr;gap:20px}.skill-row:last-child{border-bottom:1px solid var(--line)}.skill-row .k{font-family:var(--font-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone-dk);padding-top:3px}.skill-row .v{font-size:14.5px;line-height:1.5}.skill-row .v em{color:var(--red)}@media (max-width: 980px){.skill-card{position:static}}.partis-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1.5px solid var(--ink);margin-top:8px}@media (max-width: 780px){.partis-grid{grid-template-columns:1fr}}.parti-card{padding:40px 36px;background:var(--paper);border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);display:flex;flex-direction:column;gap:18px}.parti-card:nth-child(2n){border-right:none}.parti-card:nth-last-child(-n+2){border-bottom:none}@media (max-width: 780px){.parti-card{border-right:none}.parti-card:nth-last-child(-n+2){border-bottom:1.5px solid var(--ink)}.parti-card:last-child{border-bottom:none}}.parti-card:hover{background:var(--ivory)}.parti-num{font-family:var(--font-h);font-size:54px;font-weight:500;font-style:italic;color:var(--red);line-height:.9;letter-spacing:-.04em;padding-bottom:12px;border-bottom:1.5px solid var(--ink)}.parti-card h3{font-size:clamp(20px,2vw,26px);line-height:1.15}.parti-card p{font-size:15px;line-height:1.55;color:var(--ink-2)}.parti-card p em{color:var(--red)}.cases-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(min(680px,100%),1fr);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px}.case-card{border:1.5px solid var(--ink);background:var(--ivory);padding:40px 36px;scroll-snap-align:start}.case-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:16px}.case-tag{font-family:var(--font-m);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);font-weight:600}.case-id{font-family:var(--font-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone-dk)}.case-card h3{margin-bottom:26px}.case-row{padding:16px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:120px 1fr;gap:20px}.case-row:last-child{border-bottom:1px solid var(--line)}.case-row .k{font-family:var(--font-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone-dk);padding-top:3px}.case-row .v{font-size:14.5px;line-height:1.5}.case-row .v em{color:var(--red)}.case-quote{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-family:var(--font-s);font-style:italic;font-size:16.5px;line-height:1.5;color:var(--ink-2)}.case-quote cite{display:block;margin-top:10px;font-family:var(--font-m);font-style:normal;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone-dk)}@media (max-width: 760px){.case-row{grid-template-columns:1fr;gap:6px}}.contact-alt{margin-top:18px;font-size:14px;color:var(--stone-dk);max-width:480px;line-height:1.5}.case-more{margin-top:18px;font-size:14px}.case-more a{border-bottom:1px solid var(--red);color:var(--ink);padding-bottom:2px}.case-more a:hover{color:var(--red)}.contact-alt a{border-bottom:1px solid var(--red);color:var(--ink);padding-bottom:2px}.contact-alt a:hover{color:var(--red)}.equipe{position:relative;overflow:hidden}.equipe-fig{position:absolute;top:0;right:0;width:56%;height:100%;object-fit:cover;object-position:42% 56%;opacity:.8;mix-blend-mode:multiply;filter:contrast(1.12) saturate(.92) brightness(.95);-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.42) 32%,#000 68%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.42) 32%,#000 68%);z-index:0;pointer-events:none}@media (max-width: 760px){.equipe-fig{opacity:.32;width:90%}}.equipe:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--paper) 0%,rgba(241,237,225,.6) 38%,rgba(241,237,225,.15) 70%);z-index:1;pointer-events:none}.equipe .wrap{position:relative;z-index:2}.equipe-note{font-size:15.5px;line-height:1.55;color:var(--ink-2);max-width:680px;margin-bottom:56px}.equipe-note em{color:var(--red)}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;max-width:1000px}@media (max-width: 900px){.team-grid{grid-template-columns:1fr;gap:32px;max-width:480px}}.member{padding-top:26px;border-top:2.5px solid var(--ink)}.member-photo{width:88px;height:88px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--font-h);font-size:30px;font-weight:500;letter-spacing:-.02em;margin-bottom:22px;overflow:hidden}.member-photo img{width:100%;height:100%;object-fit:cover}.member-role{font-family:var(--font-m);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:10px}.member h3{font-size:26px;margin-bottom:6px}.member .fn{font-family:var(--font-m);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--stone-dk);margin-bottom:16px}.member p{font-size:14.5px;line-height:1.55;color:var(--ink-2)}.member p em{color:var(--red)}.member a.li{display:inline-block;margin-top:14px;font-family:var(--font-m);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone-dk);border-bottom:1px solid var(--line);padding-bottom:3px}.member a.li:hover{color:var(--red);border-bottom-color:var(--red)}.faq{background:var(--ink);color:var(--paper)}.faq h2{color:var(--paper)}.faq-list{border-top:1.5px solid var(--paper);margin-top:16px}.faq-item{border-bottom:1px solid rgba(241,237,225,.22)}.faq-item summary{cursor:pointer;padding:28px 0;font-family:var(--font-h);font-size:clamp(20px,2vw,26px);font-weight:500;color:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:24px;list-style:none;line-height:1.15;letter-spacing:-.025em}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:hover{color:var(--red)}.faq-item summary:after{content:"+";font-family:var(--font-h);font-size:28px;color:var(--red);flex-shrink:0;line-height:1;font-weight:400}.faq-item[open] summary:after{content:"−"}.faq-answer{padding:0 0 32px;max-width:780px}.faq-answer p{margin-bottom:14px;font-size:15.5px;line-height:1.65;color:#f1ede1eb}.faq-answer p:last-child{margin-bottom:0}.faq-answer a{color:var(--paper);border-bottom:1px solid var(--red)}.faq-answer strong{color:var(--red);font-weight:500}.faq-answer em{color:var(--red)}.thesis{overflow:hidden}.thesis-fig{position:absolute;top:0;right:0;width:54%;height:100%;object-fit:cover;object-position:66% 52%;opacity:.66;mix-blend-mode:screen;filter:contrast(1.06) saturate(.92);-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.4) 40%,#000 80%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.4) 40%,#000 80%);z-index:0;pointer-events:none}.thesis:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--ink) 0%,rgba(30,26,20,.74) 36%,rgba(30,26,20,0) 66%);z-index:1;pointer-events:none}.thesis .wrap{position:relative;z-index:2}@media (max-width: 760px){.thesis-fig{opacity:.34;width:90%}}.matiere-sec{overflow:hidden}.matiere-fig{position:absolute;top:0;right:0;width:60%;height:100%;object-fit:cover;object-position:48% 30%;opacity:.2;mix-blend-mode:multiply;filter:contrast(1.05) saturate(.78);-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.32) 42%,#000 82%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.32) 42%,#000 82%);z-index:0;pointer-events:none}.matiere-sec:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--paper) 0%,rgba(241,237,225,.55) 38%,rgba(241,237,225,0) 72%);z-index:1;pointer-events:none}.matiere-sec .wrap{position:relative;z-index:2}@media (max-width: 760px){.matiere-fig{opacity:.1;width:92%}}.contact{overflow:hidden}.contact-fig{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:100%;min-width:1200px;height:auto;opacity:.15;mix-blend-mode:multiply;filter:contrast(1.04) saturate(.72);-webkit-mask-image:radial-gradient(118% 92% at 50% 50%,#000 26%,rgba(0,0,0,.32) 60%,transparent 86%);mask-image:radial-gradient(118% 92% at 50% 50%,#000 26%,rgba(0,0,0,.32) 60%,transparent 86%);z-index:0;pointer-events:none}.contact .wrap{position:relative;z-index:2}@media (max-width: 760px){.contact-fig{opacity:.09;width:120%}}

/* contraste S31 : rouge sur fond encre = 2,61:1. Bascule sur l'ocre de la palette = 5,27:1. Aucune couleur nouvelle. */
#these .eyebrow,#faq .eyebrow,#these .tag,#these .stat .tag{color:var(--ochre)}
#these .eyebrow:before,#faq .eyebrow:before{background:var(--ochre)}

/* ═══ passe accessibilité S31 · 2026-07-27 ═══════════════════
   Aucune couleur de la palette n'est modifiée : on ne fait que
   choisir, parmi les tokens existants, celui qui atteint le seuil.
   ─────────────────────────────────────────────────────────── */

/* 2.4.7 Focus visible — un anneau au clavier, invisible à la souris. */
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
a:focus-visible,button:focus-visible,summary:focus-visible,
[role=button]:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--ink);outline-offset:3px;border-radius:var(--r-xs)}
input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--red-dk);outline-offset:1px}
.on-dark :focus-visible,.dark :focus-visible,
section[class*=dark] :focus-visible,footer :focus-visible{
  outline-color:var(--paper)}

/* 1.4.1 + 1.4.11 Liens en pleine prose : soulignés, donc repérables
   sans dépendre de la seule couleur. Les liens de navigation, les
   boutons et les cartes gardent leur traitement d'origine. */
main p > a:not(.btn):not(.card):not([class*=cta]),
main li > a:not(.btn):not(.card):not([class*=cta]),
main dd > a:not(.btn):not(.card):not([class*=cta]),
.legal a:not(.btn),.note a:not(.btn),
figcaption a:not(.btn),blockquote a:not(.btn){
  text-decoration:underline;text-underline-offset:.18em;
  text-decoration-thickness:from-font}
main p > a:not(.btn):not(.card):not([class*=cta]):hover,
main li > a:not(.btn):not(.card):not([class*=cta]):hover{
  text-decoration-thickness:2px}

/* Utilitaire : lisible par un lecteur d'écran, invisible à l'œil. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* 2.3.3 Respect de « réduire les animations » (réglage système). */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;
    animation-iteration-count:1 !important;transition-duration:.01ms !important;
    scroll-behavior:auto !important}
}
