@font-face{font-family:InnovatorGrotesk;src:url(/_astro/InnovatorGroteskVF-VF.CGMBD0bU.ttf) format("truetype");font-display:swap;font-weight:100 900;font-style:normal}:root{--colour-primary: rgb(31, 35, 91, .75);--colour-secondary: rgb(97, 114, 243);--colour-tertiary: rgba(97, 114, 243, .75);--colour-dots: rgba(97, 114, 243, .2);--colour-background: rgb(250, 250, 255);--colour-alert: rgb(249, 112, 102);--colour-warning: rgb(253, 176, 34);--colour-success: rgb(71, 205, 137);--colour-border: rgba(189, 180, 254, .25);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 40px;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 16px;--border-radius-circle: 100rem;--box-shadow-sm-primary: 0 1px 3px color-mix(in srgb, var(--colour-primary) 10%, transparent);--box-shadow-md-primary: 0 3px 6px color-mix(in srgb, var(--colour-primary) 15%, transparent);--box-shadow-lg-primary: 0 10px 20px color-mix(in srgb, var(--colour-primary) 20%, transparent);--box-shadow-sm-tertiary: 0 1px 3px color-mix(in srgb, var(--colour-tertiary) 10%, transparent);--box-shadow-md-tertiary: 0 3px 6px color-mix(in srgb, var(--colour-tertiary) 15%, transparent);--box-shadow-lg-tertiary: 0 10px 20px color-mix(in srgb, var(--colour-tertiary) 20%, transparent);--transition-fast: .1s;--transition-normal: .3s;--transition-slow: .5s;--transition-bounce: cubic-bezier(.68, -.55, .27, 1.55);--transition-exponential-in: cubic-bezier(.95, .05, .795, .035);--transition-exponential-out: cubic-bezier(.19, 1, .22, 1);--transition-exponential-in-out: cubic-bezier(.68, -.55, .27, 1.55)}html{scroll-behavior:smooth}h1{color:var(--colour-primary);font-weight:400}h2{color:var(--colour-secondary);font-weight:900}p{color:var(--colour-tertiary);font-size:.9rem;font-weight:400}body{margin:0;padding:0;background-color:var(--colour-background);background-image:radial-gradient(var(--colour-dots) .5px,var(--colour-background) .5px);background-size:20px 20px;background-position:center;position:relative;z-index:-1;font-family:Innovator Grotesk,sans-serif;font-weight:400}body::-webkit-scrollbar{width:0;height:0}.navbar-container{position:sticky;top:0;left:0;width:100%;display:flex;justify-content:center;z-index:999}.navbar{padding:var(--spacing-sm);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:relative;margin-top:1rem;padding:.25rem;width:fit-content;z-index:1000;display:flex;border-radius:var(--border-radius-circle);background-color:color-mix(in srgb,var(--colour-background) 85%,transparent);transform-style:preserve-3d;transform:perspective(1000px);transition:background-color .3s ease,transform .1s ease-out;align-items:center;border-style:solid;border-color:var(--colour-border)}.navbar-background{position:fixed;top:0;left:0;width:100%;height:100px;z-index:999}.navbar:hover{background-color:color-mix(in srgb,var(--colour-background) 95%,transparent)}.navbar-list{list-style:none;display:flex;justify-content:space-around;margin:0;padding:0;transform:translateZ(20px);align-items:center}.navbar-item a{position:relative;color:var(--colour-tertiary);text-decoration:none;padding:var(--spacing-md) var(--spacing-xxl);margin:0;transition:color var(--transition-slow) var(--transition-exponential-out),transform var(--transition-normal) var(--transition-exponential-out)}.navbar-item a:before{content:"";position:absolute;width:calc(100% - 2 * var(--spacing-xxl));height:.05rem;border-radius:2px;background-color:var(--colour-primary);bottom:.7rem;left:var(--spacing-xxl);transform-origin:right;transform:scaleX(0);transition:transform var(--transition-normal) var(--transition-exponential-out)}.navbar-item:not(.selected):not(.email) a:hover{color:var(--colour-primary);transition:text-shadow var(--transition-normal) var(--transition-exponential-out),color var(--transition-slow) var(--transition-exponential-out),transform var(--transition-normal) var(--transition-exponential-out);transform:scale(1.05)}.navbar-item:not(.selected):not(.email) a:before{content:"";position:absolute;width:calc(100% - 2 * var(--spacing-xxl));height:.05rem;border-radius:2px;background-color:var(--colour-primary);bottom:.7rem;left:var(--spacing-xxl);transform-origin:right;transform:scaleX(0);transition:transform var(--transition-normal) var(--transition-exponential-out)}.navbar-item:not(.selected):not(.email) a:hover:before{transform-origin:left;transform:scaleX(1)}.navbar-item.selected a{color:var(--colour-primary);text-shadow:0 0 30px var(--colour-secondary),0 0 60px var(--colour-secondary);cursor:default}.navbar-link{display:flex;align-items:center;text-decoration:none;color:inherit;margin:.3rem 0 0}.navbar-icon{margin-right:.5rem}.email{background-color:var(--colour-tertiary);border-radius:var(--border-radius-circle);color:var(--colour-background);margin-left:var(--spacing-xl);cursor:pointer;transition:background-color var(--transition-normal) var(--transition-exponential-out)}.email a{color:var(--colour-background);padding:var(--spacing-md) var(--spacing-lg);transition:color var(--transition-normal) var(--transition-exponential-out)}.email:hover{box-shadow:inset 0 0 0 .1rem var(--colour-secondary);background-color:var(--colour-background)}.email:hover .checkmark{color:#47cd89}.email:hover a{color:var(--colour-secondary)}.navbar-image{width:40px;height:40px;padding:.25rem;border-radius:var(--border-radius-circle);background-color:var(--colour-tertiary)}.navbar-image-button{display:flex;align-items:center;justify-content:center;cursor:pointer}.navbar-image-button:hover .navbar-image{animation:rotateImage var(--transition-slow) var(--transition-bounce) forwards}.navbar-image-button .navbar-image{animation:rotateBack var(--transition-slow) var(--transition-bounce) forwards}@keyframes rotateImage{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotateBack{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@media (max-width: 768px){.navbar-container{display:none;position:fixed;height:100vh}.navbar-list{display:grid}.navbar{border-radius:0;margin:0;padding:4rem calc((100vw - 8rem)/2)}.navbar-item a{padding-left:1.5rem;padding-right:1.5rem}.navbar-item{justify-self:center;margin:.5rem}.navbar-image{margin:.5rem}}.welcome-container{position:relative;justify-content:center;align-items:center;height:fit-content;width:fit-content;display:flex;margin-top:4rem;margin-left:auto;margin-right:auto;margin-bottom:4rem;padding:0 var(--spacing-xl);background-color:var(--colour-background)}.welcome-text{position:relative;text-align:center;padding:0 var(--spacing-xl);margin:var(--spacing-md) var(--spacing-xl);transition:opacity .1s ease-in;opacity:1}.fade-out{opacity:0}.translation-icon{position:absolute;bottom:.6rem;right:4rem;font-size:1rem;pointer-events:none;color:var(--colour-secondary);transition:opacity .1s ease-in-out;opacity:1}.icon-fade-out{opacity:0}@media (max-width: 768px){.welcome-container{flex-direction:column}}.hero-container{display:flex;flex-direction:column;width:45rem;margin-left:auto;margin-right:auto;gap:2rem;padding:2rem 4rem 4rem;margin-top:4rem;background-color:var(--colour-background);box-shadow:var(--box-shadow-lg-primary);border-radius:var(--border-radius-lg);transform-style:preserve-3d;transform:perspective(1000px);border-style:solid;border-color:var(--colour-border)}.hero-container h2{display:flex;align-items:center;gap:var(--spacing-sm)}.hero-content{display:flex;gap:4rem}.hero-image-placeholder{width:20rem;height:20rem;flex-shrink:0;background-color:#e5e5e5;overflow:hidden;img{width:100%;height:100%;object-fit:cover;object-position:center}border-radius:var(--border-radius-md)}.hero-grid{display:flex;flex-direction:column;justify-content:space-between}.grid-icon{font-size:1.2rem;margin-right:var(--spacing-sm);color:var(--colour-secondary)}@media (max-width: 768px){.hero-container{border-radius:0;padding:2rem;width:calc(100vw - 4rem)}.hero-grid{padding-left:1rem}.hero-content,.hero-container{flex-direction:column}.hero-image-placeholder{width:100%;height:100%}}.skills-grid-container{margin-top:4rem;margin-right:auto;margin-left:auto;width:fit-content}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-xl);max-width:1200px;margin:0 auto;padding:0 var(--spacing-xl)}.skills-grid-item{text-align:center;padding:var(--spacing-lg);background:var(--colour-background);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-lg-primary);transition:transform var(--transition-normal) var(--transition-exponential-out),box-shadow var(--transition-normal) var(--transition-exponential-out);width:12rem;padding:2rem;border-style:solid;border-color:var(--colour-border)}.skills-grid-item:hover{transform:translateY(4px);box-shadow:var(--box-shadow-sm-primary)}.skills-grid-item p{margin:0;text-align:left}.skills-grid-item h2{margin-top:0;display:flex;align-items:center;gap:var(--spacing-sm)}@media (max-width: 768px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.skills-grid{grid-template-columns:1fr}}:root,:host{--fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free";--fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free";--fa-font-light: normal 300 1em/1 "Font Awesome 6 Pro";--fa-font-thin: normal 100 1em/1 "Font Awesome 6 Pro";--fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-light: normal 300 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 6 Duotone";--fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands";--fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-light: normal 300 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 6 Sharp Duotone"}svg.svg-inline--fa:not(:root),svg.svg-inline--fa:not(:host){overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display, inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0em}.svg-inline--fa.fa-sm{vertical-align:-.07143em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin, .3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin, .3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width, 2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width, 1.25em)}.fa-layers svg.svg-inline--fa{inset:0;margin:auto;position:absolute}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color, #ff253a);border-radius:var(--fa-counter-border-radius, 1em);box-sizing:border-box;color:var(--fa-inverse, #fff);line-height:var(--fa-counter-line-height, 1);max-width:var(--fa-counter-max-width, 5em);min-width:var(--fa-counter-min-width, 1.5em);overflow:hidden;padding:var(--fa-counter-padding, .25em .5em);right:var(--fa-right, 0);text-overflow:ellipsis;top:var(--fa-top, 0);transform:scale(var(--fa-counter-scale, .25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom, 0);right:var(--fa-right, 0);top:auto;transform:scale(var(--fa-layers-scale, .25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom, 0);left:var(--fa-left, 0);right:auto;top:auto;transform:scale(var(--fa-layers-scale, .25));transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top, 0);right:var(--fa-right, 0);transform:scale(var(--fa-layers-scale, .25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left, 0);right:auto;top:var(--fa-top, 0);transform:scale(var(--fa-layers-scale, .25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin, 2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(-1 * var(--fa-li-width, 2em));position:absolute;text-align:center;width:var(--fa-li-width, 2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color, #eee);border-radius:var(--fa-border-radius, .1em);border-style:var(--fa-border-style, solid);border-width:var(--fa-border-width, .08em);padding:var(--fa-border-padding, .2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin, .3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin, .3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay, 0s);animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 2s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, linear)}.fa-spin-reverse{--fa-animation-direction: reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction, normal);animation-duration:var(--fa-animation-duration, 1s);animation-iteration-count:var(--fa-animation-iteration-count, infinite);animation-timing-function:var(--fa-animation-timing, steps(8))}@media (prefers-reduced-motion: reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale, 1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x, 1.1),var(--fa-bounce-start-scale-y, .9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x, .9),var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x, 1.05),var(--fa-bounce-land-scale-y, .95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound, -.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity, .4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity, .4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale, 1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x, 0),var(--fa-flip-y, 1),var(--fa-flip-z, 0),var(--fa-flip-angle, -180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle, 0))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{inset:0;margin:auto;position:absolute;z-index:var(--fa-stack-z-index, auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse, #fff)}.sr-only,.fa-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only-focusable:not(:focus),.fa-sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color, currentColor);opacity:var(--fa-primary-opacity, 1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color, currentColor);opacity:var(--fa-secondary-opacity, .4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity, .4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity, 1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.title-container{position:relative;display:flex;justify-content:center;align-items:center;height:fit-content;width:fit-content;margin-left:auto;margin-right:auto;margin-top:4rem;padding:0 var(--spacing-xl);background-color:var(--colour-background)}.title-text{position:relative;text-align:center;padding:0 var(--spacing-xl);margin:0}.schooling-container{display:flex;flex-direction:column;gap:var(--spacing-xl);padding:var(--spacing-xl);background:var(--colour-background);width:fit-content;margin:4rem auto}.schooling-item{display:flex;align-items:center;gap:var(--spacing-lg)}.schooling-image{width:20rem;height:15rem;object-fit:cover;border-radius:var(--border-radius-md);border:2px solid var(--colour-background);margin-right:var(--spacing-lg);transition:transform var(--transition-normal) var(--transition-exponential-out),box-shadow var(--transition-normal) var(--transition-exponential-out)}.schooling-image:hover{transform:scale(1.02) rotate(-1deg);box-shadow:var(--box-shadow-lg-primary)}.schooling-text{max-width:30rem}.schooling-text h2 a{margin:0;color:var(--colour-secondary);text-decoration:none;transition:color var(--transition-normal) var(--transition-exponential-out)}.schooling-text h2 a:hover{color:color-mix(in srgb,var(--colour-secondary) 60%,var(--colour-primary))}.link-icon{font-size:.8rem;transition:margin-left var(--transition-normal) var(--transition-bounce)}a:hover .link-icon{margin-left:var(--spacing-md)}.schooling-text p{color:var(--colour-tertiary)}.degree-title{color:var(--colour-primary)}@media (max-width: 950px){.schooling-text{max-width:20rem}}@media (max-width: 768px){.schooling-container{margin:2rem 0;width:fit-content;justify-self:center}.schooling-image{width:70vw;margin-right:0;height:100%}.schooling-text{width:65vw}.schooling-item{flex-direction:column;width:fit-content}}.project-image-container{position:relative;width:100%;overflow:hidden;transition:transform var(--transition-normal) var(--transition-exponential-out),box-shadow var(--transition-normal) var(--transition-exponential-out);border-radius:var(--border-radius-md)}.project-image-container:hover{transform:scale(1.02);box-shadow:var(--box-shadow-md-primary);cursor:pointer}.WIP .project-image-container:hover{transform:none;box-shadow:none;cursor:default}.project-grid-image{width:20rem;height:15rem;display:block;object-fit:cover}.WIP .project-grid-image{filter:blur(10px);transform:scale(1.1)}.project-hover-text{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to bottom,transparent 0%,var(--colour-primary) 100%);color:var(--colour-background);display:flex;align-items:end;justify-content:start;opacity:0;margin:0;padding-bottom:1rem;padding-left:1.2rem;height:100%;transition:opacity var(--transition-normal) var(--transition-exponential-out)}.project-image-container:hover .project-hover-text{opacity:1}.project-summary{margin-top:1rem}.project-summary-container{display:flex;align-items:center}.summary-icon{border-radius:50%;height:1.2rem;margin-right:.5rem;margin-top:-.15rem}.project-tag-container{margin-top:0;display:flex;flex-wrap:nowrap;gap:.5rem;margin-left:auto}.project-tag{margin-top:.8rem;border-radius:var(--border-radius-circle);background-color:var(--colour-tertiary);padding:.2rem .6rem;font-size:.8rem;font-weight:600;color:var(--colour-background)}.wip-banner{position:absolute;background-color:var(--colour-primary);color:var(--colour-background);padding:5px;font-size:.8rem;font-weight:400;transform:rotate(-45deg);transform-origin:0 0;width:5rem;top:2.5rem;left:-1.5rem;text-align:center;box-shadow:var(--box-shadow-lg-tertiary);z-index:10}.bigmode-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:color-mix(in srgb,var(--colour-tertiary) 50%,transparent);display:flex;justify-content:center;align-items:flex-end;z-index:1000;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;opacity:0;animation:fadeInOverlay var(--transition-normal) forwards}.bigmode-container{background-color:var(--colour-background);padding:2rem;border-radius:var(--border-radius-md) var(--border-radius-md) 0 0;width:calc(100% - 2rem);height:80%;margin:5rem 1rem 0;overflow-y:auto;opacity:0;transform:translateY(10%) scale(.85);animation:fadeInContent var(--transition-normal) var(--transition-fast) var(--transition-bounce) forwards;cursor:auto;border-style:solid;border-color:var(--colour-border)}.close-button{position:fixed;top:.75rem;right:1rem;z-index:10000;cursor:pointer;font-size:1.5rem;color:var(--colour-background);pointer-events:none}@keyframes fadeInOverlay{to{opacity:1}}@keyframes fadeInContent{to{opacity:1;transform:translateY(0) scale(1);height:calc(100% - 7rem)}}.bigmode-title{text-align:center;margin-bottom:1rem;width:30rem;display:flex;justify-self:center;justify-content:center;margin-top:5rem;margin-bottom:2rem}.bigmode-title-description{text-align:center;margin-bottom:1rem;font-style:italic}.bigmode-tags{text-align:center;margin-bottom:2rem}.bigmode-tag{display:inline-block;color:var(--colour-secondary);padding:.5rem 1rem;margin:0 .5rem;border-color:var(--border-radius-circle);border-radius:100rem;border-style:solid}.bigmode-content{display:flex;align-items:flex-start;justify-content:space-between;margin:5rem;padding:0 10rem;gap:5rem}.bigmode-description{flex:1;text-align:left;padding:1.5rem;padding-top:0;width:22.5rem}.header.image,.followup.image{flex:1;width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover;max-width:45%;border-radius:var(--border-radius-md)}.description-container{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;margin:auto;right:0;left:0}.description-header{display:flex;align-items:center;margin-bottom:.5rem;padding:1.5rem;padding-bottom:0;h2{color:var(--colour-tertiary)}}.description-icon{margin-right:.5rem;color:var(--colour-tertiary)}.description-title{font-weight:700;margin:0}.quote{color:var(--colour-secondary);padding-left:1rem;border-left:.1rem solid var(--colour-secondary);margin-bottom:0}.quote-author{font-size:.9rem;display:flex;justify-content:flex-end;align-items:center;margin-top:.5rem;margin-bottom:1rem}.referral-link{color:var(--colour-primary);text-decoration:none;display:flex;align-items:center}.referral-link:hover{text-decoration:underline}.fa-user{color:var(--colour-primary);margin-right:.5rem;height:.75rem}.grid-wrapper{display:flex;flex-direction:column;align-items:center;margin-top:4rem;background-color:var(--colour-background)}.button-container{display:flex;justify-content:center;margin:2rem 2rem 1rem}.grid-container{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,auto);gap:1rem;margin-left:6rem;margin-right:6rem}.project-item-container{padding:1rem;text-align:start}.grid-link p{margin:.5rem .3rem;padding:.5rem 1rem;text-decoration:none;color:var(--colour-primary);display:inline-block;text-align:center;position:relative;overflow:hidden;border-radius:var(--border-radius-circle);border:1px solid transparent;transition:border var(--transition-slow) var(--transition-exponential-out),background-color var(--transition-slow) var(--transition-exponential-out),color var(--transition-slow) var(--transition-exponential-out)}.grid-link p:hover{cursor:pointer;border:1px solid var(--colour-primary)}.grid-link.selected p{cursor:default;color:var(--colour-background);background-color:var(--colour-primary)}@media (max-width: 1080px){.grid-container{grid-template-columns:repeat(2,1fr);grid-template-rows:auto}}@media (max-width: 768px){.grid-container{grid-template-columns:1fr;grid-template-rows:auto}}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--colour-primary);z-index:1000;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;justify-content:center;align-items:center}.modal-content{background-color:var(--colour-background);padding:5rem;width:60vw;max-width:40rem;height:40vh;border-radius:var(--border-radius-md);border:1px solid var(--colour-secondary);display:flex;flex-direction:column;align-items:center;h2{margin-bottom:1rem;text-align:center}p{margin-bottom:1rem;max-width:30rem}a{margin-top:1rem;margin-bottom:1rem;background-color:var(--colour-secondary);color:var(--colour-background);border:none;border-radius:var(--border-radius-sm);padding:.5rem 0;cursor:pointer;text-decoration:none;margin-bottom:.5rem;font-size:.9rem;font-weight:400;text-align:center;width:10rem}a:hover{background-color:var(--colour-tertiary)}button{margin-top:0;background-color:var(--colour-background);color:var(--colour-tertiary);border:1px solid var(--colour-tertiary);border-radius:var(--border-radius-sm);padding:.5rem 1rem;cursor:pointer;width:10rem}button:hover{background-color:var(--colour-tertiary);border-color:transparent;color:var(--colour-background)}}.icon-spacing{margin-left:.5rem}@media (max-width: 768px){.modal-content{width:80vw;height:auto;padding:2rem}}
