@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--color-accent:#1bdbdb;--color-accent-hover:#00b8b8;--color-accent-text:#071111;--color-focus:#8fffff;--button-radius:999px;--button-shadow:none;--button-shadow-hover:0 4px 10px #0000002e}button,input,textarea{font:inherit}a{color:inherit}.more-projects-button,.open-gallery-button,.contact-submit{background:var(--color-accent);border-radius:var(--button-radius);min-height:42px;box-shadow:var(--button-shadow);color:var(--color-accent-text);cursor:pointer;letter-spacing:.035em;text-transform:uppercase;border:1px solid #0000;justify-content:center;align-items:center;padding:10px 20px;font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.85rem;font-weight:600;line-height:1;transition:background-color .18s,box-shadow .18s,transform .18s,border-color .18s;display:inline-flex}.more-projects-button:hover,.open-gallery-button:hover,.contact-submit:hover{background:var(--color-accent-hover);box-shadow:var(--button-shadow-hover);transform:translateY(-1px)}.more-projects-button:active,.open-gallery-button:active,.contact-submit:active{box-shadow:var(--button-shadow);transform:translateY(0)}.more-projects-button:focus-visible,.open-gallery-button:focus-visible,.contact-submit:focus-visible,.navlinks:focus-visible,.scroll-down:focus-visible,.topButton:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}html,#root,body{height:100%;margin:0}@media screen and (width>=600px){body{font-size:18px}section{padding:6rem 6rem 0;position:relative}}@media screen and (width<=599px){body{font-size:16px}section{padding:1rem 1rem 0;position:relative}}body{color:#fff;background:#272b33;min-width:320px;margin:0;padding:0;font-family:Montserrat,sans-serif;overflow-x:hidden}button>span{font-family:Montserrat,sans-serif}.App{flex-direction:column;height:100%;display:flex}section h1{text-align:center}@media screen and (width>=599px){.profile{width:120px;height:120px}}@media screen and (width<=599px){.profile{width:100px;height:100px}}@media screen and (height>=599px){.scroll-down{margin-left:auto;margin-right:auto;position:absolute;bottom:170px;left:0;right:0}}@media screen and (height<=599px) and (height>=410px){.scroll-down{margin-left:auto;margin-right:auto;position:absolute;bottom:100px;left:0;right:0}}@media screen and (height<=409px){.scroll-down{display:none}}.scroll-down,a.scroll-down,a.scroll-down:link,a.scroll-down:visited,a.scroll-down:hover,a.scroll-down:active,.scroll-down svg,.scroll-down svg path{color:#fff;text-decoration:none}.scroll-down-icon{fill:currentColor;pointer-events:fill;cursor:pointer;width:35px;height:35px}.home{text-align:center;z-index:1000;flex-direction:column;justify-content:center;align-items:center;height:calc(100vh + 63px);display:flex;position:relative}.greeting{width:100%;margin:-63px 20px 0}.hide{display:none}.profile{border:.2rem solid #1bdbdb;border-radius:50%}.hi-greeting-text,.greeting-text{margin:15px}.name{color:#1bdbdb}@media screen and (width<=599px){.greeting-text{min-height:78px;margin:0 15px}}.home-link-container{justify-content:center;display:flex}.home-links{justify-content:space-evenly;align-items:center;max-width:60px;margin:20px 25px 0;padding:20px;display:flex}.home-links a,.home-links img{width:50px;height:50px}.scroll-down-element{display:inline-block}.wave-emoji{transform-origin:70% 70%;animation-name:wave;animation-duration:1.8s;animation-iteration-count:infinite;animation-fill-mode:forwards;display:inline-block}.particles{width:100%;height:100vh;position:absolute;top:0;left:0}@keyframes wave{0%{transform:rotate(0)}10%{transform:rotate(-10deg)}20%{transform:rotate(12deg)}30%{transform:rotate(-10deg)}40%{transform:rotate(9deg)}50%{transform:rotate(0)}to{transform:rotate(0)}}.mobilenav-wrapper{clip:rect(0, 9999px, 9999px, -9999px);width:100%;position:absolute;top:63px}.mobilenav{background-color:#1a212e}.mobilenav.on{transition:transform .4s ease-in-out,opacity .3s ease-out;transform:translateY(0)}.mobilenav.off{transition:transform .4s ease-in-out,opacity .3s ease-out;transform:translateY(-100%)}.mobilenavlinks{flex-direction:column;padding:20px;display:flex}.mobilenavlink{text-align:left;padding-top:10px;padding-bottom:10px}.mobilenavlinks a{text-align:left;font-size:larger}.navbar{pointer-events:fill;background-color:#23252a;border-bottom:3px solid #1bdbdb;align-items:center;width:100%;height:60px;display:flex;position:absolute;bottom:0}.navbar-top{pointer-events:fill;background-color:#23252a;border-bottom:3px solid #1bdbdb;align-items:center;width:100%;height:60px;display:flex;position:relative}.navbar,.navbar a,.navbar a:link,.navbar a:visited,.navbar a:hover,.navbar a:active,.navbar-top,.navbar-top a,.navbar-top a:link,.navbar-top a:visited,.navbar-top a:hover,.navbar-top a:active{cursor:pointer;color:#fff;cursor:pointer;font-weight:600;text-decoration:none}.navlink-wrapper{width:20%}.navlinks{letter-spacing:.02em;justify-content:space-evenly;width:100%;font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600;display:flex}#hamburger-icon{-o-transition:.5s ease-in-out;cursor:pointer;width:35px;height:21px;margin:0 auto;transition:all .5s ease-in-out;position:relative;transform:rotate(0)}#hamburger-icon span{opacity:1;-o-transition:.25s ease-in-out;background:#fff;border-radius:9px;width:100%;height:3px;transition:all .25s ease-in-out;display:block;position:absolute;left:0;transform:rotate(0)}#hamburger-icon span:first-child{top:0}#hamburger-icon span:nth-child(2),#hamburger-icon span:nth-child(3){top:9px}#hamburger-icon span:nth-child(4){top:18px}#hamburger-icon.open span:first-child{width:0%;top:9px;left:50%}#hamburger-icon.open span:nth-child(2){transform:rotate(45deg)}#hamburger-icon.open span:nth-child(3){transform:rotate(-45deg)}#hamburger-icon.open span:nth-child(4){width:0%;top:9px;left:50%}@media screen and (width>=600px){.profile{width:120px}.hamburger,.mobilenav{display:none}}@media screen and (width<=599px){.navlinks{display:none}.navbar{cursor:default}.hamburger{cursor:pointer;position:absolute;right:30px}.hamburger button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}}.about{background-color:#2c323f}.about-content{grid-template-columns:1fr;align-items:start;gap:48px;width:min(100%,1320px);margin:0 auto;padding:0 clamp(24px,4vw,56px);display:grid}.about-content>*{min-width:0}.about-text{width:100%;max-width:680px}.about-text>ul{list-style-type:none}.about-text>ul>li{margin-bottom:10px}.typewriter{flex-wrap:wrap;align-items:center;display:flex}.typewriter-start{padding-right:5px}.typewriter>p{margin:0}.textLink:hover{color:#52f5f5}.location-wrapper{border-top:1px solid #fff;align-items:center;width:100%;margin-top:18px;padding-top:14px;display:flex}.location-wrapper svg{flex:none;margin-right:8px}.skills-wrapper{text-align:center;width:100%;max-width:620px;margin:0 auto;position:relative}.skills{width:100%;margin:0 auto;padding-left:0;list-style:none;position:relative}.skill-bar-wrapper{background-color:#3e4555;border-radius:2px;height:30px;margin-bottom:10px;display:flex;position:relative;overflow:hidden}.skill-bar{background-color:#52f5f5;border-radius:2px 0 0 2px;flex-direction:column;height:30px;margin-bottom:20px;display:flex}.skill-name{color:#252525;background-color:#1bdbdb;border-radius:2px 0 0 2px;justify-content:center;align-items:center;width:80px;height:30px;font-size:12px;font-weight:600;display:flex;position:absolute;left:0}@media screen and (width>=960px){.about-content{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:clamp(56px,7vw,110px)}.about-text{justify-self:end}.skills-wrapper{justify-self:start;margin:0}}@media screen and (width<=959px){.about-content{justify-items:center}.about-text{max-width:680px}}@media screen and (width<=599px){.about-content{gap:36px;padding:0 20px}.skills-wrapper{max-width:100%}.skill-name{width:65px;font-size:10px}}.section-title{margin-bottom:10px;font-size:25pt}.underline{border-top:4px solid #1bdbdb;width:70px;margin:0 auto 15px}.experience{background-color:#2c323f;position:relative}.experience-content{max-width:1400px;margin:0 auto}.experience-list{flex-wrap:wrap;justify-content:center;margin:0 auto;padding-left:0;list-style:none;display:flex;position:relative}.experience-list>li{border-radius:5px;width:390px;min-width:290px;margin:20px 10px}.experience-list>li>div{height:100%}.textLink{color:#1bdbdb;cursor:pointer}.experience-link{cursor:default;height:100%;text-decoration:none}.experience-card-wrapper{height:100%;transition:all .2s}.experience-card{cursor:default;background-color:#3b4353;border-radius:5px;align-items:center;height:100%;min-height:158px;transition:all .2s;position:relative}.experience-card-wrapper:hover .experience-card{background-color:#474f63;transform:translateY(-10px)}.experience-card-top{justify-content:center;align-items:center;width:100%;height:150px;display:flex;position:relative}.experience-card-top>h2{text-align:center;color:#fff;z-index:1;margin:0 30px;font-size:22px;font-weight:700;text-decoration:none;position:absolute;top:30px}.container{width:100%}.container>h2{text-align:center;color:#fff;z-index:1;width:100%;margin:0;padding:0;font-size:22px;font-weight:700;text-decoration:none;position:absolute;top:30px}.image-wrapper{border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;display:flex;position:absolute;bottom:-50px;box-shadow:0 2px 16px #00000040}.experience-card-bottom{box-sizing:border-box;text-align:center;color:#fff;flex-direction:column;justify-content:space-between;width:100%;height:calc(100% - 150px);padding:65px 20px 20px;display:flex;position:relative}.experience-card-bottom h2{margin:0}.experience-card-bottom h3{margin:20px 0;font-size:18px}.experience-card-bottom ul{text-align:left;list-style-type:disc}.experience-card-bottom li{font-size:16px}.experience-card-tech{margin-top:20px}.experience-card-tech>ul{flex-wrap:wrap;margin-top:-7px;margin-left:-7px;list-style-type:none;display:flex}.experience-card-tech>ul>li{background-color:#5e6a80;border-radius:5px;margin-top:7px;margin-left:7px;padding:5px 10px;font-size:12px;font-weight:600}.experience-card-bullet-list{line-height:22px}.experience-card-bullet{margin-bottom:8px}.experience-bg{border-radius:5px 5px 0 0;width:100%;height:100%;position:absolute}.logo-bg{border-radius:50%}.company-logo{z-index:1;pointer-events:none;max-width:150px}@media screen and (width<=599px){.experience-card-wrapper:hover .experience-card{background-color:#3b4353;transform:translateY(0)}.experience-card-bottom{padding:65px 15px 20px}}.projects{background-color:#2c323f;position:relative}.projects-content{margin:0 auto}.projects-list{width:90%;margin:0 auto;padding-left:0;list-style:none;position:relative}.projects-content{max-width:1000px}.tagslist{width:90%;margin:30px auto 0;display:flex}.project-tags{flex-wrap:wrap;width:90%;display:flex}.more-projects-wrapper{justify-content:center;display:flex}.more-projects-button{margin:20px auto}@media screen and (width<=599px){.projects-list{width:100%}}.project-link{color:#fff;cursor:default;text-decoration:none}.project-card-wrapper{margin:20px 0}.project-card{cursor:pointer;background-color:#3b4353;border-radius:5px;padding:10px 20px;transition:all .2s}.project-card-wrapper:hover .project-card{background-color:#474f63;transform:translate(-10px)}.project-name{align-items:center;margin:20px auto;transition:all .2s;display:flex}.project-name:hover{align-items:center;margin:20px auto;display:flex;transform:translate(5px)}.project-title{margin:0}.octicon{margin-right:10px}.project-info{z-index:1;flex-wrap:wrap;justify-content:space-between;display:flex}.project-info-left{flex-wrap:wrap;justify-content:left;display:flex}.project-info-right{justify-content:right;display:flex}.language{align-items:center;margin-right:10px;display:flex}.language-colour{border-radius:100%;width:10px;height:10px;margin-right:5px}.language-name,.project-size{font-size:small}@media screen and (width<=599px){.project-card-wrapper:hover .project-card{background-color:#3b4353;transform:translate(0)}}.featured-project-link{color:#fff;cursor:default;text-decoration:none}.featured-project-wrapper{margin:20px 0}.featured-project{cursor:pointer;background-color:#3b4353;border-radius:5px;flex-direction:column;justify-content:center;min-height:158px;padding:10px 20px;transition:all .2s;display:flex;position:relative}.featured-project-wrapper:hover .featured-project{background-color:#474f63;transform:translate(-10px)}.featured-project-bg{border-radius:5px;width:100%;height:100%;position:absolute;top:0;left:0}.featured-project-top{margin-top:20px;display:flex}.featured-project-image{z-index:1;width:180px;margin:0 auto 0 -10px;transition:all .2s}.featured-project-image:hover{transform:translate(5px)}.featured-project>p{z-index:1}@media screen and (width<=599px){.featured-project-wrapper:hover .featured-project{background-color:#3b4353;transform:translate(0)}.featured-project-image{width:140px;margin:0 auto 0 -7px}}.contact{background-color:#2c323f}.contact-links{justify-content:space-evenly;align-items:center;max-width:600px;margin:50px auto 0;padding:20px;display:flex}.contact-links a,.contact-links img{width:40px;height:40px}.contact-form{flex-direction:column;width:100%;max-width:500px;margin:40px auto 0;display:flex}.email-success{text-align:center}input:-webkit-autofill{caret-color:#fff;-webkit-text-fill-color:white!important;-webkit-box-shadow:inset 0 0 0 30px #3b4353!important}input:-webkit-autofill:hover{caret-color:#fff;-webkit-text-fill-color:white!important;-webkit-box-shadow:inset 0 0 0 30px #3b4353!important}input:-webkit-autofill:focus{caret-color:#fff;-webkit-text-fill-color:white!important;-webkit-box-shadow:inset 0 0 0 30px #3b4353!important}input:-webkit-autofill:active{caret-color:#fff;-webkit-text-fill-color:white!important;-webkit-box-shadow:inset 0 0 0 30px #3b4353!important}.contact-label{color:#fff;margin-bottom:6px;font-size:14px}.contact-field{color:#fff;font:inherit;background-color:#3b4353;border:none;border-bottom:2px solid #6f7b9b;border-radius:4px 4px 0 0;outline:none;margin-bottom:16px;padding:16px 12px 8px}.contact-field:hover,.contact-field:focus{color:#fff;background-color:#3b4353}.contact-field:focus{border-bottom-color:#258b9e}.contact-message{resize:vertical}.contact-submit{box-shadow:none;cursor:pointer;color:#000;text-transform:uppercase;background-color:#1bdbdb;border:none;border-radius:4px;padding:8px 16px;font-size:15px;font-weight:600}.contact-submit:hover{box-shadow:none;background-color:#009b9b}footer{background-color:#2c323f;padding-bottom:10px}.copyright{text-align:center}.topButton{z-index:99;color:#0b5050;cursor:pointer;background-color:#1bdbdb;border:1px solid #ffffff1f;border-radius:15px;outline:none;padding:10px;font-size:25px;transition:opacity .18s,transform .18s,background-color .18s,border-color .18s,box-shadow .18s;position:fixed;bottom:20px;right:30px;box-shadow:0 6px 14px #00000038}.topButton:hover{border-color:#1bdbdb73;transform:translateY(-2px);box-shadow:0 8px 18px #00000047}.topButton:active{transform:translateY(0);box-shadow:0 5px 12px #00000038}.topButton.on{opacity:1;transition:opacity .1s linear}.topButton.off{opacity:0;transition:opacity .1s linear}.topButton-icon{color:#102a2e;width:24px;height:24px;display:block}.photos-preview{justify-content:center;align-items:center;padding:16px 0 0;display:flex}.open-gallery-anchor{text-decoration:none;display:inline-flex}.open-gallery-button{margin:0 auto}.photos{background-color:#2c323f;min-height:200px}.photos-page{--photos-bg:#2c323f;isolation:isolate;background-color:var(--photos-bg);text-align:center;flex-direction:column;align-items:center;min-height:100vh;display:flex;position:relative}.photos-page:before{content:"";z-index:-1;background-color:var(--photos-bg);position:fixed;inset:0}.photos-page .navbar,.photos-page .navbar-top{background-color:var(--photos-bg)}.photos-page .navbar-top{align-items:center;height:56px;min-height:56px;display:flex}.photos-page .navbar-top a,.photos-page .navbar-top .navlinks{align-items:center;min-height:56px;padding:0 24px;font-size:.9rem;display:flex}.photos-intro{box-sizing:border-box;background-color:var(--photos-bg);padding:44px 24px 20px}.photos-intro h2{margin:0 0 16px}.photos-intro p{margin:8px 0}.photo-container{box-sizing:border-box;background-color:var(--photos-bg);width:100%;margin:0 auto;padding:72px 0 64px}.photo-album-section{box-sizing:border-box;width:min(1120px,100% - 96px);margin:0 auto 56px}.photo-album-section:last-child{margin-bottom:0}.photo-album-grid{box-sizing:border-box;width:100%;overflow:hidden}.photo-album-header{text-align:left;margin-bottom:20px}.photo-album-header h3{margin:0 0 6px;font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(1.25rem,2vw,1.75rem);font-weight:600}.photo-album-header p{color:#ffffffb8;margin:0;font-size:.95rem}.photo-container img{cursor:pointer;border-radius:4px;transition:opacity .18s,transform .18s}.photo-container img:hover{opacity:.9;transform:scale(.995)}@media screen and (width>=1500px){.photo-album-section{width:min(1280px,100% - 128px)}}@media screen and (width<=1400px){.photo-album-section{width:min(980px,100% - 80px)}}@media screen and (width<=1000px){.photo-container{padding-top:56px}.photo-album-section{width:min(720px,100% - 48px)}}@media screen and (width<=700px){.photos-page .navbar-top a,.photos-page .navbar-top .navlinks{padding:0 18px}.photos-intro{padding:36px 20px 16px}.photo-container{padding:48px 0}.photo-album-section{width:calc(100% - 32px);margin-bottom:40px}}
