/* 公共样式表 */
page {
    min-height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
    font-size: 28rpx;
    background-color: #FFFFFF;
    color: #333333;
    overflow: hidden;
}

/* 禁止页面回弹 */
/* html,
body,
page {
    overscroll-behavior: none;
    overflow: hidden;
} */

image {
    width: 100%;
    height: 100%;
}

.page-body {
    height: calc(100vh - var(--window-top) - var(--status-bar-height) - var(--window-bottom));
    /* width: 100%; */
    /* height: 100%; */
}

body,
html {
    height: 100%;
    width: 100%;
    overflow-x: hidden;
}

li {
    list-style: none;
}

/* 布局调整 */

/* 点击动效 */
/* 缩小 */
.button-click {
    /* transition: transform 0.1s ease; */
    transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.button-click:active {
    transform: scale(0.95);
}

/* 背景变色 */
.btn-light {
    color: white;
    border-radius: 16rpx;
    transition: background-color 0.2s;
}

.btn-light:active {
    background-color: rgba(189, 197, 254, 0.15);
}


.btn-incline {
    transition: transform 0.2s ease;
    transform-style: preserve-3d;
}

.btn-incline:active {
    transform: perspective(600px) rotateY(6deg) rotateX(3deg);
}

.btn-feel {
    transition: transform 0.5s ease;
    /* transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275); */
    transform-style: preserve-3d;
}

.btn-feel:active {
    transform: perspective(600px) rotateX(6deg) scale(0.98);
}

.press-button {
    padding: 10px 20px;
    background: #3A4750;
    /* 深灰蓝 */
    color: #ffffff;
    font-size: 16px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    /* transition: transform 0.4s ease, box-shadow 0.1s ease; */
    transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    /* box-shadow: 0 4px 0 #2C3E50; */
}

.press-button:active {
    transform: scale(0.95) translateY(2px);
    /* box-shadow: 0 2px 0 #1C2833; */
}

/* 动画效果 */
.btn-shaky:active {
    animation: shakeScale 0.6s;
}

@keyframes shakeScale {
    0% {
        transform: scale(1);
    }

    10% {
        transform: scale(0.9) rotate(-3deg);
    }

    20% {
        transform: scale(1.05) rotate(3deg);
    }

    30% {
        transform: scale(0.95) rotate(-3deg);
    }

    40% {
        transform: scale(1.02) rotate(3deg);
    }

    50% {
        transform: scale(0.98) rotate(-2deg);
    }

    60% {
        transform: scale(1.01) rotate(2deg);
    }

    70% {
        transform: scale(0.99) rotate(-1deg);
    }

    80% {
        transform: scale(1.005) rotate(1deg);
    }

    90% {
        transform: scale(1) rotate(0deg);
    }

    100% {
        transform: scale(1) rotate(0deg);
    }
}

/* 控制hover */
.opctiy_8 {
    opacity: 0.8 !important;
}

.opctiy_7 {
    opacity: 0.7 !important;
}

.opctiy_6 {
    opacity: 0.6 !important;
}

.opctiy_5 {
    opacity: 0.5 !important;
}

.opctiy_4 {
    opacity: 0.4 !important;
}

.opctiy_3 {
    opacity: 0.3 !important;
}

.opctiy_2 {
    opacity: 0.2 !important;
}

.opctiy_1 {
    opacity: 0.1 !important;
}

/* 控制文字大小 */
.fs_10 {
    font-size: 20rpx !important;
}

.fs_12 {
    font-size: 24rpx !important;
}

.fs_14 {
    font-size: 28rpx !important;
}

.fs_16 {
    font-size: 32rpx !important;
}

.fs_18 {
    font-size: 36rpx !important;
}

.fs_20 {
    font-size: 40rpx !important;
}

.fs_22 {
    font-size: 44rpx !important;
}

.fs_24 {
    font-size: 48rpx !important;
}

.fs_26 {
    font-size: 52rpx !important;
}

.fs_28 {
    font-size: 56rpx !important;
}

.fs_30 {
    font-size: 60rpx !important;
}

.fs_32 {
    font-size: 64rpx !important;
}

/* 控制字体粗细 */
.fw_blod {
    font-weight: bold;
}

/* 控制字体颜色 */
.color_D16B3F {
    color: #D16B3F !important;
}

.color_C7331D {
    color: #C7331D !important;
}

.color_666666 {
    color: #666666 !important;
}

.color_F8A52F {
    color: #F8A52F !important;
}

.color_999999 {
    color: #999999 !important;
}

.color_C7331D {
    color: #C7331D !important;
}

.color_333333 {
    color: #333333 !important;
}

.color_FFFFFF {
    color: #FFFFFF !important;
}

.color_E7612E {
    color: #E7612E !important;
}

.color_EF4B37 {
    color: #EF4B37 !important;
}

.color_5F5F5F {
    color: #5F5F5F !important;
}

.color_FB7307 {
    color: #FB7307 !important;
}

.color_256BFA {
    color: #256BFA !important;
}

.color_4E8ADE {
    color: #4E8ADE !important;
}

.color_D9D9D9 {
    color: #D9D9D9 !important;
}

/* 控制左右距离 */
.mar_le30 {
    margin-left: 60rpx !important;
}

.mar_le25 {
    margin-left: 50rpx !important;
}

.mar_le20 {
    margin-left: 40rpx !important;
}

.mar_le15 {
    margin-left: 30rpx !important;
}

.mar_le10 {
    margin-left: 20rpx !important;
}

.mar_le5 {
    margin-left: 10rpx !important;
}

.mar_ri5 {
    margin-right: 10rpx !important;
}

.mar_ri10 {
    margin-right: 20rpx !important;
}

.mar_ri15 {
    margin-right: 30rpx !important;
}

.mar_ri20 {
    margin-right: 40rpx !important;
}

.mar_ri25 {
    margin-right: 50rpx !important;
}

.mar_top0 {
    margin-top: 0 !important;
}

.mar_top5 {
    margin-top: 10rpx !important;
}

.mar_top10 {
    margin-top: 20rpx !important;
}

.mar_top15 {
    margin-top: 30rpx !important;
}

.mar_top20 {
    margin-top: 40rpx !important;
}

.mar_top25 {
    margin-top: 50rpx !important;
}

/* 控制字体粗细  */
.fw_blod {
    font-weight: bold !important;
}

/* 控制背景色 */
.bg_e8 {
    background-color: #e8e8e8 !important;
}

/* 控制背景色 */
.bg_cc {
    background-color: #CCCCCC !important;
}

/* 控制背景色 */
.bg_ff {
    background-color: #ffffff !important;
}



/* 弹性布局 */
.fl_box {
    display: flex;
}

.fl_deri {
    flex-direction: column;
}

.fl_row {
    flex-direction: row;
}

.fl_justmiddle {
    justify-content: center;
}

.fl_juststart {
    justify-content: flex-start;
}

.fl_justbet {
    justify-content: space-between;
}

.fl_justround {
    justify-content: space-around;
}

.fl_justend {
    justify-content: flex-end;
}

.fl_almiddle {
    align-items: center;
}

.fl_alstart {
    align-items: flex-start;
}

.fl_alend {
    align-items: flex-end;
}

.fl_1 {
    flex: 1;
}

.fl_warp {
    flex-wrap: wrap
}

.fl_nowarp {
    flex-wrap: nowrap
}

.line_2 {
    display: -webkit-box;
    /* 让文本内容成为弹性盒 */
    -webkit-box-orient: vertical;
    /* 设置盒子的方向为垂直 */
    -webkit-line-clamp: 2;
    /* 限制最多显示两行 */
    overflow: hidden;
    /* 隐藏超出的文本 */
    text-overflow: ellipsis;
    /* 使用省略号 */
}

.line_1 {
    display: -webkit-box;
    /* 让文本内容成为弹性盒 */
    -webkit-box-orient: vertical;
    /* 设置盒子的方向为垂直 */
    -webkit-line-clamp: 1;
    /* 限制最多显示两行 */
    overflow: hidden;
    /* 隐藏超出的文本 */
    text-overflow: ellipsis;
    /* 使用省略号 */
}

.grayscale {
    filter: grayscale(100%) opacity(0.6);
}

.height-100 {
    height: 100%;
}


.pointEveNone {
    pointer-events: none;
}

/* 
 * 
 *  TransitionGroup 动画
 *  stagger 错峰
 *  fade-up-stagger --i 淡入上滑（经典错峰）
 *  pop-in-stagger --i 旋转缩放弹入（活泼）
 *  slide-left-stagger 从左侧滑入（消息流风格）
 *  blur-fade-stagger  --i 渐显 + 模糊（毛玻璃感）
 *  bounce-up-stagger 从底部弹跳入场（物理感）
 * 
 */
/* 淡入上滑（经典错峰） */
.fade-up-stagger-enter-active {
    transition: all 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28);
    transition-delay: calc(var(--i) * 0.1s);
}

