*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#fff;--bg2:#f8f9fa;--text:#2c3e50;--text2:#6c757d;--text3:#adb5bd;--border:#e9ecef;--link:#0d6efd;--header-h:60px}
html{font-size:16px}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.7;min-height:100vh;display:flex;flex-direction:column}
.container{max-width:800px;margin:0 auto;padding:0 1.5rem}
a{color:var(--text);text-decoration:none;transition:color .2s}
a:hover{color:var(--link)}

.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);height:var(--header-h)}
.header .container{display:flex;align-items:center;justify-content:space-between;height:100%}
.site-title{font-size:1.25rem;font-weight:700;letter-spacing:.05em;color:var(--text)}
.nav{display:flex;gap:1.5rem}
.nav a{font-size:.8rem;font-weight:500;letter-spacing:.05em;color:var(--text2);text-transform:uppercase}
.nav a:hover{color:var(--text)}

.main{flex:1;padding:3rem 0 2rem}
.posts{display:flex;flex-direction:column;gap:2.5rem}
.post-card{padding-bottom:2.5rem;border-bottom:1px solid var(--border)}
.post-card:last-child{border-bottom:none;padding-bottom:0}
.post-title{font-size:1.35rem;font-weight:700;margin-bottom:.4rem;line-height:1.4}
.post-date{display:inline-block;font-size:.85rem;color:var(--text3);margin-bottom:1rem;font-family:"SF Mono","Fira Code",monospace}
.post-excerpt{font-size:.95rem;color:var(--text2);line-height:1.8;margin-bottom:1rem}
.read-more{font-size:.85rem;font-weight:500;color:var(--link);display:inline-block}
.read-more:hover{color:#0a58ca}

/* post detail */
.post-body{font-size:.95rem;color:var(--text);line-height:1.9;margin:1.5rem 0}
.post-body p{margin-bottom:1rem}
.post-body ul,.post-body ol{padding-left:1.5rem;margin-bottom:1rem}
.post-body li{margin-bottom:.25rem}
.post-body code{background:var(--bg2);padding:.15em .4em;border-radius:3px;font-size:.9em;font-family:"SF Mono","Fira Code",monospace}
.post-body pre{background:var(--bg2);padding:1rem;border-radius:6px;overflow-x:auto;margin-bottom:1rem}
.post-body pre code{background:none;padding:0}
.post-body blockquote{border-left:3px solid var(--link);padding-left:1rem;margin:1rem 0;color:var(--text2)}
.post-body img{max-width:200px;height:auto;border-radius:6px;border:1px solid var(--border)}
.back-link{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.back-link a{font-size:.9rem;color:var(--link)}

.post-count{text-align:center;margin-top:1rem;padding-top:.5rem;font-size:.85rem;color:var(--text3)}

/* pagination */
.pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.page-btn,.page-num{display:inline-flex;align-items:center;justify-content:center;min-width:2.2rem;height:2.2rem;padding:0 .65rem;font-size:.85rem;font-weight:500;border-radius:4px;transition:background .2s,color .2s}
.page-btn{color:var(--link)}
.page-btn:hover{background:var(--bg2)}
.page-num{color:var(--text2)}
.page-num:hover{background:var(--bg2);color:var(--text)}
.page-num.current{background:var(--link);color:#fff;cursor:default}
.page-dots{color:var(--text3);font-size:.85rem;user-select:none}

.footer{border-top:1px solid var(--border);padding:2rem 0;background:var(--bg2);text-align:center}
.footer .container{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text2)}
.footer a{color:var(--text3)}
.footer a:hover{color:var(--link)}

@media(max-width:768px){
  .main{padding:2rem 0 1.5rem}
  .post-title{font-size:1.2rem}
  .posts{gap:2rem}
  .post-card{padding-bottom:2rem}
}
@media(max-width:480px){
  .container{padding:0 1rem}
  .site-title{font-size:1.1rem}
  .post-title{font-size:1.1rem}
  .post-excerpt{font-size:.9rem}
}
