@charset "UTF-8";@import url("https://fonts.googleapis.com/css?family=Raleway&display=swap");@import url("https://fonts.googleapis.com/css?family=Josefin+Sans&display=swap");html{background:#2b2d2f;color:#fff;font-family:Raleway,sans-serif;font-size:1rem;font-weight:400;overflow-x:hidden}body,html{height:100%}body{padding-top:0}h1{font-size:2rem;font-weight:600;line-height:2rem}p{word-spacing:.1rem}a{color:#3b82f6;text-decoration:none}a:hover{color:#fff}.highlight-title{color:#3b82f6;text-shadow:.25rem .25rem .25rem rgba(59,130,246,.4)}.gradient-text{background:linear-gradient(135deg,#60a5fa,#a78bfa 25%,#f472b6 50%,#a78bfa 75%,#60a5fa);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:n 4s ease infinite;text-shadow:none}.highlight-link{box-shadow:inset 0 -.125rem 0 #3b82f6;box-sizing:border-box;color:#3b82f6;display:inline-block;padding:.125rem;transition:all .2s ease-in-out}.highlight-link:hover{box-shadow:inset 0 -2rem 0 0 #3b82f6;color:#fff}.layout{margin:.5rem;max-width:75em;padding:.5rem}.layout .card{background:linear-gradient(145deg,hsla(0,0%,45%,.15) 15%,#2b2d2f 80%);border-radius:2rem;margin:3rem 0;padding:1rem 2rem}.layout .card .subtitle,.layout .card .title{text-align:center}.layout .card .description{text-align:justify}.neumorphism-button{background:linear-gradient(145deg,hsla(240,2%,40%,.15) 15%,rgba(33,33,33,.4) 80%);box-shadow:-4px -3px 2px 0 hsla(0,0%,98%,.13),4px 4px 2px 0 rgba(0,0,0,.4)}.neumorphism-card{box-shadow:inset 2px 2px 4px #000,inset -2px -2px 4px #636363}.neumorphism-card-big{box-shadow:5px 5px 4px #1e293b,-5px -5px 4px #475569}#preloader{-ms-flex-align:center;align-items:center;background:#2b2d2f;display:-ms-flexbox;display:flex;height:100%;-ms-flex-pack:center;justify-content:center;left:0;margin:.5rem;padding:.5rem;position:absolute;right:0;z-index:999}#preloader .load{height:6rem;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:6rem}#preloader .load hr{animation:a 2s ease infinite;border:0;height:40%;margin:0;position:absolute;width:40%}#preloader .load :first-child{animation-delay:-1.5s;background:#fff}#preloader .load :nth-child(2){animation-delay:-1s;background:#3b82f6}#preloader .load :nth-child(3){animation-delay:-.5s;background:#fff}#preloader .load :last-child{background:#3b82f6}@keyframes a{0%,to{transform:translate(0)}25%{transform:translate(160%)}50%{transform:translate(160%,160%)}75%{transform:translateY(160%)}}.footer{background:#2b2d2f;color:#fff;margin:.5rem;padding:1rem;text-align:center}.footer a{color:#3b82f6}#landing,.footer a:focus,.footer a:hover{background:#2b2d2f;color:#fff}#landing{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100%;min-height:100vh;margin:.5rem;padding:.5rem;text-align:center;position:relative;overflow:hidden}#landing .particles-js-canvas-el,#landing>canvas{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;z-index:0}.landing-title{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:75em;padding:1rem 2rem;z-index:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;text-align:center}.landing-icons,.landing-title{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center}.landing-icons .social-link{color:#fff;position:relative;height:3rem;line-height:3rem;margin:.25rem;width:3rem}.landing-icons .social-link .circle{animation:c 1s ease-in-out forwards;fill:none;stroke-dasharray:40;transition:all .2s ease-in-out}.landing-icons .social-link .social{font-size:1.5rem;position:absolute;top:0;transition:all .5s ease-in-out;width:100%}.landing-icons .social-link .social-svg{fill:#fff}.landing-icons .social-link .label{display:none}.landing-icons .social-link:hover{cursor:pointer;z-index:10}.landing-icons .social-link:hover .circle{animation:b 1s ease-in-out forwards,d 1s linear forwards;fill:#fff;fill-opacity:1}.landing-icons .social-link:hover .social-svg{fill:#000}.landing-icons .social-link:hover .label{display:unset!important;position:relative;top:-2rem}.landing-icons .email:hover .circle{animation:b 1s ease-in-out forwards,e 1s linear forwards}.landing-icons .email:hover .social-svg{fill:#d44638}.landing-icons .linkedin:hover .circle{animation:b 1s ease-in-out forwards,f 1s linear forwards}.landing-icons .linkedin:hover .social-svg{fill:#007bb6}.landing-icons .twitter:hover .circle{animation:b 1s ease-in-out forwards,g 1s linear forwards}.landing-icons .twitter:hover .social-svg{fill:#1da1f2}@keyframes b{to{stroke-dasharray:510;stroke-width:.5rem}}@keyframes c{0%{stroke:#fff;stroke-dasharray:510;stroke-width:.5rem}to{stroke:#fff;stroke-dasharray:83;stroke-width:.5rem}}@keyframes d{to{stroke:#000}}@keyframes e{to{stroke:#b23121}}@keyframes f{to{stroke:#007bb6}}@keyframes g{to{stroke:#1da1f2}}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);color:hsla(0,0%,100%,.7);text-decoration:none;transition:all .3s ease;animation:i 1s ease 2s both}.scroll-indicator:hover{color:#3b82f6}.scroll-indicator:hover .scroll-arrow{transform:translateY(5px)}.scroll-indicator .scroll-indicator-inner{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;gap:.5rem}.scroll-indicator .scroll-text{font-size:.75rem;text-transform:uppercase;letter-spacing:2px;font-weight:500}.scroll-indicator .scroll-arrow{animation:h 2s infinite;transition:transform .3s ease}.scroll-indicator .scroll-arrow svg{width:24px;height:24px;stroke:currentColor}@keyframes h{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@keyframes i{0%{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes j{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;background:linear-gradient(135deg,#3b82f6,#60a5fa);border:none;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s ease;box-shadow:0 4px 15px rgba(59,130,246,.4);z-index:999}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{transform:translateY(-5px);box-shadow:0 8px 25px rgba(59,130,246,.5)}.back-to-top svg{width:24px;height:24px;stroke:#fff;stroke-width:2.5;fill:none}.layout .card .title{position:relative;display:inline-block;width:100%}.layout .card .title:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);width:60px;height:3px;background:linear-gradient(90deg,transparent,#3b82f6,transparent);border-radius:2px}.timeline-wrapper .timeline{list-style-type:none;padding:0;position:relative}.timeline-wrapper .timeline:before{background:linear-gradient(180deg,#3b82f6 0,#60a5fa 8%,#60a5fa 92%,#3b82f6);content:" ";height:100%;left:50%;margin-left:-.0675rem;position:absolute;width:.125rem;z-index:-1}.timeline-wrapper .timeline li{padding:1rem 0}.timeline-wrapper .hexagon{background:#3b82f6;height:.5rem;left:0;margin-left:auto;margin-right:auto;position:absolute;right:0;top:-.8rem;width:1rem}.timeline-wrapper .hexagon:after,.timeline-wrapper .hexagon:before{border-left:2rem solid transparent;border-right:2rem solid transparent;border-left-width:.5rem;border-right-width:.5rem;content:"";left:0;position:absolute}.timeline-wrapper .hexagon:before{border-bottom:.25rem solid #3b82f6;top:-.25rem}.timeline-wrapper .hexagon:after{border-top:.25rem solid #3b82f6;bottom:-.25rem}.timeline-wrapper .flag-wrapper{position:relative;text-align:center}.timeline-wrapper .flag{background:#2b2d2f;border-radius:.5rem;font-weight:600;padding:.25rem .5rem}.timeline-wrapper .flag span{position:relative;transition:.4s}.timeline-wrapper .flag span:after{content:"≫";color:#3b82f6;position:absolute;opacity:0;right:-1rem;transition:.4s}.timeline-wrapper .flag:hover span{letter-spacing:.05rem;padding-right:1.25rem}.timeline-wrapper .flag:hover span:after{opacity:1;right:0}.timeline-wrapper .time-wrapper{color:#fff;display:block;line-height:.5rem;margin-top:.3rem}.timeline-wrapper .time{background:#2b2d2f;border-radius:.5rem;display:inline-block;padding:.6rem}.timeline-wrapper .desc{background:linear-gradient(145deg,#3d4045,#2d2f33);border-radius:1rem;margin:1em 0 0;padding:1rem;text-align:center;border:1px solid hsla(0,0%,100%,.1);color:#e0e0e0}.timeline-wrapper .timeline-logo{margin-bottom:.75rem}.timeline-wrapper .timeline-logo img{width:60px;height:60px;-o-object-fit:contain;object-fit:contain;border-radius:10px;background:hsla(0,0%,100%,.95);padding:8px;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.2)}.timeline-wrapper .timeline-logo img:hover{transform:scale(1.15);box-shadow:0 6px 20px rgba(59,130,246,.4)}.timeline-wrapper .timeline-desc-text{margin-bottom:.75rem;font-size:.95rem;font-weight:500;color:#fff;line-height:1.4}.timeline-wrapper .tag-wrapper{margin-top:.75rem}.timeline-wrapper .tag-wrapper .tag{font-size:.75rem;padding:.35rem .6rem;background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);color:#60a5fa}.project{border-radius:1rem;margin:1rem 0;padding:.5rem 1rem}.project .name-link-wrapper{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.project .name-link-wrapper .links{font-size:1.5rem;margin:1rem .5rem}.project-desc{line-height:1rem}.project-stars-forks{fill:#fff;font-family:Josefin Sans,sans-serif}.tag-wrapper{margin:1rem 0 0}.tag{border-radius:.5rem;display:inline-block;margin-bottom:.25rem;padding:.5rem}.contact-icons{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;gap:1rem}.contact-icons .social-link{position:relative;height:3.5rem;width:3.5rem;border-radius:50%;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.contact-icons .social-link,.contact-icons .social-link .social{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.contact-icons .social-link .social{font-size:1.5rem;width:100%;height:100%}.contact-icons .social-link .social-svg{width:24px;height:24px;fill:#3b82f6;transition:fill .3s ease,transform .3s ease}.contact-icons .social-link:hover{cursor:pointer;transform:translateY(-5px) scale(1.1);background:rgba(59,130,246,.15);border-color:#3b82f6;box-shadow:0 10px 30px rgba(59,130,246,.3)}.contact-icons .social-link:hover .social-svg{fill:#fff;transform:scale(1.1)}.contact-icons .social-link.email:hover{background:rgba(212,70,56,.15);border-color:#d44638;box-shadow:0 10px 30px rgba(212,70,56,.3)}.contact-icons .social-link.email:hover .social-svg{fill:#d44638}.contact-icons .social-link.linkedin:hover{background:rgba(0,123,182,.15);border-color:#007bb6;box-shadow:0 10px 30px rgba(0,123,182,.3)}.contact-icons .social-link.linkedin:hover .social-svg{fill:#007bb6}.contact-icons .social-link.github:hover{background:hsla(0,0%,100%,.15);border-color:#e0e0e0;box-shadow:0 10px 30px hsla(0,0%,100%,.2)}.contact-icons .social-link.github:hover .social-svg{fill:#fff}@media only screen and (min-width:48em){.layout{margin:.5rem auto;padding:2rem}.layout .card .description,.layout .card .subtitle{font-size:1.25rem}.landing-title h1{font-size:3rem}.landing-icons .social-link{width:4rem;height:4rem;line-height:4rem}.landing-icons .social-link .social{font-size:2rem}.timeline-wrapper .timeline{margin:0 auto;width:39.25rem}.timeline-wrapper .timeline li:after{clear:both;content:"";display:block}.timeline-wrapper .direction-l{float:left;text-align:right;width:18.5rem}.timeline-wrapper .direction-l .hexagon{left:auto;right:-1.6rem;top:.4rem}.timeline-wrapper .direction-l .flag-wrapper{display:inline-block;text-align:right}.timeline-wrapper .direction-l .time-wrapper{float:left;margin-top:-.1rem}.timeline-wrapper .direction-l .desc{text-align:right}.timeline-wrapper .direction-r{float:right;text-align:left;width:18.5rem}.timeline-wrapper .direction-r .hexagon{left:-1.6rem;right:auto;top:.4rem}.timeline-wrapper .direction-r .flag-wrapper{display:inline-block;text-align:left}.timeline-wrapper .direction-r .time-wrapper{float:right;margin-top:-.1rem}.timeline-wrapper .direction-r .desc{text-align:left}.projects-wrapper{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}.projects-wrapper>*{width:44%}.contact-icons .social-link{width:4rem;height:4rem;line-height:4rem}.contact-icons .social-link .social{font-size:2rem}}@media only screen and (min-width:62em){.layout{padding:3rem}.layout .card{padding:1rem 3rem}.timeline-wrapper .timeline{width:49rem}.timeline-wrapper .direction-l,.timeline-wrapper .direction-r{width:23.35rem}.projects-wrapper>*{width:45%}}@media only screen and (min-width:75em){.layout{padding:5rem}.timeline-wrapper .timeline{width:58rem}.timeline-wrapper .direction-l,.timeline-wrapper .direction-r{width:27.9rem}.projects-wrapper>*{width:46%}}.about-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:3rem;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center}@media (max-width:48em){.about-container{-ms-flex-direction:column;flex-direction:column;gap:2rem}}.about-image{-ms-flex-negative:0;flex-shrink:0;position:relative}.about-image:before{top:-8px;left:-8px;right:-8px;bottom:-8px;background:conic-gradient(from 0deg,#3b82f6,#a78bfa,#f472b6,#a78bfa,#3b82f6);animation:k 4s linear infinite;opacity:.7}.about-image:after,.about-image:before{content:"";position:absolute;border-radius:50%;z-index:-1}.about-image:after{top:0;left:0;right:0;bottom:0;background:#2b2d2f;transform:scale(.92)}.about-image img{width:200px;height:200px;border-radius:50%;-o-object-fit:cover;object-fit:cover;border:4px solid rgba(59,130,246,.5);box-shadow:0 0 30px rgba(59,130,246,.4),8px 8px 16px rgba(0,0,0,.4),-8px -8px 16px hsla(0,0%,100%,.03);transition:transform .3s ease,box-shadow .3s ease;position:relative;z-index:1}.about-image img:hover{transform:scale(1.05);box-shadow:0 0 50px rgba(59,130,246,.6),8px 8px 20px rgba(0,0,0,.5),-8px -8px 20px hsla(0,0%,100%,.05)}@media (max-width:48em){.about-image img{width:150px;height:150px}}.about-image:hover:before{animation:k 2s linear infinite;opacity:1}@keyframes k{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.about-content{-ms-flex:1;flex:1;min-width:280px}.about-content .description{text-align:justify;line-height:1.8}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(43,45,47,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid hsla(0,0%,100%,.1);padding:.75rem 0;transition:transform .3s ease,opacity .3s ease}.navbar.navbar-hidden{transform:translateY(-100%);opacity:0}.navbar.navbar-visible{transform:translateY(0);opacity:1}.navbar .navbar-container{max-width:75em;margin:0 auto;padding:0 2rem;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.navbar .navbar-brand{font-size:1.5rem;font-weight:700;color:#3b82f6;text-decoration:none;letter-spacing:1px}.navbar .navbar-menu{display:-ms-flexbox;display:flex;list-style:none;margin:0;padding:0;gap:2rem}.navbar .navbar-menu li{list-style:none}.navbar .navbar-menu a{color:#e0e0e0;text-decoration:none;font-size:.95rem;font-weight:500;transition:color .3s ease;position:relative}.navbar .navbar-menu a.active,.navbar .navbar-menu a:hover{color:#3b82f6}.navbar .navbar-menu a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:#3b82f6;transition:width .3s ease}.navbar .navbar-menu a.active:after,.navbar .navbar-menu a:hover:after{width:100%}.navbar .navbar-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem}.navbar .navbar-toggle .hamburger{display:block;width:24px;height:2px;background:#e0e0e0;position:relative;transition:all .3s ease}.navbar .navbar-toggle .hamburger:after,.navbar .navbar-toggle .hamburger:before{content:"";position:absolute;width:24px;height:2px;background:#e0e0e0;transition:all .3s ease}.navbar .navbar-toggle .hamburger:before{top:-7px}.navbar .navbar-toggle .hamburger:after{top:7px}@media (max-width:768px){.navbar .navbar-toggle{display:block}.navbar .navbar-menu{position:absolute;top:100%;left:0;right:0;background:rgba(43,45,47,.98);-ms-flex-direction:column;flex-direction:column;padding:1rem 2rem;gap:1rem;transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease}.navbar .navbar-menu.active{transform:translateY(0);opacity:1;visibility:visible}}.skills-container{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;gap:2rem;max-width:75em;margin:2rem auto;padding:0 1rem}.skills-container .skill-box{-ms-flex:0 1 calc(33.333% - 1.5rem);flex:0 1 calc(33.333% - 1.5rem);min-width:280px;max-width:400px}@media (max-width:62em){.skills-container .skill-box{-ms-flex:0 1 calc(50% - 1rem);flex:0 1 calc(50% - 1rem);min-width:250px}}@media (max-width:48em){.skills-container{gap:1.5rem}.skills-container .skill-box{-ms-flex:0 1 100%;flex:0 1 100%;max-width:100%}}.skill-box{background:linear-gradient(145deg,#6a6f78,#5a5f66);border-radius:1.25rem;padding:1.75rem 2rem;border:1px solid hsla(0,0%,100%,.2);box-shadow:6px 6px 12px rgba(0,0,0,.3),-6px -6px 12px hsla(0,0%,100%,.06),inset 0 1px 0 hsla(0,0%,100%,.15);transition:transform .4s cubic-bezier(.175,.885,.32,1.275),box-shadow .4s ease;position:relative;overflow:hidden}.skill-box:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#3b82f6,#a78bfa,#3b82f6);background-size:200% 100%;opacity:0;transition:opacity .3s ease;animation:l 2s linear infinite}@keyframes l{0%{background-position:-200% 0}to{background-position:200% 0}}.skill-box:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 15px 35px rgba(0,0,0,.4),0 0 25px rgba(59,130,246,.25),0 0 50px rgba(59,130,246,.1),inset 0 0 0 1px rgba(59,130,246,.15)}.skill-box:hover:before{opacity:1}.skill-box .skill-title{font-size:1.15rem;color:#fff;font-weight:600;padding-bottom:.6rem;border-bottom:2px solid rgba(59,130,246,.6);gap:.5rem;text-shadow:0 1px 2px rgba(0,0,0,.3);letter-spacing:.02em}.skill-box .skill-logos,.skill-box .skill-title{margin-bottom:1.25rem;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.skill-box .skill-logos{-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1.25rem;-ms-flex-pack:start;justify-content:flex-start}.skill-box .skill-logos img{width:54px;height:54px;-o-object-fit:contain;object-fit:contain;filter:none;transition:filter .3s ease,transform .3s ease,background .3s ease;padding:8px;border-radius:12px;background:hsla(0,0%,100%,.9);box-shadow:0 2px 6px rgba(0,0,0,.15)}.skill-box .skill-logos img:hover{filter:brightness(1.1);transform:scale(1.15) translateY(-4px);background:#fff;box-shadow:0 6px 16px rgba(59,130,246,.25)}.skill-box .skill-text{font-size:.85rem;color:#aaa;margin:0;line-height:1.6;font-style:italic}#skills.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:75em;margin:0 auto;padding:0 1rem}@media (max-width:62em){#skills.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:48em){#skills.skills-grid{grid-template-columns:1fr}}.skill-category{background:linear-gradient(145deg,hsla(0,0%,45%,.15) 15%,#2b2d2f 80%);border-radius:1rem;padding:1.5rem;border:1px solid hsla(0,0%,100%,.05);box-shadow:8px 8px 16px rgba(0,0,0,.4),-8px -8px 16px hsla(0,0%,100%,.03);transition:transform .3s ease,box-shadow .3s ease}.skill-category:hover{transform:translateY(-5px);box-shadow:8px 8px 20px rgba(0,0,0,.5),-8px -8px 20px hsla(0,0%,100%,.05),0 10px 40px rgba(59,130,246,.15)}.skill-category h3{font-size:1.1rem;color:#3b82f6;margin-bottom:1.25rem;font-weight:600;padding-bottom:.5rem;border-bottom:1px solid rgba(59,130,246,.3)}.skill-category .skill-icons{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;-ms-flex-pack:start;justify-content:flex-start}.skill-category .skill-item{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;gap:.3rem;min-width:40px}.skill-category .skill-item i{font-size:1.2rem;color:#e0e0e0;transition:color .3s ease,transform .3s ease}.skill-category .skill-item .skill-img{width:1.2rem;height:1.2rem;-o-object-fit:contain;object-fit:contain;filter:grayscale(100%) brightness(.9);transition:filter .3s ease,transform .3s ease}.skill-category .skill-item span{font-size:.7rem;color:#888;text-align:center;white-space:nowrap}.skill-category .skill-item:hover i{color:#3b82f6;transform:scale(1.15)}.skill-category .skill-item:hover .skill-img{filter:grayscale(0) brightness(1);transform:scale(1.15)}.skill-category .skill-desc{font-size:.8rem;color:#777;margin:0;line-height:1.5;font-style:italic}#projects.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:75em;margin:0 auto;padding:0 1rem}@media (max-width:62em){#projects.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:48em){#projects.projects-grid{grid-template-columns:1fr}}.project-card{background:linear-gradient(145deg,hsla(0,0%,45%,.15) 15%,#2b2d2f 80%);border-radius:1rem;overflow:hidden;border:1px solid hsla(0,0%,100%,.05);box-shadow:8px 8px 16px rgba(0,0,0,.4),-8px -8px 16px hsla(0,0%,100%,.03);transition:transform .4s cubic-bezier(.175,.885,.32,1.275),box-shadow .4s ease}.project-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 40px rgba(0,0,0,.5),0 0 30px rgba(59,130,246,.3),0 0 60px rgba(59,130,246,.15),inset 0 0 0 1px rgba(59,130,246,.2)}.project-card:hover .project-overlay{opacity:1}.project-card:hover .project-image img{transform:scale(1.1);filter:brightness(.4)}.project-card:hover .project-tags-mini span{transform:translateY(0);opacity:1}.project-card .project-image{position:relative;height:180px;overflow:hidden}.project-card .project-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease,filter .4s ease;filter:brightness(1)}.project-card .project-image .project-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.7) 50%,rgba(0,0,0,.9));display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;opacity:0;transition:opacity .4s ease}.project-card .project-image .project-overlay .project-tags-mini{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.75rem;-ms-flex-pack:center;justify-content:center;padding:1.5rem;max-width:90%}.project-card .project-image .project-overlay .project-tags-mini span{background:rgba(59,130,246,.25);color:#fff;padding:.4rem 1rem;border-radius:25px;font-size:.85rem;font-weight:500;border:1px solid rgba(59,130,246,.5);box-shadow:0 2px 10px rgba(59,130,246,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transform:translateY(10px);opacity:0;transition:transform .3s ease,opacity .3s ease,background .3s ease}.project-card .project-image .project-overlay .project-tags-mini span:first-child{transition-delay:.05s}.project-card .project-image .project-overlay .project-tags-mini span:nth-child(2){transition-delay:.1s}.project-card .project-image .project-overlay .project-tags-mini span:nth-child(3){transition-delay:.15s}.project-card .project-image .project-overlay .project-tags-mini span:nth-child(4){transition-delay:.2s}.project-card .project-image .project-overlay .project-tags-mini span:nth-child(5){transition-delay:.25s}.project-card .project-image .project-overlay .project-tags-mini span:hover{background:rgba(59,130,246,.5);transform:translateY(-2px) scale(1.05)}.project-card .project-content{padding:1.25rem}.project-card .project-content h3{font-size:1.1rem;color:#fff;margin-bottom:.75rem;font-weight:600}.project-card .project-content p{font-size:.85rem;color:#aaa;line-height:1.5;margin-bottom:1rem}.project-card .project-content .project-links{display:-ms-flexbox;display:flex;gap:.75rem}.project-card .project-content .project-links .btn-project{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:.5rem;padding:.5rem 1rem;background:rgba(59,130,246,.1);color:#3b82f6;border-radius:8px;text-decoration:none;font-size:.85rem;transition:all .3s ease;border:1px solid rgba(59,130,246,.2)}.project-card .project-content .project-links .btn-project i{font-size:1rem}.project-card .project-content .project-links .btn-project:hover{background:rgba(59,130,246,.2);color:#3b82f6;transform:translateY(-2px)}.project-card .project-content .project-links .btn-project.btn-private{background:hsla(0,0%,53%,.1);color:#888;border-color:hsla(0,0%,53%,.2);cursor:default}.project-card .project-content .project-links .btn-project.btn-private:hover{transform:none;color:#888}.cursor-glow{position:fixed;width:300px;height:300px;background:radial-gradient(circle,rgba(59,130,246,.08) 0,rgba(59,130,246,.02) 40%,transparent 70%);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:opacity .3s ease}@media (max-width:48em){.cursor-glow{display:none}}.timeline-wrapper .hexagon,.timeline-wrapper .hexagon:after,.timeline-wrapper .hexagon:before{animation:m 3s ease-in-out infinite}@keyframes m{0%,to{box-shadow:0 0 0 rgba(59,130,246,.4);transform:scale(1)}50%{box-shadow:0 0 15px rgba(59,130,246,.6);transform:scale(1.1)}}.project-card{transform-style:preserve-3d;perspective:1000px}.project-card:hover .project-content{transform:translateZ(20px)}.project-card .project-content{transition:transform .3s ease}.footer{background:linear-gradient(180deg,rgba(43,45,47,0),#2b2d2f 20%);padding:3rem 1rem 2rem;margin-top:2rem;position:relative}.footer:before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:200px;height:2px;background:linear-gradient(90deg,transparent,#3b82f6,transparent)}.footer .footer-content{max-width:75em;margin:0 auto;text-align:center}.footer .footer-tagline{color:hsla(0,0%,100%,.5);font-size:.85rem;font-style:italic;margin-bottom:1rem}.footer .footer-links{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.footer .footer-links a{color:hsla(0,0%,100%,.7);text-decoration:none;font-size:.85rem;transition:color .3s ease;padding:.25rem .5rem}.footer .footer-links a:hover{color:#3b82f6}.footer .footer-links .footer-divider{color:hsla(0,0%,100%,.3);font-size:.7rem}.footer .footer-copyright{color:hsla(0,0%,100%,.4);font-size:.8rem;margin:0}.footer p{color:hsla(0,0%,100%,.6);font-size:.9rem}.footer p a{color:#3b82f6;transition:color .3s ease}.footer p a:hover{color:#60a5fa}html{scroll-behavior:smooth}::-moz-selection{background:rgba(59,130,246,.3);color:#fff}::selection{background:rgba(59,130,246,.3);color:#fff}.highlight-link{position:relative}.highlight-link:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:#3b82f6;transform:scaleX(0);transform-origin:right;transition:transform .3s ease}.highlight-link:hover:after{transform:scaleX(1);transform-origin:left}.cta-wrapper{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin-top:2rem}.cta-button{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:.75rem;padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#3b82f6,#a78bfa,#3b82f6);background-size:200% 200%;border:none;border-radius:50px;text-decoration:none;cursor:pointer;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 4px 15px rgba(59,130,246,.4),0 0 0 0 rgba(59,130,246,.4);animation:n 3s ease infinite}@keyframes n{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.cta-button svg{transition:transform .3s ease}.cta-button:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 8px 30px rgba(59,130,246,.5),0 0 40px rgba(59,130,246,.3)}.cta-button:hover svg{transform:translateX(5px)}.cta-button:active{transform:translateY(-2px) scale(1.02)}.cta-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3),transparent);transition:left .5s ease}.cta-button:hover:before{left:100%}.landing-tagline{font-size:1rem;color:hsla(0,0%,100%,.55);margin-top:.75rem;margin-bottom:1.5rem;font-weight:400;letter-spacing:.3px;line-height:1.6;animation:j 1s ease 1.2s both}@media (min-width:48em){.landing-tagline{font-size:1.1rem}}.hero-cta-row{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;gap:1rem;margin-top:3rem;animation:j 1s ease 1.6s both;-ms-flex-wrap:wrap;flex-wrap:wrap}.hero-btn,.hero-cta-row{-ms-flex-align:center;align-items:center}.hero-btn{display:-ms-inline-flexbox;display:inline-flex;gap:.5rem;padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;border-radius:50px;text-decoration:none;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);font-family:Raleway,sans-serif}.hero-btn svg{transition:transform .3s ease}.hero-btn:hover svg{transform:translateX(3px)}.hero-btn-primary{color:#fff;background:linear-gradient(135deg,#3b82f6,#60a5fa);border:none;box-shadow:0 4px 15px rgba(59,130,246,.4)}.hero-btn-primary:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 25px rgba(59,130,246,.5);color:#fff}.hero-btn-primary:hover svg{transform:translateY(2px)}.hero-btn-outline{color:#fff;background:transparent;border:1.5px solid hsla(0,0%,100%,.3)}.hero-btn-outline:hover{border-color:#3b82f6;color:#3b82f6;background:rgba(59,130,246,.08);transform:translateY(-3px)}.stats-bar{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:1.5rem;margin:2.5rem auto 1.5rem;padding:2rem 2.5rem;background:linear-gradient(145deg,hsla(0,0%,100%,.04),hsla(0,0%,100%,.01));border:1px solid hsla(0,0%,100%,.08);border-radius:1.5rem;max-width:900px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.stats-bar:before{content:"";position:absolute;inset:-1px;background:linear-gradient(90deg,transparent,rgba(59,130,246,.3) 50%,transparent);background-size:200% 100%;animation:o 4s ease-in-out infinite;border-radius:1.5rem;z-index:-1;opacity:.5}@keyframes o{0%,to{background-position:-200% 0}50%{background-position:200% 0}}@media (max-width:48em){.stats-bar{gap:1rem;padding:1.5rem 1rem}}.stat-item{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;min-width:100px;padding:.5rem}@media (max-width:48em){.stat-item{min-width:80px}}.stat-number{font-size:2.2rem;font-weight:800;font-family:Josefin Sans,sans-serif;background:linear-gradient(135deg,#3b82f6,#60a5fa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2}@media (max-width:48em){.stat-number{font-size:1.6rem}}.stat-suffix{font-size:1.4rem;font-weight:700;font-family:Josefin Sans,sans-serif;background:linear-gradient(135deg,#3b82f6,#60a5fa);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}@media (max-width:48em){.stat-suffix{font-size:1rem}}.stat-label{font-size:.75rem;color:hsla(0,0%,100%,.5);text-transform:uppercase;letter-spacing:1px;margin-top:.4rem;text-align:center;font-weight:500}@media (max-width:48em){.stat-label{font-size:.65rem}}.stat-divider{width:1px;height:50px;background:linear-gradient(180deg,transparent,hsla(0,0%,100%,.15),transparent)}@media (max-width:48em){.stat-divider{height:35px}}@media (max-width:480px){.stat-divider{display:none}}.status-badge-wrapper{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin-top:1.5rem}.status-badge{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:.6rem;padding:.6rem 1.5rem;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.25);border-radius:50px;font-size:.85rem;color:#4ade80;font-weight:500;letter-spacing:.3px;transition:all .3s ease}.status-badge:hover{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.4);box-shadow:0 0 20px rgba(34,197,94,.15)}.status-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;animation:p 2s ease-in-out infinite;-ms-flex-negative:0;flex-shrink:0}@keyframes p{0%,to{box-shadow:0 0 0 0 rgba(74,222,128,.5)}50%{box-shadow:0 0 0 6px rgba(74,222,128,0)}}.project-filters{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.75rem;margin-bottom:2rem}.filter-btn{padding:.5rem 1.25rem;background:transparent;border:1px solid hsla(0,0%,100%,.15);border-radius:50px;color:hsla(0,0%,100%,.6);font-size:.85rem;font-weight:500;font-family:Raleway,sans-serif;cursor:pointer;transition:all .3s ease}.filter-btn:hover{border-color:rgba(59,130,246,.5);color:#3b82f6;background:rgba(59,130,246,.05)}.filter-btn.active{background:linear-gradient(135deg,#3b82f6,#60a5fa);border-color:transparent;color:#fff;box-shadow:0 4px 15px rgba(59,130,246,.35)}.project-card.featured{position:relative;border:1.5px solid rgba(251,191,36,.35)}.project-card.featured:hover{box-shadow:0 20px 40px rgba(0,0,0,.5),0 0 30px rgba(251,191,36,.2),0 0 60px rgba(251,191,36,.1),inset 0 0 0 1px rgba(251,191,36,.15)}.featured-badge{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#1a1a2e;padding:.3rem .85rem;font-size:.75rem;font-weight:700;border-radius:50px;z-index:10;box-shadow:0 2px 10px rgba(251,191,36,.4);letter-spacing:.5px}.project-impact{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.impact-chip{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:.3rem;padding:.3rem .75rem;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.2);border-radius:50px;font-size:.75rem;color:#4ade80;font-weight:500;white-space:nowrap;transition:all .3s ease}.impact-chip:hover{background:rgba(34,197,94,.15);transform:translateY(-1px)}.project-card{transition:transform .4s cubic-bezier(.175,.885,.32,1.275),box-shadow .4s ease,opacity .4s ease}.project-card.hidden{opacity:0;transform:scale(.8) translateY(20px);pointer-events:none;position:absolute;visibility:hidden}.card{opacity:0;transform:translateY(30px);animation:q .8s ease forwards}.card:first-child{animation-delay:.15s}.card:nth-child(2){animation-delay:.3s}.card:nth-child(3){animation-delay:.45s}.card:nth-child(4){animation-delay:.6s}.card:nth-child(5){animation-delay:.75s}.card:nth-child(6){animation-delay:.9s}@keyframes q{to{opacity:1;transform:translateY(0)}}