:root{--bg:#fafafa;--text:#1a1a1a;--text-muted:#666;--accent:#0066cc;--accent-light:#e8f0fe;--border:#e0e0e0}[data-theme=dark]{--bg:#1a1a1a;--text:#e0e0e0;--text-muted:#999;--accent:#66b3ff;--accent-light:#1a2a3a;--border:#333}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:18px;-webkit-font-smoothing:antialiased}body{font-family:inter,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;transition:background .2s,color .2s}.container{max-width:720px;margin:0 auto;padding:2rem 1.5rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.site-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:3rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.site-title{font-size:1.5rem;font-weight:700;color:var(--text)}.site-title:hover{text-decoration:none;color:var(--accent)}.tagline{color:var(--text-muted);font-size:.9rem;margin-top:.25rem}.theme-toggle{background:0 0;border:none;cursor:pointer;color:var(--text-muted);padding:.5rem;border-radius:4px}.theme-toggle:hover{color:var(--text);background:var(--border)}.theme-toggle .moon{display:none}[data-theme=dark] .theme-toggle .sun{display:none}[data-theme=dark] .theme-toggle .moon{display:block}.posts{display:flex;flex-direction:column;gap:2rem}.post-item a{display:block;color:inherit;padding:1rem;margin:-1rem;border-radius:8px}.post-item a:hover{background:var(--border);text-decoration:none}.post-item h2{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.post-desc{color:var(--text-muted);font-size:.95rem;margin-bottom:.5rem}.post-cover{max-width:240px;border-radius:8px;margin:.5rem 0}.post-item time{color:var(--text-muted);font-size:.85rem}.post-header{margin-bottom:2rem}.post-header h1{font-size:2.25rem;font-weight:700;line-height:1.3;margin-bottom:.5rem}.post-header time{color:var(--text-muted);font-size:.9rem}.post-content{font-size:1rem;line-height:1.8}.post-content p{margin-bottom:1.5rem}.post-content h2,.post-content h3{margin-top:2.5rem;margin-bottom:1rem;font-weight:600}.post-content h2{font-size:1.35rem}.post-content h3{font-size:1.15rem}.post-content ul,.post-content ol{margin-bottom:1.5rem;padding-left:1.5rem}.post-content li{margin-bottom:.5rem}.post-content blockquote{border-left:3px solid var(--accent);padding-left:1rem;margin:1.5rem 0;color:var(--text-muted);font-style:italic}.post-content code{background:var(--border);padding:.2rem .4rem;border-radius:4px;font-size:.9rem}.post-content pre{background:var(--border);padding:1rem;border-radius:8px;overflow-x:auto;margin-bottom:1.5rem}.post-content pre code{background:0 0;padding:0}.post-content img{max-width:100%;height:auto;border-radius:8px;margin:1.5rem 0}.post-content div[style*="display:flex"] img{margin:0}.post-content figure{margin:2rem 0;text-align:center}.post-content figure img{margin:0 auto;box-shadow:0 2px 12px rgba(0,0,0,8%)}.post-content figcaption{color:var(--text-muted);font-size:.85rem;font-style:italic;margin-top:.75rem;line-height:1.5}.post-content table{width:100%;border-collapse:collapse;margin:1.5rem auto;font-size:.88rem;letter-spacing:.01em;line-height:1.5}.post-content th,.post-content td{padding:.6rem 1rem;border:none;text-align:left}.post-content thead{border-top:2px solid var(--text);border-bottom:1px solid var(--border)}.post-content th{font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.post-content tbody{border-bottom:2px solid var(--text)}.post-content tbody tr{border-bottom:1px solid var(--border)}.post-content tbody tr:last-child{border-bottom:none}.post-content tr:nth-child(even){background:0 0}.post-content video{border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,8%)}.callout{background:var(--accent-light);border-left:4px solid var(--accent);border-radius:0 8px 8px 0;padding:1.25rem 1.5rem;margin:2rem 0}.callout p:last-child{margin-bottom:0}.callout ul,.callout ol{margin-bottom:0}.post-content a{text-decoration:underline}.site-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border)}.social-links{display:flex;gap:1.5rem}.social-links a{color:var(--text-muted);font-size:.9rem}.social-links a:hover{color:var(--text)}@media(max-width:600px){html{font-size:16px}.container{padding:1.5rem 1rem}.post-header h1{font-size:1.75rem}}