Files
saju-web/app/globals.css
2026-02-17 08:15:41 +09:00

242 lines
5.1 KiB
CSS

@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;
}
}