.preloader{z-index:9999;background:#0b1210;place-items:center;animation:.4s 1.2s forwards preloader-exit;display:grid;position:fixed;inset:0}.preloader-logo{place-items:center;width:150px;height:150px;display:grid;position:relative}.preloader-logo img{filter:drop-shadow(0 0 18px #b5e8ca66);width:90px;height:auto;display:block}.preloader-ring{border:2px solid #b5e8ca;border-color:#b5e8ca #b5e8ca #b5e8ca1f #b5e8ca1f;border-radius:50%;animation:1s linear infinite preloader-spin;position:absolute;inset:0;box-shadow:0 0 16px #b5e8ca1a}@keyframes preloader-spin{to{transform:rotate(360deg)}}@keyframes preloader-exit{to{opacity:0;visibility:hidden;pointer-events:none}}@media (prefers-reduced-motion:reduce){.preloader-ring{animation:none}.preloader{animation-duration:10ms;animation-delay:0s}}.header{z-index:100;background:var(--background);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:90px;display:flex}.logo{flex-shrink:0}.logo img{width:60px;height:auto;display:block}.main-nav{align-items:center;gap:clamp(12px,2vw,28px);display:flex}.main-nav a{color:var(--text);font-size:14px;font-weight:500;font-family:var(--inter);text-decoration:none;transition:color .2s,background-color .2s,box-shadow .2s}.main-nav a:hover{color:var(--accent-hover)}.main-nav .header-contact{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;border-radius:6px;padding:11px 18px}.main-nav .header-contact:hover{color:var(--color-background);background:var(--accent);box-shadow:0 0 24px #91d5ae2e}.menu-toggle{width:44px;height:44px;color:var(--accent);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:0;display:none}.menu-toggle span{background:currentColor;border-radius:2px;width:26px;height:2px;transition:transform .2s,opacity .2s}.logo:focus-visible,.main-nav a:focus-visible,.menu-toggle:focus-visible{outline:2px solid var(--accent-hover);outline-offset:5px}@media (width<=767px){.header-inner{min-height:80px}.menu-toggle{display:flex}.menu-toggle.is-open span:first-child{transform:translateY(8px)rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){transform:translateY(-8px)rotate(-45deg)}.main-nav{border:1px solid var(--accent-hover);background:var(--background);flex-direction:column;align-items:stretch;gap:4px;width:40%;max-height:calc(100dvh - 150px);padding:20px 5%;transition:all 1.8s ease-in-out;display:none;position:absolute;top:100%;right:0;overflow-y:auto}.main-nav.is-open{display:flex}.main-nav a{padding:12px 0}.main-nav .header-contact{align-self:flex-start;margin-top:10px;padding:11px 20px}}@media (prefers-reduced-motion:reduce){.menu-toggle span,.main-nav a{transition:none}}section.banner{padding:250px 0}.banner-content{flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.banner-content h2{font-size:clamp(1.35rem,3.75vw,4.75rem)}.banner-title{font-family:var(--inter-bold);color:var(--accent);margin-top:0;font-size:clamp(.35rem,3.75vw,1.35rem);font-weight:400}.banner-name{font-family:var(--inter-bold);color:var(--text);margin:0;font-size:clamp(1.35rem,3.75vw,4.75rem);font-weight:400}.banner-intro{font-family:var(--inter-bold);color:var(--muted);margin:0;font-size:clamp(1.35rem,3.75vw,4.75rem);font-weight:400}.banner-description{font-family:var(--inter);color:var(--muted);margin:0;font-weight:400}.fb-cta{border:1px solid var(--accent-hover);background:0 0;border-radius:10px;width:auto;transition:box-shadow .3s ease-in-out}.fb-cta a{color:var(--accent-hover);width:max-content;height:auto;font-size:18px;font-family:var(--inter);padding:15px 20px;text-decoration:none;display:inline-flex}.fb-cta:hover,.fb-cta:focus-within{box-shadow:0 0 20px #91d5ae80,0 0 38px #91d5ae4d,inset 0 0 20px #91d5ae1a}@media (width>=1200px){.banner-description{width:55%}}.beyond-coding h3{font-family:var(--space-grotesk);color:var(--accent-hover)}.hobbies-flex{gap:20px;margin:24px 0 0;padding:0}.hobby-item{position:relative}.hobby-item img{object-fit:contain;width:40px;height:40px;transition:filter .5s;display:block}.hobby-item:hover img,.hobby-item:focus-visible img{filter:drop-shadow(0 0 10px #b5e8ca80)}.hobby-item:focus-visible{outline-offset:4px;outline:2px solid #b5e8ca}.hobby-tooltip{z-index:2;color:#b5e8ca;white-space:nowrap;pointer-events:none;opacity:0;font-size:12px;font-family:var(--space-grotesk);background:#131e19;border:1px solid #293d31;border-radius:6px;padding:6px 10px;transition:all .5s ease-in-out;position:absolute;top:8px;left:50%;transform:translate(-50%)}.hobby-item:hover .hobby-tooltip{opacity:1}section.about{padding:250px 0}.about-me-image{display:none}section.about .col-left-heading:after{content:"";background-color:var(--muted);width:220px;height:.5px;margin-left:20px;display:block}section.about .col-right-content{padding-left:200px}section.about .col-right-content img{border:7px double var(--border);border-radius:10px;width:325px;padding:5px;transition:all .9s ease-in-out}section.about .col-right-content img:hover{box-shadow:0 0 40px #91d5ae80,0 0 40px #91d5ae4d,inset 0 0 40px #91d5ae1a}@media (width>=1200px){section.about .col-right-content{padding-left:200px}}@media (width<=1199px){.col-left,.col-right{width:100%!important}.row.about-row{flex-direction:column-reverse}.about-image{display:none}.about-me-image{width:100%;display:block}img.about-me-image.mb-20{border:7px double var(--border);border-radius:10px;width:60%;padding:5px;transition:all .9s ease-in-out}}.skills{padding:250px 0}section.skills .skill-heading:after{content:"";background-color:var(--muted);width:220px;height:.5px;margin-left:20px;display:block}.skills h3{font-family:var(--space-grotesk);color:var(--accent-hover)}.skills-flex{gap:20px;margin:24px 0 0;padding:0}.skill-item{list-style:none}.skill-item img{object-fit:contain;width:45px;height:45px;transition:filter .5s;display:block}.skill-item:hover img,.skill-item:focus-visible img{filter:drop-shadow(0 0 10px #b5e8ca80)}.skill-item:focus-visible{outline-offset:4px;outline:2px solid #b5e8ca}.skill-tooltip{z-index:2;color:#b5e8ca;white-space:nowrap;pointer-events:none;opacity:0;font-size:12px;font-family:var(--space-grotesk);background:#131e19;border:1px solid #293d31;border-radius:6px;padding:6px 10px;transition:all .5s ease-in-out;position:absolute;top:calc(20% + 8px);left:50%;transform:translate(-50%)}.skill-item:hover .skill-tooltip{opacity:1}.skills-nav{flex-direction:column;align-items:start;margin-top:30px;padding:6px 4px 16px;display:flex}.skills-nav-item{color:var(--text);cursor:pointer;white-space:nowrap;font-size:16px;font-family:var(--inter);background:0 0;border:none;flex-shrink:0;padding:10px 0;text-decoration:none}.skills-nav-item:hover,.skills-nav-item.active{color:#b5e8ca}.skills-logos{flex-wrap:wrap;align-items:center;gap:30px;width:38%;min-height:140px;margin:0;padding:30px 0;list-style:none;display:flex}.skills-logos img{object-fit:contain;width:80px;height:80px;display:block}.skill-item img:hover{filter:drop-shadow(0 0 12px #b5e8ca80)}.skills-tools{gap:120px}@media (width<=991px){.skills-logos img{width:50px;height:50px}}@media (width<=767px){.skills-nav-item{padding:10px 14px 10px 0;font-size:13px}.skill-item{gap:20px}.skill-item img{width:64px;height:64px}}@media (width<=575px){.skill-item img{width:30px}}@media (width<=474px){.skills-tools{gap:70px}.skills-logos{gap:0}}section.contacts{z-index:1000;top:55%;left:7.5%}section.contacts img{filter:drop-shadow(0 0 8px #b5e8ca80);width:30px}section.contacts .contact-listing:after{content:"";background:var(--accent);width:1px;height:145px;margin-top:20px;display:inline-flex;position:absolute;left:62%;transform:translate(-50%)}section.email{z-index:1000;width:100%;padding-bottom:100px;bottom:0}section.email a{color:var(--accent-hover);font-family:Space Grotesk;text-decoration:none}section.email .border-email{background:var(--accent-hover);width:195px;height:1px}section.email .get-in-touch-email button{cursor:pointer;color:var(--accent);background:0 0;border:1px solid;border-radius:5px;padding:7px;transition:all .9s ease-in-out}section.email button:hover{box-shadow:0 0 20px #91d5ae80,0 0 38px #91d5ae4d,inset 0 0 20px #91d5ae1a}.floating-contact{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,visibility .3s}.floating-contact.is-visible{opacity:1;visibility:visible;pointer-events:auto}@media (width<=767px){.get-in-touch-email{flex-direction:column;gap:20px}}section.projects{padding:250px 0}section.projects h3{margin-bottom:15px}section.projects .card-img{border-radius:5px;height:180px;overflow:hidden}section.projects .project-item:hover{filter:drop-shadow(0 0 8px #b5e8ca80)}section.projects img{object-fit:cover;width:100%;height:-webkit-fill-available;transition:all 1.9s ease-in-out}section.projects .project-item{width:31.3%}section.projects .projects-flex{gap:24px}section.projects .project-heading:after{content:"";background-color:var(--muted);width:220px;height:.5px;margin-left:20px;display:block}section.projects .card{border:1px solid var(--accent);border-radius:5px;height:-webkit-fill-available;padding:15px}section.projects .card:hover img{scale:1.2}section.projects .card-img .card-img-overlay{z-index:100;display:none}section.projects .card-img:hover .card-img-overlay{display:flex}section.projects .card-img-overlay{background:#0008;justify-content:center;align-items:center;width:100%;height:100%;display:none;top:0}section.projects .card-img-overlay a{color:var(--accent);font-family:Inter-Bold;text-decoration:none}@media (width<=1210px){section.projects .project-item{width:30.3%}}@media (width<=1199px){section.projects .project-item{width:47.3%}section.projects .custom-container{width:70%}}@media (width<=767px){section.projects .project-item{width:100%}}.resume-modal{color:#e8eee9;background:#131e19;border:1px solid #293d31;border-radius:16px;width:min(520px,100% - 32px);max-height:calc(100dvh - 48px);margin:auto;padding:0;overflow-y:auto;box-shadow:0 0 40px #b5e8ca1f}.resume-modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000bf}.resume-modal-content{padding:40px 32px 24px;position:relative}.resume-modal-close{width:44px;height:44px;font:inherit;color:#b5e8ca;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;font-size:30px;line-height:1;display:grid;position:absolute;top:10px;right:10px}.resume-modal h2{margin:0 36px 14px 0;font-size:28px}.resume-modal-description{color:#a3b3a8;margin:0 0 28px;line-height:1.7}.resume-form{gap:20px;display:grid}.resume-fields{border:0;gap:20px;min-width:0;margin:0;padding:0;display:grid}.resume-field{gap:8px;display:grid}.resume-field input::placeholder,.resume-field textarea::placeholder{font-family:Inter}.resume-field label{font-family:Inter-Bold;font-size:14px;font-weight:500}.resume-field label span{color:#a3b3a8;font-weight:400}.resume-field input,.resume-field textarea{box-sizing:border-box;width:100%;font:inherit;color:#e8eee9;background:#0b1210;border:1px solid #293d31;border-radius:8px;padding:13px 15px;font-size:16px}.resume-field textarea{resize:vertical;min-height:130px}.resume-submit{width:100%;font:inherit;color:#b5e8ca;cursor:pointer;background:0 0;border:1px solid #b5e8ca;border-radius:8px;padding:14px 20px;font-family:Space Grotesk;font-weight:500;transition:box-shadow .25s}.resume-submit:hover:not(:disabled){box-shadow:0 0 10px #b5e8ca4d,0 0 24px #b5e8ca33}.resume-fields:disabled{opacity:.65}.resume-fields:disabled .resume-submit{cursor:default}.resume-field input:focus-visible,.resume-field textarea:focus-visible,.resume-submit:focus-visible,.resume-modal-close:focus-visible{outline-offset:3px;outline:2px solid #b5e8ca}.resume-status{color:#a3b3a8;min-height:24px;margin:0;font-size:14px;line-height:1.6}.resume-status-success{color:#b5e8ca}.resume-status-error,.resume-status-invalid{color:#f3aaaa}.resume-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=767px){.resume-modal-content{padding:40px 24px 24px}}@media (prefers-reduced-motion:reduce){.resume-submit{transition:none}}.contact-modal{color:#e8eee9;background:#131e19;border:1px solid #293d31;border-radius:16px;width:min(520px,100% - 32px);max-height:calc(100dvh - 48px);margin:auto;padding:0;overflow-y:auto;box-shadow:0 0 40px #b5e8ca1f}.contact-modal::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000bf}.contact-modal-content{padding:40px 32px 24px;position:relative}.contact-modal-close{width:44px;height:44px;font:inherit;color:#b5e8ca;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;font-size:30px;line-height:1;display:grid;position:absolute;top:10px;right:10px}.contact-modal h2{margin:0 36px 14px 0;font-size:28px}.contact-modal-description{color:#a3b3a8;margin:0 0 28px;line-height:1.7}.contact-form{gap:20px;display:grid}.contact-fields{border:0;gap:20px;min-width:0;margin:0;padding:0;display:grid}.contact-field{gap:8px;display:grid}.contact-field label{font-family:Inter-Bold;font-size:14px;font-weight:500}.contact-field label span{color:#a3b3a8;font-weight:400}.contact-field input,.contact-field textarea{box-sizing:border-box;width:100%;font:inherit;color:#e8eee9;background:#0b1210;border:1px solid #293d31;border-radius:8px;padding:13px 15px;font-size:16px}.contact-field textarea{resize:vertical;min-height:130px}.contact-submit{width:100%;font:inherit;color:#b5e8ca;cursor:pointer;background:0 0;border:1px solid #b5e8ca;border-radius:8px;padding:14px 20px;font-family:Space Grotesk;font-weight:500;transition:box-shadow .25s}.contact-submit:hover:not(:disabled){box-shadow:0 0 10px #b5e8ca4d,0 0 24px #b5e8ca33}.contact-fields:disabled{opacity:.65}.contact-fields:disabled .contact-submit{cursor:wait}.contact-field input:focus-visible,.contact-field textarea:focus-visible,.contact-submit:focus-visible,.contact-modal-close:focus-visible{outline-offset:3px;outline:1px solid #b5e8ca}.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--muted);font-family:Inter;font-weight:900}.contact-status{color:#a3b3a8;min-height:24px;margin:0;font-size:14px;line-height:1.6}.contact-status-success{color:#b5e8ca}.contact-status-error,.contact-status-invalid{color:#f3aaaa}.contact-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=767px){.contact-modal-content{padding:40px 24px 24px}}@media (prefers-reduced-motion:reduce){.contact-submit{transition:none}}.container{width:85%;margin:auto}.custom-container{width:65%;margin:0 auto}.disp-flex{display:flex}.align-center{align-items:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-center{justify-content:center}.flex-wrap{flex-wrap:wrap}.flex-column{flex-direction:column}.width100{width:100%}.width50{width:50%}.height100{height:100%}.gap-1{gap:20px}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.mb-30{margin-bottom:30px}.mb-50{margin-bottom:50px}.position-relative{position:relative}.position-absolute{position:absolute}.position-fixed{position:fixed}@font-face{font-family:Inter;src:url(/assets/Inter-BpskOkD5.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter-Bold;src:url(/assets/Inter-Bold-BVTOCPiq.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/assets/SpaceGrotesk-DhyBADTE.ttf)format("truetype");font-weight:300 700;font-style:normal;font-display:swap}:root{--background:#0b1210;--surface:#131e19;--accent:#91d5ae;--accent-hover:#b5e8ca;--text:#e8eee9;--muted:#a3b3a8;--border:#293d31;--space-grotesk:"Space Grotesk";--inter:"Inter";--inter-bold:"Inter-Bold"}html{scroll-behavior:smooth}body{background:var(--background);min-width:320px;margin:0}h1{font-family:var(--space-grotesk);color:var(--text);font-size:clamp(.25rem,5vw,1.5rem);font-weight:700}h2{font-family:var(--space-grotesk);color:var(--text);font-size:25px;font-weight:900}h3{font-family:var(--space-grotesk);color:var(--text);margin:0;font-size:20px;font-weight:900}p{font-family:var(--inter);color:var(--muted);margin:0;font-size:16px;font-weight:400}
