@import"https://fonts.googleapis.com/css2?family=Oxanium:wght@400;700&display=swap";#root{margin:0 auto;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.main-navbar{display:flex;justify-content:space-between;align-items:center;background-color:#2c2c3e;padding:15px 30px;box-shadow:0 2px 10px #0006;position:sticky;top:0;z-index:1000}.navbar-title{font-family:Oxanium,sans-serif;font-size:2em;font-weight:700}.navbar-title a{color:#61dafb;text-decoration:none;transition:color .3s ease;font-weight:700}.navbar-title a:hover{color:#90ee90}.navbar-links{list-style:none;margin:0;padding:0;display:flex;gap:25px}.navbar-links li a{color:#e0e0e0;text-decoration:none;font-size:1.1em;font-weight:500;transition:color .3s ease}.navbar-links li a:hover{color:#61dafb}.hamburger-menu-icon{display:none;flex-direction:column;justify-content:space-around;width:30px;height:25px;cursor:pointer;z-index:1001}.hamburger-menu-icon .bar{width:100%;height:3px;background-color:#e0e0e0;transition:all .3s ease;border-radius:2px}.hamburger-menu-icon.open .bar:nth-child(1){transform:translateY(11px) rotate(45deg)}.hamburger-menu-icon.open .bar:nth-child(2){opacity:0}.hamburger-menu-icon.open .bar:nth-child(3){transform:translateY(-11px) rotate(-45deg)}@media (max-width: 768px){.navbar-links{display:none;flex-direction:column;position:absolute;top:60px;left:0;width:100%;background-color:#2c2c3e;box-shadow:0 8px 16px #0000004d;padding:20px 0;text-align:center;transition:all .3s ease-in-out;opacity:0;pointer-events:none}.navbar-links.open{display:flex;opacity:1;pointer-events:auto}.navbar-links li{margin:10px 0}.hamburger-menu-icon{display:flex}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#585872;background:repeating-linear-gradient(-90deg,#43435f,#585872,#6a6a81,#585872);background-size:cover;animation:gradientScroll 15s ease infinite}html,body{margin:0;padding:0;width:100%;height:100%}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}p{box-sizing:border-box;line-height:1.6;letter-spacing:.02em;word-spacing:.1em;text-align:justify}body{min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}h2{text-align:center;font-size:2em;color:#61dafb;margin-top:10px;font-family:Oxanium,sans-serif}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@media (max-width: 768px){.landing-image{max-width:100%;height:auto;display:block;box-sizing:border-box;padding-left:15px;padding-right:15px;margin-left:auto;margin-right:auto}}.bold{font-weight:700;color:#90ee90}.content{max-width:1280px;margin:auto;width:100%;box-sizing:border-box;padding:15px}.center-text{text-align:center}.landing-image{max-width:300px;max-height:300px;height:auto;margin-top:10px}@media (max-width: 768px){.landing-image{max-width:100%;max-height:unset}}.contact-container{display:flex;flex-direction:row;justify-content:center;gap:30px}.contact-container a{height:150px;width:150px;border-radius:50px;background-color:#fff;border:4px solid rgb(207,199,199);overflow:hidden}a img{height:100%;width:100%}.landing-image{height:300px;width:300px}@media (max-width: 768px){.contact-container a{height:50px;width:50px}}.about-page-container{max-width:1280px;margin:auto;padding:15px;box-sizing:border-box;color:#e0e0e0}.section-title{text-align:center;font-size:2.2em;color:#61dafb}.about-section:after{content:"";display:table;clear:both}.about-section p{line-height:1.7;text-align:justify;margin-bottom:15px}.highlight{font-weight:700;color:#90ee90}.about-image-figure{flex-shrink:0;width:100%;max-width:350px;border-radius:8px;box-shadow:0 6px 15px #0006;background-color:#333;margin:0 auto 20px;text-align:center;display:flex;flex-direction:column;align-items:center;overflow:hidden}.about-image-figure img{width:100%;height:280px;object-fit:cover;display:block;border-radius:8px 8px 0 0}.image-caption{font-style:italic;font-size:.9em;color:#eee;padding:10px;width:100%;box-sizing:border-box;background-color:#3e3e3e}.about-image-figure.align-right{float:right;margin-left:30px;margin-right:0}@media (min-width: 901px){.about-image-figure{float:left;margin-right:30px;margin-bottom:20px}}.special-thanks-section{background-color:#2e2e2e;padding:25px;border-radius:10px;box-shadow:0 3px 12px #00000080;text-align:left;margin-top:50px;font-size:.9em}.special-thanks-title{font-size:1.1em;margin-bottom:20px;color:#ccc;text-align:center}.thanks-list{list-style-type:disc;margin-left:25px;color:#ccc;font-size:12px}.thanks-list li{margin-bottom:10px}.special-thanks-section a{color:#64b5f6;text-decoration:underline;transition:color .2s ease-in-out}.special-thanks-section a:hover{color:#8cc6fc}@media (max-width: 900px){.about-section{display:flex;flex-direction:column;align-items:center;gap:20px}.about-image-figure{width:80%;max-width:350px;margin-bottom:0;float:none;margin-left:auto;margin-right:auto}.about-image-figure.align-right{float:none;margin-left:auto;margin-right:auto}.about-section p{margin-bottom:15px}}@media (max-width: 500px){.section-title{font-size:1.8em}.about-section p{font-size:.95em}.about-image-figure{width:90%}.special-thanks-title{font-size:1em}.thanks-list{font-size:.85em;padding:5px}}.filter-tags-container{text-align:center;margin-bottom:50px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.tag-button{background-color:#444;color:#eee;border:1px solid #555;padding:8px 15px;border-radius:20px;cursor:pointer;font-size:.9em;transition:background-color .3s ease,border-color .3s ease,color .3s ease}.tag-button:hover{background-color:#555;border-color:#777}.tag-button.active{background-color:#61dafb;color:#282c34;border-color:#61dafb;font-weight:700}.tag-button.active:hover{background-color:#4ac5e3;border-color:#4ac5e3}.tag-button.clear-filters{background-color:#d9534f;border-color:#d9534f;color:#fff}.tag-button.clear-filters:hover{background-color:#c9302c;border-color:#c9302c}.project-tags-display{display:flex;flex-wrap:wrap;gap:5px;padding:0 15px 10px}.project-tag-item{background-color:#555;color:#fff;font-size:.75em;padding:4px 8px;border-radius:4px;white-space:nowrap}.no-projects-message{text-align:center;color:#ccc;font-size:1.2em;margin-top:50px;margin-bottom:100px}.projects-page-container{max-width:1200px;margin:0 auto}.technology-section{background-color:#2e2e2e;border-radius:10px;box-shadow:0 4px 15px #0006;margin-bottom:60px;padding:30px;text-align:center}.technology-header{display:flex;align-items:center;justify-content:center;margin-bottom:40px}.technology-logo{height:50px;width:auto;margin-right:20px}.technology-section h3{font-size:2.2em;color:#90ee90;margin:0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px}.project-card{background-color:#3a3a3a;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px #0000004d;display:flex;flex-direction:column;text-align:left}.project-image{width:100%;height:200px;object-fit:cover;display:block}.project-card h4{font-size:1.5em;color:#90ee90;margin:15px 15px 10px}.project-description{font-size:.95em;color:#ccc;padding:0 15px 15px;flex-grow:1;text-align:justify}.project-links{padding:15px;display:flex;gap:15px;border-top:1px solid #444;margin-top:auto}.project-link,.project-github{display:inline-block;padding:8px 15px;border-radius:5px;text-decoration:none;font-weight:700;font-size:.9em;transition:background-color .3s ease,color .3s ease}.project-link{background-color:#61dafb;color:#282c34}.project-link:hover{background-color:#4ac5e3}.project-github{background-color:#555;color:#eee}.project-github:hover{background-color:#777}@media (max-width: 768px){.projects-page-container{padding:15px}.technology-section{padding:20px}.projects-grid{grid-template-columns:1fr}.technology-header{flex-direction:column;margin-bottom:30px}.technology-logo{margin-right:0;margin-bottom:15px}.filter-tags-container{flex-direction:row;justify-content:center}.tag-button{padding:6px 12px;font-size:.8em}}.pagination-controls{display:flex;justify-content:center;margin-top:30px;padding:10px 0;gap:8px;flex-wrap:wrap}.page-button{background-color:#f0f0f0;color:#333;border:1px solid #ccc;padding:10px 15px;border-radius:5px;cursor:pointer;font-size:1rem;transition:background-color .3s ease,color .3s ease,border-color .3s ease;min-width:40px;text-align:center}.page-button:hover{background-color:#e0e0e0;border-color:#aaa}.page-button.active{background-color:#007bff;color:#fff;border-color:#007bff;font-weight:700;pointer-events:none}.page-button:active{background-color:#0056b3;border-color:#0056b3}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal-content{background-color:#fff;padding:25px;border-radius:8px;box-shadow:0 5px 15px #0000004d;position:relative;max-width:90%;max-height:90vh;overflow:auto;display:flex;flex-direction:column;align-items:center}.modal-content h3{margin-top:0;margin-bottom:15px;color:#333;text-align:center;font-size:1.5rem}.modal-image{max-width:100%;max-height:70vh;display:block;border-radius:4px;object-fit:contain}.close-button{position:absolute;top:10px;right:15px;font-size:2.5rem;color:#555;cursor:pointer;background:none;border:none;line-height:1;padding:0;margin:0;transition:color .2s ease}.close-button:hover{color:#000}.project-image.clickable{cursor:zoom-in}.company-name,.job-date{text-align:center}.content h1{text-align:center;color:#61dafb;margin-bottom:50px;font-size:2rem;padding-bottom:10px;display:inline-block;margin-left:auto;margin-right:auto;width:fit-content}.experience-list{display:flex;flex-direction:column;gap:30px}.experience-card{background-color:#3a3a3a;padding:25px;border-radius:8px;box-shadow:0 2px 10px #0000004d;border-left:5px solid #61dafb;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;display:flex;flex-direction:row;align-items:flex-start;gap:30px}.experience-card:hover{transform:scale(1.02);box-shadow:0 6px 16px #0006}.experience-header{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:0;border-bottom:none;padding-bottom:0;flex-shrink:0;min-width:200px;max-width:30%}.company-logo{width:60px;height:60px;object-fit:contain;margin:auto;border-radius:50%;background-color:#fff;padding:5px;box-shadow:0 1px 4px #0003}.job-details{flex-grow:1}.job-details h3{margin:0;color:#90ee90;font-size:1.6em;font-weight:600}.company-name{margin:5px 0 0;color:#ccc;font-size:1.1em;font-weight:500}.job-date{margin:5px 0 0;color:#999;font-size:.9em;font-style:italic}.accomplishments-list{list-style-type:disc;padding-left:25px;margin-top:0;color:#eee;flex-grow:1;min-width:60%}.accomplishments-list li{margin-bottom:8px;line-height:1.6;font-size:1em;text-align:left}@media (max-width: 768px){.job-details{margin:auto}.content h1{font-size:2em;margin-bottom:30px}.experience-card{flex-direction:column;gap:20px}.experience-header{flex-direction:column;align-items:flex-start;width:100%;max-width:none;margin-bottom:0;border-bottom:1px solid #444;padding-bottom:15px}.company-logo{margin-bottom:15px}.job-details h3{font-size:1.4em}.company-name{font-size:1em}.accomplishments-list{padding-left:25px;margin-top:0;min-width:unset}}@media (max-width: 480px){.content h1{font-size:1.8em}.experience-card{padding:20px}.company-logo{width:50px;height:50px;margin:auto}}.technology-section{margin-bottom:60px}.technology-section h3{font-size:2.2em;color:#90ee90;margin-bottom:30px;text-align:center}.technologies-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px}.technology-card{background-color:#3a3a3a;border-radius:8px;padding:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 2px 10px #0000004d;transition:transform .3s ease-in-out}.technology-card:hover{transform:scale(1.05)}.technology-logo{width:80px;height:80px;object-fit:contain;margin:auto;border-radius:50%;background-color:#fff;border:4px solid rgb(207,199,199)}.technology-name{color:#eee;font-size:.9em;margin-bottom:0}@media (max-width: 768px){.technology-section h3{font-size:2em;margin-bottom:25px}.technologies-grid{grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:5px}.technology-card{padding:5px}.technology-card p{text-align:center!important}.technology-logo{width:30px;height:30px}.technology-name{padding:5px;max-width:65px;font-size:.7em;word-break:break-word;margin-top:0}.technology-logo{margin-top:5px}}
