/* 一键建站平台 - 内联样式 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.module-zone { position: relative; }
.carousel-container { position: relative; overflow: hidden; }
.carousel-viewport { overflow: hidden; }
.carousel-track { display: flex; transition: transform 0.3s ease; }
.carousel-item { flex-shrink: 0; }
.showcase-wrapper { position: relative; display: inline-block; }
.showcase-tooltip { position: absolute; top: 50%; left: 100%; margin-left: 16px; transform: translateY(-50%) scale(0.9); border-radius: 8px; overflow: hidden; box-shadow: 0 8px 24px rgba(0,0,0,.2); opacity: 0; transition: all 0.3s ease; pointer-events: none; z-index: 99999; }
.showcase-wrapper:hover .showcase-tooltip { opacity: 1; transform: translateY(-50%) scale(1); }

/* 动画定义 */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideInDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
@keyframes zoomIn { from { opacity: 0; transform: scale(0.8); } to { opacity: 1; transform: scale(1); } }
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
@keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-15px); } }
@keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes rotateY { from { transform: rotateY(0deg); } to { transform: rotateY(360deg); } }
@keyframes glow { 0%, 100% { box-shadow: 0 0 5px currentColor; } 50% { box-shadow: 0 0 20px currentColor, 0 0 40px currentColor; } }
@keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }

/* 悬停效果 */
.hover-lift:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0,0,0,0.15); }
.hover-scale:hover { transform: scale(1.05); }
.hover-glow:hover { box-shadow: 0 0 15px currentColor, 0 0 30px currentColor; }
.hover-underline:hover { text-decoration: underline; }
.hover-rotate3d:hover { transform: perspective(1000px) rotateY(10deg) rotateX(5deg); }
.hover-shadow:hover { box-shadow: 0 15px 30px rgba(0,0,0,0.2); }

/* 过渡 */
.transition-all { transition: all 0.3s ease; }

/* 霓虹灯效果 */
.neon-text { text-shadow: 0 0 10px currentColor, 0 0 20px currentColor, 0 0 30px currentColor; }

/* 渐变边框 */
.gradient-border { position: relative; background: white; }
.gradient-border::before { content: ''; position: absolute; inset: -3px; background: linear-gradient(var(--gradient-angle, 135deg), var(--gradient-colors, #667eea, #764ba2)); border-radius: inherit; z-index: -1; }

/* 聚光灯效果 */
.spotlight-container { position: relative; overflow: hidden; }
.spotlight-container::after { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), var(--spotlight-color, rgba(255,255,255,0.3)) 0%, transparent var(--spotlight-size, 150px)); pointer-events: none; }

/* 动画类 */
.anim-fadeIn { animation: fadeIn 0.5s ease; }
.anim-slideInUp { animation: slideInUp 0.5s ease; }
.anim-slideInDown { animation: slideInDown 0.5s ease; }
.anim-slideInLeft { animation: slideInLeft 0.5s ease; }
.anim-slideInRight { animation: slideInRight 0.5s ease; }
.anim-zoomIn { animation: zoomIn 0.5s ease; }
.anim-pulse { animation: pulse 2s ease-in-out infinite; }
.anim-float { animation: float 3s ease-in-out infinite; }
.anim-shake { animation: shake 0.5s ease-in-out; }
.anim-bounce { animation: bounce 1s ease-in-out infinite; }
.anim-rotate { animation: rotate 2s linear infinite; }
.anim-rotateY { animation: rotateY 3s linear infinite; }
.anim-glow { animation: glow 2s ease-in-out infinite; }
