*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fafafa;--text: #1a1a1a;--text-muted: #666;--accent: #1a1a1a;--border: #e0e0e0}[data-theme=dark]{--bg: #0a0a0a;--text: #e5e5e5;--text-muted: #888;--accent: #e5e5e5;--border: #2a2a2a}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@view-transition{navigation:auto}@keyframes pop-in{0%{opacity:0;transform:scale(.96) translateZ(0)}to{opacity:1;transform:scale(1) translateZ(0)}}@keyframes pop-out{0%{opacity:1;transform:scale(1) translateZ(0)}to{opacity:0;transform:scale(1.04) translateZ(0)}}::view-transition-old(root){animation:.2s cubic-bezier(.4,0,.2,1) both pop-out;mix-blend-mode:normal}::view-transition-new(root){animation:.3s cubic-bezier(.4,0,.2,1) both pop-in;mix-blend-mode:normal}::view-transition-group(root){animation-timing-function:cubic-bezier(.4,0,.2,1)}@media(prefers-reduced-motion:reduce){@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation:none}}html{font-family:JetBrains Mono,monospace;font-size:16px;line-height:1.6;color:var(--text);background-color:var(--bg);transition:background-color .2s ease-out,color .2s ease-out;margin:0;padding:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}h1{font-size:28px;font-weight:400;line-height:1.2;margin-bottom:.75rem;letter-spacing:-.02em}h2{font-size:18px;font-weight:400;line-height:1.4;margin-bottom:1rem}h3{font-size:16px;font-weight:400;line-height:1.4;margin-bottom:.5rem;opacity:.95}p{margin-bottom:1rem}small{font-size:14px;letter-spacing:.02em}body{max-width:600px;margin:0 auto;padding:0 1.5rem;min-height:100vh}.home{height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:opacity .2s ease-out}a:hover{opacity:.7}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:0;background:var(--accent);color:var(--bg);padding:.5rem 1rem;text-decoration:none;z-index:100}.skip-link:focus{top:0}section{margin-bottom:1.5rem}.intro{margin-bottom:.5rem}.intro p:first-of-type{color:var(--text-muted);font-size:15px;margin-bottom:1.5rem}.nav-links{margin:1rem 0 2rem;display:flex;justify-content:center}.nav-links a{display:inline-block;padding:1rem 2.5rem;border:2px solid var(--accent);text-decoration:none;font-size:18px;letter-spacing:.05em;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative}@media(prefers-reduced-motion:no-preference){@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 var(--accent)}50%{transform:scale(1.02);box-shadow:0 0 0 3px transparent}}.nav-links a{animation:pulse 4s ease-in-out infinite}.nav-links a:hover{animation:none}}.nav-links a:hover{background-color:var(--accent);color:var(--bg);transform:scale(1.05);opacity:1}.nav-links a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;animation:none}.contact-links{margin-top:1rem;display:flex;gap:1.5rem;font-size:14px;color:var(--text-muted)}.contact-links a{color:var(--text-muted)}.back-link{position:fixed;top:1.5rem;left:1.5rem;font-size:14px;line-height:1;color:var(--text-muted);text-decoration:none;transition:opacity .2s ease-out;padding:.5rem;margin:-.5rem}.back-link:hover{opacity:.7}.back-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#main:has(.back-link){padding:4rem 0 2rem;min-height:100vh;overflow-y:auto}body:has(.back-link){padding:0 1.5rem}.theme-toggle{position:fixed;top:1.5rem;right:1.5rem;background:none;border:none;font-family:inherit;font-size:14px;line-height:1;color:var(--text-muted);cursor:pointer;padding:.5rem;margin:-.5rem;transition:opacity .2s ease-out}.theme-toggle:hover{opacity:.7}.theme-toggle:hover svg path{fill:currentColor}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#tagline{margin-top:1.5rem}.projects-list{display:flex;flex-direction:column;gap:2rem;margin-bottom:4rem}.project-card{display:block;padding:1.5rem;border:1px solid var(--border);text-decoration:none;transition:background-color .25s ease-out,border-color .25s ease-out}.project-card:hover{background-color:var(--border);border-color:var(--text-muted)}.project-card h3{margin-bottom:.75rem;display:flex;align-items:baseline;gap:.5rem;opacity:1;font-size:clamp(15px,4vw,17px);letter-spacing:-.01em}.external-icon{font-size:14px;opacity:.6}.project-card p{margin-bottom:1rem;color:var(--text);opacity:.85;line-height:1.5;font-size:clamp(14px,3.5vw,16px)}.tags{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.tag{font-size:12px;color:var(--text-muted);letter-spacing:.02em}.tag-separator{font-size:12px;color:var(--text-muted);opacity:.4;margin:0 .25rem}.earlier-work{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border)}.earlier-work h2{font-size:14px;color:var(--text-muted);margin-bottom:1rem}.earlier-work h2:after{content:" ↓";font-size:12px;opacity:.5;margin-left:.25rem}.earlier-work-list{display:flex;flex-direction:column;gap:.35rem}.earlier-work-list a{color:var(--text-muted);font-size:14px;display:inline-flex;align-items:baseline;gap:.25rem}@media(max-width:640px){html{font-size:15px}body{padding:0 1rem}.home{height:100vh;padding:0;overflow:hidden}.theme-toggle{top:1rem;right:1rem}.back-link{top:1rem;left:1rem}#main:has(.back-link){padding:3rem 0 1rem;min-height:100vh;overflow-y:auto}body:has(.back-link){padding:0 1rem}h1{font-size:22px;line-height:1.1;margin-bottom:.5rem}h2{font-size:16px}p{margin-bottom:.75rem;line-height:1.5}.intro p:first-of-type{font-size:14px;margin-bottom:1rem}section{margin-bottom:1rem}.nav-links{margin:1.25rem 0}.nav-links a{padding:.85rem 2rem;font-size:16px}.contact-links{margin-top:.75rem;font-size:13px}.project-card h3{font-size:15px;margin-bottom:.5rem}.project-card{padding:1rem}.project-card p{margin-bottom:.75rem;line-height:1.4}.tags{gap:.35rem}.tag{font-size:11px}.tag-separator{font-size:11px;margin:0 .15rem}.projects-list{gap:1.25rem;margin-bottom:5rem}.earlier-work{margin-top:3rem;margin-bottom:2rem}.earlier-work h2{cursor:pointer}.earlier-work-list a{display:block;padding:.75rem 0}}