.fade-up-stagger-enter-from {
    opacity: 0;
    transform: translateY(20px);
}

.fade-up-stagger-leave-active {
    transition: opacity 0.25s ease;
}

.fade-up-stagger-leave-to {
    opacity: 0;
}

/*  */

.pop-in-stagger-enter-active {
    transition: all 0.45s cubic-bezier(0.68, -0.55, 0.27, 1.55);
    transition-delay: calc(var(--i) * 0.08s);
}

.pop-in-stagger-enter-from {
    opacity: 0;
    transform: scale(0.7) rotate(-10deg);
}

.pop-in-stagger-leave-active {
    transition: all 0.2s ease;
}

.pop-in-stagger-leave-to {
    opacity: 0;
    transform: scale(0.9) rotate(5deg);
}

.slide-left-stagger-enter-active {
    transition: all 0.35s ease-out;
    transition-delay: calc(var(--i) * 0.07s);
}

.slide-left-stagger-enter-from {
    opacity: 0;
    transform: translateX(-100%);
}

.slide-left-stagger-leave-active {
    transition: all 0.25s ease;
}

.slide-left-stagger-leave-to {
    opacity: 0;
    transform: translateX(50%);
}

/* 错峰动画 */
.stagger-enter-active {
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transition-delay: calc(var(--i) * 0.42s);
    /* 关键：120ms 间隔 */
}

