*,*:before,*:after{box-sizing:border-box}:root{--bg:#f8f8f8;--panel:#fff;--ink:#262626;--text:#555555;--muted:#666666;--line:#e2e2e2;--soft:#eeeeee;--accent:#2866a5;--accent-soft:#2866a50d;--accent-border:#2866a547;--selection:#2866a526;--button:#2866a5;--button-text:#fff;--glass:rgba(248,248,248,.9);--layout-width:1180px;--page-gutter:20px;--sidebar-width:264px;--column-gap:64px;--tool-size:36px;--tool-gap:10px;--tool-radius:9px;--radius:12px;--radius-lg:18px;--entry-space:40px;--font-body:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans SC','Noto Sans CJK SC','Source Han Sans SC','Segoe UI',system-ui,sans-serif;--font-heading:var(--font-body);--font-mono:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',monospace;--weight-heading:600}html[data-mode=dark]{color-scheme:dark;--bg:#181b20;--panel:#22262e;--ink:#e6eaf0;--text:#bbc3cf;--muted:#9aa6b5;--line:#363e49;--soft:#2c333e;--accent:#8db8e8;--accent-soft:#8db8e80f;--accent-border:#8db8e852;--selection:#8db8e833;--button:#8db8e8;--button-text:#172536;--glass:rgba(24,27,32,.92)}html{overflow-x:clip}body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font:15px/1.8 var(--font-body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{color:inherit}img{max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.5;letter-spacing:0;line-break:strict}::selection{background:var(--selection)}.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;z-index:100;background:var(--panel);padding:12px}.topbar{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:var(--glass);backdrop-filter:blur(20px)}.nav{width:100%;max-width:var(--layout-width);margin:auto;padding:12px var(--page-gutter);min-height:64px;display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar-width);align-items:center;gap:var(--column-gap)}.nav-main{display:flex;align-items:center;gap:30px;min-width:0}.nav-main>.brand{min-width:0;overflow:hidden;text-overflow:ellipsis}.navlinks{flex-shrink:0}.brand{font-size:18px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.navlinks{display:flex;gap:8px}.navlinks a{padding:5px 11px;font-size:13px;color:var(--muted);border-radius:8px}.navlinks a:hover,.navlinks a[aria-current]{color:var(--ink);background:var(--soft)}.tools{display:grid;grid-template-columns:minmax(0,1fr) var(--tool-size);align-items:center;gap:var(--tool-gap);min-width:0;width:100%}.tools--compact{grid-template-columns:var(--tool-size);justify-content:end}.nav-search{display:flex;align-items:center;gap:8px;width:auto;min-width:0;height:var(--tool-size);padding:6px 10px;border:1px solid var(--line);border-radius:var(--tool-radius);background:var(--soft);color:var(--muted)}.nav-search input{width:100%;min-width:0;border:0;background:none;color:var(--ink);outline:none;font-size:12px}.nav-search:focus-within{border-color:var(--accent)}.icon-button{display:flex;align-items:center;justify-content:center;border:0;background:none;padding:0;width:36px;height:36px;border-radius:50%}.icon-button:hover{background:var(--soft)}.icon-button svg{flex-shrink:0}.appearance{position:relative}.appearance-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:155px;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:6px;box-shadow:0 8px 28px #00000014}.appearance-menu[hidden]{display:none}.appearance-menu button{display:block;width:100%;border:0;background:none;text-align:left;font-size:13px;padding:9px 12px;border-radius:7px}.appearance-menu button:hover{background:var(--soft)}.appearance-menu button[aria-pressed=true]:after{content:'✓';float:right}.columns{width:100%;max-width:var(--layout-width);margin:56px auto 80px;padding:0 var(--page-gutter);display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar-width);gap:var(--column-gap)}.columns main{min-width:0}.page-heading{padding-bottom:30px;margin-bottom:32px;border-bottom:1px solid var(--line)}.page-heading>p:first-child,.eyebrow{font-size:12px;color:var(--muted);font-weight:600}.page-heading h1{font-size:38px;letter-spacing:0;margin:8px 0 12px}.page-heading p{font-size:14px;color:var(--muted);margin-bottom:0}.page-heading small{font-size:12px;border-radius:20px;background:var(--panel);padding:4px 9px;vertical-align:middle;font-weight:400;color:var(--muted)}.entry{display:flex;gap:24px;padding-bottom:var(--entry-space);margin-bottom:var(--entry-space);border-bottom:1px solid var(--line)}.entry-copy{flex:1;min-width:0;overflow-wrap:anywhere}.entry h2{font-size:24px;font-weight:600;line-height:1.5;margin:8px 0 12px;text-wrap:balance;word-break:normal}.entry p{font-size:15px;line-height:1.9;color:var(--text);margin:0;text-wrap:pretty}.meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted)}.cover{width:30%;align-self:flex-start;overflow:hidden;border-radius:var(--radius);background:var(--panel);outline:1px solid var(--line);outline-offset:-1px}.cover img{width:100%;object-fit:cover;aspect-ratio:16/10;display:block}.profile{padding:22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel)}.profile-heading{display:flex;align-items:center;gap:12px}.profile-heading img{width:48px;height:48px;object-fit:cover;border-radius:50%}.profile-heading strong{font-size:15px}.slogan{font-size:12px;color:var(--muted);margin:14px 0 20px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:18px 0;border-top:1px solid var(--line)}.stats>a,.stats>div{display:flex;flex-direction:column;align-items:center}.stats strong{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.stats span{font-size:11px;color:var(--muted)}.primary{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;background:var(--button);color:var(--button-text);padding:11px 20px;font-size:14px;font-weight:600}.primary:hover{color:var(--button-text);filter:brightness(1.08)}.about-link{width:100%;min-height:40px;padding:8px 16px;border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:500}.about-link:hover,.about-link:focus-visible,.about-link:active{background:var(--panel);color:var(--accent);border-color:var(--accent);filter:none}.side-section{margin-top:30px}.side-section h2{font-size:12px;font-weight:600;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:0}.recent{display:flex;flex-direction:column;font-size:12px;padding:13px 0;border-bottom:1px solid var(--line)}.recent time{font-size:10px;color:var(--muted);margin-top:5px}.category{display:flex;justify-content:space-between;font-size:12px;padding:9px 0}.year{font-size:24px;margin:36px 0 12px}.archive-row{display:flex;gap:28px;padding:21px 0;border-bottom:1px solid var(--line);font-size:16px}.archive-row time{font-size:12px;color:var(--muted);flex-shrink:0;padding-top:4px}.chips{display:flex;flex-wrap:wrap;gap:14px}.chips a{display:flex;align-items:center;gap:22px;padding:17px 21px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.chips small{font-size:11px;color:var(--muted);background:var(--bg);padding:2px 7px;border-radius:6px}.search-form{display:flex;gap:12px}.search-form input{flex:1;min-width:0;padding:15px 18px;background:var(--panel);border:1px solid var(--line);border-radius:13px;color:var(--ink)}.search-status,.muted{font-size:12px;color:var(--muted)}.search-status{margin:20px 0 28px}.search-result{padding:24px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.search-result h2{font-size:22px}.search-result p{font-size:14px;color:var(--text)}.reading{width:100%;max-width:1180px;margin:56px auto 80px;padding:0 24px}.reading main{max-width:760px;min-width:0;margin:auto;width:100%}.reading.with-toc{display:grid;grid-template-columns:minmax(0,760px) 220px;gap:64px}.reading-heading{border-bottom:1px solid var(--line);margin-bottom:30px;padding-bottom:28px}.reading-heading h1{font-size:38px;font-weight:600;line-height:1.45;margin:22px 0 18px;letter-spacing:0;text-wrap:balance;line-break:strict;overflow-wrap:anywhere}.back{font-size:12px;color:var(--muted)}.prose{font-size:17px;line-height:1.95;overflow-wrap:anywhere;color:var(--text)}.prose p{margin-bottom:1.5em}.prose h2{font-size:26px;margin:2em 0 .8em}.prose h3{font-size:21px;margin:1.8em 0 .8em}.prose :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:var(--reading-offset,144px);line-height:1.5;text-wrap:pretty}.prose h1{font-size:30px;margin:1.8em 0 .8em}.prose h4{font-size:18px;margin:1.6em 0 .7em}.prose h5,.prose h6{font-size:16px;margin:1.5em 0 .7em}.prose h6{color:var(--muted)}.prose li+li{margin-top:.35em}.prose :not(pre)>code{background:var(--soft);padding:.15em .35em;border-radius:4px}.prose a{color:var(--accent)}.prose a:hover{text-decoration:underline}.prose .headerlink{display:none}.prose blockquote{margin:24px 0;padding:16px 24px;border-left:3px solid var(--accent);border-radius:0 12px 12px 0;background:var(--panel);color:var(--muted)}.prose pre{padding:18px;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:13px;font-size:13px;line-height:1.7}.prose code{font-family:var(--font-mono);font-size:.9em}.prose figure.highlight{margin:24px 0;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:12px}.prose figure.highlight pre{padding:0;border:0;margin:0}.prose .highlight table{margin:0;width:100%}.prose .gutter{color:var(--muted);padding-right:16px;user-select:none}.prose table{display:block;max-width:100%;overflow:auto;border-collapse:collapse}.prose td,.prose th{padding:8px 12px;border-bottom:1px solid var(--line)}.toc-sidebar{position:sticky;top:96px;align-self:start;max-height:calc(100dvh - 120px);overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}.toc-sidebar>h2{font-size:13px;font-weight:var(--weight-heading);padding-bottom:14px;margin:0 0 16px;border-bottom:1px solid var(--line)}.toc,.toc-child{list-style:none;margin:0;padding:0}.toc{border-left:1px solid var(--line)}.toc-child{padding-left:12px}.toc a{display:block;padding:7px 0 7px 14px;font-size:12px;color:var(--muted);border-left:2px solid transparent;margin-left:-1px;line-height:1.7}.toc a:hover{color:var(--accent)}.toc a[aria-current=location]{border-left-color:var(--accent);color:var(--ink);font-weight:600}.article-footer{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.tags{display:flex;flex-wrap:wrap;gap:12px}.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}.post-nav a{display:flex;flex-direction:column;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;font-size:13px}.post-nav small{color:var(--muted)}.post-nav a{min-width:0;overflow-wrap:anywhere}.post-nav span{font-weight:600;font-size:15px;line-height:1.6}.post-nav time{font-size:11px;color:var(--muted);margin-top:auto}.post-nav .post-next{grid-column:2;text-align:right}.post-nav a:hover{border-color:var(--accent)}.comments{margin-top:40px;border-top:1px solid var(--line);padding-top:24px}.comments h2{font-size:21px}.load-comments{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 20px}.about{width:100%;max-width:840px;margin:72px auto 88px;padding:0 24px}.about-heading{padding-bottom:40px;border-bottom:1px solid var(--line)}.about-heading img{display:block;width:96px;height:96px;object-fit:cover;border-radius:50%;box-shadow:0 0 0 6px var(--panel);margin-bottom:28px}.about-heading h1{font-size:48px;letter-spacing:0;margin:10px 0 18px}.about-slogan{font-size:17px;color:var(--text);max-width:620px}.about-content{padding-top:34px}.about-content h3{font-size:20px;margin:0 0 24px}.about-content h4{font-size:12px;color:var(--muted);margin:22px 0 6px}.about-content p>a{color:var(--ink)}.about-content p>a:hover{color:var(--accent);text-decoration:none}.pager{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;font-size:13px}.pager a,.pager span{padding:5px 12px}.pager .current{background:var(--soft);border-radius:7px}.footer{margin-top:auto;padding:28px 20px;text-align:center;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}@media(max-width:1000px){:root{--sidebar-width:250px;--column-gap:32px}.reading.with-toc{gap:32px;grid-template-columns:minmax(0,1fr) 190px}}@media(max-width:900px){.reading.with-toc{display:block}.toc-sidebar{display:none}}@media(max-width:800px){.nav{position:relative;display:flex;flex-wrap:wrap;gap:12px;padding-top:10px;padding-bottom:10px}.nav-main{display:contents}.nav-main>.brand{flex:1 1 0%}.tools{display:flex;flex-shrink:0;width:auto;margin-left:auto}.navlinks{order:3;width:100%;justify-content:flex-start}.nav-search{display:none;position:absolute;left:20px;right:20px;top:calc(100% + 8px);width:auto;height:auto;background:var(--panel);border:1px solid var(--line);padding:12px 14px;box-shadow:0 5px 24px #00000010}.nav-search.open{display:flex}.nav-search input{font-size:16px}.tools{gap:6px}.columns{grid-template-columns:minmax(0,1fr);margin-top:34px}.sidebar{display:none}.page-heading h1{font-size:32px}.entry h2{font-size:22px}.reading{margin-top:34px}.reading-heading h1{font-size:30px}.about{margin-top:44px}.about-heading h1{font-size:38px}}@media(max-width:480px){.entry h2{font-size:21px}.archive-row{font-size:14px;gap:18px}.search-form{gap:8px}.search-form .primary{padding:10px 16px}.reading-heading h1{font-size:28px}.prose h2{font-size:23px}.post-nav{grid-template-columns:1fr}.post-nav .post-next{grid-column:auto}.about-heading h1{font-size:36px}.about-heading img{width:80px;height:80px}.about-slogan{font-size:15px}.cover{width:26%}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}a,button,input,.nav-search{transition:color .15s ease,background-color .15s ease,border-color .15s ease,text-decoration-color .15s ease,box-shadow .15s ease}}
.toc-sidebar>h2{position:sticky;top:0;background:var(--bg);z-index:1}.contact-line{display:grid;grid-template-columns:90px minmax(0,1fr);gap:24px;align-items:center;border-bottom:1px solid var(--line)}.about-content .contact-line h4{margin:0;font-size:13px}.about-content .contact-line p{margin:0;padding:17px 0;font-size:15px}@media(max-width:480px){.contact-line{grid-template-columns:72px minmax(0,1fr);gap:16px}.about-content .contact-line p{font-size:14px}}

/* Reading enhancements: the existing panel, border and accent palette is shared. */
.reading-heading h1{overflow-wrap:anywhere;text-wrap:pretty}
.mobile-toc{display:none}
.reading-progress{position:fixed;left:0;right:0;top:calc(var(--reading-offset,81px) - 16px);height:3px;z-index:10;background:var(--soft);pointer-events:none}
.reading-progress[hidden]{display:none}.reading-progress progress{display:block;width:100%;height:3px;border:0;appearance:none;background:var(--soft);border-radius:0;overflow:hidden}.reading-progress progress::-webkit-progress-bar{background:var(--soft)}.reading-progress progress::-webkit-progress-value{background:var(--accent)}.reading-progress progress::-moz-progress-bar{background:var(--accent)}.reading-progress span{display:none}
@media(prefers-reduced-motion:no-preference){.reading-progress progress::-webkit-progress-value{transition:width .1s linear}.reading-progress progress::-moz-progress-bar{transition:width .1s linear}}
.prose .code-block{margin:1.5em 0;border:1px solid var(--line);border-radius:13px;background:var(--panel);overflow:hidden;max-width:100%}
.code-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:40px;padding:4px 12px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5;color:var(--muted)}
.copy-code{border:0;background:none;padding:6px 8px;border-radius:6px;white-space:nowrap}.copy-code:hover{background:var(--soft)}.copy-status{font-size:11px}.copy-field{position:fixed;left:-9999px;top:0}
.prose .code-block>pre,.prose .code-block>figure.highlight{border:0;border-radius:0;margin:0;max-height:32rem;overscroll-behavior-x:contain;tab-size:2}
.prose .highlight table{display:table;width:auto;min-width:100%}.prose .highlight td{border:0;padding:0}.prose .highlight .gutter{padding-right:16px}.prose .highlight pre{overflow:visible;line-height:1.7}.prose .highlight code{white-space:pre}
.prose img{border-radius:12px;display:block;margin:1.5em auto;background:var(--soft)}
/* Unknown remote sizes reserve a provisional ratio; explicit dimensions stay authoritative. */
.prose img:not([width]):not([height]){width:100%;aspect-ratio:auto 16/9;object-fit:contain}
.lightbox-image{cursor:zoom-in}.lightbox-image:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.lightbox-open{overflow:hidden}
.image-lightbox{
  --lightbox-max-height:min(86dvh, calc(100dvh - 24px));
  --lightbox-close-size:36px;
  width:max-content;
  max-width:min(906px, calc(100% - 24px));
  max-height:var(--lightbox-max-height);
  padding:12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--panel);
  color:var(--ink);
  overscroll-behavior:contain;
}
.image-lightbox[open]{display:flex;flex-direction:column;align-items:center;gap:8px}
.image-lightbox::backdrop{background:#000b}
.image-lightbox img{
  display:block;
  width:auto;
  height:auto;
  min-height:0;
  max-width:100%;
  /* Reserve the frame, gaps and one caption line before sizing the image. */
  max-height:min(72dvh, calc(var(--lightbox-max-height) - var(--lightbox-close-size) - 66px));
  object-fit:contain;
}
.image-lightbox p{flex:none;max-width:100%;margin:0;color:var(--muted);font-size:13px;text-align:center;overflow-wrap:anywhere}
.lightbox-close{
  flex:none;
  align-self:flex-end;
  min-height:var(--lightbox-close-size);
  padding:4px 12px;
  border:0;
  border-radius:8px;
  background:var(--soft);
}
@media(pointer:coarse){
  .image-lightbox{--lightbox-close-size:44px}
  .lightbox-close{min-width:var(--lightbox-close-size)}
}
@media(max-width:900px){.mobile-toc{display:block;margin:0 0 28px;border:1px solid var(--line);border-radius:13px;background:var(--panel);padding:12px 16px}.mobile-toc summary{cursor:pointer;font-size:13px;font-weight:600}.mobile-toc nav{max-height:50dvh;overflow:auto;margin-top:12px;overscroll-behavior:contain}.mobile-toc .toc{margin:0}.mobile-toc .toc a{overflow-wrap:anywhere}}
@media(max-width:480px){.reading{padding:0 20px}.prose h1{font-size:26px}.prose h3{font-size:20px}.post-nav a{padding:16px}.copy-status{max-width:60%}}

.not-found{width:100%;max-width:1180px;margin:80px auto;padding:0 20px;text-align:left}.not-found-code{font-size:12px;font-weight:600;line-height:1.8;color:var(--muted);margin:0 0 8px}.not-found h1{font-size:26px;margin:0 0 12px}.not-found>p:not(.not-found-code){color:var(--muted);font-size:15px;margin-bottom:24px}.not-found-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.not-found-secondary{display:inline-flex;align-items:center;justify-content:center;padding:10px 19px;border:1px solid var(--line);border-radius:11px;background:var(--panel);font-size:14px;font-weight:600}.not-found-secondary:hover{background:var(--soft);color:var(--ink)}
.search-highlight{color:var(--accent);background:var(--soft);font-weight:600;border-radius:3px}
@media(max-width:800px){.not-found{margin:48px auto 64px}.not-found h1{font-size:24px}}


.sidebar-sticky{--sidebar-sticky-top:calc(64px + 1px + 24px);display:flow-root;margin-top:30px}.sidebar-sticky>.side-section:first-child{margin-top:0}
/* The desktop navigation is 64px plus its 1px border; keep 24px clear below it. */
@media(min-width:801px){.sidebar-sticky.is-sticky{position:sticky;top:var(--sidebar-sticky-top);max-height:calc(100vh - var(--sidebar-sticky-top) - 24px);max-height:calc(100dvh - var(--sidebar-sticky-top) - 24px);overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}}

/* Opt-in screenshot framing; inset outline preserves image dimensions. */
.cover-contain{background:var(--panel)}
.cover-contain img{object-fit:contain}
.cover-contain img,.prose img.milo-screenshot{outline:1px solid var(--line);outline-offset:-1px;border-radius:12px}
.prose img.milo-screenshot{box-shadow:0 2px 8px #0000000a}

/* Shared DOM order: metadata, title, cover, excerpt. */
.entry-copy.has-cover{display:grid;grid-template-columns:minmax(0,1fr) 30%;grid-template-rows:min-content min-content 1fr;column-gap:28px}
.entry-copy.has-cover>:not(.cover){grid-column:1}
.entry-copy.has-cover>.cover{grid-column:2;grid-row:1/4;width:100%;align-self:center}
.entry p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.entry p:empty{display:none}
@media (width > 800px) {
  .post-list .entry-copy.has-cover{grid-template-rows:auto auto auto}
  .post-list .entry-copy.has-cover > :is(.meta,h2){grid-column:1/-1}
  .post-list .entry-copy.has-cover > .cover{grid-row:3}
  .post-list .entry-copy.has-cover > p{grid-row:3;align-self:center;-webkit-line-clamp:5}
}

@media (800px < width < 1024px) {
  .post-list{max-width:780px;grid-template-columns:minmax(0,1fr)}
  .post-list > .sidebar{display:none}
  .post-list .entry-copy.has-cover{grid-template-columns:minmax(0,1fr) clamp(172px,26%,200px);column-gap:24px}
}

@media(max-width:800px){.entry-copy.has-cover{display:block}.entry .cover{display:block;width:100%;margin-bottom:16px}}

/* Compact Chinese reading scale; preserve the existing 800px layout boundary. */
.meta{align-items:baseline;font-variant-numeric:tabular-nums;line-height:1.7;column-gap:8px;row-gap:4px}
@media(max-width:800px){:root{--entry-space:32px}.prose{font-size:16px}.entry-copy.has-cover h2{margin-bottom:16px}.entry .cover{margin-bottom:16px}}

/* Short Chinese words are segmented at build time; titles keep normal breaks between words. */
.title-word{white-space:nowrap}
.navlinks a:hover,.navlinks a:focus-visible{color:var(--accent);background:var(--accent-soft)}
.entry h2 a:hover,.entry h2 a:focus-visible,.recent:hover,.recent:focus-visible{color:var(--accent)}
.prose a{text-decoration:underline;text-decoration-color:var(--accent-border);text-underline-offset:.2em;text-decoration-thickness:1px}
.prose a:hover,.prose a:focus-visible{text-decoration-color:var(--accent)}

/* Shared typography and reading tones; layout metrics stay unchanged. */
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--weight-heading)}
.prose :is(h1,h2,h3,h4,h5,h6),.prose strong{color:var(--ink)}
.prose strong,.profile-heading strong{font-weight:var(--weight-heading)}
.recent,.category{color:var(--text)}
.nav-search input::placeholder,.search-form input::placeholder{color:var(--muted);opacity:1}

