@font-face{font-family:Anton SC;src:url(/assets/Anton-Regular-DcVcLnRJ.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Antonio;src:url(/assets/Antonio-Thin-DG9vZSlu.ttf) format("truetype");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Antonio;src:url(/assets/Antonio-Light-BWpzybG9.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Antonio;src:url(/assets/Antonio-Regular-DgIyPBJl.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Antonio;src:url(/assets/Antonio-Medium-TvfM6epM.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Antonio;src:url(/assets/Antonio-SemiBold-BcStKusf.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Antonio;src:url(/assets/Antonio-Bold-jEDcaIAS.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--color-primary: #0A1116;--color-background: #F2F6FA;--color-overlay: #0a1116d2;--font-heading: "Anton SC", sans-serif;--font-body: "Antonio", sans-serif;--spacing-xs: .25vw;--spacing-xs-: -.25vw;--spacing-sm: .48vw;--spacing-sm-: -.48vw;--spacing-md: .5vw;--spacing-lg: .75vw;--spacing-xl: 1vw;--spacing-xxl: 1.3vw;--spacing-xxxl: 1.38vw;--border-width: .1vw;--border-offset: -.048vw;--container-width: 85.997vw;--header-height: 5.002vw;--hero-height: 11.242vw;--projects-height: 24.998vw;--font-size-xs: 1.25vw;--font-size-sm: 1.3vw;--font-size-md: 1.92vw;--font-size-lg: 2.5vw;--font-size-xl: 3.754vw;--font-size-hero: 13.056vw;--line-height-hero: 11.405vw;--picture-distance: 1vw;--picture-scale: 1.25;--half-column-width: calc(var(--container-width) / 8)}body{margin:0;padding:0;scrollbar-width:none;-ms-overflow-style:none;background-color:var(--color-background);overflow-x:hidden}body::-webkit-scrollbar{display:none}.bordered{outline:var(--border-width) solid var(--color-primary);outline-offset:var(--border-offset)}.container{margin-left:auto;margin-right:auto;width:var(--container-width)}.header,.footer{max-width:100%;height:var(--header-height);display:flex}.contact-info{flex:1;z-index:10;display:flex;flex-direction:column;justify-content:center;text-decoration:none}.contact-info:hover{cursor:pointer}.contact-info p{margin:0;padding:0;font-family:var(--font-body);font-size:var(--font-size-sm);line-height:var(--font-size-sm);margin:var(--spacing-lg) var(--spacing-xl);color:var(--color-primary)}.contact-info p:first-child{margin-bottom:0}.contact-info p:last-child{margin-top:0}.social-links{flex:0 0 auto;display:flex;width:auto}.social-link{flex:0 0 var(--half-column-width);width:var(--half-column-width);display:flex;justify-content:center;align-items:center;z-index:10;height:var(--header-height)}.social-link img{max-width:35%;max-height:35%;height:auto;width:auto;display:block;margin:0 auto}.social-link:hover img{scale:var(--picture-scale)}.hero{max-width:100%;height:var(--hero-height);padding:0 var(--spacing-xl);text-transform:uppercase;overflow:hidden}.hero h1{font-family:var(--font-heading);margin:0;font-size:var(--font-size-hero);line-height:var(--line-height-hero);letter-spacing:var(--spacing-sm-);word-spacing:2.1vw;color:var(--color-primary)}.roles{max-width:100%;display:flex}.role{flex:1;padding:var(--spacing-xs) var(--spacing-xl) var(--spacing-md) var(--spacing-xl)}.role a{color:var(--color-primary);text-decoration:none}.role h2{margin:0;padding:0;font-family:var(--font-body);font-size:var(--font-size-lg);letter-spacing:-.01em;font-weight:400;color:var(--color-primary)}.role h3{margin:0;margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs-);padding:0;font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:100;color:var(--color-primary);text-transform:uppercase}.projects-grid{max-width:100%;height:var(--projects-height);display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,1fr)}.project-card{flex:1;text-decoration:none;height:100%;background-color:var(--color-background);background-size:cover;background-position:center;background-repeat:no-repeat;outline:var(--border-width) solid var(--color-primary);outline-offset:var(--border-offset);text-transform:uppercase}.project-overlay{opacity:0;background-color:var(--color-overlay);transition:opacity .3s ease;width:100%;height:100%}.project-overlay:hover{opacity:1}.project-content{padding:var(--spacing-xl);display:flex;flex-direction:column;justify-content:space-between;height:84%}.project-title{font-family:var(--font-heading);font-size:var(--font-size-xl);line-height:var(--font-size-xl);color:var(--color-background);margin:0;padding:0}.project-meta{width:100%;display:flex;justify-content:space-between;outline:0;font-family:var(--font-heading);font-size:var(--font-size-xs);line-height:var(--font-size-xs);text-decoration:underline;color:var(--color-background)}.project-meta h2{padding:0;margin:0}.about{max-width:100%;display:flex;justify-content:center}.about-text{flex:2;margin:0;padding:0;text-align:justify;font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-primary)}.about-text p{padding:var(--spacing-sm) var(--spacing-xl);margin:0;text-indent:var(--spacing-sm)}.about-text a{color:var(--color-primary);text-decoration:underline}.about-text p:first-child{padding-top:var(--spacing-xl)}.about-text p:last-child{padding-bottom:var(--spacing-xl)}.about-sidebar{flex:2;display:flex;flex-direction:column;justify-content:space-between}.about-sidebar .social-links{flex:0 0 auto}.sidebar-top{flex:1;display:flex}.cv-section{flex:1;display:flex;align-items:center;justify-content:center}.cv-section h1{margin:0}.cv-section a{color:var(--color-primary);text-decoration:none}.cv-link{display:block;width:100%;height:100%;color:var(--color-primary);text-decoration:none;transition:color .3s ease,background-color .3s ease}.cv-link:hover{color:var(--color-background);background-color:var(--color-overlay)}.cv-inner{display:flex;flex-direction:column;justify-content:space-between;padding:var(--spacing-xl);height:100%;box-sizing:border-box}.cv-heading{font-family:var(--font-heading);line-height:var(--font-size-xl);font-size:var(--font-size-xl);text-transform:uppercase}.cv-items{font-family:var(--font-body);font-size:var(--font-size-sm);line-height:var(--font-size-sm);margin:0;padding-left:var(--spacing-xxxl);list-style-type:disc}.cv-items li{margin-bottom:var(--spacing-md)}.cv-items li:last-child{margin-bottom:0}.cv-cta{font-family:var(--font-heading);font-size:var(--font-size-md);line-height:var(--font-size-xs);margin:var(--spacing-xl);padding:var(--spacing-md) 0;text-decoration:underline}.profile-image{flex:1;display:flex;justify-content:center;align-items:flex-end;overflow:hidden}.profile-image img{max-width:100%;max-height:100%;height:auto;width:auto;display:block;margin:0;padding:0;transform:scale(var(--picture-scale)) translate(var(--picture-distance))}.project-columns{display:flex}.info-column{flex:1;display:flex;flex-direction:column}.info-column h2{margin:0;margin-top:var(--spacing-xl);margin-bottom:var(--spacing-sm);padding:0 var(--spacing-xl);font-family:var(--font-heading);font-size:var(--font-size-md);line-height:var(--font-size-md);text-transform:uppercase;color:var(--color-primary)}.info-column p{margin:0;padding:0 var(--spacing-xl);font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-primary);text-align:justify;text-indent:var(--spacing-sm)}.info-column p:last-child{margin-bottom:var(--spacing-xl)}.project-grid{max-width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:0}.project-column{display:flex;flex-direction:column;justify-content:space-between}.section-text{padding:var(--spacing-xl)}.section-text h2{margin:0;margin-bottom:var(--spacing-sm);padding:0;font-family:var(--font-heading);font-size:var(--font-size-md);line-height:var(--font-size-md);text-transform:uppercase;color:var(--color-primary)}.section-text p{margin:0;padding:0;font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-primary);text-align:justify;text-indent:var(--spacing-sm)}.code-links-container{margin-top:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs)}.code-link{font-family:var(--font-body);font-size:var(--font-size-sm);color:var(--color-primary);font-weight:700;text-decoration:underline;display:inline-block}.code-link:hover{opacity:.8}.section-image{position:relative;width:100%;overflow:hidden;cursor:pointer}.section-image img,.section-image video,.section-image iframe{width:100%;height:auto;display:block;background-color:var(--color-background)}.section-image iframe{aspect-ratio:16 / 9;border:none}.section-image:hover img,.section-image:hover video{cursor:zoom-in}.picture-column{flex:2;display:flex;flex-direction:column}.picture-hero{position:relative;width:100%;overflow:hidden;cursor:pointer}.picture-hero.aspect-16-9{aspect-ratio:16 / 9}.picture-hero.aspect-4-3{aspect-ratio:4 / 3}.picture-hero img{width:100%;height:100%;object-fit:cover;object-position:bottom;display:block;background:var(--color-background)}.picture-hero:hover img{cursor:zoom-in}.picture-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0}.picture-item{position:relative;width:100%;overflow:hidden;cursor:pointer}.picture-item.aspect-16-9{aspect-ratio:16 / 9}.picture-item.aspect-4-3{aspect-ratio:4 / 3}.picture-item img{width:100%;height:100%;object-fit:cover;object-position:bottom;display:block;background-color:var(--color-background)}.picture-item:hover img{cursor:zoom-in}.modal{position:fixed;z-index:9999;left:0;top:0;width:100%;height:100%;background-color:var(--color-overlay);justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .3s ease;display:flex}.modal:hover{cursor:pointer}.modal.active{opacity:1;pointer-events:auto}.modal-content{max-width:90%;max-height:85%;border:var(--border-width) solid var(--color-background);object-fit:contain}.modal-content:hover{cursor:default}.modal-content.youtube-modal{aspect-ratio:16 / 9;width:90%;max-width:1200px;height:auto;border:none}@media screen and (max-width: 768px){:root{--container-width: 90vw;--header-height: 15vw;--hero-height: 31vw;--projects-height: auto;--font-size-xs: 3vw;--font-size-sm: 3.5vw;--font-size-md: 5vw;--font-size-lg: 6vw;--font-size-xl: 7vw;--font-size-hero: 13.3vw;--line-height-hero: 11.5vw;--spacing-xs: 1vw;--spacing-sm: 1.5vw;--spacing-md: 2vw;--spacing-lg: 2.5vw;--spacing-xl: 3vw;--spacing-xxl: 4vw;--spacing-xxxl: 3.5vw;--half-column-width: calc(var(--container-width) / 4)}.header,.footer{flex-direction:column;height:auto}.header.header-few-socials{flex-direction:row;height:auto}.header.header-few-socials .contact-info{flex:1;height:auto}.header.header-few-socials .social-links{flex:0 0 auto;width:auto;height:auto}.contact-info,.social-links{flex:1;width:100%}.header.header-few-socials .contact-info,.header.header-few-socials .social-links{width:auto}.social-link{height:auto;padding:var(--spacing-sm) 0}.header.header-few-socials .social-link{height:auto;padding:var(--spacing-sm) 0;display:flex;align-items:center;justify-content:center}.roles{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}.role{width:100%;box-sizing:border-box}.role h2{font-size:var(--font-size-md)}.hero{height:auto;padding:0 var(--spacing-lg)}.projects-grid{grid-template-columns:repeat(2,1fr);grid-template-rows:auto}.project-card{aspect-ratio:16 / 9;height:auto}.project-content{height:100%;box-sizing:border-box}.about{flex-direction:column}.about-text,.about-sidebar{flex:1;width:100%}.sidebar-top{flex-direction:column}.cv-inner{height:65vw}.cv-section,.profile-image{width:100%;min-height:50vw}.profile-image{align-items:center}.project-columns{flex-direction:column}.info-column,.picture-column{width:100%}.project-grid{grid-template-columns:repeat(2,1fr)}}@media screen and (min-width: 768px){.picture-grid[data-v-2a61e44e]{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width: 767px){.picture-grid[data-v-2a61e44e]{grid-template-columns:1fr}}.tool-card[data-v-94a28fae]{background-color:var(--color-background);cursor:pointer;transition:background-color .3s ease,color .3s ease;display:flex;flex-direction:column;height:100%;min-height:200px}.tool-card[data-v-94a28fae]:hover{background-color:var(--color-overlay)}.tool-card:hover .tool-content[data-v-94a28fae]{color:var(--color-background)}.tool-content[data-v-94a28fae]{padding:var(--spacing-xl);display:flex;flex-direction:column;justify-content:space-between;height:100%;color:var(--color-primary)}.tool-title[data-v-94a28fae]{font-family:var(--font-heading);font-size:var(--font-size-xl);line-height:var(--font-size-xl);text-transform:uppercase;margin:0;padding:0;margin-bottom:var(--spacing-md)}.tool-description[data-v-94a28fae]{font-family:var(--font-body);font-size:var(--font-size-sm);line-height:1.3;margin:0;padding:0;flex:1;text-align:justify}.tool-meta[data-v-94a28fae]{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-xl);font-family:var(--font-heading);font-size:var(--font-size-xs);text-transform:uppercase}.tool-type[data-v-94a28fae]{padding:var(--spacing-xs) var(--spacing-md);outline:var(--border-width) solid currentColor;outline-offset:var(--border-offset)}.tool-cta[data-v-94a28fae]{text-decoration:underline}@media screen and (max-width: 768px){.tool-card[data-v-94a28fae]{min-height:150px}}.category-section[data-v-0a70ae74]{margin-bottom:0}.category-header[data-v-0a70ae74]{background-color:var(--color-background);padding:var(--spacing-md) var(--spacing-xl);margin-bottom:0}.category-header h2[data-v-0a70ae74]{font-family:var(--font-heading);font-size:var(--font-size-xl);line-height:var(--font-size-xl);text-transform:uppercase;color:var(--color-primary);margin:0;padding:0}.tools-grid[data-v-0a70ae74]{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.empty-state[data-v-0a70ae74]{padding:var(--spacing-xxl);text-align:center;background-color:var(--color-background)}.empty-state p[data-v-0a70ae74]{font-family:var(--font-heading);font-size:var(--font-size-xl);text-transform:uppercase;color:var(--color-primary);margin:0}@media screen and (max-width: 768px){.tools-grid[data-v-0a70ae74]{grid-template-columns:repeat(2,1fr)}}
