:root{--bg:#000;--fg:#f2f4f7;--mute:#7c8592;--line:#1c1f24;--acc:#7fb4ff;--code:#0c0e12;--sel:#7fb4ff40;color-scheme:dark}:root[data-theme=light]{--bg:#fff;--fg:#0a0c10;--mute:#6b7380;--line:#e6e8ec;--acc:#2f7fe0;--code:#f4f5f7;--sel:#2f7fe033;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;font-family:Space Grotesk,system-ui,-apple-system,Segoe UI,sans-serif;transition:background .3s,color .3s;display:flex}::selection{background:var(--sel)}a{color:inherit}a:hover{opacity:.8}input::placeholder{color:#6b7380}button{font:inherit}img{max-width:100%}:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:2px}.wrap{flex-direction:column;flex:1;gap:56px;width:100%;max-width:880px;margin:0 auto;padding:36px 32px 48px;display:flex}.label{color:var(--mute);letter-spacing:.1em;text-transform:uppercase;font-size:12px}.stack{flex-direction:column;display:flex}.stack-14{flex-direction:column;gap:14px;display:flex}.list{border-top:1px solid var(--line);flex-direction:column;display:flex}.nav{flex-direction:column;gap:20px;font-size:14px;display:flex}.nav-row{justify-content:space-between;align-items:center;display:flex}.wordmark{border:1px solid var(--fg);letter-spacing:.06em;border-radius:3px;padding:5px 9px;font-weight:700;text-decoration:none}.nav-links{align-items:center;gap:28px;display:flex}.nav-links a{color:var(--fg);text-decoration:none}.nav-links a:hover{color:var(--acc);opacity:1}.theme-btn{border:1px solid var(--line);color:var(--fg);cursor:pointer;background:0 0;border-radius:4px;padding:6px 10px;font-size:12px}.burger{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin:-8px -10px -8px 0;padding:0 10px;display:none}.burger span{background:var(--fg);height:1.5px;transition:transform .2s,opacity .2s;display:block}.nav[data-open=true] .burger span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav[data-open=true] .burger span:nth-child(2){opacity:0}.nav[data-open=true] .burger span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.menu{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;display:none}.nav[data-open=true] .menu{display:flex}.menu a{border-bottom:1px solid var(--line);padding:14px 0;font-size:17px;text-decoration:none}.menu .theme-btn{white-space:nowrap;align-self:flex-start;margin:14px 0;padding:8px 12px;font-size:13px}.hero{flex-direction:column;gap:22px;max-width:720px;display:flex}.hero img{border-radius:14px;width:64px;height:64px;display:block}.hero h1{letter-spacing:-.01em;text-wrap:pretty;margin:0;font-size:34px;font-weight:500;line-height:1.3}.hero p{color:var(--mute);margin:0;font-size:15px;line-height:1.7}.hero a{color:var(--acc)}.row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:baseline;gap:24px;padding:15px 0;font-size:16px;line-height:1.5;text-decoration:none;display:grid}.row:hover{color:var(--acc);opacity:1}.row time{color:var(--mute);font-size:13px}.row-sm{padding:13px 0;font-size:15px}.grid2{grid-template-columns:1fr 1fr;align-items:start;gap:48px;display:grid}.project-mini{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding:16px 0;font-size:15px;text-decoration:none;display:flex}.project-mini .name{align-items:center;gap:10px;display:flex}.project-mini .desc{color:var(--mute);font-size:14px;line-height:1.5}.live{color:var(--acc);white-space:nowrap;font-size:12px}.subscribe{border:1px solid var(--line);border-radius:4px;margin:0;display:flex;overflow:hidden}.subscribe input{min-width:0;font:inherit;color:var(--fg);background:0 0;border:0;outline:none;flex:1;padding:12px 14px;font-size:14px}.subscribe input:focus-visible{outline:none}.subscribe button{background:var(--acc);color:#000;cursor:pointer;border:0;padding:12px 16px;font-size:13px;font-weight:600}.hint{color:var(--mute);font-size:13px;line-height:1.6}.page-h1{letter-spacing:-.02em;margin:0;font-size:36px;font-weight:600;line-height:1.15}.page-sub{color:var(--mute);margin:0;font-size:16px;line-height:1.6}.project{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:start;gap:32px;padding:28px 0;text-decoration:none;display:grid}.project .col{flex-direction:column;gap:10px;display:flex}.project .name{letter-spacing:-.01em;font-size:22px;font-weight:600}.project .desc{color:var(--mute);max-width:520px;font-size:15px;line-height:1.6}.project .meta{color:var(--mute);font-size:13px}.project .live{padding-top:6px}.post{flex-direction:column;gap:40px;max-width:680px;display:flex}.post-head{flex-direction:column;gap:16px;display:flex}.back{color:var(--mute);font-size:13px;text-decoration:none}.back:hover{color:var(--acc);opacity:1}.post-h1{letter-spacing:-.02em;text-wrap:pretty;margin:0;font-size:40px;font-weight:600;line-height:1.15}.post-meta{color:var(--mute);gap:14px;font-size:13px;display:flex}.post-foot{border-top:1px solid var(--line);flex-direction:column;gap:14px;padding-top:32px;display:flex}.body{flex-direction:column;gap:22px;font-size:17px;line-height:1.7;display:flex}.body>*{margin:0}.body h2{letter-spacing:-.01em;margin-top:16px;font-size:24px;font-weight:600;line-height:1.25}.body h3{letter-spacing:-.01em;margin-top:8px;font-size:19px;font-weight:600;line-height:1.3}.body a{color:var(--acc)}.body blockquote{border-left:2px solid var(--acc);color:var(--mute);padding:4px 0 4px 22px;font-size:19px;line-height:1.5}.body blockquote p{margin:0}.body pre{border:1px solid var(--line);color:var(--fg);border-radius:6px;padding:18px 20px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;line-height:1.6;overflow:auto;background:var(--code)!important}.body pre code{font-family:inherit;font-size:inherit;background:0 0;border:0;padding:0}.body code{background:var(--code);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}.body ul,.body ol{padding-left:22px}.body li{margin:4px 0}.body img{border:1px solid var(--line);border-radius:6px;display:block}.body hr{border:0;border-top:1px solid var(--line)}.body table{border-collapse:collapse;width:100%;font-size:15px}.body th,.body td{border-bottom:1px solid var(--line);text-align:left;padding:8px 10px}.about{grid-template-columns:1fr 240px;align-items:start;gap:56px;display:grid}.about .page-h1{margin-bottom:6px}.portrait{aspect-ratio:1;border:1px solid var(--line);background:repeating-linear-gradient(135deg, var(--line) 0 1px, transparent 1px 12px);color:var(--mute);border-radius:6px;place-items:center;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;display:grid;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%;display:block}.site-foot{border-top:1px solid var(--line)}.site-foot .in{max-width:880px;color:var(--mute);flex-wrap:wrap;justify-content:space-between;gap:16px;margin:0 auto;padding:22px 32px;font-size:13px;display:flex}.site-foot a{text-decoration:none}@media (width<=640px){.wrap{gap:40px;padding:22px 20px 40px}.grid2{grid-template-columns:1fr;gap:32px}.hero h1{font-size:26px}.page-h1,.post-h1{font-size:30px}.row{grid-template-columns:1fr;gap:4px}.nav-links{display:none}.burger{display:flex}.about{grid-template-columns:1fr;gap:28px}.portrait{order:-1;max-width:160px}.site-foot .in{padding:18px 20px}.body{font-size:16px}.project{grid-template-columns:1fr;gap:12px}.project .live{padding-top:0}}
