@import"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap";#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.navbartxt{font-size:2em;line-height:1.1;font-family:inter}.navbar{display:flex;flex-direction:row;align-items:center;top:0;left:0;height:11vh;width:100%}.navright{display:flex;flex-direction:row;gap:3vw}.spacer{margin-left:auto}.navbarbtn{background-color:#585858;border:none;border-radius:8px;margin:.9vh;font-size:1.125rem;color:#fff;font-family:inter;transition:transform .5s ease;background-color:.5s ease}.navbarbtn:hover{transition:transform .5s ease,background-color .5s ease;transform:translateY(-1px);background-color:#666}.navbarbtn:focus,.navbarbtn:active{outline:none;box-shadow:none}.navbarbtn2:hover{transform:translateY(-2px)}a{text-decoration:none}.navbartxt{font-size:20px;font-weight:500;color:#fff}.navbarbtn2{transition:transform .5s ease,outline .5s ease;font-family:inter;font-weight:500;text-decoration:none;font-size:20px;color:#fff}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}@media (max-width: 680px){.navright,.spacer{display:none}.navleft{justify-content:center;text-align:center;align-items:center;margin:auto}}html,body{background-image:url(/cartographertexture.png);background-repeat:repeat;background-size:auto;background-position:top left;background-attachment:fixed;background-color:#161616;margin:0;padding:0;height:100%}.link404{color:inherit;text-decoration:underline}.page-glow{animation:fadeIn 1.4s ease-in-out forwards;position:fixed;bottom:-50px;left:50%;opacity:.4;transform:translate(-50%);width:65vw;height:100px;background:#ffffff8e;filter:blur(140px);pointer-events:none;z-index:0}.content{opacity:0;animation:fadeIn 1.4s ease-in-out forwards;display:flex;flex-direction:column;flex:1}.hero{display:flex;align-items:center;justify-content:center}.pagewrapper{display:flex;flex-direction:column}.herotxt{margin-bottom:0;margin-top:5rem;font-family:inter;color:#fff;font-size:4.5rem;font-weight:500}.herosub{padding-left:.1rem;padding-bottom:0;padding-right:auto;font-family:inter;color:#c7c7c7;font-size:1rem;font-weight:500;text-align:center}.header{margin:0;margin-top:5rem;margin-bottom:2rem;font-family:inter;align-self:center;color:#fff;font-size:2.5rem;font-weight:500;text-align:left}.cardssection{display:flex;flex-direction:column;justify-content:center}.cards{display:flex;gap:7vw;flex-direction:row;justify-content:center;align-items:stretch;flex-wrap:wrap}.footer{position:sticky;background-color:#fff;height:16vh;justify-self:center;width:100%}.footertxt{font-family:inter;font-size:.8rem;font-weight:300;text-decoration:none;color:#000}.footerimg{height:2.3vh}.footercontents{padding-top:2vh}.footerlink{transition:text-decoration .5s ease}.footerlink:hover{text-decoration:underline}.card{border:1px solid #ddd;border-radius:25px;padding:1rem;margin:1rem 0;background:#fff;max-width:13.5vw;max-height:33vh;transition:transform .5s ease,box-shadow .5s ease;overflow:hidden}.cardwrapper{display:flex;flex-direction:column;height:100%}.cardheader{padding-top:1vh;margin:0 0 .1rem;font-size:clamp(1.2rem,2vw,2rem);font-family:inter;color:#000}.cardsubtitle{color:#292929;font-size:clamp(.8rem,1.3vw,1.2rem);text-align:center;padding-left:1.5vw;padding-right:1.5vw;padding-bottom:2vh;font-family:inter}.cardbtn{background-color:#555;font-family:inter;margin-top:auto;color:#fff;align-self:center;margin-bottom:1vh;max-height:20vh;max-width:40vw}.cardbtn:hover{background-color:#666;transition:background-color .5s ease}.card:hover{transform:translateY(-5px);box-shadow:0 0 6px 2px #313131}@media (max-width: 768px){.cardheader{text-align:center;margin-bottom:.5vh}.cardsubtitle{padding-bottom:0vh}.cardbtn{font-size:clamp(.8rem,1.5vw,1.2rem)}.card{width:clamp(33vw,34vw,50vw);max-width:fit-content;max-height:70vh;padding:.5rem;margin-left:5vw;margin-right:5vw}.cardsubtitle{font-size:clamp(.75rem,2.25vw,1.5rem);margin-top:auto;text-align:center;padding-left:clamp(1rem,7vw,4rem);padding-right:clamp(1rem,7vw,4rem)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1}}@keyframes rotateIn{0%{opacity:0}to{opacity:1}}.aboutcontainer{animation:rotateIn 1.4s ease-in-out forwards;display:flex;flex-direction:row;justify-content:center;align-items:center}.aboutheader{margin-bottom:0;margin-top:5rem;font-family:inter;color:#fff;font-size:clamp(2rem,3.5vw,3.25rem);font-weight:500;text-align:left}.aboutsubheader{padding-left:.1rem;padding-bottom:0;padding-right:auto;font-family:inter;color:gray;font-size:clamp(1rem,2.75vw,1.75rem);font-weight:500;text-align:left}.aboutsubtext{padding-left:.1rem;padding-bottom:0;padding-right:auto;max-width:50rem;font-family:inter;color:#fff;font-size:clamp(.75rem,2.75vw,1.5rem);font-weight:500;text-align:left}.joeimg{width:20rem;object-fit:cover;margin-left:auto;clip-path:inset(15% 0% 10% 0%);margin-right:auto}@media (max-width: 768px){.cards{flex-direction:column;justify-content:center;align-items:center;width:100%;gap:2rem}.herotxt{font-size:3rem;text-align:center}.herosub,.header{text-align:center}}.resume-wrapper-mobile{display:none}.resume-wrapper{max-width:900px;margin:0 auto;margin-top:5vh;padding:2rem;background:#272727;border-radius:12px;box-shadow:0 10px 25px #0000001a}.resume-title{font-size:2rem;font-family:inter;font-weight:700;color:#fff;margin-bottom:2.5rem;text-align:center}.resume-frame{width:100%;height:clamp(70vh,90vh,90vh);border:1px solid #4e4e4e;border-radius:8px;box-shadow:0 4px 12px #0000000d}.download-btn{display:block;width:fit-content;margin:1.5rem auto 0;padding:.5rem 1.25rem;background-color:#868686;color:#fff;border-radius:6px;text-decoration:none;font-weight:500;font-family:inter;transition:background-color .2s ease}.download-btn:hover{background-color:#b9b9b9}@media (max-width: 720px){.resume-wrapper{display:none}.resume-wrapper-mobile{display:flex;flex-direction:column;align-items:center;padding:1rem;margin-bottom:80vh}.resume-title{font-size:1.5rem;margin-bottom:1.5rem}.resume-frame{height:50vh}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1}}.articlecontainer{animation:fadeIn 1.4s ease-in-out forwards}.articlesheader{font-family:inter;color:#fff;font-size:clamp(3rem,2vw + 1.25rem,4rem);font-weight:700;margin-bottom:15px}.posttitle{transition:all .1s ease-in-out;color:#fff;font-size:clamp(1rem,2vw + 1rem,2rem);font-weight:700;font-family:inter;margin-bottom:0}.posttitle:hover{transition:all .1s ease-in-out;text-decoration:underline}.back{margin-top:6vh;transition:all .1s ease-in-out;color:#fff;font-size:clamp(1rem,2vw,1.5rem);font-weight:400;font-family:inter;margin-bottom:0}.back:hover{transition:all .1s ease-in-out;text-decoration:underline}.postdate,.posttags{color:#acacac;font-size:clamp(.5rem,2vw + 1rem,1rem);font-weight:700;font-family:inter}.postinfo{display:flex;flex-direction:row;justify-content:center;gap:10px;margin-top:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1}}h2{margin:0;padding:0;font-family:inter;color:#fff;font-weight:700;text-align:center;justify-content:center}.projectwrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;animation:fadeIn 1.4s ease-in-out forwards}.projecttitle{color:#fff;font-size:clamp(1.5rem,2vw + 1rem,3rem);font-weight:700;font-family:inter}.projectdate{color:gray;font-size:clamp(1rem,1.5vw + .5rem,1.5rem);font-weight:700;font-family:inter;margin-top:auto}.projecttext img{justify-content:center;align-items:center;margin-left:auto;margin-right:auto}.projectmdcontent{color:#fff;font-size:clamp(1rem,1.5vw + .5rem,1.5rem);font-weight:400;font-family:inter;margin-top:auto}.projectmdcontent img{max-width:40vw;max-height:50vh;margin:0 auto;display:inline;align-items:center;justify-content:center}.takemeback{color:#fff;font-size:clamp(1rem,1.5vw + .5rem,1.5rem);font-weight:700;font-family:inter;margin-top:auto;margin-bottom:5vh}.takemeback:hover{text-decoration:underline}code{background-color:#282c34;color:#f0f0f0;padding:.2em .4em;border-radius:.1em;font-family:Courier New,Courier,monospace}@media (max-width: 768px){.projectmdcontent img{display:flex;max-width:75vw}}
