:root{--main-color-whitesmoke: whitesmoke;--background: #202836;--accent-color-blue: #0066ff;--accent-font-blue: #4e95ff;--highlight-orange: #ff5722;--soft-gray: #737373;--font-roboto: "Roboto", sans-serif;--font-grotesk: "Space Grotesk", sans-serif;--transition-fast: .3s ease}html{margin:0;padding:0;background-color:#202836}body{margin:0;padding:0;overflow-x:hidden}#root{margin:0;padding:0}.fixed-bg{position:fixed;top:0;left:0;right:0;bottom:0;background-image:url(/assets/black-linen-068f4ffc.webp);background-size:cover;background-repeat:no-repeat;background-position:center;z-index:-1;pointer-events:none;height:100vh!important}.grain-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");background-size:200px 200px}@media (max-width: 800px){.grain-overlay{opacity:.04}}.soft-glow{position:absolute;width:750px;height:750px;border-radius:50%;opacity:.15;filter:blur(80px);z-index:-1;pointer-events:none}.glow-blue{background:radial-gradient(circle,var(--accent-color-blue) 0%,transparent 70%)}.glow-orange{background:radial-gradient(circle,var(--highlight-orange) 0%,transparent 70%)}.fixed-glow{position:fixed;bottom:-200px}.four-oh-four{margin:5rem auto;width:min(700px,90vw);text-align:center}.four-oh-four__title{font-size:clamp(20px,14px + 1vw,32px)!important}.four-oh-four__home-link{text-align:center}.four-oh-four__home-link a{color:#f5f5f5}.pos-glow-1{top:0%;left:3%}.pos-glow-2{top:9%;right:22%}.pos-glow-3{top:21%;left:60%}.pos-glow-4{top:38%;right:4%}.pos-glow-5{top:53%;left:12%}.pos-glow-6{top:66%;right:40%}.pos-glow-7{bottom:29%;left:28%}.pos-glow-8{bottom:18%;right:6%}.pos-glow-9{bottom:6%;left:5%}.pos-glow-10{bottom:0%;right:38%}.pos-glow-11{top:83%;left:75%}.pos-glow-12{bottom:72%;right:68%}body{max-width:100%;min-width:350px;position:relative;margin:0}body{font-family:var(--font-roboto)}.nav-placeholder{height:75px}.main-navbar{position:absolute;top:0;left:50%;transform:translate(-50%);width:90%;display:flex;justify-content:space-between;align-items:center;z-index:1000;height:75px;padding:.5rem 2rem;box-sizing:border-box;background-color:transparent;border-radius:0;box-shadow:none;transition:width .3s ease,top .3s ease,border-radius .3s ease,background-color .3s ease,box-shadow .3s ease;font-family:var(--font-grotesk)}.main-navbar.scrolled{position:fixed;top:10px;width:75%;border-radius:4rem;background-color:#000813;box-shadow:0 8px 20px #00000080}.main-navbar.no-transition,.main-navbar.no-transition *{transition:none!important}.main-navbar .name{color:#f5f5f5;font-size:1.8rem;padding-left:2rem;position:relative;display:inline-block;padding-bottom:.25rem;font-family:var(--font-grotesk)}.main-navbar a{position:relative;font-size:clamp(14px,12px + .8vw,22px);font-weight:300;font-family:var(--font-grotesk);color:var(--main-color-whitesmoke);text-align:center;padding:.5rem;margin-right:.5rem;text-decoration:none;transition:color .3s ease;box-sizing:border-box;text-shadow:2px 2px 1px black}.main-navbar .nav-links a.is-active{color:#ff5722}.main-navbar .nav-links a:after{content:"";position:absolute;bottom:5px;left:50%;transform:translate(-50%) scaleX(0);width:75%;height:2px;background-color:#ff5722;transform-origin:center;transition:transform .4s ease}.main-navbar a:hover:after{transform:translate(-50%) scaleX(1)}.main-navbar .name:after{content:"";position:absolute;bottom:0;left:10%;width:100%;height:2px;background-color:#ff5722;transform:scaleX(0);transform-origin:center;transition:transform .4s ease}.main-navbar .name:hover:after{transform:scaleX(1)}.nav-links{display:flex;justify-content:flex-end;flex:1;gap:1.5rem}.hamburger-wrapper{display:none;background:none;border:none;padding:.25rem;cursor:pointer;color:inherit;border-radius:4px}.hamburger-wrapper:focus-visible{outline:2px solid #ff5722;outline-offset:2px}.nav-mobile,.nav-mobile-overlay{display:none}.home-content{width:80%;padding-top:5%;margin:0 auto 2rem}.main-name>*{text-align:left;color:var(--main-color-whitesmoke);padding:0}.main-name>div{font-size:calc(4px + 1vw)}.main-name>h1{font-weight:400;font-family:var(--font-grotesk)}.main-name>h2{font-size:clamp(14px,8px + 1vw,22px);font-weight:400;text-shadow:1px 1px 1px black;font-family:var(--font-grotesk)}h1{font-weight:400;color:var(--main-color-whitesmoke);margin:2.5rem 0;font-family:var(--font-grotesk)}#main-name{font-size:48px;width:475px;text-shadow:1px 1px 1px black;margin:0;letter-spacing:-1.5px;transition:all .5s ease}#main-name:hover{color:#fff;position:relative;transform:scale(1.02);cursor:default}#main-name:hover:after{content:"";position:absolute;left:0;bottom:0;width:450px;height:4px;background-color:#ff5722;animation:underline .2s linear;animation-iteration-count:1}@keyframes underline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}#about-me{width:80%;padding:1% 0;margin:0 auto 0 10%;color:#f5f5f5}.about-me-portfolio-wrap{width:90%!important;margin:0 auto!important;padding:0!important}.about-me-paragraphs{text-align:left;font-weight:300;font-size:clamp(15px,12px + .6vw,20px);line-height:1.7;color:#f5f5f5d9}#about-me-titles{width:60%;margin:3rem auto;font-size:4rem;color:#f5f5f5;text-align:center;text-shadow:2px 2px 2px black;position:relative;font-family:var(--font-grotesk)}#about-me-titles:hover{color:#fff;cursor:default}.about-me-paragraphs a{text-decoration:none;color:inherit;position:relative}.about-me-paragraphs a:hover{color:#ff5722;text-shadow:1px 1px 1px black}.about-me-paragraphs a:hover:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background-color:#ff5722;animation:underline .3s linear;animation-iteration-count:1}.resume-cta{display:inline-block;margin-top:.5rem;padding:.6rem 1.4rem;font-size:clamp(14px,12px + .4vw,17px);font-weight:400;font-family:var(--font-grotesk);letter-spacing:.5px;color:#f5f5f5;text-decoration:none;border:1px solid var(--highlight-orange);border-radius:4px;transition:background .25s ease,color .25s ease,box-shadow .25s ease}.resume-cta:hover{background:var(--highlight-orange);color:#fff;box-shadow:0 0 12px #ff57224d}.about-me-paragraph-grid-section{display:grid;grid-template-columns:1fr 1fr;padding-bottom:1rem}.about-me-paragraph-grid-section>img{justify-content:center;align-items:center;border-radius:1rem;box-shadow:4px 4px #ff5722;transition:all .2s ease;outline:1px solid gray;width:70%;margin:0 auto}.about-me-paragraph-grid-section>img:hover{transform:translate(-2px,-2px);box-shadow:8px 8px #ff5722dd;outline:1px solid #ff5722}.share-buttons>button{justify-content:center;margin:8px auto;background:rgba(0,0,0,.2);border:1px solid transparent;border-radius:2px;padding:6px 12px;color:#f5f5f5;box-shadow:0 0 3px #fff3;outline:2px solid transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.share-buttons>button svg{stroke:currentColor;fill:currentColor;transition:color .2s ease-in-out,box-shadow .2s ease-in-out}.share-buttons>button:hover{outline:2px solid #ff5722!important;outline-offset:-1px;cursor:pointer;transform:translateY(-3px) scale(1.025);box-shadow:1px 1px 1px 2px #06f;border-color:#ff5722!important}.share-buttons>button:focus,.share-buttons>button:active{outline:2px solid #ff5722!important;border:1px solid #ff5722!important}#main-portfolio{list-style-type:none;color:var(--main-color-whitesmoke)}#main-portfolioContainer{width:min(900px,88vw);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:2rem;margin:0 auto 2rem;align-items:stretch}#portfolio-card{height:100%;position:relative;display:flex;flex-direction:column;border-radius:20px;box-sizing:border-box;padding:1rem;background:#111;transition:border-color .4s ease,box-shadow .4s ease;box-shadow:0 0 #0000;border:1px solid var(--highlight-orange);box-shadow:3px 3px 0 3px var(--highlight-orange)}#portfolio-card .image-wrapper{position:relative;overflow:hidden;border-radius:10px;aspect-ratio:16 / 9;margin-bottom:1rem}#portfolio-card .image-wrapper img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease;will-change:transform}#portfolio-card:hover .image-wrapper img{transform:scale(1.02)}#portfolio-card h2{font-size:clamp(22px,12px + 1.5vw,36px);font-weight:500;font-family:var(--font-grotesk);letter-spacing:-1.5px;color:var(--main-color-whitesmoke);text-align:left;margin:.5rem 0 .25rem;padding:0}#portfolio-card .portfolio-card-description{flex-grow:1;font-size:clamp(14px,12px + .3vw,17px);font-weight:300;letter-spacing:-.1px;line-height:1.55;color:var(--accent-font-blue);text-align:left;margin:0 0 .75rem}.portfolio-card-actions{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;padding-top:.5rem}.portfolio-card-actions .card-icon a{display:inline-flex;padding:.25rem;transition:transform .15s ease}.portfolio-card-actions .card-icon a:hover{transform:translateY(-2px) scale(1.05)}.resume-header{width:min(1100px,92vw);margin:0 auto}.resume-header>h1{font-size:clamp(36px,5vw,80px);color:#f5f5f5;font-weight:300;letter-spacing:-2px;margin:2.5rem 0 1rem;text-shadow:2px 2px 6px black;font-variant:small-caps}.resume-header .resume-contact{font-size:clamp(14px,1vw + 8px,18px);color:#f5f5f5;font-weight:350;margin:0 0 1rem;text-shadow:2px 2px 6px black;font-style:normal}#main-resume{font-size:clamp(15px,12px + .5vw,19px);margin:0 auto;width:min(1100px,92vw);font-weight:350;list-style-type:none;text-align:left;color:var(--main-color-whitesmoke);line-height:1.7}#main-resume>section>h2,#main-resume>div>h2{font-size:clamp(28px,12px + 3vw,48px);font-weight:400;letter-spacing:.5px;text-transform:capitalize;font-variant:small-caps;color:var(--main-color-whitesmoke);width:fit-content;margin:1.5rem auto 1rem}#main-resume ul{margin-left:7%;padding-left:1rem}#main-resume ul>li{list-style-type:circle;padding-bottom:.75rem;font-size:clamp(14px,10px + .5vw,18px);line-height:1.55}#main-resume p{margin-left:7%;margin-right:7%}#borderdiv{font-weight:350;padding:1.5rem;margin:1.5rem auto;border-radius:4px;background:linear-gradient(to right,rgba(120,120,120,.15) 2px,transparent 2px) 0 0,linear-gradient(to right,rgba(120,120,120,.15) 2px,transparent 2px) 0 100%,linear-gradient(to left,#0066ff 2px,transparent 2px) 100% 0,linear-gradient(to left,#ff5722 2px,transparent 2px) 100% 100%,linear-gradient(to bottom,rgba(120,120,120,.15) 2px,transparent 2px) 0 0,linear-gradient(to bottom,#0066ff 2px,transparent 2px) 100% 0,linear-gradient(to top,rgba(120,120,120,.15) 2px,transparent 2px) 0 100%,linear-gradient(to top,#ff5722 2px,transparent 2px) 100% 100%;background-repeat:no-repeat;background-size:clamp(80px,200px + 8vw,320px) clamp(40px,50px + 2vh,80px)}#borderdiv>h2{padding:0}.skills-list{margin-left:7%;margin-right:7%;line-height:1.7}.resume-job{margin-bottom:1.5rem}.resume-job:last-child{margin-bottom:0}.resume-company,.resume-company-line{font-size:clamp(16px,12px + .6vw,22px);font-weight:400;margin:1.25rem 0 .25rem;color:var(--main-color-whitesmoke)}.resume-blurb,.resume-tenure{margin:.25rem 0!important;font-size:clamp(14px,10px + .4vw,17px);font-weight:300;color:#f5f5f5d9}.resume-tenure i{font-style:italic}#main-resume a{text-decoration:none;color:inherit;position:relative;transition:color .2s ease}#main-resume a:hover{color:#ff5722}#main-resume a:hover:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background-color:#ff5722;animation:underline .2s linear;animation-iteration-count:1}@media screen and (max-width: 800px){body{font-smooth:always;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}html,body{overflow-x:hidden;max-width:100vw}h1{font-size:2.5rem}.nav-links{display:none}.hamburger-wrapper{display:inline-flex;align-items:center;justify-content:center;z-index:1001;cursor:pointer}.nav-placeholder{height:0}.nav-mobile-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:9998}.nav-mobile-overlay.open{opacity:1;pointer-events:auto}.pos-glow-8,.pos-glow-9,.pos-glow-10,.pos-glow-11,.pos-glow-12{display:none}.soft-glow{filter:none;opacity:.08}.nav-mobile{width:100vw;height:100vh;left:-100vw;top:0;position:fixed;z-index:9999;transition:left .35s ease;background:#121212;display:flex;flex-direction:column;align-items:center;justify-content:center}.nav-mobile.open{left:0}.nav-mobile a{margin:1rem 0;font-size:1.8rem;color:#fff;text-decoration:none;transition:color .3s ease}.nav-mobile a:hover,.nav-mobile a.is-active{color:#ff5722}.main-navbar{justify-content:center;position:relative;left:auto;transform:none;width:100%;padding:.5rem 1rem}.main-navbar.scrolled{position:fixed;top:10px;left:50%;transform:translate(-50%);width:90%}.main-navbar .menuItems{position:absolute;right:1.5rem}.main-navbar .name{position:absolute;left:50%;transform:translate(-50%);padding:0}.name>a{white-space:nowrap;overflow:hidden;text-overflow:clip;font-size:clamp(1.5rem,1.75rem,2rem)}.nav-mobile .closebtn{position:absolute;top:1.5rem;right:2.5rem;font-size:3rem;line-height:1;cursor:pointer;color:#f5f5f5;background:none;border:none;padding:.25rem .5rem;border-radius:4px}.nav-mobile .closebtn:focus-visible{outline:2px solid #ff5722;outline-offset:2px}.home-content{width:90%;padding-top:0;margin:0 auto}#main-name{text-align:center;font-size:calc(12px + 5vw);width:100%}.main-name{width:95%;margin:1.5rem auto}.main-name>div{font-size:22px}#main-name:after{display:none}#main-name:hover{color:var(--main-color-whitesmoke)}.main-name>h1{font-weight:400}.main-name>h2{font-size:calc(14px + 3vw);margin-top:3rem;font-weight:400;text-align:center}.about-me-paragraphs{margin:2rem auto;font-size:clamp(16px,12px + 1.2vw,22px);line-height:1.55;max-width:100%}#about-me{margin:2rem auto 5rem!important}#about-me-titles{width:100%;font-size:3rem}#about-me-titles:hover:after{display:none}#about-me-paragraph-container{margin:4rem auto 2rem;max-width:95%}.about-me-paragraph-grid-section{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;margin-bottom:0!important;padding-bottom:0!important}.about-me-paragraphs{width:98%;color:var(--main-color-whitesmoke);text-align:left}.about-me-paragraph-grid-section>img{border-radius:1rem;grid-column:1;grid-row:1;width:95%}#borderdiv{background-size:clamp(70px,70px + 8vw,200px) clamp(35px,25px + 2vh,60px)}}@media screen and (max-width: 600px){.main-navbar .name:after{content:"";position:absolute;bottom:0;left:0%;width:100%;height:2px;background-color:#ff5722;transform:scaleX(0);transform-origin:center;transition:transform .4s ease}#main-portfolioContainer{width:min(500px,85vw);padding-left:-10px}}@media screen and (max-width: 450px){#main-name{display:block}#portfolio-card h2{font-size:clamp(24px,24px + 2vw,36px);margin:1rem 0 .5rem;font-weight:400;letter-spacing:0}#portfolio-card .portfolio-card-description{font-size:clamp(15px,14px + .4vw,18px)}}.app-wrapper{position:relative;z-index:0;display:flex;flex-direction:column;background-image:linear-gradient(to right,#3c3f4340 30%,#1f212540 70%,#1b1d2040 80%)}.main-grid{display:grid;width:100%;grid-template-columns:clamp(120px,12vw,180px) minmax(0,1fr);margin-top:0;box-sizing:border-box;flex:1}.site-footer{width:min(1100px,92vw);margin:1.5rem auto 1rem;font-family:var(--font-roboto);color:#dcdcdc;font-size:clamp(13px,11px + .3vw,15px);border-top:1px solid rgba(255,255,255,.08);padding-top:.5rem}.site-footer__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem 1.5rem;padding:1.5rem 0 0}.site-footer__identity,.site-footer__links,.site-footer__base{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.site-footer__name{color:#f5f5f5;font-weight:400}.site-footer__sep{color:#b4b4b480}.site-footer a{position:relative;color:inherit;text-decoration:none;transition:color .3s ease}.site-footer a:hover{color:#ff5722}.site-footer a:hover:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background-color:#ff5722;animation:underline .2s linear;animation-iteration-count:1}.site-footer__base{justify-content:center;margin-top:.4rem;padding-top:.6rem;font-size:clamp(11px,10px + .2vw,13px);color:#b4b4b4b3}@media (max-width: 700px){.site-footer{margin:1rem auto .75rem}.site-footer__row{justify-content:center;text-align:center;gap:.4rem 1rem}}.suspense-fallback{margin:10% auto;display:flex;justify-content:center}.share-buttons{display:flex;flex-direction:column;align-items:center;gap:5px;top:20%;position:sticky}.share-buttons>button{border:none;outline:none;box-shadow:inset 1px 1px 1px gray}.share-button-line{height:2rem;width:1px;border-radius:2rem;background-color:var(--highlight-orange)}#socials-mobile{display:none}.main-content{min-width:0}@media (max-width: 767px){.main-grid{grid-template-columns:1fr}.share-buttons-container{position:static;height:auto;width:100%;padding:0;display:flex;border-bottom:2px solid #0066ff;margin:0 auto}.share-buttons{transform:scale(.9);margin:0 auto;flex-direction:row;align-items:center;justify-content:center;gap:5px}.share-button-line{width:calc(10px + 3vw);height:1px;background-color:var(--highlight-orange)}#socials-mobile{margin:30vh auto 0;display:flex;justify-content:center;align-items:end}}@media (max-width: 450px){.share-button-line{width:0px;height:1px;background-color:var(--highlight-orange)}}@media print{html,body{background:#fff!important;color:#000!important}.fixed-bg,.soft-glow,.main-navbar,.nav-placeholder,.nav-mobile,.nav-mobile-overlay,.share-buttons-container,.scroll-button,#socials-mobile,footer,.footer-wrapper{display:none!important}.main-grid{display:block!important;grid-template-columns:1fr!important}.main-content,#main-resume{width:100%!important;max-width:100%!important;color:#000!important;overflow:visible!important}.resume-header>h1{color:#000!important;text-shadow:none!important}#main-resume,#main-resume *{color:#000!important;text-shadow:none!important}#main-resume a{color:#000!important;text-decoration:underline}#borderdiv{background:none!important;border:1px solid #999!important;padding:.75rem!important;margin:.75rem 0!important;page-break-inside:avoid}.resume-job{page-break-inside:avoid}}