/* Brand feedback stays local to actionable elements; no geometry changes. */
.navlinks a[aria-current="page"]{color:var(--accent);background:transparent;text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:2px;text-underline-offset:.45em}
.nav-search:focus-within{box-shadow:0 0 0 2px var(--accent-border)}
.prose a{text-decoration-color:currentColor}
.entry h2 a:focus-visible,.entry h2 a:active,.tags a:focus-visible,.tags a:active,.meta a:focus-visible,.meta a:active{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em;color:var(--accent)}
.chips a:focus-visible,.chips a:active{color:var(--accent);border-color:var(--accent)}
.prose a:focus-visible,.prose a:active{text-decoration-thickness:2px}
.navlinks a:active,.category:active{color:var(--accent)}
@media(hover:hover) and (pointer:fine){.entry h2 a:hover,.tags a:hover,.meta a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.2em}.chips a:hover{color:var(--accent);border-color:var(--accent)}.prose a:hover{text-decoration-thickness:2px}}

.category:focus-visible{color:var(--accent)}
.icon-button:active{background:var(--soft);color:var(--accent)}

@media(pointer:coarse){a,button{-webkit-tap-highlight-color:var(--accent-border)}}

/* Navigation tools share the sidebar column; the mobile search remains a disclosure. */
.tools .icon-button{width:var(--tool-size);height:var(--tool-size);border:1px solid var(--line);border-radius:var(--tool-radius);background:var(--soft)}
@media(hover:hover) and (pointer:fine){.tools .icon-button:hover{color:var(--accent);border-color:var(--accent-border);background:var(--panel)}}
.tools .icon-button:active{color:var(--accent);border-color:var(--accent);background:var(--panel)}
.appearance-moon{display:none}html[data-mode=dark] .appearance-sun{display:none}html[data-mode=dark] .appearance-moon{display:block}


