:root{--bg:#fafafa;--text:#1a1a1a;--text-secondary:#6b6b6b;--border:#e0e0e0;--link:#1a1a1a;--link-hover:#555;--code-bg:#f0f0f0;--toggle-bg:transparent;--toggle-border:#ccc}[data-theme=dark]{--bg:#182d5c;--text:#fff;--text-secondary:#888;--border:#2a2a2a;--link:#d4d4d4;--link-hover:#aaa;--code-bg:#1e1e1e;--toggle-bg:transparent;--toggle-border:#555}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,fira sans,droid sans,helvetica neue,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.7;transition:background-color .2s ease,color .2s ease}.container{max-width:640px;margin:0 auto;padding:0 24px}header{padding:60px 0 40px;display:flex;justify-content:space-between;align-items:baseline}header h1{font-size:1.5rem;font-weight:600;letter-spacing:-.02em}header h1 a{text-decoration:none;color:var(--text)}nav{display:flex;align-items:center;gap:20px}nav a{text-decoration:none;color:var(--text-secondary);font-size:.875rem;transition:color .15s ease}nav a:hover{color:var(--text)}.theme-toggle{background:var(--toggle-bg);border:1px solid var(--toggle-border);border-radius:50%;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s ease;color:var(--text-secondary);font-size:1rem;line-height:1;padding:0}.theme-toggle:hover{border-color:var(--text);color:var(--text)}.site-description{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin-bottom:32px}.post-list{list-style:none;padding:0}.post-list li{}.post-list a{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;text-decoration:none;color:var(--link);transition:color .15s ease;gap:16px}.post-list a:hover{color:var(--link-hover)}.post-title{font-size:.95rem;font-weight:400}.post-date{font-size:.8rem;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.post-header{margin-bottom:40px;padding-bottom:20px;border-bottom:1px solid var(--border)}.post-header h1{font-size:1.75rem;font-weight:600;letter-spacing:-.02em;line-height:1.3;margin-bottom:8px}.post-header time{font-size:.85rem;color:var(--text-secondary)}.post-content{font-size:1rem;line-height:1.8}.post-content h1,.post-content h2,.post-content h3,.post-content h4{margin-top:2em;margin-bottom:.75em;font-weight:600;letter-spacing:-.01em;line-height:1.3}.post-content h1{font-size:1.5rem}.post-content h2{font-size:1.3rem}.post-content h3{font-size:1.1rem}.post-content p{margin-bottom:1.5em}.post-content a{color:var(--text);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--text-secondary);transition:text-decoration-color .15s ease}.post-content a:hover{text-decoration-color:var(--text)}.post-content img{max-width:100%;height:auto;border-radius:4px;margin:1.5em 0}.post-content blockquote{border-left:2px solid var(--border);padding-left:1em;margin:1.5em 0;color:var(--text-secondary);font-style:italic}.post-content code{font-family:sfmono-regular,Consolas,liberation mono,Menlo,monospace;font-size:.875em;background:var(--code-bg);padding:2px 6px;border-radius:3px}.post-content pre{background:var(--code-bg);padding:16px;border-radius:6px;overflow-x:auto;margin:1.5em 0}.post-content pre code{background:0 0;padding:0;font-size:.85rem;line-height:1.6}.post-content ul,.post-content ol{margin-bottom:1.5em;padding-left:1.5em}.post-content li{margin-bottom:.5em}.post-content hr{border:none;border-top:1px solid var(--border);margin:2em 0}.page-content{font-size:1rem;line-height:1.8;padding-top:20px}.page-content p{margin-bottom:1em}footer{padding:60px 0 40px;color:var(--text-secondary);font-size:.8rem}.not-found{text-align:center;padding:80px 0}.not-found h1{font-size:4rem;font-weight:600;margin-bottom:8px;letter-spacing:-.03em}.not-found p{color:var(--text-secondary)}.not-found a{color:var(--text);text-decoration:underline;text-underline-offset:2px}@media(max-width:480px){header{padding:40px 0 24px}header h1{font-size:1.3rem}.post-list a{flex-direction:column;gap:2px}.post-header h1{font-size:1.4rem}}