*,*:after,*:before{box-sizing:inherit;margin:0;padding:0}html{font-size:62.5%}body{box-sizing:border-box}img{width:100%}.bg{transform:skewY(-8deg);background-image:linear-gradient(to right bottom,#033f63d9,#a2d5f2d9),url(/assets/skills-unsplash-2x-zOsCOF98.jpg);background-repeat:no-repeat;background-size:cover}.bg>*{transform:skewY(8deg)}@font-face{font-family:Roboto;font-style:normal;font-weight:100;src:local("Roboto Thin"),local("Roboto-Thin"),url(/assets/roboto-v20-latin-100-BJNx9A77.woff2) format("woff2"),url(/assets/roboto-v20-latin-100-B3mHgoOJ.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:300;src:local("Roboto Light"),local("Roboto-Light"),url(/assets/roboto-v20-latin-300-EvKWBL9d.woff2) format("woff2"),url(/assets/roboto-v20-latin-300-Cx9SeV6m.woff) format("woff")}@font-face{font-family:Roboto;font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold"),url(/assets/roboto-v20-latin-700-CqGedB_1.woff2) format("woff2"),url(/assets/roboto-v20-latin-700-CCwTn0--.woff) format("woff")}body{font-family:Roboto,sans-serif;line-height:1.6}body,p{color:#3b3d41;font-size:1.6rem}.h1,h1{margin-bottom:1rem;font-size:6rem;font-weight:100}@media(max-width:37.5em){.h1,h1{font-size:4rem}}.h1,h1{color:#3b3d41}.h2--underline,h2--underline{text-transform:uppercase}.h2--underline:after,h2--underline:after{content:"";display:block;position:absolute;margin-bottom:1rem;transform:scaleX(1.2);border-bottom:3px solid #3b3d41}.h2,h2{margin-bottom:1rem;font-size:4rem;font-weight:100}@media(max-width:37.5em){.h2,h2{font-size:2.5rem}}.h2,h2{color:#3b3d41}.h3,h3{margin-bottom:1rem;font-size:2.5rem;font-weight:100}@media(max-width:37.5em){.h3,h3{font-size:2.5rem}}.h3,h3{color:#3b3d41}a{color:#033f63}.search{position:fixed;inset:0;z-index:-1;transform:scale(.95);opacity:0;background:#fff;transition:all .25s ease}.search.is-visible{transform:scale(1);z-index:100;opacity:1;transition:all .25s ease}.search__box{width:60%;margin:0 auto;padding-top:250px}@media only screen and (max-width:37.5em){.search__box{width:100%;padding-top:100px}}.search__group{position:relative;margin-bottom:30px}.search__group .search__close{position:absolute;right:0;top:17px;font-size:25px;cursor:pointer}.search__group .search__text{font-family:Roboto;width:100%;padding:20px 20px 20px 0;font-size:3.5rem;line-height:40px;border:none;border-bottom:3px solid #054164;color:#3b3d41}.search__group .search__text:focus{color:inherit;outline:0}.search__group .search__text::placeholder{font-weight:400;color:#bbb}.search__group .search__text::-ms-clear{display:none}.search-results-list{height:55vh;margin:0 0 0 -5px;padding:0 0 25px 25px;list-style:decimal;font-family:Roboto;font-size:1.6rem;font-weight:400;color:#3b3d41;overflow:auto;white-space:normal}.search-results-list .search-results__item{padding:0 0 0 5px;margin-bottom:10px}.search-results-list .search-results__link{display:block;padding:20px 15px;font-size:16px;font-weight:400;line-height:24px;border-radius:3px;color:#3b3d41;text-decoration:none;transition:all .3s;overflow:hidden}.search-results-list .search-results__link:hover{background:#033f63;transform:translateY(0);color:#fff}.search-results-list .search-results__link:after{content:"";position:absolute;top:0;left:0;width:200%;height:0%;transform:rotate(-50deg) translate(-50%);transform-origin:top left;background:#033f63;z-index:-1}.search-results-list .search-results__link:hover:after{height:900%;transform:rotate(-50deg) translate(-50%)}.search-results-list .no-results{list-style:none;margin-left:-20px;font-size:16px;font-weight:400}.section{display:grid;padding:8rem 0;place-items:center;width:100%;overflow-x:hidden}.skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-template-rows:repeat(3,1fr);max-width:90rem;margin:0 auto}@media(max-width:37.5em){.skills{display:flex;flex-flow:column;padding:4rem}}.skills-heading{grid-column:2;grid-row:3}.skills .callout:nth-child(1){display:grid;place-items:center;grid-column:2;grid-row:2}.skills .callout:nth-child(2){grid-column:1;grid-row:2}.skills .callout:nth-child(3){grid-column:2;grid-row:1}.skills .callout:nth-child(4){grid-column:3;grid-row:2}.skills .callout:nth-child(5){grid-column:2;grid-row:3}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));margin:0 auto;padding:2rem;gap:3rem;width:100%;max-width:1400px;list-style:none}@media(min-width:75em){.cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:75em)and (min-width:56.25em){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:56.25em){.cards{grid-template-columns:1fr;padding:1rem;gap:2rem}}.footer{display:grid;position:relative;grid-template-columns:repeat(2,1fr);height:30rem;padding:1rem;background-image:linear-gradient(to right bottom,#07689fe6,#054164e6),url(/assets/contact-unsplash-RBbKAkcg.jpg);background-size:cover;place-items:center}.footer-nav-list{list-style-type:none}.footer-nav-list a:hover{stroke:inherit;fill:inherit}.footer-nav-list li:not(:last-child){margin-bottom:1rem}.hero{display:grid;position:relative;background-position:center;background-size:cover;place-content:center;justify-items:flex-start}.hero-title{margin-bottom:1rem;color:#fff;font-size:6rem;font-weight:100;letter-spacing:.6rem}@media(max-width:37.5em){.hero-title{font-size:4rem}}.hero--home{height:95vh;background-image:linear-gradient(to right bottom,#3f76a3bf,#033f63d9),url(/assets/hero-unsplash-1x-Dd3ZZABh.jpg);clip-path:polygon(0 0,100% 20vh,100% 75vh,0 100%)}@media(max-width:37.5em){.hero--home{clip-path:polygon(0 0,100% 0,100% 45vh,0 100%);height:55vh}}.callout{max-width:90rem;padding:4rem;transition:all .3s;box-shadow:0 3rem 6rem #0000001a;text-align:center}@media(max-width:37.5em){.callout{padding:2rem}}.callout--skill-reverse{padding:12rem 2rem;background:#054164;color:#fff}@media(max-width:37.5em){.callout--skill-reverse{padding:4rem}}.callout--skill-reverse .callout-title{color:inherit}.callout--parallel{transform:skew(-12deg)}.callout--parallel>*{transform:skew(12deg)}@media(max-width:37.5em){.callout--parallel{transform:skew(0)}.callout--parallel>*{transform:skew(0)}}.callout--skill{position:relative;z-index:1;padding:12rem 2rem;overflow:hidden;background:#fffc}@media(max-width:37.5em){.callout--skill{padding:4rem;border-bottom:1px solid rgba(0,0,0,.1);box-shadow:none}}.callout--skill:after{content:"";position:absolute;z-index:-1;top:0;left:0;width:200%;height:0%;transform:rotate(-50deg) translate(-50%);transform-origin:top left;background:#033f63b3}.callout--skill:hover{background:#054164}.callout--skill:hover>*{fill:#fff;color:#fff}.callout--skill:hover:after{height:150%;transform:rotate(-50deg) translate(-50%);transition:all 1s cubic-bezier(.25,.46,.45,.94)}.btn{display:inline-block;position:relative;min-width:200px;height:fit-content;padding:1.5rem 4rem;transition:all .3s;border:none;background-color:#fff;color:#1b242f;font-size:1.8rem;font-weight:100;text-align:center;text-decoration:none;text-transform:uppercase;cursor:pointer;box-shadow:0 1.5rem 4rem #0000000d}.btn:hover{outline:none;background-color:#033f63;color:#fff}.btn:hover svg{fill:#fff}.btn--inverted{background-color:#033f63;color:#fff}.btn--inverted:hover{color:inherit;background-color:inherit}.btn--icon{display:grid;grid-gap:1rem;grid-template-columns:30px 70px;line-height:1.5;place-items:flex-start}.icon{width:6rem;fill:#033f63}.icon--sm{width:2.2rem}.icon--md{width:3.2rem;height:3.2rem}.icon--logo{width:10rem;transition:all .3s;fill:#fff}.icon--logo:hover{fill:#033f63}.icon--close-search,.icon--close-menu{fill:#033f63;width:3.2rem;height:3.2rem;margin-right:-15px;cursor:pointer}.icon--close-menu{position:absolute;right:3.5rem;top:1.5rem}.navigation.navigation--active{right:0}@media(max-width:37.5em){.navigation.navigation--active .nav__buttons{background:none;position:initial;right:0}}.navigation.navigation--active .icon--close-menu{opacity:1;visibility:visible}.navigation.navigation--active .icon--menu{opacity:0;visibility:hidden}.navigation.navigation--active .icon--search{display:none}.navigation.navigation--active .icon--close-search{fill:#033f63;position:absolute;right:40px;top:13px}.icon--close-menu,.icon--menu{opacity:0;visibility:hidden}@media(max-width:37.5em){.icon--menu{opacity:1;visibility:visible}}.icon--menu,.icon--search{fill:#fff}.icon--search{float:right;fill:#033f63}.card{display:grid;position:relative;width:100%;min-height:450px;height:100%;margin:0;padding:0;list-style-type:none;transition:.5s all;border-radius:1rem;background-size:cover;background-position:center;box-shadow:0 1.5rem 4rem #0000004d;background-blend-mode:screen;place-items:stretch;overflow:hidden;border:2px solid transparent;isolation:isolate}@media(max-width:37.5em){.card{margin:0;min-height:350px}.card-content{padding:2rem;min-height:350px}.card-title{font-size:2rem;margin-bottom:1rem}.card-preview{font-size:1.4rem;margin-bottom:1.5rem}.card-tech-preview{margin-bottom:1.5rem}}.card:before{content:"";display:block;position:absolute;top:0;left:0;width:100%;height:100%;transition:all .5s ease;opacity:1;background-blend-mode:overlay;background-size:cover;background-repeat:no-repeat;background-position:center;background-image:var(--bg-image);z-index:0;pointer-events:none}.card-content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;padding:3rem;min-height:450px;height:100%;transition:all .5s ease;pointer-events:auto}.card-title{font-size:2.8rem;font-weight:700;color:#fff;margin:0 0 1.5rem;line-height:1.2;text-shadow:0 2px 10px rgba(0,0,0,.3);transition:transform .3s ease}@media(max-width:37.5em){.card-title{font-size:2.2rem}}.card-preview{font-size:1.5rem;line-height:1.6;color:#fffffff2;margin:0 0 2rem;text-shadow:0 1px 5px rgba(0,0,0,.3);opacity:.95;transition:opacity .3s ease}.card-tech-preview{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:2rem;align-items:center}.card-tech-tag{display:inline-block;padding:.5rem 1rem;background:#ffffff40;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;border-radius:2rem;font-size:1.2rem;font-weight:500;border:1px solid rgba(255,255,255,.3);transition:all .3s ease}.card-tech-tag:hover{background:#fff6;transform:translateY(-2px)}.card-tech-more{display:inline-block;padding:.5rem 1rem;color:#ffffffe6;font-size:1.2rem;font-weight:500}.card-heading{display:block;padding:.5rem 3rem;background-image:linear-gradient(to right bottom,#a2d5f2d9,#033f63d9);filter:brightness(1);margin-bottom:1rem;font-size:2.5rem;font-weight:100}@media(max-width:37.5em){.card-heading{font-size:2.5rem}}.card-heading{color:#fff}.card-desc{display:block;z-index:1;align-self:center;width:100%;padding:1rem 3rem;list-style-type:none;transition:.5s all;opacity:0;background:#fff;justify-self:center}@media(max-width:37.5em){.card-desc{padding:1rem 0;opacity:1}}.card-desc p{padding:1rem;font-size:1.5rem;text-align:center;list-style:none}.card-desc p:not(:last-child){border-bottom:.1rem solid #e0e0e0}.card .btn{opacity:1}.card--clickable{cursor:pointer}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.card--clickable:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 2.5rem 6rem #00000080;border-color:#ffffff4d;z-index:10}.card--clickable:hover:before{transform:scale(1.1);filter:brightness(1.1)}.card--clickable:hover .card-title{transform:translateY(-3px)}.card--clickable:hover .card-preview{opacity:1}.card--clickable .card-btn{border:none;background:#fffffff2;color:#033f63;cursor:pointer;z-index:2;position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;gap:1rem;transition:all .3s ease;font-weight:600;box-shadow:0 4px 15px #0003;padding:1.2rem 2.4rem;border-radius:.5rem;font-size:1.4rem;width:auto;align-self:flex-start;margin-top:auto}.card--clickable .card-btn:hover{background:#033f63;color:#fff;box-shadow:0 6px 20px #0000004d}.card-btn-icon{width:2rem;height:2rem;transition:transform .3s ease}.card-btn{max-width:20rem!important}.card-buttons{display:grid;align-items:center;gap:1rem;margin-top:auto;align-self:center}.card-btn-github{border:none;background:#fffffff2;color:#033f63;cursor:pointer;z-index:2;position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.2rem 2.4rem;border-radius:.5rem;transition:all .3s ease;font-weight:600;box-shadow:0 4px 15px #0003;text-decoration:none;width:auto}.card-btn-github:hover{background:#033f63;color:#fff;box-shadow:0 6px 20px #0000004d}.card-btn-github svg{width:2rem;height:2rem;transition:transform .3s ease}.modal-overlay{position:fixed;inset:0;background-color:#000000d9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:1rem;max-width:1200px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease;box-shadow:0 2rem 6rem #00000080;scrollbar-width:thin;scrollbar-color:#a2d5f2 #f0f0f0}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:#f0f0f0;border-radius:1rem}.modal-content::-webkit-scrollbar-thumb{background:#a2d5f2;border-radius:1rem}.modal-content::-webkit-scrollbar-thumb:hover{background:#033f63}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:1.5rem;right:1.5rem;background:#ffffffe6;border:none;border-radius:50%;width:3.5rem;height:3.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1001;transition:all .3s ease;box-shadow:0 2px 8px #0003}.modal-close:hover{background:#033f63;transform:rotate(90deg)}.modal-close:hover svg{fill:#fff}.modal-close svg{width:2rem;height:2rem;fill:#033f63;transition:fill .3s ease}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}@media(max-width:56.25em){.modal-grid{grid-template-columns:1fr}}.modal-image{position:relative;overflow:hidden;border-radius:1rem 0 0 1rem;min-height:500px}@media(max-width:56.25em){.modal-image{border-radius:1rem 1rem 0 0;min-height:300px}}.modal-image img{width:100%;height:100%;object-fit:cover;display:block}.modal-info{padding:4rem;display:flex;flex-direction:column;gap:2rem}@media(max-width:56.25em){.modal-info{padding:2rem}}.modal-title{font-size:3rem;font-weight:700;color:#033f63;margin:0;line-height:1.2}@media(max-width:56.25em){.modal-title{font-size:2.5rem}}.modal-description{font-size:1.6rem;line-height:1.8;color:#333;margin:0}.modal-section{display:flex;flex-direction:column;gap:1rem}.modal-section-title{font-size:1.8rem;font-weight:600;color:#033f63;margin:0}.modal-tags{display:flex;flex-wrap:wrap;gap:.8rem}.modal-tag{display:inline-block;padding:.6rem 1.2rem;background:#033f63;color:#fff;border-radius:0;font-size:1.4rem;font-weight:500;transition:transform .2s ease;cursor:pointer}.modal-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.8rem}.modal-features li{font-size:1.5rem;line-height:1.6;color:#333;padding-left:2rem;position:relative}.modal-features li:before{content:"✓";position:absolute;left:0;color:#033f63;font-weight:700;font-size:1.8rem}.modal-links{display:flex;gap:1.5rem;margin-top:auto;flex-wrap:wrap}.modal-link{margin-top:0;align-self:flex-start;text-decoration:none}.modal-link-website,.modal-link-github{display:flex;align-items:center;gap:.8rem}.modal-link-icon{width:2rem;height:2rem;flex-shrink:0}.profile{display:grid;position:relative;width:15rem;margin:0 auto}.profile:hover .profile-image{filter:brightness(60%)}.profile:hover .profile-caption{opacity:1}.profile-image{margin-bottom:1rem;transition:all .3s;cursor:pointer;clip-path:circle()}.profile-caption{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max-content;transition:all .3s;opacity:0;color:#fff;text-transform:uppercase}.profile-link{width:15rem;height:15rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.navigation{position:fixed;display:block;float:right;height:6rem;width:100%;z-index:10;transition:right .5s cubic-bezier(.7,.4,0,1)}.nav{display:grid;max-width:1200px;place-items:center;margin:0 auto;position:relative}@media(max-width:37.5em){.nav{display:flex}}.nav-list{list-style-type:none;display:grid;grid-gap:.5rem;grid-template-columns:1fr}.nav .nav__buttons{display:none}
