*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:#333;background:#f9f9f9;line-height:1.7}.container{max-width:800px;margin:0 auto;padding:0 1.5rem}.site-header{background:#fff;border-bottom:1px solid #e5e5e5;padding:1rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:10}.site-header .container{display:flex;align-items:center;justify-content:space-between}.logo{font-size:1.4rem;font-weight:700;color:#1a1a1a}.logo,nav a{text-decoration:none}nav a{margin-left:1.5rem;color:#555;font-size:.95rem}nav a:hover{color:#0070f3}main.container{padding-top:2rem;padding-bottom:3rem;min-height:calc(100vh - 130px)}.site-footer{border-top:1px solid #e5e5e5;padding:1.5rem 0;text-align:center;color:#888;font-size:.85rem;background:#fff}.post-list{list-style:none}.post-card{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;transition:box-shadow .2s}.post-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)}.post-card h2{font-size:1.3rem;margin-bottom:.5rem}.post-card h2 a{color:#1a1a1a;text-decoration:none}.post-card h2 a:hover{color:#0070f3}.post-meta{font-size:.85rem;color:#888;margin-bottom:.75rem}.post-excerpt{color:#555;font-size:.95rem}.article-header{margin-bottom:2rem}.article-header h1{font-size:2rem;line-height:1.3;margin-bottom:.75rem}.article-body{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:2rem;margin-bottom:2rem}.article-body h2{font-size:1.5rem;margin:1.5rem 0 .75rem}.article-body h3{font-size:1.25rem;margin:1.25rem 0 .5rem}.article-body p,.article-body pre{margin-bottom:1rem}.article-body pre{background:#f4f4f4;padding:1rem;border-radius:4px;overflow-x:auto}.article-body code{font-family:Fira Code,monospace;font-size:.9em}.article-body ol,.article-body ul{padding-left:1.5rem;margin-bottom:1rem}.article-body li{margin-bottom:.25rem}.article-body a{color:#0070f3}.article-body blockquote{border-left:3px solid #0070f3;padding-left:1rem;color:#555;margin:1rem 0}.comments-section{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:1.5rem}.comments-section h3{font-size:1.2rem;margin-bottom:1.25rem}.comment-item{border-top:1px solid #f0f0f0;padding:1rem 0}.comment-item:first-of-type{border-top:none}.comment-author{font-weight:600;font-size:.9rem;margin-bottom:.25rem}.comment-date{font-size:.8rem;color:#aaa;margin-bottom:.5rem}.comment-content{color:#444;white-space:pre-line}.comment-form textarea{width:100%;border:1px solid #ddd;border-radius:4px;padding:.75rem;font-family:inherit;font-size:.95rem;resize:vertical;min-height:80px}.comment-form button{margin-top:.75rem;padding:.5rem 1.25rem;background:#0070f3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem}.comment-form button:hover{background:#005bb5}.login-prompt{color:#555;font-size:.95rem;padding:.75rem 0}.login-prompt a{color:#0070f3}.auth-page{max-width:420px;margin:3rem auto}.auth-page h1{font-size:1.6rem;margin-bottom:1.5rem;text-align:center}.auth-form{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:2rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.9rem;font-weight:500;margin-bottom:.4rem}.form-group input{width:100%;padding:.6rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem;font-family:inherit}.form-group input:focus{outline:none;border-color:#0070f3}.auth-form button[type=submit]{width:100%;padding:.7rem;background:#0070f3;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;margin-top:.5rem}.auth-form button[type=submit]:hover{background:#005bb5}.auth-toggle{text-align:center;margin-top:1rem;font-size:.9rem;color:#555}.auth-toggle button{background:none;border:none;color:#0070f3;cursor:pointer;font-size:.9rem}.error-msg{color:#e00}.error-msg,.success-msg{font-size:.9rem;margin-bottom:1rem}.success-msg{color:#080}