:root{--ratio:1.125;--space:8px;--color-bg:#fff;--color-bg-muted:#f4f4f4;--color-ink:#111;--color-ink-muted:#454747;--color-line:#111;--color-line-soft:#d4d4d4;--color-inverse:#fff;--font-sans:"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs:calc(1rem / var(--ratio) / var(--ratio));--text-sm:calc(1rem / var(--ratio));--text-md:1rem;--text-lg:calc(1rem * var(--ratio));--text-xl:calc(var(--text-lg) * var(--ratio));--text-2xl:calc(var(--text-xl) * var(--ratio));--text-3xl:calc(var(--text-2xl) * var(--ratio));--text-4xl:calc(var(--text-3xl) * var(--ratio));--text-5xl:calc(var(--text-4xl) * var(--ratio));--text-6xl:calc(var(--text-5xl) * var(--ratio));--text-7xl:calc(var(--text-6xl) * var(--ratio));--leading-tight:1.15;--leading-snug:1.3;--leading-body:1.6;--space-1:var(--space);--space-2:calc(var(--space) * 2);--space-3:calc(var(--space) * 3);--space-4:calc(var(--space) * 4);--space-5:calc(var(--space) * 5);--space-6:calc(var(--space) * 6);--space-7:calc(var(--space) * 7);--space-8:calc(var(--space) * 8);--space-10:calc(var(--space) * 10);--space-12:calc(var(--space) * 12);--page-pad:var(--space-2);--content-max:72rem;--header-height:calc(var(--space) * 8);--radius:0;--line:1px;--transition:.2s ease;--z-header:50}@media (width>=768px){:root{--page-pad:var(--space-4)}}@media (width>=1200px){:root{--page-pad:var(--space-6);--text-7xl:calc(var(--text-6xl) * var(--ratio) * var(--ratio))}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-body);margin:0;padding:0;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}h1,h2,h3,h4,p{margin:0}ul{margin:0;padding:0;list-style:none}.skip-link{left:var(--space-2);top:calc(var(--space-2) * -10);z-index:calc(var(--z-header) + 1);padding:var(--space-1) var(--space-2);background:var(--color-ink);color:var(--color-inverse);position:absolute}.skip-link:focus{top:var(--space-2)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.material-symbols-outlined{font-family:Material Symbols Outlined;font-style:normal;font-weight:400;font-size:var(--text-lg);letter-spacing:normal;text-transform:none;white-space:nowrap;font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;direction:ltr;line-height:1;display:inline-block}.contact-email+.btn-row{margin-top:var(--space-2);margin-bottom:var(--space-3)}.btn-row+.btn-row{margin-top:var(--space-2)}.page{min-width:0}.container{width:100%;max-width:var(--content-max);padding-inline:var(--page-pad);margin-inline:auto}.section{padding-block:var(--space-8);border-bottom:var(--line) solid var(--color-line-soft)}.section-header{justify-content:space-between;align-items:flex-end;gap:var(--space-2);margin-bottom:var(--space-6);padding-bottom:var(--space-3);border-bottom:var(--line) solid var(--color-line);flex-wrap:wrap;display:flex}.eyebrow{margin-bottom:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);display:block}.section-title{font-size:var(--text-3xl);line-height:var(--leading-tight);letter-spacing:-.03em;text-transform:uppercase}.section-aside{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-muted);max-width:24rem}.btn{justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--space-6);padding:var(--space-1) var(--space-3);border:var(--line) solid var(--color-ink);font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background-color var(--transition), color var(--transition), border-color var(--transition), opacity var(--transition);font-weight:600;display:inline-flex}.btn .material-symbols-outlined{font-size:var(--text-lg);line-height:1}.btn-primary{background:var(--color-ink);color:var(--color-inverse)}.btn-primary:hover,.btn-primary:focus-visible{background:var(--color-inverse);color:var(--color-ink)}.btn-secondary{color:var(--color-ink);background:0 0}.btn-secondary:hover,.btn-secondary:focus-visible{background:var(--color-ink);color:var(--color-inverse)}.btn:disabled,.btn[aria-disabled=true]{opacity:.4;pointer-events:none}.btn-row{gap:var(--space-1);flex-wrap:wrap;width:100%;display:flex}.btn-row .btn{flex:auto;min-width:0}.site-header{z-index:var(--z-header);height:var(--header-height);background:var(--color-bg);border-bottom:var(--line) solid var(--color-line);position:sticky;top:0}.header-inner{height:var(--header-height);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.logo{font-size:var(--text-lg);letter-spacing:-.03em;text-transform:uppercase;font-weight:700}.nav{align-items:center;gap:var(--space-3);display:none}.nav-link{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);transition:color var(--transition);font-weight:600}.nav-link:hover,.nav-link:focus-visible{color:var(--color-ink)}.nav-index{font-family:var(--font-mono);margin-right:var(--space-1)}.menu-toggle{width:var(--space-5);height:var(--space-5);border:var(--line) solid var(--color-ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.mobile-nav{gap:var(--space-2);padding:var(--space-3) var(--page-pad) var(--space-4);border-bottom:var(--line) solid var(--color-line);background:var(--color-bg);flex-direction:column;display:flex}.header-cta{display:none}@media (width>=768px){.nav{display:flex}.menu-toggle,.mobile-nav{display:none}.header-cta{display:inline-flex}}.hero{padding-top:var(--space-8)}.hero-meta{justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-5);padding-bottom:var(--space-2);border-bottom:var(--line) solid var(--color-line-soft);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted);flex-wrap:wrap;display:flex}.hero-title{font-size:var(--text-5xl);line-height:var(--leading-tight);letter-spacing:-.04em;text-transform:uppercase;max-width:18ch;margin-bottom:var(--space-5)}.hero-grid{gap:var(--space-4);grid-template-columns:1fr;display:grid}.hero-copy{font-size:var(--text-lg);color:var(--color-ink-muted);max-width:40rem}.hero-actions{gap:var(--space-1);flex-direction:column;display:flex}.status-grid{margin-top:var(--space-6);border:var(--line) solid var(--color-line);grid-template-columns:1fr;display:grid}.status-cell{gap:var(--space-1);padding:var(--space-3);border-bottom:var(--line) solid var(--color-line);flex-direction:column;display:flex}.status-cell:last-child{border-bottom:0}.status-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted)}.status-value{font-size:var(--text-md);font-weight:600}@media (width>=768px){.hero-title{font-size:var(--text-6xl)}.status-grid{grid-template-columns:1fr 1fr}.status-cell:nth-child(odd){border-right:var(--line) solid var(--color-line)}.status-cell:nth-child(n+3){border-bottom:0}}@media (width>=1200px){.hero-title{font-size:var(--text-7xl)}.hero-grid{grid-template-columns:2fr 1fr;align-items:start}.status-grid{grid-template-columns:1fr 1fr 1fr 1fr}.status-cell{border-bottom:0;border-right:var(--line) solid var(--color-line)}.status-cell:last-child{border-right:0}}.about-copy{font-size:var(--text-lg);max-width:40rem;margin-bottom:var(--space-4)}.projects-grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}.project-card{border:var(--line) solid var(--color-line);background:var(--color-bg);flex-direction:column;min-width:0;display:flex}.project-media{aspect-ratio:16/10;background:var(--color-bg-muted);border-bottom:var(--line) solid var(--color-line);overflow:hidden}.project-media img{object-fit:cover;width:100%;height:100%}.project-body{gap:var(--space-2);padding:var(--space-3);flex-direction:column;flex:1;display:flex}.project-title{font-size:var(--text-xl);line-height:var(--leading-snug);letter-spacing:-.02em;text-transform:uppercase}.project-description{color:var(--color-ink-muted);font-size:var(--text-md)}.tech-list{gap:var(--space-1);flex-wrap:wrap;display:flex}.tech-chip{padding:calc(var(--space) / 2) var(--space-1);border:var(--line) solid var(--color-line);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase}.project-links{gap:var(--space-1);padding-top:var(--space-1);flex-wrap:wrap;margin-top:auto;display:flex}@media (width>=768px){.projects-grid{grid-template-columns:1fr 1fr}}@media (width>=1200px){.projects-grid{grid-template-columns:1fr 1fr 1fr}}.skills-grid{border:var(--line) solid var(--color-line);grid-template-columns:1fr;display:grid}.skill-group{padding:var(--space-3);border-bottom:var(--line) solid var(--color-line)}.skill-group:last-child{border-bottom:0}.skill-group-header{justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:var(--line) solid var(--color-line-soft);display:flex}.skill-group-title{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.skill-item{justify-content:space-between;gap:var(--space-2);padding-block:var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm);display:flex}.skill-note{color:var(--color-ink-muted);font-size:var(--text-xs);text-transform:uppercase}@media (width>=768px){.skills-grid{grid-template-columns:1fr 1fr}.skill-group{border-right:var(--line) solid var(--color-line)}.skill-group:nth-child(2n){border-right:0}.skill-group:nth-last-child(-n+2){border-bottom:0}}@media (width>=1200px){.skills-grid{grid-template-columns:1fr 1fr 1fr}.skill-group:nth-child(2n){border-right:var(--line) solid var(--color-line)}.skill-group:nth-child(3n){border-right:0}.skill-group{border-bottom:0}}.timeline-list{border:var(--line) solid var(--color-line)}.timeline-item{gap:var(--space-2);padding:var(--space-3);border-bottom:var(--line) solid var(--color-line);grid-template-columns:1fr;display:grid}.timeline-item:last-child{border-bottom:0}.timeline-date{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.timeline-title{font-size:var(--text-lg);letter-spacing:-.02em;text-transform:uppercase}.timeline-org{margin-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-muted);text-transform:uppercase;display:block}.timeline-copy{color:var(--color-ink-muted)}@media (width>=768px){.timeline-item{gap:var(--space-3);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1.6fr);align-items:start}}.contact-title{font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:-.04em;text-transform:uppercase;margin-bottom:var(--space-5)}.contact-grid{gap:var(--space-6);grid-template-columns:1fr;display:grid}.contact-copy{color:var(--color-ink-muted);margin-bottom:var(--space-4)}.contact-email{font-size:var(--text-xl);word-break:break-word;font-weight:600}.contact-form{gap:var(--space-3);padding:var(--space-3);border:var(--line) solid var(--color-line);flex-direction:column;display:flex}.field{gap:var(--space-1);flex-direction:column;display:flex}.field label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-muted)}.field input,.field textarea{width:100%;padding:var(--space-2);border:var(--line) solid var(--color-line);background:var(--color-bg);color:var(--color-ink)}.field input:focus,.field textarea:focus{outline:var(--line) solid var(--color-ink);outline-offset:var(--space-1)}.form-status{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase}@media (width>=1200px){.contact-title{font-size:var(--text-6xl)}.contact-grid{grid-template-columns:1fr 1.2fr}}.site-footer{padding-block:var(--space-6)}.footer-inner{gap:var(--space-4);flex-direction:column;display:flex}.footer-name{font-size:var(--text-lg);letter-spacing:-.03em;text-transform:uppercase;font-weight:700}.footer-meta{margin-top:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-muted);display:block}.footer-links{gap:var(--space-3);flex-wrap:wrap;display:flex}.footer-links a{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-muted);transition:color var(--transition)}.footer-links a:hover,.footer-links a:focus-visible{color:var(--color-ink)}@media (width>=768px){.footer-inner{flex-direction:row;justify-content:space-between;align-items:center}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
