body,html{height:100%;margin:0;padding:0;overflow-x:hidden}[hidden]{display:none!important}:root{font-size:1em;--light-contrast-color: #000000;--light-text-color: #333333;--light-background-color: #e7e9ea;--light-secondary-color: #c0c0c0;--light-copyright-color: #676869;--light-rose-stroke: #fbc4d0;--light-rose-fill: #f7f0f2;--light-glitch-text-color1: #ff0051;--light-glitch-text-color2: #00ff00;--light-glitch-text-color3: #0000ff;--dark-contrast-color: #ffffff;--dark-text-color: #eeeeee;--dark-background-color: #1c1e1e;--dark-secondary-color: #41424c;--dark-copyright-color: #858585;--dark-rose-stroke: #e4345a;--dark-rose-fill: #960018;--dark-glitch-text-color1: #00ffff;--dark-glitch-text-color2: #ff00ff;--dark-glitch-text-color3: #ffff00;--contrast-color: var(--light-contrast-color);--text-color: var(--light-text-color);--background-color: var(--light-background-color);--secondary-color: var(--light-secondary-color);--copyright-color: var(--light-copyright-color);--rose-stroke: var(--light-rose-stroke);--rose-fill: var(--light-rose-fill);--glitch-text-color1: var(--light-glitch-text-color1);--glitch-text-color2: var(--light-glitch-text-color2);--glitch-text-color3: var(--light-glitch-text-color3);--system-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif, system-ui;--monospace: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono", "Courier New", monospace}.icon img[src$=".svg"],.icon img[src^="data:image/svg"]{filter:invert(.2)}@media(prefers-color-scheme:dark){:root{--contrast-color: var(--dark-contrast-color);--text-color: var(--dark-text-color);--background-color: var(--dark-background-color);--secondary-color: var(--dark-secondary-color);--copyright-color: var(--dark-copyright-color);--rose-stroke: var(--dark-rose-stroke);--rose-fill: var(--dark-rose-fill);--glitch-text-color1: var(--dark-glitch-text-color1);--glitch-text-color2: var(--dark-glitch-text-color2);--glitch-text-color3: var(--dark-glitch-text-color3)}.icon img[src$=".svg"],.icon img[src^="data:image/svg"]{filter:invert(.95)}}body.light{--contrast-color: var(--light-contrast-color);--text-color: var(--light-text-color);--background-color: var(--light-background-color);--secondary-color: var(--light-secondary-color);--copyright-color: var(--light-copyright-color);--rose-stroke: var(--light-rose-stroke);--rose-fill: var(--light-rose-fill);--glitch-text-color1: var(--light-glitch-text-color1);--glitch-text-color2: var(--light-glitch-text-color2);--glitch-text-color3: var(--light-glitch-text-color3)}body.dark{--contrast-color: var(--dark-contrast-color);--text-color: var(--dark-text-color);--background-color: var(--dark-background-color);--secondary-color: var(--dark-secondary-color);--copyright-color: var(--dark-copyright-color);--rose-stroke: var(--dark-rose-stroke);--rose-fill: var(--dark-rose-fill);--glitch-text-color1: var(--dark-glitch-text-color1);--glitch-text-color2: var(--dark-glitch-text-color2);--glitch-text-color3: var(--dark-glitch-text-color3)}.light .icon img[src$=".svg"],.light .icon img[src^="data:image/svg"]{filter:invert(.2)}.dark .icon img[src$=".svg"],.dark .icon img[src^="data:image/svg"]{filter:invert(.95)}body{position:relative;font-family:var(--system-ui);font-variant-position:normal;font-variant-alternates:historical-forms;font-variation-settings:normal;font-variant-emoji:text;text-rendering:optimizeLegibility;color:#333;color:var(--text-color);background:#e7e9ea;background:var(--background-color);background-attachment:fixed;transition:font-size .5s,color .35s,border-color .35s}body>*{max-width:100%}h1{font-size:2.75rem}h2{font-size:2.25rem}h3{font-size:1.5rem}svg{width:100%;height:auto;max-width:100%}a:not([href]){pointer-events:none}dialog{max-width:85%;font-family:var(--monospace)}.icon-button{font-size:1em;padding:.5em;width:2.65em;height:2.65em;line-height:1em;font-family:inherit;font-style:normal;color:var(--text-color);background-color:var(--background-color);cursor:pointer;text-align:center;text-decoration:none;transition:background-color .3s,color .3s,border-color .3s,border-radius .5s;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.icon-button svg,.icon-button img{pointer-events:none}.icon-button:disabled,.icon-button[disabled]{border:.2em solid #999999;background-color:#ccc;color:#666;transition:background-color .1s,color .1s,border-color .1s}.round-button{border:.185em solid var(--text-color);border-radius:50%}.square-button{border-radius:0;border-top:.2em solid var(--text-color);border-left:.2em solid var(--text-color);border-right:.2em solid var(--secondary-color);border-bottom:.2em solid var(--secondary-color)}.icon{fill:var(--text-color)}.icon-solid{stroke:var(--text-color)}.square-icon{color:var(--text-color);background:var(--text-color);height:4em;width:4em;padding:1em;border-radius:1em;transition:background-color .3s,fill .3s,stroke .3s}.square-icon svg{fill:var(--background-color)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;color:inherit;background-color:transparent;border:none;padding:0 1em 0 0;margin:0;font-family:inherit;font-size:inherit;cursor:inherit;line-height:inherit}.select{position:relative;display:grid;grid-template-areas:"select";align-items:center;min-width:13ch;max-width:25ch;border:1px solid var(--secondary-color);border-radius:.25em;font-size:1.1em;cursor:pointer;line-height:1.5;background:var(--secondary-color)}.select:before,.select:after{--size: .45rem;position:absolute;content:"";right:1rem;pointer-events:none}.select:before{border-left:var(--size) solid transparent;border-right:var(--size) solid transparent;border-bottom:var(--size) solid var(--text-color);top:27.5%}.select:after{border-left:var(--size) solid transparent;border-right:var(--size) solid transparent;border-top:var(--size) solid var(--text-color);top:55%}.select>select{width:100%;padding:.55em .75em}#action-dialog{z-index:10;height:auto;width:fit-content;margin:0;padding:.5em;position:fixed;top:clamp(15.25em,50%,25em);left:50%;transform:translate(-50%,-50%) scale(.01);opacity:.97;color:var(--text-color);background:var(--background-color);border:none;outline:none;transition:transform .25s}#action-dialog>div{padding:1em;box-sizing:border-box;display:flex;justify-content:center;align-items:center;text-align:center;overflow-wrap:break-word;font-size:clamp(1.15em,3vh,1.75em);border:.2em solid var(--secondary-color)}#action-dialog.dialog-scale{transform:scale(1) translate(-50%,-50%)}#navbar{width:100%}.overlay{position:fixed;top:0;z-index:1}#navbar>*[role=menu]{background:var(--background-color);border-bottom:.15em solid var(--text-color)}#navbar>*{width:inherit;max-width:inherit}.horizontal-menu{display:flex;justify-content:flex-end;align-items:center;box-sizing:border-box;padding:1em .85em;touch-action:manipulation}.horizontal-menu>*{flex:0 0 auto;margin:0 0 0 1.5em}#main-menu{z-index:4}.sub-menu{z-index:3;padding-top:7em}.sub-sub-menu{z-index:2;padding-top:13.5em}.top-menu{position:fixed;top:0;transition:top .25s}#main-menu.close{top:-6em}.horizontal-menu.close{top:-12em}.horizontal-menu>button[aria-expanded=true]:not(.square-button){border:.2em solid var(--rose-stroke);background-color:var(--rose-fill)}a.round-button[aria-disabled=true]{border-radius:.75em;border:.2em solid var(--rose-stroke);background-color:var(--rose-fill);color:var(--text-color)}#language-menu{padding-top:7.7em}#language-menu label{font-size:1.15rem;font-weight:150}#language-menu>*{margin:0 0 .4em 1em}#navigation-menu>#home-nav{order:1}.left-handed .horizontal-menu{flex-direction:row-reverse}#hello-world{max-width:60ch;display:block}#hello-world>*{margin-top:4em}#hello-world>header{margin-top:3em}#job-title{font-weight:400;height:2.25rem;transition:font-size .5s .25s,letter-spacing .5s .25s}#job-title.spacing{font-size:clamp(1.5rem,3.5vw,2.25rem);transition:none;letter-spacing:.1375em}:lang(fr) #job-title.spacing:not(:has(.cursor)){letter-spacing:.15em}#job-title:has(.cursor){letter-spacing:normal;font-family:var(--monospace)}#about{font-size:1.25em;margin-top:4em;line-height:1.75em}#about h3{font-weight:550}#link-up h2{margin-block-end:.5em}#contact-links{display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;justify-content:flex-start;margin-left:-.25em}#contact-links>*{flex:0 0 auto;margin:.25em}.status-code{font-weight:bolder}.error>*{font-family:var(--monospace);font-weight:400;text-align:center}.error h2{font-style:italic}#glcanvas{width:100%}#content{box-sizing:border-box;padding:5rem 1rem 0;width:100%}#content main{min-height:60vh}footer{margin-top:5rem}footer details[open]>summary{color:var(--text-color)}details[open] summary~*{animation:fadeIn .5s ease-in-out}.copyright>summary{margin-left:auto}.copyright>*{margin-left:.125rem}.copyright{color:var(--copyright-color);font-size:xx-small;padding:.5rem .05rem}.copyright a,.copyright a:visited{color:currentColor}.copyright a:hover{color:var(--contrast-color)}.copyright a:focus{color:var(--contrast-color)}.copyright a:active{color:var(--contrast-color)}footer address{font-size:small;font-style:normal}footer address a{color:var(--copyright-color);text-decoration:none}footer address a:hover{color:var(--contrast-color)}footer address a:focus{color:var(--contrast-color)}footer address a:active{color:var(--contrast-color)}footer address svg{vertical-align:0;display:inline-block;width:1em;height:1em}#rose{font-size:1rem;position:absolute;top:1em;left:auto;right:-5em;margin-right:auto;margin-left:auto;z-index:-1;width:90%;max-width:25rem;opacity:.95;padding:0}.fade-out *{animation:fadeOut .375s ease-in-out forwards}.fade-in *{animation:fadeIn .375s ease-in-out forwards}.cursor{width:.6em;height:1.3em;position:absolute;background-color:var(--text-color);animation:blink .9s infinite!important}.glitch-text{position:relative;text-shadow:.055em 0 0 var(--glitch-text-color1),-.03em -.04em 0 var(--glitch-text-color2),.025em .04em 0 var(--glitch-text-color3);animation:glitch-text 275ms step-end infinite}@keyframes fadeIn{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(.5em)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes glitch-text{0%{text-shadow:.055em 0 0 var(--glitch-text-color1),-.03em -.04em 0 var(--glitch-text-color2),.025em .04em 0 var(--glitch-text-color3)}25%{text-shadow:-.055em -.025em 0 var(--glitch-text-color1),.025em .035em 0 var(--glitch-text-color2),-.055em -.055em 0 var(--glitch-text-color3)}50%{text-shadow:.055em .035em 0 var(--glitch-text-color1),.03em 0 0 var(--glitch-text-color2),0 -.04em 0 var(--glitch-text-color3)}75%{text-shadow:-.055em 0 0 var(--glitch-text-color1),-.025em -.04em 0 var(--glitch-text-color2),-.04em -.025em 0 var(--glitch-text-color3)}}@keyframes big-glitch-text{0%{text-shadow:.22em 0 0 var(--glitch-text-color1),-.12em -.16em 0 var(--glitch-text-color2),.1em .16em 0 var(--glitch-text-color3)}25%{text-shadow:-.22em -.1em 0 var(--glitch-text-color1),.1em .035em 0 var(--glitch-text-color2),-.22em -.22em 0 var(--glitch-text-color3)}50%{text-shadow:.22em .035em 0 var(--glitch-text-color1),.12em 0 0 var(--glitch-text-color2),0 -.16em 0 var(--glitch-text-color3)}75%{text-shadow:-.22em 0 0 var(--glitch-text-color1),-.1em -.16em 0 var(--glitch-text-color2),-.16em -.1em 0 var(--glitch-text-color3)}}@media screen and (prefers-reduced-motion:reduce){.glitch-text{text-shadow:none;animation:none}}.reduced-motion .glitch-text{text-shadow:none;animation:none}.hidden{visibility:hidden}.sr-only{width:1px;height:1px;padding:0;margin:-1px;position:absolute;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap}.bolderish{text-shadow:.33px 0 0 var(--text-color),0 0px 0 var(--text-color),-.33px 0 0 var(--text-color),0 -.33px 0 var(--text-color)}.monospace{font-family:var(--monospace)}.multicolor{background:linear-gradient(to right,#ef5350,#f48fb1,#7e57c2,#2196f3,#26c6da,#43a047,#ffd341,#f9a825,#ff5722);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.no-js #app-navigation,.no-js #action-dialog{display:none;visibility:hidden}.no-js .fade-in{animation:fadeIn 2s ease-in-out forwards}noscript{line-height:1.25em}noscript dialog{font-size:1em;z-index:1;width:clamp(50ch,50%,15em);top:clamp(15.25em,50%,20em);box-sizing:border-box;background:var(--background-color)}noscript dialog button{background-color:#ccc;padding:.5em 1em;display:block;margin-left:auto;margin-right:auto;color:#000;font-size:x-large}@media(max-width:300px){:root{font-size:.625em!important}}@media(max-width:340px){:root{font-size:.875em}.horizontal-menu>*{margin:0 0 0 .75em}}@media(min-width:768px){:root{font-size:1.125em}#main-menu{padding-top:1.25em}.horizontal-menu{padding-right:1em;padding-left:1em}#contact-links>.square-icon{margin-right:1em}footer address svg{vertical-align:-.1em}}@media(min-width:1024px){:root{font-size:1.25em}body{display:flex;flex-direction:column;align-items:center;min-height:100vh}body>*{max-width:75%}dialog{max-width:70%}#rose{top:5%;right:12.75%}}@media(min-width:1440px){:root{font-size:1.5em}body>*{max-width:60%}dialog{max-width:55%}#rose{right:20.5%}}@media(min-width:2560px){:root{font-size:1.75em}body>*{max-width:50%}dialog{max-width:40%}#rose{right:25%}}@media(min-width:3840px){:root{font-size:2.25em}body>*{max-width:40%}dialog{max-width:35%}#rose{right:31%}}
