@import url(https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;700&display=swap);.header{align-items:flex-start;display:flex;justify-content:space-between;margin:0 auto;padding:20px;position:relative;text-align:left;width:100svw;z-index:40}.header .goback{display:block}@media(min-width:730px){.header{padding:20px}.header .goback{display:none}}.header .header-control,.header .header-list{align-items:flex-end;display:flex;flex-direction:column;margin:0}.header .shortcut{display:flex;justify-content:center}.header .header-logo{align-items:center;display:flex;font-size:14px}@media(min-width:730px){.header .header-logo{font-size:18px}}.header .header-list{display:flex;justify-content:flex-end}.header .header-list li{font-size:14px;margin-bottom:10px}@media(min-width:730px){.header .header-list li{font-size:18px}}.header .header-list li a.-active,.header .header-list li a.-active .char,.header .header-list li a:hover .char{color:var(--tw-text-gray-primary);text-decoration:underline}.footer{margin:0 auto;padding:0 5px;width:100vw}@media(min-width:730px){.footer{padding:10px 20px}}.footer .list{display:flex;flex-direction:row;margin:0;overflow-x:scroll;padding-bottom:3svh}@media(min-width:730px){.footer .list{padding-bottom:0}}.footer .list li{flex:none;padding:30px 15px;text-align:left}.footer .list li a{cursor:pointer}@media(min-width:730px){.footer .list li{padding:10px 0}.footer .list{flex-direction:row;justify-content:start}.footer .list li{margin:0 25px 0 0;text-align:left}}@keyframes pulse{0%{opacity:1}50%{opacity:.3}to{opacity:1}}.shortcut{align-items:right;animation:pulse 2s ease-in-out infinite;cursor:pointer;display:flex;font-size:14px;gap:.5rem;justify-content:right}.shortcut p{color:#717171;margin:0 3px}.shortcut p:first-of-type{margin-left:0}.shortcut .key{border-radius:.25rem;font-size:.875rem;font-weight:500;padding:.25rem .5rem}.copied{align-items:center;background:#fff;bottom:30px;color:#222;display:inline-flex;height:50px;margin:auto;right:30px;width:100px;z-index:400}.copied,.modal{justify-content:center;position:fixed}.modal{align-items:flex-start;display:flex;inset:0;opacity:0;pointer-events:none;z-index:0}.modal.-opened{opacity:1;pointer-events:auto;z-index:75}.modal .layer{background-color:var(--bg-primary);height:100%;inset:0;opacity:.8;position:absolute;width:100%;z-index:20}.modal .panel{background-color:#313131;border-radius:5px;height:auto;max-height:400px;max-width:80vw;overflow:scroll;position:relative;top:80px;width:400px;z-index:21}@media(min-width:730px){.modal .panel{top:150px}}.modal .panel .search{background:none;border:none;color:#fff;font-size:16px;margin-bottom:10px;outline:none;width:100%}.modal .panel .search::placeholder{color:#727272}.modal .panel .panel-header{padding:20px 20px 10px}.modal .panel ul{margin:0}.modal .panel ul li{align-items:center;border-bottom:1px solid #3b3b3b;cursor:pointer;display:flex;font-size:16px;justify-content:space-between;padding:12px 0;width:100%}.modal .panel ul li svg{transition:transform .3s ease}.modal .panel ul li.-active,.modal .panel ul li:hover{background:#474747}.modal .panel ul li.-active a,.modal .panel ul li:hover a{text-decoration:none}.modal .panel ul li.-active svg,.modal .panel ul li:hover svg{stroke:#fff;transform:scale(1.5)}.modal .panel ul li:last-of-type{margin-bottom:0}.modal .panel ul li .description{align-items:center;display:flex;padding:3px 20px;width:100%}.modal .panel ul li svg{color:#bdbdbd;font-size:16px}.modal .panel ul li p{color:#fff;line-height:20px;margin-left:15px}.modal .panel .empty{align-items:center;color:gray;display:flex;padding:10px 20px 30px}.modal .panel .empty svg{color:#bdbdbd;font-size:16px;margin-right:15px}.loader{align-items:center;background-color:var(--bg-primary);display:flex;display:none;flex-direction:column;inset:0;justify-content:center;pointer-events:none;position:fixed;z-index:81}.loader .value{color:var(--tw-text-gray-secondary);font-size:30px}.loader a{margin-top:50px}.loader.-opened{display:flex;pointer-events:auto}.ppk-dot-outline{background-color:var(--cursor-bg);border-radius:50%;height:40px;left:50%;mix-blend-mode:var(--blend-mode);opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .3s ease-in-out,transform .3s ease-in-out;width:40px;z-index:999}
/*
! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-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}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.block{display:block}.inline-block{display:inline-block}.w-\[100px\]{width:100px}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize{resize:both}.bg-\[var\(--bg-secondary\)\]{background-color:var(--bg-secondary)}.text-\[14px\]{font-size:14px}.text-\[var\(--tw-text-gray-primary\)\]{color:var(--tw-text-gray-primary)}.text-\[var\(--tw-text-gray-secondary\)\]{color:var(--tw-text-gray-secondary)}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--bg-primary:#222;--text-primary:#fff;--text-secondary:#bdbdbd;--hover-bg:#3a3a3a;--scrollbar-thumb:#ffffff2e;--scrollbar-thumb-hover:#ffffff59}*{box-sizing:border-box;font-family:Fira Code,monospace}::-webkit-scrollbar{background:#0000;height:8px;width:8px}::-webkit-scrollbar-thumb{background:#ffffff2e;background:var(--scrollbar-thumb);border-radius:8px;-webkit-transition:background .2s;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:#ffffff59;background:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:#0000}*{scrollbar-color:#ffffff2e #0000;scrollbar-width:thin}::selection{background:#fff;background:var(--text-primary);color:#222;color:var(--bg-primary)}body{background-color:#222;background-color:var(--bg-primary);color:#fff;color:var(--text-primary);display:flex;font-size:14px;font-weight:lighter;height:100svh;justify-content:center;margin:0;overflow-x:hidden;padding:0;width:100dvw}ol,ul{list-style:none;padding:0}a,p{color:#bdbdbd;color:var(--text-secondary);text-decoration:none}a:hover{color:#fff;color:var(--text-primary);text-decoration:underline}h1{font-size:30px;margin:10px 0 5px}@media(min-width:730px){h1{font-size:40px}}h2{font-size:16px;font-weight:lighter;margin:0 0 10px}@media(min-width:730px){h2{font-size:18px}}h2 a{color:var(--tw-text-gray-primary);text-decoration:underline}h4{font-size:16px;font-weight:700;line-height:16px}h4,h5{color:var(--tw-text-gray-secondary);margin:10px 0}h5{line-height:24px;text-decoration:underline}.button,button,h5{font-size:14px;font-weight:lighter}.button,button{align-items:center;-webkit-appearance:none;appearance:none;background:none;border:none;border-radius:0;box-shadow:none;color:#bdbdbd;color:var(--text-secondary);display:flex;line-height:14px;padding:9px 12px}.button svg,button svg{transition:transform .3s ease}.button:hover,button:hover{background-color:#3a3a3a;background-color:var(--hover-bg);cursor:pointer;text-decoration:none}.button:hover p,button:hover p{color:#fff;color:var(--text-primary)}.button:hover svg,button:hover svg{stroke:#fff;stroke:var(--text-primary);transform:scale(1.2)}.button.-toggle,button.-toggle{color:var(--tw-text-gray-secondary);font-size:16px;padding:0}.button.-toggle:hover,button.-toggle:hover{background:none;color:var(--tw-text-gray-primary);text-decoration:underline}.button.-icon p,button.-icon p{margin-left:10px}.button.--active,button.--active{color:var(--tw-text-gray-primary);text-decoration:underline}blockquote{color:var(--tw-text-gray-secondary);font-style:italic;margin:10px 0;text-decoration:overline}.only-desktop.only-desktop{display:none}@media(min-width:730px){.only-desktop.only-desktop{display:flex}}.only-mobile.only-mobile{display:flex}@media(min-width:730px){.only-mobile.only-mobile{display:none}}@media (min-width:640px){.sm\:w-\[33\%\]{width:33%}.sm\:text-\[18px\]{font-size:18px}}.banner-description{font-size:14px;line-height:1.8em}@media(min-width:730px){.banner-description{font-size:20px}}.banner-title{font-size:4rem;line-height:1;margin-top:-50px;transform:translateX(10)}@media(min-width:1368px){.banner-title{font-size:5rem;line-height:.9;transform:translateX(10)}}.banner-holder{align-items:center;display:flex;flex-direction:row;gap:340px;justify-content:center;padding-top:100px;position:relative;width:100%}@media(max-width:900px){.banner-holder{flex-direction:column;gap:24px}.banner-holder .banner-description,.banner-holder .banner-title{text-align:center}.banner-holder .avatar-section{margin:0}}.banner-subtitle{margin-bottom:22px}.home{height:100svh}.home,.home main{align-items:center;display:flex;flex-direction:column;justify-content:center}.home main{height:100%;padding:0 50px;position:relative;width:100%;z-index:20}.shortcut{justify-content:flex-start}.home .header{display:flex;height:0;justify-content:space-between;left:0;padding:20px;position:fixed;right:0;top:0;width:100svw}.home .header .header-list{position:relative;z-index:100}.-link-blocked{opacity:.4;text-decoration:line-through}.-link-blocked,.-link-blocked a{cursor:not-allowed}.-button-blocked{cursor:not-allowed!important;opacity:.4!important;text-decoration:line-through}.-button-blocked:hover{color:#777!important;opacity:.4!important;text-decoration:line-through!important}.post,.post strong{color:var(--tw-text-gray-primary)}.post strong{font-weight:500}.blog-ticker{animation:ticker 30s linear infinite alternate;bottom:5px;display:flex;gap:5px;left:0;margin-top:2rem;position:fixed;z-index:30}.blog-ticker:hover{animation-play-state:paused}.blog-ticker-wrapper{align-items:center;animation:slideUp .3s ease forwards;animation-delay:1.5s;display:flex;flex-shrink:0;gap:5px;opacity:0;transform:translateY(100%)}.blog-ticker-item{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:.5rem 2rem;text-align:left;text-decoration:none;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}.blog-ticker-item:hover{font-weight:700;transform:translateY(-4px)}.blog-ticker-item .emoji{display:block;font-size:1.1rem;margin-right:.5rem}.blog-ticker-item h3{font-size:1rem}.blog-ticker-title{bottom:65px;position:fixed}@keyframes ticker{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.banner-title{font-size:clamp(2rem,6vw,5rem);line-height:1.1;margin-top:0;min-width:260px;text-align:right}.banner-description{font-size:clamp(1rem,2.5vw,1.5rem);line-height:1.8;margin-top:0;min-width:320px;text-align:left}.avatar-section{align-items:center;display:flex;justify-content:center;margin:0 32px}.name-mono-bold{font-family:Fira Mono,Fira Code,Menlo,Consolas,monospace;font-size:clamp(2.5rem,7vw,5rem);font-weight:700;letter-spacing:.01em;line-height:1.1}.hire-me{bottom:32px;color:var(--text-primary);font-family:inherit;font-size:1rem;right:32px}.hire-me,.name{background:none;position:fixed;z-index:100}.name{bottom:16px;font-family:Fira Mono,Fira Code,Menlo,Consolas,monospace;font-size:clamp(2.5rem,7vw,5rem);font-weight:700;left:30px;letter-spacing:.01em;line-height:1.1}.avatar-section{height:100svh;inset:0;overflow:hidden;position:fixed;width:100vvw;z-index:20}.avatar-container{background:#0000000d;border-radius:8px;height:100%;overflow:hidden;position:relative;width:100%}.avatar-container canvas{height:100%!important;width:100%!important}.avatar-container .error,.avatar-container .loading{color:var(--text-color);font-size:1.2rem;left:50%;padding:1rem;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);width:100%}.avatar-container .error .subtitle,.avatar-container .loading .subtitle{font-size:.9rem;margin-top:.5rem;opacity:.7}.container{margin:auto;padding:0 20px;position:relative;width:100vw}@media(min-width:730px){.container{padding:0;width:90vw}}.note{line-height:22px;padding:20px;text-align:center;width:100%}.note a{text-decoration:underline}.note p{margin:0}.about{justify-content:space-between;overflow-x:hidden;width:100%}.about,.about main{display:flex;flex-direction:column}.about main{align-items:center;font-size:16px;justify-content:center;padding-bottom:50px}@media(min-width:730px){.about main{align-items:flex-start;flex-direction:row;padding-top:0}}.about .description{white-space:pre-line}.about .link{display:inline;text-decoration:none;text-decoration:underline}.about .link,.about .role{color:var(--tw-text-gray-primary)}.about .role{background-color:var(--bg-secondary);display:inline-flex;line-height:22px;padding:5px 0}.about .infos{background-color:var(--bg-primary);color:var(--tw-text-gray-primary);display:inline;font-size:16px;text-decoration:none}.about .column{max-width:400px;width:100%}@media(min-width:730px){.about .column{width:20%}}.about .bio{line-height:2.2em;padding:0 15px;position:relative;width:100%;z-index:30}@media(min-width:730px){.about .bio{max-width:530px;padding:20px 0 0 100px;width:75%}}@media(min-width:1440px){.about .-download{background-color:var(--bg-primary);position:relative;top:520px;z-index:20}}.about .headshot{align-items:center;display:flex;flex-direction:column}@media(min-width:730px){.about .headshot{align-items:flex-end}}.about .headshot img{filter:grayscale(100%);height:250px;margin-bottom:20px;max-width:none;object-fit:cover;right:0;width:110%}@media(min-width:730px){.about .headshot img{height:500px;width:500px}}.about .paragraph{margin-bottom:20px}.about .control{display:flex;margin:20px 0 30px}.about .control li{margin-right:10px}.about .toggle{display:flex;margin:50px 0 20px;overflow:scroll}@media(min-width:730px){.about .toggle{overflow:visible}}.about .toggle button{flex-shrink:0;margin-right:30px}.career-path.-academic .about-career-experience{margin-top:40px}.career-path.-academic .role{background-color:var(--bg-secondary);color:var(--tw-text-gray-primary);display:inline;font-weight:700}.career-path.-academic .infos{background:none}.about-career-experience{margin:15px 0}.about-career-experience:first-child{margin-top:30px}.about-career-experience p{font-size:16px}.webgl{bottom:0;filter:grayscale(100%);height:100vh;left:0;outline:none;position:absolute;right:auto;top:0;width:50vw;z-index:5}.actions{display:flex;flex-direction:column;justify-content:space-between}.actions .container{padding:0}@media(min-width:730px){.actions .container{padding:0 20px}}.actions main{align-items:flex-start;display:flex;justify-content:flex-start}.actions .actions-list{color:#bdbdbd;font-size:30px;font-weight:lighter;margin-bottom:0}@media(min-width:730px){.actions .actions-list{font-size:45px}}.actions .actions-list li{border-bottom:1px solid var(--border-primary);cursor:pointer;line-height:35px;padding:25px 2px}@media(min-width:730px){.actions .actions-list li{border:none;line-height:55px;padding:15px 0}}.actions .actions-list li a{display:inline-block;position:relative;width:100%}.actions .actions-list li a:hover,.actions .actions-list li a:hover .scramble-text{text-decoration:underline}.actions .actions-list li span{font-size:14px}.actions .header .container{display:flex;justify-content:space-between}.not-found{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.not-found a:hover{color:#fff}
/*# sourceMappingURL=main.df5ef592.css.map*/