@import "tailwindcss"; /* 디자인 시스템 컬러 팔레트 */ :root { /* 메인 컬러 */ --color-primary: #173658; /* 딥 네이비 */ --color-secondary: #F3E7E3; /* 웜 베이지 */ /* 서피스 컬러 */ --color-surface-dark: #1e426a; /* 약간 밝은 네이비 */ --color-surface-darker: #122a45; /* 더 어두운 네이비 */ /* 액센트 컬러 */ --color-accent-gold: #d4af37; /* 골드 포인트 */ /* 텍스트 컬러 */ --color-text-main: #173658; --color-text-muted: #5d6d7e; /* 배경 */ --background: #ffffff; --foreground: #173658; } @theme inline { /* 커스텀 컬러 등록 */ --color-primary: #173658; --color-secondary: #F3E7E3; --color-surface-dark: #1e426a; --color-surface-darker: #122a45; --color-accent-gold: #d4af37; --color-text-main: #173658; --color-text-muted: #5d6d7e; --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif; } body { background: var(--background); color: var(--foreground); font-family: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif; } /* 글래스모피즘 네비게이션 */ .glass-nav { background: rgba(23, 54, 88, 0.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid rgba(255, 255, 255, 0.1); } /* 글래스 패널 (다크) */ .glass-panel { background: rgba(23, 54, 88, 0.9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37); } /* 글래스 패널 (라이트) */ .glass-panel-light { background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(23, 54, 88, 0.1); box-shadow: 0 4px 24px 0 rgba(23, 54, 88, 0.1); } /* 카드 호버 효과 */ .card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); cursor: pointer; } .card-hover:hover { transform: translateY(-4px); box-shadow: 0 12px 40px 0 rgba(23, 54, 88, 0.2); } /* 텍스트 글로우 효과 */ .text-glow { text-shadow: 0 0 20px rgba(212, 175, 55, 0.5), 0 0 40px rgba(212, 175, 55, 0.3); } /* 패턴 오버레이 */ .pattern-overlay { position: relative; overflow: hidden; } .pattern-overlay::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: radial-gradient(circle at 20% 50%, rgba(212, 175, 55, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 80%, rgba(243, 231, 227, 0.1) 0%, transparent 50%); pointer-events: none; } /* 우주 패턴 배경 */ .cosmic-pattern { background-color: #173658; background-image: radial-gradient(circle at 10% 20%, rgba(212, 175, 55, 0.15) 0%, transparent 20%), radial-gradient(circle at 90% 80%, rgba(243, 231, 227, 0.1) 0%, transparent 25%), radial-gradient(circle at 50% 50%, rgba(30, 66, 106, 0.5) 0%, transparent 50%); position: relative; } /* 스크롤바 커스터마이징 */ ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: #F3E7E3; } ::-webkit-scrollbar-thumb { background: #173658; border-radius: 5px; border: 2px solid #F3E7E3; } ::-webkit-scrollbar-thumb:hover { background: #1e426a; } /* Firefox 스크롤바 */ * { scrollbar-width: thin; scrollbar-color: #173658 #F3E7E3; } /* 그라데이션 텍스트 */ .gradient-text { background: linear-gradient(135deg, #173658 0%, #1e426a 50%, #d4af37 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } /* 버튼 기본 스타일 */ .btn-primary { background-color: #173658; color: white; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: 600; transition: all 0.3s ease; border: none; cursor: pointer; } .btn-primary:hover { background-color: #1e426a; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(23, 54, 88, 0.3); } .btn-secondary { background-color: #F3E7E3; color: #173658; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: 600; transition: all 0.3s ease; border: 2px solid #173658; cursor: pointer; } .btn-secondary:hover { background-color: #173658; color: white; transform: translateY(-2px); } /* 카드 기본 스타일 */ .card { background: white; border-radius: 1rem; padding: 1.5rem; box-shadow: 0 4px 24px rgba(23, 54, 88, 0.1); } /* 애니메이션 */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-in-up { animation: fadeInUp 0.6s ease-out; } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } } .float-animation { animation: float 3s ease-in-out infinite; } /* 반응형 컨테이너 */ .container-custom { max-width: 1280px; margin: 0 auto; padding: 0 1rem; } @media (min-width: 768px) { .container-custom { padding: 0 2rem; } } @media (min-width: 1024px) { .container-custom { padding: 0 3rem; } }