/* Optical tuning stays inside the established navigation tracks. */
.nav-search{padding-inline:12px;background:var(--panel)}
.nav-search>svg{width:16px;height:16px;flex:0 0 16px;stroke-width:1.6}
.nav-search input{padding:0;font-size:13px;line-height:1.5;text-align:left}
.tools .icon-button{background:var(--panel)}
.profile-heading img{width:56px;height:56px;flex-shrink:0}
.profile-heading strong{font-size:17px;line-height:1.5;min-width:0;overflow-wrap:anywhere}
.slogan{font-size:13px;line-height:1.8;color:var(--text)}
.stats strong{font-size:14px;font-weight:500;color:var(--muted)}
.mobile-identity{display:none}
@media(max-width:800px){
  .tools{--tool-size:44px;gap:0}
  .tools .icon-button,.tools .icon-button:hover,.tools .icon-button:focus-visible,.tools .icon-button:active{position:relative;isolation:isolate;background:transparent;border-color:transparent}
  .tools .icon-button::before{content:'';position:absolute;inset:5px;border:1px solid var(--line);border-radius:var(--tool-radius);background:var(--panel);z-index:-1;pointer-events:none}
  .tools .icon-button:active::before{border-color:var(--accent)}
  .nav-search input{font-size:16px}
}
@media (width < 1024px) {
  .columns.has-mobile-identity{row-gap:20px}
  .mobile-identity{grid-column:1/-1;display:flex;align-items:center;gap:10px;min-height:44px;min-width:0;color:var(--ink)}
  .mobile-identity img{width:36px;height:36px;object-fit:cover;border-radius:50%;flex-shrink:0}
  .identity-copy{display:flex;flex-direction:column;min-width:0}
  .identity-name{font-size:14px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}
  .identity-intro{font-size:12px;line-height:1.5;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

.slogan:empty{display:none}
.slogan{overflow-wrap:anywhere}

/* Search disclosure uses reserved navigation space; the appearance track never moves. */
.search-control{display:grid;grid-template-columns:minmax(0,1fr) var(--tool-size);align-items:center;min-width:0}
.search-toggle{grid-column:2;grid-row:1;display:flex}
.search-toggle svg{width:20px;height:20px;stroke-width:1.6}
.search-control>.nav-search{grid-column:1;grid-row:1;display:flex;width:calc(100% - 8px);margin:0 8px 0 0;visibility:hidden;opacity:0;clip-path:inset(0 0 0 100%);pointer-events:none}
.search-control>.nav-search.open{visibility:visible;opacity:1;clip-path:inset(0);pointer-events:auto}
.search-control>.nav-search:focus-within{box-shadow:inset 0 0 0 1px var(--accent)}
@media(prefers-reduced-motion:no-preference){.search-control>.nav-search{transition:clip-path .18s ease,opacity .18s ease,visibility 0s linear .18s}.search-control>.nav-search.open{transition-delay:0s}}
@media(max-width:800px){.search-control{display:contents}.search-control>.nav-search{position:absolute;left:var(--page-gutter);right:var(--page-gutter);top:calc(100% + 8px);width:auto;height:auto;margin:0;clip-path:inset(0 0 100% 0)}.search-control>.nav-search.open{clip-path:inset(0)}}

/* Quiet icon controls: preserve their boxes and reveal feedback only during interaction. */
.tools .icon-button{background:transparent;border-color:transparent}
@media(hover:hover) and (pointer:fine){.tools .icon-button:hover{color:var(--accent);background:var(--soft);border-color:transparent}}
.tools .icon-button:active{color:var(--accent);background:var(--soft);border-color:transparent}
@media(max-width:800px){.tools .icon-button,.tools .icon-button:hover,.tools .icon-button:focus-visible,.tools .icon-button:active{background:transparent;border-color:transparent}.tools .icon-button::before{background:transparent;border-color:transparent}.tools .icon-button:active::before{background:var(--soft);border-color:transparent}}
@media(max-width:800px) and (hover:hover) and (pointer:fine){.tools .icon-button:hover::before{background:var(--soft)}}

.search-toggle[aria-expanded="true"],.appearance-button[aria-expanded="true"]{color:var(--accent)}
@media(min-width:801px){.tools .icon-button:active{background:var(--line)}}
@media(max-width:800px){.tools .icon-button:active::before{background:var(--line)}}
