:root{--accent:#39856c;--bg:#dce5e0;--surface:#f9fbf8;--side:#eff4ee;--text:#2d3e36;--muted:#75847a;--line:#e2e9e1;--tint:#e3eee3;--shadow:0 20px 80px #263b2b12;--radius:18px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg);font-size:14px;line-height:1.7}
[data-color-scheme=dark]{--bg:#17231e;--surface:#202d26;--side:#24332b;--text:#e0e8dd;--muted:#a0b0a3;--line:#35453a;--tint:#33483b;--shadow:0 20px 80px #0003}
*{box-sizing:border-box}body{margin:0;padding:48px 28px}a{color:inherit;text-decoration:none;transition:color .2s,background .2s}a:hover{color:var(--accent)}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}button{border:0;background:none}ul{padding:0;list-style:none;margin:0}.icon{width:19px;height:19px;fill:none;stroke:currentColor;flex-shrink:0;vertical-align:middle}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}a,button{touch-action:manipulation}[hidden]{display:none!important}.shell{max-width:1360px;margin:auto;display:grid;grid-template-columns:235px minmax(0,1fr) 260px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:clip;min-height:calc(100vh - 96px)}.left-sidebar,.right-sidebar{background:var(--side);min-width:0}.left-sidebar{border-right:1px solid var(--line)}.right-sidebar{border-left:1px solid var(--line);padding-top:70px}.center-column{min-width:0;display:flex;flex-direction:column}main{flex:1;min-width:0}.brand{padding:32px 28px 28px;display:grid;grid-template-columns:24px 1fr;gap:0 9px;align-items:center}.brand>.icon{width:26px;height:26px;color:var(--accent)}.brand>span{font-size:23px;font-weight:650;letter-spacing:2px;overflow-wrap:anywhere}.brand small{grid-column:2;font-size:9px;letter-spacing:1.7px;color:var(--muted)}.menu-tree{padding:6px 22px 25px}.menu-tree a{display:flex;align-items:center;gap:14px;padding:12px 15px;border-radius:9px;font-size:14px;margin-bottom:5px}.menu-tree a.active,.menu-tree a:hover{color:var(--accent);background:var(--tint)}.menu-tree .menu-tree{padding:0 0 0 18px;font-size:12px}.menu-tree .menu-tree a{padding:8px 10px;font-size:12px}.side-section{padding:26px 25px;border-top:1px solid var(--line)}.side-section h2{font-size:12px;font-weight:500;color:var(--muted);margin-bottom:18px}.side-section h2>span{display:block;font-size:8px;letter-spacing:1.4px;margin-top:3px;opacity:.75}.topic{display:flex;position:relative;overflow:hidden;flex-direction:column;justify-content:center;isolation:isolate;min-height:67px;border-radius:9px;background:linear-gradient(115deg,#497e65,#a5b99a);color:#fff;padding:12px 18px;margin-bottom:12px}.topic:nth-of-type(2){background:linear-gradient(115deg,#736f55,#bcb694)}.topic:nth-of-type(3){background:linear-gradient(115deg,#516c74,#9cb8b8)}.topic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.topic:has(img):before{content:"";position:absolute;inset:0;background:#102c2b66;z-index:-1}.topic span{font-size:13px;font-weight:600}.topic small{font-size:9px;opacity:.8}.topic:hover{color:#fff;filter:brightness(1.08)}.profile .avatar{border-radius:16px;margin-bottom:15px}.profile h2{font-size:16px;color:var(--text);font-weight:600;margin-bottom:6px}.profile p{color:var(--muted);font-size:12px}.location{display:flex;align-items:center;gap:5px;color:var(--muted);margin-top:16px;font-size:11px}.location .icon{width:14px;height:14px}.socials{display:flex;gap:9px;margin-top:18px}.socials:empty{display:none}.socials a{width:32px;height:32px;background:var(--tint);border-radius:9px;display:grid;place-items:center;color:var(--accent)}.sidebar-note{font-size:11px;line-height:2;color:var(--muted);padding:28px}.toolbar{height:70px;padding:0 30px;display:flex;justify-content:space-between;align-items:center;background:var(--surface);border-bottom:1px solid var(--line);gap:12px}.toolbar-start,.toolbar-actions{display:flex;align-items:center;gap:10px}.toolbar-label{font-size:11px;letter-spacing:.5px;color:var(--muted)}.status-dot{width:5px;height:5px;display:inline-block;border-radius:50%;background:var(--accent);margin-left:10px}.icon-button{display:grid;place-items:center;width:36px;height:36px;border-radius:10px}.icon-button:hover{background:var(--tint);color:var(--accent)}.mobile-menu{display:none}.hero{position:relative;min-height:260px;isolation:isolate;color:#fff;display:flex;align-items:flex-end;padding:30px 35px;background:#477e70;overflow:hidden}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#183d35b3,transparent 90%);z-index:-1}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero-copy>span{font-size:9px;letter-spacing:2px;opacity:.8}.hero-copy h1{font-size:25px;line-height:1.6;font-weight:500;margin-top:10px;max-width:420px;letter-spacing:1px}.hero-copy p{font-size:11px;margin-top:8px;opacity:.8}.hero-sign{position:absolute;right:25px;top:22px;display:flex;gap:10px;align-items:center;font-size:10px;letter-spacing:1px}.hero-sign>span{font-size:24px}.announcement{padding:13px 30px;display:flex;align-items:center;gap:10px;color:var(--muted);background:var(--side);border-bottom:1px solid var(--line);font-size:11px}.announcement .icon{width:15px;height:15px;color:var(--accent)}.category-tabs{display:flex;gap:7px;flex-wrap:wrap;padding:24px 30px 20px;border-bottom:1px solid var(--line)}.category-tabs a{font-size:11px;padding:5px 11px;border-radius:5px;color:var(--muted);background:var(--side)}.category-tabs a.active{color:#fff;background:var(--accent)}.category-tabs a:hover{background:var(--tint);color:var(--accent)}.list-heading{display:flex;justify-content:space-between;padding:24px 30px 4px;gap:10px;align-items:center}.list-heading h2{font-size:13px;font-weight:600}.list-heading small{font-size:8px;letter-spacing:1.2px;font-weight:400;color:var(--muted);margin-left:10px}.list-heading>span{font-size:10px;color:var(--muted)}.post-list{padding:0 30px}.post-card{display:flex;align-items:center;gap:22px;padding:27px 0;border-bottom:1px solid var(--line)}.post-cover{width:148px;flex:0 0 148px;height:150px;border-radius:10px;overflow:hidden;background:var(--tint)}.post-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.post-cover:hover img{transform:scale(1.04)}.post-info{flex:1;min-width:0}.post-kicker{font-size:9px;letter-spacing:1px;color:var(--accent);display:flex;gap:6px;margin-bottom:6px;min-height:15px}.pinned{padding:0 5px;background:var(--tint);border-radius:3px}.post-info h2{font-size:17px;font-weight:550;line-height:1.6;overflow-wrap:anywhere}.post-excerpt{font-size:12px;color:var(--muted);margin:9px 0 15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.post-meta{display:flex;gap:12px;align-items:center;font-size:9px;color:var(--muted)}.post-meta>span{display:flex;align-items:center;gap:4px}.post-meta .icon{width:13px;height:13px}.read-more{margin-left:auto;display:grid;place-items:center;width:26px;height:22px;border-radius:5px;background:var(--tint);color:var(--accent)}.quote-card{border-radius:11px;min-height:210px;background:linear-gradient(145deg,#7e9c87,#3f6755);color:#fff;padding:20px;position:relative;overflow:hidden}.quote-card:before{content:"";position:absolute;right:-30px;bottom:-75px;width:180px;height:180px;border:1px solid #ffffff20;border-radius:50%}.calendar{display:grid;grid-template-columns:1fr auto;align-items:center}.calendar strong{font-size:38px;font-weight:300;letter-spacing:2px;line-height:1.2}.calendar>span{grid-row:2;font-size:9px;letter-spacing:1px;opacity:.8}.calendar .icon{grid-column:2;grid-row:1;width:22px;height:22px;opacity:.8}.quote-card p{font-size:13px;line-height:1.9;margin-top:34px;position:relative}.quote-card>small{font-size:8px;letter-spacing:1.7px;opacity:.6;display:block;margin-top:12px}.recent{display:flex;gap:11px;align-items:center;margin-bottom:18px}.recent:last-child{margin-bottom:0}.recent img{width:45px;height:45px;object-fit:cover;border-radius:7px;flex-shrink:0}.recent div{min-width:0}.recent h3{font-size:11px;font-weight:400;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recent time{font-size:9px;color:var(--muted)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stats>a,.stats>div{background:var(--surface);padding:12px;border-radius:8px;display:flex;flex-direction:column}.stats strong{font-size:21px;font-weight:400;line-height:1.4}.stats span{font-size:10px;color:var(--muted)}.tag-cloud{display:flex;flex-wrap:wrap;gap:9px}.tag-cloud a{font-size:10px;border:1px solid var(--line);padding:3px 8px;border-radius:5px;color:var(--muted)}.pagination{padding:30px;display:flex;justify-content:center;align-items:center;gap:24px;font-size:12px}.pagination a{padding:6px 12px;border-radius:6px;background:var(--tint);color:var(--accent)}.pagination span{color:var(--muted);font-size:10px}.footer{text-align:center;padding:35px 25px;font-size:11px;color:var(--muted)}.footer p{font-size:11px;margin-bottom:8px}.footer small{font-size:9px;letter-spacing:.2px}.footer>a{display:block;font-size:10px;margin-top:8px}.page-heading{padding:36px 35px;border-bottom:1px solid var(--line)}.page-heading small{font-size:9px;letter-spacing:2px;color:var(--accent)}.page-heading h1{font-size:27px;font-weight:500;margin:9px 0}.page-heading p{font-size:12px;color:var(--muted)}.archive-list{padding:30px 35px}.archive-list h2{font-size:25px;font-weight:400;margin:12px 0}.archive-list h3{font-size:12px;color:var(--muted);margin:20px 0 8px}.archive-entry{display:flex;gap:18px;border-bottom:1px solid var(--line);padding:14px 0;align-items:center;font-size:13px}.archive-entry time{font-size:10px;color:var(--muted);flex-shrink:0}.archive-entry .icon{margin-left:auto;width:15px;height:15px}.collection-list{padding:15px 30px}.collection-list .collection-list{padding:0 0 0 20px}.collection-item{display:flex;gap:15px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}.collection-item>.icon{color:var(--accent)}.collection-item h2{font-size:16px;font-weight:500}.collection-item p{font-size:11px;color:var(--muted)}.collection-item>span{margin-left:auto;white-space:nowrap;color:var(--muted);font-size:11px}.tags-page{display:flex;flex-wrap:wrap;gap:14px;padding:35px}.tags-page a,.article-tags a{background:var(--tint);border-radius:7px;padding:8px 13px;font-size:12px;color:var(--accent)}.tags-page small{margin-left:12px;color:var(--muted)}.reading-card{padding:30px 35px}.back-link{font-size:11px;color:var(--muted)}.article-heading h1{font-size:28px;font-weight:550;line-height:1.55;margin:22px 0 16px;overflow-wrap:anywhere}.article-meta{display:flex;gap:14px;font-size:10px;color:var(--muted);flex-wrap:wrap}.article-meta .icon{width:13px;height:13px}.article-cover{width:100%;max-height:380px;object-fit:cover;border-radius:11px;margin:28px 0}.prose{font-size:15px;line-height:1.95;margin-top:28px;overflow-wrap:anywhere}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table{margin:18px 0}.prose ul{list-style:disc;padding-left:22px}.prose ol{padding-left:22px}.prose h2{font-size:22px;line-height:1.5;margin:36px 0 15px;font-weight:600;scroll-margin-top:24px}.prose h3{font-size:18px;margin:24px 0 12px;font-weight:500;scroll-margin-top:24px}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.prose blockquote{border-left:3px solid var(--accent);background:var(--side);padding:12px 20px;color:var(--muted)}.prose blockquote p{margin:0}.prose img{border-radius:8px;margin:20px auto;height:auto}.prose pre{position:relative;padding:18px 20px;background:var(--side);border:1px solid var(--line);border-radius:8px;overflow:auto;font-size:12px;line-height:1.8}.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.86em;background:var(--tint);padding:2px 5px;border-radius:4px}.prose pre code{padding:0;background:none;font-size:inherit}.prose table{border-collapse:collapse;display:block;max-width:100%;overflow:auto;font-size:13px}.prose th,.prose td{border:1px solid var(--line);padding:10px 14px;white-space:normal;min-width:100px}.prose th{background:var(--side)}.prose iframe,.prose video{max-width:100%}.prose hr{border:0;border-top:1px solid var(--line);margin:30px 0}.toc{background:var(--side);border:1px solid var(--line);padding:12px 18px;border-radius:8px;margin-top:25px;font-size:12px}.toc summary{cursor:pointer;color:var(--accent)}.toc nav{display:flex;flex-direction:column;gap:6px;margin-top:12px}.toc-sub{padding-left:16px;color:var(--muted)}.article-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.article-tags a{font-size:10px;padding:5px 10px}.article-end{margin-top:35px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.article-end .icon{color:var(--accent)}.copy-link{margin-left:auto;font-size:10px;color:var(--accent);padding:7px 10px;border-radius:6px;background:var(--tint)}.comments{border-top:1px solid var(--line);padding:30px 35px}.comments h2{font-size:17px;font-weight:500;margin-bottom:24px}.empty-state{text-align:center;padding:70px 20px;color:var(--muted);font-size:13px}.empty-state>.icon{width:32px;height:32px;margin-bottom:15px}.empty-state h2{font-size:19px;font-weight:500;margin-bottom:10px}.back-top{position:fixed;right:20px;bottom:25px;box-shadow:var(--shadow);background:var(--surface);color:var(--accent);border:1px solid var(--line);z-index:10}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);max-width:90vw;background:var(--text);color:var(--surface);padding:10px 20px;border-radius:9px;font-size:12px;z-index:50}.skip-link{position:fixed;left:20px;top:-100px;background:var(--surface);color:var(--accent);padding:10px;z-index:100}.skip-link:focus{top:10px}.without-right{grid-template-columns:235px minmax(0,1fr);max-width:1100px}.error-page{max-width:650px;text-align:center;margin:15vh auto;background:var(--surface);border-radius:20px;padding:50px}.error-page>span{font-size:80px;color:var(--accent);font-weight:200}.error-page h1{font-size:24px;margin-bottom:12px}.error-page p{color:var(--muted)}.button{display:inline-block;padding:10px 20px;background:var(--accent);color:white;border-radius:8px;margin-top:25px}
@media(min-width:1500px){.hero{min-height:290px}.post-cover{width:165px;flex-basis:165px;height:155px}.post-info h2{font-size:18px}}
@media(max-width:1150px){body{padding:25px 20px}.shell{grid-template-columns:205px minmax(0,1fr) 215px}.side-section{padding:22px 20px}.menu-tree{padding-left:15px;padding-right:15px}.brand{padding-left:24px}.post-card{gap:17px}.post-cover{width:115px;flex-basis:115px;height:135px}.hero-copy h1{font-size:23px}.list-heading small{display:none}.post-list{padding:0 25px}.toolbar{padding:0 25px}.hero{padding:28px}.without-right{grid-template-columns:205px minmax(0,1fr)}}
@media(max-width:980px){.shell{grid-template-columns:210px minmax(0,1fr);max-width:860px}.right-sidebar{display:none}.post-cover{width:145px;flex-basis:145px}.hero{min-height:265px}}
@media(max-width:680px){body{padding:0}.shell,.without-right{display:block;min-height:100vh;border-radius:0}.left-sidebar{display:none}.nav-open .left-sidebar{display:block;position:fixed;left:0;top:58px;bottom:0;width:min(290px,85vw);overflow:auto;z-index:30;box-shadow:20px 0 60px #0005}.mobile-menu{display:grid}.toolbar{height:58px;padding:0 15px;position:sticky;top:0;z-index:40}.toolbar-label{font-size:10px}.toolbar-actions{gap:3px}.hero{min-height:240px;padding:25px}.hero-copy h1{font-size:24px;max-width:300px}.hero-copy>span{font-size:8px}.hero-sign{right:22px;top:20px}.announcement{padding:12px 20px;font-size:10px}.category-tabs{padding:19px 20px;gap:6px}.category-tabs a{font-size:10px;padding:5px 9px}.list-heading{padding:22px 20px 0}.post-list{padding:0 20px}.post-card{gap:14px;padding:23px 0;align-items:flex-start}.post-cover{width:95px;flex-basis:95px;height:112px}.post-info h2{font-size:15px;line-height:1.5}.post-kicker{font-size:8px;margin-bottom:5px}.post-excerpt{font-size:11px;margin:7px 0 9px;-webkit-line-clamp:2}.post-meta{gap:8px;font-size:8px}.post-meta .icon{width:11px;height:11px}.read-more{display:none}.footer{padding:30px 20px}.page-heading{padding:30px 23px}.page-heading h1{font-size:24px}.reading-card{padding:25px 23px}.article-heading h1{font-size:25px}.prose{font-size:14px}.prose h2{font-size:21px}.comments{padding:25px 23px}.archive-list{padding:20px 23px}.collection-list{padding:15px 23px}.tags-page{padding:25px 23px}.back-top{right:12px;bottom:15px}.toc a{padding-top:5px;padding-bottom:5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
/* Plugin pages share the same palette and shell. */
.plugin-navigation .menu-tree{padding-top:0;padding-bottom:15px}.plugin-navigation:has(li:not([hidden])){margin-top:-12px}.plugin-tabs small{margin-left:6px;font-size:9px;opacity:.65}.heading-detail{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:20px;font-size:10px;color:var(--muted)}.heading-detail .status-dot{margin:0}.heading-detail .rss-link{margin-left:auto;color:var(--accent)}.moments-heading{background:linear-gradient(135deg,var(--surface),var(--side))}.moments-feed{padding:26px 30px}.moment-card{position:relative;border:1px solid var(--line);border-radius:13px;padding:24px;margin-bottom:22px;background:var(--surface);box-shadow:0 6px 24px #203b2c03}.moment-header{display:flex;align-items:center;gap:11px}.moment-avatar{width:42px;height:42px;object-fit:cover;border-radius:14px}.moment-header h2{font-size:13px;font-weight:600}.moment-header time,.moment-header a{font-size:10px;color:var(--muted)}.moment-header a:hover{color:var(--accent)}.moment-label{margin-left:auto;color:var(--accent);font-size:9px;background:var(--tint);padding:3px 9px;border-radius:5px;white-space:nowrap}.moment-body.prose{font-size:14px;line-height:1.9;margin:18px 0}.moment-body.prose p:first-child{margin-top:0}.moment-body.prose p:last-child{margin-bottom:0}.moment-body.is-collapsed{max-height:230px;overflow:hidden;mask-image:linear-gradient(#000 70%,transparent)}.moment-expand{font-size:11px;color:var(--accent);background:var(--tint);border-radius:5px;padding:5px 10px;margin-bottom:12px}.moment-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:18px}.moment-gallery:empty,.moment-av:empty{display:none}.moment-gallery:has(a:only-child){grid-template-columns:minmax(0,1fr);max-width:420px}.moment-gallery:has(a:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.moment-gallery a{overflow:hidden;border-radius:8px;background:var(--tint)}.moment-gallery img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .3s}.moment-gallery:has(a:only-child) img{aspect-ratio:4/3}.moment-gallery a:hover img{transform:scale(1.035)}.moment-av video{max-width:100%;width:100%;max-height:420px;border-radius:8px;margin-top:18px;background:#16251d}.moment-av audio{display:block;width:100%;margin-top:18px;height:42px}.moment-post-link{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--side);padding:13px;margin-top:16px;border-radius:8px;font-size:12px}.moment-post-link>span{margin-left:auto}.moment-tags{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.moment-tags a{font-size:10px;color:var(--accent);background:var(--tint);padding:3px 8px;border-radius:5px}.moment-footer{display:flex;align-items:center;gap:15px;padding-top:16px;margin-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;flex-wrap:wrap}.moment-footer>a{display:flex;gap:5px;align-items:center}.moment-footer .icon{width:14px;height:14px}.moment-footer .text-button{margin-left:auto;color:var(--accent);font-size:10px;padding:4px 8px}.moment-detail .moment-card{margin-bottom:0}.latest-moment p{font-size:12px;line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.latest-moment time{display:block;color:var(--muted);font-size:9px;margin-top:14px}.latest-moment a>span{color:var(--accent);font-size:10px;display:block;margin-top:8px}.links-page{padding:28px 30px}.link-group{margin-bottom:28px}.link-group>h2{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:14px}.friend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.friend-card{display:flex;gap:12px;align-items:center;padding:18px;border:1px solid var(--line);background:var(--side);border-radius:11px;min-width:0}.friend-card:hover{background:var(--tint)}.friend-card img{width:42px;height:42px;flex-shrink:0;object-fit:cover;border-radius:12px}.friend-card>div{min-width:0}.friend-card h3{font-size:13px;font-weight:600;overflow-wrap:anywhere}.friend-card p{font-size:10px;color:var(--muted);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.friend-card>.icon{width:14px;height:14px;margin-left:auto;flex-shrink:0}.link-note{padding:25px 30px;background:var(--side);border-top:1px solid var(--line)}.link-note h2{font-size:14px;margin-bottom:10px;font-weight:500}.link-note p{font-size:12px;color:var(--muted);white-space:pre-line}.group-empty{font-size:12px;color:var(--muted);padding:20px 0}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:28px 30px}.photo-tile{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--side);min-width:0}.photo-preview{display:block;overflow:hidden}.photo-preview img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s}.photo-preview:hover img{transform:scale(1.04)}.photo-caption{padding:14px 16px}.photo-caption h2{font-size:14px;font-weight:500;overflow-wrap:anywhere}.photo-caption p{font-size:11px;color:var(--muted);margin-top:5px}.photo-caption a{font-size:10px;color:var(--accent);display:inline-block;margin-top:10px}.photo-detail{margin:0;padding:28px 30px}.photo-detail img{width:100%;max-height:70vh;object-fit:contain;border-radius:10px;background:var(--side)}.photo-detail figcaption{font-size:10px;color:var(--muted);text-align:center;margin-top:12px}.photo-neighbors{display:flex;gap:9px;justify-content:center;padding:5px 30px 25px;flex-wrap:wrap}.photo-neighbors img{width:60px;height:60px;object-fit:cover;border-radius:7px}.photo-neighbors a{padding:3px;border-radius:9px;border:1px solid transparent}.photo-neighbors a.active{border-color:var(--accent)}.lightbox{width:min(1100px,94vw);height:min(900px,90dvh);max-width:94vw;max-height:90dvh;padding:0;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--text);overflow:hidden;box-shadow:0 30px 120px #0006}.lightbox::backdrop{background:#11251cbb;backdrop-filter:blur(6px)}.lightbox-toolbar{display:flex;align-items:center;gap:15px;padding:10px 16px;border-bottom:1px solid var(--line);height:60px;font-size:12px;color:var(--muted)}.lightbox-toolbar a{margin-left:auto;color:var(--accent)}.lightbox-toolbar button{font-size:25px;width:40px;height:40px;border-radius:8px}.lightbox-toolbar button:hover{background:var(--tint)}.lightbox-stage{display:grid;grid-template-columns:50px minmax(0,1fr) 50px;align-items:center;height:calc(100% - 60px);padding:15px 0;gap:5px}.lightbox-stage figure{margin:0;height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.lightbox-stage img{min-height:0;max-height:calc(100% - 35px);max-width:100%;object-fit:contain}.lightbox-stage figcaption{font-size:12px;color:var(--muted)}.lightbox-stage button{font-size:20px;min-height:44px}.lightbox-stage button:disabled{opacity:.25}.lightbox-stage p{font-size:13px;color:var(--muted);padding:15px;text-align:center}
/* Let Prism own token colors and line-number layout. */
.prose pre[class*="language-"]{overflow:auto;max-width:100%}.prose pre[class*="language-"] code{background:none;padding:0}.prose pre.line-numbers{padding-left:3.8em}.moment-body .prose{margin:0}
@media(max-width:1150px){.friend-grid{grid-template-columns:1fr}.moments-feed{padding:23px 25px}.moment-card{padding:20px}.links-page,.photo-grid{padding:25px}.photo-grid{gap:14px}}
@media(max-width:680px){.moments-feed{padding:20px 16px}.moment-card{padding:19px 17px;margin-bottom:18px;border-radius:11px}.moment-body.prose{font-size:13px}.moment-header h2{font-size:12px}.moment-label{font-size:8px;padding:3px 6px}.moment-gallery{gap:5px}.moment-tags{margin-top:14px}.moment-footer{gap:12px;font-size:9px}.moment-avatar{width:38px;height:38px;border-radius:12px}.links-page{padding:25px 20px}.friend-grid{grid-template-columns:1fr}.link-note{padding:25px 20px}.photo-grid{padding:20px 16px;gap:12px}.photo-caption{padding:11px 12px}.photo-caption h2{font-size:12px}.photo-caption p{font-size:10px}.photo-detail{padding:23px 20px}.lightbox-stage{grid-template-columns:35px minmax(0,1fr) 35px}.lightbox-toolbar{padding:8px 12px;font-size:10px}.heading-detail{font-size:9px}.heading-detail .rss-link{margin-left:0}.moment-likes{font-size:9px}}
.bangumi-filter{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:22px 30px;border-bottom:1px solid var(--line);font-size:11px}.bangumi-filter label{display:flex;align-items:center;gap:7px;color:var(--muted)}.bangumi-filter select{font:inherit;color:var(--text);border:1px solid var(--line);background:var(--side);padding:6px 10px;border-radius:6px}.bangumi-filter button{font-size:11px;background:var(--accent);color:#fff;border-radius:6px;padding:7px 12px}.bangumi-filter>span{margin-left:auto;color:var(--muted);font-size:10px}.bangumi-grid{display:flex;flex-direction:column;gap:20px;padding:28px 30px}.bangumi-card{display:flex;gap:20px;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--side);min-width:0}.bangumi-cover{position:relative;flex:0 0 110px;width:110px;align-self:flex-start}.bangumi-cover img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:9px}.bangumi-cover span{position:absolute;right:6px;top:6px;border-radius:4px;background:#193c2edb;color:#fff;padding:2px 6px;font-size:10px}.bangumi-card>div{min-width:0;flex:1}.bangumi-card h2{font-size:16px;font-weight:500;line-height:1.6;margin-bottom:8px}.bangumi-meta{font-size:10px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}.bangumi-description{font-size:12px;color:var(--muted);line-height:1.9;margin-top:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.bangumi-watch{font-size:10px;color:var(--accent);display:block;margin-top:15px}
@media(max-width:680px){.bangumi-filter{padding:18px 20px;gap:10px}.bangumi-filter>span{width:100%;margin:0}.bangumi-grid{padding:20px 16px;gap:14px}.bangumi-card{padding:16px;gap:14px}.bangumi-cover{width:85px;flex-basis:85px}.bangumi-card h2{font-size:14px}.bangumi-description{font-size:11px;-webkit-line-clamp:2}.bangumi-meta{gap:5px;font-size:9px}}
/* 0.3: a stable shell, quieter timeline and natural photo proportions. */
body{isolation:isolate}.shell{position:relative;z-index:1;grid-template-columns:220px minmax(0,1fr) 240px}.without-right{grid-template-columns:220px minmax(0,1fr)}
.moments-feed{padding:30px 32px 16px;background:var(--side)}.moment-card{padding:24px 26px;margin-left:12px;margin-bottom:24px;border-radius:16px;box-shadow:0 8px 26px #193c2a05}.moment-card:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--accent);left:-21px;top:41px;box-shadow:0 0 0 5px var(--side)}.moment-card:after{content:"";position:absolute;left:-18px;top:57px;bottom:-35px;width:1px;background:var(--line)}.moment-card:last-child:after{display:none}.moment-detail .moment-card{margin-left:0}.moment-detail .moment-card:before,.moment-detail .moment-card:after{display:none}.moment-body.prose{font-size:15px;margin:20px 0;line-height:1.85}.moment-gallery{max-width:540px;gap:8px}.moment-gallery a{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:var(--side);border:1px solid var(--line);border-radius:10px}.moment-gallery img{height:100%;object-fit:contain;aspect-ratio:auto}.moment-gallery:has(a:only-child){max-width:460px}.moment-gallery:has(a:only-child) a{aspect-ratio:auto;max-height:420px}.moment-gallery:has(a:only-child) img{width:auto;max-width:100%;height:auto;max-height:420px;aspect-ratio:auto}.moment-gallery:has(a:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr));max-width:440px}.moment-footer{font-size:11px}.moment-header h2{font-size:14px}.moment-label{border-radius:20px}.photo-grid{display:block;columns:2;column-gap:20px;background:var(--side)}.photo-tile{break-inside:avoid;margin-bottom:20px;background:var(--surface);box-shadow:0 8px 24px #193c2a06;border-radius:14px}.photo-preview img{aspect-ratio:auto;height:auto;min-height:100px;max-height:560px;object-fit:contain;background:var(--side)}.photo-caption{padding:17px 18px}.photo-caption h2{line-height:1.6}.photo-caption p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.photo-caption p:empty{display:none}
.ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;display:none}.ambient-enabled .ambient{display:block}.ambient i{position:absolute;width:60vw;height:60vw;min-width:500px;min-height:500px;border-radius:50%;filter:blur(75px);opacity:.3;background:radial-gradient(circle,#83bba0,transparent 65%);animation:ambient-drift 22s ease-in-out infinite alternate;left:-20%;top:-30%}.ambient i:nth-child(2){left:65%;top:25%;background:radial-gradient(circle,#b7b6dc,transparent 65%);animation-delay:-8s}.ambient i:nth-child(3){left:30%;top:60%;background:radial-gradient(circle,#d5bd89,transparent 65%);animation-delay:-15s}.effects-paused .ambient i{animation-play-state:paused}@keyframes ambient-drift{to{transform:translate3d(15vw,12vh,0) scale(1.15)}}.pointer-glow{display:none;position:fixed;left:0;top:0;width:200px;height:200px;pointer-events:none;z-index:4;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 10%,transparent),transparent 68%)}.pointer-enabled .pointer-glow{display:block}.click-ripple{position:fixed;z-index:100;pointer-events:none;width:12px;height:12px;border:1px solid var(--accent);border-radius:50%;animation:ripple .65s ease-out forwards}@keyframes ripple{from{transform:translate(-50%,-50%) scale(1);opacity:.6}to{transform:translate(-50%,-50%) scale(6);opacity:0}}.navigation-progress,.reading-progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);pointer-events:none;z-index:120}.navigation-progress{width:0;opacity:0;transition:width .4s,opacity .2s}.is-navigating .navigation-progress{width:80%;opacity:1}.reading-progress{width:100%;transform:scaleX(0);transform-origin:left}#main{view-transition-name:mori-content}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-old(mori-content){animation:content-out .12s ease both}::view-transition-new(mori-content){animation:content-in .18s ease both}@keyframes content-out{to{opacity:0}}@keyframes content-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:1150px){.shell{grid-template-columns:200px minmax(0,1fr) 215px}.without-right{grid-template-columns:200px minmax(0,1fr)}}@media(max-width:980px){.shell{grid-template-columns:205px minmax(0,1fr)}}@media(max-width:680px){.shell{display:block}.moments-feed{padding:22px 18px 8px}.moment-card{padding:20px 18px;margin-left:9px}.moment-card:before{left:-19px}.moment-card:after{left:-16px}.moment-body.prose{font-size:14px}.photo-grid{column-gap:12px;padding:20px 16px}.photo-tile{margin-bottom:12px}.photo-caption{padding:12px}.moment-label{display:none}.ambient i{min-width:320px;min-height:320px;filter:blur(50px)}}@media(max-width:380px){.photo-grid{columns:1}}@media(prefers-reduced-motion:reduce){.ambient,.pointer-glow,.click-ripple{display:none!important}*,*:before,*:after{animation:none!important}::view-transition-group(*){animation:none!important}}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;color:var(--muted);margin-bottom:14px}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--accent)}
.crumbs span:last-child{color:var(--text)}
.post-neighbors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:26px 35px 0}
.post-neighbors a{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:0}
.post-neighbors a:hover{border-color:var(--accent);color:var(--accent)}
.post-neighbors small{font-size:10px;letter-spacing:1px;color:var(--muted)}
.post-neighbors span{font-size:13px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.post-neighbors .next{text-align:right;align-items:flex-end}
.post-neighbors a:only-child{grid-column:span 2}
.related{padding:28px 35px 0}
.related h2{font-size:13px;font-weight:600;margin-bottom:16px}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.related-grid a{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);min-width:0}
.related-grid a:hover{border-color:var(--accent)}
.related-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--tint)}
.related-grid h3{font-size:12px;font-weight:500;line-height:1.6;padding:12px 12px 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.related-grid time{font-size:10px;color:var(--muted);padding:0 12px 13px}
.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:26px 30px}
.post-tile{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--surface);min-width:0}
.post-tile:hover{border-color:var(--accent)}
.post-tile-cover{position:relative;display:block;background:var(--tint)}
.post-tile-cover img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .4s}
.post-tile:hover .post-tile-cover img{transform:scale(1.03)}
.post-tile-cover .pinned{position:absolute;left:10px;top:10px;background:var(--surface);color:var(--accent);padding:2px 7px;border-radius:4px;font-size:9px;letter-spacing:1px}
.post-tile-info{display:flex;flex-direction:column;gap:8px;padding:15px 16px 0}
.post-tile-info h2{font-size:15px;font-weight:550;line-height:1.6;overflow-wrap:anywhere}
.post-tile-meta{display:flex;gap:12px;align-items:center;font-size:9px;color:var(--muted)}
.post-tile-meta .icon{width:13px;height:13px}
.post-tile-meta>span{display:flex;align-items:center;gap:4px}
.post-tile-excerpt{font-size:12px;line-height:1.7;color:var(--muted);padding:7px 16px 16px;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.note-card{max-width:760px;width:100%;margin:0 auto;padding:34px 40px}
.toc-open{margin-top:22px}
.toc-open nav{max-height:min(52vh,420px);overflow:auto}
@media(max-width:680px){.post-grid{grid-template-columns:1fr;padding:20px 18px}.post-neighbors{grid-template-columns:1fr;padding:22px 20px 0}.post-neighbors a:only-child{grid-column:auto}.related{padding:22px 20px 0}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.note-card{padding:26px 22px}}
.shell.without-left{grid-template-columns:minmax(0,1fr) 260px;max-width:1100px}
.shell.without-right{grid-template-columns:235px minmax(0,1fr);max-width:1100px}
.shell.without-left.without-right{grid-template-columns:minmax(0,1fr);max-width:900px}
@media(min-width:681px){.left-sidebar.is-collapsed{display:none}}
@media(max-width:1150px){
.shell.without-left{grid-template-columns:minmax(0,1fr) 215px}
.shell.without-right{grid-template-columns:200px minmax(0,1fr)}
}
@media(max-width:980px){
.shell.without-left,.shell.without-left.without-right{grid-template-columns:minmax(0,1fr)}
.shell.without-right{grid-template-columns:205px minmax(0,1fr)}
}
@media(max-width:680px){
.shell.without-left,.shell.without-right,.shell.without-left.without-right{display:block}
}
.contact{margin-top:18px}
.contact-note{font-size:11px;line-height:1.9;color:var(--muted);margin-bottom:10px}
.contact-list li+li{margin-top:7px}
.contact-list a,.contact-list button{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:11px;text-align:left;min-width:0}
.contact-list a:hover,.contact-list button:hover{border-color:var(--accent);color:var(--accent)}
.contact-list .icon{width:17px;height:17px;flex-shrink:0;color:var(--accent)}
.contact-list button .icon{color:var(--muted)}
.contact-list button:hover .icon{color:var(--accent)}
.contact-value{flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.5}
.contact-action{flex-shrink:0;align-self:flex-start;color:var(--accent);font-size:9px;padding:2px 6px;border-radius:4px;background:var(--tint)}
.contact-qr{width:100%;max-width:150px;margin:12px auto 0;border-radius:9px;border:1px solid var(--line)}
.category-widget a,.neighbor-widget a{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px;min-width:0}
.category-widget a:last-child,.neighbor-widget a:last-child{border-bottom:0}
.category-widget a:hover,.neighbor-widget a:hover{color:var(--accent)}
.category-widget span,.neighbor-widget span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.category-widget small{flex-shrink:0;color:var(--muted);font-size:10px}
.neighbor-widget img{width:34px;height:34px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--tint)}
.widget-body{font-size:12px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}
.widget-body img{border-radius:9px;margin:8px 0}
.widget-body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.widget-body ul{margin:8px 0;padding-left:18px;list-style:disc}
.widget-body ol{margin:8px 0;padding-left:18px;list-style:decimal}
.widget-body h3,.widget-body h4{font-size:12px;font-weight:600;color:var(--text);margin:10px 0 6px}
/* --- palettes --------------------------------------------------------------
   Each palette supplies the neutral family plus the default accent. The
   `主题色` setting only overrides --accent when it is changed from the theme
   default, so a palette keeps working out of the box. */
:root{--deco-a:#497e65;--deco-b:#a5b99a;--deco-c:#7e9c87;--deco-d:#3f6755;--hero-bg:#477e70}
[data-palette=salt]{--bg:#dfe8ee;--surface:#f8fbfd;--side:#edf3f7;--text:#26343d;--muted:#6d7f8b;--line:#dfe7ed;--tint:#e0ecf3;--accent:#2f7f9e;--shadow:0 20px 80px #24384a14;--deco-a:#3f6f8c;--deco-b:#9fbccd;--deco-c:#7d9cb0;--deco-d:#315c73;--hero-bg:#3f7a99}
[data-palette=salt][data-color-scheme=dark]{--bg:#161f26;--surface:#1f2a32;--side:#233039;--text:#dde8ee;--muted:#9fb0bb;--line:#33434e;--tint:#2f4250;--accent:#5aa9c9;--shadow:0 20px 80px #0003}
[data-palette=dusk]{--bg:#e4e2ea;--surface:#faf9fc;--side:#f1f0f6;--text:#302e3c;--muted:#7d7a8d;--line:#e5e3ec;--tint:#e8e4f1;--accent:#6b5ca5;--shadow:0 20px 80px #2c244012;--deco-a:#6a5f97;--deco-b:#b3a8cd;--deco-c:#8f86b0;--deco-d:#544a7c;--hero-bg:#6b5f9b}
[data-palette=dusk][data-color-scheme=dark]{--bg:#1b1926;--surface:#242232;--side:#2a2739;--text:#e5e2ef;--muted:#a8a3ba;--line:#3b3750;--tint:#3a3350;--accent:#9b8ad6;--shadow:0 20px 80px #0004}
[data-palette=amber]{--bg:#eae1d5;--surface:#fdfaf6;--side:#f5efe6;--text:#3c3226;--muted:#8a7a68;--line:#eae1d6;--tint:#f1e5d5;--accent:#a86b32;--shadow:0 20px 80px #402c1512;--deco-a:#9a7143;--deco-b:#ccb08a;--deco-c:#b1926a;--deco-d:#7b552c;--hero-bg:#9c7440}
[data-palette=amber][data-color-scheme=dark]{--bg:#241d16;--surface:#2d261d;--side:#332b21;--text:#efe6da;--muted:#b8a793;--line:#463a2c;--tint:#443628;--accent:#d09a5c;--shadow:0 20px 80px #0004}
[data-palette=sakura]{--bg:#f0e2e6;--surface:#fdf9fa;--side:#f7edf0;--text:#3b2c31;--muted:#8d757d;--line:#f0e2e7;--tint:#f7e3e9;--accent:#b3546f;--shadow:0 20px 80px #431f2b12;--deco-a:#a35f74;--deco-b:#d7aebb;--deco-c:#bd8f9d;--deco-d:#87455a;--hero-bg:#a55972}
[data-palette=sakura][data-color-scheme=dark]{--bg:#241a1e;--surface:#2d2226;--side:#34272c;--text:#f0e4e8;--muted:#bda5ad;--line:#47353b;--tint:#46313a;--accent:#d98ba3;--shadow:0 20px 80px #0004}
[data-palette=graphite]{--bg:#e2e3e4;--surface:#fafafa;--side:#f0f1f1;--text:#2f3234;--muted:#787d80;--line:#e3e4e5;--tint:#e7e9ea;--accent:#4a5560;--shadow:0 20px 80px #1f242712;--deco-a:#5b646c;--deco-b:#a9b0b5;--deco-c:#868d93;--deco-d:#454d55;--hero-bg:#5a636b}
[data-palette=graphite][data-color-scheme=dark]{--bg:#1b1d1f;--surface:#242729;--side:#2a2d30;--text:#e4e6e8;--muted:#a3a8ac;--line:#3a3e41;--tint:#383c40;--accent:#98a3ad;--shadow:0 20px 80px #0004}
.hero{background:var(--hero-bg)}
.topic{background:linear-gradient(115deg,var(--deco-a),var(--deco-b))}
.topic:nth-of-type(2){background:linear-gradient(115deg,var(--deco-c),var(--deco-b))}
.topic:nth-of-type(3){background:linear-gradient(115deg,var(--deco-a),var(--deco-c))}
.quote-card{background:linear-gradient(145deg,var(--deco-c),var(--deco-d))}
/* --- content width ------------------------------------------------------- */
[data-width=wide] .shell{max-width:1560px}
[data-width=full] .shell{max-width:100%;border-radius:0}
/* --- article list styles ------------------------------------------------- */
[data-list=compact] .post-list{padding:0 30px}
[data-list=compact] .post-card{gap:0;padding:18px 0}
[data-list=compact] .post-cover{display:none}
[data-list=compact] .post-excerpt{-webkit-line-clamp:1;margin:6px 0 10px}
[data-list=compact] .post-info h2{font-size:15px}
[data-list=grid] .post-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:24px 30px}
[data-list=grid] .post-card{flex-direction:column;align-items:stretch;gap:0;padding:0;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--surface)}
[data-list=grid] .post-card:hover{border-color:var(--accent)}
[data-list=grid] .post-cover{width:100%;flex:none;height:auto;border-radius:0;aspect-ratio:16/10}
[data-list=grid] .post-cover:hover img{transform:scale(1.03)}
[data-list=grid] .post-info{padding:15px 16px 16px}
[data-list=grid] .post-info h2{font-size:15px}
[data-list=grid] .post-excerpt{margin:7px 0 12px}
[data-list=grid] .empty-state{grid-column:1/-1}
@media(max-width:680px){[data-list=grid] .post-list{grid-template-columns:1fr;padding:20px 18px}[data-list=compact] .post-list{padding:0 20px}}
/* --- countdown ----------------------------------------------------------- */
.countdown{position:relative;padding:12px 4px 10px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 10%,var(--surface)),var(--surface) 55%)}
.countdown:after{content:"";position:absolute;left:14px;right:14px;top:0;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,var(--accent),transparent)}
.countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.countdown[data-seconds=false] .countdown-units{grid-template-columns:repeat(3,minmax(0,1fr))}
.countdown-unit{position:relative;text-align:center;padding:0 2px}
.countdown-unit+.countdown-unit:before{content:"";position:absolute;left:0;top:12%;bottom:12%;width:1px;background:var(--line)}
.countdown-unit strong{display:block;font-size:20px;font-weight:500;line-height:1.25;color:var(--accent);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:.5px}
.countdown-unit span{display:block;margin-top:3px;font-size:8px;letter-spacing:.6px;color:var(--muted)}
.countdown[data-seconds=false] .countdown-unit.is-seconds{display:none}
.countdown-done{display:none;font-size:12px;color:var(--accent);text-align:center;padding:8px 0 2px}
.countdown.is-done .countdown-units,.countdown.is-done .countdown-hint{display:none}
.countdown.is-done .countdown-done{display:block}
.countdown-hint{font-size:10px;color:var(--muted);margin-top:8px;text-align:center}
.hero:after{background:linear-gradient(0deg,color-mix(in srgb,var(--deco-d) 72%,transparent),transparent 90%)}
.ambient i{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 40%,#ffffff),transparent 65%)}
.ambient i:nth-child(2){background:radial-gradient(circle,color-mix(in srgb,var(--accent) 30%,#dcd8ff),transparent 65%)}
.ambient i:nth-child(3){background:radial-gradient(circle,color-mix(in srgb,var(--accent) 28%,#ffe3ae),transparent 65%)}
.hero-image.is-illustration{filter:hue-rotate(0deg)}
[data-palette=salt] .hero-image.is-illustration{filter:hue-rotate(46deg) saturate(.92)}
[data-palette=dusk] .hero-image.is-illustration{filter:hue-rotate(112deg) saturate(.82)}
[data-palette=amber] .hero-image.is-illustration{filter:hue-rotate(-116deg) saturate(1.05)}
[data-palette=sakura] .hero-image.is-illustration{filter:hue-rotate(-166deg) saturate(.95)}
[data-palette=graphite] .hero-image.is-illustration{filter:grayscale(.8)}
/* countdown: keep the four units in one row even in a narrow sidebar */
.countdown-card+.countdown-card{margin-top:12px}
.countdown-title{font-size:11px;color:var(--muted);margin-bottom:8px}
.countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.countdown[data-seconds=false] .countdown-units{grid-template-columns:repeat(3,minmax(0,1fr))}
.countdown-unit{min-width:0;padding:9px 2px;border-radius:9px}
.countdown-unit strong{font-size:16px;letter-spacing:.5px}
.countdown-unit span{font-size:8px;white-space:nowrap}
.countdown[data-seconds=false] .countdown-unit.is-seconds{display:none}
.countdown-hint{margin-top:10px}
/* 0.8.2: no inner scrollers — the whole page scrolls, columns included */
.back-top{width:40px;height:40px}
.back-top .icon{width:20px;height:20px}
/* System/plugin footer code injection (daily poem, badges, scripts) sits below the theme card;
   give it a light frame so injected markup reads as part of the theme. */
.page-footer-code{max-width:1360px;margin:20px auto 0;padding:0 4px;text-align:center;font-size:11px;line-height:1.9;color:var(--muted)}
.page-footer-code:empty{display:none}
.page-footer-code>*+*{margin-top:6px}
.page-footer-code p,.page-footer-code span,.page-footer-code div{overflow-wrap:anywhere}
.page-footer-code a{color:var(--accent)}
.page-footer-code a:hover{text-decoration:underline;text-underline-offset:3px}
.page-footer-code h1,.page-footer-code h2,.page-footer-code h3,.page-footer-code h4{font-size:12px;font-weight:500;color:var(--text)}
.page-footer-code img,.page-footer-code svg,.page-footer-code iframe,.page-footer-code video{max-width:100%;height:auto}
.page-footer-code ul,.page-footer-code ol{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:0}
.page-footer-code li{list-style:none}
@media(max-width:680px){.page-footer-code{margin-top:16px;padding:0 20px}}
/* --- comment widget: follow the theme accent and mode ---------------------
   The widget renders in a shadow root, so colours are inherited through CSS
   variables; --halo-cw-primary-1-color is the widget's primary colour. */
:root{--halo-cw-primary-1-color:var(--accent)!important}
/* --- gallery ------------------------------------------------------------- */
.photo-grid{background:transparent}
.photo-tile{transition:transform .25s ease,box-shadow .25s ease}
.photo-tile:hover{transform:translateY(-3px);box-shadow:0 14px 34px #193c2a14}
.photo-preview{position:relative}
.photo-zoom{position:absolute;right:10px;bottom:10px;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--accent);opacity:0;transition:opacity .25s ease}
.photo-zoom .icon{width:15px;height:15px}
.photo-preview:hover .photo-zoom,.photo-preview:focus-visible .photo-zoom{opacity:1}
.photo-caption{display:flex;align-items:flex-end;gap:12px;justify-content:space-between}
.photo-caption p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.photo-caption a{flex-shrink:0;white-space:nowrap;margin-top:0}
.lightbox figcaption:empty{display:none}
/* --- comment dialog ------------------------------------------------------ */
.comment-dialog{width:min(680px,94vw);max-height:min(88dvh,900px);padding:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);overflow:hidden;box-shadow:0 30px 120px #0006}
.comment-dialog::backdrop{background:#11251cbb;backdrop-filter:blur(6px)}
.comment-dialog-head{display:flex;align-items:center;gap:12px;padding:14px 16px 14px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent)}
.comment-dialog-head h2{flex:1;font-size:15px;font-weight:600}
.comment-dialog-head button{width:34px;height:34px;border-radius:9px;font-size:20px;line-height:1;color:var(--muted)}
.comment-dialog-head button:hover{background:var(--tint);color:var(--accent)}
.comment-dialog-body{padding:18px 20px 24px;overflow-y:auto;max-height:calc(min(88dvh,900px) - 64px);scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.comment-dialog-body::-webkit-scrollbar{width:8px}
.comment-dialog-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
.comment-dialog-body .comments{border-top:0;padding:0}
.comment-dialog-body .comments h2{display:none}
.comment-dialog-hint{margin:0;padding:10px 0;font-size:12px;color:var(--muted);text-align:center}
.moment-comment{display:flex;align-items:center;gap:6px;color:inherit}
.moment-comment:hover{color:var(--accent)}
@media(max-width:680px){.comment-dialog{width:100vw;max-width:100vw;max-height:92dvh;border-radius:16px 16px 0 0;margin:auto auto 0}.comment-dialog-body{max-height:calc(92dvh - 64px)}}
/* --- sidebar: fill the empty column area --------------------------------- */
.left-sidebar,.right-sidebar{background-image:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--accent) 14%,transparent) 1px,transparent 0);background-size:24px 24px;background-repeat:repeat}
.left-sidebar{background-image:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 340px),radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--accent) 14%,transparent) 1px,transparent 0)}
@media(min-width:981px){
.shell.no-pin .left-sidebar,.shell.no-pin .right-sidebar{align-self:stretch}
.left-sidebar.is-pinned,.right-sidebar.is-pinned{position:sticky;top:48px;align-self:start;height:calc(100vh - 96px);display:flex;flex-direction:column;background-image:none}
.left-sidebar.is-pinned>*:last-child,.right-sidebar.is-pinned>*:last-child{margin-top:auto}
.left-sidebar.is-pinned,.right-sidebar.is-pinned{overflow:hidden}
}
/* --- cyberpunk palette ---------------------------------------------------- */
[data-palette=cyberpunk]{--bg:#070a14;--surface:#0e1526;--side:#0a1020;--text:#e8f2ff;--muted:#8ba2c4;--line:#1e2b48;--tint:#152442;--accent:#22d3ee;--radius:12px;--shadow:0 24px 90px #000000b3;--deco-a:#12708f;--deco-b:#6a2c86;--deco-c:#2a4a86;--deco-d:#0a1426;--hero-bg:#0d1a30}
[data-palette=cyberpunk][data-color-scheme=dark]{--bg:#05070f;--surface:#0b1220;--side:#080d1a;--text:#e8f2ff;--muted:#7f97ba;--line:#1a2540;--tint:#122039;--accent:#2ee6ff;--shadow:0 24px 90px #000c}
/* a light mode still needs to look cyberpunk: keep the neon on a dark base */
[data-color-scheme=light][data-palette=cyberpunk]{--bg:#070a14;--surface:#0e1526;--side:#0a1020;--text:#e8f2ff;--muted:#8ba2c4;--line:#1e2b48;--tint:#152442;--shadow:0 24px 90px #000000b3}
[data-palette=cyberpunk] body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;background-image:linear-gradient(color-mix(in srgb,var(--accent) 9%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent) 9%,transparent) 1px,transparent 1px);background-size:52px 52px}
[data-palette=cyberpunk] .brand>span,[data-palette=cyberpunk] .page-heading h1,[data-palette=cyberpunk] .article-heading h1{text-shadow:0 0 26px color-mix(in srgb,var(--accent) 42%,transparent)}
[data-palette=cyberpunk] a:hover,[data-palette=cyberpunk] .post-card:hover .post-info h2{text-shadow:0 0 16px color-mix(in srgb,var(--accent) 45%,transparent)}
[data-palette=cyberpunk] .icon-button:hover,[data-palette=cyberpunk] .menu-tree a.active{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 38%,transparent),0 0 20px color-mix(in srgb,var(--accent) 24%,transparent)}
[data-palette=cyberpunk] .shell{border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line))}
[data-palette=cyberpunk] .hero:after{background:linear-gradient(0deg,color-mix(in srgb,#7a2f9e 55%,transparent),transparent 90%),linear-gradient(90deg,color-mix(in srgb,#0e7f9e 35%,transparent),transparent 70%)}
[data-palette=cyberpunk] .quote-card{background:linear-gradient(150deg,#123a5c,#4a1f66)}
[data-palette=cyberpunk] .topic{background:linear-gradient(120deg,#0e5f7a,#3d2a72)}
/* --- background image: a fixed layer the content fuses with --------------- */
html::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:var(--backdrop-image,none);background-size:cover;background-position:center;background-repeat:no-repeat;filter:saturate(.92)}
[data-backdrop=fuse] body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 58%,transparent),color-mix(in srgb,var(--bg) 82%,transparent))}
[data-backdrop=fuse] .shell{background:color-mix(in srgb,var(--surface) 74%,transparent);backdrop-filter:blur(16px) saturate(1.06)}
[data-backdrop=fuse] .left-sidebar,[data-backdrop=fuse] .right-sidebar{background:color-mix(in srgb,var(--side) 58%,transparent);backdrop-filter:blur(18px)}
[data-backdrop=fuse] .toolbar,[data-backdrop=fuse] .page-heading{background:color-mix(in srgb,var(--surface) 62%,transparent)}
[data-backdrop=fuse] .side-section{background:transparent}
[data-backdrop=fuse] .quote-card{background:linear-gradient(150deg,color-mix(in srgb,#2f6f7e 72%,transparent),color-mix(in srgb,#3f6755 72%,transparent))}
[data-backdrop=fuse][data-palette=cyberpunk] .quote-card{background:linear-gradient(150deg,color-mix(in srgb,#0e5f7a 70%,transparent),color-mix(in srgb,#4a1f66 70%,transparent))}
[data-backdrop=plain] html::before{filter:none}
@media(prefers-reduced-motion:reduce){[data-palette=cyberpunk] body::after{opacity:.28}}
[data-palette=cyberpunk] .hero-image.is-illustration{filter:hue-rotate(160deg) saturate(1.25) brightness(.62) contrast(1.05)}
[data-palette=cyberpunk] .hero:after{opacity:1}
[data-palette=cyberpunk] .hero-copy h1{text-shadow:0 0 26px color-mix(in srgb,var(--accent) 55%,transparent),0 0 6px #0009}
[data-palette=cyberpunk] body::after{background-image:linear-gradient(color-mix(in srgb,var(--accent) 11%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent) 11%,transparent) 1px,transparent 1px)}
/* --- comment widget: full palette sync --------------------------------
   PluginCommentWidget only ships defaults for the dark variants, so in light
   mode the widget fell back to its own colours. Define the whole set from the
   theme palette instead, for both modes. */
:root{
--halo-cw-primary-1-color:var(--accent)!important;
--halo-cw-primary-2-color:color-mix(in srgb,var(--accent) 80%,var(--text))!important;
--halo-cw-primary-3-color:color-mix(in srgb,var(--accent) 62%,var(--text))!important;
--halo-cw-text-1-color:var(--text)!important;
--halo-cw-text-2-color:color-mix(in srgb,var(--text) 84%,var(--bg))!important;
--halo-cw-text-3-color:var(--muted)!important;
--halo-cw-muted-1-color:var(--line)!important;
--halo-cw-muted-2-color:color-mix(in srgb,var(--line) 78%,var(--bg))!important;
--halo-cw-muted-3-color:color-mix(in srgb,var(--bg) 86%,var(--line))!important;
--halo-cw-emoji-picker-color-border:var(--line)!important;
--halo-cw-emoji-picker-color-border-over:var(--accent)!important;
}
/* --- background video: same fused treatment as the image layer ------------ */
/* no background colour on purpose: while the video buffers, stalls or fails to decode, the
   frame behind it (the poster image layer) must stay visible instead of a flat box */
.page-backdrop-video{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;pointer-events:none;background:transparent}
@media(prefers-reduced-motion:reduce){html[data-video-motion=system] .page-backdrop-video{display:none}}
/* a playing background video deserves to be a little more visible than a still image */
[data-backdrop-video][data-backdrop=fuse] .shell{background:color-mix(in srgb,var(--surface) 66%,transparent)}
[data-backdrop-video][data-backdrop=fuse] .left-sidebar,[data-backdrop-video][data-backdrop=fuse] .right-sidebar{background:color-mix(in srgb,var(--side) 52%,transparent)}
/* --- fusion strength: one knob for how much the backdrop shows through --- */
[data-backdrop=fuse][data-fuse=light] .shell{background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(8px) saturate(1.04)}
[data-backdrop=fuse][data-fuse=light] .left-sidebar,[data-backdrop=fuse][data-fuse=light] .right-sidebar{background:color-mix(in srgb,var(--side) 74%,transparent);backdrop-filter:blur(10px)}
[data-backdrop=fuse][data-fuse=light] .toolbar,[data-backdrop=fuse][data-fuse=light] .page-heading{background:color-mix(in srgb,var(--surface) 80%,transparent)}
[data-backdrop=fuse][data-fuse=strong] .shell{background:color-mix(in srgb,var(--surface) 52%,transparent);backdrop-filter:blur(9px) saturate(1.12)}
[data-backdrop=fuse][data-fuse=strong] .left-sidebar,[data-backdrop=fuse][data-fuse=strong] .right-sidebar{background:color-mix(in srgb,var(--side) 34%,transparent);backdrop-filter:blur(11px)}
[data-backdrop=fuse][data-fuse=strong] .toolbar,[data-backdrop=fuse][data-fuse=strong] .page-heading{background:color-mix(in srgb,var(--surface) 44%,transparent)}
/* a backdrop video reads better a little sharper than a still image */
[data-backdrop-video][data-backdrop=fuse] .shell{background:color-mix(in srgb,var(--surface) 58%,transparent);backdrop-filter:blur(10px) saturate(1.08)}
[data-backdrop-video][data-backdrop=fuse] .left-sidebar,[data-backdrop-video][data-backdrop=fuse] .right-sidebar{background:color-mix(in srgb,var(--side) 42%,transparent);backdrop-filter:blur(12px)}
[data-backdrop-video][data-backdrop=fuse] .toolbar,[data-backdrop-video][data-backdrop=fuse] .page-heading{background:color-mix(in srgb,var(--surface) 50%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .shell{background:color-mix(in srgb,var(--surface) 44%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .left-sidebar,[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .right-sidebar{background:color-mix(in srgb,var(--side) 28%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .shell{background:color-mix(in srgb,var(--surface) 82%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .left-sidebar,[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .right-sidebar{background:color-mix(in srgb,var(--side) 68%,transparent)}
/* tint the scrim with the palette so the video and the theme read as one image */
[data-backdrop-video][data-backdrop=fuse] body::before{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,color-mix(in srgb,var(--bg) 46%,transparent)),color-mix(in srgb,var(--bg) 72%,transparent))}
/* keep the first frame visible when autoplay is blocked */
[data-backdrop=fuse] .page-backdrop-video{opacity:1}
/* video backdrop: glass panels instead of heavy frosting, so the footage stays visible
   and sharp while the text keeps its contrast */
[data-backdrop-video][data-backdrop=fuse] .shell{background:color-mix(in srgb,var(--surface) 38%,transparent);backdrop-filter:blur(8px) saturate(1.1)}
[data-backdrop-video][data-backdrop=fuse] .left-sidebar,[data-backdrop-video][data-backdrop=fuse] .right-sidebar{background:color-mix(in srgb,var(--side) 28%,transparent);backdrop-filter:blur(9px)}
[data-backdrop-video][data-backdrop=fuse] .toolbar,[data-backdrop-video][data-backdrop=fuse] .page-heading{background:color-mix(in srgb,var(--surface) 34%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .shell{background:color-mix(in srgb,var(--surface) 28%,transparent);backdrop-filter:blur(7px) saturate(1.12)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .left-sidebar,[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .right-sidebar{background:color-mix(in srgb,var(--side) 20%,transparent);backdrop-filter:blur(8px)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .toolbar,[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .page-heading{background:color-mix(in srgb,var(--surface) 24%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .shell{background:color-mix(in srgb,var(--surface) 66%,transparent);backdrop-filter:blur(12px) saturate(1.06)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .left-sidebar,[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .right-sidebar{background:color-mix(in srgb,var(--side) 54%,transparent);backdrop-filter:blur(13px)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .toolbar,[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .page-heading{background:color-mix(in srgb,var(--surface) 60%,transparent)}
/* nudge the footage towards the palette so背景与内容像同一张图 */
[data-backdrop-video] .page-backdrop-video{filter:saturate(1.08) brightness(.94)}
[data-palette=cyberpunk][data-backdrop-video] .page-backdrop-video{filter:saturate(1.18) contrast(1.06) brightness(.92)}
/* text sits straight on the footage now: give headings and cards a light backdrop */
[data-backdrop-video][data-backdrop=fuse] .hero{box-shadow:0 10px 40px #00000059}
/* --- video backdrop levels, tuned for clarity ----------------------------- */
[data-backdrop-video][data-backdrop=fuse] .shell{background:color-mix(in srgb,var(--surface) 40%,transparent);backdrop-filter:blur(4px) saturate(1.1)}
[data-backdrop-video][data-backdrop=fuse] .left-sidebar,[data-backdrop-video][data-backdrop=fuse] .right-sidebar{background:color-mix(in srgb,var(--side) 30%,transparent);backdrop-filter:blur(5px)}
[data-backdrop-video][data-backdrop=fuse] .toolbar,[data-backdrop-video][data-backdrop=fuse] .page-heading{background:color-mix(in srgb,var(--surface) 36%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .shell{background:color-mix(in srgb,var(--surface) 66%,transparent);backdrop-filter:blur(12px) saturate(1.06)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .left-sidebar,[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .right-sidebar{background:color-mix(in srgb,var(--side) 54%,transparent);backdrop-filter:blur(13px)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .toolbar,[data-backdrop-video][data-backdrop=fuse][data-fuse=light] .page-heading{background:color-mix(in srgb,var(--surface) 60%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .shell{background:color-mix(in srgb,var(--surface) 26%,transparent);backdrop-filter:blur(2px) saturate(1.12)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .left-sidebar,[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .right-sidebar{background:color-mix(in srgb,var(--side) 18%,transparent);backdrop-filter:blur(3px)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .toolbar,[data-backdrop-video][data-backdrop=fuse][data-fuse=strong] .page-heading{background:color-mix(in srgb,var(--surface) 23%,transparent)}
/* ultra: the footage is shown as-is, only a tint and a darker scrim for legibility */
[data-backdrop-video][data-backdrop=fuse][data-fuse=ultra] .shell{background:color-mix(in srgb,var(--surface) 16%,transparent);backdrop-filter:none}
[data-backdrop-video][data-backdrop=fuse][data-fuse=ultra] .left-sidebar,
[data-backdrop-video][data-backdrop=fuse][data-fuse=ultra] .right-sidebar{background:color-mix(in srgb,var(--side) 10%,transparent);backdrop-filter:none}
[data-backdrop-video][data-backdrop=fuse][data-fuse=ultra] .toolbar,
[data-backdrop-video][data-backdrop=fuse][data-fuse=ultra] .page-heading{background:color-mix(in srgb,var(--surface) 14%,transparent)}
[data-backdrop-video][data-backdrop=fuse][data-fuse=ultra] body::before{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,color-mix(in srgb,var(--bg) 40%,transparent)),color-mix(in srgb,var(--bg) 62%,transparent))}
[data-backdrop-video][data-fuse=ultra] .article-heading h1,
[data-backdrop-video][data-fuse=ultra] .page-heading h1,
[data-backdrop-video][data-fuse=ultra] .prose,
[data-backdrop-video][data-fuse=ultra] .post-info h2,
[data-backdrop-video][data-fuse=ultra] .side-section{text-shadow:0 1px 6px color-mix(in srgb,#000 60%,transparent)}
[data-backdrop-video][data-fuse=ultra] .post-card,
[data-backdrop-video][data-fuse=ultra] .side-section{background:color-mix(in srgb,var(--surface) 42%,transparent);border-radius:12px}
/* 0.16: command deck and focused reading. */
.constellation{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.8}.command-deck{width:min(520px,calc(100vw - 32px));max-height:75dvh;margin:auto;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 30px 100px #0005}.command-deck::backdrop{background:#11251c88;backdrop-filter:blur(12px)}.command-deck header{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;letter-spacing:1px;color:var(--muted)}.command-deck header button{font-size:24px;width:36px;height:36px}.command-deck label{display:block;margin:14px 0 7px;font-size:12px}.command-deck input{width:100%;font:inherit;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--side);color:var(--text)}.command-results{max-height:40dvh;overflow:auto;margin-top:14px}.command-item{width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border-radius:10px;text-align:left;font-size:14px}.command-item small{color:var(--muted);font-size:10px}.command-item.is-selected,.command-item:hover{background:var(--tint);color:var(--accent)}.command-hint,.command-empty{font-size:11px;color:var(--muted);padding-top:15px}.reading-focus-button{display:block;margin-left:auto;margin-bottom:16px;font-size:11px;border:1px solid var(--line);border-radius:20px;padding:6px 13px;color:var(--accent)}.focus-reading .left-sidebar,.focus-reading .right-sidebar,.focus-reading .toolbar,.focus-reading .footer,.focus-reading .page-footer-code,.focus-reading .ambient,.focus-reading .constellation,.focus-reading .page-backdrop-video{display:none!important}.focus-reading .shell{display:block!important;max-width:860px!important;background:var(--surface)!important}.focus-reading .center-column{width:100%;max-height:none;height:auto;overflow:visible}.focus-reading{overflow:auto!important}.focus-reading body{height:auto;overflow:auto!important;background:var(--bg)!important}.focus-exit{position:fixed;bottom:22px;right:22px;z-index:60;padding:10px 16px;border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:var(--shadow);color:var(--accent);font-size:11px}.prose pre{position:relative}.code-copy{display:block;position:sticky;left:0;margin-top:12px;padding:5px 10px;border-radius:6px;background:var(--surface);color:var(--accent);font-size:11px}@media(max-width:680px){.command-deck{padding:18px}.focus-exit{right:12px;bottom:14px}.toolbar-actions{gap:0}}
/* 0.17: a private little library and a photo cinema. */
.bookmark-button{font-size:11px;padding:5px 10px;border:1px solid var(--line);border-radius:20px;white-space:nowrap;color:var(--accent);background:var(--surface)}.bookmark-button[aria-pressed=true]{background:var(--tint);border-color:var(--accent)}.post-meta{flex-wrap:wrap}.moment-footer .bookmark-button{font-size:10px}.reading-resume{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:13px 16px;margin-bottom:20px;border:1px solid var(--line);border-radius:12px;background:var(--side);font-size:12px}.reading-resume span{margin-right:auto;color:var(--muted)}.reading-resume button{color:var(--accent);padding:5px}.library-dialog{width:min(640px,calc(100vw - 28px));max-height:85dvh;padding:24px;margin:auto;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 30px 100px #0005}.library-dialog::backdrop{background:#11251c99;backdrop-filter:blur(12px)}.library-dialog header{display:flex;justify-content:space-between;align-items:center;gap:14px}.library-dialog header small{font-size:9px;letter-spacing:2px;color:var(--muted)}.library-dialog h2{font-size:21px;font-weight:500;margin-top:5px}.library-dialog h2 span{font-size:11px;color:var(--muted);margin-left:10px}.library-dialog header button{width:40px;height:40px;font-size:24px}.library-notice{font-size:11px;color:var(--muted);line-height:1.8;margin:14px 0}.library-filters{display:flex;gap:12px;margin:16px 0}.library-filters label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--muted)}.library-filters label:first-child{flex:1;min-width:0}.library-filters input,.library-filters select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--side);color:var(--text);font:inherit}.library-items{max-height:48dvh;overflow:auto;overscroll-behavior:contain}.library-item{display:grid;grid-template-columns:1fr auto;gap:6px 18px;padding:17px 3px;border-bottom:1px solid var(--line)}.library-item small{grid-column:1;font-size:10px;color:var(--muted)}.library-item a{grid-column:1;font-size:14px;overflow-wrap:anywhere;line-height:1.7}.library-item button{grid-column:2;grid-row:1/3;color:var(--accent);font-size:11px;padding:8px;align-self:center}.library-empty{padding:40px 15px;font-size:13px;text-align:center;color:var(--muted)}.cinema-controls{display:none;align-items:center;gap:10px;margin-left:auto}.cinema-enabled .cinema-controls{display:flex}.cinema-controls button,.lightbox-toolbar .cinema-controls button{font:inherit;min-width:44px;width:auto;height:auto;font-size:11px;padding:7px 9px;border:1px solid var(--line);border-radius:7px}.cinema-controls label{display:flex;gap:5px;align-items:center;font-size:10px}.cinema-controls select{font:inherit;padding:4px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--text)}.lightbox-toolbar button:disabled{opacity:.45;cursor:default}.lightbox-stage{touch-action:pan-y pinch-zoom}.lightbox:fullscreen{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;background:#101a16;color:#e6eee9}.lightbox:fullscreen .lightbox-stage{height:calc(100% - 60px)}.lightbox:fullscreen .lightbox-toolbar{background:#18271f}.lightbox:fullscreen .cinema-controls select{background:#18271f;color:#e6eee9}
@media(max-width:680px){.library-dialog{padding:20px 16px}.library-dialog h2{font-size:19px}.library-filters{gap:8px}.reading-resume{gap:6px;font-size:11px}.toolbar-label{letter-spacing:0}.toolbar-actions .icon-button{width:32px}.lightbox.cinema-enabled .lightbox-toolbar{height:auto;min-height:92px;flex-wrap:wrap;gap:4px 10px}.cinema-enabled .lightbox-toolbar .cinema-controls{order:4;width:100%;margin:0;justify-content:center}.cinema-enabled .lightbox-stage{height:calc(100% - 100px)}.cinema-enabled .lightbox-toolbar [data-lightbox-original]{margin-left:auto}}
/* 0.18: days and places, sharing the existing paper-and-forest palette. */
.explore-heading{background:linear-gradient(135deg,var(--surface),var(--side));position:relative}.explore-heading>small{letter-spacing:3px}.explore-heading>a{display:inline-block;margin-top:18px;font-size:11px;color:var(--accent)}.explore-content{padding:26px 30px}.explore-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:24px}.atlas-page .explore-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.explore-stat{border:1px solid var(--line);border-radius:13px;background:var(--side);padding:17px 14px;display:flex;flex-direction:column;gap:5px}.explore-stat strong{font-size:26px;font-weight:400;line-height:1.3}.explore-stat span{font-size:10px;color:var(--muted)}.explore-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:18px 0}.explore-filters label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:11px}.explore-filters .explore-search{flex:1;min-width:140px}.explore-filters input[type=search],.explore-filters select{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;padding:10px 12px;border-radius:8px;height:38px}.explore-filters button,.atlas-tools button,.atlas-places button,.explore-more{font-size:11px;padding:10px 12px;border:1px solid var(--line);background:var(--side);color:var(--accent);border-radius:8px}.explore-filters button[aria-pressed=true],.atlas-places button[aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent)}.explore-scope{font-size:10px;color:var(--muted);line-height:1.8;margin:18px 0}.journey-months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;padding:18px 12px;background:var(--side);border-radius:12px;border:1px solid var(--line);margin:22px 0}.journey-month-bar{height:95px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px;min-width:0}.journey-month-bar i{width:min(18px,100%);background:var(--accent);border-radius:4px 4px 0 0;opacity:.65}.journey-month-bar span,.journey-month-bar small{font-size:9px;color:var(--muted)}.journey-month-title{font-size:17px;letter-spacing:1px;font-weight:500;margin:30px 0 20px;color:var(--accent)}.journey-entry{position:relative;margin:0 0 18px 10px;padding:20px 22px;background:var(--side);border:1px solid var(--line);border-radius:13px}.journey-entry:before{content:"";position:absolute;top:26px;left:-15px;width:6px;height:6px;background:var(--accent);border-radius:50%}.journey-entry:after{content:"";position:absolute;top:38px;bottom:-30px;left:-12px;width:1px;background:var(--line)}.journey-entry:last-child:after{display:none}.journey-meta{display:flex;gap:10px;align-items:center;font-size:10px;color:var(--muted);margin-bottom:10px;flex-wrap:wrap}.journey-meta>span{color:var(--accent);background:var(--surface);padding:3px 7px;border-radius:4px}.journey-entry h3{font-size:15px;line-height:1.7;font-weight:500;overflow-wrap:anywhere}.journey-entry p{font-size:12px;color:var(--muted);line-height:1.8;margin-top:10px}.journey-entry>small{display:block;margin-top:12px;font-size:10px;color:var(--accent)}.journey-entry img{width:100%;max-height:280px;object-fit:contain;border-radius:8px;margin:8px 0 12px;background:var(--surface)}.explore-originals{display:flex;gap:14px;flex-wrap:wrap;padding-top:25px;font-size:11px;color:var(--accent)}.explore-more{display:block;margin:24px auto}.explore-empty{font-size:13px;color:var(--muted);text-align:center;padding:38px 12px;line-height:1.9}.atlas-map{height:360px;width:100%;border:1px solid var(--line);border-radius:14px;background:var(--side);isolation:isolate;z-index:0}.atlas-map .leaflet-control-attribution{font-size:9px}.atlas-status{font-size:11px;color:var(--muted);margin:12px 0;line-height:1.8}.atlas-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}.atlas-tools span{font-size:10px;color:var(--muted)}.atlas-tools button:disabled{opacity:.4}.atlas-places{display:flex;gap:7px;flex-wrap:wrap;padding:15px 0}.atlas-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.atlas-photo{border:1px solid var(--line);border-radius:12px;background:var(--side);overflow:hidden;min-width:0}.atlas-photo img{width:100%;height:165px;object-fit:contain;background:var(--surface)}.atlas-photo h3{font-size:13px;font-weight:500;padding:12px 13px 4px;overflow-wrap:anywhere}.atlas-photo p{font-size:10px;color:var(--muted);padding:0 13px 14px}.atlas-unmapped{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.atlas-unmapped summary{cursor:pointer;color:var(--accent)}.atlas-unmapped p{line-height:1.8;margin:15px 0}.atlas-unmapped [data-unmapped-list]>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line)}.atlas-unmapped code{font-size:10px;overflow-wrap:anywhere}.atlas-unmapped button{font-size:10px;color:var(--accent);margin-left:auto;white-space:nowrap}.explore-filters label.atlas-route{flex-direction:row;align-items:center;height:38px;gap:6px}.explore-navigation .menu-tree{padding-top:0;padding-bottom:15px}
@media(max-width:680px){.explore-content{padding:22px 18px}.explore-stat{padding:13px 10px}.explore-stat strong{font-size:23px}.explore-stats{gap:7px}.explore-filters{gap:8px}.explore-filters .explore-search{min-width:100%;order:4}.journey-entry{padding:18px 17px}.journey-months{gap:3px;padding:14px 8px}.journey-month-bar small{font-size:8px}.atlas-map{height:300px}.atlas-photo img{height:130px}.atlas-photo h3{font-size:12px}.atlas-tools span{width:100%}}
/* 0.19: personal reading room and seasonal atmosphere. */
:root{--reader-font:16px;--reader-line:1.95;--reader-width:840px}.reading-card{max-width:var(--reader-width);width:100%;margin-inline:auto}.reading-card .prose{font-size:var(--reader-font);line-height:var(--reader-line)}.reading-card .prose h2{font-size:calc(var(--reader-font)*1.45)}.reading-card .prose h3{font-size:calc(var(--reader-font)*1.2)}.reading-card .prose pre{font-size:calc(var(--reader-font)*.8)}[data-reader-family=serif] .reading-card .prose{font-family:"Songti SC","Noto Serif CJK SC",Georgia,serif}.focus-reading .shell{max-width:var(--reader-width)!important}[data-reader-paper=sepia] .reading-card{--surface:#faf3e5;--side:#f2e9d7;--text:#493f32;--muted:#7d705c;--line:#ded2bd;--tint:#e7e3c9;background:var(--surface);color:var(--text)}[data-reader-paper=night] .reading-card{--surface:#222c28;--side:#2b3731;--text:#e2e8e3;--muted:#a5b5aa;--line:#425248;--tint:#344e3e;--accent:#8fcaa9;background:var(--surface);color:var(--text)}.reader-appearance-button{font-size:11px;color:var(--accent);padding:6px 12px;border:1px solid var(--line);border-radius:20px;margin-top:16px}.seasonal-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.personal-panel{width:min(560px,calc(100vw - 28px));max-height:88dvh;margin:auto;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 30px 110px #0005;overscroll-behavior:contain}.personal-panel::backdrop{background:#14271f99;backdrop-filter:blur(10px)}.personal-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.personal-panel h2{font-size:22px;font-weight:500;margin:5px 0 0}.personal-panel header small{font-size:9px;letter-spacing:2px;color:var(--muted)}.personal-panel header button{width:38px;height:38px;font-size:25px}.personal-panel fieldset{border:0;border-top:1px solid var(--line);padding:17px 0;margin:20px 0 0;min-width:0}.personal-panel legend{padding-right:10px;font-size:13px;color:var(--accent)}.personal-panel p{font-size:11px;line-height:1.8;color:var(--muted);margin:8px 0 14px}.personal-panel label{display:flex;flex-wrap:wrap;gap:7px;font-size:12px;align-items:center;margin:11px 0;color:var(--muted)}.personal-panel output{margin-left:auto;color:var(--accent);font-variant-numeric:tabular-nums}.personal-panel input[type=range]{width:100%;accent-color:var(--accent)}.personal-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.personal-grid label{flex-direction:column;align-items:stretch}.personal-panel select{font:inherit;color:var(--text);padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--side);min-width:0;width:100%}.personal-panel section button,.personal-panel fieldset button,.personal-bottom>button{font-size:11px;padding:8px 12px;background:var(--side);color:var(--accent);border:1px solid var(--line);border-radius:7px}.personal-backup{border-top:1px solid var(--line);padding-top:20px}.personal-backup h3{font-size:13px;font-weight:500}.personal-backup .backup-file{font-size:11px;display:block}.backup-file input{display:block;font:inherit;max-width:100%;margin-top:8px}.personal-bottom{padding-top:16px}.personal-bottom p{margin-bottom:0;min-height:20px}.station-status{background:var(--side)}.station-note{font-size:12px;line-height:1.9;white-space:pre-line;overflow-wrap:anywhere}.station-status dl{margin:15px 0}.station-status dt{font-size:9px;color:var(--muted);margin-top:12px}.station-status dd{font-size:12px;line-height:1.8;margin:4px 0 0;overflow-wrap:anywhere}.station-updated{font-size:9px;color:var(--muted);display:block;margin-top:16px}.mobile-status{display:none}.without-right .mobile-status{display:block}.mobile-status .station-status{margin:20px 30px;border:1px solid var(--line);border-radius:13px;padding:22px}.mobile-status .station-status dl{display:grid;grid-template-columns:80px 1fr;gap:8px}.mobile-status .station-status dt,.mobile-status .station-status dd{margin:0}.lightbox-thumbnails{display:none;height:64px;gap:7px;align-items:center;overflow-x:auto;padding:7px 16px;border-top:1px solid var(--line);overscroll-behavior:contain}.cinema-enabled .lightbox-thumbnails{display:flex}.lightbox-thumbnails button{width:62px;min-width:62px;height:44px;border:2px solid transparent;border-radius:6px;overflow:hidden;opacity:.6}.lightbox-thumbnails button[aria-current=true]{border-color:var(--accent);opacity:1}.lightbox-thumbnails img{width:100%;height:100%;object-fit:cover}.cinema-enabled .lightbox-stage{height:calc(100% - 124px)}.lightbox.is-zoomed .lightbox-stage figure{display:block;overflow:auto;touch-action:pan-x pan-y pinch-zoom}.lightbox.is-zoomed .lightbox-stage img{max-width:none;max-height:none;min-width:150%;width:auto;height:auto;margin:0}.lightbox.is-zoomed .lightbox-stage{touch-action:pan-x pan-y pinch-zoom}.lightbox.is-zoomed figcaption{padding:12px}.lightbox:fullscreen.cinema-enabled .lightbox-stage{height:calc(100% - 124px)}.toolbar-start{min-width:0}.toolbar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-actions,.mobile-menu{flex-shrink:0}
@media(max-width:980px){.mobile-status{display:block}}@media(max-width:680px){.personal-panel{padding:20px 17px}.personal-panel h2{font-size:20px}.personal-grid{gap:0 10px}.mobile-status .station-status{margin:18px 20px;padding:18px}.cinema-enabled .lightbox-stage,.lightbox:fullscreen.cinema-enabled .lightbox-stage{height:calc(100% - 164px)}.cinema-controls{gap:5px}.lightbox-toolbar .cinema-controls button{font-size:10px;padding:6px}.toolbar-actions .icon-button{width:30px}.toolbar-label{font-size:9px}}
@media(prefers-reduced-motion:reduce){.seasonal-canvas{display:none!important}}

/* 0.20 — subscription, guestbook and truthful article graph */
.community-content{padding:24px}.subscribe-hero{display:flex;gap:22px;align-items:center;padding:25px;background:var(--tint);border-radius:22px;margin-bottom:22px}.subscribe-hero h2{margin:0 0 10px}.subscribe-hero p,.subscription-card p,.community-hint,.community-help,.graph-detail p{color:var(--muted);line-height:1.8}.community-orbit{font-size:64px;color:var(--accent)}.subscription-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.subscription-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.subscription-card small{letter-spacing:.12em;color:var(--accent)}.subscription-card a{display:block;color:var(--accent);margin:20px 0 12px}.subscription-card button,.graph-filters button,.graph-tools button,.graph-list button{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:9px 14px;border-radius:12px;cursor:pointer}.subscription-card button:hover,.graph-tools button:hover{background:var(--tint)}.community-help{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:16px}.community-help summary{cursor:pointer;color:var(--text)}.community-empty{padding:24px;background:var(--tint);border-radius:18px;line-height:1.8}.newsletter-link{display:block;margin-top:18px;color:var(--accent)}.newsletter-link[hidden]{display:none}.guestbook-welcome{padding:32px;border-radius:24px;background:linear-gradient(135deg,var(--tint),var(--surface));border:1px solid var(--line)}.guestbook-welcome>span{font-size:44px;color:var(--accent)}.guestbook-welcome p{line-height:2;font-size:17px}.guestbook-topics{display:flex;flex-wrap:wrap;gap:10px}.guestbook-topics span{padding:8px 12px;border-radius:20px;background:var(--surface);color:var(--muted);font-size:13px}.guestbook-comments.comments{margin:26px 0 0;padding:24px;border:1px solid var(--line);border-radius:22px}.community-hint{font-size:13px}.graph-filters{display:flex;flex-wrap:wrap;gap:10px}.graph-filters input,.graph-filters select{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:11px;min-width:0}.graph-filters input{flex:1;min-width:160px}.graph-summary{color:var(--muted);margin:18px 0;font-size:13px}.graph-legend{display:flex;gap:18px;font-size:12px;color:var(--muted)}.graph-legend span:first-child{color:var(--accent)}.graph-legend span:nth-child(2){color:#b8843c}.graph-legend span:nth-child(3){color:#8a79bf}.graph-stage{position:relative;margin-top:12px;background:radial-gradient(ellipse at center,var(--tint),var(--surface));border:1px solid var(--line);border-radius:22px;overflow:hidden}.graph-stage svg{display:block;width:100%;height:auto;min-height:300px;touch-action:pan-y;cursor:grab}.graph-stage line{stroke:var(--accent);stroke-opacity:.2;stroke-width:1.3}.graph-node{cursor:pointer;outline:none}.graph-node circle{fill:var(--accent);stroke:var(--surface);stroke-width:3}.graph-category circle{fill:#b8843c}.graph-tag circle{fill:#8a79bf}.graph-node text{fill:var(--text);font-size:13px;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.graph-node:focus circle,.graph-node:hover circle{stroke:var(--text);stroke-width:4px}.graph-dim{opacity:.12}.graph-tools{position:absolute;right:12px;bottom:12px;display:flex;gap:6px}.graph-tools button{padding:8px 11px}.graph-detail{padding:18px 0;border-bottom:1px solid var(--line);min-height:100px}.graph-detail h2{font-size:19px;margin:0 0 12px}.graph-detail a{color:var(--accent)}.graph-list-row{display:flex;gap:16px;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.graph-list-row a{min-width:0;overflow-wrap:anywhere}.graph-list-row button{flex-shrink:0}.community-page button:focus-visible,.community-page a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(max-width:600px){.community-content{padding:16px}.subscription-grid{grid-template-columns:1fr}.subscribe-hero{padding:20px;gap:14px}.community-orbit{font-size:42px}.subscribe-hero h2{font-size:20px}.guestbook-welcome{padding:22px}.guestbook-comments.comments{padding:16px}.graph-stage svg{min-height:320px}.graph-filters select{flex:1}.graph-node text{font-size:16px}}
.graph-node{pointer-events:bounding-box}

/* 0.21: discoveries, reading trails and local article art direction */
.discover-content{padding:28px}.discover-kicker{font-size:11px;letter-spacing:.2em;color:var(--accent);margin-bottom:14px}.wander-section{padding:26px;border-radius:26px;background:linear-gradient(135deg,var(--tint),var(--surface));border:1px solid var(--line)}.wander-section h2,.trail-section h2{font-size:24px;letter-spacing:-.03em;line-height:1.5}.wander-section>p{color:var(--muted);line-height:1.8}.wander-button{padding:14px 22px;border:0;border-radius:30px;background:var(--accent);color:#fff;cursor:pointer;font:inherit}.wander-result:empty{display:none}.wander-card{display:grid;grid-template-columns:110px 1fr;gap:20px;align-items:center;padding:20px;margin:22px 0;background:var(--surface);border:1px solid var(--line);border-radius:20px;animation:mori-reveal .45s ease both}.wander-card:not(:has(img)){grid-template-columns:1fr}.wander-card img{width:110px;height:130px;object-fit:cover;border-radius:12px}.wander-card small{color:var(--muted);font-size:10px;letter-spacing:.15em}.wander-card h3{font-size:22px;line-height:1.5;margin:12px 0}.wander-card span{font-size:13px;color:var(--accent)}.trail-section{padding-top:38px}.trail-filters{display:flex;gap:16px;flex-wrap:wrap;margin:24px 0}.trail-filters label{display:grid;gap:8px;flex:1;font-size:13px;color:var(--muted)}.trail-filters select{padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:var(--surface);min-width:0;width:100%}.trail-summary{font-size:13px;color:var(--muted)}.trail-progress{height:4px;background:var(--line);border-radius:4px;overflow:hidden;margin:16px 0}.trail-progress span{display:block;height:100%;background:var(--accent)}.trail-list{list-style:none;padding:0;margin:0}.trail-stop{position:relative;display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.trail-number{font-family:Georgia,serif;font-size:24px;color:var(--muted)}.trail-stop>a{line-height:1.7}.trail-stop label{display:flex;gap:8px;font-size:12px;align-items:center;color:var(--muted)}.trail-stop input{accent-color:var(--accent);width:16px;height:16px}.trail-stop small{grid-column:2/-1;color:var(--accent)}.trail-current{background:var(--tint)}.trail-done .trail-number{color:var(--accent)}.trail-clear{background:transparent;color:var(--muted);border:1px solid var(--line);padding:10px 15px;border-radius:12px;margin:20px 0;cursor:pointer}.article-route-link{display:flex;justify-content:space-between;gap:16px;padding:22px;margin:20px 0;background:var(--tint);border:1px solid var(--line);border-radius:18px}.article-route-link small{color:var(--muted)}.article-route-link span{color:var(--accent)}
.reading-card[data-article-atmosphere=meadow]{--accent:#328365;background-image:radial-gradient(ellipse at 100% 0%,#75cbaa25,transparent 55%)}.reading-card[data-article-atmosphere=ocean]{--accent:#398baa;background-image:radial-gradient(ellipse at 100% 0%,#4ba9d82b,transparent 60%)}.reading-card[data-article-atmosphere=twilight]{--accent:#a17cb5;background-image:radial-gradient(ellipse at 100% 0%,#bc85d92a,transparent 60%)}.reading-card[data-article-atmosphere=parchment]{--accent:#ad8053;background-image:radial-gradient(ellipse at 100% 0%,#dcaf7526,transparent 65%)}.reading-card[data-article-atmosphere]:not([data-article-atmosphere=inherit]) .article-heading{border-top:3px solid var(--accent)}.reading-card[data-article-atmosphere]:not([data-article-atmosphere=inherit]) .article-heading h1{letter-spacing:-.035em}.reading-card[data-article-atmosphere]:not([data-article-atmosphere=inherit]) .article-cover{border-radius:18px}
@keyframes mori-reveal{from{opacity:0;transform:translateY(10px) rotateX(12deg)}to{opacity:1;transform:none}}
/* Layout styles are independent from palette and light/dark appearance. */
html[data-ui=editorial] .shell{border-radius:0;box-shadow:none;border-top:5px solid var(--accent)}html[data-ui=editorial] .toolbar{border-bottom:1px solid var(--text)}html[data-ui=editorial] .page-heading h1,html[data-ui=editorial] .article-heading h1{font-family:Georgia,"Noto Serif SC","Songti SC",serif;font-size:clamp(28px,3vw,42px);letter-spacing:-.04em;line-height:1.4}html[data-ui=editorial] :is(.post-card,.widget,.reading-card,.wander-section,.guestbook-welcome,.subscription-card){border-radius:3px;box-shadow:none}html[data-ui=editorial] .post-card{border-bottom:1px solid var(--text)}html[data-ui=editorial] .post-card:hover{transform:translateY(-2px)}html[data-ui=editorial] .post-cover{border-radius:0}html[data-ui=editorial] .menu-tree a{border-radius:0;border-left:2px solid transparent}html[data-ui=editorial] .menu-tree a.active{border-left-color:var(--accent)}html[data-ui=editorial] .page-heading small{letter-spacing:.28em}
html[data-ui=glass] .shell{border-radius:30px;border:1px solid var(--line);box-shadow:0 20px 70px #172c3b18;background:var(--surface)}html[data-ui=glass] .left-sidebar,html[data-ui=glass] .right-sidebar{background:linear-gradient(150deg,var(--tint),transparent)}html[data-ui=glass] :is(.post-card,.widget,.reading-card,.wander-section,.subscription-card){border-radius:24px;border:1px solid var(--line);box-shadow:0 8px 28px #172c3b08}html[data-ui=glass] .toolbar{background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(12px)}html[data-ui=glass] .page-heading{background:radial-gradient(ellipse at 90% 0%,var(--tint),transparent 65%)}html[data-ui=glass] .menu-tree a{border-radius:16px}html[data-ui=glass] .post-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px #172c3b15}html[data-ui=glass] .article-cover{border-radius:20px}
@media(max-width:600px){.discover-content{padding:16px}.wander-section{padding:20px}.wander-section h2,.trail-section h2{font-size:21px}.wander-card{grid-template-columns:75px 1fr;padding:14px;gap:14px}.wander-card img{width:75px;height:100px}.wander-card h3{font-size:18px}.trail-stop{grid-template-columns:28px 1fr;gap:10px}.trail-stop label{grid-column:2}.article-route-link{flex-wrap:wrap}html[data-ui=glass] .shell{border-radius:0}}@media(prefers-reduced-motion:reduce){.wander-card{animation:none}html[data-ui] .post-card:hover{transform:none}}
html[data-reader-paper=sepia] .reading-card[data-article-atmosphere],html[data-reader-paper=night] .reading-card[data-article-atmosphere]{background-image:none}
.trail-next{display:block;margin:16px 0;color:var(--accent);font-size:14px;line-height:1.8}.trail-next[hidden]{display:none}.discover-page :is(button,a,select,input):focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.wander-card h3{color:var(--text)}html[data-color-scheme=dark] :is(.discover-kicker,.wander-card span,.trail-next,.article-route-link span){color:color-mix(in srgb,var(--accent) 60%,var(--text))}html[data-color-scheme=dark][data-ui=editorial] .menu-tree a.active,html[data-color-scheme=dark][data-ui=glass] .menu-tree a.active{color:color-mix(in srgb,var(--accent) 60%,var(--text))}

/* 0.22 — opt-in layout controls. Mobile remains a single column with a navigation drawer. */
html[data-layout-enabled=true] .shell{max-width:var(--layout-max-width);border-radius:var(--layout-card-radius)}
html[data-layout-enabled=true] :is(.post-card,.moment-card,.photo-tile,.quote-card,.reading-card,.subscription-card,.wander-section,.guestbook-welcome,.graph-stage){border-radius:var(--layout-card-radius)}
html[data-layout-enabled=true] :is(.post-list,.discover-content,.community-content,.explore-content){padding-inline:var(--layout-content-gap)}
html[data-layout-enabled=true] :is(.reading-card,.page-heading){padding-inline:var(--layout-content-gap)}
html[data-layout-enabled=true] .hero{min-height:var(--layout-hero-height)}
html[data-layout-enabled=true][data-layout-excerpt=false] .post-excerpt,html[data-layout-enabled=true][data-layout-footer=false] .footer{display:none}
html[data-layout-enabled=true][data-layout-density=compact] .post-card{padding-block:16px;gap:14px}html[data-layout-enabled=true][data-layout-density=airy] .post-card{padding-block:36px;gap:28px}
html[data-layout-enabled=true][data-layout-cover=none] .post-cover{display:none}
html[data-layout-enabled=true][data-layout-cover=right] .post-card{flex-direction:row-reverse}
html[data-layout-enabled=true][data-layout-cover=top] .post-card{flex-direction:column;align-items:stretch}
html[data-layout-enabled=true][data-layout-cover=top] .post-cover{width:100%;height:210px;flex-basis:auto}
html[data-layout-enabled=true] .post-info{min-width:0}
@media(min-width:981px){
 html[data-layout-enabled=true] body{padding:var(--layout-top-gap) var(--layout-outer-gap)}
 html[data-layout-enabled=true] .shell{display:grid;grid-template-columns:min(var(--layout-nav-width),22%) minmax(0,1fr) min(var(--layout-widget-width),24%);grid-template-areas:'nav content widgets'}
 html[data-layout-enabled=true] .left-sidebar{grid-area:nav}html[data-layout-enabled=true] .center-column{grid-area:content}html[data-layout-enabled=true] .right-sidebar{grid-area:widgets}
 html[data-layout-enabled=true][data-layout-side=right] .shell{grid-template-columns:min(var(--layout-widget-width),24%) minmax(0,1fr) min(var(--layout-nav-width),22%);grid-template-areas:'widgets content nav'}
 html[data-layout-enabled=true][data-layout-columns=navigation] .shell{grid-template-columns:min(var(--layout-nav-width),22%) minmax(0,1fr);grid-template-areas:'nav content'}
 html[data-layout-enabled=true][data-layout-columns=navigation][data-layout-side=right] .shell{grid-template-columns:minmax(0,1fr) min(var(--layout-nav-width),22%);grid-template-areas:'content nav'}
 html[data-layout-enabled=true][data-layout-columns=widgets] .shell{grid-template-columns:minmax(0,1fr) min(var(--layout-widget-width),24%);grid-template-areas:'content widgets'}
 html[data-layout-enabled=true][data-layout-columns=widgets][data-layout-side=right] .shell{grid-template-columns:min(var(--layout-widget-width),24%) minmax(0,1fr);grid-template-areas:'widgets content'}
 html[data-layout-enabled=true][data-layout-columns=single] .shell{grid-template-columns:minmax(0,1fr);grid-template-areas:'content'}
 html[data-layout-enabled=true][data-layout-columns=navigation] .right-sidebar,html[data-layout-enabled=true][data-layout-columns=single] .right-sidebar{display:none}
}
@media(min-width:681px) and (max-width:980px){
 html[data-layout-enabled=true] .shell{display:grid;grid-template-columns:min(var(--layout-nav-width),25%) minmax(0,1fr);grid-template-areas:'nav content'}
 html[data-layout-enabled=true] .left-sidebar{grid-area:nav}html[data-layout-enabled=true] .center-column{grid-area:content}
 html[data-layout-enabled=true][data-layout-side=right] .shell{grid-template-columns:minmax(0,1fr) min(var(--layout-nav-width),25%);grid-template-areas:'content nav'}
 html[data-layout-enabled=true][data-layout-columns=widgets] .shell,html[data-layout-enabled=true][data-layout-columns=single] .shell{grid-template-columns:minmax(0,1fr);grid-template-areas:'content'}
}
@media(min-width:681px){
 html[data-layout-enabled=true][data-layout-columns=widgets] .left-sidebar,html[data-layout-enabled=true][data-layout-columns=single] .left-sidebar{display:none;grid-area:auto}
 html[data-layout-enabled=true][data-layout-columns=widgets] .mobile-menu,html[data-layout-enabled=true][data-layout-columns=single] .mobile-menu{display:grid}
 html[data-layout-enabled=true][data-layout-columns=widgets].nav-open .left-sidebar,html[data-layout-enabled=true][data-layout-columns=single].nav-open .left-sidebar{display:block;position:fixed;inset:0 auto 0 0;width:280px;overflow:auto;z-index:65;box-shadow:20px 0 60px #0005;background:var(--side)}
 html[data-layout-enabled=true][data-layout-side=right] .left-sidebar{border-right:0;border-left:1px solid var(--line)}
 html[data-layout-enabled=true][data-layout-side=right] .right-sidebar{border-left:0;border-right:1px solid var(--line)}
}
@media(max-width:680px){html[data-layout-enabled=true] .shell{display:block;border-radius:0}html[data-layout-enabled=true] :is(.post-list,.discover-content,.community-content,.explore-content,.reading-card,.page-heading){padding-inline:clamp(16px,var(--layout-content-gap),24px)}html[data-layout-enabled=true] .hero{min-height:min(var(--layout-hero-height),320px)}html[data-layout-enabled=true][data-layout-density=airy] .post-card{padding-block:26px;gap:16px}}
html[data-layout-enabled=true].focus-reading .shell{display:block!important}
@media(min-width:981px){html[data-layout-enabled=true] .shell{min-height:calc(100vh - var(--layout-top-gap)*2)}html[data-layout-enabled=true] .left-sidebar.is-pinned,html[data-layout-enabled=true] .right-sidebar.is-pinned{top:var(--layout-top-gap);height:calc(100vh - var(--layout-top-gap)*2)}}
html[data-layout-enabled=true][data-layout-columns=widgets].nav-open .left-sidebar,html[data-layout-enabled=true][data-layout-columns=single].nav-open .left-sidebar{height:auto;max-height:100dvh}
