:root {
    /* Brand — 学会蓝 */
    --society-brand-900: #112a70;
    --society-brand-700: #204dca;
    --society-brand-600: #3562e3;
    --society-brand-500: #4b78f0;
    --society-brand-soft: rgba(32, 77, 202, 0.08);
    /* Surface */
    --society-bg: #f6f8fb;
    --society-card: #ffffff;
    --society-border: #e6e8ec;
    --society-text: #1f2d3d;
    --society-muted: #6b7280;
    --society-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
    --society-shadow-sm: 0 4px 12px rgba(15, 23, 42, 0.06);
    --society-radius: 12px;
    --society-radius-sm: 8px;
    /* Layout */
    --society-content-max: 1000px;
    --society-space: 16px;
    --society-touch: 44px;
    /* Motion */
    --society-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --society-duration: 200ms;
    /* Breakpoints (文档用): mobile ≤767 / tablet 768–1023 / desktop ≥1024 */
}

html {
    overflow-y: scroll;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, blockquote, th, td {
    margin: 0;
    padding: 0;
}

body {
    font-size: 15px;
    color: var(--society-text);
    background: var(--society-bg);
    line-height: 1.65;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
    overflow-x: hidden;
}

fieldset, img {
    border: 0;
    max-width: 100%;
}

ol, ul, li {
    list-style: none;
}

h1, h2, h3, h4, h5, h6 {
    font-size: 100%;
}

em {
    font-style: normal;
}

input, button, select, textarea {
    outline: none;
    font-family: inherit;
}

textarea {
    resize: none;
}

p {
    text-align: justify;
    text-justify: distribute;
    word-wrap: break-word;
}

a {
    text-decoration: none;
    color: inherit;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
    transition: color var(--society-duration) var(--society-ease);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--society-brand-600);
    outline-offset: 2px;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

sup {
    vertical-align: text-top;
}

sub {
    vertical-align: text-bottom;
}

figure {
    margin: 0;
}

.clearfix:after {
    content: "";
    display: block;
    height: 0;
    clear: both;
}

.clearfix {
    *zoom: 1;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
