:root{--bg:#102630;--side:#0d202a;--panel:#102630f5;--ink:#ecf1ee;--muted:#b6c8cd;--line:#45616a80;--accent:#ff4444;--accent-line:#ff3030;--code:#071d28;color-scheme:dark}
@media(prefers-color-scheme:light){:root:not([data-theme]){--bg:#edf1ef;--side:#e7ece9;--panel:#f0f2f0f5;--ink:#24363b;--muted:#52656a;--line:#7e929580;--accent:#b51f24;--accent-line:#b51f24;--code:#dde6e5;color-scheme:light}}
:root[data-theme=light]{--bg:#edf1ef;--side:#e7ece9;--panel:#f0f2f0f5;--ink:#24363b;--muted:#52656a;--line:#7e929580;--accent:#b51f24;--accent-line:#b51f24;--code:#dde6e5;color-scheme:light}
:root[data-theme=dark]{color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--bg);font-family:ui-monospace,"SFMono-Regular","SF Mono",Menlo,Consolas,"Liberation Mono","Noto Serif SC","Songti SC",SimSun,monospace,serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{font:inherit}.brand,.mobile-brand,.welcome h1,.welcome a:nth-child(3),time,pre,.post-category{font-family:ui-monospace,"SFMono-Regular","SF Mono",Menlo,Consolas,"Liberation Mono",monospace}
.welcome{min-height:100svh;background:#000;color:#fff}.welcome-main{position:relative;min-height:100svh;background-image:linear-gradient(to right,#000 0,transparent min(960px,67vw)),url('/static/welcome.jpg');background-size:cover;background-position:center}.welcome-art{display:none}.welcome-nav{position:relative;padding:clamp(120px,21vh,185px) 0 80px 64px;width:388px}.welcome h1{font-size:22px;line-height:1.5;font-weight:400;margin:0 0 30px}.welcome nav a{width:324px;min-height:74px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff36;font-size:22px}.welcome nav a:last-child{border-bottom:1px solid #ffffff36}.welcome nav a.primary{font-size:26px;color:#ff4444}.welcome nav a:hover{color:#ff4444}.welcome nav span{font-family:ui-monospace,monospace}
.blog-page{min-height:100svh;background:var(--bg) url('/static/blog.jpg') center center / cover fixed}.sidebar{position:fixed;z-index:3;inset:0 auto 0 0;width:220px;background:var(--side);border-right:1px solid var(--line);padding:40px 24px}.brand{display:block;font-size:24px;margin:2px 0 12px}.sidebar nav{display:grid;gap:8px}.nav-link{display:block;padding:13px 12px;border-left:2px solid transparent;font-size:15px;color:var(--muted)}.nav-link:hover{color:var(--accent)}.nav-link.active{border-color:var(--accent-line);color:var(--ink)}.content-shell{margin-left:220px;width:min(1020px,calc(100% - 220px));min-height:100svh;background:var(--panel);border-right:1px solid var(--line)}.topbar{height:88px;display:flex;align-items:center;justify-content:flex-end;padding:0 56px}.mobile-brand{display:none}#theme-toggle{border:0;background:none;color:var(--muted);cursor:pointer;padding:7px 0;font-size:15px}#theme-toggle:hover{color:var(--accent)}#main{padding:0 56px 100px}.page-title{font-size:32px;font-weight:400;padding:8px 0 28px;border-bottom:1px solid var(--line);margin:0}.post-row{display:grid;grid-template-columns:64px minmax(0,1fr) 80px;gap:24px;align-items:start;padding:48px 0;border-bottom:1px solid var(--line);min-height:164px}.post-row:last-child{border-bottom:0}.post-row:hover strong{color:var(--accent)}.post-row time,.post-category{font-size:13px;color:var(--muted);padding-top:3px}.post-summary{display:grid;gap:12px}.post-summary strong{font-size:22px;font-weight:400}.post-summary small{font-size:16px;color:var(--muted);line-height:1.6}.post-category{text-align:right;font-family:"Noto Serif SC","Songti SC",SimSun,serif}.empty{color:var(--muted);padding:35px 0}.back-link{font-size:15px;color:var(--muted)}.back-link:hover,.prose a:hover{color:var(--accent)}.article{margin-top:42px}.article h1{font-weight:400;font-size:38px;line-height:1.4;margin:0 0 22px}.article-meta{color:var(--muted);font-size:15px;margin:0;padding-bottom:34px;border-bottom:1px solid var(--line)}.article-body{max-width:680px;padding-top:34px;font-size:18px;line-height:2.1}.article-body p{margin:0 0 28px}.article-body h2{font-size:24px;font-weight:400;line-height:1.5;margin:32px 0 26px}.article-body h3{font-size:20px;font-weight:400}.article-body blockquote{border-left:2px solid var(--accent-line);background:#ffffff12;padding:15px 24px;margin:28px 0}.article-body pre{background:var(--code);overflow:auto;padding:24px;font-size:14px;line-height:1.7}.bottom-link{display:block;border-top:1px solid var(--line);padding-top:35px;margin-top:46px;color:var(--accent)}.prose{font-size:18px;line-height:2;max-width:680px;padding-top:30px}.prose a{color:var(--accent)}
.article-body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.article-body ul,.article-body ol{padding-left:1.5em;margin:0 0 28px}.article-body li{padding-left:.2em}.article-body img{max-width:100%;height:auto}.article-body :not(pre)>code{background:var(--code);padding:.1em .3em;font-size:.85em}.article-body table{border-collapse:collapse;display:block;overflow-x:auto;margin:0 0 28px;font-size:16px}.article-body th,.article-body td{border:1px solid var(--line);padding:8px 12px;text-align:left}.article-body pre code{font:inherit}
@media(max-width:700px){.welcome-main{display:flex;flex-direction:column;background:#000;min-height:100svh}.welcome-art{display:block;width:100%;height:52svh;min-height:350px;background:url('/static/welcome.jpg') 65% center / cover}.welcome-nav{width:100%;padding:30px 28px 90px;background:#102337}.welcome h1{font-size:20px;margin:0 0 25px}.welcome nav a{width:100%;min-height:56px;font-size:19px}.welcome nav a.primary{font-size:20px}.sidebar{display:none}.content-shell{margin:0;width:100%;border:0;min-height:100svh}.topbar{height:76px;padding:0 24px;justify-content:space-between;border-bottom:1px solid var(--line)}.mobile-brand{display:block;font-size:23px}#main{padding:30px 24px 75px}.page-title{font-size:29px}.post-row{grid-template-columns:1fr auto;gap:12px;padding:28px 0;min-height:auto}.post-row time{grid-column:1/-1}.post-summary strong{font-size:20px}.post-summary small{font-size:15px}.post-category{align-self:start}.article{margin-top:35px}.article h1{font-size:30px}.article-body{font-size:17px}.article-body h2{font-size:22px}}
