@import"https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;400;500;600;700&display=swap";@font-face{font-family:Integral CF;src:url(../fonts/integral/IntegralCF-Regular.woff);font-weight:400}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{font-family:Integral CF,sans-serif;color:var(--white);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smooth:antialiased}@font-face{font-family:Integral CF;src:url(/assets/IntegralCF-Regular-DSJERcje.woff);font-weight:400;font-display:swap}@font-face{font-family:Integral CF;src:url(/assets/IntegralCF-Bold-BQOCJI9l.woff);font-weight:700;font-display:swap}@font-face{font-family:Integral CF;src:url(/assets/IntegralCF-Medium-YjFPBk11.woff);font-weight:500;font-display:swap}@font-face{font-family:Integral CF;src:url(/assets/IntegralCF-RegularOblique-vv1tcDdC.woff);font-weight:400;font-style:oblique;font-display:swap}:root{--purple: #9900ff;--ltblue: #00ffff;--red: #ff0000;--green: #00ff00;--pink: #ff00ff;--teal: rgb(0, 255, 150);--yellow: #ffff00;--blue: #0000ff;--grey: #222;--ltgrey: #444;--white: #f8f8ff}body{background-color:var(--grey);margin:0}h2{font-size:10vw;font-weight:500}p{font-family:Rajdhani;font-size:16px}h1{font-family:Integral CF,sans-serif}.content{padding:10vh 5vw}.gradient{background:linear-gradient(130deg,var(--ltblue) 0%,var(--pink) 100%)}.hint{opacity:50%}@media (max-width: 900px){.name{padding:.5em}.name h1{font-size:3em;letter-spacing:0}.name h2{font-size:1em;text-align:left;margin:0;padding:.5em}h1{font-size:5vw}h2{font-size:3em}}Button{font-family:Integral CF,sans-serif;font-size:1em;background:var(--teal);color:var(--grey);border-radius:5px;padding:.5em 1em;margin-top:1em;transition:background .5s ease}.logo{aspect-ratio:1;object-fit:contain}html{visibility:hidden;opacity:0;transition:opacity .3s ease}html.loaded{visibility:visible;opacity:1}.global-background-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0000;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);opacity:0;transition:all .8s ease;pointer-events:none;z-index:0}.global-background-overlay.active{background:#0000004d;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:1}.content-sections{position:relative;z-index:1}.heading-container{display:flex;flex-direction:column}.heading-container h2{margin:0;opacity:40%}.heading-container h3{margin:0;font-weight:400}.skills{display:flex;margin:2em 0;gap:.5em;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none}.skills::-webkit-scrollbar{display:none}.skill{background-color:#4444;border-radius:4px;display:flex;padding:.5em;gap:.5em}.skill h3{margin:auto}.skill .skill-icon{width:3em;height:3em;margin:auto}.skill h3{width:max-content}.dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000bf;z-index:1000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:min(90vw,700px);max-height:85vh;background:#222222fa;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 25px 50px #0009,0 0 0 1px #ffffff0d;opacity:0;transition:all .4s cubic-bezier(.16,1,.3,1);padding:0;overflow:hidden;display:flex;flex-direction:column;z-index:1001}.dialog-content.dialog-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.dialog-content.dialog-hiding{opacity:0;transform:translate(-50%,-50%) scale(.95)}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.08)}.dialog-title{font-family:Integral CF,sans-serif;color:var(--ltblue);font-size:1.5rem;font-weight:600;margin:0;line-height:1.3;letter-spacing:-.02em}.dialog-close{color:#ffffffb3!important;transition:all .3s ease!important;border-radius:8px!important;padding:6px!important}.dialog-close:hover{color:var(--ltblue)!important;background:#00ffff1a!important;transform:scale(1.05)}.dialog-body{padding:1.5rem 2rem;flex:1;overflow-y:auto}.dialog-body::-webkit-scrollbar{width:6px}.dialog-body::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.dialog-body::-webkit-scrollbar-thumb{background:#0ff6;border-radius:3px}.dialog-body::-webkit-scrollbar-thumb:hover{background:#0ff9}.dialog-footer{padding:1.5rem 2rem 2rem;border-top:1px solid rgba(255,255,255,.08)}.cursor-pointer{cursor:pointer}@media (max-width: 768px){.dialog-content{width:95vw;max-height:90vh;border-radius:12px}.dialog-header{padding:1.5rem 1.5rem 1.25rem}.dialog-title{font-size:1.25rem}.dialog-body{padding:1.25rem 1.5rem}.dialog-footer{padding:1.25rem 1.5rem 1.5rem}}@media (max-width: 480px){.dialog-content{width:100vw;height:100vh;max-height:100vh;border-radius:0}}.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:2;display:none}.project-section.show-popup:after{display:block}.projectLinks{display:flex;gap:.5em}.projectLinks .codeLink{color:var(--ltblue);border:var(--ltblue) solid 1px}.projectLinks .codeLink:hover{background:#00ffff80;color:var(--grey)}.overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2}.popup{background:#1a1a1ae6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(0,255,255,.1);box-shadow:0 8px 32px #0000004d;z-index:10}.projects{display:flex;flex-wrap:wrap;max-width:70vw;margin:auto}.project{background:linear-gradient(#0000001a,#0003);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:none;border-radius:4px;box-shadow:0 2px 4px #0003;padding:2em;transition:all .5s ease;cursor:pointer;position:relative;width:25%;margin:.75em;scroll-snap-align:start;min-height:20em;min-width:20em;display:flex;flex-direction:column;flex:1 1 auto;transition:all 1s ease}.projects::-webkit-scrollbar{display:none}.project .descriptionDiv{max-height:0;overflow:hidden;transition:max-height 1s ease}.project:hover{transform:translateY(-1em);transition:all 1s ease}.project>h3{text-transform:uppercase;font-size:1.5em;margin-top:0;font-weight:400}.projectLink{display:flex;text-decoration:none;color:var(--teal);border:var(--teal) solid 1px;border-radius:4px;padding:.5em 1em;margin-top:1em;width:max-content}.projectLink:hover{background:#00ff9680;color:var(--grey)}.languages{display:flex;flex-wrap:wrap;margin-bottom:1em;gap:.5em}.tools{font-family:Rajdhani;font-size:small;margin-top:auto;opacity:70%}.language{border-radius:10px;padding:.3em .6em;margin:.2em;background:var(--teal);color:var(--grey);font-size:.8em;width:max-content}.Python{background:var(--green)}.Swift{background:var(--pink)}.PHP{background:var(--purple)}.HTML{background:var(--yellow)}.JavaScript{background:var(--red)}.CSS{background:var(--ltblue)}.project .description{display:none}.project .caption{display:block;margin-top:auto}@media screen and (max-width: 800px){.projects{margin-top:5em;display:grid;grid-template-columns:1fr;grid-gap:1em;max-width:none}.project{padding:1em;min-width:0;width:auto;margin:0}.project .caption{display:none}.project .description{display:block}.project .descriptionDiv{max-height:none}.project>h3{margin-top:1em}.tools{display:none}.project-section>.heading-container>h3{display:none}}.project-section>p{font-family:Rajdhani;font-size:smaller;opacity:50%;margin-left:5em}.project-modal-skills{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.project-modal-skills .skill-badge{display:flex;align-items:center;justify-content:center;background-color:var(--ltgrey);border-radius:4px;padding:.4rem}.project-modal-body{margin-bottom:0}.project-modal-description{font-family:Rajdhani,monospace;color:#ffffffe6;line-height:1.7;margin:0;font-size:1rem;letter-spacing:.01em;text-shadow:0 1px 2px rgba(0,0,0,.3)}.project-modal-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.project-link{font-family:Rajdhani,monospace;padding:.75rem 1.5rem;text-decoration:none;font-weight:600;font-size:.95rem;transition:all .3s cubic-bezier(.16,1,.3,1);border-radius:10px;position:relative;overflow:hidden;letter-spacing:.5px;box-shadow:0 4px 15px #0003}.project-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s ease}.project-link:hover:before{left:100%}.code-link{background:#9900ff1a;color:var(--purple);border:1px solid rgba(153,0,255,.3)}.code-link:hover{background:#90f3;border-color:#9900ff80;transform:translateY(-2px);box-shadow:0 8px 25px #9900ff4d}.demo-link{background:linear-gradient(135deg,var(--ltblue),var(--teal));color:var(--grey);border:1px solid transparent}.demo-link:hover{background:linear-gradient(135deg,var(--teal),var(--ltblue));transform:translateY(-2px);box-shadow:0 8px 25px #00ffff4d}.project-section{padding:5vh 5vw;max-width:1400px;margin:0 auto;position:relative;z-index:1}.project-filters{display:flex;gap:.5rem;margin:3rem 0;flex-wrap:wrap;justify-content:center}.filter-tab{background:transparent;border:1px solid var(--ltgrey);color:var(--white);padding:.75rem 1.5rem;border-radius:25px;font-family:Rajdhani,sans-serif;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;position:relative;overflow:hidden}.filter-tab:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(0,255,255,.1),transparent);transition:left .5s ease}.filter-tab:hover:before{left:100%}.filter-tab:hover{border-color:var(--ltblue);transform:translateY(-2px);box-shadow:0 4px 12px #0ff3}.filter-tab.active{background:linear-gradient(135deg,var(--ltblue),var(--teal));color:var(--grey);border-color:var(--ltblue);box-shadow:0 4px 15px #00ffff4d}.filter-count{background:#fff3;padding:.2rem .5rem .35rem;border-radius:12px;font-size:.8rem;font-weight:700}.filter-tab.active .filter-count{background:#2222224d;color:var(--grey)}.section-subtitle{font-family:Integral CF,sans-serif;color:var(--ltblue);font-size:1.8rem;margin:3rem 0 2rem;text-align:center;position:relative}.section-subtitle:after{content:"";position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);width:60px;height:3px;background:linear-gradient(90deg,var(--ltblue),var(--teal));border-radius:2px}.featured-section{margin:4rem 0}.featured-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:2rem}.featured-project{background:linear-gradient(135deg,#00ffff0d,#00ff960d);border:1px solid rgba(0,255,255,.2);border-radius:12px;padding:1.5rem;cursor:pointer;position:relative;overflow:hidden;transition:all .3s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.featured-project:before{display:none}.featured-project:hover:before{display:none}.featured-project:hover{transform:translateY(-4px);border-color:var(--ltblue);box-shadow:0 8px 25px #00ffff26}.featured-project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.featured-project-header h4{font-family:Integral CF,sans-serif;color:var(--white);font-size:1.1rem;margin:0;line-height:1.3;flex:1}.featured-project-links{display:flex;gap:.5rem;flex-shrink:0}.project-link-icon.live{background:#0f03;color:var(--green);border:1px solid var(--green);font-size:.7rem;padding:.2rem .5rem .35rem;border-radius:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.project-link-icon.code{background:#90f3;color:var(--purple);border:1px solid var(--purple);font-size:.7rem;padding:.2rem .5rem .35rem;border-radius:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.project-link-icon.dev{background:#ffa50033;color:#ff9500;border:1px solid #ff9500;font-size:.7rem;padding:.2rem .5rem .35rem;border-radius:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.featured-project-caption{font-family:Rajdhani,sans-serif;color:var(--white);font-size:.9rem;line-height:1.5;margin:1rem 0;opacity:.9}.featured-project-tech{display:flex;gap:.4rem;flex-wrap:wrap;margin:1rem 0}.featured-project-footer,.featured-project-footer .view-more,.featured-project:hover .featured-project-footer{display:none}.featured-project-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;transition:all .3s ease;color:var(--ltblue);font-weight:700;font-size:1.1rem;border-radius:12px}.featured-project:hover .featured-project-overlay{opacity:1}.featured-project-overlay span{transform:translateY(20px);transition:transform .3s ease .1s}.featured-project:hover .featured-project-overlay span{transform:translateY(0)}.projects-grid-section{margin:4rem 0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:2rem}.project-card{background:#222c;border:1px solid var(--ltgrey);border-radius:12px;padding:1.5rem;cursor:pointer;transition:all .3s ease;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);position:relative;overflow:hidden}.project-card:before{display:none}.project-card:hover:before{display:none}.project-card:hover{transform:translateY(-4px);border-color:var(--ltblue);box-shadow:0 8px 25px #00ffff26}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-card-header h4{font-family:Integral CF,sans-serif;color:var(--white);font-size:1.1rem;margin:0;line-height:1.3;flex:1}.project-status{display:flex;gap:.5rem;flex-shrink:0}.status-live,.status-code,.status-dev{font-size:.7rem;padding:.2rem .5rem .35rem;border-radius:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.status-live{background:#0f03;color:var(--green);border:1px solid var(--green)}.status-code{background:#90f3;color:var(--purple);border:1px solid var(--purple)}.status-dev{background:#ffa50033;color:#ff9500;border:1px solid #ff9500}.project-card-description{font-family:Rajdhani,sans-serif;color:var(--white);font-size:.9rem;line-height:1.5;margin:1rem 0;opacity:.9}.project-card-tech{display:flex;gap:.4rem;flex-wrap:wrap;margin:1rem 0}.project-card-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;transition:all .3s ease;color:var(--ltblue);font-weight:700;font-size:1.1rem;border-radius:12px}.project-card:hover .project-card-overlay{opacity:1}.project-card-overlay span{transform:translateY(20px);transition:transform .3s ease .1s}.project-card:hover .project-card-overlay span{transform:translateY(0)}.project-card-footer,.view-more,.projects,.project{display:none}@media (max-width: 768px){.project-section{padding:3vh 3vw}.project-filters{justify-content:center;gap:.3rem}.filter-tab{padding:.5rem 1rem;font-size:.9rem}.featured-projects{grid-template-columns:1fr;gap:1.5rem}.featured-project{padding:1.5rem}.projects-grid{grid-template-columns:1fr;gap:1rem}.project-card{padding:1.25rem}.section-subtitle{font-size:1.5rem}.project-modal-actions{flex-direction:column;gap:.75rem}.project-link{width:100%;text-align:center;justify-content:center}.project-modal-skills{gap:.5rem;padding:1rem;margin-bottom:1.5rem}.skill-badge{padding:.5rem}.project-modal-description{font-size:.95rem;line-height:1.6}}@media (max-width: 480px){.filter-tab{padding:.4rem .8rem;font-size:.8rem}.filter-count{font-size:.7rem}.featured-project-header h4{font-size:1.1rem}.project-card-header h4{font-size:1rem}.project-modal-skills{padding:.75rem;gap:.4rem}.project-link{padding:.65rem 1.25rem;font-size:.9rem}}.container{display:flex;min-height:100vh;padding:clamp(1rem,3vw,2rem);position:sticky;scroll-snap-align:start;scroll-margin-top:0px;scroll-snap-margin-top:0px}.about-section{margin:1em 0;padding:clamp(1.5rem,4vw,2rem);flex:1;border-radius:8px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(130deg,#00ffffb3,#ff00ffb3)}.about-section h2{margin:0;opacity:25%;color:var(--grey)}.about-container{display:flex;padding-top:2em;gap:clamp(2rem,5vw,3rem);align-items:flex-start;transition:all .3s ease}@media screen and (max-width: 1024px){.about-container{gap:2.5rem}}@media screen and (max-width: 768px){.about-container{flex-direction:column;gap:2rem;align-items:center}}@media screen and (max-width: 480px){.about-container{gap:1.5rem;padding-top:1.5em}}.about-text{flex:3;min-width:0}.about-text p{line-height:1.6;font-weight:500;color:var(--grey);font-size:clamp(.9rem,2.5vw,1rem);margin-bottom:1rem;transition:all .3s ease}.about-text p:last-child{margin-bottom:0}@media screen and (max-width: 768px){.about-text p{text-align:left;line-height:1.7}}@media screen and (max-width: 480px){.about-text p{line-height:1.8;margin-bottom:1.2rem}}.about-text a{font-family:Rajdhani,sans-serif;color:var(--grey);transition:color .3s ease,border-color .3s ease}.about-text a:hover{color:var(--ltblue)}.image-container{flex:2;max-width:400px;min-width:280px;transition:all .3s ease}@media screen and (max-width: 1024px){.image-container{max-width:350px;min-width:250px}}@media screen and (max-width: 768px){.image-container{max-width:100%;min-width:auto;width:100%;max-width:400px;margin:0 auto}}@media screen and (max-width: 480px){.image-container{max-width:320px}}.image-wrapper{position:relative;overflow:hidden;border-radius:8px;box-shadow:0 10px 30px #0000004d;transition:transform .3s ease,box-shadow .3s ease}.image-wrapper:hover{transform:translateY(-2px);box-shadow:0 15px 40px #0006}.image-wrapper:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#0ff3,#00ff9633);z-index:1;transition:opacity .3s ease}.image-wrapper:hover:before{opacity:.8}.image-wrapper img{width:100%;height:auto;display:block;transition:transform .4s ease}.image-wrapper img:hover{transform:scale(1.02)}.image-caption{text-align:center;font-size:clamp(.8rem,2vw,.9rem);margin-top:1.2em;color:var(--grey);opacity:.8;font-family:Rajdhani,sans-serif;line-height:1.4;transition:opacity .3s ease}@media screen and (max-width: 768px){.image-caption{margin-top:1rem;padding:0 1rem}}@media screen and (max-width: 480px){.image-caption{font-size:.85rem;margin-top:.8rem}}@media screen and (max-width: 320px){.container{padding:.8rem}.about-section{padding:1.2rem;margin:.5em 0}.about-container{gap:1rem;padding-top:1rem}}.container{display:flex;min-height:100vh;padding:clamp(1rem,3vw,2rem);position:sticky;scroll-snap-align:start;scroll-snap-margin-top:0px}.contact-section{margin:1em 0;padding:clamp(1.5rem,4vw,2rem);flex:1;border-radius:8px}.contact-section h2{margin:0;opacity:40%;color:var(--white)}.contact-container{display:flex;padding-top:2em;justify-content:center;align-items:center;transition:all .3s ease}@media screen and (max-width: 768px){.contact-container{padding-top:1.5em}}.contact-content{max-width:600px;width:100%;text-align:center}.contact-message{margin-bottom:3rem}.contact-message p{line-height:1.7;font-weight:500;color:var(--white);opacity:.9;font-size:clamp(1rem,2.5vw,1.1rem);margin-bottom:0;font-family:Rajdhani,sans-serif;transition:all .3s ease}@media screen and (max-width: 768px){.contact-message p{line-height:1.8;font-size:1rem}}.contact-links{display:flex;gap:1.5rem;margin-bottom:3rem;justify-content:center;flex-wrap:wrap}@media screen and (max-width: 600px){.contact-links{flex-direction:column;gap:1rem;align-items:center}}.contact-link{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:#4449;border:1px solid rgba(255,255,255,.15);border-radius:12px;text-decoration:none;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;min-width:220px}.contact-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s ease}.contact-link:hover{transform:translateY(-4px);border-color:var(--ltblue);box-shadow:0 8px 25px #0ff3}.contact-link:hover:before{left:100%}.contact-link:hover .link-icon img{transform:scale(1.1)}.contact-link:hover .link-content h4{color:var(--ltblue)}@media screen and (max-width: 600px){.contact-link{min-width:280px;padding:1.25rem}}.link-icon{flex-shrink:0;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border-radius:8px;transition:all .3s ease}.link-icon img{width:40px;height:40px;transition:transform .3s ease;filter:brightness(1.1)}@media screen and (max-width: 600px){.link-icon{width:50px;height:50px}.link-icon img{width:32px;height:32px}}.link-content{flex:1;text-align:left}.link-content h4{font-family:Integral CF,sans-serif;color:var(--white);font-size:1.1rem;margin:0 0 .25rem;transition:color .3s ease;line-height:1.2}@media screen and (max-width: 600px){.link-content h4{font-size:1rem}}.link-content p{font-family:Rajdhani,sans-serif;color:var(--white);opacity:.7;margin:0;font-size:.9rem;line-height:1.3}@media screen and (max-width: 600px){.link-content p{font-size:.85rem}}.additional-actions{display:flex;justify-content:center}.resume-link{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;background:linear-gradient(135deg,var(--ltblue),var(--teal));color:var(--grey);text-decoration:none;border-radius:8px;font-family:Integral CF,sans-serif;font-weight:600;font-size:1rem;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.resume-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.resume-link:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00ffff4d;background:linear-gradient(135deg,var(--teal),var(--ltblue))}.resume-link:hover:before{left:100%}.resume-link:hover svg{transform:translate(2px)}.resume-link svg{transition:transform .3s ease;stroke-width:2.5}@media screen and (max-width: 600px){.resume-link{padding:.875rem 1.75rem;font-size:.95rem}}.contact-link.linkedin:hover{border-color:#0077b5;box-shadow:0 8px 25px #0077b533}.contact-link.github:hover{border-color:#333;box-shadow:0 8px 25px #ffffff1a}@media screen and (max-width: 320px){.container{padding:.8rem}.contact-section{padding:1.2rem;margin:.5em 0}.contact-container{padding-top:1rem}.contact-links{gap:.75rem}.contact-link{min-width:260px;padding:1rem}}.hero{height:calc(100vh - .5em)}.hero Canvas{max-width:100vw;overflow:hidden}.hero .react-p5-wrapper{max-width:100vw;overflow:hidden}.hero .home{display:flex;flex-direction:column;margin:auto}.hero .home .name{display:flex;flex-direction:column;bottom:20vh;opacity:0;transform:translateY(20px);animation:fadeInUp 1s ease-out .8s forwards}.hero .home .name h1{letter-spacing:.3em;margin:auto;font-size:4em;text-shadow:var(--grey) 0 0 .5em;text-align:center;font-display:swap;min-height:1.2em}.hero .home .name h2{margin:1.1em auto auto;font-size:1.5em;position:relative;opacity:70%;letter-spacing:.8em;text-align:center;color:#888;text-shadow:var(--grey) 0 0 .25em;font-family:Rajdhani;text-transform:uppercase;font-weight:800;min-height:1.2em}.hero .home .logo{height:30vh;margin:20vh auto 15vh;opacity:0;transform:scale(.8);animation:fadeInScale 1s ease-out .3s forwards;width:auto;max-width:300px}.hero .home #homeDisplay{display:flex;flex-direction:column;height:95vh}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@font-face{font-family:Integral CF;font-display:swap}@font-face{font-family:Rajdhani;font-display:swap}canvas{position:absolute;top:0;left:0;z-index:-1}#framerate{position:absolute;bottom:1em;left:1em;opacity:.5;display:flex;animation:fadeIn .5s ease-out 1.5s forwards;opacity:0}@keyframes fadeIn{0%{opacity:0}to{opacity:.5}}#fr{font-family:Integral CF}.gear-icon{position:absolute;bottom:2em;right:2em;cursor:pointer;opacity:0;animation:fadeIn .5s ease-out 1.2s forwards}.gear-icon img{width:2em}@media screen and (max-width: 900px){.hero .home .name h1{font-size:3.2em;letter-spacing:.15em;line-height:1.1}.hero .home .name h2{font-size:1.1em;letter-spacing:.4em;margin-top:.8em}.hero .home .logo{height:25vh;max-width:280px;margin:15vh auto 10vh}}@media screen and (max-width: 768px){.hero{height:100vh;display:flex;align-items:center}.hero .home .logo{height:22vh;max-width:260px;margin:12vh auto 8vh;animation:mobileLogoFadeFloat 1s ease-out .3s forwards}.hero .home .name h1{font-size:clamp(2.2em,8vw,3em);letter-spacing:clamp(.05em,2vw,.2em);line-height:1.1;margin-bottom:.3em}.hero .home .name h2{font-size:clamp(1.1em,4.5vw,1.4em);letter-spacing:clamp(.1em,1vw,.6em);margin-top:0;color:#fff;opacity:.9;text-shadow:1px 1px 2px rgba(0,0,0,.8)}.hero .home #homeDisplay{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center}#framerate{bottom:.5em;left:.5em;font-size:.8em}}@media screen and (max-width: 480px){.hero .home .logo{height:18vh;max-width:200px;margin:8vh auto 6vh}.hero .home .name h1{font-size:clamp(1.8em,9vw,2.5em);letter-spacing:clamp(.02em,1.5vw,.1em);margin-bottom:.5em}.hero .home .name h2{font-size:clamp(.9em,4vw,1.2em);letter-spacing:clamp(.05em,1vw,.3em);margin-top:0;color:#fff;opacity:.9;text-shadow:1px 1px 2px rgba(0,0,0,.8)}}@media screen and (max-width: 320px){.hero .home .logo{height:15vh;max-width:160px;margin:6vh auto 4vh}.hero .home .name h1{font-size:1.6em;letter-spacing:.02em}.hero .home .name h2{font-size:.9em;letter-spacing:.05em;color:#fff;opacity:.9;text-shadow:1px 1px 2px rgba(0,0,0,.8)}}@keyframes mobileLogoFadeFloat{0%{opacity:0;transform:scale(.8) translateY(0)}to{opacity:1;transform:scale(1) translateY(0)}}.footer{display:flex;min-height:20vh;border-bottom:1em solid var(--grey)}.footerContent{margin:auto;display:flex;flex-direction:column;align-items:center}
