/* 定义全局 CSS 变量，方便在整个样式表中复用颜色和模糊效果 */
:root {
    /* 主粉色 */
    --main-pink: #FFA1C9;
    /* 天蓝色 */
    --sky-blue: #87CEEB;
    /* 薄荷绿 */
    --mint-green: #98FB98;
    /* 深紫色 */
    --deep-purple: #9370DB;
    /* 背景模糊效果 */
    --bg-blur: blur(12px);
}

/* 全局 body 样式设置 */
body {
    /* 设置字体族，确保在不同操作系统和浏览器中有较好的显示效果 */
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen - Sans, Ubuntu, Cantarell, sans-serif;
    /* 背景使用线性渐变，从 sky - blue 到 main - pink */
    background: linear-gradient(145deg, var(--sky-blue) 0%, var(--main-pink) 100%);
    /* 最小高度为 100vh，确保内容至少占满整个视口高度 */
    min-height: 100vh;
    /* 内边距为 10px */
    padding: 10px;
    /* 相对定位，为子元素的绝对定位提供参考 */
    position: relative;
    /* 隐藏水平滚动条 */
    overflow-x: hidden;
    /* 去除点击元素时的高亮效果 */
    -webkit-tap-highlight-color: transparent;
}

/* 动漫角色元素样式 */
.anime-character {
    /* 固定定位，相对于浏览器窗口 */
    position: fixed;
    /* 层级为 0，处于底层 */
    z-index: 0;
    /* 不响应鼠标指针事件 */
    pointer-events: none;
    /* 最大宽度为 250px */
    max-width: 250px;
    /* 透明度为 0.9 */
    opacity: 0.9;
    /* 默认隐藏 */
    display: none;
}

/* 小部件容器样式 */
.widgets-container {
    /* 固定定位在窗口右上角 */
    position: fixed;
    top: 10px;
    right: 10px;
    /* 使用 flex 布局 */
    display: flex;
    /* 子元素之间的间距为 10px */
    gap: 10px;
    /* 层级为 1000，处于较高层级 */
    z-index: 1000;
}

/* 小部件卡片样式 */
.widget-card {
    /* 背景为半透明白色 */
    background: rgba(255, 255, 255, 0.95);
    /* 应用背景模糊效果 */
    backdrop-filter: var(--bg-blur);
    /* 内边距 */
    padding: 8px 15px;
    /* 圆角边框 */
    border-radius: 20px;
    /* 阴影效果 */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    /* 使用 flex 布局 */
    display: flex;
    /* 垂直居中对齐 */
    align-items: center;
    /* 子元素之间的间距为 6px */
    gap: 6px;
    /* 字体大小 */
    font-size: 14px;
}

/* 主容器样式 */
.main-container {
    /* 相对定位 */
    position: relative;
    /* 最大宽度为 800px */
    max-width: 800px;
    /* 水平居中 */
    margin: 10px auto;
    /* 背景为半透明白色 */
    background: rgba(255, 255, 255, 0.9);
    /* 应用背景模糊效果 */
    backdrop-filter: var(--bg-blur);
    /* 圆角边框 */
    border-radius: 20px;
    /* 内边距 */
    padding: 20px;
    /* 阴影效果 */
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    /* 边框 */
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* 输入框容器样式 */
.input-box {
    /* 相对定位 */
    position: relative;
    /* 上下外边距为 20px */
    margin: 20px 0;
    /* 背景为白色 */
    background: #fff;
    /* 圆角边框 */
    border-radius: 40px;
    /* 阴影效果 */
    box-shadow: 0 3px 12px rgba(255, 161, 201, 0.2);
    /* 溢出内容隐藏 */
    overflow: hidden;
}

/* 输入框样式 */
#urlInput {
    /* 宽度为 100% */
    width: 100%;
    /* 内边距 */
    padding: 14px 110px 14px 45px;
    /* 无边框 */
    border: none;
    /* 透明背景 */
    background: transparent;
    /* 字体大小 */
    font-size: 15px;
    /* 字体颜色 */
    color: #6A5ACD;
    /* 去除聚焦时的轮廓 */
    outline: none;
    /* 盒模型计算方式 */
    box-sizing: border-box;
}

/* 输入框占位符样式 */
#urlInput::placeholder {
    /* 占位符颜色 */
    color: #C8A2C8;
    /* 字体大小 */
    font-size: 14px;
}

