.app{background-color:#fff;min-height:100vh;width:100%}.header{background-color:#fff;padding:0}.nav{position:fixed;top:0;left:0;right:0;background-color:#fff;border-bottom:1px solid #e0e0e0;z-index:1000;padding:1rem 0;box-shadow:0 2px 8px #0000000d}.nav-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.logo{margin-right:auto;display:flex;align-items:center}.logo-image{height:40px;width:auto;object-fit:contain;transition:opacity .3s ease,transform .3s ease}.logo:hover .logo-image{opacity:.8;transform:scale(1.05)}.nav-links{display:flex;list-style:none;gap:0;align-items:center;margin-left:auto}.nav-separator{color:#556b2f;padding:0 .3rem;font-weight:500}.nav-links li{position:relative}.nav-links a{text-decoration:none;color:#556b2f;font-weight:500;padding:.5rem .6rem;display:inline-block;position:relative;transition:color .3s ease;font-family:Comic Sans MS,Comic Sans,Caveat,sans-serif}.nav-links a:before{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background-color:#556b2f;transition:all .3s ease;transform:translate(-50%)}.nav-links a:hover{color:#4b5320}.nav-links a:hover:before{width:80%;background-color:#4b5320}.nav-links a.active{color:#4b5320}.nav-links a.active:before{width:80%;background-color:#4b5320}.hero{max-width:1200px;margin:0 auto;padding:8rem 2rem 6rem;text-align:center}.hero-image-container{display:flex;justify-content:center;margin-bottom:2rem;position:relative}.hero-image{width:200px;height:200px;border-radius:50%;object-fit:cover;border:4px solid #556B2F;transition:border-color .3s ease,transform .3s ease}.hero-image:hover{border-color:#4b5320;transform:scale(1.05)}.hero-image-placeholder{display:flex;width:200px;height:200px;border-radius:50%;background-color:#f5f5f0;border:4px solid #556B2F;align-items:center;justify-content:center;color:#556b2f;transition:border-color .3s ease,background-color .3s ease,transform .3s ease}.hero-image-placeholder:hover{border-color:#4b5320;background-color:#e8e8e0;transform:scale(1.05);color:#4b5320}.hero-title{font-size:3.5rem;font-weight:700;color:#556b2f;margin-bottom:1rem;transition:color .3s ease}.hero-title:hover{color:#4b5320}.hero-subtitle{font-size:1.5rem;color:#556b2f;margin-bottom:1rem;transition:color .3s ease}.hero-subtitle:hover{color:#4b5320}.hero-description{font-size:1.1rem;color:#555;max-width:600px;margin:0 auto 2rem}.hero-about{max-width:800px;margin:2rem auto 0}@media (max-width: 768px){.nav-container{flex-direction:column;gap:1rem}.logo{margin-right:0}.nav-links{gap:0;flex-wrap:wrap;justify-content:center;margin-left:0}.nav-links a{padding:.4rem .8rem;font-size:.9rem}.nav-separator{padding:0 .3rem}.hero{padding:6rem 2rem 4rem}.hero-image,.hero-image-placeholder{width:150px;height:150px}.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.2rem}}.about{background-color:#fff;padding:8rem 0 2rem}.section-title{font-size:2.5rem;font-weight:700;color:#556b2f;text-align:center;margin-bottom:3rem;transition:color .3s ease}.about-content{max-width:800px;margin:0 auto}.about-image-container{display:flex;justify-content:center;margin-bottom:3rem;position:relative}.about-image{width:200px;height:200px;border-radius:50%;object-fit:cover;border:4px solid #556B2F;transition:border-color .3s ease,transform .3s ease}.about-image:hover{border-color:#4b5320;transform:scale(1.05)}.about-image-placeholder{display:flex;width:200px;height:200px;border-radius:50%;background-color:#f5f5f0;border:4px solid #556B2F;align-items:center;justify-content:center;color:#556b2f;transition:border-color .3s ease,background-color .3s ease,transform .3s ease}.about-image-placeholder:hover{border-color:#4b5320;background-color:#e8e8e0;transform:scale(1.05);color:#4b5320}.about-title{font-size:3.5rem;font-weight:700;color:#556b2f;margin-bottom:1rem;text-align:center;transition:color .3s ease;font-family:Segoe Print,Segoe Script,Caveat,sans-serif}.about-title:hover{color:#4b5320}.about-subtitle{font-size:1.5rem;color:#556b2f;margin-bottom:1rem;text-align:center;transition:color .3s ease}.about-subtitle:hover{color:#4b5320}.about-description{font-size:1.1rem;color:#555;max-width:600px;margin:0 auto 2rem;text-align:center}.about-text{font-size:1.1rem;color:#555;line-height:1.8;margin-bottom:1.5rem;text-align:center}@media (max-width: 768px){.about{padding:14rem 0 2rem}.section-title{font-size:2rem}}.experience{background-color:#fff;padding:2rem 0}.skills-section{margin-bottom:0;padding-bottom:1.5rem;border-bottom:1px solid #e0e0e0;max-width:900px;margin-left:auto;margin-right:auto}.skills-compact{display:flex;flex-direction:column;gap:1rem;max-width:900px;margin:0 auto}.skill-header-row{margin-bottom:1.5rem}.top-skill-title{font-size:1.5rem;font-weight:700;color:#556b2f;display:inline-block;margin:0}.skill-category-compact{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-left:0}.category-label{font-weight:700;color:#556b2f;font-size:1rem;min-width:100px;flex-shrink:0}.skills-badges{display:flex;flex-wrap:wrap;gap:.5rem;flex:1}.skill-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .8rem;background-color:#f8f8f8;border:1px solid #e0e0e0;border-radius:5px;font-size:.9rem;color:#333;font-weight:500;transition:all .3s ease}.skill-badge:hover{background-color:#f5f5f0;border-color:#556b2f;color:#556b2f}.skill-exp{font-size:.75rem;color:#556b2f;font-weight:600}.work-experience-section{margin-top:0;padding-top:1.5rem}.experience-list{display:flex;flex-direction:column;gap:0;max-width:900px;margin:0 auto}.experience-card{padding:1.5rem 0;border-bottom:1px solid #e0e0e0}.experience-card:last-child{border-bottom:none}.experience-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.experience-title{font-size:1.5rem;font-weight:700;color:#556b2f}.experience-period{font-size:1rem;color:#666;font-weight:500}.responsibilities-list{list-style:none;padding:0;margin:0}.responsibility-item{color:#555;line-height:1.8;margin-bottom:.8rem;padding-left:1.5rem;position:relative}.responsibility-item:before{content:"▸";position:absolute;left:0;color:#556b2f;font-weight:700}@media (max-width: 768px){.experience{padding:3rem 0}.section-title{font-size:2rem}.skill-category-compact{flex-direction:column;align-items:flex-start}.category-label{min-width:auto}.experience-header{flex-direction:column;align-items:flex-start}.experience-title{font-size:1.3rem}}.education{background-color:#fff;padding:2rem 0}.timeline{position:relative;max-width:1000px;margin:0 auto;padding:2rem 0}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background-color:#556b2f;transform:translate(-50%)}.timeline-item{position:relative;margin-bottom:1rem;width:45%;display:flex;align-items:center}.timeline-item:last-child{margin-bottom:0}.timeline-item.left{left:0;flex-direction:row;text-align:right}.timeline-item.right{left:55%;flex-direction:row-reverse;text-align:left}.timeline-marker{position:absolute;top:50%;width:0;height:0;z-index:2;transition:all .3s ease;transform:translateY(-50%)}.timeline-item.left .timeline-marker{right:calc(-5% - 14px);border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:14px solid #556B2F}.timeline-item.right .timeline-marker{left:calc(-5% - 14px);border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:14px solid #556B2F}.timeline-content{padding:1.5rem 0;width:100%}.degree-title{font-size:1.5rem;font-weight:700;color:#556b2f;margin-bottom:.5rem}.university-name{font-size:1.1rem;color:#555;margin-bottom:.5rem;font-weight:500}.university-link{color:#556b2f;text-decoration:none;transition:color .3s ease;border-bottom:1px solid transparent}.university-link:hover{color:#4b5320;border-bottom-color:#4b5320}.education-location{font-size:.95rem;color:#666;margin-bottom:.5rem;font-weight:400;font-style:italic}.education-period{display:inline-block;font-size:.9rem;color:#666;font-weight:500}@media (max-width: 768px){.education{padding:3rem 0}.section-title{font-size:2rem}.timeline:before{left:2rem}.timeline-item{width:calc(100% - 4rem);left:4rem!important;flex-direction:row!important;text-align:left!important}.timeline-marker{left:-2rem;top:50%;transform:translateY(-50%)}.timeline-item.left .timeline-marker,.timeline-item.right .timeline-marker{border-left:14px solid #556B2F;border-right:0;border-top:10px solid transparent;border-bottom:10px solid transparent;left:-2rem!important;right:auto!important}.timeline-content{padding:1.2rem 0}.degree-title{font-size:1.3rem}}.activities{background-color:#fff;padding:2rem 0}.activities-list{display:flex;flex-direction:column;gap:1.5rem;max-width:900px;margin:0 auto}.activity-item{padding:1.5rem 0;border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:.8rem}.activity-item:last-child{border-bottom:none}.activity-items-list{list-style:none;padding:0;margin:0;margin-top:.8rem}.activity-item-text{color:#555;line-height:1.8;margin-bottom:.8rem;padding-left:1.5rem;position:relative}.activity-item-text:before{content:"▸";position:absolute;left:0;color:#556b2f;font-weight:700}.activity-item-text:last-child{margin-bottom:0}.activity-type{display:inline-block;font-size:.85rem;color:#556b2f;background-color:#fff;padding:.4rem .8rem;border-radius:5px;border:1px solid #556B2F;font-weight:600;width:fit-content;text-transform:uppercase;letter-spacing:.5px}.activity-title{font-size:1rem;color:#555;line-height:1.6;margin:0}.activity-link{color:#556b2f;text-decoration:none;font-weight:600;transition:color .3s ease}.activity-link:hover{color:#4b5320;text-decoration:underline}@media (max-width: 768px){.activities{padding:3rem 0}.section-title{font-size:2rem}.activity-item{padding:1.2rem 0}.activity-title{font-size:.95rem}}.publications{background-color:#fff;padding:2rem 0}.publications-list{display:flex;flex-direction:column;gap:1rem;max-width:900px;margin:0 auto}.publication-item{padding:1rem 0;border-bottom:1px solid #e0e0e0}.publication-item:last-child{border-bottom:none}.publication-title{font-size:1.3rem;font-weight:700;color:#556b2f;margin-bottom:.8rem}.publication-authors{font-size:1rem;color:#555;margin-bottom:.5rem;font-style:italic}.publication-venue{font-size:.95rem;color:#666;margin-bottom:1rem}.publication-link{display:inline-block;color:#556b2f;text-decoration:none;font-weight:600;transition:color .3s ease}.publication-link:hover{color:#4b5320;text-decoration:underline}.publications-footer{margin-top:3rem;text-align:left;padding-top:2rem;max-width:900px;margin-left:auto;margin-right:auto;border-top:1px solid #e0e0e0}.publications-note{font-size:1rem;color:#555;margin:0}.scholar-link{color:#556b2f;text-decoration:underline;font-weight:600;transition:color .3s ease}.scholar-link:hover{color:#4b5320;text-decoration:underline}@media (max-width: 768px){.publications{padding:3rem 0}.section-title{font-size:2rem}.publication-item{padding:1.5rem 0}.publication-title{font-size:1.1rem}}.photography{background-color:#fff;padding:2rem 0}.photography-slider{position:relative;display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.images-container{display:flex;gap:2rem;overflow:hidden;flex:1;justify-content:center}.photo-card{position:relative;cursor:pointer;min-width:300px;max-width:350px;flex:1;border-radius:8px;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.photo-card:hover{transform:translateY(-5px);box-shadow:0 4px 12px #556b2f4d}.photo-image{width:100%;height:300px;object-fit:cover;display:block}.photo-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);padding:1.5rem 1rem 1rem;opacity:0;transition:opacity .3s ease}.photo-card:hover .photo-overlay{opacity:1}.photo-title{color:#fff;font-weight:400;font-size:1rem;font-family:Brush Script MT,Lucida Handwriting,Caveat,cursive;letter-spacing:.5px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.modal-content{background-color:#fff;border-radius:8px;max-width:90vw;max-height:90vh;position:relative;padding:2rem;display:flex;flex-direction:column;align-items:center}.modal-image-container{position:relative;width:100%;max-width:800px;margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center}.modal-image{max-width:100%;max-height:70vh;object-fit:contain;border-radius:8px}.image-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background-color:#556b2fcc;color:#fff;border:none;width:50px;height:50px;border-radius:50%;font-size:2rem;cursor:pointer;transition:background-color .3s ease;z-index:1}.image-nav-btn:hover{background-color:#4b5320e6}.prev-image{left:1rem}.next-image{right:1rem}.image-dots{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem}.image-dot{width:10px;height:10px;border-radius:50%;border:2px solid #556B2F;background-color:transparent;cursor:pointer;transition:background-color .3s ease}.image-dot.active{background-color:#556b2f}.modal-image-title{font-size:1.5rem;font-weight:400;color:#556b2f;text-align:center;font-family:Brush Script MT,Lucida Handwriting,cursive;letter-spacing:.5px}@media (max-width: 768px){.photography{padding:3rem 0}.section-title{font-size:2rem}.photography-slider{flex-direction:column}.slider-btn{width:40px;height:40px;font-size:1.5rem}.images-container{flex-direction:column;width:100%}.photo-card{min-width:100%;max-width:100%}.photo-image{height:250px}.modal-content{padding:1.5rem;max-width:95vw}.image-nav-btn{width:40px;height:40px;font-size:1.5rem}.prev-image{left:.5rem}.next-image{right:.5rem}.modal-image-title{font-size:1.2rem}}.projects{background-color:#fff;padding:2rem 0}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.projects-slider{position:relative;display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.slider-btn{background-color:#556b2f;color:#fff;border:none;width:50px;height:50px;border-radius:50%;font-size:2rem;cursor:pointer;transition:background-color .3s ease,transform .3s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}.slider-btn:hover{background-color:#4b5320;transform:scale(1.1)}.projects-container{display:flex;gap:2rem;overflow:hidden;flex:1;justify-content:center}.project-card{background-color:#f8f8f8;padding:2rem;border-radius:8px;border:1px solid #e0e0e0;transition:transform .3s ease,box-shadow .3s ease,background-color .3s ease;cursor:pointer;min-width:300px;max-width:350px;flex:1;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-5px);box-shadow:0 4px 12px #556b2f4d;background-color:#f5f5f0}.project-title{font-size:1.5rem;font-weight:700;color:#556b2f;margin-bottom:1rem;transition:color .3s ease}.project-card:hover .project-title{color:#4b5320}.project-description{font-size:1rem;color:#555;line-height:1.6;margin-bottom:1rem}.project-tech{font-size:.9rem;color:#666;font-style:italic;margin-bottom:1rem}.view-project-btn{background-color:#556b2f;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:5px;font-weight:600;cursor:pointer;transition:background-color .3s ease;width:100%;margin-top:auto}.view-project-btn:hover{background-color:#4b5320}.slider-dots{display:flex;justify-content:center;gap:.5rem;margin-top:2rem}.dot{width:12px;height:12px;border-radius:50%;border:2px solid #556B2F;background-color:transparent;cursor:pointer;transition:background-color .3s ease}.dot.active{background-color:#556b2f}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.modal-content{background-color:#fff;border-radius:8px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;padding:2rem}.modal-close{position:absolute;top:1rem;right:1rem;background-color:#556b2f;color:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:1.5rem;cursor:pointer;transition:background-color .3s ease;z-index:1}.modal-close:hover{background-color:#4b5320}.modal-title{font-size:2rem;font-weight:700;color:#556b2f;margin-bottom:1.5rem}.modal-media-container{position:relative;margin-bottom:1.5rem;border-radius:8px;overflow:visible;width:100%}.modal-media{width:100%;display:block;position:relative}.modal-video{width:100%;max-height:500px;border-radius:8px}.modal-image{width:100%;max-height:500px;object-fit:contain;border-radius:8px}.vimeo-wrapper{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:visible;border-radius:8px;background-color:#000;margin:0}.vimeo-wrapper iframe,.vimeo-iframe{position:absolute;top:0;left:0;width:100%!important;height:100%!important;border:0;z-index:1}.vimeo-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.media-nav-btn{position:absolute;top:50%;transform:translateY(-50%);background-color:#556b2fcc;color:#fff;border:none;width:50px;height:50px;border-radius:50%;font-size:2rem;cursor:pointer;transition:background-color .3s ease;z-index:1}.media-nav-btn:hover{background-color:#4b5320e6}.prev-media{left:1rem}.next-media{right:1rem}.media-dots{display:flex;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.media-dot{width:10px;height:10px;border-radius:50%;border:2px solid #556B2F;background-color:transparent;cursor:pointer;transition:background-color .3s ease}.media-dot.active{background-color:#556b2f}.modal-info{padding-top:1rem;border-top:1px solid #e0e0e0}.modal-description{font-size:1rem;color:#555;line-height:1.8;margin-bottom:1rem}.modal-description p{margin:0;margin-bottom:.8rem}.modal-description p:last-child{margin-bottom:0}.modal-description .description-bullet{margin-left:1.5rem;margin-bottom:.5rem}.modal-tech{font-size:.9rem;color:#666;font-style:italic;margin-bottom:1.5rem}.modal-links{display:flex;gap:1rem;flex-wrap:wrap}.modal-link-btn{display:inline-flex;align-items:center;gap:.5rem;background-color:#556b2f;color:#fff;text-decoration:none;padding:.75rem 1.5rem;border-radius:5px;font-weight:600;transition:background-color .3s ease,transform .3s ease;cursor:pointer}.modal-link-btn:hover{background-color:#4b5320;transform:translateY(-2px)}.modal-link-btn .link-icon{font-size:1.2rem}@media (max-width: 768px){.projects{padding:3rem 0}.section-title{font-size:2rem}.projects-slider{flex-direction:column}.slider-btn{width:40px;height:40px;font-size:1.5rem}.projects-container{flex-direction:column;width:100%}.project-card{min-width:100%;max-width:100%}.modal-content{padding:1.5rem;max-height:95vh}.modal-title{font-size:1.5rem}.media-nav-btn{width:40px;height:40px;font-size:1.5rem}.prev-media{left:.5rem}.next-media{right:.5rem}}.contact{background-color:#fff;padding:2rem 0}.section-title{font-size:2.5rem;font-weight:700;color:#556b2f;text-align:center;margin-bottom:3rem;transition:color .3s ease;font-family:Comic Sans MS,Comic Sans,Caveat,sans-serif}.section-title:hover{color:#4b5320}.contact-content{max-width:600px;margin:0 auto;text-align:center}.contact-text{font-size:1.1rem;color:#555;line-height:1.8;margin-bottom:2rem}.contact-links{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap}.contact-link{padding:.75rem 2rem;background-color:#556b2f;color:#fff;text-decoration:none;border-radius:5px;font-weight:600;transition:background-color .3s ease,transform .3s ease,box-shadow .3s ease}.contact-link:hover{background-color:#6b8e23;transform:translateY(-2px);box-shadow:0 4px 12px #556b2f66}@media (max-width: 768px){.contact{padding:3rem 0}.section-title{font-size:2rem}.contact-links{flex-direction:column;align-items:center}.contact-link{width:200px}}.footer{background-color:#fff;border-top:1px solid #e0e0e0;padding:2rem 0;margin-top:4rem}.footer-container{max-width:1200px;margin:0 auto;padding:0 2rem;text-align:center}.copyright{color:#555;font-size:.9rem}@media (max-width: 768px){.footer{padding:1.5rem 0}.copyright{font-size:.85rem}}html{scroll-behavior:smooth}*{margin:0;padding:0;box-sizing:border-box}body{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;background-color:#fff;color:#333;line-height:1.6}#root{min-height:100vh;background-color:#fff}
