.zjl-v2,
.zjl-v2 *,
.zjl-v2 *::before,
.zjl-v2 *::after {
    box-sizing: border-box;
}

.zjl-v2 {
    background: var(--zjl-surface-base);
    color: var(--zjl-ink-body);
    font-family: var(--zjl-font-sans);
    font-size: var(--zjl-fs-body);
    line-height: var(--zjl-lh-body);
    letter-spacing: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.zjl-v2 img,
.zjl-v2 svg,
.zjl-v2 video {
    max-width: 100%;
    height: auto;
    display: block;
}

.zjl-v2 a {
    color: var(--zjl-ink-primary);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
    transition: color var(--zjl-dur-fast) var(--zjl-ease);
}

.zjl-v2 a:hover {
    color: var(--zjl-accent);
    text-decoration-color: var(--zjl-accent);
}

.zjl-v2 button,
.zjl-v2 input,
.zjl-v2 select,
.zjl-v2 textarea {
    font: inherit;
    color: inherit;
}

.zjl-v2 :focus-visible {
    outline: 3px solid var(--zjl-accent);
    outline-offset: 3px;
}

.zjl-v2 hr {
    border: 0;
    border-top: 1px solid var(--zjl-border-warm);
    margin: var(--zjl-space-8) 0;
}