.stagger-enter-from {
    opacity: 0;
    transform: translateY(30px) scale(0.95);
    /* 更大位移 + 轻微缩放 */
}

.stagger-leave-active {
    transition: all 0.25s ease;
}

.stagger-leave-to {
    opacity: 0;
    transform: translateX(20px);
}

.stagger-move {
    transition: transform 0.4s ease;
}

.blur-fade-stagger-enter-active {
    transition: all 0.5s ease;
    transition-delay: calc(var(--i) * 0.09s);
}

.blur-fade-stagger-enter-from {
    opacity: 0;
    filter: blur(8px);
    transform: scale(1.02);
}

.blur-fade-stagger-leave-active {
    transition: all 0.2s ease;
}

.blur-fade-stagger-leave-to {
    opacity: 0;
    filter: blur(4px);
}

.bounce-up-stagger-enter-active {
    animation: stagger-bounce 0.6s forwards;
    animation-delay: calc(var(--i) * 0.12s);
}

.bounce-up-stagger-leave-active {
    transition: all 0.25s ease;
}

.bounce-up-stagger-leave-to {
    opacity: 0;
    transform: translateY(30px);
}

@keyframes stagger-bounce {
    0% {
        opacity: 0;
        transform: translateY(100px) scale(0.8);
    }

    60% {
        transform: translateY(-10px) scale(1.05);
    }

    80% {
        transform: translateY(5px) scale(0.98);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}