:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-black: black;--color-white: white;--font-size-nav: clamp(.875rem, 1vw, 1.2rem);--color-bg: #dfdfdf}*{margin:0;padding:0;box-sizing:border-box;scrollbar-width:thin}@font-face{font-family:Geist;src:url(/fonts/GeistMono/GeistMonoVariableVF.woff2) format("woff2-variations");font-weight:125 950;font-stretch:75% 125%;font-style:normal}::selection{background-color:var(--color-black);color:var(--color-bg)}html,body{height:100vh;width:100vw;overflow:hidden}body{font-family:Geist,monospace;background-color:var(--color-bg)}canvas{height:100lvh;width:100lvw;cursor:none}.loader{font-size:5em;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center}.loader .bar{width:25vw;height:5vh;border:4px solid black}nav{position:absolute;z-index:1;display:flex;justify-content:space-between;align-items:center;width:100vw;padding:1em}.nav-links{display:flex;gap:2em;align-items:center;list-style-type:none;padding:0}.nav-links a:hover{text-decoration:underline;text-decoration-style:dotted}.nav-link{display:flex;position:relative;overflow:hidden;padding:1em 1.5em;align-items:center;gap:1em;border-radius:9999px;font-size:var(--font-size-nav);width:fit-content;height:3.375em;color:var(--color-black);transition:background cubic-bezier(.35,0,0,1) .2s;will-change:transform;text-decoration:none;-webkit-user-select:none;user-select:none;background-color:transparent;border:none;outline:none;box-shadow:none;cursor:pointer}.nav-link .dot{display:inline-block;width:.5em;height:.5em;background:var(--color-black);border-radius:100px;transition:background cubic-bezier(.35,0,0,1) .5s,transform cubic-bezier(.35,0,0,1) .4s}.nav-link .text{font-weight:600;transition:color cubic-bezier(.35,0,0,1) .5s,transform cubic-bezier(.35,0,0,1) .4s}.nav-link .arrow{position:absolute;display:flex;justify-content:center;align-items:center;right:1em;height:1.2em;width:1.2em;color:var(--color-white);border-radius:100%;transform:translate3d(3em,0,0);transition:transform cubic-bezier(.4,0,0,1) .4s}.nav-link .arrow>svg{transition:color .5s;width:100%;height:100%}.nav-link:hover{color:var(--color-white);background:var(--color-black);transition:background cubic-bezier(.35,0,0,1) .5s .3s}.nav-link:hover .text{transform:translate3d(-1.5em,0,0)}.nav-link:hover .dot{transform:translate3d(3em,0,0) scale(20);background:var(--color-black)}.nav-link:hover .arrow{transform:translateZ(0)}.nav-link:hover .arrow svg{color:var(--color-white)}.logo{font-size:var(--font-size-nav);font-weight:600;text-decoration:none;color:var(--color-black);-webkit-user-select:none;user-select:none}.blink{animation:blinker 1.5s step-start infinite}@keyframes blinker{50%{opacity:0}}.about-container{display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;position:absolute;top:100vh}.about-container p{width:800px;max-width:100vw;font-size:clamp(1.5rem,1.3463rem + .6829vw,2.2rem);padding:0 1rem}@supports (initial-letter: 2){.about-container p:first-letter{-webkit-initial-letter:2;initial-letter:2;padding-right:10px}}.github-stats{position:absolute;top:220vh;width:100vw;display:flex;justify-content:center;padding:0 1rem}.github-stats h2{font-size:clamp(1.5rem,1.1053rem + 1.5789vw,3rem)}.github-stats ul{padding:2rem 0 2rem 2rem;list-style-type:"> ";font-size:clamp(1.5rem,1.3463rem + .6829vw,2.2rem)}.github-stats .updated{font-size:.8rem;color:gray;font-style:italic;font-synthesis:style;padding-top:10px}.contact-container{display:flex;justify-content:center;align-items:center;width:100vw;position:absolute;top:295vh;gap:16px 50px;padding:0 2rem}.contact-container .ring-outer-container{position:relative}.contact-container .ring-container{position:absolute;right:0;top:0}.contact-container a{display:flex;gap:10px;align-items:center;color:var(--color-black);text-decoration:none;font-weight:500}.contact-container a:hover{text-decoration:underline}@media screen and (max-width:500px){.github-stats .ago{display:none}.contact-container{flex-direction:column;align-items:flex-start}}
