:root{--olive:#4f5200;--ble-pale:#f4dc9a;--ble-clair:#e9c46f;--ble:#d6ab55;--ble-fonce:#6b6147;--terre-pale:#f7dcc9;--terre-clair:#f0c3a5;--terre:#e6a57c;--terre-fonce:#9a4826;--lavande-pale:#e6dcf5;--lavande-clair:#d6cdef;--lavande:#a597d3;--lavande-fonce:#65539c;--background-color:#f6f1e7;--font-stack:"Atkinson Hyperlegible Mono", monospace;--text-color:var(--olive);--text-muted-color:var(--ble-fonce);--brand-color:var(--olive);--bp-small:36rem;--bp-medium:48rem;--bp-large:62rem;--bp-wide:75rem;--bp-xwide:87.5rem;--card-background:#fafafa;--card-rule-color:var(--olive);--text-small:.8em;--space:1rem;--space-tight:.3em;--space-section:3rem;--space-card:1.5rem;--space-inset:.75rem;--radius-card:1em;--radius-tile:2em;--radius-pill:1em;--shadow:1px 2px 10px rgba(var(--brand-color), 0.2);--rule-card:2px;--rule-thin:1px;--rule-thick:4px;--rule-table:3px;--rule-frame:1em;--sillons-chemin:var(--brand-color);--section-pale:var(--ble-pale);--section-clair:var(--ble-clair);--section-base:var(--ble);--section-fonce:var(--ble-fonce);--section-lien:#0000e0}.section-works,.section-categories{--section-pale:var(--terre-pale);--section-clair:var(--terre-clair);--section-base:var(--terre);--section-fonce:var(--terre-fonce);--section-lien:var(--terre-fonce)}.section-weeknotes,.section-yearnotes{--section-pale:var(--lavande-pale);--section-clair:var(--lavande-clair);--section-base:var(--lavande);--section-fonce:var(--lavande-fonce);--section-lien:var(--lavande-fonce)}:root,[class*=section-]{--intro-fond:var(--section-pale);--brand-alternative-color:var(--section-clair);--title-underline-color:var(--section-clair);--card-light-rule-color:var(--section-clair);--sillons-fond:var(--section-clair);--sillons-fond-alt:var(--section-base);--tramage-encre:var(--section-base);--brand-mid-tone:var(--section-fonce);--link-color:var(--section-lien);--visited-link-color:color-mix(in oklab, var(--section-lien), black 20%);--focus-ring:var(--section-lien)}:is(.section-works,.section-categories,.section-weeknotes,.section-yearnotes){a{text-decoration-line:underline}h2 .icon{color:var(--section-fonce)}}.sr-only,.visually-hidden,.skip-links:not(:focus-within){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@font-face{font-family:atkinson hyperlegible mono;font-display:swap;font-style:normal;font-weight:200 800;src:url(/css/AtkinsonHyperlegibleMonoVF-Variable-LDCKGDIB.woff2)}html{scroll-behavior:smooth}body{background-color:var(--background-color);color:var(--text-color);font-family:var(--font-stack);font-size:18px;font-optical-sizing:auto;line-height:1.3;font-style:normal;font-weight:400;margin:0;padding:var(--space);box-sizing:border-box}@media screen and (min-width:48rem){body{font-size:21px}}body>:is(header,main,footer){margin:var(--space-section)auto;@media screen and (width >= 62rem){max-width: var(--bp-wide);}}body>footer{font-size:var(--text-small);margin-bottom:0}img{box-sizing:border-box;height:auto;max-width:100%}h1,.h1{font-size:2.4em;font-weight:700;text-wrap:balance;hyphens:auto;overflow-wrap:break-word;.subtitle{color:var(--text-muted-color);display:block;font-size:var(--text-small);font-weight:400}}h2,.h2{color:var(--brand-color);font-size:1.25em;font-weight:700;margin:.9em 0 .4em;text-wrap:balance;section &:first-child{margin-top:0}}h3,.h3{font-size:1.1em;font-weight:700;margin:1em 0 .4em;text-wrap:balance}h4,.h4{font-size:1em;font-weight:600;margin:.8em 0 .5em;text-wrap:balance}p{margin:0 0 1em}p:last-child{margin-bottom:0}dt{font-weight:700}dd{margin:0 0 1em}@media screen and (min-width:48rem){dd{margin-left:1.25em}}a{color:var(--link-color)}a:visited{color:var(--visited-link-color)}a:hover,a:active{text-decoration:none}.strong,strong{font-weight:700}ul{list-style-position:inside;margin:1lh 0;padding:0}ul ul{padding-left:1em}p+ul{margin-top:-.5em}ul li,ol li{margin-bottom:var(--space-tight)}[data-type=weeknote] ul li,[data-type=weeknote] ol li{margin-bottom:1em}body>header a:link,body>header a:visited{color:var(--text-color);text-decoration-color:var(--brand-alternative-color);text-decoration-thickness:var(--rule-thick)}a[rel~=external]{padding-right:calc(var(--space-tight)/2)}a[rel~=external]:after{content:"";display:inline-block;background:url(data:image/svg+xml,%3Csvg%20height=%221024%22%20width=%22768%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath%20d=%22M640%20768H128v-510.094L256%20256V128H0v768h768V576H640V768zM384%20128l128%20128L320%20448l128%20128%20192-192%20128%20128V128H384z%22/%3E%3C/svg%3E);background-size:cover;opacity:.6;margin-left:5px;height:12px;width:10px}.tags-list{display:flex;list-style:none;flex-flow:row wrap;font-size:var(--text-small);gap:calc(var(--space-inset)/2);justify-content:flex-start;> li:not(:has(a)), a{border:1px solid var(--brand-alternative-color);border-radius:var(--radius-pill);display:inline-block;padding:calc(var(--space-inset)/2)var(--space-inset)}> li:not(:has(a)){background-color:var(--brand-alternative-color)}}.url-part{color:var(--brand-alternative-color)}.suffix:before{content:"\2014"/"";color:var(--brand-alternative-color);padding-left:.5em;padding-right:.5em}.suffix,.suffix a{color:var(--brand-alternative-color)}small{font-size:var(--text-small);font-weight:300}.smaller.suffix{color:var(--brand-color)}.markdown-content:empty{display:none}.markdown-image{margin:1.5em 0}.markdown-image>img{border:var(--rule-frame)solid var(--brand-alternative-color)}.markdown-image>figcaption{color:var(--section-fonce);display:block;font-size:var(--text-small);font-weight:400;margin-left:var(--rule-frame);text-wrap:balance}.measure-wide{max-width:38em}.measure{max-width:30em}.measure-narrow{max-width:20em}.icon--vector{fill:currentColor;margin-inline-end:var(--space-tight);height:1em;width:1em;vertical-align:text-top}.list--by-date{list-style-type:none;padding-left:0}@media screen and (min-width:48rem){.list--by-date{columns:auto 2}}.list--by-date time{color:var(--text-muted-color);font-size:var(--text-small)}.list--by-date>li{display:flex;flex-direction:column}@media screen and (min-width:48rem){.list--by-date>li{align-content:space-between;flex-direction:row;flex-basis:50%}.list--by-date a{flex:0;white-space:nowrap}.list--by-date time{flex:1;font-size:unset;text-align:right}}.invisible-list{list-style:none}.compact-list{margin:0;padding:0}.key-value{display:flex;flex-wrap:wrap;list-style:none;gap:.5rem;align-items:baseline}.key-value>dd{margin:0;white-space:nowrap}.key-value>dt,.key-value>dd+dd{&:not(:first-of-type)::before{content:"\2022"/"";margin-inline-end:.5em}}.inline-list{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-tight);list-style:none;> li{margin:0}> li + li::before{content:"\2022"/"";float:left;margin-inline-end:var(--space-tight)}}.with-brackets li::before{color:var(--text-muted-color);content:"["/"";margin-left:-.2em}.with-brackets li::after{color:var(--text-muted-color);content:"]"/""}.with-separator::before{content:"";display:block;margin:0 0 calc(var(--space-section)/2);border:var(--rule-thin)solid var(--title-underline-color);width:100%}.list--categories{display:flex;flex-direction:column;gap:var(--space)}.list--with-separators .list__item,.content--lead-in-lists li{display:flex;flex-direction:column;gap:calc(var(--space)/2);padding-top:var(--space);&:not(:last-child){border-bottom:var(--rule-thin)solid var(--card-light-rule-color);padding-bottom:var(--space)}}.content--lead-in-lists{h2::after{content:"\2026"/""}ul{list-style:none;padding:0}li{display:block;padding-left:1.2em;text-indent:-1.2em}li::before{content:"\2192  "/"";color:var(--text-muted-color)}}body>header{display:flex;flex-direction:column;gap:var(--space);margin-top:0}.menu--main [aria-current=page],.menu--main [aria-current=true]{font-weight:700}.menu--main ul{display:flex;flex-wrap:wrap;list-style:none;gap:var(--space);margin:0;padding:0;align-items:center;li{flex-grow:1;padding:0;a{display:flex}}li:first-of-type{flex-grow:0;span{display:none}}.icon--vector{margin-inline-end:0}}@media screen and (min-width:62rem){.menu--main ul li{flex-grow:0}}.menu--main a,.bouton{background-color:var(--intro-fond);border-radius:var(--radius-pill);display:inline-flex;gap:var(--space-inset);align-items:center;padding:var(--space-inset);text-decoration:none!important}:is(.menu--main a,.bouton):is(:hover,:focus){background-color:var(--section-clair)}.site-brand{flex-shrink:0}.site-title{hyphens:manual;margin:0;a{text-decoration:none}& + .subheading{font-size:var(--text-small);font-weight:700;padding:.25em 0;margin-top:0}& + .subheading small{white-space:nowrap}}.site-description,.site-description p{margin:0}details{margin-top:var(--space-card);summary{color:var(--link-color);cursor:pointer;font-weight:700}}.avatar{border:none;border-radius:50%;max-width:24px;vertical-align:middle}.skip-links:focus-within{position:fixed;top:0;left:0;width:100%;background-color:var(--background-color);z-index:9999;background-color:var(--background-color);border-bottom:var(--rule-thin)solid var(--brand-alternative-color);box-shadow:var(--shadow);padding:var(--space)}.skip-links ul{display:flex;flex-direction:column;gap:var(--space);list-style:none;margin:0}.breadcrumb ol{display:flex;flex-wrap:wrap;font-size:var(--text-small);gap:var(--space-tight);margin:0;li:not(:last-child)::after{color:var(--text-muted-color);content:"\203a"/"";margin-inline-start:var(--space-tight)}}.toc #TableOfContents{font-size:var(--text-small);margin:0;padding:0;ul{list-style:none;margin:0;padding:0}li + li{margin-top:var(--space-inset)}ul ul{margin-top:var(--space-inset);padding-left:var(--space)}}.page-intro{background:var(--intro-fond);border-radius:var(--radius-tile);box-sizing:border-box;color:var(--text-color);padding:0;display:grid;column-gap:10%;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;margin:var(--space-section)0;align-items:center;position:relative;.preamble{margin:0;z-index:10;padding:var(--space-card);@media screen and (width >= 48rem){padding: var(--radius-tile);}h1{margin-top:0}.lead{font-size:1.15em}}.illustration{height:8em;opacity:1;pointer-events:none;width:100%}.detours{mask-image:linear-gradient( to bottom,transparent,#000 45%)}.tramage{display:none}.detours__fond{stroke:var(--sillons-fond)}.detours__fond-alt{stroke:var(--sillons-fond-alt,var(--tramage-encre))}.detours__chemin{stroke:var(--sillons-chemin,var(--text-color))}.detours__point{fill:var(--sillons-fond-alt);stroke:var(--sillons-chemin)}@media screen and (width >= 48rem){&{grid-template-columns:70% 30%}.illustration{border-radius:0 var(--radius-tile)var(--radius-tile)0;overflow:hidden;position:absolute;height:100%;max-width:100%;top:0;right:0;width:35%;z-index:0}.detours{-webkit-mask-image:linear-gradient( to right,transparent,#000 40%);mask-image:linear-gradient( to right,transparent,#000 40%)}}@media screen and (width >= 62rem){&{grid-template-rows:1fr fit-content(12em)}.tramage{display:inherit;background:linear-gradient( to right,transparent,var(--tramage-encre) 40%);-webkit-mask:var(--tramage-src)center top/auto 100% no-repeat;mask:var(--tramage-src)center top/auto 100% no-repeat;pointer-events:none}}}main table{margin:1.5em 0;width:100%}main table thead{text-align:left}main table :is(td,th){border-bottom:var(--rule-table)solid var(--brand-alternative-color);padding:.2em}a.link--with-counter{display:flex;justify-content:space-between;align-items:center;> *{margin:0}}.bento-grid{display:flex;flex-direction:column;gap:var(--space-card);@media screen and (width >= 48rem){display: grid; grid-template-columns: repeat(2,minmax(0,1fr));}@media screen and (width >= 62rem){grid-template-columns: repeat(6,1fr);}}.card,.container{background-color:var(--card-background);border:var(--rule-card)solid var(--card-rule-color);border-radius:var(--radius-card);display:flex;flex-direction:column;margin:0;.card__cover{--radius:calc(var(--radius-card) - 4px);border-bottom:var(--rule-card)solid var(--card-light-rule-color);border-radius:var(--radius)var(--radius)0 0;overflow:hidden;img{object-fit:cover;height:auto;width:100%}}.card__content, .container__content{padding:var(--space-card);> :first-child{margin-top:0}> :last-child{margin-bottom:0}.metadata + p, p + .metadata{margin-top:var(--space-inset)}}.card__content > p, .container__content .post > .markdown-content{font-size:var(--text-small)}.metadata{color:var(--text-muted-color);font-size:var(--text-small);padding:0}}.card--light,.container--light{border-color:var(--card-light-rule-color)}@media screen and (width >= 48rem){:is(.bento-grid--home>.card.type--works:first-of-type,.bento-grid--weeknotes>li:first-child .card):has(.card__cover){flex-direction:row;.card__cover{border:none;border-right:var(--rule-card)solid var(--card-light-rule-color);border-radius:var(--radius)0 0 var(--radius);flex:1 0 50%;img{height:100%;width:100%}}}}a.title{color:var(--brand-color);margin:0;text-decoration:none;span:first-child{text-decoration:underline var(--title-underline-color)var(--rule-thick)}&:hover span:first-child{text-decoration-color:var(--section-base)}}.title:has(.suptitle){display:flex;flex-direction:column;text-wrap:balance;.suptitle{color:var(--brand-mid-tone);font-size:var(--text-small);font-weight:400;order:-1}}.layout-row{display:grid;gap:var(--space-card);@media screen and (width >= 62rem){grid-auto-columns: minmax(0,1fr); grid-auto-flow: column;}}.layout-8-4{align-items:start;display:grid;gap:var(--space-section);margin:0;@media screen and (width >= 62rem){grid-template-columns: minmax(0,8fr) minmax(0,4fr);}&:not(:has(> .layout-narrow-column)){grid-template-columns:minmax(0,1fr)}}.layout-4-4-4{display:grid;gap:var(--space-card);margin:0;padding:0;@media screen and (width >= 62rem){grid-template-columns: repeat(3,minmax(0,1fr));}details[open] > &{margin-block:var(--space-card)}}.layout-narrow-column{display:flex;flex-direction:column;gap:var(--space-section)}@media screen and (width >= 62rem){.layout-narrow-column:has(>.toc){align-self:stretch}.layout-narrow-column>.toc{position:sticky;top:var(--space);max-height:calc(100vh - 2 * var(--space));overflow-y:auto}}.summary{font-size:var(--text-small);margin:0}.section{margin:var(--space-section)0}.bento-grid--home{> *{grid-column:span 2}.type--works:is(:nth-of-type(2), :nth-of-type(3)){grid-column:auto}@media screen and (width >= 62rem){grid-template-columns: repeat(6,1fr); grid-template-rows: repeat(3,minmax(0,auto)); grid-auto-flow: dense; grid-template-areas: "expertise expertise highlighted-work1 highlighted-work1 highlighted-work1 highlighted-work1" "expertise expertise work1 work1 work2 work2" "highlighted-work2 highlighted-work2 highlighted-work2 notes notes notes"; #expertises{grid-area:expertise}#weeknotes{grid-area:notes}.type--works:nth-of-type(2){grid-area:work1}.type--works:nth-of-type(3){grid-area:work2}.card.type--works:first-of-type{grid-area:highlighted-work1}.card.type--works:last-of-type{grid-area:highlighted-work2}}}.bento-grid--term{ #works { grid-column: 1 / -1; } @media screen and (width >= 62rem) { grid-template-areas: "works works works works works works" "categories categories categories contact contact contact"; #works { grid-area: works; } #categories { grid-area: categories; } #contact { grid-area: contact; } }}.list--works .list__item{&:first-child{padding-top:0}.metadata{margin:0;padding:0}@media screen and (width >= 48rem){align-items: start; flex-direction: row; gap: var(--space); justify-content: space-between; .metadata{font-size:var(--text-small);flex-shrink:0}}}.year-group{display:grid;gap:var(--space-card);padding-block:var(--space-card);&:not(:first-of-type){border-top:var(--rule-table)solid var(--brand-alternative-color)}@media screen and (width >= 48rem){grid-template-columns: minmax(0,1fr) minmax(0,5fr); h3{margin:0}}}.bento-grid--works{> li{display:grid}> li:has(.card__cover){grid-column:span 2}@media screen and (width >= 62rem){grid-auto-flow: dense; grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: min-content 1fr;>li:has(.card__cover){grid-column:span 2;grid-row:span 2}>:nth-child(1 of .highlighted:has(.card__cover)){grid-column:1/span 2;grid-row:1/span 2}>:nth-child(1 of :not(.highlighted):has(.card__cover)){grid-column:2/span 2;order:-1}>:nth-child(5 of :not(.tools,:has(.card__cover))){grid-column:span 2}>.tools{grid-column:3}}}.bento-grid--weeknotes{> li{display:grid;.card__content .summary + .tags-list{margin-top:var(--space-inset)}}> li:first-child{grid-column:span 2}> li:not(:first-child) .card__cover{display:none}@media screen and (width >= 62rem){grid-template-columns: repeat(3,minmax(0,1fr));}}.year-archive{border-bottom:var(--rule-thin)solid var(--brand-alternative-color);summary{align-items:center;display:grid;gap:var(--space-tight)var(--space);grid-template-columns:auto minmax(0,1fr);padding-block:var(--space-inset);.h2{margin:0}.weeks{grid-column:1/-1}@media screen and (width >= 48rem){grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,4fr); .weeks{grid-column:auto}}}&[open] > ol{padding-block-end:var(--space-card)}}.weeks{display:grid;gap:calc(var(--space-tight)/2);grid-template-columns:repeat(53,minmax(0,1fr));> span{aspect-ratio:1;background-color:var(--brand-alternative-color)}> .week--with-note{background-color:var(--section-base)}}article.post{display:flex;flex-direction:column;gap:.5rlh;&:not(:last-child){margin-bottom:var(--space-card)} :where(h3, h4):first-child { margin: 0; } .metadata { margin: 0; order: -1; }}.content{overflow-wrap:anywhere;hr{border:0;border-top:var(--rule-thick)solid var(--brand-alternative-color);margin:var(--space-section)0}}.weeknote .content{h2{border-bottom:var(--rule-thick)solid var(--brand-alternative-color)}dt{margin-top:1.5em}dd{margin:.5em 0 0;padding-left:1.2em;text-indent:-1.2em}dd::before{content:"\2192  "/"";color:var(--text-muted-color)}h2:last-of-type + ul{list-style:none;li > span:first-child{display:inline-block;width:2.5em}}}.subheader,:is(.page,.resume) .content h2{border-bottom:var(--rule-thick)solid var(--brand-alternative-color);padding-bottom:calc(var(--space-inset)/2);margin-bottom:var(--space-inset)}.side-navigation{.nav-item a{display:flex;flex-direction:column;.next-item, .previous-item, .prefix-item{font-size:var(--text-small);color:var(--text-muted-color)}.previous-item::before{content:"\2190  "/""}.next-item::after{content:" \2192"/""}}}.facts{display:flex;flex-direction:column;gap:var(--space-inset);margin:0;dt{color:var(--text-muted-color);font-size:var(--text-small);font-weight:400}dd{margin:0}}.timeline{margin:0;padding:0}.timeline__item{border-left:var(--rule-thick)solid var(--brand-alternative-color);display:flex;flex-direction:column;gap:var(--space-tight);margin:0;padding:0 0 var(--space-card)var(--space-card);position:relative;> *{margin:0}&:last-child{border-left-color:transparent;padding-bottom:0}&::before{--dot:calc(var(--space-inset) + 2 * var(--rule-thick));background:var(--background-color);border:var(--rule-thick)solid var(--text-color);border-radius:var(--radius-pill);box-sizing:border-box;content:"";height:var(--dot);left:calc(-.5 * (var(--rule-thick) + var(--dot)));position:absolute;top:0;width:var(--dot)}}.timeline__item--current::before{background:var(--tramage-encre)}.timeline__period{color:var(--text-color);font-weight:700}.timeline__project{display:flex;flex-direction:column;gap:var(--space-tight);padding-left:var(--space);> *{margin:0}p, ul{font-size:var(--text-small)}ul{padding-left:var(--space)}}