@import "https://fonts.googleapis.com/css2?family=Lexend+Deca&family=Livvic&display=swap";
*{box-sizing:border-box;margin:0;padding:0}::selection{color:#000;background:#fff}html,body{--dim:206vmin;--dim-button:90px;width:100%;min-height:100%;font-family:Lexend Deca,sans-serif;overflow-x:hidden}html img,body img{pointer-events:none}:focus-visible{outline-offset:4px;outline:3px solid #fff}.skip-link{color:#fff;z-index:20;background:#102a3a;border-radius:.5rem;padding:.75rem 1rem;transition:transform .2s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}h1,h2,p,li{font-family:Lexend Deca,sans-serif}a:visited{color:#fff}.portfolio .cards .mini-card,.holder,.holder .card .sidebar{align-items:center;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.intro-decoration,.enter{display:none!important}}.holder{color:#fff;background-image:linear-gradient(#37ed5399,#0ce3f299 60%),url(https://a.storyblok.com/f/105639/4096x2007/b8544c7d0d/sky.png);flex-direction:column;justify-content:center;width:100%;min-height:100vh;position:relative;overflow-x:hidden}.holder .card{border-radius:10px;grid-template-columns:30% 70%;width:80vw;height:87vh;display:grid}@media only screen and (max-width:768px){.holder .card{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;width:90vw}}.holder .card .sidebar{background:#ffffff80;flex-direction:column;justify-content:center;min-height:100%;padding:0 2rem 1rem}@media only screen and (max-width:768px){.holder .card .sidebar{flex-direction:row;justify-content:space-evenly;height:12rem;min-height:0;padding:.5rem;overflow:visible}}.holder .card .sidebar .profile{text-align:center;justify-content:space-evenly;align-items:center;gap:.5rem;height:9rem;display:flex}@media only screen and (max-width:1100px){.holder .card .sidebar .profile{flex-direction:column;gap:.25rem}}@media only screen and (max-width:768px){.holder .card .sidebar .profile{flex-direction:column}}.holder .card .sidebar .profile .profile-img{border-radius:50%}@media only screen and (max-width:1100px){.holder .card .sidebar .profile .profile-img{width:4rem;height:4rem}}.holder .card .sidebar .profile .title{font-size:1.5rem}@media only screen and (max-width:1300px){.holder .card .sidebar .profile .title{font-size:1.25rem}}@media only screen and (max-width:1100px){.holder .card .sidebar .profile .title{font-size:1rem}}@media only screen and (max-width:768px){.holder .card .sidebar .profile .title{font-size:.9rem}}.holder .card .sidebar .profile .subtitle{font-family:Livvic,sans-serif}@media only screen and (max-width:1100px){.holder .card .sidebar .profile .subtitle{font-size:.75rem}}@media only screen and (max-width:768px){.holder .card .sidebar .profile .subtitle{font-size:.8rem}}.holder .card .sidebar .items{list-style:none}@media only screen and (max-width:768px){.holder .card .sidebar .items{display:flex}}@media only screen and (max-width:500px){.holder .card .sidebar .items{flex-direction:column}}.holder .card .sidebar .items .item{cursor:pointer;color:#fff;background:0 0;border-radius:1000px;align-items:center;gap:1rem;padding:.5rem;font-weight:700;text-decoration:none;display:flex}@media only screen and (max-width:768px){.holder .card .sidebar .items .item{text-align:center;justify-content:center;gap:0;padding:.5rem}}.holder .card .sidebar .items .item .icon{color:#109de880;font-size:2rem}@media only screen and (max-width:768px){.holder .card .sidebar .items .item .icon{display:none}}.holder .card .sidebar .items .item:hover,.holder .card .sidebar .items .item:active,.holder .card .sidebar .items .item:focus,.holder .card .sidebar .items .item.active{background:#fff3}.holder .card .sidebar .joke{cursor:pointer;white-space:pre-wrap;width:100%;max-height:6rem;color:inherit;font:inherit;text-align:left;background:linear-gradient(#37ed534d,#109de84d);border:0;border-radius:10px;grid-template-columns:70% 30%;align-items:center;gap:.5rem;margin-top:1rem;padding:1rem;display:grid;overflow:hidden}@media only screen and (max-width:1300px){.holder .card .sidebar .joke{grid-template-columns:60% 40%}}@media only screen and (max-width:1100px){.holder .card .sidebar .joke{grid-template-columns:1fr}}@media only screen and (max-width:768px){.holder .card .sidebar .joke{display:none}}.holder .card .sidebar .joke .icon{animation:2s linear infinite alternate rotate;transform:rotate(20deg)}@keyframes rotate{0%{transform:rotate(20deg)scale(1)}to{transform:rotate(30deg)scale(1.1)}}@media only screen and (max-width:1100px){.holder .card .sidebar .joke .icon{display:none}}.holder .card .sidebar .joke .text{font-size:.8rem}.holder .card .sidebar .joke:disabled{cursor:not-allowed;opacity:.75}.holder .card>.main-content{text-align:left;scrollbar-gutter:stable;background:#fff3;width:100%;height:100%;padding:2rem 5rem;position:relative;overflow-y:auto}@media only screen and (max-width:768px){.holder .card>.main-content{padding:2rem}}.holder .card .content-panel{scroll-margin-top:1rem;display:none}.holder .card .content-panel>div>.title{opacity:1}.holder .card .content-panel.active,.holder .card .content-panel:target{display:block}.holder .card .content-panel.active>div>.title,.holder .card .content-panel:target>div>.title{animation:.3s ease-out both panel-heading-enter}.holder .card>.main-content:has(.content-panel:target) .content-panel.active:not(:target){display:none}.holder footer{text-align:center;width:100%}.holder footer .rights{width:inherit;position:absolute;bottom:.1rem}@keyframes panel-heading-enter{0%{transform:translateY(.75rem)}to{transform:translateY(0)}}@keyframes anvil{0%{opacity:0;transform:scale(1)translateY(0);box-shadow:0 0 #f1f1f100}1%{opacity:0;transform:scale(.96)translateY(10px);box-shadow:0 0 #f1f1f100}to{opacity:1;transform:scale(1)translateY(0);box-shadow:0 0 500px #f1f1f100}}.popup-content{animation:.3s cubic-bezier(.38,.1,.36,.9) forwards anvil;color:#fff!important;text-align:center!important;background:linear-gradient(#37ed5399,#109de899)!important;border:none!important;border-radius:10px!important;padding:1rem!important;box-shadow:0 0 20px #ffffff80!important}.modal{flex-direction:column;align-items:center;gap:1rem;display:flex}.modal button{cursor:pointer;background:0 0;border:none}.modal button:hover{opacity:.9;transform:scale(.9)}.modal button{color:#16465e;font:inherit;background:#ffffffd9;border-radius:1000px;padding:.5rem 1rem}.about{width:90%}@media only screen and (max-width:768px){.about{width:100%}}.about .title{font-size:1.5rem}.about .mini-card{background:#fff6;border:3px solid #fff3;border-radius:30px;margin-top:2rem;padding:1.2rem}.about .mini-card .subtitle{margin-left:1.5rem}@media only screen and (max-width:768px){.about .mini-card .subtitle{margin:0 auto}}.about .mini-card .inner{grid-template-columns:30% 70%;align-items:center;margin-top:.5rem;display:grid;overflow:visible}@media only screen and (max-width:1300px){.about .mini-card .inner{grid-template-columns:40% 60%}}@media only screen and (max-width:1100px){.about .mini-card .inner{grid-template-columns:1fr 1fr}}@media only screen and (max-width:900px){.about .mini-card .inner{flex-direction:column;align-items:center;gap:1rem;display:flex}}.about .mini-card .inner .tag{object-fit:contain;width:10rem;height:7rem;animation:8s linear infinite alternate colours}@keyframes colours{0%{filter:hue-rotate()}to{filter:hue-rotate(90deg)}}.about .mini-card .inner .text .blog-link,.about .mini-card .inner .text .blog-link:visited{color:#fff}.about .mini-card .inner .text .blog-link:hover{color:#109de8}.about .mini-card .inner .socials{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;width:100%;height:100%;font-size:1.5rem;display:flex;overflow:visible}.about .mini-card .inner .socials .link{color:#fff;background:coral;border:2px solid #0000;border-radius:50%;padding:1rem;transition:transform .2s;display:flex}@media only screen and (max-width:768px){.about .mini-card .inner .socials .link{padding:.5rem}}.about .mini-card .inner .socials .link:first-child{background:#1778f2}.about .mini-card .inner .socials .link:nth-child(2){background:#0d66c2}.about .mini-card .inner .socials .link:nth-child(3){background:#1da1f2}.about .mini-card .inner .socials .link:nth-child(4){background:#f00075}.about .mini-card .inner .socials .link:nth-child(5){background:#f20604}.about .mini-card .inner .socials .link:nth-child(6){background:#000}.about .mini-card .inner .socials .link:focus,.about .mini-card .inner .socials .link:hover{transform:translateY(-1rem)}@media only screen and (max-width:768px){.about .mini-card .inner .socials .link:focus,.about .mini-card .inner .socials .link:hover{border:1px solid #fff;transform:translateY(0)}}.education .title{font-size:1.5rem}.education .timeline{margin-top:2rem}@media only screen and (max-width:1170px){.education .timeline{width:100%!important}}.education .timeline .date{font-weight:lighter}@media only screen and (max-width:1170px){.education .timeline .date{display:none}.education .timeline .round{margin-left:.3rem}.education .timeline .vertical-timeline-element-content{width:80%!important}}.experience .title{font-size:1.5rem}.experience .timeline{margin-top:2rem}.experience .timeline .vertical-timeline{padding:1rem!important;overflow:visible!important}.experience .timeline .vertical-timeline-element-icon{overflow:hidden}.experience .timeline .timeline-image{object-fit:contain}@media only screen and (max-width:1170px){.experience .timeline .timeline-image{width:2rem;height:2rem}}.experience .timeline .date{font-weight:lighter}@media only screen and (max-width:1170px){.experience .timeline .date{display:none}.experience .timeline .round{margin-left:.3rem}.experience .timeline{width:100%!important}.experience .timeline .vertical-timeline-element-content{width:80%!important}}.portfolio{width:100%}.portfolio .title{font-size:1.5rem}.portfolio .cards{flex-wrap:wrap;gap:2rem;display:flex}.portfolio .cards .mini-card{background:#fff6;border:3px solid #fff3;border-radius:30px;flex-direction:column;justify-content:flex-start;gap:1rem;width:100%;min-width:0;margin-top:2rem;padding:2rem}.portfolio .cards .mini-card a{color:#fff}.portfolio .cards .mini-card .lead{width:100%;min-width:0}.portfolio .cards .mini-card .lead .screenshot-holder{max-width:100%;margin:2rem 0;overflow:hidden}.portfolio .cards .mini-card .lead .screenshot-holder .screenshot{pointer-events:all;width:100%;max-width:100%;height:auto;transition:all 1s;display:block}.portfolio .cards .mini-card .lead .screenshot-holder .screenshot:hover{transform:scale(1.2)}.portfolio .cards .mini-card .lead .title{overflow-wrap:anywhere}@media only screen and (max-width:1023px){.portfolio .cards .mini-card .lead .title{font-size:1.2rem}}.portfolio .cards .mini-card .lead .text{padding-top:1rem}.portfolio .cards .mini-card .lead .text-g{text-align:center}.portfolio .cards .mini-card .lead a{color:#fff!important}.portfolio .cards .mini-card .icons{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.portfolio .cards .mini-card .icons .icon{color:#fffc;font-size:3rem;position:relative}.portfolio .cards .mini-card .icons .icon:after{content:attr(data-lang);color:#fff;opacity:0;pointer-events:none;z-index:5;background:linear-gradient(#37ed53e6,#109de8e6);border-radius:1rem;padding:1rem;transition:all 1s;position:absolute;left:0;box-shadow:0 0 10px #109de8b3}@media only screen and (max-width:768px){.portfolio .cards .mini-card .icons .icon:after{content:none}}.portfolio .cards .mini-card .icons .icon:after{white-space:nowrap;text-overflow:ellipsis;max-width:2.4rem;padding:.3rem;bottom:0;overflow:hidden;transform:translateY(-1rem)}@media only screen and (max-width:2560px){.portfolio .cards .mini-card .icons .icon:after{font-size:.7rem}}@media only screen and (max-width:1024px){.portfolio .cards .mini-card .icons .icon:after{font-size:.5rem}}.portfolio .cards .mini-card .icons .icon:hover:after{opacity:1;transform:translateY(0)}.tools .title{margin-bottom:2rem;font-size:1.5rem}.tools .main-content{flex-wrap:wrap;row-gap:1rem;width:100%;display:flex;background:0 0!important;padding:0!important}.tools .main-content a .tools-img{width:100%}.tools .main-content .tools-img .tools-img,.tools .main-content .tools-img{position:relative}.tools .main-content .tools-img .tools-img:after,.tools .main-content .tools-img:after{content:attr(data-tool);color:#fff;opacity:0;pointer-events:none;z-index:5;background:linear-gradient(#37ed53e6,#109de8e6);border-radius:1rem;padding:1rem;transition:all 1s;position:absolute;left:0;box-shadow:0 0 10px #109de8b3}@media only screen and (max-width:768px){.tools .main-content .tools-img .tools-img:after,.tools .main-content .tools-img:after{content:none}}.tools .main-content .tools-img .tools-img:after,.tools .main-content .tools-img:after{padding:.3rem;bottom:0;transform:translateY(-1rem)}@media only screen and (max-width:2560px){.tools .main-content .tools-img .tools-img:after,.tools .main-content .tools-img:after{font-size:2rem}}@media only screen and (max-width:1440px){.tools .main-content .tools-img .tools-img:after,.tools .main-content .tools-img:after{font-size:1.2rem}}@media only screen and (max-width:1024px){.tools .main-content .tools-img .tools-img:after,.tools .main-content .tools-img:after{font-size:.7rem}}.tools .main-content .tools-img .tools-img:hover,.tools .main-content .tools-img .tools-img:focus-visible,.tools .main-content .tools-img:hover,.tools .main-content .tools-img:focus-visible{transform:scale(.9)!important}.tools .main-content .tools-img .tools-img:hover:after,.tools .main-content .tools-img .tools-img:focus-visible:after,.tools .main-content .tools-img:hover:after,.tools .main-content .tools-img:focus-visible:after{opacity:1;transform:translateY(0)}.tools .main-content .tools-img{width:20%;transition:transform .2s}.tools .main-content .tools-img img{width:100%}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888}::-webkit-scrollbar-thumb:hover{background:#555}.body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(#37ed53,#109de8)}.body.intro-active:not(.intro-ready) .intro-decoration,.body.intro-active:not(.intro-ready) .enter{display:none}.body.intro-active.intro-ready:not(.intro-exiting) .content{opacity:0;visibility:hidden;pointer-events:none}.body main .circles{pointer-events:none;z-index:5;width:var(--dim);height:var(--dim);top:calc(50% - var(--dim)/2);left:calc(50% - var(--dim)/2);position:fixed}.body main .circles .circles__text{text-transform:uppercase;transform-origin:700px 700px;will-change:transform,opacity}.body main .circles .circles__text.circles__text--1{fill:#fffc;font-size:clamp(170px,25vmin,180px);font-weight:400;font-family:ivymode,sans-serif!important}.body main .circles .circles__text.circles__text--2{fill:#fffc;font-size:clamp(136px,17vmin,153px);font-weight:300;font-family:modesto-condensed,serif!important}.body main .circles .circles__text.circles__text--3{fill:#fffc;font-size:clamp(110px,13.5vmin,120px);font-weight:400;font-family:minerva-modern,sans-serif!important}.body main .circles .circles__text.circles__text--4{fill:#fffc;font-size:clamp(85px,9.5vmin,94px);font-weight:300;font-family:niagara,serif!important}.body main .content{text-align:center;opacity:1;flex-direction:column;justify-content:flex-start;align-items:center;display:flex;position:relative}@media screen and (min-width:53em){.body main .content{text-align:left;justify-content:center;height:100vh}}.body main .enter{width:var(--dim-button);height:var(--dim-button);left:calc(50% - var(--dim-button)/2);top:calc(50% - var(--dim-button)/2);font:"Lexend Deca",sans-serif;cursor:pointer;color:#504a44;opacity:0;overflow-x:unset;z-index:6;background:0 0;border:0;padding:0;font-weight:900;display:block;position:absolute}.body main .enter:focus-visible{outline-offset:6px;border-radius:50%;outline:4px solid #fff}.body main .enter .enter__bg{background:#fffc;border-radius:50%;width:100%;height:100%;position:absolute;top:0;left:0}.body main .enter .enter__text{color:#00dba7;place-content:center;font-size:3rem;display:grid;position:relative}@media screen and (min-width:53em){.body main .enter .enter__text{font-size:5rem}}.form .row{gap:1rem;display:flex}.form .input-group{flex-direction:column;display:flex}.form .input-group input,.form .input-group textarea{font:inherit;color:#fff;background:#d3d3d3b3;border:none;border-radius:30px;margin:.3rem 0 .5rem;padding:.5rem 1rem;box-shadow:0 0 6px 1px #37ed534d}.form .input-group input:hover,.form .input-group input:focus,.form .input-group textarea:hover,.form .input-group textarea:focus{box-shadow:0 0 6px 1px #109de84d}.form .input-group input:focus-visible,.form .input-group textarea:focus-visible{outline-offset:2px;outline:3px solid #fff}.form .input-group textarea{resize:none;min-height:5rem}.form .input-group input[type=submit]{cursor:pointer;background:#0003;transition:transform .4s}.form .input-group input[type=submit]:hover{transform:scale(.95)}.form .input-group input[type=submit]:disabled{cursor:wait;opacity:.65;transform:none}.form .form-status{min-height:1.5rem;font-size:.9rem;font-weight:700}.form .form-status--success{color:#e6ffea}.form .form-status--error{color:#ffe3e3}
