@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:600 800;font-stretch:75% 100%;src:url("../fonts/archivo-latin-wdth-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:600 800;font-stretch:75% 100%;src:url("../fonts/archivo-latin-ext-wdth-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-ext-400-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-ext-500-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-ext-600-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Sans";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-400-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Sans";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-sans-latin-ext-400-italic.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-ext-400-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/ibm-plex-mono-latin-ext-500-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/atkinson-hyperlegible-latin-ext-400-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Atkinson Hyperlegible";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/atkinson-hyperlegible-latin-400-italic.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Atkinson Hyperlegible";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/atkinson-hyperlegible-latin-ext-400-italic.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/atkinson-hyperlegible-latin-ext-700-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"OpenDyslexic";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/opendyslexic-latin-400-normal.woff2") format("woff2")}@font-face{font-family:"OpenDyslexic";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/opendyslexic-latin-400-italic.woff2") format("woff2")}@font-face{font-family:"OpenDyslexic";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/opendyslexic-latin-700-normal.woff2") format("woff2")}:root{--bg:#f4f6f7;--surface:#ffffff;--ink:#15212a;--muted:#56646e;--line:#d6dde1;--warm:#b4471b;--on-warm:#ffffff;--font-site-display:"Archivo","Arial Narrow",system-ui,sans-serif;--font-site-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-site-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--font-display:var(--font-site-display);--font-body:var(--font-site-body);--font-mono:var(--font-site-mono);--font-fallback:system-ui,-apple-system,"Segoe UI",sans-serif;--step--1:0.84rem;--step-0:1rem;--step-1:1.25rem;--step-2:1.6rem;--zoom:1;--step-3:clamp(2.2rem,calc(6vw * var(--zoom)),3.6rem);--gutter:16px;--radius-card:6px;--hero-bg:#e1e1e1;--hero-ink:#14181b;--hero-light:#ffffff;--hero-accent:#b4471b;--hero-shade:20 24 27;--hero-veil:225 225 225;--shadow:0 0 0;--scrim:15 23 28;--video-bg:#05080a;--print-paper:#ffffff;--print-ink:#000000;--r:1rem}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0f171c;--surface:#16222a;--ink:#e3e9ec;--muted:#9aa8b1;--line:#26343d;--warm:#f08a5d;--on-warm:#0f171c;color-scheme:dark}}:root[data-theme="dark"]{--bg:#0f171c;--surface:#16222a;--ink:#e3e9ec;--muted:#9aa8b1;--line:#26343d;--warm:#f08a5d;--on-warm:#0f171c;color-scheme:dark}html[data-taille="2"]{font-size:112.5%;--zoom:1.125;--r:calc(1rem / 1.125)}html[data-taille="3"]{font-size:125%;--zoom:1.25;--r:calc(1rem / 1.25)}html[data-police="atkinson"]{--font-display:"Atkinson Hyperlegible",var(--font-fallback);--font-body:"Atkinson Hyperlegible",var(--font-fallback);--font-mono:"Atkinson Hyperlegible",var(--font-fallback)}html[data-police="opendyslexic"]{--font-display:"OpenDyslexic",var(--font-fallback);--font-body:"OpenDyslexic",var(--font-fallback);--font-mono:"OpenDyslexic",var(--font-fallback)}html[data-police] body{line-height:1.8;letter-spacing:0.03em;word-spacing:0.12em}html[data-police="opendyslexic"] body{letter-spacing:0;word-spacing:0.04em}html[data-police] :is(h1,h2,h3,h4){line-height:1.3;letter-spacing:0.01em}html[data-police] .profil .lead{text-align:left;hyphens:manual;-webkit-hyphens:manual}html[data-police] main,html[data-taille] main{overflow-wrap:anywhere}html[data-police] .hero,html[data-taille] .hero{overflow-wrap:normal}html[data-police] .tags li,html[data-taille] .tags li{white-space:normal;max-width:100%}html :is(.top,.hero,body>footer){--font-display:var(--font-site-display);--font-body:var(--font-site-body);--font-mono:var(--font-site-mono);--zoom:1;--step--1:calc(0.84 * var(--r));--step-0:var(--r);--step-1:calc(1.25 * var(--r));--step-3:clamp(calc(2.2 * var(--r)),6vw,calc(3.6 * var(--r)));font-family:var(--font-body);line-height:1.6;letter-spacing:normal;word-spacing:normal}.top,.hero{font-size:var(--r)}html .hero h1{line-height:1.15;letter-spacing:-0.01em}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.6}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;line-height:1.15;margin:0}h2{font-size:var(--step-2);font-weight:700;font-stretch:85%}h3{font-size:var(--step-1);font-weight:600;font-stretch:90%}h4{font-family:var(--font-display);margin:0}p{margin:0}img,video{max-width:100%}picture{display:contents}picture source{display:none}a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;transition:color .15s,border-color .15s,background-color .15s}a:hover{color:var(--warm)}:focus-visible{outline:2px solid var(--warm);outline-offset:3px}a:hover:focus-visible{outline-color:var(--warm)}.wrap{max-width:68rem;margin-inline:auto;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}.label{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}.skip-link{position:absolute;left:8px;top:-100px;z-index:20;background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:4px;text-decoration:none}.skip-link:focus{top:8px;color:var(--bg)}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:0s!important;transition-delay:0s!important;animation-duration:0s!important}}body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}.brand-logo{flex:none;display:block;width:calc(1.75 * var(--r));height:auto;border-radius:22%}.top .wrap{display:flex;align-items:center;gap:12px 18px;padding-block:12px;flex-wrap:wrap}.top nav{margin-left:auto}.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-stretch:80%;font-size:calc(1.15 * var(--r));color:var(--ink);text-decoration:none;letter-spacing:0.01em}.top nav{display:flex;gap:4px 18px;flex-wrap:wrap;font-size:calc(0.95 * var(--r))}.top nav a{color:var(--muted);text-decoration:none}.top nav a:hover{color:var(--warm)}.lang-suggest{background:var(--surface);border-bottom:1px solid var(--line);font-size:0.9rem}.lang-suggest p{margin:0;padding:8px 16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:14px;row-gap:4px;text-align:center}.lang-suggest p[hidden]{display:none}.lang-suggest a{color:var(--warm);font-weight:600}.lang-suggest-close{min-height:24px;padding:0 4px;border:0;background:none;color:var(--muted);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.lang-suggest-close:hover{color:var(--warm)}.lang-suggest-close:focus-visible{outline:2px solid var(--warm);outline-offset:2px}.langs{position:relative;display:inline-flex}.langs-btn{display:inline-flex;align-items:center;gap:5px;padding:1px 8px;border:1px solid var(--line);border-radius:4px;font-family:var(--font-mono);font-size:var(--step--1);line-height:1.6;color:var(--muted);cursor:pointer;list-style:none;user-select:none}.langs-btn::-webkit-details-marker{display:none}.langs-btn svg{transition:transform .15s}.langs-btn:hover,.langs[open] .langs-btn{color:var(--warm);border-color:var(--warm)}.langs[open] .langs-btn svg{transform:rotate(180deg)}.langs-btn:focus-visible{outline:2px solid var(--warm);outline-offset:2px}.langs-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:6;min-width:calc(10 * var(--r));margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 14%,transparent)}.langs-panel a{display:flex;align-items:center;gap:10px;min-height:40px;padding:4px 10px;border-radius:4px;color:var(--ink);text-decoration:none;font-size:calc(0.95 * var(--r))}.langs-panel a:hover{color:var(--warm)}.langs-panel a[aria-current="page"]{background:var(--warm);color:var(--on-warm)}.langs-panel a:focus-visible{outline:2px solid var(--warm);outline-offset:2px}.langs-code{font-family:var(--font-mono);font-size:var(--step--1);min-width:2.2em}.reading{position:relative;display:inline-flex}.reading[hidden]{display:none}.reading-btn{padding:1px 9px;border:1px solid var(--line);border-radius:4px;background:transparent;font-family:var(--font-display);font-size:var(--step--1);font-weight:700;line-height:1.6;color:var(--muted);cursor:pointer;letter-spacing:0}.reading-btn:hover,.reading-btn[aria-expanded="true"]{color:var(--warm);border-color:var(--warm)}html[data-police] .reading-btn,html[data-taille] .reading-btn{background:var(--warm);border-color:var(--warm);color:var(--on-warm)}.reading-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:6;width:min(calc(21 * var(--r)),calc(100vw - 2 * var(--gutter)));padding:16px 16px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 14%,transparent)}.reading-panel[hidden]{display:none}.reading-panel fieldset{margin:0 0 14px;padding:0;border:0;min-width:0}.reading-panel legend{padding:0;margin-bottom:8px;font-family:var(--font-mono);font-size:calc(0.74 * var(--r));text-transform:uppercase;letter-spacing:0.06em;color:var(--muted)}.reading-opts{display:flex;flex-wrap:wrap;gap:6px}.reading-opts label{position:relative;cursor:pointer}.reading-opts input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.reading-opts span{display:block;padding:4px 11px;border:1px solid var(--line);border-radius:4px;font-size:calc(0.92 * var(--r));line-height:1.5;color:var(--ink);letter-spacing:0;word-spacing:0}.reading-opts label:hover span{border-color:var(--warm);color:var(--warm)}.reading-opts input:checked + span{background:var(--warm);border-color:var(--warm);color:var(--on-warm)}.reading-opts input:focus-visible + span{outline:2px solid var(--warm);outline-offset:2px}.reading-opts .f-standard{font-family:"IBM Plex Sans",var(--font-fallback)}.reading-opts .f-atkinson{font-family:"Atkinson Hyperlegible",var(--font-fallback)}.reading-opts .f-opendyslexic{font-family:"OpenDyslexic",var(--font-fallback)}.reading-opts .t-1{font-size:calc(0.85 * var(--r))}.reading-opts .t-2{font-size:calc(0.97 * var(--r))}.reading-opts .t-3{font-size:calc(1.1 * var(--r))}.reading-note{font-size:calc(0.8 * var(--r));color:var(--muted);line-height:1.5}.menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);cursor:pointer}.menu-btn:hover{color:var(--warm);border-color:var(--warm)}.menu-btn .cross,.top.open .menu-btn .bars{display:none}.top.open .menu-btn .cross{display:inline}.hero{position:relative;border-bottom:1px solid var(--line);background:var(--hero-bg) url("../img/banner/banner.jpg") left center / cover no-repeat;background-image:image-set(url("../web/img/banner/banner.avif") type("image/avif"),url("../web/img/banner/banner.webp") type("image/webp"),url("../img/banner/banner.jpg") type("image/jpeg"))}@media (max-width:760px){.hero{background-image:image-set(url("../web/img/banner/banner-800.avif") type("image/avif"),url("../web/img/banner/banner-800.webp") type("image/webp"),url("../img/banner/banner.jpg") type("image/jpeg"))}}.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgb(var(--hero-shade) / .68) 0,rgb(var(--hero-shade) / .55) calc(max(var(--gutter),50% - 34rem) + 390px),rgb(var(--hero-shade) / 0) calc(max(var(--gutter),50% - 34rem) + 500px))}.hero .wrap{position:relative;min-height:clamp(260px,25vw,360px);padding-block:32px;display:grid;grid-template-columns:auto auto;justify-content:space-between;align-items:center;align-content:center;column-gap:40px;color:var(--hero-ink)}.hero h1{font-size:var(--step-3);font-weight:800;font-stretch:78%;letter-spacing:-0.01em;color:var(--hero-light);white-space:nowrap;text-shadow:0 1px 3px rgb(var(--shadow) / .3)}.hero .role{margin-top:6px;font-size:var(--step-1);max-width:32ch;min-height:3.2em;line-height:1.6;color:var(--hero-light);text-shadow:0 1px 2px rgb(var(--shadow) / .35)}.hero .pitch{position:relative;text-align:right}.hero .slogan{font-family:var(--font-display);font-weight:800;font-stretch:78%;--slogan-size:clamp(calc(1.5 * var(--r)),3vw,calc(2.1 * var(--r)));font-size:calc(var(--slogan-size) * var(--fit,1));line-height:1.12;letter-spacing:-0.005em}.hero .slogan>span{display:block;width:max-content;max-width:none;margin-left:auto;white-space:nowrap}.hero .slogan .hl{color:var(--hero-accent)}.hero .tools{position:absolute;top:100%;right:0;margin:36px 0 0;padding:0;list-style:none;display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:18px}.hero .tools img{display:block}main section{padding-block:56px;border-bottom:1px solid var(--line);scroll-margin-top:56px}main section:last-of-type{border-bottom:0}.head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:28px}.sub{margin:0 0 20px}.profil{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:40px;align-items:stretch}.profil>.card{grid-column:2;grid-row:1}.profil>.intro{grid-column:1;grid-row:1}.profil .intro{display:flex;flex-direction:column}.profil .lead{font-size:1.05rem;text-align:justify;hyphens:auto;-webkit-hyphens:auto}.profil .lead + .lead{margin-top:14px}.profil .intro .tag-cats{margin-top:auto;padding-top:24px}.cat-list{display:none}.js .cat-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.cat{font:inherit;font-size:0.85rem;line-height:1.4;padding:4px 12px;border-radius:4px;cursor:pointer;color:var(--ink);background:transparent;border:1px solid var(--ink);transition:color .15s,border-color .15s}.cat:hover{color:var(--warm);border-color:var(--warm)}.cat[aria-expanded="true"]{color:var(--on-warm);background:var(--warm);border-color:var(--warm)}.cat:focus-visible{outline-color:var(--warm)}.cat-title{font-size:1rem;margin-top:18px}.cat-panel:first-of-type .cat-title{margin-top:0}.cat-panel .tags{margin-top:10px}.js .cat-title,.js .cat-panel{display:none}.js .cat-panel.open{display:block}.js .cat-panel .tags{margin-top:14px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:22px 0 0;padding:0;list-style:none;font-family:var(--font-mono);font-size:0.8rem}.tags li{white-space:nowrap;padding:2px 10px;border-radius:999px;background:var(--surface);color:var(--warm);border:1px solid color-mix(in srgb,var(--warm) 45%,transparent)}.tags li.linked{padding:0}.tags li>a{display:block;padding:2px 10px;border-radius:999px;color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.tags li>a:hover,.tags li>a:focus-visible,.tags li>a[aria-current="page"]{background:var(--warm);color:var(--on-warm)}.tags li.current{border-color:var(--warm)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:18px;display:grid;gap:14px;align-content:start}.card img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:4px}.card dl{margin:0;display:grid;gap:10px}.card dt{font-family:var(--font-mono);font-size:0.74rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted)}.card dd{margin:0;font-weight:500;overflow-wrap:anywhere}.card dd .fact-link{color:var(--warm);text-decoration:underline;text-underline-offset:3px}.card dd .fact-link:hover{color:var(--ink)}.whatido{margin-top:56px}.pillars{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.pillars li{border-top:2px solid var(--ink);padding-top:18px;min-width:0;text-align:center}.pillars .ico{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--warm) 14%,transparent);color:var(--warm)}.pillars h4{font-size:1.15rem;font-weight:700;font-stretch:90%;margin:14px 0 6px}.pillars p{font-size:0.92rem;color:var(--muted)}.pillars .more{display:inline-block;margin-top:10px;font-size:0.9rem}.skills{margin-top:56px}.timeline{list-style:none;margin:0;padding:0;display:grid}.timeline li{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:20px;padding-block:18px;border-top:1px solid var(--line)}.timeline li:first-child{border-top:0}.when{font-family:var(--font-mono);font-size:0.86rem;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:3px}.timeline .org{color:var(--muted);font-size:0.92rem;margin-top:2px}.timeline .what{margin-top:8px;max-width:64ch}.refs-track{display:grid;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.slide{min-width:0;margin:0;padding:28px;display:grid;grid-template-columns:minmax(0,18rem) minmax(0,1fr);gap:32px;align-items:center}html:not(.js) .slide + .slide{border-top:1px solid var(--line)}.js .slide{grid-area:1 / 1;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility 0s linear .6s}.js .slide.on{opacity:1;visibility:visible;transition:opacity .6s ease}.refs-ctrl{display:none}.js .refs-ctrl{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.dots{display:flex;flex-wrap:wrap}.dots button{width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}.dots button::before{content:"";width:10px;height:10px;box-sizing:border-box;border-radius:50%;border:1px solid var(--muted)}.dots button[aria-current="true"]::before{background:var(--warm);border-color:var(--warm)}.dots button:hover::before{border-color:var(--warm)}.arrows{display:flex;gap:8px}.arrows .btn{width:38px;height:38px;display:grid;place-items:center;padding:0;font-size:1.1rem}.arrows .pause .ico-play,.arrows .pause.is-paused .ico-pause{display:none}.arrows .pause.is-paused .ico-play{display:block}.plate{display:grid;place-items:center;min-height:130px}.plate img{max-width:100%;height:auto}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .plate img.sombre{filter:invert(1) hue-rotate(180deg)}}:root[data-theme="dark"] .plate img.sombre{filter:invert(1) hue-rotate(180deg)}.wordmark{font-family:var(--font-display);font-weight:800;font-stretch:80%;font-size:1.9rem;letter-spacing:0.02em;text-align:center;line-height:1.05}.wordmark small{display:block;font-family:var(--font-mono);font-weight:400;font-size:0.72rem;letter-spacing:0.12em;color:var(--muted);margin-top:6px}.slide h3{margin-top:4px}.slide .desc{margin-top:10px;color:var(--muted);max-width:60ch}.slide .site{display:inline-block;margin-top:12px;font-size:0.9rem}.video-post video{display:block;width:100%;height:auto;aspect-ratio:16 / 9;background:var(--video-bg);border-radius:4px;margin-top:4px}.post .meta-file{font-family:var(--font-mono);font-size:0.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.pubs-layout{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:40px;align-items:start}.scholar dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.scholar dd{font-weight:400}.scholar dd strong{font-family:var(--font-display);font-weight:700;font-size:1.9rem;line-height:1.1;font-variant-numeric:tabular-nums}.scholar .source{font-family:var(--font-mono);font-size:0.74rem;line-height:1.7;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.pubs{display:grid;gap:36px}.pubs ol{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:14px}.pubs li{display:grid;grid-template-columns:3.4rem minmax(0,1fr);gap:14px}.pubs .yr{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--muted);font-size:0.9rem;padding-top:2px}.pubs .title{font-weight:500}.pubs .meta{color:var(--muted);font-size:0.9rem}.pubs .meta i{color:var(--ink)}.pubs .links{font-family:var(--font-mono);font-size:0.8rem;display:inline-flex;gap:10px;margin-left:6px}.me{color:var(--ink);font-weight:600}.posts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:20px}.blog .refs-track{border:0;background:none}.blog .slide{display:block;padding:0}.blog .posts{grid-template-columns:repeat(3,minmax(0,1fr))}html:not(.js) .blog .slide + .slide{border-top:0;margin-top:20px}.post{height:100%;display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}@supports (grid-template-rows:subgrid){.blog .posts>li,.hashtag-page .posts>li{display:grid;grid-row:span 7;grid-template-rows:subgrid;row-gap:10px}.post{display:grid;grid-row:1 / -1;grid-template-rows:subgrid;row-gap:10px;align-content:start}}.post .when{padding-top:0}.post h3 a{color:var(--ink);text-decoration:none}.post h3 a:hover{color:var(--warm)}.post .summary{color:var(--muted);font-size:0.95rem}.post .thumb{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;border-radius:4px;margin-top:4px}img.thumb{border:1px solid var(--line)}.post .tags{margin-top:4px;align-content:flex-start}.post .more{align-self:end;padding-top:2px;font-size:0.9rem}#blog .empty{color:var(--muted)}.news-page{padding-block:20px 56px}.news-page .head{margin-bottom:12px}.news-page h1{display:flex;align-items:center;gap:12px}.news-page h1 .passion-ico{display:inline-flex;color:var(--warm)}.news-intro{max-width:46rem;color:var(--muted);font-size:1.05rem}.passions ul{list-style:none;margin:24px 0 28px;padding:0;display:flex;flex-wrap:wrap;gap:8px}.passions a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);text-decoration:none;font-weight:500}.passions a span[aria-hidden]{display:inline-flex;color:var(--warm)}.passions a:hover,.passions a:focus-visible{border-color:var(--warm);color:var(--warm)}.passions a[aria-current="page"]{background:var(--warm);border-color:var(--warm);color:var(--on-warm)}.passions a[aria-current="page"] span[aria-hidden]{color:var(--on-warm)}.passions .count{font-family:var(--font-mono);font-size:0.8rem;font-variant-numeric:tabular-nums;opacity:0.8}.news-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-family:var(--font-mono);font-size:0.8rem}.passion-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 10px 2px 8px;border:1px solid var(--warm);border-radius:999px;color:var(--warm);text-decoration:none}.passion-chip:hover,.passion-chip:focus-visible{background:var(--warm);color:var(--on-warm)}.passion-chip span[aria-hidden]{display:inline-flex}.news-kicker .subject{color:var(--muted);text-transform:uppercase;letter-spacing:0.06em}.news-posts .post h2 a{color:var(--ink);text-decoration:none}.news-posts .post h2 a:hover{color:var(--warm)}.article header .news-kicker{margin-top:16px}.news-sources{margin-top:2.2em;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.news-sources h2{font-size:var(--step-1);font-weight:600;font-stretch:90%}.news-sources ul{margin:10px 0 0;padding-left:1.2em;display:grid;gap:6px}.news-sources a{overflow-wrap:anywhere}.news-sources .src-date,.news-sources .credit{color:var(--muted);font-size:0.9rem}.news-sources .credit{margin-top:10px}.ai-note{display:flex;gap:10px;align-items:flex-start;margin-top:1.4em;color:var(--muted);font-size:0.9rem}.ai-note span[aria-hidden]{display:inline-flex;color:var(--warm);padding-top:2px}.news-page .ai-note{margin-top:32px}.news-more{margin-top:1em;font-weight:500}.news-page .empty{color:var(--muted)}.hashtag-page{padding-block:40px 56px}.hashtag-page .back{font-size:0.9rem;margin-bottom:28px}.hashtag-page header{padding-bottom:24px;border-bottom:1px solid var(--line)}.hashtag-page h1{font-size:clamp(1.9rem,calc(5vw * var(--zoom)),2.8rem);font-weight:800;font-stretch:80%;margin-top:8px;overflow-wrap:anywhere}.hashtag-page h1 .hash{color:var(--warm)}.hashtag-page .topic-link{margin:12px 0 0;font-size:0.95rem}main section.tag-group{padding-block:0;border-bottom:0}.tag-group{margin-top:36px}.tag-group .head{margin-bottom:18px}.tag-videos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:20px}.video-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.video-card .summary{color:var(--muted);font-size:0.95rem}.video-card .tags{margin-top:4px}.tag-videos video{display:block;width:100%;height:auto;border-radius:4px;background:var(--ink)}.tag-videos .meta-file{font-family:var(--font-mono);font-size:0.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.tag-cloud h2{font-size:var(--step-1)}.tag-cloud .tags{margin-top:14px}.tag-cloud .n{color:var(--muted)}.tag-cloud a:hover .n,.tag-cloud a:focus-visible .n{color:inherit}.article{max-width:46rem;padding-block:40px 56px}.article .back{font-size:0.9rem;margin-bottom:28px}.article header{padding-bottom:24px;margin-bottom:28px;border-bottom:1px solid var(--line)}.article h1{font-size:clamp(1.9rem,calc(5vw * var(--zoom)),2.8rem);font-weight:800;font-stretch:80%;margin-top:8px}.article header .summary{margin-top:14px;font-size:1.1rem;color:var(--muted)}.article header .tags{margin-top:16px}.prose{font-size:1.05rem}.prose>* + *{margin-top:1em}.prose h2{font-size:var(--step-2);margin-top:1.8em}.prose h3{margin-top:1.5em}.prose ul,.prose ol{padding-left:1.4em}.prose li + li{margin-top:0.3em}.article .signature{margin-top:2em;font-family:var(--font-mono);font-size:0.95rem}.prose blockquote{margin-inline:0;padding-left:16px;border-left:3px solid var(--warm);color:var(--muted)}.prose code{font-family:var(--font-mono);font-size:0.88em;background:var(--surface);border:1px solid var(--line);border-radius:3px;padding:0 4px}.prose pre{overflow-x:auto;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.prose pre code{border:0;padding:0;background:none}.prose figure{margin-inline:0}.prose img{display:block;height:auto;margin-inline:auto;border-radius:4px}.prose figcaption{margin-top:8px;font-size:0.85rem;color:var(--muted);text-align:center}.prose table{width:100%;border-collapse:collapse;font-size:0.95rem}.prose th,.prose td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}.prose hr{border:0;border-top:1px solid var(--line)}.article-end{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:0.92rem;display:grid;gap:8px}.comments{margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}.comments>h2{font-size:var(--step-2)}.comments-count{font-family:var(--font-mono);font-size:0.8rem;font-weight:400;color:var(--muted);letter-spacing:0.04em}.comments-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:14px}.comment{padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.comment:target{border-color:var(--warm)}.comment-meta{margin:0;font-size:0.88rem;color:var(--muted)}.comment-meta strong{color:var(--ink);font-weight:600}.comment-text{margin:6px 0 0;white-space:pre-line;overflow-wrap:anywhere}.comment-reply{margin:12px 0 0;padding:10px 0 0 14px;border-left:3px solid var(--warm)}.comments-empty{margin:14px 0 0;color:var(--muted)}.comments .comment-form{max-width:none;margin-top:28px}.comment-form h3{font-size:var(--step-1);margin:0}.comments .comment-form .intro{text-align:left;margin:0}.comment-form .consent-box{display:flex;gap:10px;align-items:flex-start;font-size:0.92rem;color:var(--muted)}.comment-form .consent-box input{width:auto;flex:none;margin-top:4px;accent-color:var(--warm)}.comments .comment-form .consent-box label{margin:0;font-family:inherit;font-size:inherit;text-transform:none;letter-spacing:0}.comments .comment-form .send,.comments .comment-form .status{text-align:left}.btn.btn-warm{background:var(--warm);border-color:var(--warm);color:var(--on-warm);font-weight:600}.btn.btn-warm:hover{background:transparent;color:var(--warm)}.rate{margin-top:40px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.rate>h2{margin:0;font-size:var(--step-0)}.rate-hint{margin:4px 0 0;font-size:0.92rem;color:var(--muted)}.rate-form{margin:10px 0 0}.rate-stars{display:flex;flex-wrap:wrap;gap:2px;margin-left:-6px}.rate-stars button{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-card);background:none;color:var(--muted);cursor:pointer}.rate-stars svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}.rate-stars button.on,.rate-stars button:hover,.rate-stars button:has(~ button:hover){color:var(--warm)}.rate-stars button.on svg,.rate-stars button:hover svg,.rate-stars button:has(~ button:hover) svg{fill:currentColor}.rate-stars:hover button:hover ~ button{color:var(--muted)}.rate-stars:hover button:hover ~ button svg{fill:none}.rate-stars button:focus-visible{outline:2px solid var(--warm);outline-offset:0}.rate-stars button:disabled{cursor:progress}.rate-status:empty{display:none}.rate-status,.rate-msg{margin:8px 0 0;font-weight:600}.rate-status.error,.rate-msg.error{color:var(--warm)}.rate-msg{display:none}.rate-msg:target{display:block}.rate-average{margin:8px 0 0;font-family:var(--font-mono);font-size:0.85rem;color:var(--muted)}.rate-average strong,.rate-summary strong{color:var(--ink);font-weight:600}.rate-summary{margin-left:12px;text-transform:none;letter-spacing:0;color:var(--muted);text-decoration:none;white-space:nowrap}.rate-summary:hover{color:var(--warm)}.rate-summary .star{color:var(--warm)}.comment-page .comment-quote{margin-top:24px;padding:14px 16px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.comment-page .comments-list{text-align:left}.comment-page .comment-field{margin-top:20px;text-align:left}.comment-page .comment-field label{display:block;margin-bottom:4px;font-size:0.9rem;color:var(--muted)}.comment-page .comment-field textarea{width:100%;box-sizing:border-box;padding:9px 12px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.comment-page .label{margin-top:10px;font-family:var(--font-mono);font-size:0.8rem;color:var(--muted);overflow-wrap:anywhere}.topic .facts-row{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;font-family:var(--font-mono);font-size:0.8rem}.topic .facts-row li{max-width:100%;border:1px solid var(--line);border-radius:999px;padding:3px 12px;background:var(--surface)}.topic .facts-row li.cert{border-color:var(--warm);color:var(--warm)}.topic .facts-row a{color:inherit}.topic .cases{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));padding:0;list-style:none}.topic .cases li{margin:0;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.topic .cases .case-title{display:block;font-family:var(--font-display);font-weight:700}.topic .cases .case-title a{color:var(--ink)}.topic .cases .case-title a:hover{color:var(--warm)}.topic .cta{margin-top:32px;padding:18px 20px;border:1px solid var(--warm);border-radius:var(--radius-card);background:var(--surface)}.topic .cta p{margin:0 0 12px}.topic>.tags{margin-top:24px}.contact-form,.comment-form{max-width:40rem;margin:40px auto 0;display:grid;gap:14px}.contact-form p,.comment-form p{margin:0}.contact-form .intro,.comment-form .intro{text-align:center;color:var(--muted);margin-bottom:6px}.contact-form .row,.comment-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-form label,.comment-form label{display:block;margin-bottom:4px;font-family:var(--font-mono);font-size:0.74rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--muted)}.contact-form input,.contact-form select,.contact-form textarea,.comment-form input,.comment-form textarea{width:100%;box-sizing:border-box;padding:9px 12px;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);transition:border-color .15s}.contact-form textarea,.comment-form textarea{resize:vertical;min-height:8rem}.contact-form select{appearance:none;min-height:44px;padding-right:40px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--warm) 50%),linear-gradient(135deg,var(--warm) 50%,transparent 50%);background-position:right 20px center,right 14px center;background-size:6px 6px;background-repeat:no-repeat}.contact-form select:invalid{color:var(--muted)}.contact-form select option{color:var(--ink)}.contact-form input:hover,.contact-form select:hover,.contact-form textarea:hover,.comment-form input:hover,.comment-form textarea:hover{border-color:var(--muted)}.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible,.comment-form input:focus-visible,.comment-form textarea:focus-visible{outline:2px solid var(--warm);outline-offset:1px;border-color:var(--warm)}.contact-form .trap,.comment-form .trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-form .send,.comment-form .send{text-align:center}.contact-form .btn:disabled,.comment-form .btn:disabled{opacity:.5;cursor:wait}.contact-form .status,.comment-form .status{min-height:1.5em;text-align:center;font-size:0.95rem;color:var(--muted)}.contact-form .status.ok,.comment-form .status.ok{color:var(--ink)}.contact-form .status.error,.comment-form .status.error{color:var(--warm)}.contact-or{margin:0 0 14px;text-align:center;color:var(--muted);font-size:0.95rem}.contact{display:flex;flex-wrap:wrap;gap:4px;align-items:center;justify-content:center}.icon-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.icon-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:var(--radius-card);transition:transform .15s,opacity .15s}.icon-link:hover{transform:translateY(-2px);opacity:.85}.icon-link:focus-visible{outline:2px solid var(--warm);outline-offset:3px}.icon-link .brand-ico{display:block}.contact-fab{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:25;display:grid;place-items:center;width:56px;height:56px;padding:0;border:0;border-radius:var(--radius-card);background:none;box-shadow:0 8px 24px rgb(var(--shadow) / .28);cursor:pointer;transition:transform .15s,box-shadow .15s}.contact-fab:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgb(var(--shadow) / .34)}.contact-fab:focus-visible{outline:2px solid var(--warm);outline-offset:3px}.contact-fab svg{display:block}.has-fab footer{padding-bottom:96px}body.consent-on .contact-fab{bottom:calc(var(--consent-h,0px) + 16px)}html.dlg-open{overflow:hidden}dialog.contact-dialog{width:min(44rem,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);padding:0;overflow:auto;overscroll-behavior:contain;color:var(--ink);background:var(--surface);border:0;border-top:3px solid var(--warm);border-radius:var(--radius-card);box-shadow:0 24px 64px rgb(var(--shadow) / .35)}dialog.contact-dialog::backdrop{background:rgb(var(--scrim) / .55);backdrop-filter:blur(3px)}.contact-dialog .dlg-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px 14px;background:var(--surface);border-bottom:1px solid var(--line)}.contact-dialog .dlg-head h2{margin:0}.dlg-close{flex:none;width:44px;height:44px;display:grid;place-items:center;padding:0;font:inherit;font-size:1.3rem;line-height:1;color:var(--ink);background:none;border:1px solid var(--line);border-radius:4px;cursor:pointer;transition:color .15s,border-color .15s}.dlg-close:hover{color:var(--warm);border-color:var(--warm)}.dlg-close:focus-visible{outline:2px solid var(--warm);outline-offset:2px}.contact-dialog .dlg-body{padding:20px 24px 24px}.contact-dialog .contact-form{margin-top:18px}@media (prefers-reduced-motion:no-preference){dialog.contact-dialog[open]{animation:dlg-in .18s ease-out}@keyframes dlg-in{from{opacity:0;transform:translateY(12px)}}}.contact .mail{font-family:var(--font-mono);font-size:1.05rem;color:var(--ink);user-select:all}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:4px;font:inherit;text-decoration:none;cursor:pointer;color:var(--ink);background:transparent;border:1px solid var(--ink);transition:color .15s,border-color .15s}.btn:hover{color:var(--warm);border-color:var(--warm)}.btn:focus-visible{outline-color:var(--warm)}.btn .ico{display:inline-flex}.brand-ico{flex:none;display:inline-block;vertical-align:middle}.ico-link{display:inline-flex;align-items:center;gap:6px}.card-links{margin:0;justify-content:center}.card-links .icon-link{min-width:36px;min-height:36px}.card-contact dd{padding-top:4px}.post .author,.video-card .author{margin:0;font-family:var(--font-mono);font-size:0.78rem}footer{padding-block:28px;color:var(--muted);font-size:calc(0.85 * var(--r))}.foot{display:grid;justify-items:center;gap:8px;text-align:center}.foot-main{margin:0}.foot-topics a{white-space:nowrap}footer .version{font-family:var(--font-mono);font-size:calc(0.78 * var(--r))}.consent-open{display:inline-flex;align-items:center;min-height:24px;vertical-align:bottom;padding:0;border:0;background:none;font:inherit;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.consent-open:hover{color:var(--warm)}.consent{position:fixed;inset:auto 0 0 0;z-index:30;background:var(--surface);border-top:3px solid var(--warm);box-shadow:0 -6px 24px rgb(var(--shadow) / .12)}.consent .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-block:16px}.consent p{margin:0;flex:1 1 28rem;font-size:0.95rem}.consent .consent-btns{flex:0 0 auto;display:flex;gap:10px}body.consent-on{padding-bottom:120px}.fold-all{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:0;cursor:pointer;font-family:var(--font-display);font-weight:700;font-stretch:90%;font-size:1.05rem;color:var(--ink);background:none;border:0;text-align:left}.fold-all::after{content:"+";flex:none;font-size:1.5em;line-height:1;color:var(--warm)}.fold-all[aria-expanded="true"]::after{content:"\2212"}.fold-all:hover{color:var(--warm)}.fold-all:focus-visible{outline:2px solid var(--warm);outline-offset:2px}@media (max-width:600px){.js .timeline:not(.open)>.job-more{display:none}.home-pubs :is(.pub-more,.pubs-conf){display:none}}@media (min-width:601px){.js .fold-all-row.list-row,.home-pubs .all{display:none}}.fold-all-row{display:none;margin:28px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.js .fold-all-row{display:block}.fold-all[hidden]{display:none}.skills{margin-top:56px}.skills .skills-list{margin-top:16px}.reveal h4{margin:0}.reveal-btn{display:inline-flex;flex-direction:column;align-items:center;gap:14px;padding:4px;margin:0;font:inherit;font-size:1.15rem;font-weight:700;font-stretch:90%;line-height:1.2;color:var(--ink);background:none;border:0;cursor:pointer}.reveal-btn:hover .reveal-title,.reveal.open .reveal-title{color:var(--warm)}.reveal-btn:focus-visible{outline:2px solid var(--warm);outline-offset:3px;border-radius:4px}.js .reveal-title::after{content:" +";color:var(--warm);white-space:nowrap}.js .reveal.open .reveal-title::after{content:" \2212"}.reveal>p{margin-top:8px}.js .reveal:not(.open)>p{display:none}.js .carousel .refs-ctrl{flex-wrap:wrap;justify-content:center;row-gap:8px}.carousel .dots{flex:1 0 100%;justify-content:center}.all{display:flex;justify-content:center;margin-top:28px}.all .btn{min-height:44px;padding:10px 18px;font-weight:600}.crumbs{padding-top:24px;font-size:0.9rem;color:var(--muted)}.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 0}.crumbs li + li::before{content:"\203A";margin:0 8px;color:var(--muted)}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--warm)}main .crumbs + section{padding-top:20px}.head h1{font-size:clamp(1.9rem,calc(5vw * var(--zoom)),2.8rem);font-weight:800;font-stretch:80%}h2.as-h3{font-size:var(--step-1);font-weight:600;font-stretch:90%}.post h2 a{color:var(--ink);text-decoration:none}.post h2 a:hover{color:var(--warm)}.feed-link{text-transform:none;letter-spacing:0}@media (max-width:899px){:is(.whatido,.skills) .pillars{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}:is(.whatido,.skills) .pillars li{padding:12px 10px 14px;text-align:left;border-top-width:2px}.whatido .pillars p,.skills .pillars p{font-size:0.92rem}.reveal-btn{align-items:flex-start;text-align:left;font-size:1rem;gap:8px}.reveal.open{grid-column:1 / -1}.whatido .pillars h4{margin:8px 0 0;font-size:1rem}.whatido .pillars .more{margin-top:6px;font-size:0.85rem}}.links-page{max-width:34rem;padding-block:40px 56px;display:grid;gap:32px}.links-page header{display:grid;justify-items:center;gap:10px;text-align:center}.links-page header img{display:block;width:96px;height:96px;object-fit:cover;border-radius:50%;border:1px solid var(--line)}.links-page h1{font-size:var(--step-2);font-weight:800;font-stretch:80%;margin-top:4px}.links-page .intro{margin:0;color:var(--muted)}.links-page .links-latest{padding:0;margin:0}.links-latest h2{font-family:var(--font-mono);font-size:var(--step--1);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:12px}.links-latest ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.links-latest a{display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto auto;column-gap:14px;row-gap:4px;align-items:center;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .15s}.links-latest a:hover{border-color:var(--warm)}.links-latest a:hover .t{color:var(--warm)}.links-latest picture{grid-row:1 / 3}.links-latest img{display:block;width:112px;height:auto;aspect-ratio:16 / 9;object-fit:cover;border-radius:4px}.links-latest .t{grid-column:2;grid-row:1;align-self:end;font-weight:600;line-height:1.3}.links-latest time{grid-column:2;grid-row:2;align-self:start;font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted)}.links-buttons{display:grid;gap:10px}.links-buttons .btn{justify-content:center;min-height:48px;padding:10px 16px;font-weight:600}.not-found{padding-block:72px;display:grid;gap:28px}.not-found h1{font-size:var(--step-3);font-weight:800;font-stretch:78%}.not-found ul{list-style:none;margin:0;padding:0;display:grid;gap:22px}.not-found p + p{margin-top:6px}.confirm{max-width:40rem;padding-block:64px 72px;text-align:center}.confirm-ico{display:inline-grid;place-items:center;width:72px;height:72px;margin:0 0 20px;border-radius:50%;background:color-mix(in srgb,var(--warm) 14%,transparent);color:var(--warm)}.confirm h1{font-size:var(--step-3);font-weight:800;font-stretch:80%}.confirm .lead{margin-top:14px;font-size:1.1rem}.confirm .answer{margin-top:8px;color:var(--muted)}.recap{margin-top:36px;text-align:left;gap:16px;padding:20px 22px}.recap .card-title{font-family:var(--font-display);font-size:1.1rem;font-weight:700}.recap dl>div{display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:12px;align-items:baseline;padding-top:12px;border-top:1px solid var(--line)}.recap dt{display:flex;align-items:center;gap:8px}.recap dt svg{width:16px;height:16px;color:var(--warm);flex:none}.recap .excerpt{font-weight:400;color:var(--muted);white-space:pre-line}.confirm .receipt{margin-top:20px;display:flex;justify-content:center;align-items:center;gap:10px;color:var(--muted);font-size:0.95rem;text-align:left}.confirm .receipt svg{color:var(--warm);flex:none}.confirm .actions{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:center;align-items:center}@media (max-width:1080px){.hero{background-position:70% center}.hero::before{background:rgb(var(--hero-veil) / .6)}.hero .wrap{grid-template-columns:minmax(0,1fr);row-gap:26px;padding-block:0 30px;min-height:0}.hero .wrap>div:first-child{margin-inline:calc(-1 * var(--gutter));padding:26px var(--gutter);background:rgb(var(--hero-shade) / .6)}.hero .slogan{--slogan-size:min(calc(2.2 * var(--r)),calc((100vw - 40px) / 17))}html.js .hero .slogan{--slogan-size:calc(2.2 * var(--r))}.hero .tools{position:static;flex-wrap:wrap;justify-content:flex-end;gap:10px 14px;zoom:.8;margin-top:32px}}@media (max-width:600px){dialog.contact-dialog{width:100%;margin:auto 0 0;max-height:92dvh;border-radius:14px 14px 0 0}.contact-dialog .dlg-head{padding:14px 16px 10px}.contact-dialog .dlg-body{padding:16px 16px max(20px,env(safe-area-inset-bottom))}}@media (max-width:900px){.top .wrap{padding-block:8px;gap:8px 12px}.top .langs{margin-left:auto}.js .menu-btn{display:inline-flex}.reading{position:static}.reading-panel{top:100%;left:max(var(--gutter),env(safe-area-inset-left,0px));right:max(var(--gutter),env(safe-area-inset-right,0px));width:auto;max-width:calc(24 * var(--r));margin-left:auto}.top nav{order:1;width:100%;margin-left:0;gap:4px 16px}.js .top nav{display:none}.js .top.open{background:var(--bg)}.js .top.open nav{display:flex;flex-direction:column;gap:0;padding-bottom:4px}.js .top.open nav a{padding:12px 2px;border-top:1px solid var(--line);font-size:calc(1.05 * var(--r));color:var(--ink)}main section{scroll-margin-top:64px}.blog .posts{grid-template-columns:1fr}.blog .posts>li,.hashtag-page .posts>li{display:block;grid-row:auto}.post{display:flex;grid-row:auto}.post .thumb{max-width:26rem}.post .more{align-self:flex-start}.post .thumb.empty{display:none}.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.contact-form .row,.comment-form .row{grid-template-columns:1fr}.recap dl>div{grid-template-columns:1fr;gap:4px}.confirm{padding-block:40px 56px}body.consent-on{padding-bottom:190px}main section{padding-block:40px}.profil{grid-template-columns:1fr}.profil>:is(.card,.intro){grid-column:auto;grid-row:auto}.card{grid-template-columns:7rem minmax(0,1fr);align-items:start}.card.recap{grid-template-columns:1fr}.timeline li{grid-template-columns:1fr;gap:4px}.slide{grid-template-columns:1fr;gap:18px;padding:18px}.blog .slide{padding:0}.pubs-layout{grid-template-columns:1fr;gap:28px}.pubs-layout .scholar{order:-1;grid-template-columns:1fr}.scholar dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.scholar dl>div{display:block}.scholar dd strong{font-size:1.6rem}}@media (max-width:560px){.top .wrap{gap:8px}.brand{font-size:var(--r)}.hero::before{background:rgb(var(--hero-veil) / .35)}.hero .wrap{padding-block:16px;row-gap:0}.hero .wrap>div:first-child{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.hero .slogan{line-height:1.15;--slogan-size:min(calc(1.5 * var(--r)),calc((100vw - 32px) / 25))}html.js .hero .slogan{--slogan-size:calc(1.5 * var(--r))}.hero .tools{zoom:.6;margin-top:16px;gap:10px 18px}.langs-btn{padding-inline:6px}.reading-btn{padding-inline:7px}.menu-btn{width:36px;height:36px}.pillars{grid-template-columns:1fr}}@media print{.top,.skip-link,.refs-ctrl,.gallery,footer .version,.consent,.consent-open,.contact-fab,.contact-dialog{display:none!important}body{background:var(--print-paper);color:var(--print-ink)}.js .slide{grid-area:auto;opacity:1;visibility:visible}main section{padding-block:24px;break-inside:avoid-page}a{color:inherit}}
