@import"https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Space+Grotesk:wght@400;500;600&display=swap";:root{--color-bg: #faf9f7;--color-bg-alt: #f3f1ed;--color-text: #2c2c2c;--color-text-light: #666;--color-text-faint: #999;--color-accent: #c45d30;--color-border: #e8e6e1;--font-serif: "Libre Baskerville", Georgia, serif;--font-sans: "Space Grotesk", system-ui, sans-serif;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.75rem;--text-3xl: 2.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--max-width: 720px;--header-height: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.7;color:var(--color-text);background:var(--color-bg)}h1,h2,h3{font-family:var(--font-serif);font-weight:400;line-height:1.3}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}p{color:var(--color-text-light)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-6)}::selection{background:var(--color-accent);color:#fff}.navbar{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:var(--color-bg);border-bottom:1px solid var(--color-border);z-index:100}.navbar-container{display:flex;justify-content:space-between;align-items:center;height:100%}.logo-text{font-family:var(--font-serif);font-size:var(--text-base);color:var(--color-text)}.navbar-nav{display:flex;gap:var(--space-6)}.nav-link{font-size:var(--text-sm);color:var(--color-text-light)}.nav-link:hover{color:var(--color-text);text-decoration:none}.nav-link.active{color:var(--color-text)}.nav-social{display:flex;align-items:center;gap:var(--space-3);margin-left:var(--space-4);padding-left:var(--space-4);border-left:1px solid var(--color-border)}.social-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;color:var(--color-text-light);transition:all .2s ease}.social-icon:hover{color:var(--color-accent);background:#6366f11a;transform:translateY(-1px)}.footer{border-top:1px solid var(--color-border);padding:var(--space-8) 0;margin-top:var(--space-24)}.footer-content{display:flex;justify-content:space-between;align-items:center}.footer-info p{font-size:var(--text-sm);color:var(--color-text-faint)}.footer-links{display:flex;gap:var(--space-4)}.footer-link{color:var(--color-text-faint)}.footer-link:hover{color:var(--color-text)}.home{padding-top:calc(var(--header-height) + var(--space-16))}.intro{margin-bottom:var(--space-24)}.intro-layout{display:grid;grid-template-columns:120px 1fr;gap:var(--space-8);align-items:start}.intro-photo img{width:120px;height:120px;object-fit:cover;border-radius:4px;filter:grayscale(20%)}.intro-text h1{margin-bottom:var(--space-4)}.intro-lead{font-size:var(--text-lg);color:var(--color-text);line-height:1.8;margin-bottom:var(--space-4)}.intro-contact{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6)}.contact-link{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#3b82f61a,#6366f11a);border:1px solid rgba(59,130,246,.2);border-radius:8px;font-size:var(--text-sm);color:var(--color-accent);text-decoration:none;transition:all .2s ease}.contact-link:hover{background:linear-gradient(135deg,#3b82f633,#6366f133);border-color:#3b82f666;transform:translateY(-1px)}.contact-icon{font-size:var(--text-base)}.intro-badges{margin-bottom:var(--space-6)}.badge-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-2)}.badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#6366f11a,#a855f71a);border:1px solid rgba(99,102,241,.2);border-radius:20px;font-size:var(--text-sm);color:var(--color-text-light);transition:all .2s ease}.badge:hover{background:linear-gradient(135deg,#6366f126,#a855f726);border-color:#6366f14d;transform:translateY(-1px)}.badge-icon{font-size:var(--text-base)}.badge-logo{width:16px;height:16px;object-fit:contain}.company-logos{display:flex;align-items:center;gap:var(--space-6);margin-top:var(--space-4);padding:var(--space-4);background:linear-gradient(135deg,#22c55e0d,#3b82f60d);border-radius:12px;border:1px solid rgba(34,197,94,.1)}.company-logo{height:24px;width:auto;opacity:.7;filter:grayscale(30%);transition:all .2s ease}.company-logo:hover{opacity:1;filter:grayscale(0%);transform:scale(1.05)}section{margin-bottom:var(--space-16)}.section-label{font-family:var(--font-sans);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-faint);margin-bottom:var(--space-4)}.currently p{font-size:var(--text-lg);color:var(--color-text)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8)}.two-col p{font-size:var(--text-base)}.two-col strong{color:var(--color-text)}.work-grid{display:flex;flex-direction:column;gap:var(--space-3)}.work-item{display:flex;gap:var(--space-6);align-items:baseline}.work-years{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-faint);width:60px;flex-shrink:0}.work-item strong{color:var(--color-text)}.work-role{color:var(--color-text-light);margin-left:var(--space-2)}.work-role:before{content:"·";margin-right:var(--space-2)}.projects-section{margin-top:var(--space-16);padding-bottom:var(--space-16)}.category{margin-bottom:var(--space-16)}.category h2{font-family:var(--font-sans);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-faint);font-weight:500;margin-bottom:var(--space-8);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.category-note{font-size:var(--text-sm);color:var(--color-text-faint);margin-top:calc(-1 * var(--space-6));margin-bottom:var(--space-6)}.project-detail{margin-bottom:var(--space-12);padding-bottom:var(--space-12);border-bottom:1px solid var(--color-border)}.project-detail:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.project-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.project-logo-banner{margin-bottom:var(--space-4)}.project-logo-banner img{max-width:280px;height:auto;object-fit:contain}.project-header h3{font-family:var(--font-serif);font-size:var(--text-xl);margin-bottom:var(--space-1)}.project-meta{font-size:var(--text-sm);color:var(--color-text-faint)}.project-desc{font-size:var(--text-base);line-height:1.7;margin-bottom:var(--space-6);max-width:600px}.project-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6);margin-bottom:var(--space-6)}.project-features-4{grid-template-columns:repeat(4,1fr)}.project-features-2x2{grid-template-columns:repeat(2,1fr)}.feature img,.feature video{width:100%;border-radius:8px;border:1px solid var(--color-border);margin-bottom:var(--space-3)}.feature p{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.5}.cycling-image{transition:opacity .3s ease-in-out}.project-media{margin-bottom:var(--space-6)}.project-video,.project-media img{max-width:100%;border-radius:8px;border:1px solid var(--color-border)}.project-tech{font-size:var(--text-sm);color:var(--color-accent)}@media(max-width:1000px){.project-features-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.intro-layout{grid-template-columns:1fr;gap:var(--space-6)}.intro-photo img{width:100px;height:100px}.badge-row{flex-direction:column}.badge{font-size:var(--text-xs)}.company-logos{flex-wrap:wrap;gap:var(--space-4)}.two-col,.project-features,.project-features-4,.project-features-2x2{grid-template-columns:1fr}.project-header{flex-direction:column;align-items:flex-start}}.resume-page{padding-top:calc(var(--header-height) + var(--space-16));padding-bottom:var(--space-16)}.resume-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-16)}.download-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--color-border);border-radius:20px;font-size:var(--text-sm);color:var(--color-text);text-decoration:none;transition:all .2s ease}.download-btn:hover{border-color:var(--color-text);background:var(--color-text);color:var(--color-bg);transform:translateY(-1px)}.resume-block{margin-bottom:var(--space-12)}.resume-block h2{font-size:var(--text-sm);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-faint);font-weight:500;margin-bottom:var(--space-6);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.entry{margin-bottom:var(--space-8)}.entry:last-child{margin-bottom:0}.entry header{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-2)}.entry-date{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-faint);min-width:60px}.entry h3{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:400}.entry-role{font-size:var(--text-sm);color:var(--color-text-faint);margin-bottom:var(--space-2);margin-left:calc(60px + var(--space-4))}.entry p:not(.entry-role){margin-left:calc(60px + var(--space-4));font-size:var(--text-base)}.tech-list{font-size:var(--text-base);color:var(--color-text-light)}@media(max-width:600px){.entry header{flex-direction:column;gap:var(--space-1)}.entry-role,.entry p:not(.entry-role){margin-left:0}}.about-page{padding-top:calc(var(--header-height) + var(--space-12));padding-bottom:var(--space-16)}.about-layout{display:grid;grid-template-columns:300px 1fr;gap:var(--space-12);align-items:start}.about-photo img{width:100%;border-radius:12px;box-shadow:0 4px 20px #0000001a}.about-content h1{margin-bottom:var(--space-8);font-size:var(--text-3xl)}.about-section{margin-bottom:var(--space-8)}.about-section h2{font-family:var(--font-sans);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);font-weight:500;margin-bottom:var(--space-3)}.about-section p{font-size:var(--text-base);line-height:1.8;color:var(--color-text)}.about-hobbies{padding:var(--space-6);background:linear-gradient(135deg,#22c55e0d,#3b82f60d);border-radius:12px;border:1px solid rgba(34,197,94,.1)}@media(max-width:768px){.about-layout{grid-template-columns:1fr;gap:var(--space-8)}.about-photo img{max-width:250px}}.app{display:flex;flex-direction:column;min-height:100vh}
