@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-italic-D1l0FflY.woff2) format("woff2"),url(/assets/inter-latin-400-italic-BmFrN47l.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/bricolage-grotesque-latin-500-normal-DEDBoLFO.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-500-normal-CV-uA8Lw.woff) format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-600-normal-nxTgbNFE.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-600-normal-Bw0J83-2.woff) format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/bricolage-grotesque-latin-700-normal-gtcctNPv.woff2) format("woff2"),url(/assets/bricolage-grotesque-latin-700-normal-DvJDmrLu.woff) format("woff")}:root{--font-display: "Bricolage Grotesque", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, monospace;--accent-color: #1a1de3;--accent-hover: #1114ad;--text-dark: #242629;--text-medium: #41464d;--text-muted: #626971;--border-color: #e1e4e8;--surface-subtle: #f6f7f9}*{box-sizing:border-box}html{color-scheme:light;scroll-padding-top:1.5rem;font-size:112.5%}body{max-width:900px;margin:0 auto;padding:2.5rem 1.1rem;background:#fff;color:var(--text-dark);font:1rem/1.65 var(--font-body)}[hidden],.lang-fr .en-text,.lang-en .fr-text{display:none!important}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);line-height:1.3;text-wrap:balance;color:var(--text-dark)}h1{margin:0;font-size:clamp(1.8rem,4vw,2.35rem);font-weight:700;letter-spacing:-.035em}h2{font-size:1.4rem;font-weight:600}h3{font-size:1.2rem;font-weight:600}p{margin:0 0 1rem}a{color:inherit;text-decoration-color:var(--accent-color);overflow-wrap:anywhere}a:hover{color:var(--accent-color)}button{font:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--accent-color);outline-offset:4px;border-radius:2px}main:focus{outline:none}main{min-width:0;overflow-wrap:anywhere}section{margin-bottom:2.5rem}.site-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:3rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color);font:600 .95rem/1.4 var(--font-display);min-height:61px}.nav-links{display:flex;align-items:center;gap:clamp(.5rem,3vw,1.7rem)}.nav-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--text-medium);text-decoration:none;white-space:nowrap}.nav-links a:hover,.nav-links a[aria-current]{color:var(--accent-color);text-decoration:none}.lang-switch{min-width:44px;min-height:44px;padding:.4rem .55rem;border:1px solid var(--border-color);border-radius:.4rem;background:#fff;color:var(--text-medium);font:600 .8rem var(--font-body)}.lang-switch:hover{background:var(--surface-subtle);border-color:var(--text-muted)}.skip-link{position:absolute;left:1rem;top:0;padding:.75rem 1rem;background:#fff;transform:translateY(-150%);z-index:10}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.bio-portrait{position:relative;display:inline-block}.bio-name{min-height:auto;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.16em}.bio-name:hover{color:var(--accent-color)}.bio-photo-preview{visibility:hidden;position:absolute;left:50%;bottom:calc(100% + .75rem);z-index:5;width:clamp(220px,32vw,290px);padding:.35rem;border:1px solid var(--border-color);border-radius:1rem;background:#fff;box-shadow:0 1rem 2.5rem #12182829;opacity:0;transform:translate(-50%,.35rem);transition:opacity .14s ease,transform .14s ease,visibility .14s;pointer-events:none}.bio-photo-preview:after{content:"";position:absolute;left:50%;bottom:-.4rem;width:.75rem;height:.75rem;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:#fff;transform:translate(-50%) rotate(45deg)}.bio-photo-preview img{display:block;width:100%;aspect-ratio:1013 / 760;margin:0;border-radius:.7rem;object-fit:contain}.bio-portrait:hover .bio-photo-preview,.bio-portrait:focus-within .bio-photo-preview{visibility:visible;opacity:1;transform:translate(-50%)}.profile-socials{display:flex;flex-wrap:wrap;gap:.25rem .55rem;margin-left:-.4rem}.profile-socials a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--text-medium);border-radius:.3rem}.profile-socials .profile-cv{width:auto;padding:0 .55rem;gap:.4rem;font:600 .85rem var(--font-body);text-decoration:none}.profile-socials a:hover{color:var(--accent-color);background:var(--surface-subtle)}.profile-socials svg{width:1.25rem;height:1.25rem}.section-title{font-size:1.05rem;margin:0 0 1rem;letter-spacing:.025em}.section-title:before{content:"# ";color:var(--text-muted)}.markdown-body{color:var(--text-medium)}.markdown-body a{text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.16em}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h2{margin:2.25rem 0 .85rem}.markdown-body h3{margin:1.75rem 0 .75rem}.markdown-body ul,.markdown-body ol{padding-left:1.4rem;margin:.75rem 0 1.25rem}.markdown-body li{margin-bottom:.4rem}.markdown-body blockquote{border-left:3px solid var(--accent-color);background:var(--surface-subtle);margin:1.5rem 0;padding:1rem 1.25rem}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body img{display:block;max-width:100%;height:auto;border-radius:.5rem;margin:1.5rem auto}.markdown-body figure{margin:1.5rem 0}figcaption{text-align:center;color:var(--text-muted);font-size:.875rem;margin-top:.7rem}audio,video{width:100%;max-width:100%}.news-item{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.65rem;padding:.18rem 0;font-size:1em;line-height:1.5}.news-date,.blog-date,.page-header time{font:.8rem/1.7 var(--font-mono);color:var(--text-muted)}.news-date{padding-top:.2rem}.article-back{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:1.35rem;color:var(--text-muted);font:500 .82rem/1.4 var(--font-body);text-decoration:none}.article-back svg{width:1.45rem;height:1.1rem;overflow:visible;fill:none;stroke:var(--accent-color);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.article-back:hover{color:var(--accent-color)}.page-header{margin-bottom:2rem}.page-header time{display:block;margin-bottom:.65rem}.empty-state{margin:0;padding:2.5rem 0;color:var(--text-muted);font:400 1em/1.6 var(--font-body)}.blog-entry{display:grid;grid-template-columns:7rem minmax(0,1fr);align-items:baseline;gap:1rem;padding:.45rem 0}.blog-title{margin:0;font:400 1em/1.5 var(--font-body)}.blog-title a{color:var(--text-dark);text-decoration:none}.blog-title a:hover,.blog-title a:focus-visible{color:var(--accent-color);text-decoration:none}.blog-draft,.blog-post-status{display:inline-block;font:.7rem/1.5 var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.blog-draft{margin-left:.6rem}.blog-post-status{margin-bottom:.5rem}#view-work .markdown-body h2{padding-top:1.75rem;border-top:1px solid var(--border-color)}#view-work .markdown-body>h2:first-child{padding-top:0;border-top:0}.article-figure{max-width:550px;margin:2rem auto}.article-figure img{width:100%;height:auto;border-radius:.5rem}pre{max-width:100%;overflow-x:auto;border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;margin:1.5rem 0;background:var(--surface-subtle);line-height:1.6}code{font:.85em/1.6 var(--font-mono);background:var(--surface-subtle);padding:.1rem .25rem;border-radius:.2rem}pre code{padding:0;background:transparent;font-size:.85rem}[data-article] pre.code-block{position:relative;padding-top:3.5rem;background:#1f2329;border-color:#343b45;color:#f4f4f4}[data-article] pre.code-block code{color:inherit;background:transparent;font-family:var(--font-mono);text-shadow:none}[data-article] :not(pre)>code[class*=language-]{background:var(--surface-subtle);color:var(--text-dark);text-shadow:none;white-space:normal}.copy-code{position:absolute;top:.4rem;right:.5rem;min-height:44px;min-width:58px;padding:.3rem .65rem;border:1px solid #8795a5;border-radius:.3rem;background:#2b323d;color:#fff;font:.8rem var(--font-body)}.copy-code:hover{background:#3c4654}.copy-code:focus-visible{outline-color:#fff}.table-scroll{max-width:100%;overflow-x:auto;margin:1.5rem 0}table{width:100%;border-collapse:collapse;font-size:.95rem}th,td{text-align:left;padding:.65rem .8rem;border:1px solid var(--border-color)}th{background:var(--surface-subtle)}hr{border:0;border-top:1px solid var(--border-color);margin:2.5rem 0}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0}.gallery img{width:100%;height:220px;object-fit:cover;margin:0}.katex-display{max-width:100%;overflow-x:auto;overflow-y:hidden;padding:.4rem 0}.site-footer{margin-top:3.5rem;padding-top:1rem;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:.85rem}.site-footer p{margin-bottom:.65rem}@media(max-width:580px){body{padding:1.1rem .85rem;font-size:.9444rem}.site-nav{margin-bottom:2rem}.bio-photo-preview{top:calc(100% + .75rem);bottom:auto;left:0;width:min(220px,calc(100vw - 5rem));transform:translateY(-.35rem)}.bio-photo-preview:after{top:-.4rem;bottom:auto;left:1.5rem;border:0;border-top:1px solid var(--border-color);border-left:1px solid var(--border-color)}.bio-portrait:hover .bio-photo-preview,.bio-portrait:focus-within .bio-photo-preview{transform:translateY(0)}.profile-socials{justify-content:center;margin-left:0}.blog-entry{grid-template-columns:minmax(0,1fr);gap:.15rem;padding:.5rem 0}.news-item{grid-template-columns:minmax(0,1fr);gap:.05rem;padding:.3rem 0}.gallery{grid-template-columns:minmax(0,1fr)}.gallery img{height:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
