pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-keyword,.hljs-formula{color:#a626a4}.hljs-section,.hljs-name,.hljs-selector-tag,.hljs-deletion,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:#50a14f}.hljs-attr,.hljs-variable,.hljs-template-variable,.hljs-type,.hljs-selector-class,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-number{color:#986801}.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-title.class_,.hljs-class .hljs-title{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}:root{--bg: #fdf7f0;--bg-soft: #fbeee4;--ink: #2c2118;--ink-2: #5b4b3d;--muted: #9a8878;--accent: #e2725b;--accent-deep: #c9573f;--amber: #f2a65a;--teal: #4f8a8b;--line: #eadfd3;--card: rgba(255, 255, 255, .78);--shadow: 0 18px 40px -22px rgba(90, 60, 40, .35);--shadow-soft: 0 10px 30px -18px rgba(90, 60, 40, .3);--radius: 18px;--serif: "Noto Serif SC", "Songti SC", "SimSun", serif;--sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(1200px 600px at 15% -5%,#fde7d8,#fdf7f000 60%),radial-gradient(1000px 700px at 95% 10%,#dceaf0,#fdf7f000 55%),var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}img{max-width:100%;display:block}.container{width:min(1180px,92vw);margin:0 auto}.nav{position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fdf7f0b8;border-bottom:1px solid rgba(234,223,211,.8)}.nav-inner{display:flex;align-items:center;gap:28px;height:66px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:21px;font-weight:700;letter-spacing:.06em}.brand small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.28em;color:var(--muted);font-weight:400}.nav-links{display:flex;gap:22px;margin-left:auto;align-items:center}.nav-links a{font-size:14.5px;color:var(--ink-2);position:relative;padding:4px 0;transition:color .25s}.nav-links a:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);border-radius:2px;transition:width .28s ease}.nav-links a:hover,.nav-links a.router-link-active{color:var(--accent-deep)}.nav-links a:hover:after,.nav-links a.router-link-active:after{width:100%}.btn{border:none;border-radius:999px;padding:9px 20px;font-size:14px;background:linear-gradient(135deg,var(--accent),var(--amber));color:#fff;box-shadow:0 12px 24px -12px #e2725bbf;transition:transform .22s ease,box-shadow .22s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 18px 30px -12px #e2725bcc}.btn.ghost{background:transparent;color:var(--accent-deep);border:1px solid var(--line);box-shadow:none}.btn.ghost:hover{border-color:var(--accent)}.btn.sm{padding:6px 15px;font-size:13px}.hero{position:relative;overflow:hidden;height:clamp(360px,52vw,560px);background-size:cover;background-position:center}.hero-caption{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:0 6vw}.hero-caption h1{font-family:var(--serif);font-size:clamp(30px,5vw,54px);margin:0 0 20px;color:#fffaf3;letter-spacing:.18em;font-weight:700;text-shadow:0 8px 30px rgba(60,30,20,.45);opacity:0;animation:hero-rise .8s cubic-bezier(.2,.7,.3,1) .1s forwards}.hero-caption p{max-width:780px;margin:0;font-family:var(--serif);color:#fffaf3f2;letter-spacing:.1em;line-height:1.9;font-size:clamp(14px,1.9vw,21px);text-shadow:0 4px 18px rgba(60,30,20,.55)}.hero-caption .hero-quote{white-space:pre-wrap}.hero-caption .ch{display:inline-block;opacity:0;animation:hero-rise .55s cubic-bezier(.2,.7,.3,1) forwards}.hero-caption em{display:block;margin-top:12px;font-style:normal;font-size:.78em;letter-spacing:.18em;color:#fffaf3d9;opacity:0;animation:hero-rise .7s ease forwards}@keyframes hero-rise{0%{opacity:0;transform:translateY(16px);filter:blur(7px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media (prefers-reduced-motion: reduce){.hero-caption h1,.hero-caption .ch,.hero-caption em{animation:none;opacity:1;transform:none;filter:none}}.hero-scroll{position:absolute;left:50%;bottom:22px;transform:translate(-50%);color:#ffffffd9;font-size:11px;letter-spacing:.3em}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:34px;padding:54px 0 80px}.main-col{min-width:0}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:14px 18px;margin-bottom:28px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.search-input{flex:1 1 220px;border:none;background:transparent;outline:none;font-size:15px;color:var(--ink);font-family:var(--sans)}.chip{padding:5px 14px;border-radius:999px;font-size:13px;background:#fff;border:1px solid var(--line);color:var(--ink-2);transition:all .22s ease}.chip:hover{border-color:var(--accent);color:var(--accent-deep)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 10px 20px -12px #e2725bcc}.post-card{display:grid;grid-template-columns:208px minmax(0,1fr);gap:22px;padding:18px;margin-bottom:22px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);transition:transform .3s ease,box-shadow .3s ease}.post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.post-cover{border-radius:13px;overflow:hidden;aspect-ratio:4 / 3;background:var(--bg-soft)}.post-cover img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.post-card:hover .post-cover img{transform:scale(1.07)}.post-title{font-family:var(--serif);font-size:21px;margin:2px 0 8px;line-height:1.5;letter-spacing:.01em}.post-title:hover{color:var(--accent-deep)}.post-summary{color:var(--ink-2);font-size:14.5px;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.post-meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:12.5px;color:var(--muted)}.tag{padding:2px 10px;border-radius:999px;font-size:12px;background:#4f8a8b1a;color:var(--teal)}.tag.warm{background:#e2725b1f;color:var(--accent-deep)}.side-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:22px;box-shadow:var(--shadow-soft)}.side-title{font-family:var(--serif);font-size:16px;margin:0 0 16px;letter-spacing:.08em;display:flex;align-items:center;gap:8px}.side-title:before{content:"";width:4px;height:16px;border-radius:3px;background:linear-gradient(var(--accent),var(--amber))}.profile{text-align:center}.profile img{width:82px;height:82px;border-radius:50%;margin:0 auto 12px;border:3px solid #fff;box-shadow:var(--shadow-soft)}.profile h3{margin:0 0 6px;font-family:var(--serif);font-size:18px}.profile p{margin:0 0 16px;font-size:13px;color:var(--muted)}.stat-row{display:flex;justify-content:space-around;padding-top:14px;border-top:1px dashed var(--line)}.stat-row div{text-align:center}.stat-row b{display:block;font-family:var(--serif);font-size:19px;color:var(--accent-deep)}.stat-row span{font-size:11.5px;color:var(--muted);letter-spacing:.12em}.side-list{list-style:none;margin:0;padding:0}.side-list li{padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.side-list li:last-child{border-bottom:none}.side-list a:hover{color:var(--accent-deep)}.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}.pager{display:flex;justify-content:center;gap:10px;margin-top:36px}.pager button{min-width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink-2);font-size:14px;transition:all .22s}.pager button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-deep)}.pager button.active{background:var(--accent);border-color:var(--accent);color:#fff}.pager button:disabled{opacity:.45;cursor:not-allowed}.article-head{padding:52px 0 26px;text-align:center}.article-head h1{font-family:var(--serif);font-size:clamp(26px,4vw,40px);line-height:1.45;margin:0 0 16px}.article-cover{border-radius:22px;overflow:hidden;margin:26px 0 40px;box-shadow:var(--shadow)}.article-cover img{width:100%;max-height:460px;object-fit:cover}.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:40px;padding-bottom:80px}.markdown{font-size:16.5px;color:var(--ink)}.markdown h1,.markdown h2,.markdown h3{font-family:var(--serif);line-height:1.6;margin:2em 0 .8em;scroll-margin-top:90px}.markdown h1{font-size:27px}.markdown h2{font-size:22px;padding-left:12px;border-left:4px solid var(--accent)}.markdown h3{font-size:18.5px}.markdown p{margin:1.1em 0}.markdown img{border-radius:14px;margin:1.6em 0;box-shadow:var(--shadow-soft)}.markdown blockquote{margin:1.6em 0;padding:12px 20px;border-left:3px solid var(--amber);background:#f2a65a1a;color:var(--ink-2);border-radius:0 12px 12px 0}.markdown code{background:#e2725b1a;color:var(--accent-deep);padding:2px 7px;border-radius:6px;font-size:.88em;font-family:JetBrains Mono,Consolas,monospace}.markdown pre{background:#2c2118!important;padding:18px 20px;border-radius:14px;overflow-x:auto;margin:1.6em 0}.markdown pre code{background:transparent;color:#f5e9dd;padding:0;font-size:13.5px;line-height:1.75}.markdown table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:14.5px}.markdown th,.markdown td{border:1px solid var(--line);padding:9px 13px;text-align:left}.markdown th{background:var(--bg-soft)}.markdown ul,.markdown ol{padding-left:1.5em}.markdown li{margin:.5em 0}.markdown hr{border:none;border-top:1px dashed var(--line);margin:2.4em 0}.toc{position:sticky;top:92px}.toc-list{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}.toc-list li a{display:block;padding:6px 14px;font-size:13px;color:var(--muted);border-left:2px solid transparent;margin-left:-2px;transition:all .22s}.toc-list li.lv3 a{padding-left:28px;font-size:12.5px}.toc-list li a:hover,.toc-list li a.active{color:var(--accent-deep);border-left-color:var(--accent)}.ai-box{margin:30px 0;padding:20px 22px;border-radius:var(--radius);background:linear-gradient(135deg,#e2725b17,#f2a65a1f);border:1px solid rgba(226,114,91,.22)}.ai-box h4{margin:0 0 10px;font-family:var(--serif);font-size:15px;color:var(--accent-deep);display:flex;align-items:center;gap:8px}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{margin-bottom:18px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;letter-spacing:.08em}.field input,.field textarea,.field select{width:100%;padding:12px 15px;border-radius:13px;border:1px solid var(--line);background:#fff;font-family:var(--sans);font-size:15px;color:var(--ink);outline:none;transition:border-color .22s,box-shadow .22s}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px #e2725b1f}.md-textarea{min-height:520px;resize:vertical;font-family:JetBrains Mono,Consolas,monospace;font-size:14px;line-height:1.8}.md-preview{min-height:520px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:13px;overflow-y:auto}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.toolbar button{padding:6px 13px;font-size:12.5px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink-2)}.toolbar button:hover{border-color:var(--accent);color:var(--accent-deep)}.auth-wrap{min-height:calc(100vh - 66px);display:grid;place-items:center;padding:60px 0}.auth-card{width:min(420px,92vw);padding:40px 36px;background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.auth-card h2{font-family:var(--serif);text-align:center;margin:0 0 8px;letter-spacing:.12em}.auth-card .sub{text-align:center;color:var(--muted);font-size:13px;margin-bottom:26px}.tip{font-size:12.5px;color:var(--muted);text-align:center;margin-top:16px}.ai-fab{position:fixed;right:26px;bottom:26px;z-index:90;width:58px;height:58px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--accent),var(--amber));color:#fff;font-size:22px;box-shadow:0 18px 34px -12px #e2725bd9;display:grid;place-items:center;transition:transform .25s}.ai-fab:hover{transform:scale(1.08) rotate(-6deg)}.ai-panel{position:fixed;right:26px;bottom:98px;z-index:90;width:min(380px,92vw);height:min(540px,72vh);background:#fffffff5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.ai-panel header{padding:16px 20px;background:linear-gradient(135deg,#e2725b1f,#f2a65a24);font-family:var(--serif);display:flex;justify-content:space-between;align-items:center}.ai-msgs{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px}.bubble{max-width:82%;padding:11px 15px;border-radius:16px;font-size:14px;line-height:1.75;white-space:pre-wrap;word-break:break-word}.bubble.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px}.bubble.ai{align-self:flex-start;background:var(--bg-soft);color:var(--ink);border-bottom-left-radius:5px}.ai-input{display:flex;gap:9px;padding:13px;border-top:1px solid var(--line)}.ai-input textarea{flex:1;resize:none;height:44px;border:1px solid var(--line);border-radius:13px;padding:10px 13px;font-family:var(--sans);font-size:14px;outline:none}.ai-input textarea:focus{border-color:var(--accent)}.footer{margin-top:40px;padding:46px 0 34px;text-align:center;background:linear-gradient(180deg,#eadfd300,#eadfd38c);color:var(--muted);font-size:13px}.footer b{font-family:var(--serif);color:var(--ink-2);letter-spacing:.16em}.empty{text-align:center;padding:70px 0;color:var(--muted)}.spin{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:sp .8s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}@media (max-width: 980px){.home-grid,.article-grid,.editor-grid{grid-template-columns:1fr}.toc{display:none}}@media (max-width: 640px){.post-card{grid-template-columns:1fr}.nav-inner,.nav-links{gap:14px}.nav-links a.hide-m{display:none}}
