@layer reset,variables,base,layout,icons,components,features,utilities;@layer reset{html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;max-width:100%;white-space:normal;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,:before,:after{box-sizing:border-box}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{text-rendering:optimizespeed}img,picture{max-width:100%;display:block}html:focus-within{scroll-behavior:smooth}}@layer variables{:root{--color-primary:#327ea3;--color-secondary:#2e7d32;--color-accent:#f6bb43;--color-danger:#e74c3c;--color-aqua:#4ca5d0;--color-white:#fff;--color-gray-light:#e5e5e5;--color-gray:#555;--color-gray-dark:#373737;--color-text-muted:#666;--color-gray-medium:#666;--color-gray-darker:#555;--color-text-subtle:#747474;--color-text-light:#999;--color-border-light:#d6d6d6;--color-social:#9c9987;--color-timeline-bg:#dbdee7;--color-info-bg:#d9edf7;--color-info-border:#bce8f1;--color-info-text:#31708f;--color-contact-bg:#f9f9f9;--color-hover-light:#ddd;--color-black:#000;--color-transparent:transparent;--color-gray-333:#333;--color-gray-ccc:#ccc;--color-gray-777:#777;--color-gray-ad:#adadad;--color-gray-f5:#f5f5f5;--color-gray-dd:#ddd;--color-gray-f8:#f8f9fa;--color-bootstrap-success:#5cb85c;--color-bootstrap-success-dark:#4cae4c;--color-bootstrap-primary:#337ab7;--color-bootstrap-info:#5bc0de;--color-bootstrap-warning:#f0ad4e;--color-bootstrap-danger:#d9534f;--color-html5:#e44d26;--color-css3:#4da0c8;--color-js:#f6bb43;--color-angular:#dd0031;--color-vue:#4fc08d;--color-azure:#0089d6;--color-ms:#ffb900;--color-git:#f25135;--color-purple:#68217a;--color-purple-code:#bc8cf3;--color-purple-dark:#512e5f;--color-edge:#52fcbc;--color-brown:#8b4513;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--border-radius-sm:3px;--border-radius-md:4px;--border-radius-lg:5px;--bp-sm:576px;--bp-md:768px;--bp-lg:992px;--bp-xl:1200px;--container-sm:540px;--container-md:720px;--container-lg:850px;--container-xl:940px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-page:0 0 10px #0000001a;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:350ms ease;--print-bg:white;--print-text:black;--print-margin:0;--print-padding:0;--section-height:60px;--timeline-line-width:2px;--progress-height:18px}}@layer base{@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/lato-normal.woff2)format("woff2")}@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/lato-bold.woff2)format("woff2")}body{font-family:Lato,sans-serif;font-size:var(--font-size-base);background-color:var(--color-black);color:var(--color-white);background:url(../images/background.webp) top no-repeat fixed;line-height:1.3}@media (max-width:767px) and (max-height:720px){body{background:url(../images/background-mobile.webp) 0 0/cover no-repeat}}a{color:var(--color-primary)}a:hover{color:var(--color-primary)}h1{font-size:1.875rem;font-size:var(--font-size-3xl);font-weight:700;line-height:1.2}section h1,article h1,aside h1,nav h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl);font-weight:700;line-height:1.3}h3{font-size:var(--font-size-xl);font-weight:700;line-height:1.4}h4{font-size:var(--font-size-lg);font-weight:700;line-height:1.4}h5,h6{font-size:var(--font-size-base);font-weight:700;line-height:1.5}p{margin-bottom:var(--space-4);line-height:1.6}ul,ol{margin-bottom:var(--space-4);padding-left:var(--space-5)}li{margin-bottom:var(--space-1)}}@layer layout{.banner{width:100%;height:3px;grid-template-columns:repeat(5,1fr);display:grid;position:absolute;top:0;left:0}.banner div{height:100%;padding:0}.container{padding-left:var(--space-4);padding-right:var(--space-4);margin-left:auto;margin-right:auto}@media (min-width:768px){.container{width:var(--container-md)}}@media (min-width:992px){.container{width:var(--container-lg)}}@media (min-width:1200px){.container{width:var(--container-xl)}}#page{background-color:var(--color-transparent);box-shadow:var(--shadow-page);padding:var(--space-6)var(--space-6)}#content{background:var(--color-white);color:var(--color-gray-dark)}.nav__header{margin-bottom:var(--space-5);color:var(--color-white);justify-content:space-between;align-items:center;display:flex}.nav__actions{gap:var(--space-3);display:flex}.nav__social{gap:var(--space-5);margin-top:var(--space-2);align-items:center;display:flex}.nav__social-link{color:var(--color-social);font-size:var(--font-size-2xl);transition:var(--transition-base);text-decoration:none}.nav__social-link:hover{color:var(--color-white);text-decoration:none}.nav__footer{color:var(--color-white);margin-top:var(--space-6);justify-content:space-between;align-items:center;display:flex}.nav__language{flex-shrink:0}.nav__copyright{font-size:var(--font-size-base);text-align:right;font-size:.75em}.nav__copyright-author{font-weight:700}.section__title{border-top:1px solid var(--color-gray-light);height:var(--section-height);font-size:var(--font-size-2xl);font-weight:700;line-height:var(--section-height);margin:0;position:relative}section:first-of-type .section__title{border:none}.section__head{padding-bottom:0}.section__title a{color:var(--color-white);display:block}.section__title span{cursor:pointer}.section__icon{width:60px;height:60px;text-align:center;color:var(--color-white);line-height:60px;display:block;position:absolute;top:0;left:-60px}.section__name{width:20%;min-width:175px;height:60px;vertical-align:top;color:var(--color-gray);padding:0 50px;font-size:.6em;font-weight:700;line-height:60px;display:inline-block}.section--active .section__name{color:var(--color-white)}.section__title-gap{vertical-align:top;cursor:none;height:100%;display:inline-block;position:absolute;top:0;bottom:0;right:0}.section__toggle-arrow{border:1px solid var(--color-gray-light);color:var(--color-gray-light);height:calc(100% + 2px);max-height:var(--section-height);box-sizing:border-box;justify-content:center;align-items:center;margin-top:-1px;padding:8px;display:flex}section:first-of-type .section__toggle-arrow{height:100%;margin-top:0}section:last-of-type .section__toggle-arrow{height:calc(100% + 1px)}.section__toggle-arrow:hover{color:var(--color-white);background-color:var(--color-gray-light)}.section__content{padding:var(--space-6)var(--space-8)}section:not(.section--active) .section__content{content-visibility:auto;contain-intrinsic-size:800px}#profile .section__icon,#profile.section--active .section__name{background-color:var(--color-primary)}#resume .section__icon,#resume.section--active .section__name{background-color:var(--color-secondary)}#profile:not(.section--active) .section__head:hover .section__name{background-color:var(--color-primary);color:var(--color-white);height:calc(100% + 1px)}#resume:not(.section--active) .section__head:hover .section__name{background-color:var(--color-secondary);color:var(--color-white);height:calc(100% + 1px)}#portfolio:not(.section--active) .section__head:hover .section__name{background-color:var(--color-accent);color:var(--color-white);height:calc(100% + 1px)}#contact:not(.section--active) .section__head:hover .section__name{background-color:var(--color-danger);color:var(--color-white);height:calc(100% + 1px)}#portfolio .section__icon,#portfolio.section--active .section__name{background-color:var(--color-accent)}#contact .section__icon,#contact.section--active .section__name{background-color:var(--color-danger)}.skills__layout,.contact__layout{gap:var(--space-5);align-items:start;display:grid}.skills__layout{grid-template-columns:65% 30%;justify-content:space-between}.contact__layout{grid-template-columns:65% 30%}.skills__sidebar{height:100%;grid-template-columns:1fr;display:grid}.skills__sidebar article:last-child{margin-top:auto}@media (max-width:991px){.skills__layout,.contact__layout{grid-template-columns:1fr;gap:0}.skills__sidebar{grid-template-columns:repeat(2,1fr)}.skills__sidebar article{flex-direction:column;align-items:flex-start;display:flex}.skills__sidebar article:last-child{margin-top:unset}}}@layer icons{@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.woff2?v=4.7.0)format("woff2");font-weight:400;font-style:normal;font-display:swap}.fa{font:14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block}.fa-align-center:before{content:""}.fa-birthday-cake:before{content:""}.fa-briefcase:before{content:""}.fa-chevron-down:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-chevron-up:before{content:""}.fa-download:before{content:""}.fa-envelope:before{content:""}.fa-home:before{content:""}.fa-info:before{content:""}.fa-linkedin-square:before{content:""}.fa-phone:before{content:""}.fa-print:before{content:""}.fa-qrcode:before{content:""}.fa-send:before{content:""}.fa-stack-overflow:before{content:""}.fa-star:before{content:""}.fa-star-half-full:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-car:before{content:""}.fa-flag-o:before{content:""}.fa-globe:before{content:""}.fa-microchip:before{content:""}.fa-tree:before{content:""}.fa-building:before{content:""}.fa-wrench:before{content:""}.fa-book:before{content:""}}@layer components{.button{padding:var(--space-2)var(--space-4);font-size:var(--font-size-base);text-align:center;white-space:nowrap;cursor:pointer;border-radius:var(--border-radius-md);transition:var(--transition-base);border:1px solid #0000;margin-bottom:0;font-weight:400;line-height:1.25;text-decoration:none;display:inline-block}.button-default{color:var(--color-gray-333);background-color:var(--color-white);border-color:var(--color-gray-ccc)}.button-default:hover,.button-default:focus{color:var(--color-gray-333);background-color:var(--color-gray-light);border-color:var(--color-gray-ad);text-decoration:none}.button-success{color:var(--color-white);background-color:var(--color-secondary);border-color:var(--color-secondary)}.button-success:hover,.button-success:focus{color:var(--color-white);background-color:var(--color-bootstrap-success);border-color:var(--color-bootstrap-success-dark);text-decoration:none}.button.button-action{background-color:var(--color-transparent);border:1px solid var(--color-white);border-color:var(--color-white);color:var(--color-white);padding:var(--space-2)var(--space-3);transition:var(--transition-base);border-radius:0;text-decoration:none;display:inline-block}.button.button-action:hover,.button.button-action:focus{background-color:var(--color-hover-light);color:var(--color-black);border-color:var(--color-white);text-decoration:none}.progress{height:var(--progress-height);margin-bottom:var(--space-4);background-color:var(--color-gray-f5);border-radius:var(--border-radius-md);overflow:hidden;box-shadow:inset 0 1px 2px #0000001a}.progress-bar{float:left;width:0%;height:100%;font-size:var(--font-size-xs);line-height:var(--progress-height);color:var(--color-white);text-align:center;background-color:var(--color-primary);transition:width .6s;box-shadow:inset 0 -1px #00000026}.progress-bar span{font-size:.8em;font-weight:700}.progress-bar.bg-orange-html5{background-color:var(--color-html5)}.progress-bar.bg-blue-css3{background-color:var(--color-css3)}.progress-bar.bg-yellow{background-color:var(--color-accent)}.progress-bar.bg-red-Angular{background-color:var(--color-angular)}.progress-bar.bg-teal-Vue{background-color:var(--color-vue)}.progress-bar.bg-purple{background-color:var(--color-purple)}.progress-bar.bg-dark-purple{background-color:var(--color-purple-dark)}.progress-bar.bg-brown{background-color:var(--color-brown)}.progress-striped .progress-bar{background-image:linear-gradient(45deg,#ffffff26 25%,#0000 25% 50%,#ffffff26 50% 75%,#0000 75%,#0000);background-size:40px 40px}kbd{color:var(--color-white);background-color:var(--color-gray-333);font-size:90%;font-family:var(--font-family-mono);border-radius:3px;padding:2px 4px;box-shadow:inset 0 -1px #00000040}.badge{color:var(--color-white);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.2em;padding:.25rem;font-size:75%;font-weight:700;line-height:1;display:inline}.badge:empty{display:none}.badge-default{background-color:var(--color-gray-777)}.badge-primary{background-color:var(--color-bootstrap-primary)}.badge-success{background-color:var(--color-bootstrap-success)}.badge-info{background-color:var(--color-bootstrap-info)}.badge-warning{background-color:var(--color-bootstrap-warning)}.badge-danger{background-color:var(--color-bootstrap-danger)}}@layer features{.profile__name{color:var(--color-gray-dark);font-size:var(--font-size-3xl);margin:0;padding:0;font-weight:700;line-height:1.2}.profile__job-title{color:var(--color-primary);margin:.5rem 0 0;font-size:1.4em;font-weight:700;line-height:1.25}.profile__job-subtitle{color:var(--color-text-muted);margin-top:.1rem;font-size:1em}.profile__company-place{color:var(--color-text-subtle);margin:.2rem 0 0;font-size:.66em}.profile__company{color:var(--color-text-muted);font-size:1.1em}.profile__frame-header{align-items:stretch;gap:15px;margin-bottom:10px;display:flex}.profile__frame-content{border-top:dotted 1px var(--color-border-light);margin-top:.25rem}.profile__picture{min-width:100px;background:var(--color-black);border:1px solid var(--color-gray-ccc);border-radius:4px;align-items:center;padding:.25rem;display:grid}.profile__information{flex-direction:column;flex:1;justify-content:space-between;display:flex}.profile__picture img{height:200px;object-fit:contain;border-radius:3px;margin-bottom:0}@media (max-width:767px){.profile__frame-header{flex-direction:column;align-items:center}}.profile__details{font-size:.8em}.profile__details-item{margin-bottom:8px;display:flex}.profile__details-label{min-width:120px;color:var(--color-text-muted);font-weight:400}.profile__details-value{color:var(--color-gray-darker);flex:1;margin-left:15px;font-size:1.05em}.profile__career{margin-top:.5rem}.profile__career-item{display:flex}@media screen and (max-width:991px){.profile__career-item{flex-direction:column}}.profile__career-label{min-width:120px;color:var(--color-text-muted);font-size:.8rem;font-weight:400;line-height:1.4}.profile__career-value{flex:1;margin-left:15px;line-height:1.4}@media screen and (max-width:991px){.profile__career-value{margin-left:0}}.profile__qrcode-container{max-width:130px;min-width:110px}@media screen and (max-width:767px){.profile__qrcode-container{display:none}}#introduce{text-align:justify;margin-top:20px;font-size:.95em;line-height:1.2}.skills__programming{margin-bottom:var(--space-5)}.skills__programming .progress{margin-bottom:10px}.skills__programming .progress,.skills__programming .progress-bar{height:15px;line-height:15px}.skills__programming .progress-bar{text-transform:uppercase;color:var(--color-white);font-weight:700}.skills__chart{margin:0 auto}.skills__legend{margin-bottom:20px}.skills__legend-item{width:9px;height:9px;margin-right:5px;display:inline-block}.skills__language-item{align-items:center;margin-bottom:10px;display:flex}.skills__language-label{min-width:60px;text-align:left}.skills__language-value{flex:1;margin-left:15px}.skills__title{color:var(--color-primary);margin-bottom:var(--space-4);font-size:1.1em}.skills__subtitle{color:var(--color-gray-dark);text-transform:uppercase;height:24px;vertical-align:middle;letter-spacing:2px;text-shadow:1px 0px var(--color-gray-333);margin:0 0 10px;font-size:.85em;font-weight:900;line-height:24px}.skills__caption{color:var(--color-gray);height:12px;margin:0 0 10px;font-size:12px;font-weight:700;position:relative}.skills__caption small{color:var(--color-gray-dark);font-weight:400;line-height:1}.contact__title{color:var(--color-primary);margin-bottom:var(--space-4);font-size:1.1em}#donutChartTools{max-width:250px;max-height:250px;-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.html5,.css3{width:16px;height:16px;margin-bottom:-3px;margin-left:4px;display:inline-block;translate:-100%}.timeline{position:relative}.timeline:before{content:"";width:1px;height:100%;background:linear-gradient( to bottom,#333 0%,#333 var(--timeline-solid,0%),transparent var(--timeline-solid,0%),transparent var(--timeline-solid,0%));z-index:1;position:absolute;top:0;left:20px}.timeline:after{content:"";left:20px;top:var(--timeline-solid,0%);width:1px;height:calc(100% - var(--timeline-solid,0%));z-index:1;background-image:repeating-linear-gradient(#333 0 8px,#0000 8px 16px);position:absolute}.timeline__head{text-transform:uppercase;color:var(--color-primary);background:var(--color-white);border:2px solid var(--color-primary);letter-spacing:.3px;z-index:1;border-radius:4px;padding:8px 16px;font-size:1.1rem;font-weight:700;display:inline-block;position:relative;transform:translate(-15px)}.timeline__item{gap:var(--space-4);opacity:0;z-index:2;background:#ffffffa8;border-radius:12px;grid-template-columns:2fr 10fr;margin-bottom:30px;padding:20px;transition:opacity .6s,transform .6s;display:grid;position:relative;transform:scale(.8);box-shadow:0 2px 12px #0000001a}.timeline__item.animate-in{opacity:1;transform:scale(1)}.timeline__item:before{content:"";width:12px;height:12px;background:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary);z-index:3;opacity:0;border:3px solid #fff;border-radius:50%;transition:opacity .4s,transform .4s;position:absolute;top:50px;left:20px;transform:translate(-50%)}.timeline__item.animate-in:before{opacity:1;transition-delay:.2s;transform:translate(-50%)scale(1)}.timeline__header{margin-bottom:25px;position:relative}.timeline__date{padding:10px 0;position:relative}.timeline__date-start{color:var(--color-gray);text-align:center;margin-bottom:.25rem;font-size:.95rem;font-weight:600}.timeline__date-end{color:var(--color-gray-dark);text-align:center;font-size:1.05rem;font-weight:700}.timeline section{margin-bottom:0}.timeline__details{padding:10px 0}.timeline__details header{margin-bottom:var(--space-4)}.timeline__title{color:var(--color-gray-dark);font-size:1.15em;font-weight:700}.timeline__job-title{color:var(--color-primary);margin:0;font-size:1.4em;font-weight:700;line-height:1.25}.timeline__company{color:var(--color-text-muted);font-size:1.1em}.timeline__company small{color:var(--color-gray-dark);margin-top:.25rem;font-size:.85em;font-style:italic;display:block}.timeline__responsibilities,.timeline__key-projects,.timeline__tech-stack,.timeline__key-metrics,.timeline__progression,.timeline__career-step{color:var(--color-gray-darker);margin-bottom:1rem;line-height:1.5}.timeline__responsibilities ul,.timeline__key-projects ul,.timeline__tech-stack ul,.timeline__key-metrics ul{margin:.5rem 0;padding-left:1.2rem}.timeline__responsibilities li,.timeline__key-projects li,.timeline__tech-stack li,.timeline__key-metrics li{color:var(--color-gray-darker);margin-bottom:.3rem}.timeline__responsibilities strong,.timeline__key-projects strong,.timeline__tech-stack strong,.timeline__key-metrics strong{color:var(--color-gray-dark);font-weight:600}@media (max-width:767px){.timeline:before{display:none}.timeline__item{padding:15px;display:block}.timeline__item:before{display:none}.timeline__date{text-align:center;margin-bottom:15px}.timeline__header{text-align:center;padding-left:0}.timeline__head{border-radius:15px;font-size:1rem;transform:none}}.portfolio__carousel{background-color:var(--color-gray-f8);border-radius:var(--border-radius-md);height:180px;position:relative;overflow:hidden}.portfolio__carousel-inner{width:100%;height:100%;position:relative;overflow:hidden}.portfolio__carousel-item{width:100%;height:100%;opacity:0;backface-visibility:hidden;transition:opacity .6s ease-in-out;position:absolute;top:0;left:0}.portfolio__carousel-item--active{opacity:1;position:relative}.portfolio__carousel-item img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.portfolio__carousel-control{width:40px;height:40px;color:var(--color-white);transition:var(--transition-base);z-index:10;opacity:.7;background-color:#00000080;border-radius:50%;justify-content:center;align-items:center;text-decoration:none;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.portfolio__carousel-control:hover{color:var(--color-white);opacity:1;background-color:#000c;text-decoration:none}.portfolio__carousel-control--left{left:10px}.portfolio__carousel-control--right{right:10px}.portfolio__carousel-control .fa{font-size:18px}.portfolio__carousel-indicators{z-index:15;gap:8px;margin:0;padding:0;list-style:none;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.portfolio__carousel-indicators li{width:12px;height:12px;cursor:pointer;transition:var(--transition-base);background-color:#ffffff80;border:1px solid #0003;border-radius:50%;display:block}.portfolio__carousel-indicators li.active,.portfolio__carousel-indicators li:hover{background-color:#ffffffe6;border-color:#0006}@media (max-width:767px){.portfolio__carousel-control{width:35px;height:35px}.portfolio__carousel-control .fa{font-size:16px}.portfolio__carousel-indicators li{width:10px;height:10px}}.portfolio__project{padding:var(--space-1);margin-bottom:var(--space-5);background-color:var(--color-white);border:1px solid var(--color-gray-dd);border-radius:var(--border-radius-md);transition:var(--transition-base);flex-direction:column;line-height:1.42857;display:flex}.portfolio__project img{width:100%;height:auto}.portfolio__project-content{padding:var(--space-3);color:var(--color-gray);flex-direction:column;flex-grow:1;display:flex}.portfolio__project-content h3{margin-top:.25rem;margin-bottom:.75rem}.portfolio__project-content p:first-child{margin-top:0}.portfolio__project-actions,.portfolio__project footer.portfolio__project-actions{text-align:right;margin-top:auto}.portfolio__grid{grid-template-columns:repeat(3,1fr);gap:1rem 1.5rem;padding:0;display:grid}.portfolio__grid[data-visible=firsts]>.portfolio__project:nth-child(n+4){display:none}@media (max-width:991px){.portfolio__grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:575px){.portfolio__grid{grid-template-columns:1fr}.portfolio__grid[data-visible=firsts]>.portfolio__project:nth-child(n+2){display:none}}.portfolio__grid[data-visible=all]>div{display:flex}.contact__email-info{background-color:var(--color-contact-bg);border-left:3px solid var(--color-primary);border-radius:5px;padding:20px}.contact__email-info p{color:var(--color-gray-darker);margin-bottom:15px}.contact__info-item{align-items:flex-start;margin-bottom:10px;display:flex}.contact__info-label{min-width:30px;text-align:left}.contact__info-value{flex:1;margin-left:15px}.info-box{background-color:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info-text);border-radius:4px;margin-bottom:20px;padding:15px}.info-box__icon{float:left;margin-right:10px;font-size:1.2em}.info-box__content{overflow:hidden}.nav__language-link{background-color:var(--color-transparent);border:2px solid var(--color-white);color:var(--color-white);padding:var(--space-1)var(--space-2);border-radius:var(--border-radius-sm);transition:var(--transition-base);text-decoration:none;display:inline-block}.nav__language-link:hover{background-color:var(--color-white);color:var(--color-primary);text-decoration:none}@media (min-width:768px){.profile__details-value{margin-left:5px}.skills__language-value,.contact__info-value{margin-left:15px}}@media (max-width:767px){.nav__footer{gap:var(--space-3);text-align:center;flex-direction:column}.nav__copyright{text-align:center}}}@layer utilities{.bg-primary,.bg-blue{background-color:var(--color-primary)}.bg-secondary,.bg-green{background-color:var(--color-secondary)}.bg-accent,.bg-yellow{background-color:var(--color-accent)}.bg-danger,.bg-red{background-color:var(--color-danger)}.bg-aqua{background-color:var(--color-aqua)}.bg-white{background-color:var(--color-white)}.bg-html5,.bg-orange-html5{background-color:var(--color-html5)}.bg-css3,.bg-blue-css3{background-color:var(--color-css3)}.bg-js{background-color:var(--color-js)}.bg-angular,.bg-red-Angular{background-color:var(--color-angular)}.bg-vue,.bg-teal-Vue{background-color:var(--color-vue)}.bg-azure,.bg-blue-Azure{background-color:var(--color-azure)}.bg-ms,.bg-yellow-MS{background-color:var(--color-ms)}.bg-git,.bg-orange-Git{background-color:var(--color-git)}.bg-purple{background-color:var(--color-purple)}.bg-purple-code,.bg-purple-Code{background-color:var(--color-purple-code)}.bg-purple-dark,.bg-dark-purple{background-color:var(--color-purple-dark)}.bg-edge,.bg-teal-Edge{background-color:var(--color-edge)}.bg-brown{background-color:var(--color-brown)}.text-primary,.fg-blue{color:var(--color-primary)}.text-secondary,.fg-green{color:var(--color-secondary)}.text-accent,.fg-yellow{color:var(--color-accent)}.text-danger,.fg-red{color:var(--color-danger)}.text-aqua,.fg-aqua{color:var(--color-aqua)}.text-white{color:var(--color-white)}.text-gray{color:var(--color-gray)}.text-gray-dark{color:var(--color-gray-dark)}.text-muted{color:var(--color-text-muted)}.text-html5,.fg-orange-html5{color:var(--color-html5)}.text-css3,.fg-blue-css3{color:var(--color-css3)}.text-purple,.fg-purple{color:var(--color-purple)}.bg-aqua-reverse{background-color:var(--color-aqua)}.fg-aqua-reverse{color:var(--color-aqua)}.bg-green-reverse{background-color:var(--color-secondary)}.fg-green-reverse{color:var(--color-secondary)}.bg-red-reverse{background-color:var(--color-danger)}.fg-red-reverse{color:var(--color-danger)}.d-flex{display:flex}.flex-between{justify-content:space-between}.text-base{font-size:var(--font-size-base)}.text-smaller{font-size:.9em}.text-right{text-align:right}.border-0{border-width:0}.mt-6{margin-top:var(--space-6)}.mt-4{margin-top:var(--space-4)}.mt-3{margin-top:var(--space-3)}.mt-5{margin-top:var(--space-5)}.mr-2{margin-right:var(--space-2)}.mb-5{margin-bottom:var(--space-5)}.pb-2{padding-bottom:var(--space-2)}.text-center{text-align:center}.read-toggle .read-less,details[open] .read-toggle .read-more{display:none}details[open] .read-toggle .read-less{display:inline}.read-toggle{min-height:44px;cursor:pointer;padding:8px 4px}summary{min-height:44px;cursor:pointer;padding:8px 0}.read-toggle strong{position:relative}.read-toggle strong:after{content:"↓";margin-left:.3em;font-size:1.2em;position:absolute;top:50%;transform:translateY(-50%)}details[open] .read-toggle .read-less:after{content:"↑"}.w-full{width:100%}.size-40{width:165px;height:165px}.size-50{width:200px;height:200px}.h-56{height:225px}.sr-only{width:1px;height:1px;clip:rect(0,0,0,0);white-space:nowrap;border:0;margin:-1px;padding:0;position:absolute;overflow:hidden}}