/* fonts */
    * { margin: 0; padding: 0; box-sizing: border-box; }
    /* zt */
    html { scrollbar-width: thin; scrollbar-color: rgba(120,140,170,.45) var(--bg-b); }
    ::-webkit-scrollbar { width: 10px; height: 10px; }
    ::-webkit-scrollbar-track { background: var(--bg-b); }
    ::-webkit-scrollbar-thumb { background: rgba(120,140,170,.45); border-radius: 0; }
    ::-webkit-scrollbar-thumb:hover { background: rgba(120,140,170,.65); }
    canvas.zt-snow { position: fixed; top: -70px; left: 0; width: 100%; height: calc(100% + 190px); height: calc(100lvh + 190px); z-index: 2147483000; pointer-events: none; }
    /* vars */
    :root {
        --bg-a: #ffffff;
        --bg-b: #b3e5fc;
        --bg-grad: linear-gradient(135deg, var(--bg-a) 0%, var(--bg-b) 100%);
        --bg-end: #b3e5fc;
        --bg-canvas: #e5f6fe;
        --fg: #0d1b2a;
        --ok: #2e7d32;
        --err: #d32f2f;
        --fg-ver: #9aa4b0;
        --card-bd: rgba(255,255,255,.8);
        --log-lead: rgba(13,27,42,.62);
        --log-muted: rgba(13,27,42,.62);
        --log-body: #243447;
        --log-fix: #1565c0;
        --log-card-bg: #fff;
        --log-card-sh: 0 2px 12px rgba(0,0,0,.05);
        --log-sep: rgba(0,0,0,.06);
    }
    body {
        font-family: 'WenYuanS-CJK', 'WenYuanS-Latin', 'PingFang SC', 'Microsoft YaHei', sans-serif;
        font-weight: 300;
        background: var(--bg-grad);
        background-color: var(--bg-canvas);
        min-height: 100vh;
        padding: 40px 20px;
        color: var(--fg);
    }
    .wrap { max-width: 1400px; margin: 0 auto; }
    /* desktop */
    @media (hover: hover) and (pointer: fine) { body { zoom: 1.14; } .wrap { max-width: 1228px; } }
    @media (max-width: 1180px), (pointer: coarse) { .wrap { max-width: 1100px; } }   /* wrap-m */

    .back { display: inline-block; margin-bottom: 20px; color: var(--fg); text-decoration: none; font-size: 14px; opacity: .7; }
    .back:hover { opacity: 1; text-decoration: underline; }

    .page-head { display: flex; align-items: baseline; gap: 14px; margin-bottom: 10px; }
    .page-head h1 { font-size: 28px; font-weight: 700; margin: 0; }
    .lead { font-size: 13px; line-height: 1.9; color: var(--log-lead); margin: 0 0 14px; }
    .legend { font-size: 13px; color: var(--log-lead); margin: 0 0 26px; display: flex; gap: 18px; flex-wrap: wrap; }
    .legend .sym { font-weight: 700; }
    .legend .add .sym { color: var(--ok); }
    .legend .del .sym { color: var(--err); }
    .legend .fix .sym { color: var(--log-fix); }

    /* entry */
    .log-entry {
        background: var(--log-card-bg);
        border: 1px solid var(--card-bd);
        box-shadow: var(--log-card-sh);
        border-radius: 0;
        padding: 18px 22px 20px;
        margin-bottom: 18px;
    }
    .log-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--log-sep); }
    .log-ver { font-family: 'BodoniModa', 'WenYuanS-Latin', serif; font-weight: 400; font-style: italic; font-size: 24px; line-height: 1; color: var(--fg); letter-spacing: .01em; }

    .log-list { list-style: none; margin: 0; padding: 0; }
    .log-list li { display: flex; gap: 9px; font-size: 15px; line-height: 2; color: var(--log-body); }
    .log-list .sym { font-weight: 700; width: 1em; text-align: center; flex: none; }
    .log-list li.add .sym { color: var(--ok); }
    .log-list li.del .sym { color: var(--err); }
    .log-list li.fix .sym { color: var(--log-fix); }
    .log-list li.other .sym { color: var(--fg-ver); }
    .empty { text-align: center; color: var(--log-muted); padding: 30px 0; font-size: 14px; }

    @media (max-width: 640px) { .log-ver { font-size: 20px; } .log-list li { font-size: 14px; } }

    @supports (-webkit-touch-callout: none) {
        body { min-height: 100dvh; }
        body::before { content:''; position:fixed; left:0; right:0; height:160px; top:-160px; z-index:-1; pointer-events:none; background:var(--bg-a); }
        body::after { content:''; position:fixed; left:0; right:0; height:160px; bottom:-160px; z-index:-1; pointer-events:none; background:var(--bg-end); }
    }
