:root{--bg-primary:#f8f9fa;--bg-secondary:white;--bg-accent:#f7fafc;--text-primary:#333;--text-secondary:#4a5568;--text-tertiary:#718096;--border-color:#e2e8f0;--accent-primary:#6b7280;--accent-secondary:#4b5563;--hero-bg-start:#475569;--hero-bg-end:#334155;--hero-text:#ffffff;--hero-text-secondary:rgba(255,255,255,0.9);--hero-button-bg:rgba(255,255,255,0.95);--hero-button-text:#334155;--hero-button-secondary-bg:rgba(255,255,255,0.15);--hero-button-secondary-border:rgba(255,255,255,0.3);--rust-primary:#d8784c;--teal-accent:#5495a8;--warm-neutral:#ccbbac;--dark-neutral:#2e2b2a}[data-theme=dark]{--bg-primary:#1f1c1a;--bg-secondary:#2a2520;--bg-accent:#352f29;--text-primary:#f4f1ed;--text-secondary:#d6c9bb;--text-tertiary:#a89488;--border-color:#4a423a;--accent-primary:var(--rust-primary);--accent-secondary:var(--teal-accent);--hero-bg-start:var(--dark-neutral);--hero-bg-end:#1a1612;--hero-text:#f4f1ed;--hero-text-secondary:rgba(244,241,237,0.85);--hero-button-bg:rgba(244,241,237,0.95);--hero-button-text:var(--dark-neutral);--hero-button-secondary-bg:rgba(244,241,237,0.1);--hero-button-secondary-border:rgba(244,241,237,0.25)}html{scroll-behavior:smooth}*{margin:0;padding:0;box-sizing:border-box;transition:background-color .2s ease,color .2s ease,border-color .2s ease}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);scroll-padding-top:4rem}.main-nav{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav-container{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;height:4rem}.nav-logo{font-size:1.5rem;font-weight:600;color:var(--text-primary);text-decoration:none;transition:color .2s ease}.nav-logo:hover{color:var(--accent-primary)}.mobile-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem}.hamburger{display:flex;flex-direction:column;width:24px;height:18px;position:relative}.hamburger span{display:block;height:2px;width:100%;background:var(--text-primary);border-radius:1px;transition:all .3s ease}.hamburger span:nth-child(2){margin:6px 0}.hamburger.open span:first-child{transform:rotate(45deg) translate(6px,6px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.nav-menu{align-items:center}.nav-links,.nav-menu{display:flex;gap:2rem}.nav-links{list-style:none;margin:0}.nav-link{color:var(--text-secondary);text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:6px;transition:all .2s ease}.nav-link.active,.nav-link:hover{color:var(--accent-primary);background:var(--bg-accent)}.nav-theme-toggle{display:flex;align-items:center}.main-content{min-height:calc(100vh - 4rem)}.page-container{max-width:1000px;margin:0 auto;padding:2rem}.page-header{text-align:center;margin-bottom:3rem}.page-header h1{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}.page-subtitle{font-size:1.2rem;color:var(--text-secondary);max-width:600px;margin:0 auto}.page-content{max-width:700px;margin:0 auto}.content-section{margin-bottom:2.5rem}.content-section h2{font-size:1.5rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.content-section p{color:var(--text-secondary);margin-bottom:1rem}.coming-soon{text-align:center;margin-top:3rem;padding:2rem;background:var(--bg-accent);border-radius:8px;border:1px solid var(--border-color)}.coming-soon p{color:var(--text-tertiary);font-style:italic}.home-page{min-height:calc(100vh - 4rem)}.hero-section{background:linear-gradient(135deg,var(--hero-bg-start) 0,var(--hero-bg-end) 100%);color:var(--hero-text);padding:5rem 2rem;text-align:center;position:relative;overflow:hidden}.hero-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.1) 0,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.1) 0,transparent 50%);pointer-events:none}.hero-content{max-width:800px;margin:0 auto;position:relative;z-index:1}.hero-title{font-size:3.5rem;font-weight:800;margin-bottom:1rem;line-height:1.1;letter-spacing:-.02em}.hero-subtitle{font-size:1.4rem;margin-bottom:1.5rem;color:var(--hero-text-secondary);font-weight:500}.hero-description{font-size:1.2rem;margin-bottom:2.5rem;color:var(--hero-text-secondary);max-width:600px;margin-left:auto;margin-right:auto;line-height:1.6}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.cta-button{display:inline-block;padding:1rem 2.5rem;border-radius:8px;text-decoration:none;font-weight:600;font-size:1.1rem;transition:all .3s ease;border:none;cursor:pointer}.cta-button.primary{background:var(--hero-button-bg);color:var(--hero-button-text);box-shadow:0 4px 14px rgba(0,0,0,.1)}.cta-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.15)}.cta-button.secondary{background:var(--hero-button-secondary-bg);color:var(--hero-text);border:1px solid var(--hero-button-secondary-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cta-button.secondary:hover{background:rgba(255,255,255,.25);transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.1)}.quick-links{padding:4rem 2rem;background:var(--bg-primary)}.quick-links-grid{max-width:800px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:2rem;gap:2rem}.quick-link-card{background:var(--bg-secondary);padding:2rem;border-radius:8px;text-decoration:none;border:1px solid var(--border-color);transition:all .2s ease}.quick-link-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px rgba(0,0,0,.1);border-color:var(--accent-primary)}.quick-link-card h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.quick-link-card p{color:var(--text-secondary)}.project-card{border-radius:8px}.project-card h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:1rem}.project-card p{color:var(--text-secondary);margin-bottom:1rem}.tag{background:var(--accent-primary);color:white;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500}.contact-info{display:grid;grid-gap:2rem;gap:2rem;margin-bottom:3rem}.contact-section h2{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:1rem}.contact-section p{color:var(--text-secondary);margin-bottom:1rem}.contact-details p{margin-bottom:.5rem}.contact-section a{color:var(--accent-primary);text-decoration:none}.contact-section a:hover{text-decoration:underline}.contact-section ul{list-style:none;padding-left:0}.contact-section li{color:var(--text-secondary);margin-bottom:.5rem;padding-left:1.5rem;position:relative}.contact-section li:before{content:"▸";position:absolute;left:0;color:var(--accent-primary);font-weight:700}.site-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:1rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{max-width:800px;margin:0 auto;padding:0 2rem;display:flex;justify-content:space-between;align-items:center}.site-title{font-size:1.5rem;font-weight:600;color:var(--text-primary)}.theme-toggle{background:var(--bg-accent);border:1px solid var(--border-color);border-radius:8px;padding:.5rem;cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.theme-toggle:hover{background:var(--accent-primary);color:white;border-color:var(--accent-primary)}.resume{max-width:800px;margin:2rem auto;background:var(--bg-secondary);box-shadow:0 4px 6px rgba(0,0,0,.1);border-radius:8px;overflow:hidden}.resume-content{padding:2rem}.personal-header{background:linear-gradient(135deg,var(--hero-bg-start) 0,var(--hero-bg-end) 100%);color:var(--hero-text);padding:2rem;position:relative;overflow:hidden}.personal-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.1) 0,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.1) 0,transparent 50%);pointer-events:none}.personal-info{margin-bottom:1.5rem;position:relative;z-index:1}.name{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;color:var(--hero-text)}.title{font-size:1.25rem;font-weight:400;margin-bottom:1rem;color:var(--hero-text-secondary)}.contact-info{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;font-size:.9rem}.contact-info,.contact-info span{display:flex;color:var(--hero-text)}.contact-info span{align-items:center}.links{display:flex;gap:1rem}.links a{color:var(--hero-text);text-decoration:none;padding:.5rem 1rem;background:var(--hero-button-secondary-bg);border:1px solid var(--hero-button-secondary-border);border-radius:4px;transition:all .2s ease;font-size:.9rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.links a:hover{background:rgba(255,255,255,.25)}.summary{font-size:1.1rem;line-height:1.7;color:var(--hero-text-secondary);position:relative;z-index:1}.section-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.list-none{list-style:none}.margin-bottom-1rem{margin-bottom:1rem}.highlights-arrow li{position:relative;padding-left:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.highlights-arrow li:before{content:"▸";position:absolute;left:0;color:var(--accent-primary);font-weight:700}.highlights-bullet li{position:relative;padding-left:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.highlights-bullet li:before{content:"•";position:absolute;left:0;color:var(--accent-primary);font-weight:700}.experience-section{margin-bottom:2.5rem}.experience-item{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.experience-item:last-child{border-bottom:none;margin-bottom:0}.job-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.position{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.company{font-size:1rem;color:var(--text-secondary);font-weight:500}.job-meta{text-align:right;font-size:.9rem;color:var(--text-tertiary)}.dates{display:block;font-weight:500}.location{display:block;margin-top:.25rem}.job-summary{margin-bottom:1rem;color:var(--text-secondary);font-style:italic}.highlights{list-style:none;margin-bottom:1rem}.highlights li{position:relative;padding-left:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.highlights li:before{content:"▸";position:absolute;left:0;color:var(--accent-primary);font-weight:700}.technologies{font-size:.9rem;color:var(--text-tertiary)}.projects-section{margin-bottom:2.5rem}.project-item{margin-bottom:2rem;padding:1.5rem;background:var(--bg-accent);border-radius:8px;border-left:4px solid var(--accent-primary)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.project-name{font-size:1.2rem}.project-links a{color:var(--accent-primary);text-decoration:none;font-size:.9rem;font-weight:500;padding:.25rem .75rem;border:1px solid var(--accent-primary);border-radius:4px;transition:all .2s}.project-links a:hover{background:var(--accent-primary);color:white}.project-description,.project-highlights{margin-bottom:1rem}.project-technologies{font-size:.9rem;color:var(--text-tertiary)}.skills-section{margin-bottom:2.5rem}.skills-list{display:grid;grid-gap:1.5rem;gap:1.5rem}.skill-category{padding:1.5rem;background:var(--bg-accent);border-radius:8px}.skill-category-name{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.skill-items{display:flex;flex-wrap:wrap;gap:.5rem}.skill-item{background:var(--accent-primary);color:white;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500}.skill-proficiency{display:block;margin-top:.5rem;font-size:.8rem;color:var(--text-tertiary);font-style:italic}.education-section{margin-bottom:2rem}.education-item{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.education-item:last-child{border-bottom:none;margin-bottom:0}.education-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.degree{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.institution{font-size:1rem;color:var(--text-secondary);font-weight:500}.education-meta{text-align:right;font-size:.9rem;color:var(--text-tertiary)}.education-details{display:flex;flex-wrap:wrap;gap:1rem;font-size:.9rem}.gpa{color:var(--accent-primary);font-weight:600}.honors,.relevant-courses{color:var(--text-tertiary)}.interests-section{margin-bottom:2rem}.interests-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.interest-item{padding:1rem;background:var(--bg-accent);border-radius:8px;border-left:3px solid var(--accent-primary)}.interest-name{font-weight:600;color:var(--text-primary)}.interest-description{color:var(--text-secondary);font-size:.9rem}.projects-container{max-width:1000px;margin:0 auto}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));grid-gap:2rem;gap:2rem;margin-bottom:3rem}.project-card{background:var(--bg-secondary);padding:2rem;border-radius:12px;border:1px solid var(--border-color);transition:all .2s ease;position:relative}.project-card:hover{box-shadow:0 8px 25px rgba(0,0,0,.1);border-color:var(--accent-primary)}.project-card-header{margin-bottom:1rem}.project-name{font-size:1.3rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.project-description{color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem}.project-expand-toggle{background:var(--bg-accent);border:1px solid var(--border-color);color:var(--text-secondary);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease;margin-bottom:1rem}.project-expand-toggle:hover{background:var(--accent-primary);color:white;border-color:var(--accent-primary)}.project-expanded-content{border-top:1px solid var(--border-color);padding-top:1.5rem;margin-top:1rem;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.project-section{margin-bottom:1.5rem}.project-section:last-child{margin-bottom:0}.project-section h4{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.project-long-description{margin-bottom:1.5rem}.project-long-description p{color:var(--text-secondary);line-height:1.6}.project-highlights{list-style:none;margin-bottom:0}.project-highlights li{position:relative;padding-left:1.5rem;margin-bottom:.5rem;color:var(--text-primary);font-size:.9rem}.project-highlights li:before{content:"•";position:absolute;left:0;color:var(--accent-primary);font-weight:700}.project-technologies{display:flex;flex-wrap:wrap;gap:.5rem}.tech-tag{background:var(--accent-primary);color:white;padding:.3rem .8rem;border-radius:16px;font-size:.8rem;font-weight:500}.project-links{display:flex;flex-wrap:wrap;gap:.75rem}.project-link{color:var(--accent-primary);text-decoration:none;font-size:.9rem;font-weight:500;padding:.5rem 1rem;border:1px solid var(--accent-primary);border-radius:6px;transition:all .2s ease}.project-link:hover{background:var(--accent-primary);color:white}.link-github:before{content:"🔗 "}.link-demo:before,.link-website:before{content:"🌐 "}.link-store:before{content:"📱 "}.link-documentation:before{content:"📚 "}.projects-empty{text-align:center;padding:3rem;color:var(--text-tertiary)}.home-section-content{max-width:1000px;margin:0 auto}.home-section-title{font-size:2rem;font-weight:600;color:var(--text-primary);text-align:center;margin-bottom:2rem}.home-section-footer{text-align:center;margin-top:2rem}.view-all-link{color:var(--accent-primary);text-decoration:none;font-weight:600;font-size:1.1rem;transition:color .2s ease}.view-all-link:hover{color:var(--accent-secondary);text-decoration:underline}@media (max-width:768px){.mobile-toggle{display:block}.nav-menu{position:absolute;top:100%;left:0;right:0;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-direction:column;padding:1rem 2rem;transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease}.nav-menu.open{transform:translateY(0);opacity:1;visibility:visible}.nav-links{flex-direction:column;gap:.5rem;width:100%;margin-bottom:1rem}.nav-link{padding:.75rem;border-radius:6px}.hero-title{font-size:2.5rem;line-height:1.1}.hero-subtitle{font-size:1.2rem}.hero-description{font-size:1.1rem}.hero-actions{flex-direction:column;align-items:center}.cta-button{width:200px;text-align:center}.projects-grid,.projects-grid.featured,.quick-links-grid{grid-template-columns:1fr}.project-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}.project-meta{flex-direction:row;align-items:flex-start}.home-section-title{font-size:1.75rem}.resume{margin:1rem;border-radius:0}.personal-header,.resume-content{padding:1.5rem}.name{font-size:2rem}.contact-info{gap:.5rem}.contact-info,.links{flex-direction:column}.education-header,.job-header,.project-header{flex-direction:column;align-items:flex-start}.education-meta,.job-meta{text-align:left}.header-content{padding:0 1rem}.site-title{font-size:1.25rem}}@media print{*{-webkit-print-color-adjust:exact!important;color-adjust:exact!important}body{background:white!important;font-size:11pt;line-height:1.4}.print-button-container{display:none}.main-nav{display:none!important}.site-header{display:none}.resume{box-shadow:none;margin:0;max-width:none;border-radius:0;background:white!important}.resume-content{padding:.5in}.personal-header{background:linear-gradient(135deg,#475569,#334155)!important;padding:1in .5in .5in;page-break-inside:avoid}.personal-header:before{display:none}.name{font-size:24pt!important;font-weight:700;margin-bottom:.1in}.title{font-size:14pt!important;margin-bottom:.2in}.contact-info{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:1rem!important;margin-bottom:.2in;font-size:10pt}.contact-info span{display:inline!important}.links{display:flex!important;flex-direction:column!important;gap:.05in!important;margin-bottom:.2in}.links a{background:none!important;border:none!important;padding:0!important;color:white!important;text-decoration:none!important;font-size:10pt;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;display:block}.links a:after{content:" (" attr(href) ")";font-size:9pt;color:rgba(255,255,255,.8)}}.section{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.section.is-visible{opacity:1;transform:translateY(0)}.animate-fade{transition-duration:.8s}.animate-slide-up{transform:translateY(40px);transition-duration:.6s}.animate-slide-in{transform:translateX(-40px);transition-duration:.6s}.section[data-section-type=hero]{position:relative;z-index:1}.section-container{width:100%;position:relative}.section-container-default{padding:4rem 2rem;max-width:1200px;margin:0 auto}.section-container-hero{padding:0;max-width:none}.section-container-full{padding:4rem 0;max-width:none}.section-header{text-align:center;margin-bottom:3rem}.section-title{font-size:2.5rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem;line-height:1.2}.section-subtitle{font-size:1.2rem;color:var(--text-secondary);max-width:600px;margin:0 auto;line-height:1.6}.section-content{width:100%}@media (max-width:768px){.section-container-default{padding:3rem 1rem}.section-container-full{padding:3rem 0}.section-title{font-size:2rem}.section-subtitle{font-size:1.1rem}.section-header{margin-bottom:2rem}}.youtube-embed-container{position:relative;width:100%;height:0;padding-bottom:56.25%;margin-bottom:1rem;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.1)}.youtube-embed-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.youtube-thumbnail-container{position:relative;width:100%;height:0;padding-bottom:56.25%;margin-bottom:1rem;border-radius:8px;overflow:hidden;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.1);transition:all .2s ease}.youtube-thumbnail-container:hover{box-shadow:0 6px 16px rgba(0,0,0,.15)}.youtube-thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.youtube-play-button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:all .2s ease;opacity:.9}.youtube-thumbnail-container:hover .youtube-play-button{transform:translate(-50%,-50%) scale(1.1);opacity:1}.youtube-play-button svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}[data-theme=dark] .youtube-embed-container,[data-theme=dark] .youtube-thumbnail-container{box-shadow:0 4px 12px rgba(0,0,0,.3)}[data-theme=dark] .youtube-thumbnail-container:hover{box-shadow:0 6px 16px rgba(0,0,0,.4)}.project-media{margin:1.5rem 0}.project-media .youtube-embed-container{margin-bottom:1rem}.project-media .youtube-embed-container:last-child{margin-bottom:0}.project-long-description{margin:1rem 0;color:var(--text-secondary);font-style:italic;border-left:3px solid var(--accent-primary);padding-left:1rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.project-tag{background:var(--bg-accent);color:var(--text-secondary);padding:.25rem .6rem;border-radius:12px;font-size:.8rem;font-weight:500;border:1px solid var(--border-color)}.link-youtube:before{content:"📺 "}