/* 加载骨架屏淡紫色主题 */ .animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } /* 页面进入动画 - iOS Safari兼容 */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.6s ease-out forwards; } /* KatelyaTV Logo 彩虹渐变动画 - 简化版本 */ .katelya-logo { background: linear-gradient( 45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #ffc645, #fd79a8, #6c5ce7, #a29bfe ); background-size: 400% 400%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: rainbow-flow 4s ease-in-out infinite; position: relative; font-weight: 800; letter-spacing: -0.02em; } @keyframes rainbow-flow { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } /* 主内容区大型 KatelyaTV Logo 容器 */ .main-logo-container { padding: 3rem 0 4rem 0; display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; overflow: hidden; margin-bottom: 2rem; } /* 背景光效 - 简化版本 */ .logo-background-glow { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 600px; height: 400px; background: radial-gradient( ellipse, rgba(147, 112, 219, 0.15) 0%, rgba(255, 107, 107, 0.1) 30%, rgba(76, 205, 196, 0.08) 60%, transparent 100% ); animation: glow-pulse 4s ease-in-out infinite; border-radius: 50%; z-index: 0; } @keyframes glow-pulse { 0%, 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } } /* 主内容区大型 Logo - 简化版本 */ .main-katelya-logo { font-size: 4rem; font-weight: 900; background: linear-gradient( 45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #ffc645, #fd79a8, #6c5ce7, #a29bfe, #ff6b6b ); background-size: 600% 600%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: rainbow-flow-main 6s ease-in-out infinite; position: relative; z-index: 2; letter-spacing: 0.02em; text-shadow: 0 10px 30px rgba(147, 112, 219, 0.3); cursor: default; user-select: none; } @keyframes rainbow-flow-main { 0%, 100% { background-position: 0% 50%; } 25% { background-position: 100% 0%; } 50% { background-position: 100% 100%; } 75% { background-position: 0% 100%; } } /* 主 Logo 副标题 */ .main-logo-subtitle { font-size: 1.1rem; font-weight: 500; color: rgba(147, 112, 219, 0.8); position: relative; z-index: 2; letter-spacing: 0.1em; } .dark .main-logo-subtitle { color: rgba(196, 181, 253, 0.8); } /* 装饰性粒子效果 - 简化版本 */ .logo-particles { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; } .particle { position: absolute; border-radius: 50%; opacity: 0.6; animation: particle-float 6s ease-in-out infinite; } .particle-1 { top: 20%; right: 20%; width: 8px; height: 8px; background: linear-gradient(45deg, #ff6b6b, #4ecdc4); animation-delay: -2s; } .particle-2 { top: 60%; left: 20%; width: 6px; height: 6px; background: linear-gradient(45deg, #45b7d1, #96ceb4); animation-delay: -3s; } .particle-3 { bottom: 30%; left: 25%; width: 10px; height: 10px; background: linear-gradient(45deg, #96ceb4, #ffc645); animation-delay: -4s; } .particle-4 { top: 40%; right: 30%; width: 5px; height: 5px; background: linear-gradient(45deg, #6c5ce7, #a29bfe); animation-delay: -1s; } .particle-5 { top: 60%; left: 10%; width: 7px; height: 7px; background: linear-gradient(45deg, #fd79a8, #ffc645); animation-delay: -3s; } .particle-6 { bottom: 15%; right: 15%; width: 9px; height: 9px; background: linear-gradient(45deg, #a29bfe, #ff6b6b); animation-delay: -5s; } @keyframes particle-float { 0%, 100% { transform: translateY(0px) translateX(0px); opacity: 0.3; } 25% { transform: translateY(-20px) translateX(10px); opacity: 0.8; } 50% { transform: translateY(-10px) translateX(-15px); opacity: 0.6; } 75% { transform: translateY(-25px) translateX(5px); opacity: 0.9; } } /* 移动端主内容区 Logo 适配 */ @media (max-width: 768px) { .main-logo-container { padding: 2rem 0 3rem 0; margin-bottom: 1.5rem; } .main-katelya-logo { font-size: 2.5rem; } .main-logo-subtitle { font-size: 0.9rem; } .logo-background-glow { width: 400px; height: 250px; } .particle { transform: scale(0.8); } } @media (max-width: 480px) { .main-katelya-logo { font-size: 2rem; } .main-logo-subtitle { font-size: 0.8rem; } .logo-background-glow { width: 300px; height: 200px; } } /* 底部 KatelyaTV Logo 容器 */ .bottom-logo-container { padding: 2rem 0; display: flex; justify-content: center; align-items: center; position: relative; overflow: hidden; } /* 浮动几何形状装饰 - 简化版本 */ .floating-shapes { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; } .shape { position: absolute; border-radius: 50%; opacity: 0.1; animation: float 8s ease-in-out infinite; } .shape:nth-child(1) { top: 20%; left: 10%; width: 20px; height: 20px; background: linear-gradient(45deg, #ff6b6b, #4ecdc4); animation-delay: -1s; } .shape:nth-child(2) { top: 60%; right: 15%; width: 15px; height: 15px; background: linear-gradient(45deg, #45b7d1, #96ceb4); animation-delay: -3s; } .shape:nth-child(3) { bottom: 30%; left: 20%; width: 25px; height: 25px; background: linear-gradient(45deg, #ffc645, #fd79a8); animation-delay: -2s; } .shape:nth-child(4) { top: 40%; right: 25%; width: 18px; height: 18px; background: linear-gradient(45deg, #6c5ce7, #a29bfe); animation-delay: -4s; } @keyframes float { 0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.1; } 25% { transform: translateY(-15px) rotate(90deg); opacity: 0.3; } 50% { transform: translateY(-10px) rotate(180deg); opacity: 0.2; } 75% { transform: translateY(-20px) rotate(270deg); opacity: 0.4; } } /* 底部 Logo */ .bottom-logo { font-size: 1.5rem; font-weight: 700; background: linear-gradient( 45deg, #ff6b6b, #4ecdc4, #45b7d1, #96ceb4, #ffc645, #fd79a8, #6c5ce7, #a29bfe ); background-size: 400% 400%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: rainbow-flow 4s ease-in-out infinite; position: relative; z-index: 2; } /* iOS Safari兼容性优化 */ @supports (-webkit-touch-callout: none) { /* iOS Safari特定样式 */ .animate-pulse { animation: none; } .particle { animation: none; opacity: 0.4; } .shape { animation: none; opacity: 0.2; } .logo-background-glow { animation: none; } .main-katelya-logo { animation: none; } .katelya-logo { animation: none; } .bottom-logo { animation: none; } } /* 基础样式 */ @tailwind base; @tailwind components; @tailwind utilities; /* 自定义滚动条 */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(156, 163, 175, 0.5); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: rgba(156, 163, 175, 0.7); } /* 暗色主题滚动条 */ .dark ::-webkit-scrollbar-thumb { background: rgba(75, 85, 99, 0.5); } .dark ::-webkit-scrollbar-thumb:hover { background: rgba(75, 85, 99, 0.7); } /* 基础样式重置 */ * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; line-height: 1.6; } /* 链接样式 */ a { color: inherit; text-decoration: none; } /* 按钮样式 */ button { cursor: pointer; } /* 输入框样式 */ input, textarea { font-family: inherit; } /* 图片样式 */ img { max-width: 100%; height: auto; } /* 选择文本样式 */ ::selection { background: rgba(147, 112, 219, 0.3); color: inherit; } .dark ::selection { background: rgba(196, 181, 253, 0.3); } /* 焦点样式 */ :focus { outline: 2px solid rgba(147, 112, 219, 0.5); outline-offset: 2px; } /* 减少动画偏好 */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } }