/* GGP.BZ Custom Styles */

/* 부드러운 애니메이션 */
* {
    transition: all 0.3s ease;
}

/* 그라디언트 텍스트 */
.gradient-text {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* 글라스모피즘 효과 */
.glass {
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

/* 호버 효과 */
.hover-scale:hover {
    transform: scale(1.05);
}

.hover-glow:hover {
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.3);
}

/* 커스텀 버튼 스타일 */
.btn-primary {
    @apply bg-gradient-to-r from-blue-600 to-purple-600 text-white font-semibold py-3 px-8 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300;
}

.btn-secondary {
    @apply bg-white text-blue-600 font-semibold py-3 px-8 rounded-lg border border-blue-200 hover:bg-blue-50 transition-all duration-300;
}

/* 로딩 애니메이션 */
.loading {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: .5;
    }
}

/* 스크롤바 커스터마이징 */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(135deg, #5a67d8 0%, #6b46c1 100%);
}

/* 모바일 최적화 */
@media (max-width: 768px) {
    .mobile-hidden {
        display: none !important;
    }
    
    .mobile-full {
        width: 100% !important;
    }
}

/* 다크 모드 지원 */
@media (prefers-color-scheme: dark) {
    .dark-mode {
        background-color: #1a202c;
        color: #f7fafc;
    }
    
    .dark-mode .glass {
        background: rgba(0, 0, 0, 0.3);
        border: 1px solid rgba(255, 255, 255, 0.1);
    }
}

/* 특수 효과 */
.neon-glow {
    text-shadow: 0 0 5px #667eea, 0 0 10px #667eea, 0 0 15px #667eea;
}

.floating {
    animation: floating 3s ease-in-out infinite;
}

@keyframes floating {
    0% { transform: translate(0, 0px); }
    50% { transform: translate(0, -10px); }
    100% { transform: translate(0, 0px); }
}

/* 카드 효과 */
.card {
    @apply bg-white rounded-lg shadow-md hover:shadow-lg transition-shadow duration-300;
}

.card-hover {
    @apply transform hover:-translate-y-1 transition-transform duration-300;
}

/* 성공/에러 메시지 */
.alert-success {
    @apply bg-green-100 border border-green-400 text-green-700 px-4 py-3 rounded;
}

.alert-error {
    @apply bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded;
}

.alert-info {
    @apply bg-blue-100 border border-blue-400 text-blue-700 px-4 py-3 rounded;
}

/* 폼 스타일 */
.form-input {
    @apply appearance-none border border-gray-300 rounded-md py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:border-blue-500 focus:ring-2 focus:ring-blue-200;
}

.form-label {
    @apply block text-gray-700 text-sm font-bold mb-2;
}