@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;600&family=Roboto+Mono:wght@400;500&display=swap";#root{max-width:1280px;width:100vw;height:auto;margin:0 auto;background-color:#fdf7e3}.app-container{min-height:100vh;min-width:10vw;text-align:center;background-color:#fdf7e3;background-image:url(path_to_texture_image);background-blend-mode:multiply;background-size:cover}.description{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;background-color:#fdf7e3}.description-container{margin-bottom:2rem}.navbar{position:fixed;top:0;left:0;width:100%;z-index:1000;background-color:#8da57a;padding:1rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 5px #0000001a;font-family:Roboto,sans-serif}body,#root{padding-top:40px}.headshot-container{display:flex;justify-content:center;align-items:center;position:relative}.headshot{width:220px;aspect-ratio:1 / 1;border-radius:50%;object-fit:cover;box-shadow:0 4px 8px #0000001a,0 6px 20px #0000001a;transition:transform .3s ease,box-shadow .3s ease;z-index:1}.headshot-container:before{content:"";position:absolute;top:50%;left:50%;width:220px;height:220px;border-radius:50%;border:2px solid #c6d3b2;transform:translate(-50%,-50%);opacity:0;z-index:0;transition:opacity .3s ease}.headshot-container:after{content:"";position:absolute;top:50%;left:50%;width:240px;height:240px;border-radius:50%;border:2px dashed transparent;border-top-color:#8da57a;border-bottom-color:#8da57a;transform:translate(-50%,-50%);z-index:0;opacity:0;transition:opacity .3s ease}.headshot-container:hover:before,.headshot-container:hover:after{opacity:1}.headshot-container:hover:before{animation:spin-solid 2s linear infinite}.headshot-container:hover:after{animation:spin-dashed 2s linear infinite}.headshot:hover{box-shadow:0 8px 16px #0000004d,0 10px 30px #00000040}.headshot-container:hover{transform:scale(1.05)}.tooltip{visibility:hidden;background-color:#333;color:#fff;text-align:center;padding:5px 10px;border-radius:5px;position:absolute;z-index:10;bottom:110%;left:50%;transform:translate(-50%);white-space:nowrap;opacity:0;transition:opacity .3s ease}.tooltip-below{bottom:0%}.project-tooltip{bottom:-12%}.headshot-container:hover .tooltip{visibility:visible;opacity:1}@keyframes spin-solid{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes spin-dashed{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(-360deg)}}.section-header{font-family:Roboto,sans-serif;color:#5a6343;display:flex;flex-direction:column;align-items:center;justify-content:center;height:75px;margin-top:2rem}.hero{display:flex;justify-content:space-between;align-items:space-between;margin:10rem 6rem}.description{display:flex;justify-content:flex-start;align-items:baseline;text-align:start;flex:auto;padding:50px;position:relative;margin-right:100px}.description:before{content:"";position:absolute;top:0;left:0;border-top:4px solid rgb(3,72,3);border-left:4px solid rgb(3,72,3);width:4%;aspect-ratio:1 / 1}.description:after{content:"";position:absolute;bottom:0;right:0;border-bottom:4px solid rgb(3,72,3);border-right:4px solid rgb(3,72,3);width:4%;aspect-ratio:1 / 1}.description-header{display:flex;justify-content:space-between}.icon-container{display:flex;justify-content:space-between;align-items:center;width:40%;margin-bottom:4%}.icon{height:30px;width:30px;filter:grayscale(1) contrast(100);transition:.25s ease}.icon:hover{transform:scale(1.1)}.attribution{font-size:10px}.attributions{text-align:center;margin-top:1rem}@media screen and (max-width: 1200px){.app-container,#home{max-width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.hero{flex-direction:column-reverse;min-width:100%;justify-content:center;align-items:center;margin:0}.description{min-width:100%;padding:5%}.description-header{flex-direction:column}.description-text{max-width:100%;flex-basis:auto}.icon-container{margin-top:4%;margin-bottom:4%;flex-basis:auto;max-width:300px;width:100%}.description{display:flex;max-width:100%;margin:0;margin-bottom:2rem;justify-content:center;align-items:center;flex-basis:auto}.headshot-container{display:flex;flex-basis:auto;margin-bottom:4%}#home{width:80vw;height:auto}#about-me,#projects{width:100vw;height:auto}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Roboto Mono,Inconsolata,monospace;background-color:#fdf7e3;color:#5a6343}a,h1{font-family:Roboto Mono,Inconsolata,monospace}.navbar{background:none;display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;width:100%;height:5rem;z-index:1000;box-shadow:none;background-color:#fdf7e3}.navbar-logo h1{font-size:1.5rem;font-weight:700;color:#152904}.navbar-links{display:flex;list-style-type:none;margin:0 1.5rem;transition:color .3s ease;justify-content:space-between;align-items:flex-end;min-width:20rem;gap:2rem}.navbar-links li{flex:1;display:flex;justify-content:center}.navbar-links a{position:relative;color:#152904;font-size:1.1rem;font-weight:500;text-decoration:none;transition:color .3s ease,transform .3s ease}.navbar-links a:before{content:"";position:absolute;left:-.75rem;color:#8da57a;font-weight:500;opacity:0;transition:opacity .3s ease}.navbar-links a:hover{color:#8da57a}@media screen and (min-width: 901px){.navbar-links a:hover{transform:translate(.75rem)}}.navbar-links a:hover:before{content:">";opacity:1}.navbar-links li:hover,.navbar-logo li:hover{color:#152904}.navbar-toggle{display:none;cursor:pointer;flex-direction:column;justify-content:space-between;height:24px}.navbar-toggle .bar{height:3px;width:30px;background-color:#152904;margin:3px 0;transition:all .3s ease}@media screen and (max-width: 900px){.navbar{display:flex}.navbar-container{display:flex;align-items:flex-end}.navbar-links{position:absolute;top:100%;right:0;width:100%;flex-direction:column;align-items:center;overflow:hidden;max-height:0;transform:translateY(-100%)}.navbar-links.open{width:30%;max-height:300px;display:flex;flex-direction:column;box-shadow:0 4px 10px #0003;transform:translateY(0);right:0;margin:0;gap:0}.link-container{width:100%;background-color:linen;transition:background-color .3s ease;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:3rem}.navbar-links.open div:hover,.navbar-links.open .link-container:hover{background:#5a6343}.navbar-links li{margin:0;width:100%;height:3rem;display:flex;justify-content:center;align-items:center}.navbar-links a{display:flex;align-items:center;justify-content:center;text-align:center;width:100%;height:100%;transform:none!important}.navbar-toggle{display:flex}.navbar-toggle .bar{background-color:#6b7a47}.navbar{padding:1rem}}.projects-page{min-height:100vh;background-color:#fdf7e3;font-family:Roboto Mono,Inconsolata,monospace;color:#5a6343}.projects-container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.projects-header{text-align:center;margin-bottom:3rem}.projects-title{font-size:3rem;font-weight:700;color:#152904;margin-bottom:1rem;letter-spacing:-.025em;line-height:1}.projects-subtitle{font-size:1.25rem;color:#5a6343;max-width:42rem;margin:0 auto;line-height:1.625}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:80rem;margin:0 auto;margin-top:4rem}.project-card{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#faf7f0;border-radius:12px;box-shadow:0 4px 6px #0000000d,0 8px 20px #00000014;border:1px solid #f1f2f6;overflow:hidden;transition:all .3s ease;min-height:450px;width:100%}.project-image-container{position:relative;overflow:hidden;height:12rem;width:100%;flex-shrink:0;margin:0;padding:0;border-top-left-radius:12px;border-top-right-radius:12px}.project-image{width:100%;height:100%;display:block;margin:0;padding:0;border:none;vertical-align:top}.project-image.contain{object-fit:contain}.project-image.cover{object-position:top;object-fit:cover}.project-image-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(0,0,0,.2),transparent);opacity:0;transition:opacity .3s ease}.project-content{padding:1.5rem;flex:1;display:flex;flex-direction:column}.project-title{font-size:1.25rem;font-weight:700;color:#152904;margin-bottom:.75rem}.project-description{color:#5a6343;font-size:.875rem;line-height:1.5;margin-bottom:1rem;flex:1;overflow:hidden}.project-skills{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.skill-tag{padding:.25rem .75rem;background-color:#f0ede6;color:#152904;font-size:.75rem;font-weight:500;border-radius:9999px;border:1px solid rgba(212,208,196,.3);transition:all .3s ease}.skill-tag:hover{transform:translateY(-1px)}.project-links{display:flex;gap:.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-weight:500;font-size:.875rem;border-radius:.5rem;text-decoration:none;transition:all .3s ease;flex:1;border:none;cursor:pointer}.btn-primary{background-color:#8da57a;color:#fff}.btn-primary:hover{background-color:#6b7a47;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.btn-secondary{background-color:#f0ede6;color:#152904;border:1px solid rgba(212,208,196,.3)}.btn-secondary:hover{background-color:#e8e5dc;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}@media (min-width: 768px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.projects-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.projects-container{padding:1.5rem 1rem}.projects-title{font-size:2.5rem}.projects-grid{gap:1.5rem;grid-template-columns:1fr}.project-content{padding:1rem}.project-links{flex-direction:column}}@media (max-width: 480px){.projects-container{padding:1rem .75rem}.projects-title{font-size:2rem}.projects-grid{gap:1rem;grid-template-columns:1fr}.project-card{margin:0 .5rem}}.movies-section{margin-bottom:2rem}.movies-section h2{font-size:2.2rem;color:#152904;margin-bottom:1.5rem;font-weight:400;text-align:center;position:relative}.movies-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:2rem;max-width:1200px;margin-left:auto;margin-right:auto;justify-items:center}.movie-card{background:#faf7f0;border-radius:16px;overflow:hidden;box-shadow:0 4px 8px #0000000f,0 8px 25px #0000001a;transition:all .3s ease;border:1px solid #f0ede6;max-width:320px;width:100%}.movie-poster{width:100%;height:400px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;background:#f5f5f5}.movie-poster img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.poster-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#e8e8e8;font-size:3rem;color:#999}.movie-info{padding:1.5rem}.movie-title{font-size:1.3rem;color:#152904;margin-bottom:.5rem;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.movie-year{color:#8da57a;font-size:.9rem;font-weight:500}.stars{color:#e2c310;font-size:1.2rem;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.1)}.movie-review{color:#5a6343;line-height:1.5;font-size:.9rem;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-style:italic}.movie-info-container{display:flex;justify-content:space-between;align-items:center}.movie-rating{margin-left:1rem}.movies-loading,.movies-error{text-align:center;padding:2rem;color:#5a6343;font-size:1.1rem}.movies-error{color:#d63031}@media screen and (max-width: 1024px) and (min-width: 769px){.movies-grid{max-width:900px;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.movie-card{max-width:300px}}@media screen and (max-width: 768px){.movies-section h2{font-size:1.8rem}.movies-grid{gap:1.5rem;max-width:700px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.movie-card{max-width:300px}.movie-poster{height:350px}}@media screen and (max-width: 480px){.movies-grid{gap:1rem;max-width:100%;grid-template-columns:1fr;justify-items:center}.movie-card{max-width:320px;width:calc(100% - 1rem);margin:0 .5rem}.movie-poster{height:300px}.movie-info{padding:1rem}.movie-title{font-size:1.2rem}}.about-container{max-width:1200px;margin:0 auto;padding:2rem;background-color:#fdf7e3;min-height:100vh}.about-header{text-align:center;margin-bottom:3rem}.about-header h1{font-size:3rem;color:#152904;margin-bottom:1rem;font-weight:700;letter-spacing:-.025em;line-height:1}.about-content{display:flex;flex-direction:column;gap:2.5rem}.about-section{margin-bottom:2rem}.about-section h2{font-size:2.2rem;color:#152904;margin-bottom:1.5rem;font-weight:400;text-align:center;position:relative}.about-section h2:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:60px;height:1px;background:#8da57a}.paper-card{background:#faf7f0;border-radius:12px;padding:2.5rem;box-shadow:0 4px 6px #0000000d,0 8px 20px #00000014;border:1px solid #f1f2f6;transition:all .3s ease;margin:0 auto;max-width:900px}.paper-card:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000014,0 12px 30px #0000001f}.degree-info,.job-info{text-align:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #ecf0f1}.degree-info h3,.job-info h3{font-size:1.8rem;color:#152904;margin-bottom:.5rem;font-weight:500}.institution,.company{font-size:1.1rem;color:#5a6343;font-style:italic;margin:0}.details{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.detail-group{margin-bottom:1.5rem}.detail-group h4{font-size:1.3rem;color:#152904;margin-bottom:1rem;font-weight:500;border-left:3px solid #8da57a;padding-left:1rem}.detail-group ul{list-style:none;padding:0;margin:0}.detail-group li{padding:.5rem 0 .5rem 1.5rem;position:relative;color:#5a6343;line-height:1.6;font-size:1rem}.detail-group li:before{content:"•";position:absolute;left:0;color:#8da57a;font-size:1.2rem;font-weight:700}.skills{padding:0;margin:2rem 0}.hobbies-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:2rem;max-width:1200px;margin-left:auto;margin-right:auto;justify-items:center}@media screen and (min-width: 1025px){.hobbies-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,auto);gap:2rem;max-width:1200px;justify-items:center}.hobby-card:nth-child(1){grid-column:1 / 3;grid-row:1}.hobby-card:nth-child(2){grid-column:3 / 5;grid-row:1}.hobby-card:nth-child(3){grid-column:5 / 7;grid-row:1}.hobby-card:nth-child(4){grid-column:2 / 4;grid-row:2}.hobby-card:nth-child(5){grid-column:4 / 6;grid-row:2}}.hobby-card{max-width:320px;width:100%;background:#faf7f0;border-radius:16px;overflow:hidden;box-shadow:0 4px 8px #0000000f,0 8px 25px #0000001a;border:1px solid #f0ede6}.hobby-image{width:100%;height:200px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.hobby-image img{width:100%;height:100%;object-fit:cover;border-radius:0}.hobby-content{padding:1.5rem}.hobby-content h4{font-size:1.4rem;color:#152904;margin-bottom:.8rem;font-weight:600;text-align:center}.hobby-content p{color:#5a6343;line-height:1.6;font-size:.95rem;text-align:center;margin:0}@media screen and (max-width: 1024px) and (min-width: 769px){.hobbies-grid{max-width:900px;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.hobby-card{max-width:300px}}@media screen and (max-width: 768px){.about-container{padding:1rem}.about-header h1{font-size:2.5rem}.about-section h2{font-size:1.8rem}.paper-card{padding:1.5rem}.details{grid-template-columns:1fr;gap:1.5rem}.degree-info h3,.job-info h3{font-size:1.5rem}.hobbies-grid{gap:1.5rem;max-width:700px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.hobby-card{max-width:300px}.hobby-image{height:150px}}@media screen and (max-width: 480px){.about-container{padding:.5rem}.about-header h1{font-size:2rem;letter-spacing:1px}.paper-card{padding:1rem;margin:0 .5rem}.detail-group h4{font-size:1.1rem}.detail-group li{font-size:.9rem}.hobbies-grid{gap:1rem;max-width:100%;grid-template-columns:1fr;justify-items:center}.hobby-card{max-width:320px;width:calc(100% - 1rem);margin:0 .5rem}.hobby-content{padding:1rem}.hobby-content h4{font-size:1.2rem}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.about-section{animation:fadeInUp .6s ease-out}.about-section:nth-child(2){animation-delay:.1s}.about-section:nth-child(3){animation-delay:.2s}.about-section:nth-child(4){animation-delay:.3s}.about-section:nth-child(5){animation-delay:.4s}:root{font-family:Roboto,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#5a6343;background-color:#fdf7e3;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#8da57a;text-decoration:inherit}a:hover{color:#173707}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:#fdf7e3}h1{font-size:3.2em;line-height:1.1;color:#5a6343}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#eae7dc;color:#5a6343;cursor:pointer;transition:border-color .25s}button:hover{border-color:#8da57a}button:focus,button:focus-visible{outline:4px auto #8da57a}@media (prefers-color-scheme: light){:root{color:#5a6343;background-color:#fff}a:hover{color:#7a9d69}button{background-color:#f9f9f9}}
