:root{--background-colour: white;--text-colour: black;--icon-colour: #444444;--icon-colour-hover: #111111}body[class=dark]{--background-colour: rgb(40, 40, 66);--text-colour: white;--icon-colour: white;--icon-colour-hover: #bbbbbb}body{background-color:var(--background-colour);transition:background-color .2s ease-in-out}._introHolder_w5nt4_22{margin-top:48px}._title_w5nt4_26{color:var(--text-colour);text-align:center;font-size:48px;font-weight:400}._aboutText_w5nt4_33{margin:16px auto 0;color:var(--text-colour);text-align:center;font-size:32px;max-width:700px}._linkHolder_w5nt4_41{margin-top:48px;display:flex;justify-content:center;align-items:center}._link_w5nt4_41{display:inline;padding:12px;fill:var(--icon-colour);transition:fill .3s ease}._link_w5nt4_41:hover{fill:var(--icon-colour-hover)}._link_w5nt4_41 svg{width:32px;height:32px;display:inline}._projects_w5nt4_65{color:var(--text-colour);text-align:center;font-size:32px;margin-top:64px;display:grid}._pinnedProject_w5nt4_73{display:grid;width:70%;margin:48px 15%;grid-template:repeat(3,250px) / repeat(3,33%);gap:8px}._project_w5nt4_65{display:grid;width:70%;margin:48px 15%;grid-template-columns:50% 50%;gap:8px}@media only screen and (max-width: 950px){._project_w5nt4_65{grid-template-columns:100%}._pinnedProject_w5nt4_73{width:90%;margin:48px 5%}}@media only screen and (min-width: 1600px){._project_w5nt4_65{grid-template-columns:33% 33% 33%}}:root{--card-colour: #efefef;--card-colour-hover: #d1d9ff;--text-colour: black}body[class=dark]{--card-colour: #0003;--card-colour-hover: #0006;--text-colour: white}._link_nw7h1_14{text-decoration:none}._project_nw7h1_18{display:flex;border-radius:20px;background-color:var(--card-colour);color:var(--text-colour);text-decoration:none;text-align:center;justify-content:center;width:100%;height:100%;transition:background-color .2s ease-in-out;flex-direction:column;align-items:center;font-size:100%}._project_nw7h1_18:hover{background-color:var(--card-colour-hover)}._title_nw7h1_40{font-size:2rem;font-weight:700;transition:all .2s ease-in-out;max-width:90%}._role_nw7h1_47{font-size:1rem;margin:0;font-weight:400;transition:all .2s ease-in-out}._description_nw7h1_54{font-size:1.2rem;font-weight:400;max-width:75%;opacity:0;height:0;margin:0;transition:all .2s cubic-bezier(.79,.33,.14,.53)}._project_nw7h1_18:hover ._title_nw7h1_40{font-size:1.8rem}._project_nw7h1_18:hover ._role_nw7h1_47{font-size:.9rem;margin-bottom:8px}._project_nw7h1_18:hover ._description_nw7h1_54{height:2.5rem;margin-top:8px;opacity:1}:root{--card-colour: #e5e5e5;--text-colour: black;--link-colour: #1b152b;--link-colour-hover: #372f4e}body[class=dark]{--card-colour: #0003;--text-colour: white;--link-colour: #a07af866;--link-colour-hover: #ac91ecbb}._link_15ptx_15{text-decoration:none}._blog_15ptx_19{margin-left:24px}._project_15ptx_23{display:grid;grid-template-rows:40% 45% 15%;grid-template-columns:100%;border-radius:10px;background-color:var(--card-colour);color:var(--text-colour);width:100%;height:100%;font-size:100%;min-height:500px}._text_15ptx_36{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:16px}._title_15ptx_44{font-size:2rem;font-weight:700;transition:all .2s ease-in-out;max-width:90%}._role_15ptx_51{font-size:1rem;margin:0;font-weight:400;transition:all .2s ease-in-out}._description_15ptx_58{font-size:1.2rem;font-weight:400;max-width:75%;margin:8px 0 0;transition:all .2s cubic-bezier(.79,.33,.14,.53)}._linkHolder_15ptx_66{width:100%;height:100%;display:flex;justify-content:center}._link_15ptx_15{display:flex;text-decoration:none;font-weight:700;font-size:1.3rem;border-radius:10px;width:70px;height:50%;padding:8px 16px;background-color:var(--link-colour);color:#fff;justify-content:center;align-items:center;transition:background-color .2s ease-in-out}._link_15ptx_15 svg{display:block;margin-right:4px;height:1.3rem}._link_15ptx_15:hover{background-color:var(--link-colour-hover)}._divider_15ptx_99{width:90%;margin:6px 0;opacity:.3}._banner_15ptx_105{position:relative;top:0;width:100%;height:100%;object-fit:cover;object-position:50% 0%;border-radius:10px 10px 0 0;background-position:center center;overflow:hidden}._tags_15ptx_117{display:inline-flex;flex-direction:row;max-width:80%;margin:0;flex-wrap:wrap;justify-content:center}._tag_15ptx_117{font-size:1rem;border-radius:512px;background-color:#fff;color:#000;padding:4px 12px;margin:6px 4px 0;text-transform:lowercase;font-weight:400;white-space:nowrap}@media only screen and (max-width: 1300px){._project_15ptx_23{grid-template-rows:30% 50% 20%;min-height:550px}._link_15ptx_15{height:35%}}@media only screen and (max-width: 900px){._project_15ptx_23{grid-template-columns:100%}}@media only screen and (min-width: 1600px){._project_15ptx_23{min-height:550px}}:root{--header-colour: linear-gradient(#bdffc7, #5ac6ac);--p1-filter: blur(64px);--p2-filter: blur(64px);--p3-filter: blur(64px);--name-text-colour: #272d41;--header-icon-filter: invert(60%)}body[class=dark]{--header-colour: linear-gradient(#3b4158, #171033);--p1-filter: invert(13%) sepia(10%) saturate(3928%) hue-rotate(355deg) brightness(93%) contrast(90%) blur(128px);--p2-filter: invert(31%) sepia(51%) saturate(216%) hue-rotate(101deg) brightness(93%) contrast(85%) blur(128px);--p3-filter: invert(15%) sepia(27%) saturate(1259%) hue-rotate(69deg) brightness(61%) contrast(92%) blur(128px);--name-text-colour: #777;--header-icon-filter: invert(0%)}h1{margin:0}._header_1fgkq_29{background-image:var(--header-colour);height:300px;width:100%;-webkit-mask-image:url(/header-mask.png);mask-image:url(/header-mask.png);-webkit-mask-size:3000px 300px;mask-size:3000px 300px;position:relative;user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;overflow:hidden}._nameText_1fgkq_48{animation:1s ease-in-out 0s 1 normal forwards running _slideInFromBottom_1fgkq_1;color:var(--name-text-colour);display:inline-block;font-size:275px;font-weight:400;mix-blend-mode:color-dodge;transform:translateY(100%);transition:color .3s ease}._nameText_1fgkq_48:hover{color:#fafafa}#_l2_1fgkq_1{animation-delay:.07s}#_l3_1fgkq_1{animation-delay:.14s}#_l4_1fgkq_1{animation-delay:.2s}#_l5_1fgkq_1{animation-delay:.3s}._headerPoint_1fgkq_75{filter:blur(64px);position:absolute;z-index:-1}#_p1_1fgkq_1{left:5%;top:-130px;width:386px;height:404px;filter:var(--p1-filter)}#_p2_1fgkq_1{left:29%;top:-100px;width:576px;height:604px;filter:var(--p2-filter)}#_p3_1fgkq_1{left:57%;top:-250px;width:742px;height:492px;filter:var(--p3-filter)}._star_1fgkq_111{animation:3s ease-in-out 0s infinite alternate forwards running _constantStarAnimation_1fgkq_1;fill:linear-gradient(#bdffc7,#5ac6ac);filter:drop-shadow(4px 4px 4px #00000033);pointer-events:none;position:absolute;overflow-x:hidden}#_star1_1fgkq_1{animation-delay:.4s;transform:translateY(5%);right:3%;top:120px;width:186px;height:236px}#_star2_1fgkq_1{right:10%;top:80px;width:132px;height:167px}._buttons_1fgkq_143{animation:1s ease-out 1s 1 normal forwards running _slideInFromTop_1fgkq_1;position:absolute;right:0;top:0;font-size:40px;color:#fefefe;transform:translateY(-100%)}._button_1fgkq_143:hover{color:#f7f7f7}._button_1fgkq_143{cursor:pointer;display:inline-block;margin:0 25px;transition:color .3s ease}._colourMode_1fgkq_165{position:absolute;right:12px;top:12px;font-size:40px;width:48px;height:48px;cursor:pointer;filter:var(--header-icon-filter);mix-blend-mode:luminosity;transition:opacity .2s ease-in-out}._colourMode_1fgkq_165:hover{opacity:.7}@keyframes _slideInFromBottom_1fgkq_1{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes _slideInFromTop_1fgkq_1{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _constantStarAnimation_1fgkq_1{0%{transform:translateY(5%)}to{transform:translateY(-5%)}}@font-face{font-family:Inter Tight;font-style:normal;src:url(/fonts/InterTight.ttf) format("truetype");font-display:swap}:root{font-family:Inter Tight,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{padding:0;margin:0;overflow-x:hidden}#root{width:100%}
