:root{--background-colour:white;--text-colour:black;--icon-colour:#444;--icon-colour-hover:#111}body[class=dark]{--background-colour:#282842;--text-colour:white;--icon-colour:white;--icon-colour-hover:#bbb}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{color:var(--text-colour);text-align:center;max-width:700px;margin:16px auto 0;font-size:32px}._linkHolder_w5nt4_41{justify-content:center;align-items:center;margin-top:48px;display:flex}._link_w5nt4_41{fill:var(--icon-colour);padding:12px;transition:fill .3s;display:inline}._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;margin-top:64px;font-size:32px;display:grid}._pinnedProject_w5nt4_73{grid-template:repeat(3,250px)/repeat(3,33%);gap:8px;width:70%;margin:48px 15%;display:grid}._project_w5nt4_65{grid-template-columns:50% 50%;gap:8px;width:70%;margin:48px 15%;display:grid}@media only screen and (width<=950px){._project_w5nt4_65{grid-template-columns:100%}._pinnedProject_w5nt4_73{width:90%;margin:48px 5%}}@media only screen and (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{background-color:var(--card-colour);color:var(--text-colour);text-align:center;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;font-size:100%;text-decoration:none;transition:background-color .2s ease-in-out;display:flex}._project_nw7h1_18:hover{background-color:var(--card-colour-hover)}._title_nw7h1_40{max-width:90%;font-size:2rem;font-weight:700;transition:all .2s ease-in-out}._role_nw7h1_47{margin:0;font-size:1rem;font-weight:400;transition:all .2s ease-in-out}._description_nw7h1_54{opacity:0;max-width:75%;height:0;margin:0;font-size:1.2rem;font-weight:400;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{margin-bottom:8px;font-size:.9rem}._project_nw7h1_18:hover ._description_nw7h1_54{opacity:1;height:2.5rem;margin-top:8px}: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{background-color:var(--card-colour);color:var(--text-colour);border-radius:10px;grid-template-rows:40% 45% 15%;grid-template-columns:100%;width:100%;height:100%;min-height:500px;font-size:100%;display:grid}._text_15ptx_36{text-align:center;flex-direction:column;align-items:center;padding-top:16px;display:flex}._title_15ptx_44{max-width:90%;font-size:2rem;font-weight:700;transition:all .2s ease-in-out}._role_15ptx_51{margin:0;font-size:1rem;font-weight:400;transition:all .2s ease-in-out}._description_15ptx_58{max-width:75%;margin:8px 0 0;font-size:1.2rem;font-weight:400;transition:all .2s cubic-bezier(.79,.33,.14,.53)}._linkHolder_15ptx_66{justify-content:center;width:100%;height:100%;display:flex}._link_15ptx_15{background-color:var(--link-colour);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:70px;height:50%;padding:8px 16px;font-size:1.3rem;font-weight:700;text-decoration:none;transition:background-color .2s ease-in-out;display:flex}._link_15ptx_15 svg{height:1.3rem;margin-right:4px;display:block}._link_15ptx_15:hover{background-color:var(--link-colour-hover)}._divider_15ptx_99{opacity:.3;width:90%;margin:6px 0}._banner_15ptx_105{object-fit:cover;object-position:50% 0%;background-position:50%;border-radius:10px 10px 0 0;width:100%;height:100%;position:relative;top:0;overflow:hidden}._tags_15ptx_117{flex-flow:wrap;justify-content:center;max-width:80%;margin:0;display:inline-flex}._tag_15ptx_117{color:#000;text-transform:lowercase;white-space:nowrap;background-color:#fff;border-radius:512px;margin:6px 4px 0;padding:4px 12px;font-size:1rem;font-weight:400}@media only screen and (width<=1300px){._project_15ptx_23{grid-template-rows:30% 50% 20%;min-height:550px}._link_15ptx_15{height:35%}}@media only screen and (width<=900px){._project_15ptx_23{grid-template-columns:100%}}@media only screen and (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);-webkit-user-select:none;user-select:none;-khtml-user-select:none;-webkit-touch-callout:none;width:100%;height:300px;position:relative;overflow:hidden;-webkit-mask-image:url(/header-mask.png);mask-image:url(/header-mask.png);-webkit-mask-size:3000px 300px;mask-size:3000px 300px}._nameText_1fgkq_48{color:var(--name-text-colour);mix-blend-mode:color-dodge;font-size:275px;font-weight:400;transition:color .3s;animation:1s ease-in-out forwards _slideInFromBottom_1fgkq_1;display:inline-block;transform:translateY(100%)}._nameText_1fgkq_48:hover{color:#fafafa}#_l2_1fgkq_1{animation-delay:70ms}#_l3_1fgkq_1{animation-delay:.14s}#_l4_1fgkq_1{animation-delay:.2s}#_l5_1fgkq_1{animation-delay:.3s}._headerPoint_1fgkq_75{filter:blur(64px);z-index:-1;position:absolute}#_p1_1fgkq_1{width:386px;height:404px;filter:var(--p1-filter);top:-130px;left:5%}#_p2_1fgkq_1{width:576px;height:604px;filter:var(--p2-filter);top:-100px;left:29%}#_p3_1fgkq_1{width:742px;height:492px;filter:var(--p3-filter);top:-250px;left:57%}._star_1fgkq_111{fill:linear-gradient(#bdffc7, #5ac6ac);filter:drop-shadow(4px 4px 4px #0003);pointer-events:none;animation:3s ease-in-out infinite alternate forwards _constantStarAnimation_1fgkq_1;position:absolute;overflow-x:hidden}#_star1_1fgkq_1{width:186px;height:236px;animation-delay:.4s;top:120px;right:3%;transform:translateY(5%)}#_star2_1fgkq_1{width:132px;height:167px;top:80px;right:10%}._buttons_1fgkq_143{color:#fefefe;font-size:40px;animation:1s ease-out 1s forwards _slideInFromTop_1fgkq_1;position:absolute;top:0;right:0;transform:translateY(-100%)}._button_1fgkq_143:hover{color:#f7f7f7}._button_1fgkq_143{cursor:pointer;margin:0 25px;transition:color .3s;display:inline-block}._colourMode_1fgkq_165{cursor:pointer;width:48px;height:48px;filter:var(--header-icon-filter);mix-blend-mode:luminosity;font-size:40px;transition:opacity .2s ease-in-out;position:absolute;top:12px;right:12px}._colourMode_1fgkq_165:hover{opacity:.7}@keyframes _slideInFromBottom_1fgkq_1{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes _slideInFromTop_1fgkq_1{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;font-family:Inter Tight,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{margin:0;padding:0;overflow-x:hidden}#root{width:100%}
