/* Local variable fonts: Inter for Latin/numerals, Noto Sans SC for Chinese,
   and JetBrains Mono for code. fonts.css partitions CJK glyphs by unicode-range. */
:root {
  --font:"Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --ww-heading-font:"Noto Sans SC","Inter","PingFang SC","Microsoft YaHei",sans-serif;
  --ww-code-font:"JetBrains Mono","Noto Sans SC",ui-monospace,monospace;
  --ww-body-size:16px;
  --ww-reading-size:17px;
  --ww-label-size:14px;
  --ww-meta-size:12px;
}
html { scrollbar-gutter:stable; }
/* Tall sidebars stop at the bottom on the way down, then at the top on return. */
@media (min-width:1001px) {
  .right-sidebar { --ww-sidebar-gap:25px; }
  .right-sidebar.ww-sidebar-sticky {
    position:sticky;
    top:var(--ww-sidebar-top,25px);
    align-self:start;
  }
}
body { font-family:var(--font); font-size:var(--ww-label-size); }
button,input,select,textarea { font-family:var(--font); }
html body :is(h1,h2,h3,h4,h5,h6,.article-title) { font-family:var(--ww-heading-font); font-weight:600; }
code,pre,kbd,samp,.post-content pre,.post-content code { font-family:var(--ww-code-font); }
.avatar,.comment-avatar,.friend-avatar { font-family:var(--font); }
.feed-card .article-title { font-size:23px; line-height:1.55; font-weight:600; overflow-wrap:anywhere; }
.feed-card .article-summary { font-size:var(--ww-body-size); line-height:1.95; }
.article-page>h1,.article-page .article-title { font-size:30px; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
.post-content { font-size:var(--ww-reading-size); line-height:1.95; overflow-wrap:anywhere; }
.post-content p,.post-content li { line-height:inherit; }
.post-content h2 { font-size:25px; line-height:1.55; margin-top:1.8em; }
.post-content h3 { font-size:21px; line-height:1.6; }
.post-content h4 { font-size:18px; }
.post-content pre,.post-content code { font-size:.88em; }
.post-content pre code { font-size:inherit; }
.article-navigation .back-link,.article-neighbors a { font-size:var(--ww-label-size); }
.article-neighbors a { line-height:1.7; }
.page-heading h1,.archive-heading .archive-title-group h1 { font-size:22px; line-height:1.5; }
.home-filter-bar .filter { font-size:var(--ww-label-size); min-height:44px; }
.author-info strong,.profile-card h2 { font-size:15px; }
.author-info .post-time,.article-meta,.article-stats,.article-like { font-size:var(--ww-meta-size); }
.article-feed-footer>.read-post { font-size:13px; }
.comment-ticker-item,.comment-strip-empty { font-size:13px; }
.ww-menu-link { font-size:15px; line-height:1.6; min-height:48px; }
.ww-menu-level-2 .ww-menu-link { font-size:14px; }
.ww-menu-level-3 .ww-menu-link { font-size:13px; }
.profile-intro,.sidebar-note { font-size:13px; line-height:1.85; }
.profile-card .handle,.profile-stats span { font-size:11px; }
.popular-widget .widget-heading h2,.comments-widget .widget-heading h2 { font-size:15px; }
.popular-widget .popular-item h3,.comments-widget .comment-meta strong { font-size:14px; }
.comments-widget .comment-summary>p { font-size:13px; line-height:1.75; }
.comments-widget .comment-date,.comments-widget .comment-source,.popular-stat { font-size:11px; }
.comments-widget .comment-meta { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:6px; }
.comments-widget .comment-meta strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.comments-widget .comment-date { white-space:nowrap; margin:0; }
.station-heading h2 { font-size:15px; }
.station-heading p,.runtime-copy>span,.runtime-copy>p { font-size:12px; line-height:1.65; }
.station-runtime { height:auto; min-height:76px; }
.station-links { flex-wrap:wrap; }
.toc-widget nav a { font-size:13px; line-height:1.7; }
.chat-comments .respond-heading h3,.comments-heading h2 { font-size:20px; }
.chat-comments .comment-content { font-size:16px; line-height:1.85; }
.chat-comments .comment-meta strong { font-size:14px; }
.chat-comments .comment-editor textarea,.comment-fields input { font-size:16px; line-height:1.8; }
.comment-fields .field-label,.submit-comment { font-size:14px; }
.chat-comments .comment-actions .comment-date,.chat-comments .comment-location,.chat-comments .comment-reply a { font-size:12px; line-height:1.65; }
.chat-comments .comment-reply a { min-height:32px; }
.expression-toggle,.expression-tabs button { min-height:36px; font-size:13px; }
.ww-level-badge,.chat-comments .author-badge,.chat-comments .comment-badge { font-size:10px; }
.search-input { font-size:17px; min-height:48px; }
.search-help,.search-footer,.dialog-body .outline-button { font-size:13px; line-height:1.75; }
.dialog-top h2 { font-size:22px; }
.ww-archive-intro h2,.ww-circle-intro h2,.ww-reader-intro h2,.ww-community-intro h2 { font-size:25px; line-height:1.6; }
.ww-archive-description,.ww-circle-description,.ww-reader-description,.ww-community-description { font-size:15px; line-height:1.9; }
.ww-archive-post-title { font-size:16px; line-height:1.75; }
.ww-archive-posts a { min-height:58px; }
.ww-archive-years button,.ww-archive-fold,.ww-community-tools button,.ww-circle-tools>button,.ww-reader-tools>button { font-size:14px; min-height:44px; }
.ww-archive-search input,.ww-community-tools input,.ww-circle-search input,.ww-reader-search input { font-size:16px; min-height:44px; }
.ww-circle-source select,.ww-reader-source select { font-size:14px; min-height:44px; }
.ww-circle-card h2,.ww-reader-card h2 { font-size:21px; line-height:1.65; }
.ww-circle-excerpt,.ww-reader-excerpt,.ww-community-comment .comment-content { font-size:15px; line-height:1.9; }
.ww-circle-author strong,.ww-reader-author strong,.ww-community-person>strong { font-size:15px; }
.ww-reader-avatar,.ww-circle-avatar,.ww-community-avatar,.wwl-avatar { font-family:var(--font); }
.ww-community-section-heading h2 { font-size:17px; }
.ww-community-person-meta,.ww-community-number>span { font-size:11px; }
.ww-community-comment>header { font-size:14px; }
.ww-community-comment>footer { font-size:12px; line-height:1.7; }
.wwl-hero h2,.wwl-apply-hero h2 { font-size:27px; line-height:1.6; }
.wwl-hero p,.wwl-apply-hero p,.wwl-intro,.wwl-notice,.wwl-form { font-size:15px; line-height:1.85; }
.wwl-card h3,.wwl-alliance h3 { font-size:16px; line-height:1.65; }
.wwl-card p,.wwl-alliance p { font-size:14px; line-height:1.85; }
.wwl-form input,.wwl-form textarea,.wwl-form select,#wwl-search { font-size:16px; }
.ww-links .wwl-button { font-size:14px; min-height:44px; }
.wwl-lost-reason,.wwl-form small { font-size:12px; line-height:1.7; }
.ww-about .ww-about-tagline,.ww-about .ww-about-event p,.ww-about .ww-about-notice { font-size:15px; line-height:1.95; }
.ww-about .ww-about-info>div { font-size:15px; line-height:1.85; }
.ww-about .ww-about-section-title { font-size:20px; line-height:1.6; }
.ww-licence .ww-licence-intro>p:last-child,.ww-licence .ww-licence-copy p { font-size:16px; line-height:1.95; }
.ww-licence .ww-licence-copy h2 { font-size:20px; line-height:1.6; }
.ww-community-intro-top>div>p:last-child { font-size:15px; line-height:1.9; }
.ww-community-rules p { font-size:13px; line-height:1.85; }
.mobile-menu-body .ww-menu-link { font-size:16px; }
.mobile-menu-body .ww-menu-level-2 .ww-menu-link,.mobile-menu-body .ww-menu-level-3 .ww-menu-link { font-size:14px; }
.sidebar-footer-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px; margin-top:12px; }
.sidebar-footer-row .side-tools { margin:0; gap:4px; }
.sidebar-footer-row .side-tools button { width:20px; min-height:28px; }
.ww-load-time { display:inline-flex; align-items:center; justify-content:center; gap:4px; min-width:68px; min-height:25px; padding:2px 5px; border:1px solid var(--border); border-radius:7px; background:var(--soft); color:var(--muted); white-space:nowrap; font-size:10px; line-height:1.6; }
.ww-load-value { color:var(--text); font-size:11px; font-variant-numeric:tabular-nums; }
.ww-navigating .ww-load-time { border-color:var(--site-border); }
.brand-symbol { position:relative; overflow:hidden; }
.brand-symbol>.brand-initial { display:grid; place-items:center; width:100%; height:100%; }
.brand-symbol>img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; border-radius:inherit; background:var(--card); }
.brand-symbol>img:not([hidden])+.brand-initial { visibility:hidden; }
#search-dialog { max-height:calc(100dvh - 48px); overflow:auto; }
.ww-search-subtitle { margin-top:4px; color:var(--muted); font-size:12px; line-height:1.7; }
.ww-search-preview { margin-top:16px; padding-top:12px; border-top:1px solid var(--border); }
#ww-search-state { min-height:24px; font-size:12px; line-height:1.8; color:var(--muted); margin:0 2px 7px; }
#ww-search-results { max-height:350px; max-height:min(350px,45dvh); overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; }
#ww-search-results[aria-busy="true"] { min-height:60px; }
.ww-search-suggestion { display:grid; grid-template-columns:auto minmax(0,1fr); gap:11px; padding:12px 10px; border:1px solid transparent; border-radius:10px; text-align:left; }
.ww-search-suggestion + .ww-search-suggestion { margin-top:3px; }
.ww-search-suggestion:hover,.ww-search-suggestion[aria-selected="true"] { background:var(--accent-bg); border-color:var(--site-border); }
.ww-search-result-type { align-self:start; display:inline-flex; align-items:center; justify-content:center; min-width:36px; padding:2px 5px; margin-top:2px; border:1px solid var(--site-border); border-radius:5px; background:var(--accent-bg); color:var(--accent); font-size:10px; line-height:1.8; white-space:nowrap; }
.ww-search-result-copy { display:grid; gap:4px; min-width:0; }
.ww-search-result-copy>strong { color:var(--ink); font-size:15px; line-height:1.7; font-weight:600; overflow-wrap:anywhere; }
.ww-search-result-copy>span { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; color:var(--text); font-size:12px; line-height:1.85; }
.ww-search-suggestion mark { padding:0; border-radius:2px; color:var(--accent); background:var(--accent-bg); font-weight:600; }
.ww-search-scope { margin:0 2px 18px; color:var(--muted); font-size:13px; line-height:1.8; }
.ww-search-page-results { display:grid; gap:15px; }
.ww-search-result { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:start; gap:14px; padding:24px; }
.ww-search-result h2 { font-size:20px; line-height:1.65; overflow-wrap:anywhere; }
.ww-search-result p { margin-top:8px; color:var(--text); font-size:15px; line-height:1.9; overflow-wrap:anywhere; }
.ww-search-result>.icon { margin-top:6px; width:16px; }
.ww-search-pagination { display:flex; justify-content:center; align-items:center; gap:20px; margin:24px 0; font-size:13px; }
.ww-search-pagination a { display:flex; min-height:44px; align-items:center; padding:0 14px; border:1px solid var(--border); border-radius:8px; background:var(--card); }
#main:focus { outline:none; }
.ww-navigation-progress { position:fixed; top:0; left:0; z-index:1000; width:100%; height:2px; pointer-events:none; background:var(--accent); transform:scaleX(0); transform-origin:left; opacity:0; }
.ww-navigating .ww-navigation-progress { opacity:.85; transform:scaleX(.82); transition:transform 8s cubic-bezier(.1,.7,.2,1); }
/* Keep the existing content visible while the next response and styles load. */
.ww-home-notice { display:grid; grid-template-columns:34px minmax(0,1fr); gap:13px; padding:20px 22px; margin-bottom:22px; border:1px solid var(--site-border,var(--border)); border-radius:15px; background:linear-gradient(120deg,var(--accent-bg),var(--card) 70%); }
.ww-notice-symbol { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--border); border-radius:10px; background:var(--card); color:var(--accent); }
.ww-notice-symbol .icon { width:18px; height:18px; }
.ww-notice-main { min-width:0; }
.ww-notice-main h2 { margin:4px 0 7px; font-size:15px; line-height:1.65; color:var(--ink); }
.ww-notice-content { min-width:0; max-width:100%; overflow-x:auto; overflow-wrap:anywhere; color:var(--text); font-size:14px; line-height:1.85; }
.ww-notice-content p { margin:0 0 8px; }
.ww-notice-content>:last-child { margin-bottom:0; }
.ww-notice-content :is(img,video,iframe) { max-width:100%; }
.ww-notice-content img { height:auto; border-radius:8px; }
.ww-notice-content :is(ul,ol) { padding-left:1.4em; }
.ww-notice-content a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.ww-notice-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
.ww-notice-button,.ww-guestbook-write { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:36px; max-width:100%; padding:7px 12px; border:1px solid var(--site-border,var(--border)); border-radius:9px; background:var(--card); color:var(--accent); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.ww-notice-button:first-child { background:var(--accent-bg); }
.ww-notice-button .icon,.ww-guestbook-write .icon { width:15px; height:15px; flex-shrink:0; }
.ww-notice-button:hover,.ww-guestbook-write:hover { border-color:var(--accent); }
.ww-guestbook { margin-bottom:22px; }
.ww-guestbook-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px 22px; padding:30px; background:linear-gradient(140deg,var(--accent-bg),var(--card) 65%); border:1px solid var(--border); border-radius:17px; }
.ww-guestbook-kicker { display:inline-flex; align-items:center; gap:7px; color:var(--accent); font-size:12px; }
.ww-guestbook-kicker .icon { width:15px; height:15px; }
.ww-guestbook-heading h1 { margin:12px 0 8px; color:var(--ink); font-size:30px; line-height:1.45; overflow-wrap:anywhere; }
.ww-guestbook-heading>p { color:var(--text); font-size:14px; line-height:1.8; }
.ww-guestbook-stamp { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:12px; align-self:center; width:130px; height:108px; padding:12px; border:1px dashed var(--site-border,var(--border)); border-radius:12px; background:var(--card); color:var(--accent); transform:rotate(5deg); }
.ww-guestbook-stamp>.icon { width:35px; height:35px; stroke-width:1.3; }
.ww-guestbook-stamp>span { color:var(--muted); font-size:10px; }
.ww-guestbook-description { grid-column:1/-1; min-width:0; font-size:15px; line-height:1.9; }
.ww-guestbook-description>:last-child { margin-bottom:0; }
.ww-guestbook-footer { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; padding-top:19px; border-top:1px solid var(--border); }
.ww-guestbook-count { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; }
.ww-guestbook-count .icon { width:15px; height:15px; }
.ww-guestbook-count strong { color:var(--text); font-size:15px; font-variant-numeric:tabular-nums; }
.ww-guestbook-write { min-height:40px; padding:8px 16px; background:var(--accent-bg); font-size:14px; }
.ww-guestbook-closed { color:var(--muted); font-size:12px; }
.ww-guestbook~.chat-comments { margin-top:0; }
@media (hover:hover) and (pointer:fine) {
  .ww-menu-link,.wwl-button,.outline-button,.submit-comment { transition:background-color .16s ease,color .16s ease,border-color .16s ease; }
}
@media (max-width:680px) {
  .ww-home-notice { grid-template-columns:28px minmax(0,1fr); gap:10px; padding:16px 15px; margin-bottom:18px; border-radius:12px; }
  .ww-notice-symbol { width:28px; height:28px; border-radius:8px; }
  .ww-notice-main h2 { margin-top:1px; font-size:14px; }
  .ww-notice-content { font-size:13px; }
  .ww-notice-button { min-height:40px; }
  .ww-guestbook-hero { padding:23px 20px; gap:20px; }
  .ww-guestbook-heading h1 { font-size:26px; }
  .ww-guestbook-stamp { width:68px; height:74px; transform:rotate(4deg); }
  .ww-guestbook-stamp>span { display:none; }
  .ww-guestbook-stamp>.icon { width:29px; height:29px; }
  .ww-guestbook-description { font-size:14px; }
  :root { --ww-reading-size:16px; }
  html { scrollbar-gutter:auto; }
  .feed-card .article-title { font-size:21px; }
  .feed-card .article-summary { font-size:15px; line-height:1.9; }
  .article-page>h1,.article-page .article-title { font-size:25px; }
  .post-content h2 { font-size:22px; }
  .post-content h3 { font-size:19px; }
  .page-heading h1,.archive-heading .archive-title-group h1 { font-size:20px; }
  .author-info strong { font-size:14px; }
  .author-info .post-time { font-size:11px; }
  .chat-comments .comment-content { font-size:15px; }
  .chat-comments .comment-editor textarea { font-size:16px; }
  .chat-comments .comment-meta strong { font-size:14px; }
  .mobile-nav>a { font-size:12px; }
  .mobile-top .brand-name { font-size:18px; }
  .ww-archive-intro h2,.ww-circle-intro h2,.ww-reader-intro h2,.ww-community-intro h2 { font-size:23px; }
  .ww-archive-post-title { font-size:15px; }
  .ww-circle-card h2,.ww-reader-card h2 { font-size:20px; }
  .wwl-hero h2,.wwl-apply-hero h2 { font-size:24px; }
  .ww-circle-tools,.ww-reader-tools { flex-wrap:wrap; }
  .ww-circle-search,.ww-reader-search { flex-basis:100%; }
  .ww-circle-source,.ww-reader-source { flex:1; max-width:none; }
  .ww-circle-result,.ww-reader-result { flex-wrap:wrap; gap:5px; }
  .ww-circle-stats .ww-circle-last,.ww-reader-stats .ww-reader-last { font-size:13px; }
  .article-navigation { gap:8px; }
  .article-navigation .back-link { font-size:13px; }
  .article-navigation-categories a { font-size:11px; }
  .comment-fields { grid-template-columns:minmax(0,1fr); }
  .comment-fields label:last-child { grid-column:auto; }
  .ww-licence .ww-licence-copy p { font-size:15px; }
  .ww-community-comment>footer { flex-wrap:wrap; }
  .ww-search-suggestion { padding:10px 5px; gap:9px; }
  .ww-search-result { padding:20px 17px; gap:10px; grid-template-columns:auto minmax(0,1fr); }
  .ww-search-result>.icon { display:none; }
  .ww-search-result h2 { font-size:18px; }
  .ww-search-result p { font-size:14px; }
}
@media (prefers-reduced-motion:reduce) {
  .ww-navigating .ww-navigation-progress { transition:none; }
}
