/* ===== lbot 全站增量特效合集（plus 最终版） ===== */

/* 1. 项目卡片玻璃悬浮 */
.lbot-main .projectItem {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    backdrop-filter: blur(10px);
    transition: all .3s cubic-bezier(.25, .8, .25, 1);
    will-change: transform;
}
.lbot-main .projectItem:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px rgba(0, 245, 212, .25);
}

/* 2. 按钮/链接微动效 */
.lbot-main button,
.lbot-main .iconItem,
.lbot-main a:not(.projectItem) {
    transition: all .2s cubic-bezier(.25, .8, .25, 1);
}
.lbot-main button:active {
    transform: scale(.96);
}

/* 3. 图片懒加载模糊渐显 */
.lbot-main img[loading="lazy"] {
    opacity: 0;
    filter: blur(5px);
    transition: opacity .4s, filter .4s;
}
.lbot-main img[loading="lazy"].loaded {
    opacity: 1;
    filter: blur(0);
}

/* 4. 顶部阅读进度条 */
html::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: var(--scroll, 0%);
    background: #00f5d4;
    z-index: 9999;
    transition: width .2s;
}

/* 5. 鼠标光晕（CSS+单行 JS 已放 plus.min.js） */
/* 鼠标光晕效果 */
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(
        circle 80px at var(--mouse-x, 50%) var(--mouse-y, 50%), 
        rgba(255, 255, 255, 0.12) 0%, 
        transparent 70%
    );
    pointer-events: none;
    z-index: 9999;
    transition: background 0.3s ease;
}

/* 6. 底部备案栏玻璃 + 荧光 hover */
.lbot-main + footer {
    position: relative;
    margin-top: 60px;
    padding: 20px 0;
    text-align: center;
    font-size: 14px;
    color: rgba(255, 255, 255, 0.6);
    background: rgba(255, 255, 255, 0.05);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    transition: all .3s ease;
}
.lbot-main + footer a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    position: relative;
    transition: color .3s;
}
.lbot-main + footer a::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 1px;
    background: #00f5d4;
    transition: width .3s;
}
.lbot-main + footer a:hover {
    color: #00f5d4;
}
.lbot-main + footer a:hover::before {
    width: 100%;
}
.lbot-main + footer img[src*="ghs"] {
    filter: brightness(1);
    transition: filter .3s;
}
.lbot-main + footer img[src*="ghs"]:hover {
    filter: brightness(1.2);
}

/* 7. 平滑滚动 */
html {
    scroll-behavior: smooth;
}

@media (max-width: 768px) {
    /* 1. 去重左侧栏 */
    .lbot-left { display: none; }

    /* 2. 右侧单栏布局 */
    .lbot-main { flex-direction: column; }
    .lbot-right {
        width: 100%;
        padding: 0 16px;
        box-sizing: border-box;
        min-height: 0;          /* 去掉强制视口高 */
    }

    /* 3. 呼吸灯保持原尺寸，只下移避开导航条 */
    #lbot-loading-center {
        width: 48px;            /* 原尺寸 */
        height: 48px;
    }
    #lbot-loading::after {
        bottom: env(safe-area-inset-bottom, 8px); /* 下移避 Home 条 */
    }

    /* 4. 锁滚动时禁止横向溢出 */
    body.loading-lock { overflow-x: hidden; }
}

/* 手机专用节点：电脑不可见 */
.m-only {
    display: none;              /* 电脑默认隐藏 */
}

@media (max-width: 768px) {
    .m-only {
        display: block;         /* 手机才显示 */
        background: rgba(255,255,255,.05);
        border: 1px solid rgba(255,255,255,.1);
        border-radius: 8px;
        margin: 12px 16px 0;
        padding: 10px 14px;
        color: #fff;
        font-size: 14px;
        cursor: pointer;
    }
    .m-time-title { display: flex; align-items: center; gap: 6px; }

/* 手机历史日程默认折叠 */
.m-time-list {
    max-height: 0 !important;
    overflow: hidden;
    transition: max-height 0.4s ease;
}

.m-time.open .m-time-list {
    max-height: 300px !important;
}
    /* 右侧单栏 */
    .lbot-main { flex-direction: column; }
    .lbot-right { width: 100%; padding: 0 16px; box-sizing: border-box; }
}

.m-time-title::after {
    content: ' ▼';
    transition: transform 0.3s;
}
.m-time.open .m-time-title::after {
    transform: rotate(180deg);
}

/* ---------- 零视觉损失加速 ---------- */
.lbot-main,
.projectItem,
.iconItem,
.switch,
.left-div,
footer {
    /* 不动画的位置也加一句，提前升层 */
    will-change: transform;
    transform: translateZ(0);      /* 强制合成层 */
}

/* 玻璃模糊只给最终帧，去掉过渡时的实时模糊 */
.projectItem,
.left-div,
.iconItem,
.switch {
    transition: transform .3s cubic-bezier(.25,.8,.25,1),
                box-shadow .3s cubic-bezier(.25,.8,.25,1);
    /* 把 backdrop-filter 从 transition 里踢出去 */
    backdrop-filter: blur(var(--card_filter));
}