/* One typographic contract for the four primary indexes and both locales. */
:root{--hf-font:-apple-system,BlinkMacSystemFont,"Avenir Next","Helvetica Neue","Segoe UI",Arial,sans-serif;--hf-mono:"SFMono-Regular",Consolas,monospace;--hf-title:clamp(36px,4.2vw,56px);--hf-section:clamp(28px,2.6vw,36px);--hf-card:clamp(24px,2.2vw,30px);--hf-body:16px;--hf-label:12px}
:root body:is(.site-index,.site-detail){font-family:var(--hf-font);--ui:var(--hf-font);--display:var(--hf-font);--mono:var(--hf-mono);--muted:#bbd0d6;--faint:#a6bec7}
:root :is(.site-index,.site-detail) .site-header{display:grid;grid-template-columns:1fr auto 1fr;min-height:76px;padding:12px 4vw}
:root :is(.site-index,.site-detail) .site-header .brand{font-family:var(--hf-font);font-size:18px;letter-spacing:.13em;font-weight:700}
:root :is(.site-index,.site-detail) .site-header .site-nav{display:flex;gap:32px;align-items:center}
:root :is(.site-index,.site-detail) .site-header .site-nav a{font-family:var(--hf-mono);font-size:12px;font-weight:400;line-height:1.5;letter-spacing:.14em;padding:12px 0}
:root :is(.site-index,.site-detail) .header-tools{display:flex;justify-self:end;gap:0;margin:0}
:root :is(.site-index,.site-detail) :is(.header-depth,.header-meta){display:none}
:root :is(.site-index,.site-detail) .language-switch a{display:grid;place-items:center;min-width:38px;min-height:40px;padding:6px;font:12px/1.5 var(--hf-mono);letter-spacing:.05em}
:root :is(.site-index,.site-detail) .mobile-menu{display:none;font:12px/1.5 var(--hf-mono);min-width:44px;min-height:44px}
:root :is(.site-index,.site-detail) .mobile-panel a{font:12px/1.5 var(--hf-mono);min-height:44px}
:root :is(.site-index,.site-detail) main :is(.hero-copy,.skills-hero-copy,.about-hero-copy) h1{font-family:var(--hf-font);font-size:var(--hf-title);font-weight:600;line-height:1.22;letter-spacing:-.035em;max-width:18ch;margin-bottom:24px}
:root[lang="zh-CN"] :is(.site-index,.site-detail) main :is(.hero-copy,.skills-hero-copy,.about-hero-copy) h1{max-width:16em}
:root :is(.site-index,.site-detail) main :is(.hero-copy,.skills-hero-copy,.about-hero-copy)>p:not(.eyebrow){font:400 var(--hf-body)/1.8 var(--hf-font);letter-spacing:0;max-width:36em}
:root body:is(.site-index,.site-detail) main :is([class],section,header,div) h2{font-family:var(--hf-font);font-size:var(--hf-section);font-weight:600;line-height:1.3;letter-spacing:-.025em}
:root body:is(.site-index,.site-detail) main :is([class],article,section,div) h3{font-family:var(--hf-font);font-size:var(--hf-card);font-weight:600;line-height:1.3;letter-spacing:-.02em}
:root :is(.site-index,.site-detail) :is(.eyebrow,.case-type,.boundary-index,.practice-lines>article>span,.about-next>p){font:400 var(--hf-label)/1.6 var(--hf-mono);letter-spacing:.08em}
:root :is(.site-index,.site-detail) :is(.case-summary,.practice-lines p,.practice-intro p,.about-boundary p,.section-head p,.candidate-head p,.skill-card-body>p,.release-loop p,.release-rules header p,.rules-list p,.article-preview>p:not(.preview-meta)){font:400 var(--hf-body)/1.8 var(--hf-font);letter-spacing:0}
:root :is(.site-index,.site-detail) :is(.filter,.skill-filters button){font:400 13px/1.5 var(--hf-font);letter-spacing:0;min-height:44px}
:root :is(.site-index,.site-detail) :is(.primary-link,.text-link,.read-link,.case-open,.case-note,.about-next a,.skill-card-actions a,.skills-primary-link){font:400 14px/1.5 var(--hf-font);letter-spacing:0;min-height:44px}
:root :is(.site-index,.site-detail) :is(.article-date,.article-time,.preview-meta,.preview-status,.case-meta,.case-meta span,.case-meta strong,.footer-inner){font:400 12px/1.6 var(--hf-font);letter-spacing:0}
:root :is(.site-index,.site-detail) .article-title{font:600 var(--hf-card)/1.4 var(--hf-font);letter-spacing:-.02em}
:root :is(.site-index,.site-detail) .article-preview h3{max-width:none}
:root body:is(.site-index,.site-detail).writing-index-page .archive-head h2{font-size:var(--hf-section);line-height:1.3;font-weight:600;letter-spacing:-.025em}
:root body:is(.site-index,.site-detail).writing-index-page .article-preview h3{font-size:var(--hf-card);line-height:1.3;font-weight:600;letter-spacing:-.02em}
:root :is(.site-index,.site-detail) .footer-links a{display:inline-flex;align-items:center;min-height:44px}
:root :is(.site-index,.site-detail) .skill-context{border:1px solid #567584;background:#102d3b;padding:28px;border-radius:4px}
:root :is(.site-index,.site-detail) .skill-context h4{font-size:24px;line-height:1.5;font-weight:500;margin:0 0 18px}
:root :is(.site-index,.site-detail) .skill-context p{font-size:16px;line-height:1.8;margin:0;color:var(--muted)}
:root :is(.site-index,.site-detail) .skill-card-note{grid-column:1}
@media(max-width:900px){:root{--hf-title:40px;--hf-section:30px;--hf-card:26px}}
@media(max-width:680px){
 :root{--hf-title:32px;--hf-section:28px;--hf-card:24px;--hf-body:15px}
 :root :is(.site-index,.site-detail) .site-header{grid-template-columns:1fr auto auto;gap:8px;padding:8px 20px;min-height:64px}
 :root :is(.site-index,.site-detail) .site-header .brand{font-size:15px}
 :root :is(.site-index,.site-detail) .site-header .site-nav{display:none}
 :root :is(.site-index,.site-detail) .mobile-menu{display:inline-flex;align-items:center;justify-content:center}
 :root :is(.site-index,.site-detail) .language-switch a{min-width:30px;min-height:40px}
 :root :is(.site-index,.site-detail) .mobile-panel{top:64px}
 :root :is(.site-index,.site-detail) .article-row{grid-template-columns:52px minmax(0,1fr) 44px;gap:10px}
 :root :is(.site-index,.site-detail) .skill-context{padding:20px}
 :root :is(.site-index,.site-detail) .skill-context h4{font-size:21px}
}
