:root{--measure:76ch;--page-pad:24px;--section-gap:44px;--font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--font-size:15px;--line-height:1.7;--bg:#282c34;--fg:#ffffff;--color-text:#c5c8c6;--color-note:#b0b4b9;--color-meta:#7f858d;--color-green:#b5bd68;--color-blue:#7aa6da;--color-cyan:#8abeb7;--color-yellow:#e7c547;--color-rule:#3a3f4b;--color-selection:#3e4451}html{-webkit-text-size-adjust:100%}body{margin:0;padding:64px var(--page-pad) 48px;background:var(--bg);color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size);line-height:var(--line-height);font-variant-ligatures:none;-webkit-font-smoothing:antialiased}::selection{background:var(--color-selection)}.page,.footer{max-width:var(--measure);margin:0 auto}a{color:var(--color-blue);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--color-blue) 35%,transparent)}a:hover{color:var(--color-cyan);border-bottom-color:var(--color-cyan);background:var(--color-selection)}code{color:var(--color-yellow);font-size:inherit}.name{margin:0;color:var(--fg);font-size:30px;font-weight:700;line-height:1.2;letter-spacing:-0.01em}.name::after{content:"▌";margin-left:2px;color:var(--color-green);font-weight:400;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.name::after{animation:none}}.tagline{margin:8px 0 0;color:var(--color-meta)}.about{margin:26px 0 0}.about p{margin:0 0 14px}.about p:last-child{margin-bottom:0}.section{margin-top:var(--section-gap)}.section-title{margin:0 0 20px;padding-bottom:8px;border-bottom:1px solid var(--color-rule);color:var(--color-green);font-size:inherit;font-weight:700;letter-spacing:0.04em;text-transform:lowercase}.section-title::before{content:"## ";color:var(--color-meta);font-weight:400}.links{margin:0;padding:0;list-style:none}.links li{margin:0 0 24px}.links li:last-child{margin-bottom:0}.link-title{font-weight:700}.link-note{margin:4px 0 0;color:var(--color-note)}.link-meta{margin:2px 0 0;color:var(--color-meta);font-size:13px}.links.inline{display:flex;flex-wrap:wrap;gap:8px 24px}.links.inline li{margin:0}.links.inline .link-title{font-weight:400}.footer{margin-top:56px;padding-top:16px;border-top:1px solid var(--color-rule);color:var(--color-meta)}.footer p{margin:0 0 4px;font-size:13px}@media (max-width:560px){:root{--font-size:14px}body{padding-top:40px}.name{font-size:24px}}