@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-italic.woff2)format("woff2")}:root{--bg-body:#111;--bg-surface:#1a1a1a;--text-primary:#ededed;--text-secondary:#888;--border-color:#333;--accent:#9ece6a;--font-main:"JetBrains Mono", "Menlo", "Monaco", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}section[id],footer[id]{scroll-margin-top:4.5rem}body{background-color:var(--bg-body);color:var(--text-primary);font-family:var(--font-main);-webkit-font-smoothing:antialiased;line-height:1.7}::selection{background-color:var(--accent);color:var(--bg-body)}h1,h2,h3,h4,h5,h6{letter-spacing:-.03em;color:var(--text-primary);margin-bottom:1rem;font-weight:500}a{color:inherit;border-bottom:1px solid var(--border-color);text-decoration:none;transition:border-color .2s,color .2s}a:hover{border-bottom-color:var(--accent);color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.no-underline{border-bottom:none}.container{max-width:800px;margin:0 auto;padding:0 1.5rem}.section-spacer{margin-top:6rem;margin-bottom:6rem}.text-subtle{color:var(--text-secondary)}.grid-cols-2{grid-template-columns:1fr;gap:2rem;display:grid}@media (width>=768px){.grid-cols-2{grid-template-columns:1fr 1fr}}.skip-link{z-index:20;background-color:var(--accent);color:var(--bg-body);border-bottom:none;padding:.4rem .8rem;position:absolute;top:-100%;left:1rem}.skip-link:focus{color:var(--bg-body);top:.75rem}.nav{z-index:10;-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color);background-color:#111111d9;position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;padding-top:.75rem;padding-bottom:.75rem;display:flex}.nav a{border-bottom:none}.nav-brand{color:var(--accent)}.cursor{background-color:var(--accent);vertical-align:text-bottom;width:.55em;height:1.05em;margin-left:.2em;animation:1.1s steps(2,start) infinite blink;display:inline-block}@keyframes blink{to{visibility:hidden}}.reveal{opacity:0;transition:opacity .5s ease-out,transform .5s ease-out;transform:translateY(14px)}.reveal-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transition:none;transform:none}.cursor{animation:none}}.project .project-title{transition:color .2s}.project:hover .project-title{color:var(--accent)}.skill-list{flex-direction:column;gap:1.5rem;display:flex}.badge{color:var(--text-secondary);border:1px solid var(--border-color);letter-spacing:0;border-radius:2px;align-items:center;gap:.3rem;padding:.1rem .4rem;font-size:.7rem;font-weight:400;display:inline-flex}.tag{color:var(--text-secondary);margin-right:1rem;padding:.2rem 0;font-size:.85rem;display:inline-block}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.05em}.font-medium{font-weight:500}.leading-tight{line-height:1.25}.leading-relaxed{line-height:1.7}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.block{display:block}.w-fit{width:fit-content}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.flex-between{justify-content:space-between;align-items:baseline;display:flex}.grid{display:grid}.gap-2{gap:.5rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-y-4{row-gap:1rem}.gap-x-8{column-gap:2rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.mb-0{margin-bottom:0}.mb-32{margin-bottom:8rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-20{margin-top:5rem}.mr-3{margin-right:.75rem}.pt-20{padding-top:5rem}.pb-20{padding-bottom:5rem}.border-t{border-top:1px solid var(--border-color);padding-top:1.5rem}@media (width>=768px){.md\:text-4xl{font-size:2.25rem}.md\:mb-0{margin-bottom:0}}.footer-grid{grid-template-columns:1fr;gap:2rem;display:grid}@media (width>=768px){.footer-grid{grid-template-columns:auto auto;justify-content:space-between;gap:2rem 3rem}}
