::selection{background-color:#a51436;color:#1c1c1c}html{scroll-behavior:smooth}div #main{display:flex}@media screen and (max-width: 450px){div #main{padding-bottom:67px}}div #cent{margin-left:0;margin-right:0}header,section{border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid;border-color:#2c2c2c}body{background-color:#1c1c1c;background-image:linear-gradient(0deg,#1c1c1cde,#1c1c1c),url(/assets/dots.png),linear-gradient(90deg,#1c1c1c33,#1c1c1c,#1c1c1c33),url(/assets/waves.jpg);background-blend-mode:normal,normal,normal,difference;background-repeat:no-repeat,repeat,no-repeat,no-repeat;background-size:auto,auto,auto,cover;background-attachment:fixed;font-family:Inter,sans-serif;color:#ededed;font-weight:300;margin-top:0;margin-bottom:0}section,header{max-width:48rem;padding:.25em;background-color:#1c1c1c}h1,h2,h3{font-family:Jetbrains Mono}h1{font-size:2.5rem;line-height:1.2}@media screen and (max-width: 768px){h1{font-size:2rem}}@media screen and (max-width: 450px){h1{font-size:1.75rem}}h2{font-size:2rem;line-height:1.2}@media screen and (max-width: 768px){h2{font-size:1.75rem}}@media screen and (max-width: 450px){h2{font-size:1.5rem}}div #left-sidebar{margin-right:0;margin-left:auto;width:64px}@media screen and (max-width: 450px){div #left-sidebar{width:0}}div #greeble-stripes{height:auto;width:64px;background-repeat:repeat;background:url(/assets/stripes.png);margin-left:0;margin-right:auto;animation-duration:20s;animation-name:stripe-slide;animation-iteration-count:infinite;animation-timing-function:linear}@media screen and (max-width: 450px){div #greeble-stripes{width:0}}@keyframes stripe-slide{0%{background-position-y:0px}to{background-position-y:256px}}.about{display:inline-block}@media screen and (max-width: 450px){.about{display:block}}.about img{border:solid 1px #2c2c2c;border-radius:8px;width:33%;height:33%;float:left;margin-right:.5em;margin-bottom:.5em}@media screen and (max-width: 450px){.about img{margin-left:12.5%;margin-right:12.5%;width:75%;height:75%;float:none}}.about div p{margin-top:0}.project{margin-bottom:.5em;display:flex;border:1px solid #2c2c2c}.project img{cursor:zoom-in;object-fit:cover;max-height:200px;width:40%}@media screen and (max-width: 450px){.project img{display:grid;width:100%}}@media screen and (max-width: 450px){.project{display:grid}.project img{max-height:none}}.project-details{width:60%;padding:.25em}.project-details p{color:#ededed;margin-top:.5em;margin-bottom:.5em}@media screen and (max-width: 450px){.project-details{width:100%}}.project-skill-list{display:flex;flex-wrap:wrap}.project-title{display:flex}.project-title h3{margin-top:0;margin-bottom:0;margin-right:auto}.project-title div{opacity:.8;font-size:.875rem;align-content:right;text-align:end;margin-top:auto;margin-bottom:auto}@media screen and (max-width: 450px){.project-title div{margin-right:.5em}}.project-skill{color:#1c1c1c;font-weight:500;background-color:#ededed;margin-top:.25em;margin-bottom:auto;margin-right:.25em;padding-left:.25rem;padding-right:.25rem}.project-link-button{margin-top:1em;margin-bottom:.5em}.project-link-button a{background-color:#0000;color:#e01142;border:solid 1px #e01142;border-radius:8px;text-decoration-line:none;font-family:inherit;font-size:inherit;font-weight:500;margin-bottom:auto;margin-right:.25rem;padding-left:.25rem;padding-right:.25rem;padding-top:.5em;padding-bottom:.5em;cursor:pointer}.project-link-button a:hover{border:solid 1px #ededed;color:#ededed}div .article{padding:.25em;margin-bottom:.5em;border-bottom:1px solid #2c2c2c}div .article-details{display:flex}@media screen and (max-width: 768px){div .article-details{display:block}}div .article-details h3{margin-top:0;margin-bottom:0;margin-right:auto}div .article-details a{color:#e01142;text-decoration-line:none;text-decoration-style:dashed;text-underline-offset:4px}div .article-details a:hover{text-decoration-line:underline}div .article-details div{opacity:.8;font-size:.875rem;min-width:fit-content;margin-top:0;align-content:right;text-align:end;font-style:italic}@media screen and (max-width: 768px){div .article-details div{text-align:start}}div .article-description{font-style:italic}.throbber{text-align:center}.throbber .graphic{width:100px;height:100px;margin-left:auto;margin-right:auto;display:block;border-radius:50%;border:8px solid;border-color:#2c2c2c #0000;animation:throbber-spin 1s infinite}@keyframes throbber-spin{to{transform:rotate(1turn)}}div .loading-error{text-align:center}div .loading-error img .icon{margin-left:auto;margin-right:auto;display:block}.lightbox{width:100vw;height:100vh;position:fixed;top:0;left:0;background-color:#0000009d;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition-property:opacity;transition-duration:.25s;transition-delay:0s;transition-timing-function:ease-in;cursor:zoom-out}.lightbox img{max-width:90vw;max-height:90vh;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.lightbox b{position:fixed;bottom:0;left:50vw;right:50vw}.lightbox.hidden{opacity:0;pointer-events:none}.lightbox.visible{opacity:100;pointer-events:all}:root{--logo-bottom-padding: 5em;--logo-top-padding: 2em}.social-buttons{justify-content:center;display:flex;gap:.5em}@media screen and (max-width: 768px){.social-buttons{justify-content:space-evenly}}.cursor{animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes spin{0%{transform:translate(-50%) translateY(-50%) rotate(0)}to{transform:translate(-50%) translateY(-50%) rotate(360deg)}}.logo-hero:before{content:"";position:absolute;width:980px;height:980px;top:calc(50% - (var(--logo-bottom-padding)/2) + (var(--logo-top-padding)/2));left:50%;transform:translate(-50%) translateY(-50%);background-size:cover;background-image:url(/assets/circle.png);background-repeat:repeat;background-blend-mode:difference;background-color:#1c1c1c;transform-origin:center;animation:spin 100s linear infinite}.logo-hero:after{content:"";position:absolute;width:980px;height:980px;bottom:0;background-image:linear-gradient(#00ecd900 calc(980px - var(--logo-bottom-padding)),#1c1c1c);background-blend-mode:normal}.logo-hero{margin:-.25em;padding-top:var(--logo-top-padding);position:relative;overflow:hidden;padding-bottom:var(--logo-bottom-padding)}.logo{position:relative;margin-left:auto;margin-right:auto;display:block}.links{display:flex;gap:.5em;justify-content:center}@media screen and (max-width: 768px){.links{display:block}}.resume-button{width:fit-content;height:64px;display:block;border:1px solid #e01142;border-radius:8px;cursor:pointer}@media screen and (max-width: 768px){.resume-button{margin-left:auto;margin-right:auto;margin-bottom:.5em}}.resume-button:hover{border:1px solid #ededed}.resume-button svg{max-height:75%;max-width:75%;display:block;padding:.5em}.resume-button svg path{fill:#e01142}.resume-button:hover svg path{fill:#ededed}.resume-button a{display:flex;height:100%;color:#e01142;text-decoration-line:none}.resume-button:hover a{color:#ededed}.resume-button b{padding:.5em;align-self:center}.social-button{width:64px;height:64px;display:block;border:1px solid #e01142;border-radius:8px;cursor:pointer}.social-button svg{max-height:75%;max-width:75%;display:block;margin:auto;padding:.5em}.social-button svg path{fill:#e01142}.social-button:hover{border:1px solid #ededed}.social-button:hover svg path{fill:#ededed}.left-sidebar{margin-right:0;margin-left:auto;width:64px}.left-sidebar .buttons{position:sticky;top:.5em}@media screen and (max-width: 450px){.left-sidebar{width:0}.left-sidebar .buttons{position:fixed;top:auto;bottom:0;left:0;width:100vw;display:flex;background-color:#1c1c1c;padding-bottom:.5em;z-index:1000;border-top-width:1px;border-top-style:solid;border-color:#2c2c2c}}.nav-button{width:48px;height:48px;margin-left:auto;margin-right:auto;display:block;border:1px solid #e01142;border-radius:8px;margin-top:.5em;cursor:pointer}.nav-button svg{max-height:75%;max-width:75%;display:block;margin:auto;padding:.5em}.nav-button svg path{fill:#e01142}.nav-button:hover{border:1px solid #ededed}.nav-button:hover svg path{fill:#ededed}.nav-button:active{background-color:#ededed}.nav-button:active svg path{fill:#1c1c1c}.footer{border-top:1px solid #2c2c2c;display:flex;justify-content:center;opacity:.8;font-size:.875rem;line-height:2rem}
