:root{--bg:#131210;--text:#cfc9bd;--heading:#ece7dc;--accent:#c96f4a;--muted:#857e71;--rule:#29271f;--selection:#c96f4a40;--max:640px}:root[data-theme=light]{--bg:#f7f4ee;--text:#35302a;--heading:#17140f;--accent:#a8431f;--muted:#837a6b;--rule:#e2dccd;--selection:#a8431f26}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:19px}body{background:var(--bg);color:var(--text);padding:7rem 1.5rem 4rem;font-family:Newsreader,Georgia,Times New Roman,serif;font-weight:400;line-height:1.75;transition:background .25s,color .25s}main{max-width:var(--max);margin:0 auto}::selection{background:var(--selection);color:var(--heading)}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--heading);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}.theme-toggle{z-index:10;border:1px solid var(--rule);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .85rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.68rem;transition:color .15s,border-color .15s;position:fixed;top:1.4rem;right:1.6rem}.theme-toggle:hover{color:var(--heading);border-color:var(--muted)}.masthead{margin-bottom:3.5rem}h1{font-optical-sizing:auto;letter-spacing:-.03em;color:var(--heading);font-family:Newsreader,Georgia,serif;font-size:clamp(2.4rem,7vw,3.4rem);font-weight:500;line-height:1.02}.role{color:var(--muted);letter-spacing:-.01em;margin-top:1rem;font-size:1.15rem;font-style:italic}.role em{color:var(--text)}.meta{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);word-break:break-word;margin-top:1.4rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem;line-height:2}.meta .sep{color:var(--rule);-webkit-user-select:none;user-select:none;padding:0 .35rem}.copy-email{font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;transition:color .15s}.copy-email:hover{color:var(--heading);text-underline-offset:4px;text-decoration:underline}section{margin-bottom:3.5rem}h2{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--rule);margin-bottom:1.4rem;padding-top:1.6rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.7rem;font-weight:500}.bio p{margin-bottom:1.1rem;font-size:1.12rem}.bio strong{color:var(--heading);font-weight:500}.interests{list-style:none}.interests li{border-bottom:1px solid var(--rule);padding:.65rem 0}.interests li:last-child{border-bottom:0}.interests strong{color:var(--heading);font-weight:500}.projects{counter-reset:project;list-style:none}.projects li{counter-increment:project;border-bottom:1px solid var(--rule);align-items:baseline;gap:1.2rem;padding:.75rem 0;display:flex}.projects li:last-child{border-bottom:0}.projects li:before{content:counter(project, decimal-leading-zero);color:var(--accent);font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem}.projects strong{color:var(--heading);font-weight:500}.facts{grid-template-columns:6.5rem 1fr;gap:.7rem 1.4rem;display:grid}.facts dt{color:var(--muted);padding-top:.3rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem}.cta p{font-size:1.12rem}.cta em{color:var(--heading)}.post-list{list-style:none}.post-list li{gap:1.2rem;padding:.45rem 0;display:flex}.post-list time{color:var(--muted);min-width:6rem;padding-top:.3rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem}.empty{color:var(--muted);font-size:.95rem;font-style:italic}footer{border-top:1px solid var(--rule);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:5rem;padding-top:1.5rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.68rem}@media (width<=540px){body{padding:5rem 1.25rem 3rem}.theme-toggle{top:1rem;right:1rem}.facts{grid-template-columns:1fr;gap:.15rem 0}.facts dt{margin-top:.9rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}
