*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}*{margin:0;padding:0}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{min-height:100vh;margin:0;line-height:1.5}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}:root{color-scheme:light dark;--font:var(--font-jetbrains-mono);--color:light-dark(#1f1412,#f03a2c);--color-muted:light-dark(#5a4440,#c98a80);--color-border:light-dark(#1f1412,#f03a2c);--color-acent:light-dark(#d4241a,#f5e6e1);--color-bg:light-dark(#fbf6f3,#120c0b);--selection-color:light-dark(#fff,#120c0b);--selection-bg:light-dark(#d4241a,#f03a2c);--page-bg:var(--color-border);--frame-gap:clamp(.4rem, 2vw, .8rem);--frame-width:0;--frame-radius:1.25rem;--frame-color:var(--color-border);--content-bg:var(--color-bg)}::selection{color:var(--selection-color);background-color:var(--selection-bg)}html,body{background:var(--page-bg);height:100%;margin:0;overflow:hidden}body{position:revert;font-family:var(--font-jetbrains-mono), monospace;font-family:var(--font), sans-serif;color:var(--color);background:var(--frame-color);font-size:16px}.canvas{inset:var(--frame-gap) 0 0 var(--frame-gap);z-index:10;width:calc(100% - var(--frame-gap) - var(--frame-gap));height:calc(100% - var(--frame-gap) - var(--frame-gap));pointer-events:none;border-radius:var(--frame-radius);position:fixed}#canvas{z-index:-1;opacity:0;animation:3s ease-out forwards fadeIn;@media (prefers-color-scheme:light){filter:invert()}}#canvas2{mix-blend-mode:hard-light;opacity:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes contentIn{0%{opacity:0;filter:blur(10px);transform:scale(.99)}to{opacity:1;filter:blur();transform:scale(1)}}:focus-visible{outline:.15rem solid var(--color-acent);outline-offset:.2rem;outline-style:dashed}a{transition:color .25s}a:hover,a:focus-visible{color:var(--color-acent)}.frame{top:max(var(--frame-gap), env(safe-area-inset-top));right:max(var(--frame-gap), env(safe-area-inset-right));bottom:max(var(--frame-gap), env(safe-area-inset-bottom));left:max(var(--frame-gap), env(safe-area-inset-left));border:var(--frame-width) solid var(--frame-color);border-radius:var(--frame-radius);background:var(--content-bg);isolation:isolate;position:fixed;overflow:hidden}.frame__scroll{overscroll-behavior:contain;scrollbar-gutter:stable;height:100%;overflow:hidden auto}.app{grid-template:"nav""header""content"1fr/1fr;min-height:100%;display:grid;&>*{overflow:hidden}}@media (width>=960px){.app{grid-template-rows:1fr auto auto;grid-template-areas:"nav""content""header"}}.app>*{padding:1rem}.header{border-top:1px solid var(--color-border);flex-direction:column-reverse;grid-area:header;display:flex}@media (width>=960px){.app>*{padding:2rem}.header{border-top:0}}.title{overflow-wrap:anywhere;font-size:max(3.25rem,7vi);line-height:1}.subtitle{margin-bottom:1rem;font-size:1em;font-weight:500;&:before{content:"/ "}}.nav{grid-area:nav}.nav-list{flex-wrap:wrap;gap:1rem;list-style-type:none;display:flex}.nav-link{color:inherit;text-decoration:none;& span{text-underline-offset:.17rem;text-decoration:underline}&:focus-visible,&:hover{color:var(--color-acent)}&:focus-visible span,&:hover span{text-decoration:underline}}.nav-link:before{content:"["}.nav-link:after{content:"]"}.content{grid-area:content;display:flex}.content .content-wrapper{flex-direction:column;align-self:flex-end;gap:.5rem 10rem;max-width:max-content;display:flex}@media (width>=960px){.content{border-bottom:0}.content .content-wrapper{flex-direction:row;align-items:flex-end}}.cv-timeline{font-size:max(1rem,.75vw)}.cv-timeline .cv-item+.cv-item{margin-top:.5rem}.cv-timeline .cv-date{opacity:.75;font-size:.75em}.cv-timeline h3{font-size:1em}.cv-content p{color:var(--color-muted);font-size:.75em}.cv-content p a{text-underline-offset:.17rem;text-decoration-style:dotted;text-decoration-color:color-mix(in oklch, currentColor 75%, transparent)}.cv-content h3 a{text-underline-offset:.17rem}
