@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-bg: #ffffff;--color-surface: #f5f5f5;--color-border: #e2e2e2;--color-text: #17181a;--color-text-muted: #6b6f76;--color-text-inverse: #ffffff;--color-ink: #0a0a0a;--color-accent: #0a0a0a;--color-accent-contrast: #ffffff;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--text-2xl: 2.5rem;--text-3xl: 3.75rem;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 24px;--space-5: 40px;--space-6: 64px;--space-7: 96px;--content-max-width: 1080px;--radius: 6px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.1;margin:0 0 var(--space-3);color:var(--color-ink)}p{max-width:68ch;margin:0 0 var(--space-3)}a{color:inherit}img{max-width:100%;display:block}ul,ol{padding-left:1.2em}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-ink);outline-offset:3px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-ink);color:var(--color-text-inverse);padding:var(--space-2) var(--space-3);border:none;font:inherit;cursor:pointer;z-index:100}.skip-link:focus{left:var(--space-3);top:var(--space-3)}.container{max-width:var(--content-max-width);margin-inline:auto;padding-inline:var(--space-4)}.section{padding-block:var(--space-7)}@media (max-width: 640px){.section{padding-block:var(--space-6)}}.eyebrow{display:block;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-4)}.tag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:2px var(--space-2);margin:0 var(--space-1) var(--space-1) 0}.btn{display:inline-block;font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);text-decoration:none;border-radius:var(--radius);padding:var(--space-2) var(--space-4);border:1px solid var(--color-ink);cursor:pointer}.btn-primary{background:var(--color-accent);color:var(--color-accent-contrast)}.btn-secondary{background:transparent;color:var(--color-ink)}.fade-in{animation:fade-in .4s ease-out both}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.fade-in{animation:none}*{transition:none!important}}.nav{position:sticky;top:0;z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.nav__inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);padding-block:var(--space-3)}.nav__brand{font-family:var(--font-mono);font-weight:500;text-decoration:none;color:var(--color-ink)}.nav__links{display:flex;flex-wrap:wrap;gap:var(--space-1);list-style:none;margin:0;padding:0}.nav__link{font-family:var(--font-mono);font-size:var(--text-xs);background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius)}.nav__link:hover{color:var(--color-ink);background:var(--color-surface)}.hero__name{font-size:clamp(2rem,6vw,var(--text-3xl))}.hero__role{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:500;color:var(--color-ink)}.hero__tagline{color:var(--color-text-muted);font-size:var(--text-lg)}.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.hero__resume-link{font-family:var(--font-mono);font-size:var(--text-sm);text-decoration:underline}.skills__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-5)}.skills__group h3{font-size:var(--text-base)}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.project-card__demonstrates{font-size:var(--text-sm);color:var(--color-text-muted)}.project-card__links{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin-top:var(--space-3)}.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--color-border)}.timeline__item{display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) 0 var(--space-3) var(--space-4)}.timeline__date{flex-shrink:0;align-self:flex-start}.timeline__title{margin:0;font-weight:600}.timeline__status{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.timeline__status--completed:before{content:"✓ "}.timeline__status--in-progress:before{content:"… "}.timeline__status--planned:before{content:"– "}.timeline__note{margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.contact__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}.footer{background:var(--color-ink);color:var(--color-text-inverse);margin-top:var(--space-7)}.footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-3);padding-block:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs)}.footer__links{display:flex;gap:var(--space-3)}.footer a{text-decoration:underline}.link-placeholder{color:var(--color-text-muted);text-decoration:underline dotted;cursor:not-allowed}.project-page__back{display:inline-block;margin-bottom:var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm)}.project-page__summary{font-size:var(--text-lg);color:var(--color-text-muted)}.project-page__demonstrates{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.project-page__links{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0 var(--space-6)}.project-page__pager{display:flex;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--text-sm)}.writeups__list{list-style:none;margin:0;padding:0}.writeups__list li{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}
