.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes ProjectCard_subtleMove__tzFnx{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.009)}to{transform:translateY(0) scale(1)}}h2{color:var(--highlight-colour);font-size:1.7em}.ProjectCard_project-card__wGyfl{align-items:center;display:flex;flex-direction:column;flex-grow:1;flex:1 1 500px;white-space:pre-wrap;width:100%}.ProjectCard_project-card__wGyfl:not(.ProjectCard_current__ApVpq){visibility:hidden}.ProjectCard_project-card__wGyfl.ProjectCard_next__VQ8qY{top:var(--offset)}.ProjectCard_project-card__wGyfl.ProjectCard_prev__Csf-k{bottom:var(--offset)}.ProjectCard_card-img__F9N\+f{align-items:center;aspect-ratio:1/1;display:flex;height:100%;justify-content:center;margin-bottom:.5em;max-width:100%;overflow:hidden}.ProjectCard_card-img__F9N\+f>img{max-height:100%;max-width:100%;object-fit:cover}.ProjectCard_card-links__Arc28{align-items:center;column-gap:2em;display:flex;flex-wrap:wrap;font-size:.9em;font-weight:700;justify-content:space-around;letter-spacing:.05em;margin:.5em 0;row-gap:1em;text-transform:uppercase;text-underline-offset:.18em}.ProjectCard_card-links__Arc28>a{border-bottom:1px solid #80808080;color:inherit;opacity:.8;padding:.4em;text-decoration:none;transition:opacity,border-color .5s}.ProjectCard_card-links__Arc28>a:has(+a:hover),.ProjectCard_card-links__Arc28>a:hover+a{opacity:.5}.ProjectCard_card-links__Arc28>a:hover{border-bottom:1px solid var(--highlight-colour);opacity:1}.ProjectCard_card-content__WiO5d{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:space-around;max-width:100%;text-align:center}.ProjectCard_card-content__WiO5d>:first-child,.ProjectCard_card-content__WiO5d>:last-child{margin:1rem 0}.ProjectCard_card-content__WiO5d>p:first-of-type{margin-top:0}.ProjectCard_skill-tags__Tp9tX{column-gap:.4em;display:flex;flex-wrap:wrap;justify-content:center;row-gap:.4em}.ProjectCard_skill-tags__Tp9tX>.ProjectCard_skill__X-a5D:hover{border-color:var(--highlight-colour);cursor:pointer}.ProjectCard_skill__X-a5D{background-color:var(--secondary-colour);border:2px solid var(--darker-highlight-colour);border-radius:2em;color:var(--text-colour);font-size:.8em;font-weight:500;padding:.35em .55em}.ProjectCard_skill-tags__Tp9tX:has(.ProjectCard_skill__X-a5D[data-selected=true]) .ProjectCard_skill__X-a5D[data-selected=false]{opacity:.5}.ProjectCard_skill__X-a5D[data-selected=true]{border-color:rgb(from var(--highlight-colour) r g b/.75)}@media screen and (min-width:768px){.ProjectCard_project-card__wGyfl.ProjectCard_next__VQ8qY,.ProjectCard_project-card__wGyfl.ProjectCard_prev__Csf-k{transition:visibility 1s;visibility:visible}.ProjectCard_card-content__WiO5d{max-height:28em;padding:0 var(--body-padding);width:50%}.ProjectCard_project-card__wGyfl.ProjectCard_next__VQ8qY>.ProjectCard_card-content__WiO5d,.ProjectCard_project-card__wGyfl.ProjectCard_prev__Csf-k>.ProjectCard_card-content__WiO5d{opacity:0;transition:opacity .15s}.ProjectCard_project-card__wGyfl.ProjectCard_current__ApVpq>.ProjectCard_card-content__WiO5d{opacity:1;transition:opacity 1s}.ProjectCard_card-img__F9N\+f{animation:ProjectCard_subtleMove__tzFnx 5s infinite;margin-bottom:0;max-height:none;max-height:100%;max-width:100%;order:2;width:var(--project-card-height)}.ProjectCard_project-card__wGyfl.ProjectCard_next__VQ8qY>.ProjectCard_card-img__F9N\+f>img,.ProjectCard_project-card__wGyfl.ProjectCard_prev__Csf-k>.ProjectCard_card-img__F9N\+f>img{height:90%;opacity:.5;transition:width .6s,height .6s;width:90%}.ProjectCard_project-card__wGyfl{flex-basis:75%;flex-direction:row;height:var(--project-card-height);justify-content:flex-end;scroll-snap-align:center;scroll-snap-stop:always}.ProjectCard_card-content__WiO5d p{margin-top:0;max-width:750px}.ProjectCard_card-img__F9N\+f>img{height:100%;transition:width .5s,height .5s;width:100%}}@media screen and (min-width:768px) and (max-width:1200px){.ProjectCard_card-content__WiO5d{font-size:calc(.3em + .65vw + .6vh)}}@media screen and (min-width:1200px){.ProjectCard_project-card__wGyfl{padding-right:var(--body-padding);width:auto}}@media screen and (min-width:768px) and (max-width:1500px){.ProjectCard_card-content__WiO5d p,.ProjectCard_card-content__WiO5d>:first-child,.ProjectCard_card-content__WiO5d>:last-child{margin:0}.ProjectCard_card-content__WiO5d>:first-child{margin-bottom:.2em}}@media screen and (min-width:1350px){.ProjectCard_project-card__wGyfl p{padding:0 3em}}nav{--nav-indicator-padding:0.6em;color:var(--highlight-colour)}#ProjectNav_nav-container__Zz\+M7{align-items:center;display:flex;flex-grow:1;width:100%}#ProjectNav_nav-indicator__WPt8q{align-items:center;border-radius:7px;box-sizing:border-box;column-gap:.6em;display:flex;flex-shrink:1;justify-content:space-evenly;margin:1em;padding:var(--nav-indicator-padding);width:100%}.ProjectNav_project-nav-button__aB74S{background-color:var(--highlight-colour);border:none;flex-grow:1;height:.35em;opacity:.5;padding:0;position:relative;width:0}#ProjectNav_nav-link-names__oSeoX>*,.ProjectNav_project-nav-button__aB74S{transition:opacity,background-color .2s}.ProjectNav_project-nav-button__aB74S:before{content:"";cursor:pointer;height:100%;left:0;padding:var(--nav-indicator-padding) 0;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:1000;z-index:1}.ProjectNav_project-nav-button__aB74S[aria-current=true]{opacity:1}#ProjectNav_nav-link-names__oSeoX>[data-current=false]{opacity:.75}#ProjectNav_nav-link-names__oSeoX>[data-current=true]{border-left:none;border-right:none;font-weight:500}#ProjectNav_nav-link-names__oSeoX{box-sizing:border-box;display:none;flex-grow:1;height:100%;padding:var(--nav-indicator-padding) 0;row-gap:.6em}@media screen and (min-width:768px){#ProjectNav_nav-indicator__WPt8q{flex-direction:column;height:100%;margin:1em 0;row-gap:0;width:var(--nav-indicator-padding)}.ProjectNav_project-nav-button__aB74S+.ProjectNav_project-nav-button__aB74S{margin-top:.6em}.ProjectNav_project-nav-button__aB74S{height:0;width:.35em}.ProjectNav_project-nav-button__aB74S.ProjectNav_hover__jnlNa,.ProjectNav_project-nav-button__aB74S:hover{opacity:1}.ProjectNav_project-nav-button__aB74S:before{box-sizing:initial;height:100%;left:50%;padding:0 var(--nav-indicator-padding);top:0;transform:translateX(-50%);width:100%}#ProjectNav_nav-container__Zz\+M7{flex-basis:fit-content;height:50vh}}@media screen and (min-width:768px) and (max-width:1200px){#ProjectNav_nav-container__Zz\+M7{box-sizing:border-box;padding:0;width:50%}#ProjectNav_nav-indicator__WPt8q{margin:0;margin-left:calc(var(--body-padding)*-1);padding-left:var(--body-padding);padding-right:var(--body-padding);width:-webkit-fit-content;width:fit-content}}@media screen and (min-width:1200px){#ProjectNav_nav-indicator__WPt8q{margin-right:calc(var(--nav-indicator-padding)*-1)}#ProjectNav_nav-link-names__oSeoX{display:flex;flex-direction:column;justify-content:space-around}#ProjectNav_nav-link-names__oSeoX>*{align-items:center;display:flex;height:100%;justify-content:center;text-align:center}#ProjectNav_nav-link-names__oSeoX>.ProjectNav_hover__jnlNa,#ProjectNav_nav-link-names__oSeoX>:hover{background-color:#ffffff1a;cursor:pointer;filter:brightness(1.15)}#ProjectNav_nav-container__Zz\+M7{padding:var(--body-padding)}}#SkillFilter_skill-filter-container__bIX9L{--filter-colour:var(--text-colour);margin-bottom:.5em;width:100%}#SkillFilter_skill-filter-container__bIX9L svg>path{fill:var(--filter-colour)}#SkillFilter_skill-filter-container__bIX9L svg{margin-right:.25em}#SkillFilter_skill-filter-container__bIX9L span{color:var(--filter-colour)}#SkillFilter_skill-filter-container__bIX9L>div:last-child{flex-basis:70%}@media screen and (min-width:768px){#SkillFilter_skill-filter-container__bIX9L{color:var(--text-colour);left:var(--body-padding);max-width:400px;position:absolute;top:16vh;width:calc(50% - 1.2em);z-index:111}}@media screen and (min-width:1200px){#SkillFilter_skill-filter-container__bIX9L{margin-right:var(--body-padding);min-width:-webkit-fit-content;min-width:fit-content;right:0;top:-3.8em;width:auto}}.SkillFilter_no-projects__DFLw6{color:#920000}.skills-filter__control{background-color:var(--secondary-colour)!important;border-color:var(--highlight-colour)!important;border-radius:1em!important;color:var(--text-colour)!important;cursor:text!important;padding:0 .3em}.skills-filter__control--is-focused{box-shadow:0 0 0 1px var(--highlight-colour)!important;cursor:text!important}.skills-filter__control:has(.skills-filter__value-container--has-value){border-width:2px}.skills-filter__control:hover{border-color:var(--highlight-colour)!important;box-shadow:0 0 0 1px var(--highlight-colour)!important}.skills-filter__input{color:var(--text-colour)!important;font-size:1em!important}.skills-filter__placeholder{color:var(--text-colour)!important;cursor:text!important;display:flex;font-size:.9em;opacity:.7}.skills-filter__placeholder *{vertical-align:middle}.skills-filter__placeholder img{height:1.2em;margin-right:.5em}.skills-filter__indicator{cursor:pointer}.skills-filter__menu,.skills-filter__single-value{color:var(--text-colour)!important}.skills-filter__menu{background-color:var(--secondary-colour)!important;flex-grow:1}.skills-filter__menu-list{padding:0!important}.skills-filter__option{background-color:var(--secondary-colour);color:var(--text-colour)!important}.skills-filter__option:hover{background-color:var(--secondary-colour)!important;cursor:pointer}.skills-filter__option--is-focused{border:2px double var(--highlight-colour);border-bottom:0;border-top:0}.skills-filter__option--is-focused,.skills-filter__option--is-selected{background-color:var(--secondary-colour)!important;color:var(--text-colour)!important}.skills-filter__option--is-selected{border:2px double var(--highlight-colour)}#ProjectView_project-view__jDpjc{display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:space-evenly;position:relative;width:100%}#ProjectView_project-card-container__n7P\+n{box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding-bottom:var(--project-card-height);padding-top:var(--project-card-height);position:relative;width:100%}@media screen and (min-width:768px){#ProjectView_project-view__jDpjc{flex-direction:row;flex-grow:0;height:auto;justify-content:center}#ProjectView_project-card-container__n7P\+n{--project-card-height:50vh;--webkit-scrollbar-width:none;height:100vh;overflow-y:scroll;scroll-behavior:smooth;scroll-snap-type:y mandatory;scrollbar-width:none}#ProjectView_nav-filter-container__ELfzK{display:flex;margin:auto}#ProjectView_project-view__jDpjc{left:calc(var(--body-padding)*-1);position:absolute;right:calc(var(--body-padding)*-1);width:auto}#ProjectView_project-card-container__n7P\+n,#ProjectView_project-view__jDpjc{transition:border-left .5s ease-in-out}}@media screen and (min-width:768px) and (max-width:1200px){#ProjectView_project-card-container__n7P\+n{--project-card-height:45vh}#ProjectView_project-view__jDpjc{background-color:#fff;border-left:2px solid var(--secondary-colour);padding:0 var(--body-padding)}}@media screen and (min-width:1200px){#ProjectView_nav-filter-container__ELfzK{flex-basis:24%;flex-shrink:0.5;position:relative}#ProjectView_project-card-container__n7P\+n{background-color:#fff;border-left:2px solid var(--darker-highlight-colour)}}html{display:flex}body{--body-padding:0.5em;--medium-screen-project-stripe-width:0.75em;height:100vh;margin:0;padding:var(--body-padding);width:100%}#root,body{box-sizing:border-box}#root{height:100%}@media screen and (min-width:480px){body{--body-padding:1em}}@media screen and (min-width:768px){body{--body-padding:calc(0.3em + 0.8vh + 0.9vw);background:var(--primary-colour);overflow:hidden}}@media screen and (min-width:768px) and (max-width:1200px){body{padding-left:calc(var(--body-padding) + var(--medium-screen-project-stripe-width))}}@media screen and (min-width:2000px){body{font-size:1.1em}}:root{--header-padding:0.2em;--darker-highlight-colour:rgb(from var(--highlight-colour) r g b/0.6)}body{font-family:Inter,sans-serif;transition:background-color .5s ease-in-out}#Layout_main-container__2Vj1J{color:#000;display:flex;flex-direction:column;height:100%;position:relative}#Layout_main-content__kNJ9Q{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:auto 0;min-height:-webkit-fit-content;min-height:fit-content;padding:.75em}@media screen and (min-width:768px){#Layout_main-content__kNJ9Q{align-items:center;display:flex;flex-direction:column;height:80%;justify-content:center;min-height:0;min-height:auto;padding:0}}#Header_header-container__JCO41{display:flex;flex-direction:column;padding:var(--header-padding);width:-webkit-fit-content;width:fit-content}#Header_header-link__QDq\+\+{display:inline-block;margin-bottom:1em;text-decoration:none;width:-webkit-fit-content;width:fit-content;z-index:1}#Header_name__Jdp6n{color:var(--text-colour);font-size:1em;font-weight:700;text-transform:uppercase}#Header_secondary__bxU5i{color:var(--highlight-colour);font-size:.94em;font-weight:600;margin-top:.1em}@media screen and (min-width:768px){#Header_header-link__QDq\+\+{position:absolute}}#Footer_footer__b8Vhr{--github-logo-height:18px;--github-logo-col-gap:7px;bottom:0;opacity:.8;padding:var(--header-padding);transition:opacity .2s}#Footer_footer__b8Vhr:hover{opacity:1}#Footer_footer__b8Vhr:hover>a:before{transform:scale(1)}#Footer_footer__b8Vhr:hover .Footer_github-logo__PpAZH{transform:scale(1.1)}#Footer_footer__b8Vhr>a{color:var(--text-colour);column-gap:var(--github-logo-col-gap);display:flex;font-size:.95em;line-height:calc(var(--github-logo-height) + 2px);margin:auto auto 1em;position:relative;text-decoration:none;transition:column-gap .2s;width:-webkit-fit-content;width:fit-content}#Footer_footer__b8Vhr>a:before{border-bottom:1px solid #000;border-color:var(--text-colour);bottom:-2px;content:"";left:calc(var(--github-logo-col-gap) + var(--github-logo-height));position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .2s ease-out}.Footer_github-logo__PpAZH{height:var(--github-logo-height);transition:transform .2s ease-out;width:auto}@media screen and (min-width:768px){#Footer_footer__b8Vhr{position:absolute}#Footer_footer__b8Vhr>a{margin:0}}
/*# sourceMappingURL=main.81295cf0.css.map*/