#root,.root,body,html{-webkit-overflow-scrolling:touch;height:100vh;margin:0;overflow:hidden auto;scrollbar-gutter:stable}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#25232f;background-image:repeating-linear-gradient(180deg,#ffffff08 1px,#0000 5px);background-size:100% 8px;color:#fff;font-family:Montserrat,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14.5px;margin:0;text-align:center}a,a:link,a:visited{text-decoration:none}a:link,a:visited{color:#f5f5f5;transition:all .2s ease-in-out}a:hover{color:#f5e0f5;text-shadow:0 0 5px #f6d1f6,0 0 10px #fadefa,0 0 15px #f5b2f5}body,html{overflow-y:scroll;scrollbar-width:none}body::-webkit-scrollbar{height:0;width:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}img{height:100%;width:100%}hr{background-color:#494369;border:none;color:#494369;height:1.5px}pre{white-space:pre-wrap}button{-webkit-appearance:none;appearance:none;border:none;border-radius:6px;box-shadow:0 0 10px #febef1;color:#3c3c3c;cursor:pointer;font-family:Montserrat,sans-serif;letter-spacing:.2em;line-height:100%;margin:15px 0;opacity:.95;outline:none;padding:12px 24px;transition:all .3s ease}button:hover{box-shadow:0 0 10px #fb52d9,0 0 20px #fc88e5;opacity:1;transform:scale(1.03)}button:active{box-shadow:0 0 10px #ff00cc80;transform:scale(.98)}@media only screen and (max-width:420px){button{margin:7px 3px}}input{-webkit-appearance:none;appearance:none;background:none;border:none;border-radius:3px;cursor:pointer;font-family:Montserrat,sans-serif;letter-spacing:.2em;line-height:100%;margin:15px 0;opacity:.9;outline:none;padding:10px 0;transition:opacity .3s ease;width:20vw}*{caret-color:#0000}.app{min-height:94vh;padding-top:6vh}.left-align{text-align:left}.underlined{text-decoration:underline}.link-coloured{color:#fe4b78}.small-link{text-shadow:0 0 10px #fe4b78,0 0 20px #fe4b78}.small-link,.small-link:link{color:#fe4b78!important}.small-link:visited{color:#e90367!important}.small-link:hover{color:#ff0e3d!important;text-decoration:underline;text-shadow:0 0 10px #ff1493,0 0 20px #ff1493,0 0 30px #ff69b4,0 0 40px #ff69b4,0 0 70px #ff1493}.sub-title{font-size:17px}.footer{color:#d4d4d4;margin-bottom:10px;margin-top:30px}.footer hr{display:block;width:100%}.footer div{align-items:center;display:flex;justify-content:center;min-height:50px}.page-header{font-size:x-large;height:8vh}.disabled{cursor:default;opacity:.5;pointer-events:none}.overlay{background:#00000080;height:100%;left:0;position:fixed;top:0;width:100%}.overlay svg{display:block;height:auto;opacity:1;position:absolute;right:20px;top:20px;width:50px}.overlay-container{align-items:center;animation:fade-in .3s ease forwards;display:flex;inset:0;justify-content:center;position:fixed;z-index:99}.overlay-content{animation:grow-in .4s ease forwards;height:auto;max-height:80vh;max-width:50vw;opacity:1;overflow:hidden;width:auto;z-index:100}.switch-button{background-color:#37324f;box-shadow:none;color:#fff;margin:5px;padding:9px 18px;transition:transform .3s ease;width:-webkit-fit-content;width:fit-content;&:hover{box-shadow:none}&:disabled{background-color:#4b446d}}.switch-button-container{background-color:#37324f;border-radius:6px;left:50%;margin:8px 0 15px;position:relative;transform:translate(-50%);width:-webkit-fit-content;width:fit-content}.switch-button-container,.tag-holder{height:-webkit-fit-content;height:fit-content}.tag-holder{padding:10px 5px}.tag{border-radius:25px;display:inline-block;filter:brightness(2);margin:3px;padding:6px 10px}.tag.blue{border:2px solid #00b0ff;box-shadow:0 0 2px #00b0ff;color:#00b0ff}.tag.red{border:2px solid #fd0f17;box-shadow:0 0 2px #fd0f17;color:#fd0f17}.tag.green{border:2px solid #00ff2f;box-shadow:0 0 2px #00ff2f;color:#00ff2f}.tag.purple{border:2px solid #d900ff;box-shadow:0 0 2px #d900ff;color:#d900ff}.tag.yellow{border:2px solid #fff800;box-shadow:0 0 2px #fff800;color:#fff800}.tag.orange{border:2px solid #e65000;box-shadow:0 0 2px #e65000;color:#e65000}@media only screen and (max-width:600px){.overlay-content{width:60%}}@media only screen and (max-width:310px){.switch-button-container{width:-webkit-min-content;width:min-content}.overlay svg{height:24px;width:24px}}.none{display:none}@keyframes fade-in{0%{background:rgb(0 0 0 0)}to{background:#00000080}}@keyframes grow-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.gallery-page{padding-bottom:50px}.image-category{max-width:1440px;position:relative}.image-category hr{width:84%}.image-row{grid-gap:20px;align-items:stretch;border-spacing:10px;display:grid;gap:20px;grid-template-columns:repeat(4,1fr);margin-left:7%;margin-right:7%;overflow:hidden;padding-right:0;table-layout:fixed;text-align:left;white-space:nowrap;width:86%}.scoll-pane::-webkit-scrollbar{display:none}.image-column{align-items:center;background-color:#464060;border-radius:5px;display:flex;height:150px;justify-content:center;margin:15px;object-fit:contain;padding:15px;transform-origin:center center;transition:background-color .2s ease;width:auto}.image-column:hover{background-color:#37324f}.image-column img{height:100%;object-fit:contain;padding:5px;width:100%}.art-subtitle{font-size:large;margin-left:7%;margin-top:1%;padding:5px;text-align:left;text-decoration:none}.minimise{height:0;width:0}.left-button,.right-button{display:block;position:absolute;top:50%;transform:translateY(-30%);z-index:2}.right-button{right:7%}.left-button{left:7%}.left-button svg,.right-button svg{opacity:.8}@media only screen and (max-width:600px){.image-column{padding:6%}.image-row{padding-left:0}}.mess-format{height:auto;position:absolute;width:10%}.mess-format img{padding:10px;width:90%}.mess-format-animate{position:absolute;width:10%}.mess-format-animate img{animation:border-dance 2s linear infinite;padding:10px;width:90%}.mess-format img:hover,.mess-format-animate img{background:linear-gradient(90deg,#d30367 50%,#0000 0),linear-gradient(90deg,#d30367 50%,#0000 0),linear-gradient(0deg,#d30367 50%,#0000 0),linear-gradient(0deg,#d30367 50%,#0000 0);background-position:0 0,100% 100%,0 100%,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:16px 4px,16px 4px,4px 16px,4px 16px}@keyframes border-dance{0%{background-position:0 0,100% 100%,0 100%,100% 0}to{background-position:100% 0,0 100%,0 0,100% 100%}}.canvas{height:35%;padding-left:10%;position:fixed;width:80%}.art-table-too-short{display:none}@media only screen and (max-width:400px){.mess-format{width:20%}}@media only screen and (max-height:450px){.table-page{display:none}.art-table-too-short{display:block}}@media only screen and (max-width:1000px){.image-row{gap:5px;grid-template-columns:repeat(2,1fr)}.image-column{height:auto}}button:disabled{box-shadow:none;transform:none}.back-button,.small-back-button{display:none;left:4%;margin-top:1px;position:absolute;z-index:999}.small-button-container{text-align:left}.home-link{display:none;left:4%;margin-top:1px;position:relative;top:0}@media only screen and (max-width:520px){.back-button{display:none}.small-back-button{display:inline-block;padding:5px 10px}.home-link{display:block}}.crumb-holder{left:4%;position:relative;text-align:left;width:40%}.breadcrumbs{display:inline-block;left:4%;margin-top:1px;position:absolute;z-index:98}@media only screen and (max-width:520px){.breadcrumbs{display:none}}.charts{margin-top:20px}.chart{left:10%;position:relative;width:80%}.too-small-charts{display:none;padding:10vw 3vw 3vw}@media (max-width:800px){.chart-intro{padding-top:5vw}}@media (max-width:650px){.too-small-charts{display:block}.chart-container{display:none}}.spinner{animation:rotation 1s linear infinite;border:5px solid #535353;border-bottom-color:#ff3d00;border-radius:50%;box-sizing:border-box;display:inline-block;height:48px;left:calc(50% - 12px);position:absolute;top:calc(50% - 48px);width:48px;z-index:9}@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.chart-loaded{display:none}.cv-page{margin:0 auto;max-width:50rem;min-height:40vh;padding-bottom:100px;text-align:left}.cv-page-links{height:4vh;vertical-align:middle}.cv-page-links,.cv-title{text-align:center}.cv-page-links a img{aspect-ratio:1;height:1.5vh;width:1.5vh}.download-image{width:10px}.safari-cv,.too-small-cv{display:none}.cv-skills-list{text-align:left}.cv-skills-lists{display:grid;grid-template-columns:1fr 1fr}.cv .tag-holder{padding:4px 2px 2px;text-align:left}.cv ul li{padding:2px 0}.cv-education-instance-subtitle,.cv-education-instance-title,.cv-experience-job-subtitle,.cv-experience-job-title{align-items:center;display:flex;justify-content:space-between}.cv-education-instance-subtitle,.cv-experience-job-subtitle{font-style:italic}.cv-experience div hr{margin:10px}.cv-experience-job ul{margin:.5rem}.cv-education-instance-title span,.cv-experience-job-subtitle span,.cv-experience-job-title span{padding:2px 10px}.cv-education-instance-subtitle span:last-of-type,.cv-education-instance-title span:last-of-type,.cv-experience-job-subtitle span:last-of-type,.cv-experience-job-title span:last-of-type{text-align:right}.cv-education-instance,.cv-experience-job{padding-bottom:1rem}.cv-education-instance-title{padding:2px 0}.cv-education-instance-subtitle{padding:6px 6px 2px;text-align:left}.cv-education-instance-info{padding:3px 20px}.cv-education-instance-info ul{margin:.5rem .5rem .5rem calc(.5rem - 20px)}.cv-experience-job-info{margin:0}.cv-education div hr{margin:10px}.cv-projects-info{padding:0 20px}@media only screen and (max-width:500px){.pdf-viewer{display:none}.too-small-cv{display:block}.cv{padding:0 10px}ul{margin-left:0;padding-left:1rem}}@media (max-aspect-ratio:3/2){.pdf-viewer{height:100vw}}h2{padding-left:10px;text-align:left;text-transform:uppercase}.link-title{font-size:x-large}.links-list-container{display:grid;grid-template-columns:1fr 1fr;padding:7vh 10%}.links-container{display:inline-block;font-size:larger;text-align:left}.link{padding:4vh 0;text-shadow:0 0 10px #fe4b78,0 0 20px #fe4b78}.link a{color:#fe4b78}.link:visited{color:#d30367}.link:hover{color:#ff0e3d;text-decoration:underline}.link a:hover{text-shadow:0 0 10px #ff1493,0 0 20px #ff1493,0 0 30px #ff69b4,0 0 40px #ff69b4,0 0 70px #ff1493}@media only screen and (max-width:400px){.links-list-container{grid-template-columns:1fr;padding:7vh 20%}}.title-container{padding:10vh 0;position:static;-webkit-user-select:none;user-select:none}@font-face{font-display:swap;font-family:Seven Segment;font-style:normal;font-weight:400;src:url(/static/media/SevenSegmentRegular.cdfd97be9a6f1c224b76.woff2) format("woff2")}.search-links-left,.search-links-right,.title{font-family:Seven Segment,Montserrat,sans-serif;letter-spacing:4px;a{display:inline-block}a:hover{text-shadow:0 0 5px #f9f,0 0 10px #f6f,0 0 20px #f3f,0 0 40px #f0f,0 0 80px #f0f;transform:scale(1.05);transition:color .3s ease,transform .3s ease}}.title{display:block;font-size:4.5vw;padding-left:7%;position:static;text-align:left;text-decoration:none;width:auto}.search-links-left,.search-links-right{display:inline-block;font-size:2.5vw;position:absolute}.search-links-left{left:0;padding-left:7%;text-align:left}.search-links-right{padding-right:7%;padding-top:5vh;right:0;text-align:right}.search-links-left div,.search-links-right div{padding-bottom:5vh}.art-holder,.big-ascii-art{position:absolute;right:0;top:0;transform:rotate(180deg)}.ascii-art{position:relative}.big-ascii-art{font-size:3px;white-space:pre-line}.tag-line{display:block;font-size:1.2vw;font-style:italic;padding-left:8%;position:relative;text-align:left;text-decoration:none;width:auto}.speech-bubble{background:#c0baba;border-radius:.5em;box-shadow:0 2px 6px #0000001a;font-size:1vw;left:20%;margin:20px;max-width:250px;padding:15px 30px;position:relative;.upright{transform:rotate(-180deg)!important}.small-link:hover{color:#ff0e3d!important;text-decoration:underline;text-shadow:0 0 20px #ff1493,0 0 32px #ff1493}}.speech-bubble:after{border:20px solid #0000;border-bottom:0;border-left:0;border-top-color:#a49d9d;bottom:0;content:"";height:0;left:30%;margin-bottom:-20px;margin-left:-10px;position:absolute;width:0}.road-container{bottom:0;left:50%;overflow:hidden;position:absolute;transform:translate(calc(-50% - 1rem));z-index:-1}.road-animation{-webkit-line-clamp:50;line-clamp:50;background:#0000;line-height:.8rem;min-width:100%;text-align:left;text-overflow:clip;white-space:pre}.feeling-lucky{font-size:large}.feeling-lucky-inline{display:none}@media only screen and (max-width:1250px){.speech-bubble:after{left:30%}}@media only screen and (max-width:900px){.speech-bubble:after{left:30%}.search-links-right{padding-top:10vh}}@media only screen and (max-width:750px){.road-animation{line-height:10px}.road-container{transform:translate(calc(-50% - .5rem)) scaleX(.6);width:43rem}.speech-bubble:after{left:50%}.speech-bubble{font-size:1.5vw;left:0;padding:8px 16px}.ascii-art{font-size:xx-small}}@media only screen and (max-width:600px){.tag-line{font-size:2vw}.title{font-size:6.5vw}.title-container{padding:3vh 0}.search-links-left,.search-links-right{font-size:4vw;letter-spacing:2px;padding-top:5vw}}@media only screen and (max-width:500px){.art-holder,.big-ascii-art{display:none}.feeling-lucky-inline{display:block}}.myself{left:50%;max-width:1000px;position:relative;transform:translate(-50%);.text-holder{padding:1.5vh 7% 1vh;text-align:left}.link-holder a{text-shadow:0 0 8px #f4e8f8,0 0 12px #f9daf9}.link-holder a:hover{text-shadow:0 0 10px #efdaf6,0 0 15px #fabbfa,0 0 25px #f7a4f7,0 0 40px #f96df9}@media only screen and (max-width:400px){.link-holder{padding-top:10vw}}.page-header{height:auto;padding:5px}}@media only screen and (max-width:400px){.myself{padding-bottom:10vh}}.subsub-title{text-transform:uppercase}body,html{height:100%;overflow-y:auto}figcaption{text-align:center}.disssub-title{font-size:18px}.diss-inline-structure,.inline-button{display:inline-block;padding:1vw;vertical-align:top}.diss-inline-structure{width:40%}@media only screen and (max-width:1100px){.disssub-title{padding-top:10vw}}@media only screen and (max-width:600px){.diss-inline-structure{display:block;left:5%;position:-webkit-sticky;position:sticky;width:90%}}.diss-container{padding-bottom:10px;width:100%}.images-container{width:100%}.image-choice{display:inline-block;font-size:12px;height:16vw;padding:6px;width:16vw}.image-choice-image{height:90%;padding:5%;width:90%}.image-choice-image:hover{background:linear-gradient(90deg,#d30367 50%,#0000 0),linear-gradient(90deg,#d30367 50%,#0000 0),linear-gradient(0deg,#d30367 50%,#0000 0),linear-gradient(0deg,#d30367 50%,#0000 0);background-position:0 0,100% 100%,0 100%,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:16px 4px,16px 4px,4px 16px,4px 16px}.inline-input{display:inline-block;font-size:12px;height:15vw;padding:1% 4% 4% 3%;width:15vw}.input-image{height:100%;width:100%}.input-browse{border-radius:0;font-size:11px;margin:0;padding:2px}.submit-button{font-size:11px;margin:12px 0 5px;padding:5px 15px;position:relative}.small-text{font-size:10px;font-style:italic;padding:10px 0}.tick{bottom:-.5vw;display:none;height:1.5vw;left:1.6vw;position:relative;width:1.5vw}.inline{display:inline-block}.hidden{display:none}.diss-tool-text{left:27.5%;position:relative;text-align:left;width:45%}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.diss-too-small{display:none}@media only screen and (max-width:900px){.diss-container{display:none}.diss-too-small{display:none;padding:20px}}.work-in-progress{color:#b4b3b3;font-size:xx-large;left:50vw;position:fixed;top:45vh;transform:translate(-50%,-50%) rotate(30deg) scale(2)}h4{font-style:normal;margin:5px 0}.diss-loader{top:0!important}.large-projects-subpage,.small-projects-subpage{margin:0 auto 100px;max-width:1100px;position:relative}.project-title{height:4vh;padding:1% 0 1% 10%;text-align:left;text-decoration:underline}.project-card-title,.project-title{font-size:large}.limited-hr{width:80%}.large-projects-subpage hr{margin-bottom:25px}.project-inline-structure{display:inline-block;padding:1vw;vertical-align:top;width:40%}.large-project-inline-structure,.wide-project-inline-structure{display:inline-block;padding:1vw;vertical-align:top;width:54%}.wide-project-inline-structure{height:60%}.medium-project-inline-structure{width:30%}.medium-project-inline-structure,.tight-project-inline-structure{display:inline-block;padding:.5vw;text-align:left;vertical-align:top}.tight-project-inline-structure{width:23%}.top-padding{padding-top:2vw}.inline-list{display:inline-block;padding:1% 2% 1% 5%;vertical-align:top;width:40%}@media only screen and (max-width:600px){.inline-list{display:block;width:auto}}.project-grid{grid-gap:20px;align-items:stretch;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.project-grid-element{background-color:#37324f33;border-radius:25px;box-shadow:0 10px 20px #00000080;display:flex;flex-direction:column;font-size:small;height:86%;margin:0 5%;padding:8% 3%;transition:all .2s ease-in-out}.large-projects-subpage .project-grid-element:hover{transform:scale(1.05);z-index:1}.large-projects-subpage .project-grid-element a:hover{color:inherit;text-shadow:none}.large-projects-subpage .project-grid-element:active{transform:scale(.95)}.project-grid .project-title{padding:0;text-align:center}@media only screen and (max-width:700px){.project-grid{grid-template-columns:1fr 1fr}}@media only screen and (max-width:500px){.project-grid{grid-template-columns:1fr}}.top-tracks-image{height:60%;width:60%}.aspect-class{aspect-ratio:7/5}.no-aspect{aspect-ratio:unset}.aspect-class img{height:100%;width:100%}.aspect-class video{max-height:100%;max-width:100%}.laptop{width:30%;.aspect-class{aspect-ratio:16/9;margin:5%;padding:0}}.snow-text,.storey-text{padding-left:8%;padding-right:8%;text-align:left}.mask{background-color:#232323;height:100%;left:0;opacity:0;position:fixed;top:0;width:100%;z-index:-1}@media only screen and (max-width:600px){.project-inline-structure{display:block;left:5%;position:relative;width:90%}.tight-project-inline-structure,.wide-project-inline-structure{display:block;padding-left:2.5%;position:relative;width:95%}.medium-project-inline-structure{width:60%}.large-project-inline-structure{display:block;padding-left:2.5%;position:relative;width:95%}.indent-mask{display:block;left:5%;position:relative;width:90%}}.white-border{outline:1px solid #fff}.squarepaint,.zachlang img{max-height:68vh}.zachlang img{left:50%;position:relative;transform:translate(-50%);width:auto}.card-gradient{align-items:center;aspect-ratio:1;border-radius:20px;color:#fff;display:flex;justify-content:center;margin:5% auto;text-align:center;width:60%}.card-gradient.turquoise{background:linear-gradient(90deg,#2a7b9b,#57c785 50%,#eddd53)}.card-gradient.sunset{background:linear-gradient(90deg,#833ab4,#fd1d1d 50%,#fcb045)}.card-gradient.grey{background:linear-gradient(90deg,#b8b6b9,#5c5959 50%,#3d3d3c)}.card-gradient.chrome{background:linear-gradient(90deg,#e0e40e,#52bd31 50%,#f05731)}.card-gradient.green{background:linear-gradient(90deg,#47d13b,#48923b 50%,#042406)}.card-gradient.pink{background:linear-gradient(90deg,#5013f7,#b154e7 50%,#e476b6)}.card-gradient svg{height:30%;width:30%}.small-repo-link{margin-bottom:7px}.sudowoodo{height:100%;width:100%}.small-projects-subpage hr{margin-bottom:15px}.fruit-lips-container{height:80%;position:fixed;top:15%;width:100%}.llm-compare-container,.squares-container{height:100%;overflow:hidden;position:fixed;top:0;touch-action:none;width:100%;z-index:1000}
/*# sourceMappingURL=main.dbcda441.css.map*/