@font-face{font-family:Noto Sans;src:url(/fonts/NotoSans-VariableFont.woff2)format("woff2 supports variations"),url(/fonts/NotoSans-VariableFont.woff2)format("woff2-variations");font-optical-sizing:auto;font-style:normal;font-weight:100 900;font-display:swap}:root{--white:#fcfcfc;--black:#1f1f1f;--deep-grey:#90929b;--text-grey:#72727e;--grey:#f0f0f0;--hover-grey:#e3e3e3;--blossom:#f7f0ec;--blue:#0f3cf0;--pm:30px;--fg:var(--black);--bg:var(--white);--max-page-w:2000px}h1,h2,h3,h4,h5,h6,p,li{color:var(--fg);margin-top:0;margin-bottom:0}html,body{box-sizing:border-box;margin:0;padding:0;overflow-x:hidden}.btn{background-color:var(--grey);border:none;border-radius:6px;padding:2px 5px;display:block}.nav-btn span{display:block}html{background-color:var(--bg);font-family:Noto Sans,sans-serif;font-size:15px;font-weight:400}body{position:relative}a{color:var(--fg);font-style:italic;text-decoration:none;transition:color .3s ease-in-out}.no_pointer{pointer-events:none}.px{padding-left:var(--pm);padding-right:var(--pm)}.py{padding-top:var(--pm);padding-bottom:var(--pm)}.outline{border:1px solid green}.fh1{font-size:44px;font-weight:520}.fh3{letter-spacing:.018em;font-size:27px;font-weight:420;line-height:1.5em}.fh4{font-size:25px;font-weight:400}.fh5{letter-spacing:.015em;font-size:19px;font-weight:200}.fh6{letter-spacing:.01em;font-size:21px;font-weight:400}.fb{font-size:17px;font-weight:390}.fb-small{font-size:16px;font-weight:390}.fd{letter-spacing:.01em;font-size:15px;font-weight:380}@media (max-width:1025px){.fh1{font-size:37px;font-weight:520}}@media (max-width:860px){:root{--pm:14px}.fh1{font-size:27px;font-weight:500}.fh3{font-size:21px}.fh4{font-size:18px;font-weight:400}.fh5{letter-spacing:.015em;font-size:19px;font-weight:200}.fh6{font-size:17px;font-weight:400}.fb{font-size:16px;font-weight:390}.fb-small{font-size:15px;font-weight:390}.fd{letter-spacing:.01em;font-size:15px;font-weight:380}}button{-webkit-appearance:none;text-align:inherit;box-shadow:none;cursor:pointer;border:1px solid var(--black);color:var(--black);background:0 0;background-color:var(--grey);border-radius:2px;padding:5px;font-family:Noto Sans;font-weight:300}body.modal-open .modal-backdrop{opacity:1;pointer-events:all}
.hero__section{z-index:1;will-change:transform;justify-content:center;align-items:center;height:100vh;display:flex;position:relative}.hero__section .animation-wrap{aspect-ratio:16/7;background-color:var(--grey);border-radius:12px;justify-content:center;align-items:center;width:75%;display:flex;position:relative;overflow:hidden}.hero__section .animation-wrap canvas{object-fit:contain;width:auto;max-width:100%;height:100%;display:block;position:relative;top:-8%;left:-.5%}.hero__section .animation-wrap video{display:none}@media (max-width:860px){.hero__section{align-items:center;height:98vh;padding-bottom:0}.hero__section .animation-wrap{aspect-ratio:9/16;width:90%}.hero__section .animation-wrap canvas{width:100%;height:auto}}.hero__secton_mobile{margin-top:39svh;padding-bottom:30px}.hero__secton_mobile .h-inner{height:65svh;min-height:480px;position:relative}.hero__secton_mobile .h-inner .colour-holder{--blur-amount:70px;--b1-col:#5a97fa;--b2-col:#ffd19a;--b3-col:#050406;transform-origin:50%;background-color:#aba3a3;border-radius:9px;width:100%;height:100%;transition:all .4s ease-in-out;position:absolute;top:0;left:0;overflow:hidden}.hero__secton_mobile .h-inner .colour-holder #blob1{width:168%;height:62%;filter:blur(var(--blur-amount));mix-blend-mode:color-burn;will-change:transform;background-color:var(--b1-col);border-radius:75% 90%;animation:12s ease-in-out infinite blobSlide1;position:absolute;top:13%;left:-55%;transform:rotate(63deg)}@keyframes blobSlide1{0%,to{left:-55%;transform:rotate(63deg)}50%{left:-20%;transform:rotate(118deg)}}.hero__secton_mobile .h-inner .colour-holder #blob2{background-color:var(--b2-col);width:73%;height:70%;filter:blur(var(--blur-amount));will-change:transform;border-radius:90% 63%;animation:12s ease-in-out infinite blobSlide2;position:absolute;top:16%;left:15%}@keyframes blobSlide2{0%,to{top:-20%;transform:rotate(90deg)}50%{top:29%;transform:rotate(20deg)scale(1.2)}}.hero__secton_mobile .h-inner .colour-holder #blob3{width:68%;height:80%;filter:blur(calc(var(--blur-amount) + 20px));mix-blend-mode:difference;will-change:transform;background-color:var(--b3-col);border-radius:57% 40%;animation:8s ease-in-out infinite blobSlide3;position:absolute;top:23%;left:65%}@keyframes blobSlide3{0%,to{left:65%}50%{left:53%}}.hero__secton_mobile .h-inner .colour-holder #noiseLayer{filter:url(#noiseFilter)brightness(.8)contrast(.8);mix-blend-mode:soft-light;z-index:2;opacity:1;width:100%;height:100%;position:absolute;top:0;left:0}.main__text{z-index:2;justify-content:center;align-items:center;padding-bottom:110px;display:flex}.main__text .inner-text{max-width:var(--max-page-w)}.main__text h1{color:#649acf}.main__text h3{padding-top:32px}.main__text h4.tech-title{text-align:center;color:var(--deep-grey);padding-bottom:12px}.main__text h4.tech-items{text-align:center}.main__text .tech{padding-top:110px}.main__text .yes-icon{padding-right:20px;position:relative}.main__text .yes-icon:after{--size:10px;content:"";width:var(--size);height:var(--size);border-radius:50%;position:absolute;bottom:8px;right:13px}.main__text a{color:unset;text-underline-offset:3px;font-style:normal;text-decoration:underline;text-decoration-thickness:2px}.main__text a:hover{color:var(--blue)}@media (max-width:860px){.main__text{padding-bottom:60px}.main__text .fh1{color:var(--black)}.main__text .tech{padding-top:60px}.main__text a{text-decoration:none}.main__text .yes-icon:after{bottom:6px;right:10px}.main__text a:hover{color:initial}}@media (max-width:431px){.main__text .mob-l-break:after{content:"\a ";white-space:pre}}.projects__grid{background-color:var(--bg);z-index:5;padding-top:0;padding-bottom:var(--pm);flex-direction:column;align-items:center;display:flex;position:relative}.projects__grid .title-wrap{width:100%;max-width:var(--max-page-w)}.projects__grid .title-wrap .title{text-align:center;color:var(--deep-grey);padding-bottom:32px}.projects__grid .rows-wrap{max-width:var(--max-page-w);flex-direction:column;row-gap:20px;display:flex}.projects__grid .row{grid-template-columns:1fr 1fr 1fr;column-gap:20px;transition:all .45s ease-in-out;display:grid}.projects__grid .row:has(.project__card:first-child.active){grid-template-columns:2fr 1fr 1fr}.projects__grid .row:has(.project__card:nth-child(2).active){grid-template-columns:1fr 2fr 1fr}.projects__grid .row:has(.project__card:nth-child(3).active){grid-template-columns:1fr 1fr 2fr}@media (max-width:860px){.projects__grid{padding-bottom:10svh;padding-left:0;padding-right:0}.projects__grid .title-wrap{padding-left:32px}.projects__grid .title-wrap .title{text-align:left}.projects__grid .desktop{display:none}}.projects-mobile{width:100%;display:none}@media (max-width:860px){.projects-mobile{display:block}.projects-mobile .embla{overflow:hidden}.projects-mobile .embla__container{display:flex}.projects-mobile .embla__slide{flex:0 0 90%;min-width:0;margin-right:10px}.projects-mobile .embla__slide:first-child{padding-left:var(--pm)}.projects-mobile .embla__slide .project__card,.projects-mobile .embla__slide .project__card .aspectholder{min-height:438.5px}.projects-mobile .embla__slide .project__card .body .meta{flex-direction:column;align-items:flex-start;gap:25px}.projects-mobile .embla__slide .project__card .body .accordions-outer .accordion_row .accordion_body .inner{padding:16px 10px}.projects-mobile .embla__slide .project__card .body .accordions-outer .accordion_row .accordion_body .inner ul{padding-left:20px}.projects-mobile .embla__slide .project__card.active .write-up{max-height:550px}}.project__card{cursor:pointer;border:1px solid #d3d3d3;border-radius:9px;min-height:420px;overflow:hidden}.project__card .expand-project-btn{border-color:var(--deep-grey);border:none;width:25px;height:25px;padding:0;transition:all .3s ease-in-out;position:relative}.project__card .expand-project-btn span{font-size:20px;font-weight:200;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.project__card .expand-project-btn:hover{background-color:var(--hover-grey)}.project__card .project-title{color:var(--bg);transition:all .2s ease-in-out}.project__card .aspectholder{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.project__card .aspectholder .top{z-index:5;padding-top:var(--pm);justify-content:space-between;display:flex;position:relative}.project__card .aspectholder .colour-overlay{--blur-amount:75px;transform-origin:50%;background-color:#cecccc;width:100%;height:100%;transition:opacity .4s ease-in-out,height .3s ease-in-out,width .3s ease-in-out,top .3s ease-in-out,left .3s ease-in-out;position:absolute;top:0;left:0;overflow:hidden}.project__card .aspectholder .colour-overlay #blob1{background-color:var(--brand_colour);width:125%;height:50%;filter:blur(var(--blur-amount));mix-blend-mode:soft-light;will-change:transform;border-radius:75% 90%;position:absolute;top:25%;left:-15%;transform:rotate(19deg)}.project__card .aspectholder .colour-overlay #blob2{background-color:var(--brand_colour);width:70%;height:60%;filter:blur(var(--blur-amount));will-change:transform;border-radius:50% 33%;position:absolute;top:50%;left:20%}.project__card .aspectholder .colour-overlay #blob3{background-color:var(--brand_colour);width:25%;height:120%;filter:blur(var(--blur-amount));mix-blend-mode:overlay;will-change:transform;border-radius:45% 40%;position:absolute;top:23%;left:75%}.project__card .body{padding-top:30px;padding-bottom:var(--pm);flex-direction:column;flex-grow:1;display:flex}.project__card .body .paragraph{padding-bottom:10px}.project__card .body .meta{justify-content:space-between;align-items:flex-end;display:flex}.project__card .body .meta .info{flex-direction:column;gap:14px;display:flex}.project__card .body .link-wrap a{font-style:normal;font-weight:500}.project__card .body .link-wrap a:hover{color:var(--blue)}.project__card .body .tech-icons{align-items:start;gap:10px;display:flex}.project__card .body .tech-icons .sub-title{padding-right:5px}.project__card .body .icon_wrap{flex-direction:column;align-items:center;gap:6px;display:flex}.project__card .body .icon_wrap svg{width:35px;height:auto}.project__card .body .icon_wrap .fb{font-size:12px}.project__card .body .write-up{max-height:0;padding-bottom:30px;transition:all .2s ease-in-out;overflow:hidden}.project__card .body .write-up p:not(:last-child){padding-bottom:10px}.project__card .body .accordions-outer{flex-direction:column;gap:12px;padding-bottom:30px;display:flex}.project__card .body .accordions-outer .accordion_row{background-color:var(--grey);border-radius:6px;transition:all .3s ease-in-out}.project__card .body .accordions-outer .accordion_row:hover{background-color:var(--hover-grey)}.project__card .body .accordions-outer .accordion_row .accordion_title button{background-color:#0000;border:none;justify-content:space-between;width:100%;padding:10px;font-weight:390;display:flex}.project__card .body .accordions-outer .accordion_row .accordion_body{max-height:0;transition:all .3s ease-in-out;overflow:hidden}.project__card .body .accordions-outer .accordion_row .accordion_body .inner{padding:16px 24px}.project__card .body .accordions-outer .accordion_row .accordion_body ul{flex-direction:column;gap:8px;margin:0;display:flex}.project__card .body .accordions-outer .accordion_row.row-active{background-color:var(--grey)}.project__card .body .accordions-outer .accordion_row.row-active .accordion_body{max-height:var(--natural-height)}.project__card.active .colour-overlay{opacity:0;pointer-events:none;transition:all .3s ease-in-out .3s}.project__card.active .project-title{color:var(--black);transition:all .5s ease-in-out}.project__card.active .write-up{max-height:250px;transition:all .3s ease-in-out 50ms}.project__card.not-active .aspectholder{height:100%}@media (hover:hover) and (pointer:fine) and (min-width:860px){.project__card:hover .colour-overlay{width:120%;height:120%;top:-20%;left:-20%}}@media (max-width:860px){.project__card .body .accordions-outer .accordion_row:hover{background-color:var(--grey)}}.yes-icon{position:relative}.yes-icon:after{--size:10px;content:"";width:var(--size);height:var(--size);background:radial-gradient(circle at 3px 3px,#a5edaa,#0ea118);border-radius:50%;position:absolute;top:8px;right:13px}
.main-nav{z-index:10;width:100%;max-width:100%;position:fixed;top:0;left:0}.main-nav .inner{padding-top:var(--pm);justify-content:space-between;align-items:center;display:flex;position:relative}.main-nav .nav-btn{z-index:3;top:20px;right:var(--pm);cursor:pointer;border:1px solid var(--black);background-color:#0000;width:26px;height:26px;padding:0;transition:height .4s ease-in-out,width .4s ease-in-out,border-color .3s ease-in-out,background-color .3s ease-in-out;position:absolute}.main-nav .nav-btn:hover{border-color:var(--deep-grey);background-color:var(--grey)}.main-nav .nav-btn.is-active{cursor:ne-resize;background-color:var(--grey);width:35vw;height:35vw;max-height:95vh}.main-nav .nav-btn .open-info__icon{--plus-length:14px;height:var(--plus-length);width:var(--plus-length);display:flex;position:absolute;top:6px;right:6px}.main-nav .nav-btn .open-info__icon .line{background-color:var(--black);border-radius:200px;transition:all .42s ease-in-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.main-nav .nav-btn .open-info__icon .horizontal-line{height:2px;width:var(--plus-length)}.main-nav .nav-btn .open-info__icon .vertical-line{width:2px;height:var(--plus-length)}.main-nav .nav-btn .overlay-content{opacity:0;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.main-nav .nav-btn .overlay-content .overlay-inner .items{flex-direction:column;gap:7px;padding-top:13px;display:flex}.main-nav .nav-btn .overlay-content .overlay-inner .svgs-wrap{flex-direction:column;gap:7px;padding-top:25px;display:flex}.main-nav .nav-btn .overlay-content .overlay-inner .email-wrap{gap:8px;display:flex}.main-nav .nav-btn .overlay-content .overlay-inner .email-wrap object{position:relative;top:1px}.main-nav .nav-btn .overlay-content .overlay-inner .phone-wrap{gap:8px;display:flex}.main-nav .nav-btn .overlay-content .overlay-inner .phone-wrap object{position:relative;top:3px}.main-nav .nav-btn .overlay-content .overlay-inner .btns{gap:16px;padding-top:16px;display:flex}.main-nav .nav-btn .overlay-content .overlay-inner .btns button{align-items:flex-end;gap:4px;font-size:14px;font-weight:400;display:flex}.main-nav .nav-btn .overlay-content .overlay-inner .btns button:hover{background-color:var(--deep-grey);color:var(--white)}.main-nav .nav-btn.is-active{border-color:var(--deep-grey)}.main-nav .nav-btn.is-active .overlay-content{opacity:1;transition:all .3s ease-in-out .42s}.main-nav .nav-btn.is-active .vertical-line{opacity:0}.main-nav .modal-backdrop{opacity:0;pointer-events:none;background-color:#1b1b1b1c;width:100%;height:100%;transition:all .3s ease-in-out;position:fixed;top:0;left:0}@media (max-width:860px){.main-nav .nav-btn.is-active{width:calc(100vw - var(--pm)*2);height:calc(100vw - var(--pm)*2)}.main-nav .nav-btn .overlay-content .overlay-inner .btns button:hover{background-color:unset;color:unset}}
