@import"https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&display=swap";:root{height:100dvh;width:100vw;--clr-dark: #142d4c;--clr-blue: #385170;--clr-lightblue: #9fd3c7;--clr-white: #ececec}*{box-sizing:border-box;margin:0;padding:0;color:var(--clr-white);font-family:Google Sans Code,Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Arial,sans-serif;font-weight:700}html,body{min-height:100dvh;min-width:100dvw;scrollbar-width:none;scroll-behavior:smooth}#root{height:auto;min-height:100dvh;display:grid;grid-template-rows:75px repeat(5,minmax(100dvh,auto));grid-template-areas:"navbar" "home" "about" "skills" "projects" "contact";overflow-y:visible}section{scroll-margin-top:75px;border-bottom:1px solid black;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;overflow-y:scroll;scroll-snap-align:start end;scrollbar-width:none;text-align:center}.navbar{background-color:#0b0d30;width:100%;top:0;z-index:69420;position:sticky;grid-area:navbar}.navbar>ul{width:100%;height:100%;display:flex;flex-direction:row;list-style:none;align-items:center;border:1px solid var(--clr-white)}.navbar>ul>li{width:100%;height:100%;text-align:center;border-right:1px solid var(--clr-white)}.navbar>ul>li:last-child{border-right:none}.navbar>ul>li:hover{background-color:#fff3}.navbar>ul>li>a{width:100%;height:100%;background-color:transparent;text-decoration:none;font-size:clamp(.25rem,.9rem,2rem);display:flex;justify-content:center;align-items:center}#home{gap:2rem;padding:0 5%;background-color:var(--clr-blue);grid-area:home}#home span:hover{display:inline-block;animation:.4s shakeIcon .3s}.links{padding-top:20px;width:100%;display:flex;align-items:center;justify-content:center;gap:2rem}.links>a{text-decoration:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px}.links>a p{font-size:small}.links>a:hover i{transform:translateY(10px)}.links i{text-decoration:none;font-size:clamp(1rem,2rem,6rem);transition:transform .3s}#about{gap:2rem;padding:0 5%;background-color:var(--clr-dark);grid-area:about}#skills{gap:1rem;padding:0 5%;padding-top:2rem;background-color:var(--clr-blue);grid-area:skills}#skills>.skills-group{display:flex;flex-direction:column;gap:1.25rem;width:100%}.skills-grid{padding-bottom:1rem;width:100%;display:grid;grid-template-columns:repeat(auto-fit,280px);gap:1.25rem;justify-content:center;justify-items:center}.skill-card{background:#0f1115;border:1px solid #1f2330;border-radius:12px;padding:1.25rem;width:100%;min-height:200px;max-width:none;transition:transform .25s ease,box-shadow .25s ease;cursor:default}.skill-card:hover{cursor:pointer;transform:translateY(-6px);box-shadow:0 12px 30px #00000059}.skill-card:hover .skill-icon{animation:shakeIcon .3s}.modal-content>.skill-card:hover{box-shadow:unset;transform:unset}.modal-content>.skill-card:hover .skill-icon{animation:unset}.skill-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.skill-icon{width:36px;height:36px;object-fit:contain}.skill-card h3{font-size:1.05rem;font-weight:600;color:#fff}.skill-experience{font-size:.9rem;font-weight:500;color:#8b92b2;margin-bottom:.4rem}.skill-description{font-size:.85rem;line-height:1.4;color:#cfd3ff}.skill-description.truncated{display:-webkit-box;line-clamp:4;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.skill-description.full{display:block;overflow:visible}@keyframes shakeIcon{0%{transform:rotate(0)}30%{transform:rotate(-30deg)}60%{transform:rotate(30deg)}to{transform:rotate(0)}}.modal-backdrop{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:69421}.modal-content{background:#0f1115;border-radius:14px;padding:1.5rem;width:clamp(280px,90vw,50vw);max-height:85vh;overflow-y:auto;box-shadow:0 20px 50px #0009;animation:modalIn .5s ease-out;display:flex;align-items:center;justify-content:center}@keyframes modalIn{0%{transform:scale(.9) translateY(10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.project-card{background:#0f1115;border:1px solid #1f2330;border-radius:12px;padding:1.25rem;width:100%;transition:transform .25s ease,box-shadow .25s ease;cursor:default;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.project-card:hover{cursor:pointer;transform:translateY(-6px);box-shadow:0 12px 30px #00000059}.modal-content>.project-card:hover{box-shadow:unset;transform:unset}.project-card-header{display:flex;align-items:center;margin-bottom:.5rem}.project-picture{width:100%;height:auto;padding:10px;border-radius:12px}.project-card h3{font-size:1.05rem;font-weight:600;color:#fff}.project-description{font-size:.85rem;line-height:1.4;color:#cfd3ff}.project-description.truncated{display:-webkit-box;line-clamp:4;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.project-description.full{display:block;overflow:visible}.project-links{padding-top:1rem;width:auto;display:flex;justify-content:center;gap:1rem}.project-links>a{text-decoration:none}.project-links p{font-size:1rem}.project-links:hover .link-icon{animation:pulseIcon .4s}.link-icon{width:22px;height:22px;object-fit:cover}@keyframes pulseIcon{0%{transform:scale(.8)}50%{transform:scale(1.3)}to{transform:scale(1)}}#projects{gap:2rem;padding:2rem 5%;background-color:var(--clr-dark);grid-area:projects}#projects>.projects-grid{padding-bottom:5rem;width:100%;display:grid;grid-template-columns:repeat(auto-fit,280px);gap:1.25rem;justify-content:center;justify-items:center}#contact{gap:1rem;border-bottom:none;background-color:var(--clr-blue);grid-area:contact}#contact>form{width:clamp(240px,75vw,1024px);height:50%;display:flex;flex-direction:column;gap:1rem}#name,#email{padding:5px;height:10%;color:#000}#message{padding:5px;color:#000;height:60%}form>button{background-color:#0b0d30;border-radius:5px;border:none;padding:1rem;cursor:pointer;transition:transform .3s}form>button:hover{transform:translateY(-5px);background-color:#fff3}.status.loading{color:#ebb410}.status.error{color:#eb1010}.status.success{color:#14eb10}h1{font-size:clamp(2.5rem,5vw,5rem);text-align:center}p{font-size:clamp(1rem,1.5vw,2.5rem);font-weight:lighter;text-align:center}
