@import url("https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap");:root{--body-padding:100px;--navy-blue:#0a192f;--light-navy:#172a45;--gryffindor-red:#ae0001;--gryffindor-gold:#d4af37;--off-white:#f5f5f5;--muted-off-white:#a8b2d1}body{font-family:Source Sans Pro,sans-serif;font-size:1.125rem;background-color:var(--navy-blue);color:var(--off-white);box-sizing:border-box;min-width:320px;min-height:100vh;margin:0;transition:background-color .3s,color .3s;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{color:inherit;box-sizing:border-box}a{color:var(--gryffindor-gold);text-decoration:none;transition:color .2s ease-in-out,opacity .2s ease-in-out}a:focus,a:hover{color:var(--gryffindor-red);opacity:.85;text-decoration:underline;outline:2px solid transparent;outline-offset:2px}p{line-height:1.7;color:var(--muted-off-white);max-width:700px;margin-top:0;margin-bottom:1em}p strong{color:var(--off-white);font-weight:600}.root-content-container{padding-left:var(--body-padding);padding-right:var(--body-padding)}.root-content-container .container{max-width:980px;width:100%;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px}.navbar{padding:10px var(--body-padding);display:flex;background-color:var(--light-navy);border-bottom:1px solid var(--gryffindor-gold);position:-webkit-sticky;position:sticky;top:0;z-index:10}.navbar .container{display:flex;align-items:center;height:55px;padding:0;gap:20px}.navbar .logo{font-size:1.2rem;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;color:var(--off-white);text-decoration:none;flex-shrink:0;transition:color .3s}.navbar .logo:focus,.navbar .logo:hover{color:var(--gryffindor-gold);text-decoration:none;outline:none}.navbar .nav-links{display:flex;align-items:center;list-style:none;padding:0;margin:0}.navbar .nav-links .nav-item{position:relative;display:inline-block;margin:0 12px;padding:5px 0;text-decoration:none;color:var(--muted-off-white);transition:color .3s;font-size:.95rem}.navbar .nav-links .nav-item.active{font-weight:700;color:var(--off-white)}.navbar .nav-links .nav-item.active:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:25px;height:2px;background-color:var(--gryffindor-red)}.navbar .nav-links .nav-item:focus,.navbar .nav-links .nav-item:hover{color:var(--gryffindor-gold);text-decoration:none;opacity:1;outline:none}.hero{padding-top:70px;padding-bottom:70px}.home-hero-container{display:flex;align-items:center;gap:50px;flex-wrap:wrap-reverse;justify-content:center}.home-hero-container .text-wrapper{flex:1 1;min-width:300px;color:var(--off-white)}.hero .text-wrapper .title{font-size:clamp(2rem,6vw,3.2rem);line-height:1.2;margin:0 0 15px;color:var(--off-white);font-weight:700}.hero .text-wrapper .title span{display:block}.highlight-subtitle{color:var(--gryffindor-gold);font-size:clamp(1.5rem,4.5vw,2.2rem);font-weight:600;margin-top:8px;display:block}.hero .text-wrapper .description{font-size:clamp(1rem,2.5vw,1.15rem);line-height:1.7;color:var(--muted-off-white);max-width:650px;margin-top:25px}.cta-wrapper{margin-top:35px;display:flex;gap:15px;flex-wrap:wrap}.cta{display:inline-block;padding:10px 24px;background-color:var(--gryffindor-red);color:var(--off-white);border:1px solid var(--gryffindor-red);text-decoration:none;border-radius:4px;font-weight:600;font-size:.95rem;transition:all .25s ease-out;cursor:pointer}.cta:focus,.cta:hover{transform:translateY(-3px);border:1px solid var(--gryffindor-red);text-decoration:none;box-shadow:0 4px 8px rgba(174,0,1,.2);outline:none}.cta-secondary,.cta:focus,.cta:hover{background-color:transparent;color:var(--gryffindor-red)}.cta-secondary:focus,.cta-secondary:hover{background-color:rgba(174,0,1,.1);color:var(--gryffindor-red)}.hero-image-wrapper{flex-shrink:0;text-align:center;padding:5px}.profile-picture-hero{border-radius:50%;border:3px solid var(--gryffindor-gold);width:clamp(180px,25vw,250px);height:clamp(180px,25vw,250px);object-fit:cover;box-shadow:0 5px 15px rgba(0,0,0,.3);background-color:var(--light-navy)}.about-snippet-section,.experience-highlight-section,.featured-projects-section,.seeking-section,.skills-highlight-section{padding-top:60px;padding-bottom:60px}.about-snippet-section h2,.experience-highlight-section h2,.featured-projects-section h2,.seeking-section h2,.skills-highlight-section h2{color:var(--off-white);font-size:clamp(1.8rem,5vw,2.2rem);margin-top:0;margin-bottom:40px;text-align:center;position:relative;padding-bottom:10px}.about-snippet-section h2:after,.experience-highlight-section h2:after,.featured-projects-section h2:after,.seeking-section h2:after,.skills-highlight-section h2:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:60px;height:3px;background-color:var(--gryffindor-gold)}.about-snippet-section .about-content{max-width:750px;margin:0 auto;text-align:left}.about-snippet-section p{color:var(--muted-off-white);line-height:1.7;margin-bottom:1.5em;max-width:none}.about-snippet-section p strong,.seeking-section p strong{color:var(--gryffindor-gold);font-weight:600}.text-link{color:var(--gryffindor-red);font-weight:600;display:inline-block;margin-top:10px;text-decoration:none;transition:transform .2s ease-out}.text-link:focus,.text-link:hover{text-decoration:underline;transform:translateX(3px);outline:none}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:30px;gap:30px}.skill-category{background-color:var(--light-navy);padding:20px;border-radius:8px;border:1px solid rgba(212,175,55,.2)}.skill-category-title{font-size:1.1rem;color:var(--off-white);margin-top:0;margin-bottom:15px;border-bottom:1px solid var(--navy-blue);padding-bottom:10px}.skill-category .tags-wrapper{margin-top:0;gap:8px}.skill-category .tags-wrapper .tags-container .tag-item{background-color:var(--navy-blue);border-color:var(--navy-blue);font-size:.8rem}.skill-category .tags-wrapper .tags-container .tag-item:hover{border-color:var(--gryffindor-gold);background-color:var(--light-navy);color:var(--gryffindor-gold)}.experience-highlights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:25px;gap:25px;max-width:850px;margin:0 auto}.experience-highlight-item{background-color:var(--light-navy);padding:20px;border-radius:6px;text-align:left}.experience-highlight-title{font-size:1.15rem;color:var(--off-white);margin-top:0;margin-bottom:10px}.experience-highlight-item p{font-size:.95rem;color:var(--muted-off-white);line-height:1.6;margin-bottom:0}.featured-projects-section{background-color:var(--navy-blue)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:25px;gap:25px}.project-card{background-color:var(--light-navy);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease;border:1px solid rgba(212,175,55,.2)}.project-card:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.3)}.project-image-placeholder{background-color:var(--navy-blue);height:180px;display:flex;align-items:center;justify-content:center}.project-image-placeholder img{width:100%;height:100%;object-fit:cover}.project-card-content{padding:20px;display:flex;flex-direction:column;flex-grow:1}.project-title{font-size:1.25rem;color:var(--off-white);margin-top:0;margin-bottom:10px}.project-description{font-size:.95rem;color:var(--muted-off-white);line-height:1.6;margin-bottom:15px;flex-grow:1}.project-card .tags-wrapper{margin-top:auto;padding-bottom:15px}.project-links{margin-top:15px;display:flex;gap:15px}.project-links a{font-size:.9rem;font-weight:600;color:var(--gryffindor-gold)}.project-links a:hover{color:var(--gryffindor-red)}.seeking-section .container p{max-width:800px;margin-left:auto;margin-right:auto;text-align:center;margin-bottom:1.5em;color:var(--muted-off-white);line-height:1.7}.seeking-section .cta-wrapper{justify-content:center;margin-top:30px}.page-heading-container{padding-top:40px;padding-bottom:20px;border-bottom:1px solid var(--light-navy);margin-bottom:40px}.page-heading-container h1{color:var(--off-white);font-size:clamp(2rem,5vw,2.5rem);margin-bottom:10px}.page-heading-container p{color:var(--muted-off-white);font-size:clamp(1rem,2.5vw,1.1rem);max-width:600px}.job-details{padding-top:30px;padding-bottom:30px}.job-details .title{font-size:clamp(1.5rem,4vw,1.8rem);margin-bottom:15px;line-height:1.3}.job-details .title span:first-child{display:block;color:var(--off-white)}.job-details .title span:last-child{font-size:.9rem;color:var(--muted-off-white);font-weight:400;display:block;margin-top:5px}.job-details .sub-point{font-size:1rem;line-height:1.7;color:var(--muted-off-white);margin-bottom:.8em;padding-left:1.7em;position:relative;max-width:750px}.job-details .sub-point:before{content:"▹";color:var(--gryffindor-gold);position:absolute;left:0;font-size:1.3em;line-height:1;top:.1em}.job-details .sub-point b{color:var(--off-white);font-weight:600}.awards-section{padding:40px 0}.awards-section .title{text-align:center;margin-bottom:40px;font-size:clamp(1.8rem,5vw,2.2rem)}.awards-list{list-style:none;padding-left:0;max-width:750px;margin:0 auto}.awards-list li{color:var(--muted-off-white);margin-bottom:1.8em;padding-left:2.2em;position:relative;line-height:1.7}.awards-list li:before{content:"🏆";position:absolute;left:0;top:-2px;font-size:1.2em}.awards-list li b{color:var(--off-white);font-weight:600;display:block;margin-bottom:5px;font-size:1.05em}.education-section{padding:40px 0}.education-section .title{text-align:center;margin-bottom:30px;font-size:clamp(1.8rem,5vw,2.2rem)}.education-details{max-width:750px;margin:0 auto;text-align:center}.education-details h3{color:var(--off-white);font-size:1.3rem;margin-bottom:5px}.education-details p{color:var(--muted-off-white);margin-bottom:6px;line-height:1.6;font-size:1rem}.education-details b{color:var(--off-white)}.education-details i{color:var(--gryffindor-gold);font-style:normal}.education-details .coursework{margin-top:15px;font-size:.9rem;line-height:1.5;color:var(--muted-off-white)}.education-details .coursework b{color:var(--muted-off-white);font-weight:600}.hl{color:var(--gryffindor-gold);font-weight:600;text-decoration:none}hr{border:none;height:1px;background-color:var(--light-navy);margin:40px 0}hr.subtle{background-color:rgba(23,42,69,.5);height:1px;margin:60px auto;width:80%}hr.break-section{width:60%;min-width:250px;margin:70px auto;height:1px;background-color:var(--light-navy)}hr.break-section.double{height:4px;border-top:1px solid var(--light-navy);border-bottom:1px solid var(--light-navy);background-color:transparent;margin:80px auto}hr.short{width:80px;margin:30px auto;height:1px}.contact-wrapper{display:flex;width:-moz-fit-content;width:fit-content;margin-left:10px}.contact-wrapper .image-block-wrapper{display:flex;gap:15px;align-items:center}.contact-wrapper img{filter:grayscale(1) brightness(1.8);width:20px;height:20px;opacity:.8;transition:all .2s ease-in-out}.contact-wrapper a:focus img,.contact-wrapper a:hover img{opacity:1;filter:none;transform:scale(1.1);outline:none}a.external-link{color:var(--gryffindor-gold);display:inline-flex;align-items:center;gap:6px;font-size:inherit}a.external-link img{width:1em;height:1em;filter:grayscale(1) brightness(1.5);opacity:.7;transition:opacity .3s;display:inline-block;vertical-align:middle}a.external-link:hover img{opacity:1}.tags-wrapper{display:grid;grid-template-columns:max-content auto;grid-gap:10px;gap:10px;margin-top:25px;align-items:flex-start}.tags-wrapper.no-caption{display:block;margin-top:15px}.tags-wrapper .caption{font-weight:700;font-size:.9rem;color:var(--muted-off-white);padding-top:5px}.tags-wrapper .tags-container{display:flex;flex-wrap:wrap;gap:8px}.tags-wrapper .tags-container .tag-item{padding:3px 12px;border:1px solid var(--light-navy);border-radius:15px;background-color:var(--light-navy);transition:all .2s ease-in-out;font-size:.8rem;color:var(--muted-off-white);text-decoration:none;cursor:default;white-space:nowrap}.tags-wrapper .tags-container .tag-item:hover{border-color:var(--gryffindor-gold);background-color:rgba(212,175,55,.1);color:var(--gryffindor-gold)}.get-pdf{display:flex;align-items:center;justify-content:center;width:55px;height:55px;aspect-ratio:1;border-radius:50%;background-color:var(--gryffindor-red);position:fixed;bottom:30px;right:30px;box-shadow:0 4px 12px rgba(0,0,0,.4);transition:all .3s;z-index:20}.get-pdf:focus,.get-pdf:hover{background-color:#c8102e;transform:scale(1.1);outline:none}.get-pdf>a{display:flex;align-items:center;justify-content:center;width:100%;height:100%;text-decoration:none}.get-pdf img{width:28px;height:28px;filter:grayscale(1) brightness(2.2)}.footer{padding:25px var(--body-padding);color:var(--muted-off-white);text-align:center;font-size:.85rem;border-top:1px solid var(--light-navy);margin-top:80px}.footer a{color:var(--gryffindor-gold)}.footer a:hover{color:var(--gryffindor-red)}.contact-section{padding:60px var(--body-padding);text-align:center;background-color:var(--light-navy);margin-top:60px}.contact-section .container{padding:0 15px}.contact-section h2{color:var(--off-white);margin-top:0;margin-bottom:30px;font-size:clamp(1.6rem,4vw,1.8rem)}.contact-links-footer{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;font-size:1.1rem}.contact-links-footer a{color:var(--gryffindor-gold);font-weight:600;padding:5px 10px;border-bottom:2px solid transparent;transition:color .3s,border-color .3s}.contact-links-footer a:focus,.contact-links-footer a:hover{color:var(--gryffindor-red);border-bottom-color:var(--gryffindor-red);text-decoration:none;outline:none}@media only screen and (max-width:1024px){:root{--body-padding:40px}body{font-size:1rem}.contact-section,.footer,.navbar{padding-left:20px;padding-right:20px}.navbar .logo{font-size:1.1rem}.navbar .container{gap:15px}.navbar .nav-links .nav-item{margin-left:10px;margin-right:10px;font-size:.9rem}.hero .text-wrapper .title{font-size:clamp(2rem,5vw,2.5rem)}.highlight-subtitle{font-size:clamp(1.6rem,4vw,2rem)}.hero .text-wrapper .description{font-size:1rem;line-height:1.7}.page-heading-container h1{font-size:2.2rem}.job-details .title{font-size:1.6rem}.awards-section .title,.education-section .title{font-size:2rem}.tags-wrapper{grid-template-columns:1fr;gap:8px}.about-profile-content{grid-template-columns:1fr;gap:30px}.about-profile-content .profile-picture{width:180px;height:180px;margin:0 auto 20px}.get-pdf{width:55px;height:55px;bottom:25px;right:25px}.get-pdf img{width:28px;height:28px}.mobile-only{display:initial}}@media only screen and (max-width:768px){:root{--body-padding:20px}.navbar .nav-links{margin-left:5px;gap:0;flex-grow:1;justify-content:flex-end}.navbar .nav-links .nav-item{margin-left:8px;margin-right:8px;font-size:.85rem}.navbar .logo{font-size:1rem;letter-spacing:1px}.contact-wrapper{display:none}.home-hero-container{gap:30px;text-align:center}.home-hero-container .text-wrapper{flex-basis:100%;text-align:center}.profile-picture-hero{width:160px;height:160px;margin:0 auto 30px}.cta-wrapper{justify-content:center}.job-details .title{font-size:1.4rem}.job-details .title span:last-child{font-size:.85rem}.job-details .sub-point{font-size:.9rem;line-height:1.65;padding-left:1.5em}.awards-section .title,.education-section .title{font-size:1.6rem}.awards-list li{font-size:.9rem;line-height:1.6}.education-details h3,.education-details p{font-size:.95rem}.education-details .coursework{font-size:.8rem;line-height:1.4}p{line-height:1.6}.footer{font-size:.8rem;padding:15px}.contact-links-footer{gap:15px;font-size:1rem}.get-pdf{width:50px;height:50px;bottom:20px;right:20px}.get-pdf img{width:25px;height:25px}}.sr-only{border:0!important;clip:rect(1px,1px,1px,1px)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.mobile-only{display:none}@media only screen and (max-width:1024px){.mobile-only{display:initial}}