:root{--bg: #fdfaf5;--bg-soft: #f6efe4;--surface: #ffffff;--fg: #2b2622;--muted: #8c857a;--faint: #b6ad9f;--accent: #e8633d;--accent-2: #f0a04b;--accent-soft: #fdeee6;--accent-ring: rgba(232, 99, 61, .18);--border: #ece4d8;--border-strong: #ddd2c2;--code-bg: #f4eee4;--shadow-sm: 0 1px 2px rgba(60, 45, 30, .05);--shadow-md: 0 6px 22px rgba(60, 45, 30, .07);--shadow-lg: 0 16px 44px rgba(60, 45, 30, .12);--max-width: 760px;--radius: 14px;--radius-lg: 22px;--font-sans: "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-serif: "Noto Serif SC", "Songti SC", "STSong", Georgia, "Times New Roman", serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #1a1714;--bg-soft: #221d18;--surface: #27211b;--fg: #f3ece3;--muted: #a89e91;--faint: #756d62;--accent: #f0855b;--accent-2: #f0a04b;--accent-soft: #3a2a22;--accent-ring: rgba(240, 133, 91, .22);--border: #3a322b;--border-strong: #4a4036;--code-bg: #322a23;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 22px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 44px rgba(0, 0, 0, .45)}}:root[data-theme=dark]{--bg: #1a1714;--bg-soft: #221d18;--surface: #27211b;--fg: #f3ece3;--muted: #a89e91;--faint: #756d62;--accent: #f0855b;--accent-2: #f0a04b;--accent-soft: #3a2a22;--accent-ring: rgba(240, 133, 91, .22);--border: #3a322b;--border-strong: #4a4036;--code-bg: #322a23;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 22px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 44px rgba(0, 0, 0, .45)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);color:var(--fg);background:var(--bg);line-height:1.78;font-size:17px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-image:radial-gradient(60vw 40vw at 100% -10%,var(--accent-soft) 0%,transparent 55%),radial-gradient(50vw 36vw at -10% 0%,var(--bg-soft) 0%,transparent 50%);background-attachment:fixed}::selection{background:var(--accent-ring);color:var(--fg)}a{color:var(--accent);text-decoration:none;transition:color .15s}a:hover{color:var(--accent-2)}img{max-width:100%;height:auto;border-radius:var(--radius);display:block}h1,h2,h3,h4{font-family:var(--font-serif);line-height:1.3;font-weight:700;letter-spacing:.01em}h1{font-size:2rem;margin:.2em 0 .6em}h2{font-size:1.45rem;margin:1.8em 0 .7em}h3{font-size:1.18rem;margin:1.4em 0 .5em}.container{max-width:var(--max-width);margin:0 auto;padding:0 20px}.grad-text{background:linear-gradient(120deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.site-header{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(150%) blur(12px);-webkit-backdrop-filter:saturate(150%) blur(12px);position:sticky;top:0;z-index:50}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:11px;padding-bottom:11px;flex-wrap:wrap}.brand{font-family:var(--font-serif);font-weight:900;font-size:1.2rem;letter-spacing:.02em;color:var(--fg);display:inline-flex;align-items:center;gap:8px}.brand .logo{font-size:1.3rem;filter:drop-shadow(0 2px 4px var(--accent-ring))}.brand:hover{color:var(--accent);text-decoration:none}.site-header nav{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.site-header nav .nav-links{display:contents}.site-header nav a{color:var(--muted);font-size:.95rem;padding:6px 11px;border-radius:999px;position:relative;transition:color .18s,background .18s}.site-header nav a:hover,.site-header nav a.active{color:var(--accent);background:var(--accent-soft);text-decoration:none}.theme-toggle{border:1px solid var(--border);background:var(--surface);color:var(--muted);width:34px;height:34px;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;transition:transform .2s,color .18s,border-color .18s;flex-shrink:0}.theme-toggle:hover{color:var(--accent);border-color:var(--accent);transform:rotate(-12deg)}.site-footer{margin-top:80px;padding:36px 0 30px;border-top:1px solid var(--border);color:var(--muted);font-size:.9rem;text-align:center;background:color-mix(in srgb,var(--bg-soft) 55%,transparent)}.site-footer .container{display:flex;flex-direction:column;gap:8px}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent)}.footer-links{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}.site-footer .icp{margin-top:4px;font-size:.82rem}.site-footer .icp a{color:var(--muted);border-bottom:1px solid transparent}.site-footer .icp a:hover{color:var(--accent);border-bottom-color:var(--accent)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:1.8em 0 .4em;flex-wrap:wrap}.section-head h2{margin:0}.section-head h2:before{content:"";display:inline-block;width:7px;height:1.1em;background:linear-gradient(var(--accent),var(--accent-2));border-radius:4px;margin-right:10px;vertical-align:-.18em}.more{font-size:.92rem;font-weight:600;color:var(--accent);white-space:nowrap}.more:hover{text-decoration:none;color:var(--accent-2)}.card-list{display:grid;gap:16px;padding:0;margin:20px 0;list-style:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;box-shadow:var(--shadow-sm)}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.card h3{margin:0 0 6px;font-size:1.12rem}.card h3 a{color:var(--fg)}.card h3 a:hover{color:var(--accent);text-decoration:none}.card .meta{color:var(--muted);font-size:.85rem}.card .excerpt{margin:8px 0 0;color:var(--muted);font-size:.96rem}.tag{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 11px;font-size:.78rem;margin:4px 6px 0 0;font-weight:600}.btn{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(120deg,var(--accent),var(--accent-2));color:#fff;border:none;border-radius:999px;padding:10px 20px;font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s,filter .18s}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);filter:brightness(1.05);color:#fff;text-decoration:none}.btn-ghost{background:var(--surface);color:var(--accent);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn-ghost:hover{color:var(--accent);border-color:var(--accent);filter:none}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px 24px;box-shadow:var(--shadow-md);max-width:540px;margin:18px auto}.admin-card h3{margin:0 0 4px}.admin-card .sub{color:var(--muted);font-size:.9rem;margin:0 0 18px}.field{margin-bottom:16px}.field label{display:block;font-size:.92rem;font-weight:600;margin-bottom:6px;color:var(--fg)}.field .hint{font-size:.8rem;color:var(--muted);font-weight:400;margin-left:6px}.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--fg);font-size:.95rem;font-family:inherit;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.admin-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}.admin-msg{font-size:.88rem;margin:12px 0 0;min-height:1.1em}.admin-msg.ok{color:#2e8b57}.admin-msg.err{color:#d2492f}.admin-switch{text-align:center;margin-top:12px}.admin-switch a{color:var(--muted);font-size:.9rem}.admin-switch a:hover{color:var(--accent)}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:18px auto 0;max-width:540px}.admin-tabs button{padding:9px 16px;border:1px solid var(--border);background:var(--surface);color:var(--fg);border-radius:999px;font:inherit;font-size:.9rem;cursor:pointer;transition:all .15s}.admin-tabs button:hover{border-color:var(--accent)}.admin-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.upload-result{margin-top:16px;border-top:1px dashed var(--border);padding-top:16px}.upload-result img{max-width:100%;max-height:220px;border-radius:10px;border:1px solid var(--border);margin-bottom:12px}.admin-list{max-width:540px;margin:14px auto 40px;display:flex;flex-direction:column;gap:10px}.admin-item{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 14px}.admin-item img{width:64px;height:64px;object-fit:cover;border-radius:10px;flex:none}.admin-item-body{flex:1;min-width:0}.admin-item-body strong{display:block;font-size:.98rem}.admin-item-sub{display:block;color:var(--muted);font-size:.82rem;margin-top:2px;word-break:break-all}.gallery-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:12px;margin-top:6px}.gallery-mini .mini{position:relative;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface);display:flex;flex-direction:column}.gallery-mini .mini .thumb{position:relative;width:100%;aspect-ratio:1 / 1;overflow:hidden;background:#eef0f2}.gallery-mini .mini .thumb img{width:100%;height:100%;object-fit:cover;display:block}.gallery-mini .mini-actions{display:flex;flex-wrap:wrap}.gallery-mini .mini-btn{flex:1 1 50%;border:none;background:#7d7d7d14;color:var(--muted);font-size:.72rem;padding:6px 2px;cursor:pointer;border-top:1px solid var(--border)}.gallery-mini .mini-btn:hover{background:var(--accent);color:#fff}.gallery-mini .mini-btn+.mini-btn{border-left:1px solid var(--border)}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 10px;flex-wrap:wrap}.gallery-count,.gallery-pagesize{color:var(--muted);font-size:.85rem}.gallery-pagesize select{margin:0 4px;padding:3px 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:inherit}.pager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px}.pager-btn{min-width:34px;height:34px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.pager-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pager-btn.current{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.pager-btn:disabled{opacity:.45;cursor:not-allowed}.pager-ellipsis{color:var(--muted);padding:0 2px}.img-pick{display:flex;gap:8px;align-items:center}.img-pick input{flex:1}.img-preview{margin-top:8px}.img-preview img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block}.photo-strip{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.photo-chip{position:relative;width:96px;height:96px;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:var(--surface)}.photo-chip img{width:100%;height:100%;object-fit:cover;display:block}.photo-chip-bar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:3px;padding:3px;background:#00000073}.chip-btn{width:24px;height:24px;border:none;border-radius:5px;background:#ffffffe0;color:#222;cursor:pointer;font-size:.82rem;line-height:1;padding:0}.chip-btn:hover:not(:disabled){background:#fff}.chip-btn:disabled{opacity:.4;cursor:not-allowed}.chip-del{background:#c0392b;color:#fff}.chip-del:hover{background:#a93226}.picked-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.picked-item{position:relative;width:76px;height:76px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.picked-item img{width:100%;height:100%;object-fit:cover}.picked-del{position:absolute;top:2px;right:2px;width:20px;height:20px;line-height:18px;text-align:center;border:none;border-radius:50%;background:#0009;color:#fff;cursor:pointer;font-size:.9rem;padding:0}.picked-del:hover{background:#c0392b}.media-modal{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.media-modal[hidden]{display:none}.media-modal-box{background:var(--surface);border-radius:14px;width:min(880px,96vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d}.media-modal-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.media-modal-head h3{margin:0;flex:0 0 auto}.media-modal-head input[type=search]{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.media-modal-close{border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--muted);padding:0 4px}.media-modal-close:hover{color:var(--text)}.media-picker-grid{padding:16px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}.media-item{border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;background:var(--surface);position:relative;transition:border-color .12s,box-shadow .12s}.media-item:hover{border-color:var(--accent)}.media-item.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.media-item .thumb{width:100%;aspect-ratio:1 / 1;overflow:hidden;background:#eef0f2}.media-item .thumb img{width:100%;height:100%;object-fit:cover;display:block}.media-item-bar{display:flex;align-items:center;gap:6px;padding:5px 7px}.media-item input{pointer-events:none;accent-color:var(--accent)}.media-name{font-size:.72rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--border)}.media-picker-info{color:var(--muted);font-size:.85rem}.media-modal-btns{display:flex;gap:8px}.hero{text-align:center;padding:56px 0 16px;position:relative}.hero .avatar{width:84px;height:84px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;font-size:2.6rem;background:linear-gradient(135deg,var(--accent-soft),var(--bg-soft));border:1px solid var(--border);box-shadow:var(--shadow-md)}.hero h1{font-family:var(--font-serif);font-size:2.4rem;font-weight:900;letter-spacing:.02em;margin:0 0 .3em}.hero .tagline{color:var(--muted);font-size:1.12rem;margin:0 auto;max-width:460px}.hero .hero-actions{margin-top:22px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.prose{font-family:var(--font-serif);font-size:1.06rem;line-height:1.92;color:var(--fg)}.prose p{margin:1.1em 0}.prose h2{border-left:4px solid var(--accent);padding-left:12px}.prose h3{color:var(--fg)}.prose img{border-radius:var(--radius);margin:1.6em 0;box-shadow:var(--shadow-sm)}.prose ul,.prose ol{padding-left:1.4em;margin:1em 0}.prose li{margin:.4em 0}.prose a{border-bottom:1px solid var(--accent-ring)}.prose a:hover{border-bottom-color:var(--accent);text-decoration:none}.article-view{max-width:760px;margin:0 auto}.article-view .post-meta{color:var(--muted);font-size:.9rem;margin-bottom:6px}.article-view h1{font-family:var(--font-serif);font-size:2rem;margin:0 0 .6em}.article-view .article-cover{width:100%;border-radius:var(--radius);margin:1.2em 0;box-shadow:var(--shadow-sm)}.nav-rows{display:flex;flex-direction:column;gap:10px;margin-top:6px}.nav-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.nav-row .nav-label{flex:1 1 140px;min-width:120px}.nav-row .nav-type{flex:0 0 auto}.nav-row .nav-href{flex:1 1 220px;min-width:160px}.nav-row .nav-page{flex:1 1 160px;min-width:140px}.nav-row .nav-order{flex:0 0 auto}.nav-row .nav-vis{font-size:.85rem;color:var(--muted)}.nav-row .nav-del{flex:0 0 auto;padding:6px 12px}time{color:var(--muted);font-size:.85rem}blockquote{margin:1.4em 0;padding:.7em 1.1em;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 10px 10px 0;color:var(--fg);font-style:italic}code{background:var(--code-bg);padding:2px 7px;border-radius:6px;font-size:.9em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}pre{background:var(--code-bg);padding:16px 18px;border-radius:12px;overflow-x:auto;border:1px solid var(--border)}pre code{background:none;padding:0}.post-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:.9rem;margin-bottom:6px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin:22px 0}.gallery-grid figure{margin:0}.gallery-grid img{width:100%;aspect-ratio:1 / 1;object-fit:cover;cursor:zoom-in;transition:transform .35s ease,box-shadow .35s ease,filter .35s ease;box-shadow:var(--shadow-sm)}.gallery-grid img:hover{transform:scale(1.03);box-shadow:var(--shadow-lg);filter:saturate(1.08)}.gallery-grid figcaption{font-size:.82rem;color:var(--muted);margin-top:6px;text-align:center}.lightbox{position:fixed;inset:0;background:#140f0adb;backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:100;padding:5vh 5vw;cursor:zoom-out}.lightbox.open{display:flex;animation:fadeIn .25s ease}.lightbox img{max-width:92vw;max-height:90vh;width:auto;box-shadow:var(--shadow-lg);border-radius:10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.about-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:30px 28px;box-shadow:var(--shadow-md);margin:20px 0}.about-card .avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--accent-soft),var(--bg-soft));display:flex;align-items:center;justify-content:center;font-size:2.2rem;margin-bottom:14px;border:1px solid var(--border)}.contact-list{list-style:none;padding:0;margin:10px 0 0}.contact-list li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--border)}.contact-list li:last-child{border-bottom:none}.contact-list .ico{font-size:1.1rem}.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}@media(max-width:560px){body{font-size:16px}.hero{padding:36px 0 8px}.hero h1{font-size:1.9rem}.hero .tagline{font-size:1rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.site-header nav a{padding:6px 8px;font-size:.9rem}.brand{font-size:1.05rem}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}.reveal{opacity:1;transform:none}}
