/* Local OFL font derivatives: Charm for Vietnamese calligraphy, Lora for reading. */
@font-face {
    font-family: 'Jx Calligraphy';
    src: url('/assets/fonts/jx-calligraphy-regular.woff2') format('woff2');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: 'Jx Calligraphy';
    src: url('/assets/fonts/jx-calligraphy-bold.woff2') format('woff2');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}
@font-face {
    font-family: 'Jx Reading';
    src: url('/assets/fonts/jx-reading.woff2') format('woff2');
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
}
@font-face {
    font-family: 'Jx Reading';
    src: url('/assets/fonts/jx-reading-italic.woff2') format('woff2');
    font-style: italic;
    font-weight: 400 700;
    font-display: swap;
}
@font-face {
    font-family: 'Jx Han';
    src: url('/assets/fonts/jx-han.woff2') format('woff2');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    unicode-range: U+3000-303F, U+3400-9FFF, U+FF00-FFEF;
}
:root {
    --font-reading: 'Jx Reading', Georgia, 'Times New Roman', serif;
    --font-han: 'Jx Han', 'Noto Serif CJK TC', 'Microsoft JhengHei', serif;
    --font-calligraphy: 'Jx Calligraphy', 'Jx Han', Georgia, serif;
}
body {
    font-family: var(--font-reading);
    font-synthesis: none;
}
button, input, select, textarea { font-family: var(--font-reading); }
.nav-brand-title {
    font-family: var(--font-calligraphy);
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .015em;
}
.ttl-main {
    font-family: var(--font-calligraphy);
    font-size: clamp(2.65rem, 5.7vw, 5rem);
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .015em;
}
.section-title, .cert-title, .register-identity h2, .register-success h3 {
    font-family: var(--font-calligraphy);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .01em;
}
.section-title { font-size: clamp(2.15rem, 4.5vw, 3.25rem); }
.sect-name-vn { font-family: var(--font-calligraphy); font-size: 1.35rem; line-height: 1.6; }
.nav-btn, .nav-link, .badge-anc, .btn, .back-to-top-btn, .hero-scroll-hint {
    font-family: var(--font-reading);
}
.nav-btn { font-size: .8rem; font-weight: 600; }
.red-seal { font-family: var(--font-calligraphy); font-weight: 700; letter-spacing: .025em; line-height: 1.65; }
.badge-anc { font-size: .75rem; line-height: 1.7; letter-spacing: .12em; }
.ttl-sub { font-size: clamp(.9rem, 1.6vw, 1.15rem); letter-spacing: .075em; }
.intro-quote-text { font-family: var(--font-calligraphy); font-weight: 400; line-height: 1.8; }
.square-seal, .line-seal, .section-seal-badge, .chinese-serif, .ttl-v, .intro-art-seal,
.scroll-watermark, .sect-name-cn, .footer-couplet, .register-success-seal,
.celebration-root > span, .celebration-seal, .article-kicker > span, .notice-seal {
    font-family: var(--font-han);
    font-weight: 400;
}
.celebration-copy h3 { font-family: var(--font-calligraphy); font-weight: 700; }
body > header > a, main > h1 { font-family: var(--font-calligraphy); font-weight: 700; line-height: 1.55; }
.chronicle-summary h3 { font-family: var(--font-reading); }
@media (max-width: 480px) {
    .nav-brand-title { font-size: 1.25rem; }
    .nav-brand-sub { font-size: .6rem; letter-spacing: .12em; }
    .ttl-main { font-size: clamp(2.25rem, 9.5vw, 3.4rem); }
    .badge-anc { font-size: .62rem; letter-spacing: .06em; }
    .red-seal { font-size: 1.15rem; }
    .sect-name-vn { font-size: 1.4rem; }
}
