/* TinyMCE article typography: keep this block in sync with BLOG_CONTENT_STYLE. */
body{max-width:720px;margin:2rem auto;padding:0 1.5rem 4rem;background:#fcfaf2;color:#3a352c;font-family:"Noto Serif TC","Songti TC",serif;font-size:17px;line-height:1.85;}
h1,h2,h3,h4{color:#1f1c16;font-weight:600;line-height:1.4;margin:1.4em 0 0.6em;}
h1{font-size:1.9em;} h2{font-size:1.5em;} h3{font-size:1.25em;} h4{font-size:1.1em;}
p{margin:0 0 1em;} a{color:#a93226;text-decoration:underline;}
blockquote{margin:1.2em 0;padding:0.7em 1.1em;border-left:3px solid #a93226;background:rgba(169,50,38,0.06);color:#5a5448;}
hr{border:none;border-top:1px solid #d8cfb8;margin:2em 0;}
table{border-collapse:collapse;width:100%;margin:1em 0;} th,td{border:1px solid #c9c1ad;padding:0.5em 0.7em;text-align:left;} th{background:#ebe5d4;}
code{font-family:"JetBrains Mono","SFMono-Regular",monospace;background:#ebe5d4;padding:0.1em 0.35em;border-radius:2px;} pre{font-family:"JetBrains Mono","SFMono-Regular",monospace;background:#ebe5d4;padding:0.8em 1em;overflow-x:auto;}
ul,ol{margin:0 0 1em;padding-left:1.5em;}
.tc-red{color:#c0392b;} .tc-orange{color:#c9791a;} .tc-green{color:#1e8449;} .tc-blue{color:#2160c4;} .tc-purple{color:#7d3c98;} .tc-gray{color:#707070;}
.bg-yellow{background:#fff3b0;padding:0 .2em;} .bg-red{background:#fadbd8;padding:0 .2em;} .bg-green{background:#d5f5e3;padding:0 .2em;} .bg-gray{background:#eaeaea;padding:0 .2em;}
.align-left{text-align:left;} .align-center{text-align:center;} .align-right{text-align:right;} .align-justify{text-align:justify;}

/* Public page chrome uses the existing paper palette from frontend/styles.css. */
html{background:#f0ebde;}
body.blog-list-page,body.blog-post-page{max-width:none;margin:0;padding:0 0 4rem;background:#f0ebde;}
.blog-header{border-bottom:1px solid #c9c1ad;background:#ebe5d4;}
.blog-nav{max-width:960px;margin:0 auto;padding:.85rem 1.5rem;display:flex;gap:1.25rem;align-items:center;font-size:.9rem;}
.blog-nav a{color:#3a352c;text-decoration:none;}.blog-nav a:hover{text-decoration:underline;}.blog-brand{margin-right:auto;color:#1f1c16!important;font-weight:600;}
.blog-list-shell,.blog-post-shell{max-width:960px;margin:0 auto;padding:3rem 1.5rem;}
.blog-page-heading{max-width:720px;margin:0 0 2rem;}.blog-page-heading h1{margin-top:0;}.blog-kicker,.blog-card-type{color:#a93226;font-family:"JetBrains Mono","SFMono-Regular",monospace;font-size:.72em;letter-spacing:.08em;text-transform:uppercase;}
.blog-tabs{display:flex;gap:.65rem;flex-wrap:wrap;margin:0 0 1.5rem;}.blog-tabs a,.blog-pagination a{border:1px solid #c9c1ad;color:#3a352c;padding:.35rem .7rem;text-decoration:none;}.blog-tabs a[aria-current="page"]{background:#a93226;border-color:#a93226;color:#fcfaf2;}
.blog-search{display:flex;gap:.5rem;max-width:420px;margin:0 0 1.25rem;}.blog-search input[type=search]{flex:1;border:1px solid #c9c1ad;background:#fcfaf2;color:#3a352c;padding:.5rem .7rem;font-family:"Noto Serif TC","Songti TC",serif;font-size:.92em;}.blog-search input[type=search]:focus{outline:none;border-color:#a93226;}.blog-search button{border:1px solid #a93226;background:#a93226;color:#fcfaf2;padding:.5rem 1rem;cursor:pointer;font-family:"Noto Serif TC","Songti TC",serif;}.blog-search button:hover{background:#8c2a1f;border-color:#8c2a1f;}
.blog-card-grid{display:flex;flex-direction:column;gap:.75rem;}.blog-card{background:#f7f3e8;border:1px solid #d8cfb8;padding:.85rem 1.25rem;}.blog-card h2{font-size:1.1em;margin:.15rem 0;}.blog-card h2 a{color:#1f1c16;text-decoration:none;}.blog-card h2 a:hover{text-decoration:underline;}.blog-card-excerpt{color:#5a5448;max-width:720px;margin:0 0 .35rem;}.blog-card-meta{color:#8a8170;font-size:.82em;}
.blog-pagination{display:flex;gap:1rem;align-items:center;margin-top:2rem;}.blog-empty{color:#5a5448;}.blog-post-shell{max-width:720px;background:#fcfaf2;min-height:calc(100vh - 57px);}.blog-post-header{border-bottom:1px solid #d8cfb8;margin-bottom:2rem;}.blog-post-header h1{margin-top:.35rem;}.blog-tags{border-top:1px solid #d8cfb8;margin-top:2rem;padding-top:1rem;color:#5a5448;font-size:.85em;}.blog-tags span{margin-right:.75rem;}
@media (max-width:600px){.blog-list-shell,.blog-post-shell{padding:2rem 1rem;}.blog-nav{padding:.75rem 1rem;}}
