:root{--bg-color:#fff;--bg-secondary:#f9fafb;--text-primary:#1f2937;--text-secondary:#4b5563;--accent-color:#0f172a;--blue-accent:#2563eb;--border-color:#e5e7eb;--font-serif:"Times New Roman", Times, Georgia, serif;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable;min-height:100.2vh;overflow-y:scroll!important}body{font-family:var(--font-serif);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100.2vh;line-height:1.6}.container{width:100%;max-width:900px;margin:0 auto;padding:0 1.5rem}.page-wrapper{flex-direction:column;min-height:100.2vh;display:flex}main{flex-grow:1;padding:2rem 0}h1,h2,h3,h4{color:var(--accent-color);margin-bottom:1rem;font-weight:400}h1{letter-spacing:-.02em;font-size:3rem}h2{border-bottom:1px solid var(--border-color);padding-bottom:.5rem;font-size:2rem}h3{font-size:1.5rem}p{color:var(--text-secondary);margin-bottom:1rem}a{color:var(--accent-color);text-decoration:none;transition:color .2s}a:hover{text-decoration:underline}header{border-bottom:1px solid var(--border-color);background-color:var(--bg-color)}nav{justify-content:space-between;align-items:center;width:100%;height:80px;display:flex}.nav-brand{letter-spacing:.05em;font-size:1.5rem;font-weight:700}.nav-brand:hover{text-decoration:none}.nav-links{gap:2rem;list-style:none;display:flex}.nav-links a{text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);font-size:.85rem;font-weight:500;transition:color .2s,text-shadow .2s}.nav-links a:hover,.nav-links a.active{color:var(--accent-color);text-shadow:0 0 .55px,0 0 .55px;text-decoration:none}.btn{border:1px solid var(--accent-color);color:var(--accent-color);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;background-color:#0000;padding:.75rem 1.5rem;font-size:.9rem;transition:all .3s;display:inline-block}.btn:hover{background-color:var(--accent-color);color:#fff;text-decoration:none}.btn-primary{background-color:var(--accent-color);color:#fff}.btn-primary:hover{color:var(--accent-color);background-color:#fff}.fade-in{animation:.6s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.home-wrapper{flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:60vh;display:flex}.home-content{text-align:center;width:100%;max-width:800px;margin:0 auto}.home-title{color:var(--accent-color);letter-spacing:-.02em;margin-bottom:1rem;font-size:3.2rem;line-height:1.1}.marquee-container{white-space:nowrap;width:100%;margin:0 auto 2.5rem;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 15% 85%,#0000);mask-image:linear-gradient(90deg,#0000,#000 15% 85%,#0000)}.marquee-content{white-space:nowrap;color:var(--text-secondary);letter-spacing:.05em;text-transform:lowercase;font-size:1.1rem;animation:25s linear infinite marqueeScroll;display:inline-block}.marquee-item{padding:0 1.5rem;display:inline-block;position:relative}.marquee-item:after{content:"·";color:var(--border-color);position:absolute;right:-.1rem}@keyframes marqueeScroll{0%{transform:translate(0%)}to{transform:translate(-50%)}}.home-bio{color:var(--text-primary);text-align:center;margin-bottom:2.5rem;font-size:1.15rem;line-height:1.8}.home-cta-group{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;width:100%;display:flex}@media (width<=768px){nav{flex-direction:column;gap:.75rem;height:auto;padding:1.15rem 0 1rem}.nav-brand{font-size:1.3rem}.nav-links{flex-wrap:wrap;justify-content:center;gap:1.25rem}.nav-links a{letter-spacing:.08em;font-size:.78rem}.container{padding:0 1.25rem}main{padding:3.5rem 0 3rem}.home-wrapper{min-height:auto;padding-top:1rem}.home-title{margin-bottom:1.1rem;font-size:2.45rem}.home-bio{margin-bottom:2rem;font-size:1.02rem;line-height:1.7}.home-cta-group{flex-direction:column;gap:.75rem;width:100%;max-width:320px;margin:0 auto}.home-cta-group .btn{text-align:center;width:100%;padding:.85rem 1.25rem}.marquee-container{margin-bottom:1.75rem}.marquee-content{font-size:.95rem}}.resume-wrapper{width:100%;max-width:100%;margin:0 auto;padding:1.5rem 0 6rem}.resume-topbar{justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem;display:flex}.resume-title{letter-spacing:-.02em;color:var(--accent-color);margin:0;font-size:2.5rem;font-weight:400;line-height:1}.resume-actions{align-items:center;gap:1rem;display:flex}.btn-resume-download{border:1px solid var(--accent-color);color:var(--accent-color);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background-color:#0000;align-items:center;gap:.45rem;padding:.45rem .95rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn-resume-download:hover{background-color:var(--accent-color);color:#fff;text-decoration:none}.resume-main-divider{border:0;border-top:1.5px solid var(--accent-color);margin-bottom:2.5rem}.resume-section{margin-bottom:3.5rem}.resume-section-header{border-bottom:1px solid var(--border-color);margin-bottom:2rem;padding-bottom:.35rem}.resume-section-label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.12em;color:var(--accent-color);margin:0;font-size:.8rem;font-weight:700}.resume-section-divider{display:none}.resume-entry{grid-template-columns:210px 1fr;gap:2.5rem;margin-bottom:2.25rem;display:grid}.resume-entry:last-child{margin-bottom:.5rem}.resume-entry-left{flex-direction:column;display:flex}.resume-date,.resume-period{font-family:var(--font-sans);color:#64748b;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.2rem;font-size:.78rem;font-weight:500}.resume-location{font-family:var(--font-sans);color:#94a3b8;letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:500}.resume-entry-right{flex-direction:column;display:flex}.resume-institution,.resume-institution-link,.resume-org{font-family:var(--font-sans)!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:#64748b!important;margin-bottom:.25rem!important;font-size:.75rem!important;font-weight:600!important;text-decoration:none!important;display:inline-block!important}.resume-institution-link:hover{color:var(--accent-color)!important;text-decoration:underline!important}h4.resume-entry-title,.resume-entry-title,.resume-role{font-family:var(--font-serif)!important;color:var(--accent-color)!important;margin:0 0 .4rem!important;font-size:1.15rem!important;font-weight:700!important;line-height:1.35!important}.resume-bullets{margin-top:.4rem;margin-left:1.15rem;list-style-type:disc}.resume-bullets li{font-family:var(--font-sans);color:var(--text-secondary);margin-bottom:.4rem;font-size:.86rem;line-height:1.6}.resume-bullets li:last-child{margin-bottom:0}.resume-skills-4cols{grid-template-columns:repeat(4,1fr);gap:2rem;display:grid}.resume-skill-col-title,.resume-skill-col h4{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-color);margin-bottom:.65rem;font-size:.75rem;font-weight:700}.resume-skill-col-list{margin:0;padding:0;list-style:none}.resume-skill-col-list li{font-family:var(--font-sans);color:var(--text-secondary);margin-bottom:.25rem;font-size:.85rem;line-height:1.6}.resume-volunteering-item{grid-template-columns:210px 1fr;gap:2.5rem;margin-bottom:1.5rem;display:grid}.resume-volunteering-item:last-child{margin-bottom:0}.resume-volunteering-text{font-family:var(--font-sans);color:var(--text-secondary);font-size:.875rem;line-height:1.5}.resume-volunteering-text strong{font-family:var(--font-serif);color:var(--accent-color);margin-bottom:.2rem;font-size:1.05rem;font-weight:700;display:block}.resume-volunteering-meta{font-family:var(--font-sans);color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:500}.resume-reveal{opacity:1;transform:translateY(0)}@media (width<=860px){.resume-skills-4cols{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media (width<=650px){.resume-topbar{flex-direction:column;align-items:flex-start;gap:1.25rem}.resume-actions{width:100%}.resume-entry{grid-template-columns:1fr;gap:.4rem;margin-bottom:2rem}.resume-entry-left{margin-bottom:.2rem}.resume-skills-4cols{grid-template-columns:1fr}.resume-volunteering-item{flex-direction:column;gap:.25rem}.resume-volunteering-meta{margin-left:0}}.project-deepdive-list{flex-direction:column;display:flex}.project-deepdive-card{border-top:1px solid var(--border-color);grid-template-columns:280px 1fr;gap:2.75rem;padding:2.25rem 0;display:grid}.project-deepdive-card:last-child{border-bottom:1px solid var(--border-color)}.project-deepdive-left{flex-direction:column;align-items:flex-start;gap:.6rem;display:flex}.project-deepdive-title{font-family:var(--font-serif);color:var(--accent-color);margin:0;font-size:1.25rem;font-weight:700;line-height:1.3}.project-deepdive-date{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;font-size:.75rem;font-weight:600}.project-deepdive-institution{font-family:var(--font-sans);color:#64748b;font-size:.8rem;font-weight:500;line-height:1.4}.project-deepdive-btn{border:1px solid var(--accent-color);color:var(--accent-color);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background-color:#0000;align-items:center;gap:.4rem;margin-top:.4rem;padding:.45rem .9rem;font-size:.72rem;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.project-deepdive-btn:hover{background-color:var(--accent-color);color:#fff;text-decoration:none}.project-deepdive-right{flex-direction:column;gap:.85rem;display:flex}.project-deepdive-desc{font-family:var(--font-sans);color:var(--text-secondary);margin:0;font-size:.875rem;line-height:1.65}.project-deepdive-desc strong{color:var(--text-primary);font-weight:600}.contact-inline-link{color:var(--text-primary);font-weight:500;font-size:inherit;text-underline-offset:3px;font-family:inherit;text-decoration:underline;transition:color .15s}.contact-inline-link:hover{color:var(--blue-accent)}.project-icon-btn{border:1px solid var(--border-color);width:32px;height:32px;color:var(--text-secondary);background-color:#0000;justify-content:center;align-items:center;text-decoration:none;transition:all .2s;display:inline-flex}.project-icon-btn:hover{border-color:var(--accent-color);color:var(--accent-color);background-color:var(--bg-secondary);text-decoration:none}.project-deepdive-tag{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:#94a3b8;margin-bottom:.2rem;font-size:.68rem;font-weight:700;display:inline-block}.project-deepdive-btn-wrapper{margin-top:.5rem}@media (width<=768px){.project-deepdive-card{grid-template-columns:1fr;gap:1.25rem;padding:1.75rem 0}}.project-apps-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.5rem;margin-top:1rem;display:grid}.project-app-card{border:1px solid var(--border-color);background-color:var(--bg-color);flex-direction:column;justify-content:space-between;padding:1.5rem;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.project-app-card:hover{border-color:var(--accent-color);text-decoration:none;transform:translateY(-2px)}.project-app-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.project-app-icon{border:1px solid var(--border-color);width:38px;height:38px;font-family:var(--font-serif);color:var(--accent-color);justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:inline-flex}.project-app-arrow{color:#94a3b8;font-size:1.1rem;transition:transform .2s,color .2s}.project-app-card:hover .project-app-arrow{color:var(--accent-color);transform:translate(2px,-2px)}.project-app-title{font-family:var(--font-serif);color:var(--accent-color);margin:0 0 .5rem;font-size:1.15rem;font-weight:700}.project-app-desc{font-family:var(--font-sans);color:var(--text-secondary);margin:0 0 1.25rem;font-size:.85rem;line-height:1.5}.project-app-footer{border-top:1px solid var(--border-color);margin-top:auto;padding-top:.75rem}.project-app-tech{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-size:.7rem;font-weight:600}.contact-grid{grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:1rem;display:grid}.contact-card{text-align:center;border:1px solid var(--border-color);background-color:var(--bg-color);flex-direction:column;align-items:center;padding:2.5rem 1.5rem;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.contact-card:hover{border-color:var(--accent-color);text-decoration:none;transform:translateY(-2px)}.contact-card-icon{color:var(--accent-color);justify-content:center;align-items:center;margin-bottom:1.25rem;display:flex}.contact-card-label{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:#94a3b8;margin-bottom:.5rem;font-size:.75rem;font-weight:700}.contact-card-value{font-family:var(--font-sans);color:var(--accent-color);margin-bottom:.35rem;font-size:.95rem;font-weight:600}.contact-highlight-blue{font-weight:600;color:#1e3a8a!important}.contact-card-sub{font-family:var(--font-sans);color:#94a3b8;font-size:.75rem}@media (width<=768px){.contact-grid{grid-template-columns:1fr;gap:1rem}.contact-card{padding:2rem 1.25rem}}