/* 输入框图标样式 */
.input-icon {
    /* 绝对定位在输入框内左侧 */
    position: absolute;
    left: 15px;
    top: 50%;
    /* 垂直居中 */
    transform: translateY(-50%);
    /* 图标颜色 */
    color: #C8A2C8;
    /* 图标大小 */
    font-size: 18px;
}

/* 解析按钮样式 */
.parse-btn {
    /* 绝对定位在输入框内右侧 */
    position: absolute;
    right: 4px;
    top: 4px;
    /* 内边距 */
    padding: 10px 20px;
    /* 背景使用线性渐变，从 deep - purple 到 main - pink */
    background: linear-gradient(135deg, var(--deep-purple), var(--main-pink));
    /* 字体颜色为白色 */
    color: white;
    /* 无边框 */
    border: none;
    /* 圆角边框 */
    border-radius: 35px;
    /* 鼠标指针样式为手型 */
    cursor: pointer;
    /* 使用 flex 布局 */
    display: flex;
    /* 垂直居中对齐 */
    align-items: center;
    /* 子元素之间的间距为 6px */
    gap: 6px;
    /* 字体大小 */
    font-size: 14px;
    /* 触摸操作优化 */
    touch-action: manipulation;
}

/* 媒体卡片样式 */
.media-card {
    /* 背景为半透明白色 */
    background: rgba(255, 255, 255, 0.95);
    /* 圆角边框 */
    border-radius: 15px;
    /* 内边距 */
    padding: 15px;
    /* 上下外边距为 15px */
    margin: 15px 0;
    /* 溢出内容隐藏 */
    overflow: hidden;
}

/* 视频容器样式 */
.video-container {
    /* 相对定位 */
    position: relative;
    /* 根据宽度按比例设置高度，实现 16:9 宽高比 */
    padding-top: 56.25%;
    /* 圆角边框 */
    border-radius: 12px;
    /* 溢出内容隐藏 */
    overflow: hidden;
}

/* 视频元素样式 */
video {
    /* 绝对定位在视频容器内 */
    position: absolute;
    top: 0;
    left: 0;
    /* 宽度和高度为 100% */
    width: 100%;
    height: 100%;
    /* 填充整个容器 */
    object-fit: cover;
}

/* 跳动加载器容器样式 */
.bouncing-loader {
    /* 使用 flex 布局，水平居中 */
    display: flex;
    justify-content: center;
    /* 上下外边距为 15px */
    margin: 15px 0;
}

/* 跳动加载器的子元素样式 */
.bouncing-loader div {
    /* 宽度和高度 */
    width: 10px;
    height: 10px;
    /* 外边距 */
    margin: 3px;
    /* 背景颜色 */
    background: var(--deep-purple);
    /* 圆形 */
    border-radius: 50%;
    /* 应用跳动动画，持续时间 0.6 秒，无限循环，交替反向播放 */
    animation: bouncing 0.6s infinite alternate;
}

/* 跳动动画关键帧 */
@keyframes bouncing {
    to {
        /* 向上移动 10px */
        transform: translateY(-10px);
    }
}

/* 调试信息容器样式 */
.debug-info {
    /* 固定定位在窗口左下角 */
    position: fixed;
    bottom: 5px;
    left: 5px;
    /* 背景为半透明黑色 */
    background: rgba(0, 0, 0, 0.7);
    /* 字体颜色为白色 */
    color: white;
    /* 内边距 */
    padding: 8px;
    /* 圆角边框 */
    border-radius: 4px;
    /* 字体大小 */
    font-size: 11px;
    /* 层级为 9999，处于最高层级 */
    z-index: 9999;
    /* 最大宽度为 90% */
    max-width: 90%;
}

/* 媒体查询，当屏幕宽度大于等于 768px 时应用以下样式 */
@media (min-width: 768px) {
    /* 主容器样式调整 */
    .main-container {
        /* 内边距调整 */
        padding: 30px;
        /* 上下外边距调整 */
        margin: 20px auto;
    }

    /* 输入框样式调整 */
    #urlInput {
        /* 字体大小调整 */
        font-size: 16px;
        /* 内边距调整 */
        padding: 16px 130px 16px 50px;
    }

    /* 解析按钮样式调整 */
    .parse-btn {
        /* 内边距调整 */
        padding: 12px 25px;
        /* 字体大小调整 */
        font-size: 15px;
    }

    /* 动漫角色元素显示 */
    .anime-character {
        display: block;
    }
}