/* Load after the page styles. Interface roles use system fonts; Japanese serif is bundled. */
:root {
  --sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans CJK SC','PingFang SC','Microsoft YaHei',sans-serif;
  --serif:Georgia,'Noto Serif CJK SC','Noto Serif SC','Songti SC','STSong','SimSun',serif;
  --mono:ui-monospace,'Cascadia Code','SFMono-Regular',Consolas,'Liberation Mono',monospace;
}

/* Language selects the CJK fallback; decorative quote/card faces remain their own roles. */
:lang(ja) {
  --sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI','Yu Gothic','Hiragino Kaku Gothic ProN','Noto Sans CJK JP','Noto Sans JP',sans-serif;
  --serif:Georgia,'Noto Serif JP','Yu Mincho','Hiragino Mincho ProN','Noto Serif CJK JP',serif;
}
:lang(zh) {
  --sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans CJK SC','PingFang SC','Microsoft YaHei',sans-serif;
  --serif:Georgia,'Noto Serif CJK SC','Noto Serif SC','Songti SC','STSong','SimSun',serif;
}

body {
  font-family:var(--sans);
  font-size:15px;
  line-height:1.7;
  font-kerning:normal;
}
button,input,select,textarea { font-family:var(--sans); }
input,select,textarea { line-height:1.5; }
label,.form-label { font-family:var(--sans); line-height:1.5; }

.site-nav a {
  font-family:var(--sans);
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:.015em;
}
.site-footer {
  font-family:var(--sans);
  font-size:11px;
  line-height:1.5;
}
.m-kicker,.m-label,.h-small-label,.h-contact-label {
  font-family:var(--sans);
  font-size:11px;
  line-height:1.5;
  letter-spacing:.08em;
}
.m-subtitle { line-height:1.75; }
.blog-heading .m-subtitle { font-size:15px; line-height:1.7; }
.cover-intro { font-size:15px; line-height:1.7; }
.home-quotes cite {
  font-family:var(--sans);
  font-size:12px;
  line-height:1.55;
}
.about-site { font-family:var(--serif); font-size:16px; line-height:1.8; }
.about-site h2 { font-family:var(--sans); font-size:13px; line-height:1.5; font-weight:600; }

.h-photo-caption { font-family:var(--sans); font-size:11px; line-height:1.5; }
.h-edge-text { font-family:var(--sans); font-size:10.5px; letter-spacing:.14em; }
.h-subtitle { font-family:var(--sans); font-size:13px; line-height:1.65; letter-spacing:0; }
.h-bio-text { font-family:var(--sans); font-size:15px; line-height:1.8; }
.h-interest { font-family:var(--sans); font-size:15px; line-height:1.7; padding-block:10px; }
.h-contact-value { font-family:var(--sans); font-size:15px; line-height:1.7; }
.h-page-footer { font-family:var(--sans); font-size:13px; line-height:1.5; }

.n-content { font-family:var(--sans); font-size:15px; line-height:1.8; }
.n-content p { margin-bottom:1em; }
.n-content li { margin-block:.35em; }
.n-content p.n-janken { font-family:var(--serif); }

.blog-filter select,.g-search-input {
  font-family:var(--sans);
  font-size:14px;
  line-height:1.5;
}
.g-close,.g-tool-back { font-family:var(--sans); font-size:13px; line-height:1.5; }
.post-title { font-family:var(--serif); font-size:20px; line-height:1.45; }
.post-meta {
  font-family:var(--mono);
  font-size:11.5px;
  line-height:1.5;
  flex-wrap:wrap;
  gap:6px 10px;
}
.post-meta span { font-family:var(--sans); font-size:11px; line-height:1.35; padding:2px 5px; }
.blog-pagination { font-family:var(--sans); font-size:13px; line-height:1.5; flex-wrap:wrap; }
.blog-page-numbers { min-width:0; }
.reader-back,.reader-end { font-family:var(--sans); font-size:13px; line-height:1.5; }
.reader-back { flex-wrap:wrap; gap:6px 12px; }
.reader-back span { min-width:0; overflow-wrap:anywhere; }
.reader-date { font-family:var(--mono); font-size:12px; line-height:1.5; }
.reader-header h1 { font-family:var(--serif); line-height:1.35; }
.reader-body {
  font-family:var(--serif);
  font-size:17px;
  line-height:1.9;
  letter-spacing:0;
  word-break:normal;
}
/* A language boundary must recompute the face, not inherit its parent's resolved list. */
.reader-body :where([lang]) { font-family:var(--serif); }
.reader-body p { margin-block:1.3em; }
.reader-body p:first-child { margin-top:0; }
.reader-body h2 { font-family:var(--serif); font-size:24px; line-height:1.45; margin-top:1.8em; }
.reader-body h3 { font-family:var(--serif); font-size:20px; line-height:1.5; margin-top:1.8em; }
.reader-body li { margin-block:.45em; }
.reader-body blockquote { font-size:16px; line-height:1.8; }
.reader-body blockquote p { margin:0; }
.reader-body table { font-family:var(--sans); font-size:14px; line-height:1.6; }
.reader-body table [lang] { font-family:var(--sans); }
.reader-body pre { font-family:var(--mono); font-size:13px; line-height:1.7; tab-size:4; }
.reader-body :not(pre)>code { font-family:var(--mono); font-size:.84em; line-height:1.4; }
.reader-body :is(pre,code,kbd,samp),.reader-body :is(pre,code,kbd,samp) [lang] { font-family:var(--mono); }

@media(max-width:360px) {
  .reader-body { font-size:16px; }
  .post-title { font-size:18px; }
}
@media(min-width:480px) {
  .reader-body { font-size:18px; line-height:1.85; }
  .post-title { font-size:22px; }
}
