:root{--brand-primary: #c1121f;--brand-primary-soft: #fff1f3;--brand-ink: #121316;--brand-muted: #4e535f;--brand-line: #dbe0e8;--brand-bg: #f5f7fb;--brand-surface: #ffffff;--focus-ring: #8b0000;--font-sans: "Manrope", "Noto Sans SC", "PingFang SC", sans-serif;--radius: 16px;--radius-pill: 999px;--target-min: 44px;--target-topbar: 38px;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--bg: var(--brand-bg);--ink: var(--brand-ink);--muted: var(--brand-muted);--line: var(--brand-line);--card: var(--brand-surface);--accent: var(--brand-primary);--accent-soft: var(--brand-primary-soft);--panel-shadow: 0 10px 30px rgba(14, 26, 48, .06);--body-bg: radial-gradient(1200px 320px at 10% -120px, #ffe8eb 0%, transparent 50%), linear-gradient(180deg, #ffffff 0%, var(--bg) 42%, #ffffff 100%);--topbar-bg: rgba(255, 255, 255, .86);--chip-bg: #f7f9fc;--chip-border: #e8edf5;--chip-text: #5c6373;--surface-soft: #f8fafd;--code-bg: #f4f7fb;--code-border: #dce4f2;--inline-code-bg: #f2f6fb;--inline-code-border: #e0e7f5;--inline-code-text: #1f2d4f}html[data-theme=dark]{--brand-primary: #ff6b7d;--brand-primary-soft: #39222a;--brand-ink: #edf1f8;--brand-muted: #b0b9c8;--brand-line: #2a3240;--brand-bg: #0f131a;--brand-surface: #141a24;--focus-ring: #ff8c9a;--panel-shadow: 0 16px 34px rgba(2, 8, 20, .35);--body-bg: radial-gradient(1200px 320px at 10% -120px, rgba(255, 88, 117, .16) 0%, transparent 50%), linear-gradient(180deg, #0c1017 0%, var(--bg) 42%, #0c1017 100%);--topbar-bg: rgba(15, 20, 29, .88);--chip-bg: #1b2230;--chip-border: #2b3443;--chip-text: #b4bdcd;--surface-soft: #121824;--code-bg: #0f1624;--code-border: #2a3448;--inline-code-bg: #1c2433;--inline-code-border: #2e394d;--inline-code-text: #d5deec;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--body-bg);color:var(--ink);line-height:1.6}a{color:inherit}img{max-width:100%;display:block}.skip-link{position:absolute;left:var(--space-3);top:-120px;z-index:200;background:var(--ink);color:#fff;padding:var(--space-2) var(--space-3);border-radius:12px;text-decoration:none;font-size:.82rem;font-weight:700}.skip-link:focus-visible{top:var(--space-3)}.sr-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}html[data-lang=en] .lang-zh,html[data-lang=zh] .lang-en{display:none!important}.topbar{position:sticky;top:0;z-index:30;backdrop-filter:blur(10px);background:var(--topbar-bg);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1360px;margin:0 auto;padding:.34rem 1rem;display:grid;grid-template-areas:"brand nav actions";grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem}.brand{grid-area:brand;display:inline-flex;align-items:center;gap:.38rem;text-decoration:none;color:var(--ink);justify-self:start}.brand-mark{width:24px;height:24px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;letter-spacing:.02em;flex:0 0 24px}.brand-mark-text{background:var(--accent);color:#fff}.brand-mark-image{border:1px solid var(--line);object-fit:cover}.brand-text{font-size:.9rem;font-weight:700;letter-spacing:.01em;white-space:nowrap}.nav{grid-area:nav;display:flex;justify-content:center;flex-wrap:nowrap;gap:.72rem;width:auto}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:var(--target-topbar);text-decoration:none;color:var(--muted);font-size:.84rem;font-weight:600;border-bottom:2px solid transparent;padding:.1rem .05rem;text-align:center;flex:0 0 auto;white-space:nowrap}.nav-link.active,.nav-link:hover{color:var(--ink);border-bottom-color:var(--accent)}.lang-switch,.theme-switch{display:inline-flex;border-radius:var(--radius-pill);border:1px solid var(--line);overflow:hidden;background:var(--card)}.lang-switch button,.theme-switch button{min-width:40px;min-height:var(--target-topbar);border:0;background:transparent;color:var(--muted);font-size:.74rem;padding:.2rem .42rem;cursor:pointer}.lang-switch button.active,.theme-switch button.active{background:var(--accent-soft);color:var(--accent);font-weight:700}.topbar-actions{grid-area:actions;display:inline-flex;align-items:center;gap:.3rem;justify-self:end}.rss-link{display:inline-flex;align-items:center;gap:.22rem;min-height:var(--target-topbar);text-decoration:none;color:var(--chip-text);font-size:.72rem;font-weight:700;padding:.14rem .36rem;border:1px solid var(--chip-border);border-radius:var(--radius-pill);background:var(--chip-bg)}.rss-link img{width:14px;height:14px}.rss-link:hover{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 40%,var(--chip-border))}.page-shell{max-width:1360px;margin:0 auto;padding:.8rem clamp(.8rem,2vw,1.25rem) 1.8rem}.hero{padding:.95rem 1rem;border-radius:22px;background:var(--card);border:1px solid var(--line);box-shadow:var(--panel-shadow)}.hero h1{margin:0;font-size:clamp(1.5rem,2.8vw,2.2rem);line-height:1.18}.hero p{margin:.52rem 0 0;color:var(--muted);font-size:.96rem}.section{margin-top:.82rem}.first-section{margin-top:0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;margin-bottom:.46rem}.section-title{margin:0;font-size:1.1rem;font-weight:700;letter-spacing:.01em}.section-more{color:var(--muted);text-decoration:none;font-size:.8rem;font-weight:700;min-height:var(--target-min);display:inline-flex;align-items:center}.section-more:hover{color:var(--accent)}.grid-cards{display:grid;gap:.62rem}.blog-rows{display:grid;gap:.5rem}.blog-row{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:.8rem;align-items:start;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:12px;padding:.55rem .65rem;background:var(--card);min-height:78px;box-shadow:0 6px 20px #1218230a}.blog-row:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}.blog-row-left{display:flex;flex-direction:column;justify-content:space-between;gap:.35rem;min-height:100%}.blog-row-title{margin:0;font-size:.98rem;line-height:1.35}.blog-row-url{margin:0;font-size:.82rem;color:var(--muted);line-height:1.25;overflow-wrap:anywhere}.blog-row-abstract{margin:0;font-size:.86rem;line-height:1.45;color:var(--muted)}.media-card{display:grid;grid-template-columns:200px minmax(0,1fr);gap:.62rem;align-items:start;padding:.5rem;border-radius:14px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:inherit;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;box-shadow:0 6px 20px #1218230a}.media-card:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));transform:translateY(-1px);box-shadow:0 10px 24px #10162414}.media-card.no-image{grid-template-columns:1fr}.media-thumb{width:200px;height:116px;border-radius:10px;object-fit:cover;background:var(--surface-soft)}.media-content{min-width:0}.media-title{margin:0;font-size:1rem;line-height:1.32}.media-desc{margin:.34rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.45}.media-meta{margin:.32rem 0 0;font-size:.76rem;color:var(--muted);display:flex;gap:.45rem;flex-wrap:wrap}.media-meta span{padding:.04rem .38rem;border-radius:999px;background:var(--chip-bg);border:1px solid var(--chip-border)}.pill-links{display:flex;flex-wrap:wrap;gap:.46rem;margin-top:.38rem}.pill-links a{display:inline-flex;align-items:center;gap:.35rem;min-height:var(--target-min);text-decoration:none;font-size:.8rem;font-weight:600;color:var(--ink);border:1px solid var(--chip-border);border-radius:999px;padding:.24rem .56rem;background:var(--chip-bg)}.pill-links a:hover{border-color:#c1121f}.social-logo{width:14px;height:14px;flex:0 0 14px}.profile-about-panel{padding:.85rem}.profile-about-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:.9rem;align-items:start}.profile-side{text-align:center}.profile-side .pill-links{justify-content:center;margin-top:.5rem}.profile-about-copy .section{margin-top:0}.content-single{margin-top:.9rem}.panel .section{margin-top:.66rem}.panel{border-radius:var(--radius);border:1px solid var(--line);background:var(--card);padding:.8rem;box-shadow:var(--panel-shadow)}.article-panel{max-width:980px;margin:0 auto}.article-header{border-bottom:1px solid var(--line);padding-bottom:.8rem;margin-bottom:1rem}.article-title{margin:0;font-size:clamp(1.3rem,2.2vw,1.85rem);line-height:1.22}.article-date{margin:.35rem 0 0;color:var(--muted);font-size:.84rem}.article-prose{color:var(--ink)}.article-prose>:first-child{margin-top:0}.article-prose h1,.article-prose h2,.article-prose h3{line-height:1.3;margin:1.25rem 0 .62rem}.article-prose p,.article-prose ul,.article-prose ol{margin:.58rem 0}.article-prose li{margin:.24rem 0}.article-prose a{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:2px}.article-prose hr{border:0;border-top:1px solid var(--line);margin:1rem 0}.article-prose pre{margin:.72rem 0;border-radius:14px;border:1px solid var(--code-border);background:var(--code-bg);padding:.86rem .95rem;overflow:auto;box-shadow:inset 0 1px #ffffff08}.article-prose pre code{font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.84rem;line-height:1.62;color:var(--ink)}.article-prose :not(pre)>code{font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.84em;color:var(--inline-code-text);background:var(--inline-code-bg);border:1px solid var(--inline-code-border);border-radius:8px;padding:.08rem .34rem}.avatar{width:min(100%,260px);margin:0 auto;border-radius:14px;border:1px solid var(--line)}.sidebar-title{margin:.58rem 0 .2rem;font-size:1.22rem}.sidebar-sub{margin:0;color:var(--muted);font-size:.88rem}.list a{color:var(--accent)}.list{margin:.2rem 0 0;padding-left:.2rem;list-style-position:inside}.list li{margin:.06rem 0;overflow-wrap:anywhere;line-height:1.5}.section-title+.list,.section-head+.list{margin-top:.2rem}.list-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.72rem}.list-controls input,.list-controls select{border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-size:.84rem;min-height:var(--target-min);padding:.4rem .55rem}.list-controls input{min-width:220px;flex:1 1 260px}.archive-controls{margin-bottom:.24rem}.archive-list{display:grid}.archive-item{padding:.34rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.archive-title{margin:0;font-size:.93rem;line-height:1.28}.archive-title a{text-decoration:none}.archive-title a:hover{color:var(--accent)}.archive-link{margin:.04rem 0 0;font-size:.75rem;color:var(--muted);overflow-wrap:anywhere}.archive-date-inline{margin:.03rem 0 0;font-size:.73rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}footer.site-foot{margin-top:1.05rem;color:var(--muted);font-size:.8rem;text-align:center}.site-foot p{margin:0}.site-foot-signature{font-size:.88rem;color:var(--ink);opacity:.82}.site-foot-sub{margin-top:.22rem!important;font-size:.74rem;color:var(--muted);opacity:.88}.site-foot-sub a{color:inherit;text-underline-offset:2px}@media(max-width:1200px){.profile-about-grid{grid-template-columns:270px minmax(0,1fr);gap:.76rem}.avatar{width:min(100%,220px)}}@media(max-width:980px){.topbar-inner{grid-template-areas:"brand actions" "nav nav";grid-template-columns:minmax(0,1fr) auto;gap:.24rem .5rem;padding-top:.32rem;padding-bottom:.3rem}.brand-text{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav{width:auto;flex-wrap:wrap;justify-content:center;gap:.3rem .56rem}.nav-link{flex:0 0 auto;min-width:auto;min-height:34px;font-size:.8rem;padding:.02rem 0}.profile-about-grid{grid-template-columns:1fr}.panel{padding:.66rem}.avatar{width:min(100%,170px)}.sidebar-title,.sidebar-sub{text-align:center}.blog-row{grid-template-columns:1fr;gap:.38rem}.media-card{grid-template-columns:1fr}.media-thumb{width:100%;max-width:260px}.topbar-actions{justify-content:flex-end;gap:.3rem}.rss-link{font-size:.68rem;min-height:34px;padding:.1rem .3rem}.lang-switch button,.theme-switch button{font-size:.7rem;min-height:34px;padding:.12rem .34rem}}
