@font-face{font-family:Karla;font-style:normal;font-weight:300 600;font-display:optional;src:url(/fonts/karla.woff2) format("woff2")}@font-face{font-family:Karla;font-style:italic;font-weight:400;font-display:optional;src:url(/fonts/karla-italic.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/newsreader.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:italic;font-weight:400 500;font-display:swap;src:url(/fonts/newsreader-italic.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono.woff2) format("woff2")}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--font-serif: "Newsreader", Georgia, serif;--font-sans: "Karla", -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", monospace;--content-width: 640px;--page-padding: 24px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 28px;--space-xl: 48px;--space-2xl: 72px;--space-3xl: 100px}:root,[data-theme=light]{--color-bg: #F7F7F7;--color-text: #1a1a1a;--color-text-secondary: #626262;--color-text-tertiary: #6e6e6e;--color-border: #c8c8c8;--color-link: #1a1a1a;--color-link-hover: #626262;--color-surface: #EFEFEF;--color-selection: #d4d4d4}[data-theme=dark]{--color-bg: #141414;--color-text: #e0e0e0;--color-text-secondary: #aaa;--color-text-tertiary: #999;--color-border: #333;--color-link: #e0e0e0;--color-link-hover: #aaa;--color-surface: #1e1e1e;--color-selection: #333}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #141414;--color-text: #e0e0e0;--color-text-secondary: #aaa;--color-text-tertiary: #999;--color-border: #333;--color-link: #e0e0e0;--color-link-hover: #aaa;--color-surface: #1e1e1e;--color-selection: #333}}::selection{background-color:var(--color-selection);color:var(--color-text)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(min-width:768px){html{font-size:17px}}body{font-family:var(--font-sans);font-weight:400;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);min-height:100vh;transition:background-color .2s ease,color .2s ease}.page{max-width:var(--content-width);margin:0 auto;padding:var(--space-3xl) var(--page-padding) var(--space-xl);min-height:100vh;display:flex;flex-direction:column}.page-content{flex:1}header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-2xl)}header .site-name{font-family:var(--font-sans);font-weight:500;font-size:1rem;color:var(--color-text);text-decoration:none}header .site-name:hover{color:var(--color-text-secondary)}nav ul{list-style:none;display:flex;gap:var(--space-lg);align-items:center}nav a{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-secondary);text-decoration:none;transition:color .15s ease;padding:8px 4px;margin:-8px -4px}nav a:hover{color:var(--color-text)}nav a[aria-current=page]{color:var(--color-text)}.theme-toggle{background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-tertiary);padding:12px;margin:-12px;transition:color .15s ease}.theme-toggle:hover{color:var(--color-text)}.theme-toggle svg{display:block;transform:translateY(2px)}h1{font-family:var(--font-serif);font-weight:400;font-size:1.75rem;line-height:1.25;letter-spacing:-.01em;margin-bottom:var(--space-lg)}h2{font-family:var(--font-mono);font-weight:400;font-size:.72rem;letter-spacing:.04em;text-transform:lowercase;color:var(--color-text-tertiary);margin-top:var(--space-xl);margin-bottom:var(--space-md)}h3{font-family:var(--font-sans);font-weight:500;font-size:.95rem;line-height:1.4;margin-bottom:var(--space-xs)}p{margin-bottom:var(--space-md)}.serif{font-family:var(--font-serif)}.secondary{color:var(--color-text-secondary)}.tertiary{color:var(--color-text-tertiary)}a:focus-visible,button:focus-visible{outline:2px solid var(--color-text);outline-offset:2px;border-radius:2px}a{color:var(--color-link);text-decoration:none;transition:color .15s ease}.content a{text-decoration:underline;text-decoration-color:var(--color-text-tertiary);text-underline-offset:3px;text-decoration-thickness:1px}.content a:hover{text-decoration-color:var(--color-text-secondary);color:var(--color-link-hover)}.intro{margin-bottom:var(--space-xl)}.intro .lead{font-size:1rem;line-height:1.65;color:var(--color-text);max-width:560px}.intro .lead em{font-family:var(--font-serif);font-style:italic}.section{margin-top:var(--space-xl)}.section-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;text-transform:lowercase;color:var(--color-text-tertiary);margin-bottom:var(--space-md)}.items{display:flex;flex-direction:column;gap:var(--space-lg)}.item{display:flex;flex-direction:column;gap:var(--space-xs)}.item-title{font-family:var(--font-sans);font-weight:500;font-size:.95rem}.item-title a{text-decoration:none;color:var(--color-text);transition:color .15s ease}.item-title a:hover{color:var(--color-link-hover)}.item-meta{font-family:var(--font-serif);font-style:italic;font-size:.875rem;color:var(--color-text-secondary)}.item-description{font-size:.875rem;color:var(--color-text-secondary);line-height:1.55}.experience-item{margin-bottom:var(--space-lg)}.experience-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-xs)}.experience-role{font-family:var(--font-sans);font-weight:500;font-size:.95rem}.experience-date{font-family:var(--font-mono);font-size:.72rem;color:var(--color-text-tertiary);white-space:nowrap}.experience-org{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.experience-details{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.experience-details li{font-size:.875rem;line-height:1.55;color:var(--color-text-secondary);padding-left:var(--space-md);position:relative}.experience-details li:before{content:"–";position:absolute;left:0;color:var(--color-text-tertiary)}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg) var(--space-xl)}.skill-category h3{font-size:.875rem;font-weight:500;margin-bottom:var(--space-xs)}.skill-category p{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:0}.empty-state{font-family:var(--font-serif);font-style:italic;color:var(--color-text-tertiary);font-size:.95rem}footer{margin-top:var(--space-3xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:baseline}footer span{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-tertiary)}footer a{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-tertiary);text-decoration:none}footer a:hover{color:var(--color-text-secondary)}.connect{display:flex;gap:var(--space-lg)}.connect a{font-family:var(--font-mono);font-size:.8rem;color:var(--color-text-secondary);text-decoration:none}.connect a:hover{color:var(--color-text)}@media(max-width:600px){.page{padding-top:var(--space-2xl)}header{flex-direction:column;align-items:center;gap:var(--space-md)}nav ul{gap:var(--space-md)}.skills-grid{grid-template-columns:1fr}.experience-header{flex-direction:column;gap:2px}footer{flex-direction:column;gap:var(--space-sm)}}
