Spaces:
Sleeping
Sleeping
| @import "tailwindcss"; | |
| /* ============================================ | |
| SOCIAL SHARE & CARE FOUNDATION | |
| Design System β CSS Custom Properties | |
| ============================================ */ | |
| @theme { | |
| /* βββ Primary Palette (Teal) βββ */ | |
| --color-primary-50: #f0fdfa; | |
| --color-primary-100: #ccfbf1; | |
| --color-primary-200: #99f6e4; | |
| --color-primary-300: #5eead4; | |
| --color-primary-400: #2dd4bf; | |
| --color-primary-500: #00A99D; /* Logo Teal */ | |
| --color-primary-600: #0d9488; | |
| --color-primary-700: #0f766e; | |
| --color-primary-800: #115e59; | |
| --color-primary-900: #134e4a; | |
| /* βββ Secondary Palette (Deep Blue) βββ */ | |
| --color-secondary-50: #eff6ff; | |
| --color-secondary-100: #dbeafe; | |
| --color-secondary-200: #bfdbfe; | |
| --color-secondary-300: #60a5fa; | |
| --color-secondary-400: #3b82f6; | |
| --color-secondary-500: #0F4C81; /* Logo Blue */ | |
| --color-secondary-600: #1d4ed8; | |
| --color-secondary-700: #1e40af; | |
| --color-secondary-800: #1e3a8a; | |
| --color-secondary-900: #172554; | |
| /* βββ Accent (Bright Green) βββ */ | |
| --color-accent-50: #f0fdf4; | |
| --color-accent-100: #dcfce7; | |
| --color-accent-200: #bbf7d0; | |
| --color-accent-300: #86efac; | |
| --color-accent-400: #4ade80; | |
| --color-accent-500: #00C853; /* Logo Top Green */ | |
| --color-accent-600: #16a34a; | |
| --color-accent-700: #15803d; | |
| --color-accent-800: #166534; | |
| --color-accent-900: #14532d; | |
| /* βββ Neutral (Slate) βββ */ | |
| --color-neutral-50: #f8fafc; | |
| --color-neutral-100: #f1f5f9; | |
| --color-neutral-200: #e2e8f0; | |
| --color-neutral-300: #cbd5e1; | |
| --color-neutral-400: #94a3b8; | |
| --color-neutral-500: #64748b; | |
| --color-neutral-600: #475569; | |
| --color-neutral-700: #334155; | |
| --color-neutral-800: #1e293b; | |
| --color-neutral-900: #0f172a; | |
| /* βββ Semantic Colors βββ */ | |
| --color-success: #10B981; | |
| --color-warning: #F59E0B; | |
| --color-error: #EF4444; | |
| --color-info: #0ea5e9; | |
| /* βββ Font Families βββ */ | |
| --font-heading: 'Montserrat', sans-serif; | |
| --font-body: 'Inter', sans-serif; | |
| --font-stats: 'Montserrat', sans-serif; | |
| /* βββ Shadows βββ */ | |
| --shadow-glass: 0 8px 32px rgba(0, 0, 0, 0.08); | |
| --shadow-card: 0 4px 16px rgba(0, 0, 0, 0.06); | |
| --shadow-card-hover: 0 12px 40px rgba(0, 169, 157, 0.15); | |
| --shadow-btn: 0 4px 14px rgba(0, 169, 157, 0.25); | |
| --shadow-btn-hover: 0 6px 20px rgba(0, 169, 157, 0.35); | |
| /* βββ Border Radius βββ */ | |
| --radius-sm: 0.375rem; | |
| --radius-md: 0.75rem; | |
| --radius-lg: 1rem; | |
| --radius-xl: 1.5rem; | |
| --radius-2xl: 2rem; | |
| --radius-full: 9999px; | |
| } | |
| /* ============================================ | |
| BASE / RESET | |
| ============================================ */ | |
| *, | |
| *::before, | |
| *::after { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| body { | |
| font-family: var(--font-body); | |
| color: var(--color-neutral-800); | |
| background-color: var(--color-neutral-50); | |
| line-height: 1.6; | |
| overflow-x: hidden; | |
| } | |
| h1, | |
| h2, | |
| h3, | |
| h4, | |
| h5, | |
| h6 { | |
| font-family: var(--font-heading); | |
| font-weight: 700; | |
| line-height: 1.2; | |
| color: var(--color-neutral-900); | |
| } | |
| a { | |
| text-decoration: none; | |
| color: inherit; | |
| transition: color 0.3s ease; | |
| } | |
| img { | |
| max-width: 100%; | |
| height: auto; | |
| display: block; | |
| } | |
| button { | |
| cursor: pointer; | |
| font-family: var(--font-body); | |
| border: none; | |
| outline: none; | |
| background: none; | |
| } | |
| input, | |
| textarea, | |
| select { | |
| font-family: var(--font-body); | |
| outline: none; | |
| border: none; | |
| } | |
| ul, | |
| ol { | |
| list-style: none; | |
| } | |
| /* ============================================ | |
| SCROLLBAR | |
| ============================================ */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: var(--color-neutral-100); | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: var(--color-primary-400); | |
| border-radius: var(--radius-full); | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--color-primary-500); | |
| } | |
| /* ============================================ | |
| UTILITY CLASSES (Vanilla CSS) | |
| ============================================ */ | |
| /* βββ Container βββ */ | |
| .container { | |
| width: 100%; | |
| max-width: 1280px; | |
| margin: 0 auto; | |
| padding: 0 1.5rem; | |
| } | |
| @media (max-width: 768px) { | |
| .container { | |
| padding: 0 1rem; | |
| } | |
| } | |
| /* βββ Section βββ */ | |
| .section { | |
| padding: 5rem 0; | |
| } | |
| .section--alt { | |
| background-color: var(--color-neutral-100); | |
| } | |
| /* βββ Glassmorphism βββ */ | |
| .glass { | |
| background: rgba(255, 255, 255, 0.75); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255, 255, 255, 0.3); | |
| box-shadow: var(--shadow-glass); | |
| } | |
| .glass--dark { | |
| background: rgba(17, 24, 39, 0.75); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| color: white; | |
| } | |
| /* βββ Gradient Backgrounds βββ */ | |
| .gradient-primary { | |
| background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700)); | |
| } | |
| .gradient-warm { | |
| background: linear-gradient(135deg, var(--color-secondary-400), var(--color-accent-500)); | |
| } | |
| .gradient-hero { | |
| background: linear-gradient(135deg, var(--color-secondary-900) 0%, var(--color-secondary-700) 50%, var(--color-primary-800) 100%); | |
| } | |
| .gradient-cta { | |
| background: linear-gradient(135deg, var(--color-primary-600), var(--color-primary-800)); | |
| } | |
| .gradient-text { | |
| background: linear-gradient(135deg, var(--color-primary-500), var(--color-accent-500)); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| /* βββ Cards βββ */ | |
| .card { | |
| background: white; | |
| border-radius: var(--radius-lg); | |
| box-shadow: var(--shadow-card); | |
| overflow: hidden; | |
| transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94); | |
| } | |
| .card:hover { | |
| transform: translateY(-4px); | |
| box-shadow: var(--shadow-card-hover); | |
| } | |
| /* βββ Buttons βββ */ | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| padding: 0.75rem 1.75rem; | |
| font-weight: 600; | |
| font-size: 0.95rem; | |
| border-radius: var(--radius-full); | |
| transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); | |
| white-space: nowrap; | |
| } | |
| .btn--primary { | |
| background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-600)); | |
| color: white; | |
| box-shadow: var(--shadow-btn); | |
| } | |
| .btn--primary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: var(--shadow-btn-hover); | |
| background: linear-gradient(135deg, var(--color-primary-400), var(--color-primary-500)); | |
| } | |
| .btn--secondary { | |
| background: linear-gradient(135deg, var(--color-secondary-500), var(--color-secondary-600)); | |
| color: white; | |
| box-shadow: 0 4px 14px rgba(245, 158, 11, 0.25); | |
| } | |
| .btn--secondary:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(245, 158, 11, 0.35); | |
| } | |
| .btn--accent { | |
| background: linear-gradient(135deg, var(--color-accent-500), var(--color-accent-600)); | |
| color: white; | |
| box-shadow: 0 4px 14px rgba(236, 72, 153, 0.25); | |
| } | |
| .btn--accent:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(236, 72, 153, 0.35); | |
| } | |
| .btn--outline { | |
| background: transparent; | |
| color: var(--color-primary-500); | |
| border: 2px solid var(--color-primary-500); | |
| } | |
| .btn--outline:hover { | |
| background: var(--color-primary-500); | |
| color: white; | |
| transform: translateY(-2px); | |
| } | |
| .btn--ghost { | |
| background: transparent; | |
| color: var(--color-neutral-700); | |
| padding: 0.5rem 1rem; | |
| } | |
| .btn--ghost:hover { | |
| background: var(--color-neutral-100); | |
| color: var(--color-primary-500); | |
| } | |
| .btn--white { | |
| background: white; | |
| color: var(--color-primary-600); | |
| box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1); | |
| } | |
| .btn--white:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15); | |
| } | |
| .btn--sm { | |
| padding: 0.5rem 1.25rem; | |
| font-size: 0.85rem; | |
| } | |
| .btn--lg { | |
| padding: 1rem 2.25rem; | |
| font-size: 1.05rem; | |
| } | |
| .btn--icon { | |
| padding: 0.75rem; | |
| border-radius: 50%; | |
| } | |
| /* βββ Form βββ */ | |
| .form-group { | |
| margin-bottom: 1.25rem; | |
| } | |
| .form-label { | |
| display: block; | |
| font-size: 0.875rem; | |
| font-weight: 600; | |
| color: var(--color-neutral-700); | |
| margin-bottom: 0.4rem; | |
| } | |
| .form-input { | |
| width: 100%; | |
| padding: 0.75rem 1rem; | |
| background: var(--color-neutral-50); | |
| border: 2px solid var(--color-neutral-200); | |
| border-radius: var(--radius-md); | |
| font-size: 0.95rem; | |
| color: var(--color-neutral-800); | |
| transition: all 0.3s ease; | |
| } | |
| .form-input:focus { | |
| border-color: var(--color-primary-500); | |
| box-shadow: 0 0 0 4px rgba(0, 169, 157, 0.1); | |
| background: white; | |
| } | |
| .form-input::placeholder { | |
| color: var(--color-neutral-400); | |
| } | |
| .form-input--error { | |
| border-color: var(--color-error); | |
| } | |
| .form-error { | |
| font-size: 0.8rem; | |
| color: var(--color-error); | |
| margin-top: 0.25rem; | |
| } | |
| /* βββ Badges βββ */ | |
| .badge { | |
| display: inline-flex; | |
| align-items: center; | |
| padding: 0.25rem 0.75rem; | |
| border-radius: var(--radius-full); | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| letter-spacing: 0.02em; | |
| } | |
| .badge--primary { | |
| background: var(--color-primary-100); | |
| color: var(--color-primary-700); | |
| } | |
| .badge--secondary { | |
| background: var(--color-secondary-100); | |
| color: var(--color-secondary-700); | |
| } | |
| .badge--accent { | |
| background: var(--color-accent-100); | |
| color: var(--color-accent-700); | |
| } | |
| .badge--success { | |
| background: #d1fae5; | |
| color: #065f46; | |
| } | |
| .badge--warning { | |
| background: #fef3c7; | |
| color: #92400e; | |
| } | |
| .badge--error { | |
| background: #fee2e2; | |
| color: #991b1b; | |
| } | |
| /* βββ Progress Bar βββ */ | |
| .progress-bar { | |
| width: 100%; | |
| height: 8px; | |
| background: var(--color-neutral-200); | |
| border-radius: var(--radius-full); | |
| overflow: hidden; | |
| } | |
| .progress-bar__fill { | |
| height: 100%; | |
| background: linear-gradient(90deg, var(--color-primary-500), var(--color-primary-400)); | |
| border-radius: var(--radius-full); | |
| transition: width 1s cubic-bezier(0.25, 0.46, 0.45, 0.94); | |
| } | |
| /* βββ Divider βββ */ | |
| .divider { | |
| width: 60px; | |
| height: 4px; | |
| background: linear-gradient(90deg, var(--color-primary-500), var(--color-accent-500)); | |
| border-radius: var(--radius-full); | |
| margin: 1rem 0; | |
| } | |
| /* βββ Section Header βββ */ | |
| .section-header { | |
| text-align: center; | |
| margin-bottom: 3rem; | |
| } | |
| .section-header__tag { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.35rem 1rem; | |
| background: var(--color-primary-100); | |
| color: var(--color-primary-600); | |
| border-radius: var(--radius-full); | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| margin-bottom: 1rem; | |
| } | |
| .section-header__title { | |
| font-size: 2.5rem; | |
| font-weight: 800; | |
| margin-bottom: 0.75rem; | |
| } | |
| .section-header__subtitle { | |
| font-size: 1.1rem; | |
| color: var(--color-neutral-500); | |
| max-width: 600px; | |
| margin: 0 auto; | |
| line-height: 1.7; | |
| } | |
| @media (max-width: 768px) { | |
| .section-header__title { | |
| font-size: 1.75rem; | |
| } | |
| .section-header__subtitle { | |
| font-size: 0.95rem; | |
| } | |
| } | |
| /* ============================================ | |
| PAGE HERO COMPONENT | |
| ============================================ */ | |
| .about-hero { | |
| position: relative; | |
| padding: 10rem 0 5rem; | |
| text-align: center; | |
| overflow: hidden; | |
| } | |
| .about-hero__bg { | |
| position: absolute; | |
| inset: 0; | |
| background: linear-gradient(135deg, var(--color-secondary-900) 0%, var(--color-secondary-800) 40%, var(--color-primary-800) 100%); | |
| } | |
| .about-hero__content { | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .about-hero__title { | |
| font-size: 3rem; | |
| font-weight: 800; | |
| color: white; | |
| margin-bottom: 1rem; | |
| margin-top: 1rem; | |
| } | |
| .about-hero__subtitle { | |
| font-size: 1.15rem; | |
| color: rgba(255,255,255,0.75); | |
| max-width: 700px; | |
| margin: 0 auto; | |
| line-height: 1.7; | |
| } | |
| /* ============================================ | |
| ANIMATIONS | |
| ============================================ */ | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes fadeInUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(30px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes fadeInDown { | |
| from { | |
| opacity: 0; | |
| transform: translateY(-20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes scaleIn { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.9); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| @keyframes slideInLeft { | |
| from { | |
| opacity: 0; | |
| transform: translateX(-40px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(0); | |
| } | |
| } | |
| @keyframes slideInRight { | |
| from { | |
| opacity: 0; | |
| transform: translateX(40px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateX(0); | |
| } | |
| } | |
| @keyframes pulse { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| } | |
| } | |
| @keyframes float { | |
| 0%, | |
| 100% { | |
| transform: translateY(0); | |
| } | |
| 50% { | |
| transform: translateY(-10px); | |
| } | |
| } | |
| @keyframes shimmer { | |
| 0% { | |
| background-position: -200% 0; | |
| } | |
| 100% { | |
| background-position: 200% 0; | |
| } | |
| } | |
| @keyframes spin { | |
| from { | |
| transform: rotate(0deg); | |
| } | |
| to { | |
| transform: rotate(360deg); | |
| } | |
| } | |
| .animate-fadeIn { | |
| animation: fadeIn 0.6s ease-out; | |
| } | |
| .animate-fadeInUp { | |
| animation: fadeInUp 0.6s ease-out; | |
| } | |
| .animate-fadeInDown { | |
| animation: fadeInDown 0.5s ease-out; | |
| } | |
| .animate-scaleIn { | |
| animation: scaleIn 0.5s ease-out; | |
| } | |
| .animate-slideInLeft { | |
| animation: slideInLeft 0.6s ease-out; | |
| } | |
| .animate-slideInRight { | |
| animation: slideInRight 0.6s ease-out; | |
| } | |
| .animate-float { | |
| animation: float 3s ease-in-out infinite; | |
| } | |
| .animate-pulse { | |
| animation: pulse 2s ease-in-out infinite; | |
| } | |
| .animate-spin { | |
| animation: spin 1s linear infinite; | |
| } | |
| /* βββ Skeleton Loading βββ */ | |
| .skeleton { | |
| background: linear-gradient(90deg, var(--color-neutral-200) 25%, var(--color-neutral-100) 50%, var(--color-neutral-200) 75%); | |
| background-size: 200% 100%; | |
| animation: shimmer 1.5s infinite; | |
| border-radius: var(--radius-md); | |
| } | |
| /* βββ Overlay βββ */ | |
| .overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0, 0, 0, 0.5); | |
| backdrop-filter: blur(4px); | |
| z-index: 100; | |
| animation: fadeIn 0.3s ease-out; | |
| } |