*,:before,:after{box-sizing:border-box}html{font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.15;-webkit-text-size-adjust:100%;tab-size:4}body{margin:0}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:currentcolor}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}@font-face{font-family:JetBrains Mono;src:url(/assets/jetbrains-mono-variablefont-D5KFAJfm.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(jetbrains-mono-italic-variablefont.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@supports (not (font-variation-settings: normal)){@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),url(/assets/jetbrains-mono-regular-ClayWRmm.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:local("JetBrains Mono Regular"),url(/assets/jetbrains-mono-italic-Hm8XJ3qG.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}}@font-face{font-family:"Source Sans 3";src:url(/assets/SourceSans3-VariableFont_wght-DN2JU6xt.woff2);font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/assets/SourceSans3-Italic-VariableFont_wght-BVeisfnG.woff2);font-weight:300 700;font-style:italic;font-display:swap}@supports (not (font-variation-settings: normal)){@font-face{font-family:"Source Sans 3";src:url(/assets/SourceSans3-Light-jYwft071.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/assets/SourceSans3-LightItalic-DGuHkYSg.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/assets/SourceSans3-Regular-5f6oSlgi.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/assets/SourceSans3-Italic-B8v9N01M.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/assets/SourceSans3-Bold-B5iZD7I6.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/assets/SourceSans3-BoldItalic-D6H1kpB_.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}}@font-face{font-family:Yanone Kaffeesatz;src:url(/assets/yanonekaffeesatz-variablefont-DIobSol1.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-weight:200 700;font-style:normal;font-display:swap}@supports (not (font-variation-settings: normal)){@font-face{font-family:Yanone Kaffeesatz;src:local("Yanone Kaffeesatz Extralight"),url(/assets/yanonekaffeesatz-extralight-2OFyxaNA.woff2) format("woff2");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Yanone Kaffeesatz;src:local("Yanone Kaffeesatz light"),url(/assets/yanonekaffeesatz-light-Da_und0l.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Yanone Kaffeesatz;src:local("Yanone Kaffeesatz Regular"),url(/assets/yanonekaffeesatz-regular-BkM-yike.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Yanone Kaffeesatz;src:local("Yanone Kaffeesatz Bold"),url(/assets/yanonekaffeesatz-bold-DT_AiPGm.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}}@font-face{font-family:"jr!hand";src:local("jr!hand"),local("Jrhand"),url(/assets/Jrhand-BE0lFEQs.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}code[class*=language-],pre[class*=language-]{color:var(--color-white);text-shadow:0 1px rgb(0 0 0 / .3);font:400 var(--font-size-code)/1.45 var(--font-stack-code);direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;tab-size:3;-webkit-hyphens:none;hyphens:none}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]::selection,pre[class*=language-] ::selection,code[class*=language-]::selection,code[class*=language-] ::selection{text-shadow:none;background:var(--color-back-lighter)}pre,pre[class*=language-]{padding:1.5em 2em;margin:2em 0;overflow:auto;border-radius:.2em;position:relative;background:var(--color-back-dark)}@media(width<=768px){pre,pre[class*=language-]{margin:2em -1rem;border-radius:0}}code[class*=language-]::selection{background:var(--color-red);color:var(--color-front);text-shadow:0 1px 0 rgb(0 0 0 / .5)}@media(width<=768px){code[class*=language-]{display:block}}:not(pre)>code[class*=language-],pre[class*=language-]{background:var(--color-back-dark)}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--color-back-lighter)}.token.punctuation{color:var(--color-front)}.namespace{opacity:.7}.token.constant,.token.symbol,.token.deleted,.token.tag,.token.selector{color:var(--color-blue)}.token.boolean,.token.number{color:var(--color-red)}.token.string,.token.property,.token.char,.token.builtin,.token.inserted,.token.attr-name{color:var(--color-green)}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.variable{color:var(--color-front)}.token.atrule,.token.attr-value,.token.keyword{color:var(--color-yellow)}.token.function{color:var(--color-blue)}.token.regex,.token.important{color:var(--color-red)}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[data-line]{position:relative;padding:1em 0 1em 3em}.line-highlight{position:absolute;left:0;right:0;padding-left:0;padding-right:0;margin-top:1em;background:#997a6614;background:linear-gradient(to right,#997a661a 70%,#997a6600);pointer-events:none;line-height:inherit;white-space:pre}.line-highlight:before,.line-highlight[data-end]:after{content:attr(data-start);position:absolute;top:.4em;left:.6em;min-width:1em;padding:0 .5em;background-color:#997a6666;color:#f5f2f0;font:700 65%/1.5 sans-serif;text-align:center;vertical-align:.3em;border-radius:999px;text-shadow:none;box-shadow:0 1px #fff}.line-highlight[data-end]:after{content:attr(data-end);top:auto;bottom:.4em}pre[class*=language-html]:after,pre[class*=language-markup]:after{content:"html"}pre[class*=language-css]:after{content:"css"}pre[class*=language-javascript]:after{content:"javascript"}pre[class*=language-pug]:after{content:"pug"}pre[class*=language-php]:after{content:"php"}pre[class*=language-markdown]:after{content:"markdown"}pre[class*=language-]:after,.code-toolbar>.toolbar{position:absolute;right:0;top:0}pre[class*=language-]:after,.code-toolbar .toolbar-item{color:var(--color-front);background-color:var(--color-back-light);border-radius:0 3px;display:inline-block;position:absolute;top:0;right:0;font-size:.75rem;padding:.25em .6em;text-shadow:none;z-index:1;box-shadow:none;transform:none}:root{--color-black: #1e192b;--color-white: #f8f8f2;--color-subwhite: #f9fad3;--color-green: #c3e88d;--color-blue: #4eb0e4;--color-violet: #a48aec;--color-yellow: #ffcb6b;--color-red: #ec4185;--color-back: var(--color-black);--color-front: var(--color-white);--color-front-sub: var(--color-subwhite);--color-separator: var(--color-back-light);--color-back-dark: hsl(from var(--color-back) h s calc(l - 1) );--color-back-darker: hsl(from var(--color-back) h s calc(l - 3) );--color-back-light: hsl(from var(--color-back) h s calc(l + 5) );--color-back-lighter: hsl(from var(--color-back) h s calc(l + 22) );--font-stack-common: "Source Sans 3", system-ui, "Segoe UI", "Helvetica Neue", roboto, arial, sans-serif;--font-stack-heading: "Yanone Kaffeesatz", "Source Sans 3", system-ui, "Segoe UI", "Helvetica Neue", roboto, arial, sans-serif;--font-stack-code: "JetBrains Mono", monospace;--font-stack-hand: "jr!hand", cursive;--font-grow-ratio: 1.25;--font-size-base: 16px;--font-size-xs: calc(var(--font-size-base) * .875);--font-size-sm: var(--font-size-base);--font-size-md: calc(var(--font-size-base) * var(--font-grow-ratio));--font-size-lg: calc(var(--font-size-md) * var(--font-grow-ratio));--font-size-xl: calc(var(--font-size-lg) * var(--font-grow-ratio));--font-size-2xl: calc(var(--font-size-xl) * var(--font-grow-ratio));--font-size-3xl: calc(var(--font-size-2xl) * var(--font-grow-ratio));--font-size-4xl: calc(var(--font-size-3xl) * var(--font-grow-ratio));--font-size-5xl: calc(var(--font-size-4xl) * var(--font-grow-ratio));--font-size-6xl: calc(var(--font-size-5xl) * var(--font-grow-ratio));--font-size-heading-1: var(--font-size-4xl);--font-size-heading-2: var(--font-size-3xl);--font-size-heading-3: var(--font-size-2xl);--font-size-heading-4: var(--font-size-xl);--font-size-heading-5: var(--font-size-lg);--font-size-heading-6: var(--font-size-md);--font-size-title: var(--font-size-2xl);--font-size-article-title: var(--font-size-4xl);--font-size-article-title-small: var(--font-size-xl);--font-size-article-infos: var(--font-size-xs);--font-size-error: var(--font-size-5xl);--font-size-menu: var(--font-size-xl);--font-size-quotes: var(--font-size-md);--font-size-code: var(--font-size-xs);--timing-xfast: .2s;--timing-fast: .25s;--timing-normal: .3s;--timing-slow: .5s;--timing-xslow: .75s;--ease-back-out: cubic-bezier(.295, 1.75, .69, .9);--ease-spring: linear(0, -.002 7.8%, -.013 13.5%, -.09 30.5%, -.088 33.8%, -.07 36.6%, .003 40.8%, .129 44.4%, .309 47.6%, .807 54.3%, .95 57.6%, 1.042 61.3%, 1.081 64.8%, 1.09 68.9%, 1.013 86.5%, 1.002 92.2%, 1);--gutter-base: 2rem;--gutter-screen-y: var(--gutter-base);--gutter-screen-x: var(--gutter-base);--color-brand-twitter: #55acee;--color-brand-x: #000000;--color-brand-facebook: #3b5988;--color-brand-codepen: #000000;--color-brand-github: #333333;--color-brand-linkedin: #0077b5;--color-brand-instagram: #833ab4;--color-brand-youtube: #ff0000;--color-brand-npmjs: #cb3837;--color-brand-bluesky: #0085ff;--scrollbar-color: var(--color-green);--scrollbar-width: thin}@media(width<=768px){:root{--font-grow-ratio: 1.2}}@media(prefers-reduced-motion:reduce){:root{--timing-xfast: 0;--timing-fast: 0;--timing-normal: 0;--timing-slow: 0;--timing-xslow: 0}}@media(width<=768px){:root{--gutter-base: 2rem}}@media(prefers-reduced-motion:reduce){:root{--scrollbar-width: auto}}::selection{background:var(--color-blue);color:var(--color-front);text-shadow:0 1px 0 rgb(0 0 0 / .5)}@media(prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}:focus{transition:outline-offset var(--timing-fast) ease;outline-offset:5px}}*,*:before,*:after{box-sizing:inherit}html{box-sizing:border-box;scrollbar-color:var(--scrollbar-color) transparent;scrollbar-width:var(--scrollbar-width);scrollbar-gutter:stable;interpolate-size:allow-keywords;transition:scrollbar-color var(--timing-xfast) ease}html:has(.portfolio){--scrollbar-color: var(--color-blue)}html:has(.projects){--scrollbar-color: var(--color-yellow)}html:has(.blog){--scrollbar-color: var(--color-red)}html:has(.me){--scrollbar-color: var(--color-violet)}body{background:var(--color-back);color:var(--color-front);font:400 var(--font-size-base)/1.5 var(--font-stack-common)}a{background-color:transparent;color:var(--color-green);text-decoration:none;transition:color var(--timing-xfast) ease-in-out}a:is(:hover,:focus){color:var(--color-yellow);outline:none}a:not([href],[class]),a:not([href],[class]):hover{color:inherit}i[lang]{font-style:normal}img,svg{max-inline-size:100%;vertical-align:middle;height:auto}img{font-style:italic;shape-margin:1rem}h1,h2,h3,h4{font:300 var(--title-size)/1 var(--font-stack-heading);color:var(--title-color);margin:1.5em 0 .75em}h1{--title-size: var(--font-size-heading-1);--title-color: var(--color-green)}h2{--title-size: var(--font-size-heading-2);--title-color: var(--color-green)}h3{--title-size: var(--font-size-heading-3);--title-color: var(--color-yellow);line-height:1.5}:where(button,[type=button],[type=reset],[type=submit]):not(:disabled){cursor:pointer}blockquote{position:relative;margin:2rem 0;padding-left:4rem;font:400 italic var(--font-size-quotes)/1.5em var(--font-stack-common)}blockquote:before{content:"“";position:absolute;left:0;top:2rem;font-size:6em;color:var(--color-back-lighter)}q{font-style:italic;color:var(--color-yellow);quotes:"« " " »"}pre,code,kbd,samp{font-family:var(--font-stack-code)}kbd{background:var(--color-separator);font-size:.85rem;border-radius:.2em;display:inline-block;padding:0 .35em;border-bottom:1px solid var(--color-back-darker);margin:0 .05em}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-align-center{text-align:center}.text-align-justify{text-align:justify}img.text-align-center{margin-inline:auto;display:block}.pull-left{float:left;margin-right:2em;margin-bottom:.5em}.pull-right{float:right;margin-left:2em;margin-bottom:.5em}.shape-round{shape-outside:circle()}.noscript{max-inline-size:480px;margin:calc(var(--gutter-base) * 3) auto;font-size:var(--font-size-md)}.emoji{font-family:system-ui!important;font-style:inherit}.visually-hidden,.visually-hidden-focusable:not(:focus,:focus-within){border:0;clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px;min-width:fit-content}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus,:focus-within,caption){position:absolute}.page-enter-active,.page-leave-active{transition:var(--timing-normal) ease}.page-enter,.page-leave-active{opacity:0}.fade-enter-active,.fade-leave-active{transition:opacity var(--timing-normal)}.fade-enter-active,.fade-enter,.fade-leave-to{opacity:0;filter:blur(2px)}.fade-enter-to{opacity:1;filter:blur(0)}.list-enter-active,.list-leave-active{transition:.5s}.list-enter-to,.list-leave{opacity:1}.list-enter,.list-leave-to{opacity:0}.list-complete-leave-active,.list-complete-enter-active{position:absolute}.animation-fade{opacity:0;animation-name:animation-fade;animation-duration:var(--timing-slow);animation-fill-mode:forwards}.animation-bounce{opacity:0;translate:0 20px;scale:.975;animation:.765s var(--ease-back-out) .25s forwards animation-back-slide-in}.animation-fade-bounce{opacity:0;scale:.975;animation-name:animation-back-slide-in;animation-duration:var(--timing-slow);animation-timing-function:var(--ease-back-out);animation-fill-mode:forwards}.animation-fade-scale{opacity:0;translate:0 16px;scale:.925;filter:blur(15px);animation-name:animation-fade-scale;transform-origin:bottom left;animation-timing-function:var(--ease-back-out);animation-duration:var(--timing-slow);animation-fill-mode:forwards}.animation-skew-y{opacity:0;translate:0 25%;transform:skewY(-5deg);transform-origin:top right;animation:.765s var(--ease-back-out) .25s forwards animation-skew-y}.animation-skew-y-revert{opacity:0;translate:0 25%;transform:skewY(5deg);transform-origin:top left;animation:.765s var(--ease-back-out) .25s forwards animation-skew-y}@keyframes animation-fade{to{opacity:1}}@keyframes animation-fade-scale{to{opacity:1;translate:0 0;scale:1;filter:blur(0)}}@keyframes animation-back-slide-in{to{opacity:1;translate:0 0;scale:1}}@keyframes animation-skew-y{to{opacity:1;translate:0 0;transform:skewY(0)}}.note{margin:var(--gutter-base) auto;background:var(--color-back-light);padding:1em 2em;border-left:4px solid var(--note-color);position:relative}@media(width<=768px){.note{margin:var(--gutter-basey) calc(var(--gutter-base) * -1);padding-top:2em;margin-top:2.5rem;border-left:0;border-top:4px solid var(--note-color)}}.note:before{content:var(--icon);position:absolute;left:-2px;translate:-50% 0;width:28px;aspect-ratio:1;display:flex;justify-content:center;align-items:center;color:var(--color-back-dark);border-radius:50%;border-color:var(--note-color);background:var(--note-color) 50% no-repeat}@media(width<=768px){.note:before{left:50%;top:0;translate:0 -50%}}.note.--info{--note-color: var(--color-blue);--icon: "ℹ"}.note.--success{--note-color: var(--color-green);--icon: "✔"}.note.--question{--note-color: var(--color-violet);--icon: "❓"}.note.--important{--note-color: var(--color-yellow);--icon: "❗"}.note.--alert{--note-color: var(--color-red);--icon: "🚨"}.iframe-codepen{inline-size:100%;min-block-size:430px}@media(inline-size<=768px){.iframe-codepen{min-block-size:380px}.picture-full{margin-inline:calc(var(--gutter-screen-x) * -1);display:block;max-inline-size:none;inline-size:calc(100% + (var(--gutter-screen-x) * 2))}}.video iframe{inline-size:100%;vertical-align:top;aspect-ratio:16/9}.picture[data-v-b909db13]{margin-block:var(--gutter-base);display:grid;grid-template:"Picture" / auto;place-items:center}@supports (content-visibility: auto){.picture[data-v-b909db13]{content-visibility:auto}}@media(width<=1120px){.picture[data-v-b909db13]{display:none}}.picture picture[data-v-b909db13]{grid-area:Picture}.picture img[data-v-b909db13]{grid-area:Picture;border-radius:100vw;aspect-ratio:1}@property --bg-social-link{syntax: "<color>"; inherits: true; initial-value: var(--color-front-sub);}.network[data-v-8b431eac]{display:block;width:calc(var(--gutter-base) * 1.5);aspect-ratio:1;color:var(--color-front);background:var(--color-back-dark);padding:.55em;border-radius:50%;transition:background-color var(--timing-slow) var(--ease-back-out);overflow:hidden}.network[data-v-8b431eac]:is(:hover,:focus){background:var(--bg-social-link);transition:background-color var(--timing-xfast) ease-in-out}.network[data-v-8b431eac]:is(:hover,:focus) svg{scale:.75}.network.--twitter[data-v-8b431eac]{--bg-social-link: var(--color-brand-twitter)}.network.--x[data-v-8b431eac]{--bg-social-link: var(--color-brand-x)}.network.--facebook[data-v-8b431eac]{--bg-social-link: var(--color-brand-facebook)}.network.--instagram[data-v-8b431eac]{--bg-social-link: var(--color-brand-instagram)}.network.--codepen[data-v-8b431eac]{--bg-social-link: var(--color-brand-codepen)}.network.--github[data-v-8b431eac]{--bg-social-link: var(--color-brand-github)}.network.--linkedin[data-v-8b431eac]{--bg-social-link: var(--color-brand-linkedin)}.network.--youtube[data-v-8b431eac]{--bg-social-link: var(--color-brand-youtube)}.network.--npmjs[data-v-8b431eac]{--bg-social-link: var(--color-brand-npmjs)}.network.--bluesky[data-v-8b431eac]{--bg-social-link: var(--color-brand-bluesky)}.network[data-v-8b431eac] svg{fill:currentcolor;transition:scale var(--timing-normal) var(--ease-back-out)}.social[data-v-0e7e1b26]{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}@media(width<=1120px){.social[data-v-0e7e1b26]{margin-top:calc(var(--gutter-base) / 2)}}.header[data-v-60039527]{padding:var(--gutter-base);background:var(--color-back-dark);position:relative;z-index:10;text-align:center;grid-area:header}.title[data-v-60039527]{margin-block:0;font:400 var(--font-size-title)/1 var(--font-stack-heading);animation-delay:.25s}.picture[data-v-60039527]{animation-delay:.35s}.social[data-v-60039527]{animation-delay:.45s}.bio[data-v-60039527]{margin-block:var(--gutter-base);animation-delay:.55s;text-wrap:balance}.bio b[data-v-60039527]{color:var(--color-green);font-weight:inherit}@media(width<=1120px){.bio[data-v-60039527]{display:none}}.copyright[data-v-60039527]{animation-delay:.65s}@media(width<=1120px){.copyright[data-v-60039527]{display:none}}.footer[data-v-9d7f2bf0]{text-align:center;padding:1em 0;display:none}@supports (content-visibility: auto){.footer[data-v-9d7f2bf0]{content-visibility:auto}}@media(width<=1120px){.footer[data-v-9d7f2bf0]{display:block;grid-area:footer}}@property --link-color{syntax: "<color>"; inherits: false; initial-value: var(--color-front);}.menu-item[data-v-2a392869]{font:400 var(--font-size-menu)/1 var(--font-stack-heading);text-decoration:none;color:var(--link-color);position:relative;transition:opacity,translate,scale;transition-duration:var(--timing-slow);transition-timing-function:var(--ease-back-out);transition-delay:calc(var(--appearance-delay, 0s) * 1.25)}@media(width<=768px){.menu-item[data-v-2a392869]{transition-delay:var(--appearance-delay, 0s)}}@starting-style{.menu-item[data-v-2a392869]{opacity:0;translate:0 45%;scale:.75}@media(width<=768px){.menu-item{translate:0 50%;scale:.5}}}@media(width<=768px){.menu-item[data-v-2a392869]{font-weight:300;font-size:1rem;text-align:center;flex:1;padding:8px}}.menu-item[data-v-2a392869]:before,.menu-item[data-v-2a392869]:after{display:inline-block;opacity:0;transition-property:color,opacity,translate;transition-duration:var(--timing-normal);transition-timing-function:var(--ease-back-out);color:var(--color-front);content:var(--content)}@media(width<=768px){.menu-item[data-v-2a392869]:before,.menu-item[data-v-2a392869]:after{display:none}}.menu-item[data-v-2a392869]:before{--content: "<";translate:20px 0;padding-right:.125em}.menu-item[data-v-2a392869]:after{--content: "/>";translate:-20px 0;padding-left:.1875em}.menu-item[data-v-2a392869]:is(:hover,:focus){color:var(--link-color-hover)}:is(.menu-item:is(:hover,:focus),.menu-item.--active)[data-v-2a392869]:before,:is(.menu-item:is(:hover,:focus),.menu-item.--active)[data-v-2a392869]:after{opacity:1;translate:0 0}.menu-item.--active[data-v-2a392869]{color:var(--link-color-active)}.menu-item.--active[data-v-2a392869]:hover:before,.menu-item.--active[data-v-2a392869]:hover:after{color:var(--link-color-hover)}.menu-item[href="/"][data-v-2a392869]{--link-color-hover: var(--color-green);--link-color-active: var(--color-green)}.menu-item[href="/portfolio"][data-v-2a392869]{--link-color-hover: var(--color-blue);--link-color-active: var(--color-blue)}.menu-item[href="/projets"][data-v-2a392869]{--link-color-hover: var(--color-yellow);--link-color-active: var(--color-yellow)}.menu-item[href="/blog"][data-v-2a392869]{--link-color-hover: var(--color-red);--link-color-active: var(--color-red)}.menu-item[href="/moi"][data-v-2a392869]{--link-color-hover: var(--color-violet);--link-color-active: var(--color-violet)}.menu-item[data-v-2a392869] svg{display:none;translate:0 0;padding:0;opacity:1;width:24px;aspect-ratio:1;margin:0 auto 5px;fill:currentcolor}@media(width<=768px){.menu-item[data-v-2a392869] svg{display:block}}.menu[data-v-89f91861]{grid-area:menu;display:flex;justify-content:end}@media(width>768px){.menu[data-v-89f91861]{margin-bottom:6rem}}@media(width<=768px){.menu[data-v-89f91861]{justify-content:space-between;position:fixed;background:var(--color-back-dark);inset:auto 0 0;z-index:50;will-change:transform;padding:0;transition:translate var(--timing-xfast) var(--ease-spring)}@starting-style{.menu[data-v-89f91861]{translate:0 100%}}}.menu[data-v-89f91861] .menu-item:nth-child(1){--appearance-delay: .4s}.menu[data-v-89f91861] .menu-item:nth-child(2){--appearance-delay: .35s}.menu[data-v-89f91861] .menu-item:nth-child(3){--appearance-delay: .3s}.menu[data-v-89f91861] .menu-item:nth-child(4){--appearance-delay: .25s}.menu[data-v-89f91861] .menu-item:nth-child(5){--appearance-delay: .2s}.skip-link[data-v-5dc645a6]{position:absolute;z-index:10}.site[data-v-e6d62a4c]{min-block-size:100svh;overflow-x:clip;display:grid;grid-template:"header content" / 20rem auto}@media(width<=1120px){.site[data-v-e6d62a4c]{grid-template:"header" "content" "footer"}}@media(width<=768px){.site[data-v-e6d62a4c]{padding-bottom:80px}}.site-content[data-v-e6d62a4c]{padding:var(--gutter-screen-y, 2rem) var(--gutter-screen-x, 2rem);width:min(50rem,100dvw);margin-inline:auto;grid-area:content}.main[data-v-e6d62a4c]{margin:0 auto var(--gutter-base);outline:0}.floating-note[data-v-95d7eb93]{transition-property:translate,rotate;transition-duration:.15s;transition-timing-function:var(--ease-back-out)}.resume[data-v-59be44d2]{position:relative;padding-bottom:calc(var(--gutter-base) * 2)}@media(width<=768px){.resume[data-v-59be44d2]{padding-bottom:0}}.card[data-v-59be44d2]{color:var(--color-front-sub);font:700 var(--font-size-heading-1)/1 var(--font-stack-common);margin-bottom:calc(var(--gutter-base) * 2.5);text-align:center}@supports (content-visibility: visible){.card[data-v-59be44d2]{content-visibility:visible}}@container (width < 46rem){.card[data-v-59be44d2]{font-size:var(--font-size-heading-3)}}.card-name[data-v-59be44d2]{margin:0;font:inherit;color:var(--color-blue);animation-delay:.55s;min-width:fit-content;font-size:clamp(var(--font-size-heading-3),13cqi,5ch);transition-property:translate,opacity,scale;transition-delay:.25s;transition-timing-function:var(--ease-back-out)}.card-hello[data-v-59be44d2]{text-align:left;animation-delay:.45s;transition-property:translate,opacity,scale;transition-delay:.25s;transition-timing-function:var(--ease-back-out)}.card-job[data-v-59be44d2]{animation-delay:.75s;text-align:right;transition-property:translate,opacity,scale;transition-delay:.25s;transition-timing-function:var(--ease-back-out)}.card-job span[data-v-59be44d2]{color:var(--color-red);min-width:fit-content}.card-birthday[data-v-59be44d2]{text-align:center;margin:2em var(--gutter-base) 0;animation-delay:.85s}.floating-note[data-v-59be44d2]{font:400 1.75rem/1 var(--font-stack-hand);position:absolute;color:var(--color-green);opacity:0;animation-name:foot-notes-in-59be44d2;animation-duration:2s;animation-fill-mode:forwards}@media(width<=768px){.floating-note[data-v-59be44d2]{display:none}}.fn-age[data-v-59be44d2] .animation-fade-bounce{animation-delay:1.25s;animation-duration:1s}.fn-note[data-v-59be44d2] .animation-fade-bounce{animation-delay:1.45s;animation-duration:1.05s}.fn-age[data-v-59be44d2]{bottom:6.25rem;left:-4%}.fn-note[data-v-59be44d2]{right:5%;bottom:8%}.resume-age[data-v-59be44d2]{rotate:5deg;animation-delay:1.25s}.resume-age span[data-v-59be44d2]{display:block;color:var(--color-green)}.resume-age i[data-v-59be44d2]{color:var(--color-front-sub);font-style:normal;font-size:80%;display:block;translate:-12% 0}.resume-age svg[data-v-59be44d2]{fill:var(--color-blue);width:90px;translate:62px 20px;rotate:-28deg;scale:-1 1}.resume-note[data-v-59be44d2]{rotate:-6deg;display:flex;align-items:center;animation-delay:1.55s}.resume-note svg[data-v-59be44d2]{fill:var(--color-blue);width:90px;translate:12px -30px;rotate:28deg}@keyframes foot-notes-in-59be44d2{to{opacity:1}}.cv-code[data-v-ac8ac398]{border-radius:.5rem;overflow:hidden;background:var(--color-back-dark);animation-delay:.75s;animation-duration:calc(var(--timing-slow) * 1.5)}@supports (content-visibility: auto){.cv-code[data-v-ac8ac398]{content-visibility:auto}}[data-v-ac8ac398] pre{margin:0}@container (width < 46rem){[data-v-ac8ac398] pre{padding:1.5em 1em}}[data-v-ac8ac398] pre:after{content:none}[data-v-ac8ac398] code{animation-delay:.5s}.top-bar[data-v-ac8ac398]{display:flex;align-items:center;background:var(--color-back-light);color:var(--color-front);text-align:center;padding:5px 10px;border-radius:.5rem .5rem 0 0;position:relative;font-family:var(--font-stack-code)}.fake-buttons[data-v-ac8ac398]{margin-right:1rem;display:flex;gap:6px}.fake-button[data-v-ac8ac398]{inline-size:.7rem;block-size:.7rem;border-radius:50%;background:var(--bg-button)}.title[data-v-ac8ac398]{margin:auto;translate:-32px 0;color:var(--color-front-sub)}@container (width < 46rem){.title[data-v-ac8ac398]{margin:0;translate:0 0}}.--close[data-v-ac8ac398]{--bg-button: var(--color-red)}.--minify[data-v-ac8ac398]{--bg-button: var(--color-yellow)}.--expand[data-v-ac8ac398]{--bg-button: var(--color-green)}.presentation[data-v-6c214d79]{container:presentation / inline-size}.code[data-v-6c214d79]{margin-top:var(--gutter-base)}
