:root{--bg: #fbfaf7;--bg-soft: #f4f1ea;--fg: #1f1d1a;--muted: #6b6660;--accent: #b4532a;--accent-soft: #f0e2d8;--border: #e6e0d6;--card: #ffffff;--shadow: 0 1px 2px rgba(31, 29, 26, .04), 0 8px 24px rgba(31, 29, 26, .06);--radius: 14px;--page-max: 1120px;--reading-max: 720px;--bg-veil: .8}*{box-sizing:border-box}img{max-width:100%;height:auto}html{scroll-behavior:smooth}body{margin:0;background-color:var(--bg);color:var(--fg);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:Iowan Old Style,Palatino Linotype,Songti SC,Georgia,serif;line-height:1.25;letter-spacing:-.01em;margin:0 0 .6em}p{margin:0 0 1em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{width:100%;max-width:var(--page-max);margin:0 auto;padding:0 24px}body.has-bg{background-image:linear-gradient(rgba(251,250,247,var(--bg-veil)),rgba(251,250,247,var(--bg-veil))),var(--blog-bg, none);background-size:cover,cover;background-position:center center,center center;background-repeat:no-repeat,no-repeat;background-attachment:fixed,fixed}.site-header{position:sticky;top:0;z-index:20;background:#fbfaf7db;backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:66px;gap:16px}.brand{font-family:Iowan Old Style,Songti SC,Georgia,serif;font-size:20px;font-weight:600;color:var(--fg);letter-spacing:.01em}.brand:hover{text-decoration:none;color:var(--accent)}.site-nav{display:flex;align-items:center;gap:22px}.site-nav a{color:var(--muted);font-size:15px}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--fg);text-decoration:none}.nav-btn{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:6px 16px;font-size:14px;color:var(--fg)!important;transition:background .15s ease,border-color .15s ease,color .15s ease}.nav-btn:hover{background:var(--fg);border-color:var(--fg);color:#fff!important;text-decoration:none}.hero{padding:76px 0 56px;border-bottom:1px solid var(--border)}.hero-eyebrow{color:var(--accent);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}.hero-title{font-size:clamp(38px,5.4vw,58px);margin-bottom:16px}.hero-sub{font-size:18px;color:var(--muted);max-width:620px;margin-bottom:28px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;border-radius:999px;padding:10px 22px;font-size:15px;font-weight:500;border:1px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,color .15s ease;font-family:inherit}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--fg);color:#fff}.btn-primary:hover{color:#fff;background:#000}.btn-ghost{background:transparent;border-color:var(--border);color:var(--fg)}.btn-ghost:hover{color:var(--fg);background:var(--bg-soft)}section{padding:56px 0}.section-head{margin-bottom:28px}.section-head h2{font-size:30px;margin-bottom:6px}.section-head p{color:var(--muted);margin:0}.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}.post-card{display:block;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;color:inherit;transition:box-shadow .2s ease,transform .2s ease}.post-card:hover{text-decoration:none;box-shadow:var(--shadow);transform:translateY(-2px)}.post-card-cover{margin:-22px -22px 16px;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;background:var(--bg-soft);aspect-ratio:16 / 9}.post-card-cover img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.post-card h3{font-size:20px;margin-bottom:8px}.post-card p{color:var(--muted);font-size:15px;margin-bottom:14px}.post-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px}.tag{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.badge-draft{background:#efe9dd;color:#8a7a5c;border-radius:999px;padding:2px 10px;font-size:12px}.about-teaser{background:var(--bg-soft);border-radius:var(--radius);padding:34px}.about-teaser h2{font-size:26px}.about-teaser p{color:#4a4640;margin:0;white-space:pre-wrap}.post-detail{max-width:var(--reading-max);margin:0 auto;padding:56px 0 72px}.post-detail h1{font-size:clamp(30px,4.6vw,42px);margin-bottom:14px}.post-body{margin-top:34px;font-size:17px;overflow-wrap:anywhere}.post-body h2{font-size:25px;margin-top:1.6em}.post-body h3{font-size:20px;margin-top:1.4em}.post-body blockquote{margin:1.2em 0;padding:4px 18px;border-left:3px solid var(--accent);color:var(--muted);background:var(--bg-soft);border-radius:0 8px 8px 0}.post-body code{background:var(--bg-soft);border-radius:5px;padding:2px 6px;font-size:.9em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.post-body pre.code{background:#23211e;color:#f2efe9;padding:16px 18px;border-radius:12px;overflow-x:auto;font-size:14px}.post-body pre.code code{background:none;color:inherit;padding:0}.post-body ul{padding-left:22px}.post-body img{max-width:100%;height:auto;border-radius:12px;display:block;margin:1.4em auto}.post-figure{margin:1.8em 0}.post-figure img{width:100%;margin:0}.loading,.empty{color:var(--muted);font-size:15px}.site-footer{border-top:1px solid var(--border);padding:34px 0;color:var(--muted);font-size:14px}.site-footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-bar{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:8px;background:#23211e;color:#f2efe9;border-radius:999px;padding:8px 12px;box-shadow:0 10px 30px #00000038;font-size:13px;flex-wrap:wrap;max-width:calc(100vw - 40px)}.admin-bar a{color:#f2efe9;text-decoration:none}.admin-bar a:hover{color:#fff;text-decoration:underline}.admin-bar button{font-family:inherit;font-size:13px;border:1px solid rgba(255,255,255,.22);background:transparent;color:#f2efe9;border-radius:999px;padding:5px 12px;cursor:pointer}.admin-bar button:hover{background:#ffffff1f}.admin-bar button[data-act=save]{background:var(--accent);border-color:var(--accent);color:#fff}.admin-status{color:#ffd9c4;font-weight:600;padding-left:6px}.admin-msg{color:#ffd9c4;padding-left:4px}body.is-editing [data-edit]{outline:1px dashed rgba(180,83,42,.7);outline-offset:3px;border-radius:4px;cursor:text;transition:background .15s ease}body.is-editing [data-edit]:hover,body.is-editing [data-edit]:focus{background:#b4532a14;outline:1px solid var(--accent)}body.is-editing [data-edit]:empty:before{content:"点击输入内容";color:#b9b2a8}.admin-body{background:var(--bg-soft);min-height:100vh}.admin-topbar{background:#23211e;color:#f2efe9;padding:14px 0}.admin-topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-topbar strong{font-size:16px}.admin-topbar a,.admin-topbar button{color:#f2efe9;font-size:14px;font-family:inherit}.admin-topbar button{background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:5px 14px;cursor:pointer}.admin-main{padding:28px 0 80px}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin-bottom:20px}.panel h2{font-size:22px;margin-bottom:4px}.panel .hint{color:var(--muted);font-size:14px;margin-bottom:18px}.tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.tab{border:1px solid var(--border);background:var(--card);border-radius:999px;padding:8px 18px;font-size:14px;font-family:inherit;cursor:pointer;color:var(--muted)}.tab.active{background:var(--fg);border-color:var(--fg);color:#fff}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}.field input,.field textarea,.field select{width:100%;font-family:inherit;font-size:15px;color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.field textarea{min-height:120px;resize:vertical;line-height:1.6}.field textarea.tall{min-height:300px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--accent);background:#fff}.field input[type=checkbox]{width:auto;padding:0;accent-color:var(--accent)}.field .check{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--fg);margin:0;cursor:pointer}.field .check span{font-weight:400}.field .range-row{display:flex;align-items:center;gap:12px}.field input[type=range]{padding:0;accent-color:var(--accent)}.field .range-val{min-width:3.5em;text-align:right;font-size:14px;color:var(--fg);font-variant-numeric:tabular-nums}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn-danger{background:transparent;border-color:#d8b4a8;color:#a33a1c}.btn-danger:hover{background:#fbeee9;color:#a33a1c}.article-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--border)}.article-row:last-child{border-bottom:none}.article-row .title{font-weight:600}.article-row .sub{color:var(--muted);font-size:13px}.article-row .actions{display:flex;gap:8px;flex-shrink:0}.mini-btn{font-family:inherit;font-size:13px;border:1px solid var(--border);background:var(--card);border-radius:8px;padding:5px 12px;cursor:pointer;color:var(--fg)}.mini-btn:hover{background:var(--bg-soft)}.mini-btn.danger{color:#a33a1c;border-color:#e2c4ba}.message{border-radius:10px;padding:10px 14px;font-size:14px;margin-bottom:16px}.message.ok{background:#eef6ee;color:#2f6b34}.message.error{background:#fbeee9;color:#a33a1c}.login-wrap{max-width:420px;margin:8vh auto 0}.token-box{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;overflow-x:auto}.token-box code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:var(--fg);white-space:nowrap}.token-box code.muted{color:var(--muted)}.code-snippet{background:#23211e;color:#f2efe9;border-radius:12px;padding:16px 18px;overflow-x:auto;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin:0;white-space:pre}@media(max-width:640px){.wrap{padding:0 18px}.field-row{grid-template-columns:1fr}.site-header .wrap{height:auto;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}.hero{padding:52px 0 40px}body.has-bg{background-attachment:scroll,scroll}}
