:root{--site-header-height:68px;--site-surface:#fafaf8;--site-ink:#151515;--site-line:#15151520}
html[data-alefos-theme=dark]{--site-surface:#0b0b0b;--site-ink:#efefeb;--site-line:#ffffff26}
html{scroll-padding-top:calc(var(--site-header-height) + 24px)}
body[data-public-shell]{padding-top:var(--site-header-height)!important}
body .site-header{position:fixed!important;inset:0 0 auto!important;height:var(--site-header-height);z-index:900;background:var(--site-surface)!important;color:var(--site-ink)!important;border-bottom:1px solid var(--site-line);font:14px/1.4 Inter,Arial,sans-serif;transform:none!important;transition:none!important}
.site-header-inner{height:100%;max-width:1440px;margin:auto;padding:0 36px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:relative}
.site-header :is(a,summary,button){color:inherit!important;font:inherit;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.site-header summary{list-style:none;display:flex;align-items:center;gap:10px;height:44px;width:fit-content}.site-header summary::-webkit-details-marker{display:none}
.site-header summary:focus-visible,.site-header a:focus-visible,.site-theme:focus-visible{outline:2px solid #b99933;outline-offset:4px;border-radius:4px}
.site-menu{justify-self:start}.site-menu-icon{width:18px;height:10px;border-block:1.5px solid currentColor;display:block;transition:transform .2s}
.site-menu[open] .site-menu-icon{transform:rotate(90deg)}
.site-header-brand{justify-self:center;display:flex;align-items:center;justify-content:center;width:48px;height:48px}.site-header-brand img{object-fit:contain;width:34px;height:34px;transition:transform .2s}
.site-header-brand:hover img{transform:rotate(-5deg)}html[data-alefos-theme=dark] .site-header-brand img{filter:invert(1)}
.site-header-controls{display:flex;justify-self:end;align-items:center;gap:12px}
.site-theme{display:grid;place-items:center;width:40px;height:40px;padding:8px;border:0;border-radius:50%;background:none}.site-theme:hover,.site-language summary:hover{background:var(--site-line)}.site-theme svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.site-sun{display:none}html[data-alefos-theme=dark] .site-moon{display:none}html[data-alefos-theme=dark] .site-sun{display:block}
.site-language{position:relative}.site-language summary{padding:0 8px;font-size:12px;letter-spacing:.05em;border-radius:6px}
.site-language nav{position:absolute;right:0;top:calc(100% + 6px);padding:8px;width:155px;background:var(--site-surface);border:1px solid var(--site-line);border-radius:10px;box-shadow:0 12px 30px #0002}.site-language nav a{padding:10px;display:flex;justify-content:space-between;border-radius:5px}.site-language nav a:hover{background:var(--site-line)}
.site-menu-panel{position:fixed;left:0;right:0;top:var(--site-header-height);max-height:calc(100dvh - var(--site-header-height));overflow:auto;overscroll-behavior:contain;background:var(--site-surface);border-bottom:1px solid var(--site-line);box-shadow:0 20px 40px #0002;padding:40px max(24px,calc((100vw - 1200px)/2)) 24px}
.site-menu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.site-menu-grid p{margin:0 0 16px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.55}.site-menu-grid a{display:flex;justify-content:space-between;gap:12px;padding:10px 0;font-size:15px}.site-menu-grid a span{opacity:0;transition:opacity .2s}.site-menu-grid a:hover span,.site-menu-grid a:focus-visible span{opacity:1}.site-menu-home{display:flex;justify-content:space-between;margin-top:26px;padding-top:18px;border-top:1px solid var(--site-line);font-size:12px!important;opacity:.7}
body[data-public-shell] .catalog-toolsbar{padding:0;margin:16px 0}body[data-public-shell] .catalog-french .breadcrumbs{padding-left:0}body[data-public-shell] .catalog-toc{top:calc(var(--site-header-height) + 24px)}
body[data-public-shell] :is(.catalog-prose>section,.catalog-reference,.catalog-reading,.catalog-directory,.legal-prose section,.article-content section){scroll-margin-top:calc(var(--site-header-height) + 24px)}
body[data-public-shell] .os-hero{padding-top:70px}body[data-public-shell] .os-progress{top:var(--site-header-height)}body[data-public-shell] .cv-shell{padding-top:64px}
@media(max-width:700px){:root{--site-header-height:60px}.site-header-inner{padding:0 16px}.site-header-controls{gap:2px}.site-menu summary{font-size:12px;gap:8px}.site-header-brand img{width:30px;height:30px}.site-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.site-menu-panel{padding:28px 24px 20px}.site-menu-grid a{font-size:13px}.site-language summary{padding:0 6px}body[data-public-shell] .os-hero{padding-top:52px}}
@media(prefers-reduced-motion:reduce){.site-header *{transition:none!important}.site-header-brand:hover img{transform:none}}
.site-header,.site-header *{box-sizing:border-box}
:root{--site-font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body[data-public-shell] :is(main,.site-header,.footer,main h1,main h2,main h3,main p,main article,main section,main summary,main button,main input,main textarea,main select){font-family:var(--site-font)!important}

html[data-alefos-theme] body[data-public-shell] .site-header{background:var(--site-surface)!important}

/* The body reserves the fixed header once; page intros only add reading space. */
body[data-public-shell] .cv-shell{padding-top:0}
body[data-public-shell] .cv-intro{padding-top:28px}
body[data-public-shell] .cv-intro>.cv-kicker{margin-top:0}
body[data-public-shell] .os-hero{padding-top:28px}
body[data-public-shell] .legal-hero{padding-top:28px}
@media(max-width:700px){body[data-public-shell] .cv-intro,body[data-public-shell] .os-hero,body[data-public-shell] .legal-hero{padding-top:24px}}
