@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8298327da6d5bcce-s.0vdai6er2bzon.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/44fac91e6f2d2b1b-s.3xwp9-ll1pnw_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2b402d8aebffd579-s.370ev4_4-yiay.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/a88409fdd7dc121c-s.41r31qmhr7_rd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/e8f2fbee2754df70-s.p.1gavkj72q9u43.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat Fallback;src:local(Arial);ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.0%;size-adjust:112.83%}.montserrat_c5a0b145-module__19wr9q__className{font-family:Montserrat,Montserrat Fallback;font-style:normal}.montserrat_c5a0b145-module__19wr9q__variable{--font-montserrat:"Montserrat", "Montserrat Fallback"}
@font-face{font-family:Courier Prime;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7f6e389592deb6d0-s.41kzji7o-jdsp.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-weight:400;font-display:swap;src:url(../media/87d3ffffac5dafea-s.p.1e8puyswpvmbr.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime;font-style:normal;font-weight:700;font-display:swap;src:url(../media/69c6d7b79c8b79fe-s.2lhqjbmzqepkg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Courier Prime;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5f440d3eea613716-s.p.15zaksznb5cf5.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Courier Prime Fallback;src:local(Arial);ascent-override:58.08%;descent-override:25.41%;line-gap-override:0.0%;size-adjust:134.5%}.courier_prime_3177d6b4-module__jEblza__className{font-family:Courier Prime,Courier Prime Fallback;font-style:normal}.courier_prime_3177d6b4-module__jEblza__variable{--font-courier:"Courier Prime", "Courier Prime Fallback"}
html{--clr-primary:#75759f;--clr-secondary:#fc562c;--clr-text-dark:#1f2937;--clr-text-neutral:#5d6579;--clr-text-light:#fff;--clr-divider:#75759f80;--clr-img-bg:#453f9d;--clr-text-bg:#f2f0fa;--fs-xs:.9rem;--fs-sm:1.125rem;--fs-regular:1.25rem;--fs-md:1.5rem;--fs-lg:2rem;--fs-xl:3rem;--fs-2xl:4.5rem;--fs-3xl:6rem;--fs-4xl:8rem;--spacing-2xs:.25rem;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:4.5rem;--spacing-3xl:6rem;--spacing-4xl:8rem;font-family:var(--font-montserrat);scroll-behavior:smooth;cursor:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'  width='40' height='48' viewport='0 0 100 100' style='fill:black;font-size:24px;'><text y='50%'>🖊️</text></svg>") 16 0,auto;scroll-padding-top:3.5rem}*,:before,:after{box-sizing:border-box}*{font:inherit;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent}body{min-height:100svh}img,picture,svg,video{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{text-wrap:balance}p{text-wrap:pretty;max-width:75ch}a{color:inherit;text-decoration:none}::selection{background-color:var(--clr-secondary);color:var(--clr-text-light)}.main{min-height:100svh;width:min(100% - var(--spacing-xl), var(--container-max,100ch));color:var(--clr-text-dark);grid-template-rows:auto 1fr auto;margin-inline:auto;display:grid}.header{padding-block:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}@media not (max-width:600px){.header{padding-block:var(--spacing-2xl)}}.nav-list{gap:var(--spacing-xs);text-transform:uppercase;list-style:none;display:flex}@media not (max-width:600px){.nav-list{font-size:var(--fs-regular);gap:var(--spacing-md)}}.nav-item{padding-block-end:var(--spacing-2xs);position:relative}.nav-item:before{content:"";background-color:var(--clr-text-dark);transform-origin:100% 100%;height:1px;transition:transform .3s;position:absolute;inset:auto 0 0;transform:scaleX(0)}.nav-item:hover:before{transform-origin:0 100%;transform:scaleX(1)}.logo{font-size:var(--fs-lg);color:var(--clr-text-light);background-color:var(--clr-text-dark);border-bottom-right-radius:.8rem .6rem;padding:.1em 0 0 .5em;font-weight:300}.logo-j{display:inline-block;transform:translate(-.35em)}.intro{margin-block:var(--spacing-2xl) 0}@media not (max-width:600px){.intro{margin-block:var(--spacing-3xl) var(--spacing-lg);overflow:clip}}.intro-title{font-size:var(--fs-2xl);text-align:right;margin-block-end:var(--spacing-md);font-weight:600}@media not (max-width:600px){.intro-title{font-size:var(--fs-3xl)}}.intro-subtitle{font-size:var(--fs-xl);font-family:var(--font-courier);color:var(--clr-text-light);-webkit-text-stroke:var(--text-stroke-width,1px) var(--clr-text-dark)}@media not (max-width:600px){.intro-subtitle{-webkit-text-stroke:var(--text-stroke-width,2px) var(--clr-text-dark);font-size:var(--fs-2xl);padding-inline:var(--spacing-md);padding-block-start:var(--spacing-2xs);display:inline-block;position:relative}.intro-subtitle:before{content:"";background-color:var(--clr-secondary);z-index:-1;transform-origin:100% 100%;transition:transform .3s;position:absolute;inset:0;transform:scaleX(0)}.intro-subtitle:after{content:"";background-color:var(--clr-text-dark);width:100%;height:2px;margin:auto;position:absolute;inset:0;transform:translate(100%)}.intro-subtitle:hover:before{transform-origin:0 100%;transform:scaleX(1)}}.intro-image-container{max-width:490px;height:400px;margin-block:var(--spacing-3xl);clip-path:polygon(0% 10%,90% 0%,65% 100%,0% 90%);position:relative}@media (max-width:768px){.intro-image-container{clip-path:polygon(0% 10%,100% 0%,75% 100%,0% 90%)}}.intro-image-container:after{content:"";background-color:var(--clr-img-bg);border-left:1px solid var(--clr-text-light);mix-blend-mode:lighten;position:absolute;inset:0}.intro-image{object-fit:cover;filter:brightness(130%)grayscale();position:relative}.about{margin-block-end:var(--spacing-3xl)}.about p{font-size:var(--fs-regular);max-width:50ch;margin-inline-start:auto;line-height:1.5}@media not (max-width:600px){.about p{font-size:var(--fs-md)}}.about p:not(:last-of-type){margin-block-end:var(--spacing-md)}.footer{justify-content:space-between;align-items:center;row-gap:var(--spacing-md);color:var(--clr-primary);padding-block:var(--spacing-xl) var(--spacing-2xl);flex-wrap:wrap;display:flex}@media not (max-width:600px){.footer{padding-block:var(--spacing-3xl) var(--spacing-4xl);flex-direction:row;justify-content:space-between}}.footer-name{font-size:var(--fs-xs);order:2}@media not (max-width:600px){.footer-name{font-size:var(--fs-sm);order:1}}.footer-links{gap:var(--spacing-md);order:1;width:100%;list-style:none;display:flex}@media not (max-width:600px){.footer-links{order:3;width:auto}}.footer-links a{display:block}.click-area{position:relative}.click-area:after{content:"";position:absolute;inset:-1.2rem -.75rem -1rem}.footer-icon{transition:transform .3s;position:relative}.footer-icon:hover,.footer-icon:focus-visible{transition:transform .2s;transform:translateY(-.1rem)scale(1.2)}.resume{align-items:center;gap:var(--spacing-xs);font-size:var(--fs-xs);order:3;display:flex}@media not (max-width:600px){.resume{font-size:var(--fs-sm);order:2}}.resume>img{transition:transform .4s}.resume:hover>img,.resume:focus-visible>img{transition:transform .3s;transform:rotate(360deg)}.projects{margin-block:var(--spacing-xl) var(--spacing-2xl);font-size:var(--fs-md)}.projects ul{cursor:pointer;list-style:none}.projects li{padding-block:var(--spacing-md);border-block-start:1px solid var(--clr-text-dark)}.projects li:last-of-type{border-block-end:1px solid var(--clr-text-dark)}.projects li p{text-transform:uppercase;font-weight:500}.projects li span{font-size:var(--fs-sm)}@media not (max-width:600px){.projects li span{font-size:var(--fs-md)}}@media not (max-width:600px){.projects li{justify-content:space-between;gap:var(--spacing-md);padding-block:var(--spacing-lg);align-items:center;display:flex}.projects li>*{transition:all .3s}}.projects h2{padding-block:var(--spacing-md);font-size:var(--fs-sm);text-transform:uppercase}@media not (max-width:600px){.projects h2{font-size:var(--fs-md);padding-block:var(--spacing-lg)}}@media not (max-width:600px){.projects{margin-block:var(--spacing-2xl) var(--spacing-3xl);font-size:var(--fs-lg)}.projects li:hover,.projects li:focus-visible{background-color:var(--clr-text-bg)}:is(.projects li:hover,.projects li:focus-visible)>*{padding-inline:1.5rem;transition:all .2s}}.dialog{--shadow-color:240deg 17% 32%;cursor:auto;padding:var(--spacing-sm) var(--spacing-md) var(--spacing-lg);box-shadow:.3px .5px .7px hsl(var(--shadow-color) / .36), .8px 1.6px 2px -.8px hsl(var(--shadow-color) / .36), 2.1px 4.1px 5.2px -1.7px hsl(var(--shadow-color) / .36), 5px 10px 12.6px -2.5px hsl(var(--shadow-color) / .36);font-size:var(--fs-sm);border:0;margin:auto;line-height:1.5;position:fixed;inset:0}.dialog button{cursor:pointer;background-color:#0000;border:none;align-self:flex-start}.dialog .close{aspect-ratio:1;width:1.8rem;position:relative}.dialog .close:after,.dialog .close:before{content:"";background-color:var(--clr-secondary);width:6px;margin:auto;position:absolute;inset:0;transform:rotate(45deg)}.dialog .close:after{transform:rotate(-45deg)}:is(.dialog .close:hover,.dialog .close:focus-visible):after,:is(.dialog .close:hover,.dialog .close:focus-visible):before{background-color:var(--clr-primary);transition:background-color .2s}.dialog header{justify-content:space-between;align-items:center;display:flex}.dialog h2{max-width:none;font-size:var(--fs-lg);margin-block:var(--spacing-md) var(--spacing-lg);padding:0;font-weight:600;line-height:1.1}.dialog::backdrop{background:linear-gradient(to bottom right, var(--clr-text-light), var(--clr-primary));opacity:.5}@media not (max-width:600px){.dialog{padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-2xl)}.dialog h2{font-size:var(--fs-xl);max-width:30ch}.dialog .close{width:2rem}}.dialog-content{gap:var(--spacing-md);grid-template-columns:1fr;display:grid}.dialog-content h3{margin-block:var(--spacing-xs);background-color:var(--clr-text-bg);padding:var(--spacing-xs) var(--spacing-sm) var(--spacing-2xs);font-family:var(--font-courier);font-weight:500;font-size:var(--fs-regular)}@media not (max-width:600px){.dialog-content{gap:var(--spacing-xl);grid-template-columns:300px fit-content(50ch)}}.dialog-content-details{gap:var(--spacing-lg);display:grid}.dialog-content-details .project-link{color:var(--clr-secondary);margin-block-start:var(--spacing-sm);text-decoration:underline;display:inline-block}.dialog-content-details .project-link:hover,.dialog-content-details .project-link:focus-visible{color:var(--clr-text-dark)}.dialog-content-description p{margin-block:var(--spacing-xs) var(--spacing-sm)}.spinner{margin:var(--spacing-4xl) auto 0;aspect-ratio:1;width:2.5rem;position:relative}.spinner:before,.spinner:after{content:"";background-color:var(--clr-primary);opacity:.6;border-radius:50%;animation:2s ease-in-out infinite bounce;position:absolute;inset:0}.spinner:after{animation-delay:-1s}@keyframes bounce{0%,to{transform:scale(0)}50%{transform:scale(1)}}
