:root{padding:0;font-family:Fira Code,monospace,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#2d3748;background-color:#f8f4e3;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#4299e1;text-decoration:inherit;transition:color .2s ease}a:hover{color:#2b6cb0;text-decoration:underline}body{margin:0;padding:0;min-width:320px;min-height:100vh}body>*{margin:0;padding:0}#root{margin:0;padding:0;width:100%;height:100%;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}.boid-container .boid{transition:transform .3s ease}.boid-container .boid:hover{transform:scale(1.2)}h1{font-size:3.2em;line-height:1.1}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}}.page-container{width:100%;min-height:100vh;display:flex;flex-direction:column;background-color:#e8e6d9;font-family:Fira Code,monospace;color:#4a4a4a;overflow-y:auto;overflow-x:hidden}.nier-container{flex:0 0 40%;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;background-color:#e8e6d9}.nier-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,transparent 49.5%,#d0cec1 49.5%,#d0cec1 50.5%,transparent 50.5%),linear-gradient(-45deg,transparent 49.5%,#d0cec1 49.5%,#d0cec1 50.5%,transparent 50.5%);background-size:50px 50px;opacity:.3;z-index:1}.nier-content{width:90%;max-width:400px;height:auto;min-height:60vh;max-height:90vh;background-color:#e8e6d9;border:1px solid #a9a9a9;box-shadow:0 0 10px #0000001a;display:flex;flex-direction:column;padding:20px;position:relative;z-index:2;overflow:hidden;box-sizing:border-box}.image-container{flex:0 0 60%;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#e8e6d9;overflow:hidden;position:relative;padding:20px 0}.image-container:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to right,rgba(232,230,217,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(232,230,217,.1) 1px,transparent 1px);background-size:20px 20px;z-index:0}.profile-image-container{position:relative;width:60%;height:60%;max-width:500px;max-height:400px}.profile-image{width:100%;height:100%;object-fit:cover;border:1px solid #a9a9a9;box-shadow:0 0 10px #0000001a;position:relative;z-index:1;border-radius:15px}.profile-image-container:before,.profile-image-container:after,.corner-top-right,.corner-bottom-left{content:"";position:absolute;width:60px;height:60px;border:2px solid #a9a9a9;z-index:2;animation:pulse 3s infinite;border-radius:10px}.profile-image-container:before{top:-10px;left:-10px;border-right:none;border-bottom:none}.profile-image-container:after{bottom:-10px;right:-10px;border-left:none;border-top:none;animation-delay:2.25s}.corner-top-right{top:-10px;right:-10px;border-left:none;border-bottom:none;animation-delay:.75s}.corner-bottom-left{bottom:-10px;left:-10px;border-right:none;border-top:none;animation-delay:1.5s}@keyframes float{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}to{transform:translateY(0) rotate(0)}}@keyframes pulse{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.particle{position:absolute;width:5px;height:5px;background:#a9a9a94d;border-radius:50%;z-index:0}.particle:nth-child(1){top:10%;left:20%;animation:float 8s infinite}.particle:nth-child(2){top:30%;left:80%;animation:float 12s infinite}.particle:nth-child(3){top:70%;left:40%;animation:float 10s infinite}.nier-title{text-align:center;font-size:24px;letter-spacing:1px;margin-bottom:40px;font-weight:400;color:#4a4a4a;border-bottom:1px dotted #a9a9a9;padding-bottom:10px;font-family:Fira Code,monospace}.menu-options{display:flex;flex-direction:column;margin-left:20px}.menu-option{padding:10px 15px;margin-bottom:5px;text-decoration:none;color:#4a4a4a;font-size:16px;display:flex;align-items:center;transition:background-color .2s;font-family:Fira Code,monospace}.menu-option.selected{background-color:#4a4a4a;color:#e8e6d9}.menu-icon{margin-right:10px;font-size:14px}.menu-description{padding:10px;min-height:40px;font-style:italic;margin-top:20px;border-top:1px dotted #a9a9a9;font-family:Fira Code,monospace;font-size:14px}.nier-content:before,.nier-content:after{content:"";position:absolute;left:0;right:0;height:10px;background-image:radial-gradient(circle,#a9a9a9 1px,transparent 1px);background-size:10px 10px;background-position:center}.nier-content:before{top:0}.nier-content:after{bottom:0}@media (max-width: 768px){.page-container{flex-direction:column;overflow-y:auto}.nier-container,.image-container{flex:none;width:100%;min-height:auto;height:auto}.nier-container,.image-container{padding:20px 0}.profile-image-container{width:80%;height:auto;margin:0 auto;max-width:400px}.profile-image{width:100%;height:auto;object-fit:contain}.nier-content{width:95%;padding:15px;min-height:auto;box-sizing:border-box;margin:0 auto;max-width:100%}.nier-title{font-size:24px;margin-bottom:20px}.menu-option{font-size:16px;padding:8px 12px}}body,html,#root{margin:0;padding:0;height:100%;width:100%}.page-container{display:flex;flex-direction:column;min-height:100vh}#root{display:flex;flex-direction:column}.copyright-footer{width:100%;text-align:center;font-size:12px;color:#4a4a4a;padding:10px 0;margin-top:20px;font-family:Fira Code,monospace;border-top:1px dotted #a9a9a9}@media (min-height: 800px){.copyright-footer{margin-top:auto;padding-bottom:15px}}.main-content-area{display:flex;flex:1;flex-direction:column;width:100%}.intro-text{margin-top:20px;margin-bottom:30px;text-align:center;max-width:80%;box-sizing:border-box}.intro-text h2{font-size:32px;margin-bottom:12px;color:#4a4a4a;font-weight:400;letter-spacing:0;font-family:Fira Code,monospace}.intro-text p{font-size:20px;line-height:1.6;margin-bottom:10px;color:#4a4a4a;font-family:Fira Code,monospace}@media (min-width: 769px){.page-container{flex-direction:column}.main-content-area{flex-direction:row}}@media (max-width: 768px){.intro-text{margin-top:15px;width:100%;max-width:100%;padding:0 15px;box-sizing:border-box}.intro-text h2{font-size:22px}.intro-text p{font-size:15px}}html,body,#root{height:100%;min-height:100vh;margin:0;padding:0;background-color:#e8e6d9;width:100%;overflow-x:hidden}body{display:flex;flex-direction:column;min-height:100vh;position:relative}#root{max-width:100%;margin:0 auto;padding:0;width:100%;background-color:#e8e6d9;color:#2d3748;min-height:100vh;display:flex;flex-direction:column;flex:1}.home-container{max-width:800px;margin:0 auto;padding:2rem;text-align:center}.home-container h1{font-size:3rem;margin-bottom:1rem}.home-container p{font-size:1.2rem;margin-bottom:2rem}.home-container a{display:inline-block;padding:.8rem 1.5rem;background-color:#0077b6;color:#fff;text-decoration:none;border-radius:4px;font-weight:700;transition:background-color .3s}.home-container a:hover{background-color:#023e8a}.back-link{margin-top:2rem;text-align:center;padding-bottom:2rem}.back-link a{display:inline-block;padding:.5rem 1rem;background-color:#f0f0f0;color:#333;text-decoration:none;border-radius:4px;transition:background-color .3s}.back-link a:hover{background-color:#ddd}.cv-container{display:flex;flex-direction:column;gap:1.5rem;max-width:1200px;margin:0 auto;padding:0 1rem;min-height:100vh;background-color:#e8e6d9;width:100%;box-sizing:border-box}.cv-page{width:100%;min-height:100vh;background-color:#e8e6d9;display:flex;flex-direction:column;flex:1}.header{text-align:center}.header h1{font-size:1.8rem;color:#2d3748;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.1em;position:relative;display:inline-block;animation:fadeIn 1s ease-out forwards}.header h1:after{content:"";position:absolute;bottom:-5px;left:25%;width:0;height:2px;background-color:#4299e1;animation:growLine 1s ease-out .5s forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes growLine{0%{width:0}to{width:50%}}.header h2{font-size:1.1rem;color:#4a5568;font-weight:400;margin-top:0;letter-spacing:.1em;opacity:0;animation:fadeIn 1s ease-out .8s forwards}.profile-section{border:1px solid #4a5568;padding:1.5rem;position:relative;margin:0 1rem;max-width:calc(100% - 2rem);background-color:#f8f4e3}.profile-section h3{position:absolute;top:-.8rem;left:50%;transform:translate(-50%);background-color:#f8f4e3;padding:0 1rem;margin:0;text-transform:uppercase;color:#2d3748;font-weight:400}.profile-text{text-align:justify;line-height:1.6;font-size:1rem;font-weight:500}.about-section{position:relative;padding:2rem 1.5rem 1.5rem;margin:0 1rem;max-width:calc(100% - 2rem);background-color:#f8f4e3;border:none;overflow:visible}.about-section:before{content:"";position:absolute;bottom:0;left:50%;width:0;height:1px;background-color:#4a5568;transform:translate(-50%);animation:drawBorderBottom .8s ease-out forwards}.about-section:after{content:"";position:absolute;bottom:0;left:0;width:1px;height:0;background-color:#4a5568;animation:drawBorderLeft .8s ease-out .8s forwards}.about-section .right-border{position:absolute;bottom:0;right:0;width:1px;height:0;background-color:#4a5568;animation:drawBorderRight .8s ease-out .8s forwards}.about-section .top-border{position:absolute;top:0;left:50%;width:0;height:1px;background-color:#4a5568;transform:translate(-50%);animation:drawBorderTop .8s ease-out 1.6s forwards;z-index:5}@keyframes drawBorderBottom{0%{width:0}to{width:100%}}@keyframes drawBorderLeft{0%{height:0}to{height:100%}}@keyframes drawBorderRight{0%{height:0}to{height:100%}}@keyframes drawBorderTop{0%{width:0}to{width:100%}}.about-section h3{position:absolute;top:-.8rem;left:50%;transform:translate(-50%);background-color:#f8f4e3;padding:0 1rem;margin:0;text-transform:uppercase;color:#2d3748;font-weight:400;z-index:10}.about-text{text-align:justify;line-height:1.6;font-size:1rem}.contact-section{display:flex;flex-direction:column;gap:.75rem;margin:1.5rem 0;width:100%;font-size:1.1rem}.contact-item{opacity:0;animation:slideInRight .5s ease-out forwards}.contact-item:nth-child(1){animation-delay:.2s}.contact-item:nth-child(2){animation-delay:.4s}.contact-item:nth-child(3){animation-delay:.6s}.contact-item:nth-child(4){animation-delay:.8s}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.contact-item a,.contact-item span:last-child{font-size:1.1rem}.contact-item{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.contact-icon{width:20px;height:20px;object-fit:contain}.company-icon{width:24px;height:24px;object-fit:contain;border-radius:4px}.main-content{display:flex;flex-direction:column;gap:2rem;margin-top:1rem;width:100%}.section-title{text-transform:uppercase;color:#2d3748;margin-bottom:1.5rem;text-align:left;font-size:1.3rem;position:relative;padding-bottom:.5rem;font-weight:400;letter-spacing:.05em;border-bottom:0;overflow:hidden}.section-title:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background-color:#4299e1;animation:growWidth 1s ease-out forwards}@keyframes growWidth{0%{width:0}to{width:100%}}.experience-item{margin-bottom:2rem;opacity:0;animation:fadeInUp .8s ease-out forwards}.experience-item:nth-child(1){animation-delay:.3s}.experience-item:nth-child(2){animation-delay:.6s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.experience-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.experience-company{font-weight:700;word-break:break-word}.experience-date{margin-top:.5rem;margin-bottom:.5rem;font-size:.9rem}.experience-bullets{padding-left:1rem;list-style-type:"• "}.experience-bullets li{margin-bottom:.5rem;font-size:1rem}.skills-section{display:flex;flex-direction:column;gap:1.5rem}.skills-category{margin-bottom:1rem;opacity:0;animation:fadeInLeft .8s ease-out forwards}.skills-category:nth-child(1){animation-delay:.3s}.skills-category:nth-child(2){animation-delay:.6s}.skills-category:nth-child(3){animation-delay:.9s}.skills-category:nth-child(4){animation-delay:1.2s}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.skills-category h4{font-size:1.1rem;margin-bottom:.5rem;color:#4a5568}.skills-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;width:100%}.skill-item{background-color:transparent;padding:.1rem .5rem;border-radius:3px;font-size:1rem;white-space:normal;border-left:2px solid #4a5568;display:inline-block;opacity:0;animation:fadeIn .5s ease-out forwards;animation-delay:calc(.05s * var(--skill-index, 0))}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.skill-expert{border-left-color:#4299e1;font-weight:700}.skill-proficient{border-left-color:#48bb78}.skill-familiar{border-left-color:#ed8936}.education-section{margin-top:2rem}.certifications{margin-top:1.5rem}.certification-list{padding-left:1rem;list-style-type:"• "}.certification-list li{margin-bottom:.5rem;font-size:1rem}.continuous-learning{margin-top:2rem}.learning-list{padding-left:1rem;list-style-type:"• "}.learning-list li{margin-bottom:.5rem;font-size:1rem}.projects-section{margin-top:2rem}.project-item{margin-bottom:1.5rem;padding:1rem;border-left:3px solid #4299e1;background-color:#edf2f780;opacity:0;animation:fadeInUp .8s ease-out forwards}.project-item:nth-child(1){animation-delay:.9s}.project-item:nth-child(2){animation-delay:1.2s}.project-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.project-name{font-weight:700;font-size:1rem;word-break:break-word}.project-link{font-size:1.2rem}.project-description{margin-bottom:.5rem;font-size:1rem}.project-tech{display:flex;flex-wrap:wrap;gap:.5rem}.tech-item{background-color:#4299e11a;padding:.1rem .5rem;border-radius:3px;font-size:.9rem;white-space:nowrap}.education-item{margin-bottom:1rem;line-height:1.6;opacity:0;animation:fadeInLeft .8s ease-out 1.5s forwards}.education-degree,.education-school,.education-date{margin-bottom:.3rem;white-space:normal;font-size:1rem}.education-degree{font-weight:700}.education-school,.education-date{margin-top:.25rem}@media (min-width: 768px){.header h1{font-size:2.2rem}.header h2{font-size:1.2rem}.contact-item a,.contact-item span:last-child{font-size:1.1rem}.contact-section{flex-direction:row;flex-wrap:wrap;justify-content:space-between}.contact-item{width:auto}.about-section{margin:0 2rem;max-width:calc(100% - 4rem)}.cv-container{padding:0 2rem}.profile-text,.about-text,.experience-bullets li,.certification-list li,.learning-list li,.skill-item,.education-degree,.education-school,.education-date,.project-description{font-size:1rem}.tech-item{font-size:.9rem}}@media (max-width: 767px){.skills-list{flex-direction:column}.skill-item{width:100%}}@media (min-width: 1024px){.header h1{font-size:2.5rem}.header h2{font-size:1.3rem}.contact-item a,.contact-item span:last-child{font-size:1.2rem}.main-content{display:grid;grid-template-columns:minmax(auto,45%) minmax(auto,55%);gap:2rem}.contact-section{flex-direction:row;flex-wrap:nowrap;justify-content:space-between}}@media print{*{animation:none!important;transition:none!important}.experience-item,.project-item,.skills-category{page-break-inside:avoid}.cv-container{padding:0;margin:0}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.pdf-button-fixed{position:fixed;right:30px;bottom:30px;width:50px;height:50px;border-radius:50%;background-color:#0077b6;color:#fff;display:flex;justify-content:center;align-items:center;text-decoration:none;box-shadow:0 2px 10px #0003;transition:all .3s ease;z-index:1000;border:none;cursor:pointer}.pdf-button-fixed:hover{background-color:#023e8a;transform:scale(1.1);box-shadow:0 4px 15px #0000004d}.pdf-button-icon{font-size:24px;line-height:1}@media (max-width: 768px){.pdf-button-fixed{width:45px;height:45px;right:20px;bottom:20px}.pdf-button-icon{font-size:20px}}.page-wrapper{width:100%;min-height:100vh;display:flex;justify-content:center;align-items:center;background-color:#e8e6d9;font-family:Times New Roman,serif;color:#4a4a4a;margin:0;padding:0}.page-content{width:80%;max-width:800px;padding:40px;background-color:#e8e6d9;border:1px solid #a9a9a9;box-shadow:0 0 10px #0000001a;position:relative;display:flex;flex-direction:column;min-height:60vh}.page-title{text-align:center;font-size:28px;letter-spacing:3px;margin-bottom:40px;font-weight:400;color:#4a4a4a;border-bottom:1px dotted #a9a9a9;padding-bottom:10px}.coming-soon{text-align:center;font-style:italic;font-size:20px;margin:40px 0;flex-grow:1;display:flex;align-items:center;justify-content:center}.gallery-content{display:flex;flex-direction:column;align-items:center;flex-grow:1;margin:20px 0}.gallery-item{margin-bottom:30px;text-align:center;max-width:100%}.gallery-image{max-width:100%;height:auto;border:1px solid #a9a9a9;box-shadow:0 0 10px #0000001a}.image-caption{margin-top:10px;font-style:italic;color:#4a4a4a}.page-footer{margin-top:auto;border-top:1px dotted #a9a9a9;padding-top:15px;display:flex;justify-content:flex-end}.back-link{display:inline-block;color:#4a4a4a;text-decoration:none;font-size:16px;transition:background-color .2s;padding:8px 15px}.back-link:hover{background-color:#4a4a4a;color:#e8e6d9}.page-content:before,.page-content:after{content:"";position:absolute;left:0;right:0;height:10px;background-image:radial-gradient(circle,#a9a9a9 1px,transparent 1px);background-size:10px 10px;background-position:center}.page-content:before{top:0}.page-content:after{bottom:0}@media (max-width: 768px){.page-content{width:90%;padding:20px}.page-title{font-size:24px;margin-bottom:20px}.coming-soon{font-size:18px}}
