html { scroll-behavior: smooth; }
body { font-family: 'Kanit', sans-serif; background-color: #fafaf9; caret-color: #1f6e25; }
html[lang="zh-Hans"] body { font-family: "Noto Sans SC", "Kanit", sans-serif; }
html[lang="ko"] body { font-family: "Noto Sans KR", "Kanit", sans-serif; }
html[lang="ja"] body { font-family: "Noto Sans JP", "Kanit", sans-serif; }
::selection { background: #b3e4b8; color: #164f1a; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
    outline: 2px solid #1f6e25;
    outline-offset: 3px;
}
.nav-scrim { position: fixed; inset: 0; z-index: 50; background: rgba(15, 56, 30, 0.45); opacity: 0; pointer-events: none; transition: opacity 0.35s ease; }
.nav-scrim.open { opacity: 1; pointer-events: auto; }
.nav-drawer { position: fixed; top: 0; right: 0; z-index: 60; height: 100dvh; width: min(22rem, 88vw); background: #fff; transform: translateX(100%); transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); box-shadow: -12px 0 32px -18px rgba(15, 56, 30, 0.45); }
.nav-drawer.open { transform: translateX(0); }
@media (min-width: 1024px) { .nav-scrim, .nav-drawer { display: none; } }
#siteHeader nav { font-size: 13px; }
#siteHeader nav > a,
#siteHeader #libraryBtn { padding: 0.35rem 0.6rem; }
#siteBar, #siteLogo { transition: height 0.25s ease, padding 0.25s ease; }
#siteHeader.is-compact #siteBar { height: 3.5rem; }
#siteHeader.is-compact #siteLogo { height: 2.25rem; }
#backTop {
    position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 45;
    width: 3rem; height: 3rem; border-radius: 999px;
    background: #1f6e25; color: #fff;
    box-shadow: 0 14px 28px -14px rgba(22, 79, 26, 0.8);
    opacity: 0; pointer-events: none;
    transform: translateY(16px) scale(0.85);
    transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), background 0.2s ease;
}
#backTop.is-on { opacity: 1; pointer-events: auto; transform: none; }
#backTop:hover { background: #164f1a; transform: translateY(-4px); }
#backTop i { transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); }
#backTop:hover i { transform: translateY(-3px); }
@media (prefers-reduced-motion: reduce) {
    #siteBar, #siteLogo, #backTop, #backTop i { transition: none; }
}
.cms-body > * + * { margin-top: 1rem; }
.cms-body p { margin: 0; }
.cms-body a { color: #1f6e25; text-decoration: underline; text-underline-offset: 3px; }
.cms-body ul, .cms-body ol { margin: 0; padding-left: 1.25rem; }
.cms-body ul { list-style: disc; }
.cms-body ol { list-style: decimal; }
.cms-body li + li { margin-top: 0.35rem; }
.cms-body h2, .cms-body h3 { color: #111827; font-weight: 600; }
.about-copy { display: grid; gap: 1rem; }
.about-copy > p {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: 1.75rem;
    padding: 1.6rem 1.35rem;
    line-height: 1.9;
}
.about-copy > p:first-child {
    background: #fff;
    border: 1px solid #e7e5e4;
    box-shadow: 0 28px 50px -38px rgba(22, 79, 26, 0.65);
    color: #44403c;
    font-size: 1.05rem;
}
.about-copy > p:first-child::before {
    content: "";
    display: block;
    width: 3rem;
    height: 0.28rem;
    margin-bottom: 1.15rem;
    border-radius: 999px;
    background: #30a037;
}
.about-copy > p:nth-child(2) {
    background: #f2faf3;
    border: 1px solid #d9f2dc;
    color: #1c1917;
}
.about-copy > p:nth-child(n+4) {
    background: #fff;
    border: 1px solid #e7e5e4;
    color: #44403c;
}
.about-copy > p:nth-child(3) {
    background:
        radial-gradient(circle at 115% 130%, rgba(39, 140, 46, 0.95) 0 6.5rem, transparent 6.6rem),
        #164f1a;
    color: #d9f2dc;
    box-shadow: 0 28px 48px -32px rgba(14, 53, 18, 0.8);
}
@media (min-width: 640px) {
    .about-copy > p { padding: 2rem 2.15rem; }
}
@media (min-width: 1024px) {
    .about-copy { grid-template-columns: 0.85fr 1.15fr; gap: 1.25rem; align-items: stretch; }
    .about-copy > p:first-child {
        grid-column: 1 / -1;
        column-count: 2;
        column-gap: 2.75rem;
        padding: 2.25rem 2.5rem 2.4rem;
    }
    .about-copy > p:first-child::before { column-span: all; }
}
