2026-01-06 14:24:42 +08:00
|
|
|
/* ========== 基础重置 ========== */
|
|
|
|
|
* {
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
margin: 0;
|
|
|
|
|
padding: 0;
|
|
|
|
|
-webkit-tap-highlight-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
:root {
|
2026-01-09 13:46:36 +08:00
|
|
|
--bg-dark: #1a0a2e;
|
|
|
|
|
--bg-purple: #2d1b4e;
|
|
|
|
|
--neon-pink: #FF6B9D;
|
2026-01-06 14:24:42 +08:00
|
|
|
--neon-cyan: #08D9D6;
|
|
|
|
|
--neon-purple: #a855f7;
|
2026-01-09 13:46:36 +08:00
|
|
|
--center-pink: #FF7EB3;
|
2026-01-06 14:24:42 +08:00
|
|
|
--text-primary: #ffffff;
|
2026-01-09 13:46:36 +08:00
|
|
|
--text-secondary: rgba(255, 255, 255, 0.7);
|
2026-01-06 14:24:42 +08:00
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* 轨道半径 */
|
|
|
|
|
--orbit-radius: min(32vw, 120px);
|
2026-01-06 14:24:42 +08:00
|
|
|
--avatar-size: min(15vw, 56px);
|
2026-01-09 13:46:36 +08:00
|
|
|
--center-size: min(30vw, 115px);
|
|
|
|
|
|
|
|
|
|
/* 底部面板高度 */
|
|
|
|
|
--sheet-peek-height: 200px;
|
|
|
|
|
--sheet-expanded-height: 70vh;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
html, body {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
|
|
|
|
|
background: var(--bg-dark);
|
|
|
|
|
color: var(--text-primary);
|
2026-01-09 13:46:36 +08:00
|
|
|
overflow: hidden;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ========== 主容器 ========== */
|
|
|
|
|
.pond-app {
|
|
|
|
|
position: relative;
|
|
|
|
|
width: 100%;
|
|
|
|
|
max-width: 430px;
|
2026-01-09 13:46:36 +08:00
|
|
|
height: 100vh;
|
|
|
|
|
height: 100dvh;
|
2026-01-06 14:24:42 +08:00
|
|
|
margin: 0 auto;
|
2026-01-09 13:46:36 +08:00
|
|
|
background: linear-gradient(180deg, #1a0a2e 0%, #2d1b4e 50%, #1a0a2e 100%);
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.pond-inner {
|
|
|
|
|
position: relative;
|
|
|
|
|
z-index: 10;
|
2026-01-09 13:46:36 +08:00
|
|
|
padding: 12px 16px;
|
|
|
|
|
flex: 1;
|
2026-01-06 14:24:42 +08:00
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
2026-01-09 13:46:36 +08:00
|
|
|
overflow: hidden;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* ========== 背景层 - 星空效果 ========== */
|
2026-01-06 14:24:42 +08:00
|
|
|
.bg-layer {
|
|
|
|
|
position: fixed;
|
|
|
|
|
inset: 0;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.gradient-orb {
|
|
|
|
|
position: absolute;
|
|
|
|
|
border-radius: 50%;
|
2026-01-09 13:46:36 +08:00
|
|
|
filter: blur(100px);
|
|
|
|
|
opacity: 0.5;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.orb-1 {
|
2026-01-09 13:46:36 +08:00
|
|
|
width: 300px;
|
|
|
|
|
height: 300px;
|
|
|
|
|
top: -100px;
|
|
|
|
|
left: -100px;
|
|
|
|
|
background: #4a2c7a;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.orb-2 {
|
2026-01-09 13:46:36 +08:00
|
|
|
width: 250px;
|
|
|
|
|
height: 250px;
|
|
|
|
|
top: 20%;
|
|
|
|
|
right: -80px;
|
|
|
|
|
background: #6b3fa0;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* 星星效果 */
|
|
|
|
|
.bg-layer::before {
|
|
|
|
|
content: '';
|
2026-01-06 14:24:42 +08:00
|
|
|
position: absolute;
|
|
|
|
|
inset: 0;
|
|
|
|
|
background-image:
|
2026-01-09 13:46:36 +08:00
|
|
|
radial-gradient(2px 2px at 20px 30px, white, transparent),
|
|
|
|
|
radial-gradient(2px 2px at 40px 70px, rgba(255,255,255,0.8), transparent),
|
|
|
|
|
radial-gradient(1px 1px at 90px 40px, white, transparent),
|
|
|
|
|
radial-gradient(2px 2px at 130px 80px, rgba(255,255,255,0.6), transparent),
|
|
|
|
|
radial-gradient(1px 1px at 160px 120px, white, transparent),
|
|
|
|
|
radial-gradient(2px 2px at 200px 50px, rgba(255,255,255,0.7), transparent),
|
|
|
|
|
radial-gradient(1px 1px at 250px 160px, white, transparent),
|
|
|
|
|
radial-gradient(2px 2px at 300px 100px, rgba(255,255,255,0.5), transparent);
|
|
|
|
|
background-size: 350px 200px;
|
|
|
|
|
animation: twinkle 4s ease-in-out infinite;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
@keyframes twinkle {
|
|
|
|
|
0%, 100% { opacity: 0.8; }
|
|
|
|
|
50% { opacity: 1; }
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* ========== 顶部栏 ========== */
|
|
|
|
|
.top-bar {
|
2026-01-06 14:24:42 +08:00
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
2026-01-09 13:46:36 +08:00
|
|
|
margin-bottom: 8px;
|
2026-01-06 14:24:42 +08:00
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.page-title {
|
|
|
|
|
font-size: 22px;
|
2026-01-06 14:24:42 +08:00
|
|
|
font-weight: 700;
|
2026-01-09 13:46:36 +08:00
|
|
|
color: var(--text-primary);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.filter-btn {
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: var(--text-secondary);
|
|
|
|
|
padding: 6px 12px;
|
|
|
|
|
background: rgba(255, 255, 255, 0.1);
|
|
|
|
|
border-radius: 14px;
|
|
|
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* ========== 匹配圆环区域 ========== */
|
2026-01-06 14:24:42 +08:00
|
|
|
.match-area {
|
|
|
|
|
position: relative;
|
|
|
|
|
width: 100%;
|
2026-01-09 13:46:36 +08:00
|
|
|
flex: 1;
|
|
|
|
|
min-height: 280px;
|
|
|
|
|
max-height: 380px;
|
|
|
|
|
margin: 0 auto;
|
2026-01-06 14:24:42 +08:00
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* 中心按钮 - 粉色圆形 */
|
2026-01-06 14:24:42 +08:00
|
|
|
.center-ring {
|
|
|
|
|
position: absolute;
|
|
|
|
|
width: var(--center-size);
|
|
|
|
|
height: var(--center-size);
|
|
|
|
|
left: 50%;
|
|
|
|
|
top: 50%;
|
|
|
|
|
transform: translate(-50%, -50%);
|
|
|
|
|
z-index: 10;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* 脉冲动画 */
|
2026-01-06 14:24:42 +08:00
|
|
|
.ring-pulse {
|
|
|
|
|
position: absolute;
|
2026-01-09 13:46:36 +08:00
|
|
|
inset: -8px;
|
2026-01-06 14:24:42 +08:00
|
|
|
border-radius: 50%;
|
2026-01-09 13:46:36 +08:00
|
|
|
background: rgba(255, 126, 179, 0.25);
|
|
|
|
|
animation: pulse-expand 2s ease-out infinite;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.ring-pulse.delay-1 { animation-delay: 0.6s; }
|
|
|
|
|
.ring-pulse.delay-2 { animation-delay: 1.2s; }
|
2026-01-06 14:24:42 +08:00
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
@keyframes pulse-expand {
|
|
|
|
|
0% { transform: scale(1); opacity: 0.5; }
|
|
|
|
|
100% { transform: scale(1.6); opacity: 0; }
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ring-core {
|
|
|
|
|
position: absolute;
|
2026-01-09 13:46:36 +08:00
|
|
|
inset: 0;
|
|
|
|
|
background: linear-gradient(180deg, #FFB6D3 0%, #FF7EB3 40%, #FF6BA8 100%);
|
2026-01-06 14:24:42 +08:00
|
|
|
border-radius: 50%;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
box-shadow:
|
2026-01-09 13:46:36 +08:00
|
|
|
0 6px 24px rgba(255, 107, 157, 0.5),
|
|
|
|
|
inset 0 2px 8px rgba(255, 255, 255, 0.3);
|
2026-01-06 14:24:42 +08:00
|
|
|
transition: transform 0.2s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.ring-core:active {
|
2026-01-09 13:46:36 +08:00
|
|
|
transform: scale(0.95);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.core-inner {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
display: flex;
|
2026-01-09 13:46:36 +08:00
|
|
|
flex-direction: column;
|
2026-01-06 14:24:42 +08:00
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
2026-01-09 13:46:36 +08:00
|
|
|
gap: 2px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.core-text {
|
|
|
|
|
font-size: min(5vw, 20px);
|
|
|
|
|
font-weight: 700;
|
2026-01-06 14:24:42 +08:00
|
|
|
color: #fff;
|
2026-01-09 13:46:36 +08:00
|
|
|
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.core-sub {
|
|
|
|
|
font-size: min(2.6vw, 10px);
|
|
|
|
|
color: rgba(255, 255, 255, 0.9);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* 轨道环 - 虚线圆 */
|
2026-01-06 14:24:42 +08:00
|
|
|
.orbit-ring {
|
|
|
|
|
position: absolute;
|
2026-01-09 13:46:36 +08:00
|
|
|
width: calc(var(--orbit-radius) * 2 + 20px);
|
|
|
|
|
height: calc(var(--orbit-radius) * 2 + 20px);
|
2026-01-06 14:24:42 +08:00
|
|
|
left: 50%;
|
|
|
|
|
top: 50%;
|
|
|
|
|
transform: translate(-50%, -50%);
|
2026-01-09 13:46:36 +08:00
|
|
|
border: 1.5px dashed rgba(255, 255, 255, 0.15);
|
2026-01-06 14:24:42 +08:00
|
|
|
border-radius: 50%;
|
|
|
|
|
pointer-events: none;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* 用户头像容器 */
|
2026-01-06 14:24:42 +08:00
|
|
|
.orbit-users {
|
|
|
|
|
position: absolute;
|
2026-01-09 13:46:36 +08:00
|
|
|
width: calc(var(--orbit-radius) * 2 + var(--avatar-size));
|
|
|
|
|
height: calc(var(--orbit-radius) * 2 + var(--avatar-size) + 40px);
|
2026-01-06 14:24:42 +08:00
|
|
|
left: 50%;
|
|
|
|
|
top: 50%;
|
|
|
|
|
transform: translate(-50%, -50%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.orbit-user {
|
|
|
|
|
position: absolute;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
align-items: center;
|
|
|
|
|
cursor: pointer;
|
2026-01-09 13:46:36 +08:00
|
|
|
transition: transform 0.2s;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.orbit-user:active {
|
|
|
|
|
transform: scale(1.05);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* 6个用户位置 - 模拟左边图片布局 */
|
|
|
|
|
.orbit-user[data-pos="1"] {
|
|
|
|
|
left: 50%;
|
2026-01-06 14:24:42 +08:00
|
|
|
top: 0;
|
2026-01-09 13:46:36 +08:00
|
|
|
transform: translateX(-50%);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
2026-01-09 13:46:36 +08:00
|
|
|
.orbit-user[data-pos="2"] {
|
|
|
|
|
left: 0;
|
|
|
|
|
top: 18%;
|
|
|
|
|
transform: translateX(-20%);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
2026-01-09 13:46:36 +08:00
|
|
|
.orbit-user[data-pos="3"] {
|
|
|
|
|
right: 0;
|
|
|
|
|
top: 18%;
|
|
|
|
|
transform: translateX(20%);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
2026-01-09 13:46:36 +08:00
|
|
|
.orbit-user[data-pos="4"] {
|
|
|
|
|
left: 0;
|
|
|
|
|
top: 62%;
|
|
|
|
|
transform: translateX(-10%);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
2026-01-09 13:46:36 +08:00
|
|
|
.orbit-user[data-pos="5"] {
|
|
|
|
|
right: 0;
|
|
|
|
|
top: 62%;
|
|
|
|
|
transform: translateX(10%);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
2026-01-09 13:46:36 +08:00
|
|
|
.orbit-user[data-pos="6"] {
|
|
|
|
|
left: 50%;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
transform: translateX(-50%);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.user-avatar {
|
|
|
|
|
width: var(--avatar-size);
|
|
|
|
|
height: var(--avatar-size);
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
padding: 2px;
|
2026-01-09 13:46:36 +08:00
|
|
|
background: linear-gradient(135deg, #FF6B9D, #a855f7, #08D9D6);
|
2026-01-06 14:24:42 +08:00
|
|
|
position: relative;
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.avatar-img {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
object-fit: cover;
|
2026-01-09 13:46:36 +08:00
|
|
|
background: #2d1b4e;
|
|
|
|
|
border: 2px solid #1a0a2e;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.user-name {
|
2026-01-09 13:46:36 +08:00
|
|
|
font-size: 11px;
|
2026-01-06 14:24:42 +08:00
|
|
|
font-weight: 600;
|
|
|
|
|
color: var(--text-primary);
|
|
|
|
|
margin-top: 4px;
|
|
|
|
|
text-align: center;
|
2026-01-09 13:46:36 +08:00
|
|
|
max-width: 70px;
|
2026-01-06 14:24:42 +08:00
|
|
|
overflow: hidden;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
text-shadow: 0 1px 3px rgba(0,0,0,0.8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.user-location {
|
2026-01-09 13:46:36 +08:00
|
|
|
font-size: 9px;
|
2026-01-06 14:24:42 +08:00
|
|
|
color: var(--text-secondary);
|
|
|
|
|
text-align: center;
|
|
|
|
|
text-shadow: 0 1px 2px rgba(0,0,0,0.8);
|
2026-01-09 13:46:36 +08:00
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 3px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.user-location::before {
|
|
|
|
|
content: '○';
|
|
|
|
|
font-size: 6px;
|
|
|
|
|
color: #4ade80;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ========== 广告横幅 ========== */
|
|
|
|
|
.promo-banner {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
padding: 10px 14px;
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
gap: 8px;
|
|
|
|
|
background: rgba(255, 255, 255, 0.1);
|
|
|
|
|
backdrop-filter: blur(10px);
|
|
|
|
|
border: 1px solid rgba(255, 255, 255, 0.15);
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.promo-icon-img {
|
|
|
|
|
width: 48px;
|
|
|
|
|
height: 36px;
|
|
|
|
|
object-fit: contain;
|
|
|
|
|
border-radius: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.promo-icon {
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.promo-text {
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: var(--text-secondary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.promo-link {
|
|
|
|
|
flex: 1;
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
color: var(--text-primary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.promo-new {
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
padding: 2px 8px;
|
|
|
|
|
background: linear-gradient(90deg, #FF6B9D, #FF8E53);
|
|
|
|
|
color: #fff;
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
font-weight: 600;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ========== 快捷操作按钮 ========== */
|
|
|
|
|
.quick-actions {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 10px;
|
2026-01-09 13:46:36 +08:00
|
|
|
margin-bottom: 8px;
|
2026-01-06 14:24:42 +08:00
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.action-btn {
|
|
|
|
|
flex: 1;
|
2026-01-09 13:46:36 +08:00
|
|
|
height: 52px;
|
2026-01-06 14:24:42 +08:00
|
|
|
border: none;
|
2026-01-09 13:46:36 +08:00
|
|
|
border-radius: 26px;
|
2026-01-06 14:24:42 +08:00
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
2026-01-09 13:46:36 +08:00
|
|
|
gap: 8px;
|
2026-01-06 14:24:42 +08:00
|
|
|
cursor: pointer;
|
|
|
|
|
position: relative;
|
|
|
|
|
overflow: hidden;
|
2026-01-09 13:46:36 +08:00
|
|
|
transition: all 0.2s ease;
|
|
|
|
|
padding: 0 14px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.action-btn:active {
|
2026-01-09 13:46:36 +08:00
|
|
|
transform: scale(0.97);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.action-btn.pink {
|
2026-01-09 13:46:36 +08:00
|
|
|
background: linear-gradient(90deg, #FF6B9D, #FF8E9B);
|
|
|
|
|
box-shadow: 0 4px 14px rgba(255, 107, 157, 0.4);
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.action-btn.cyan {
|
2026-01-09 13:46:36 +08:00
|
|
|
background: linear-gradient(90deg, #E8D5F2, #F5E6FA);
|
|
|
|
|
box-shadow: 0 4px 14px rgba(168, 85, 247, 0.2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.action-btn.cyan .btn-label,
|
|
|
|
|
.action-btn.cyan .btn-sub {
|
|
|
|
|
color: #6b3fa0;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-icon {
|
2026-01-09 13:46:36 +08:00
|
|
|
font-size: 22px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-content {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
align-items: flex-start;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-label {
|
2026-01-09 13:46:36 +08:00
|
|
|
font-size: 14px;
|
|
|
|
|
font-weight: 700;
|
2026-01-06 14:24:42 +08:00
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.btn-sub {
|
|
|
|
|
font-size: 9px;
|
|
|
|
|
color: rgba(255, 255, 255, 0.8);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ========== 可折叠底部面板 ========== */
|
|
|
|
|
.bottom-sheet {
|
|
|
|
|
position: fixed;
|
|
|
|
|
left: 0;
|
|
|
|
|
right: 0;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
max-width: 430px;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
background: #fff;
|
|
|
|
|
border-radius: 20px 20px 0 0;
|
|
|
|
|
z-index: 100;
|
|
|
|
|
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
|
|
|
transform: translateY(calc(100% - 160px));
|
|
|
|
|
max-height: var(--sheet-expanded-height);
|
|
|
|
|
box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.15);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bottom-sheet.expanded {
|
|
|
|
|
transform: translateY(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 拖动手柄 */
|
|
|
|
|
.sheet-handle {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
padding: 10px 16px 6px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.handle-bar {
|
|
|
|
|
width: 36px;
|
|
|
|
|
height: 4px;
|
|
|
|
|
background: #ddd;
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 区块头部 - 默认显示在底部 */
|
|
|
|
|
.section-header {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
padding: 0 16px;
|
|
|
|
|
margin-bottom: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.section-title {
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
color: #333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 上滑查看更多按钮 */
|
|
|
|
|
.section-more {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 4px;
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: #999;
|
|
|
|
|
padding: 4px 10px;
|
|
|
|
|
background: #f5f5f5;
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.section-more::before {
|
|
|
|
|
content: '↑';
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bottom-sheet.expanded .section-more {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 快速匹配玩伴卡片区域 - 默认显示 */
|
|
|
|
|
.match-grid {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 10px;
|
|
|
|
|
padding: 0 16px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bottom-sheet.expanded .match-grid {
|
|
|
|
|
display: flex;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 底部面板内容 - 默认隐藏 */
|
|
|
|
|
.sheet-content {
|
|
|
|
|
display: none;
|
|
|
|
|
padding: 0 16px 24px;
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
max-height: calc(var(--sheet-expanded-height) - 50px);
|
|
|
|
|
-webkit-overflow-scrolling: touch;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bottom-sheet.expanded .sheet-content {
|
|
|
|
|
display: block;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sheet-section {
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.peek-section {
|
|
|
|
|
padding-bottom: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ========== 快速匹配玩伴卡片 ========== */
|
|
|
|
|
.match-grid {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 10px;
|
|
|
|
|
padding: 0 16px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-card {
|
|
|
|
|
flex: 1;
|
|
|
|
|
padding: 14px 10px;
|
|
|
|
|
border-radius: 14px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
transition: transform 0.2s;
|
|
|
|
|
position: relative;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
min-height: 80px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-card:active {
|
|
|
|
|
transform: scale(0.96);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-card:nth-child(1) {
|
|
|
|
|
background: linear-gradient(135deg, #FFE4EC 0%, #FFCDD9 100%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-card:nth-child(2) {
|
|
|
|
|
background: linear-gradient(135deg, #E0F4F4 0%, #B8E8E8 100%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-card:nth-child(3) {
|
|
|
|
|
background: linear-gradient(135deg, #FFE8F0 0%, #FFD4E4 100%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-info {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
gap: 4px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-title {
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
color: #333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-desc {
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
color: #888;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-icon {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 6px;
|
|
|
|
|
bottom: 6px;
|
|
|
|
|
font-size: 28px;
|
|
|
|
|
opacity: 0.9;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ========== 派对 ========== */
|
|
|
|
|
.party-grid {
|
2026-01-06 14:24:42 +08:00
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(3, 1fr);
|
2026-01-09 13:46:36 +08:00
|
|
|
grid-template-rows: auto auto;
|
2026-01-06 14:24:42 +08:00
|
|
|
gap: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.party-card {
|
2026-01-06 14:24:42 +08:00
|
|
|
position: relative;
|
2026-01-09 13:46:36 +08:00
|
|
|
border-radius: 14px;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
transition: transform 0.2s;
|
|
|
|
|
min-height: 70px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.party-card:active {
|
|
|
|
|
transform: scale(0.96);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.party-card.large {
|
|
|
|
|
grid-column: span 2;
|
|
|
|
|
min-height: 85px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.party-bg {
|
|
|
|
|
position: absolute;
|
|
|
|
|
inset: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.party-bg.pink { background: linear-gradient(135deg, #FF8FAB, #FF6B8A); }
|
|
|
|
|
.party-bg.cyan { background: linear-gradient(135deg, #4ECDC4, #45B7AA); }
|
|
|
|
|
.party-bg.purple { background: linear-gradient(135deg, #B794F6, #9F7AEA); }
|
|
|
|
|
.party-bg.orange { background: linear-gradient(135deg, #FFB347, #FF9500); }
|
|
|
|
|
.party-bg.green { background: linear-gradient(135deg, #68D391, #48BB78); }
|
|
|
|
|
|
|
|
|
|
.party-content {
|
|
|
|
|
position: relative;
|
|
|
|
|
z-index: 1;
|
|
|
|
|
padding: 10px;
|
2026-01-06 14:24:42 +08:00
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
2026-01-09 13:46:36 +08:00
|
|
|
height: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.party-title {
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.party-count, .party-desc {
|
|
|
|
|
font-size: 9px;
|
|
|
|
|
color: rgba(255, 255, 255, 0.85);
|
|
|
|
|
margin-top: 2px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.party-tag {
|
|
|
|
|
margin-top: auto;
|
|
|
|
|
font-size: 9px;
|
|
|
|
|
padding: 3px 8px;
|
|
|
|
|
background: rgba(255, 255, 255, 0.25);
|
|
|
|
|
border-radius: 10px;
|
|
|
|
|
color: #fff;
|
|
|
|
|
width: fit-content;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ========== 小游戏 ========== */
|
|
|
|
|
.game-list {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 10px;
|
|
|
|
|
overflow-x: auto;
|
|
|
|
|
padding-bottom: 4px;
|
|
|
|
|
-webkit-overflow-scrolling: touch;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.game-list::-webkit-scrollbar {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.game-item {
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
display: flex;
|
2026-01-06 14:24:42 +08:00
|
|
|
align-items: center;
|
2026-01-09 13:46:36 +08:00
|
|
|
gap: 8px;
|
|
|
|
|
padding: 10px 16px;
|
|
|
|
|
background: #f5f5f5;
|
|
|
|
|
border-radius: 20px;
|
2026-01-06 14:24:42 +08:00
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.game-item:active {
|
|
|
|
|
background: #eee;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.game-name {
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
color: #333;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.game-icon {
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
}
|
2026-01-06 14:24:42 +08:00
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* ========== 一起玩 ========== */
|
|
|
|
|
.together-grid {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(3, 1fr);
|
|
|
|
|
gap: 10px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.together-card {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
align-items: center;
|
|
|
|
|
padding: 14px 8px;
|
|
|
|
|
background: #f8f8f8;
|
|
|
|
|
border-radius: 14px;
|
|
|
|
|
cursor: pointer;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.together-card:active {
|
|
|
|
|
transform: scale(0.96);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.together-icon {
|
|
|
|
|
font-size: 26px;
|
|
|
|
|
margin-bottom: 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.together-info {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 2px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.together-title {
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
color: #333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.together-desc {
|
2026-01-06 14:24:42 +08:00
|
|
|
font-size: 10px;
|
2026-01-09 13:46:36 +08:00
|
|
|
color: #999;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
/* ========== 响应式 ========== */
|
|
|
|
|
@media (max-height: 700px) {
|
2026-01-06 14:24:42 +08:00
|
|
|
:root {
|
2026-01-09 13:46:36 +08:00
|
|
|
--orbit-radius: min(28vw, 105px);
|
2026-01-06 14:24:42 +08:00
|
|
|
--avatar-size: min(13vw, 48px);
|
2026-01-09 13:46:36 +08:00
|
|
|
--center-size: min(26vw, 100px);
|
|
|
|
|
--sheet-peek-height: 180px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-area {
|
2026-01-09 13:46:36 +08:00
|
|
|
min-height: 240px;
|
|
|
|
|
max-height: 320px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@media (max-height: 600px) {
|
|
|
|
|
:root {
|
2026-01-09 13:46:36 +08:00
|
|
|
--orbit-radius: min(24vw, 90px);
|
2026-01-06 14:24:42 +08:00
|
|
|
--avatar-size: min(11vw, 42px);
|
2026-01-09 13:46:36 +08:00
|
|
|
--center-size: min(22vw, 85px);
|
|
|
|
|
--sheet-peek-height: 160px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.match-area {
|
2026-01-09 13:46:36 +08:00
|
|
|
min-height: 200px;
|
|
|
|
|
max-height: 280px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.page-title {
|
|
|
|
|
font-size: 20px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.action-btn {
|
2026-01-09 13:46:36 +08:00
|
|
|
height: 46px;
|
2026-01-06 14:24:42 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 13:46:36 +08:00
|
|
|
.btn-sub {
|
2026-01-06 14:24:42 +08:00
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
}
|