diff --git a/app/globals.css b/app/globals.css index 5e41121..180c1d6 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,14 +1,16 @@ @import "tailwindcss"; :root { - --bg-base: #0a0a0f; - --bg-surface: rgba(255, 255, 255, 0.05); - --bg-card: rgba(255, 255, 255, 0.08); - --text-primary: #ffffff; - --text-secondary: rgba(255, 255, 255, 0.7); - --border-default: rgba(255, 255, 255, 0.12); - --border-hover: rgba(255, 255, 255, 0.2); - --focus-ring: rgba(255, 255, 255, 0.5); + --bg-base: #0f172a; + --bg-surface: rgba(226, 232, 240, 0.08); + --bg-card: rgba(30, 41, 59, 0.4); + --text-primary: #f1f5f9; + --text-secondary: #cbd5e1; + --border-default: rgba(148, 163, 184, 0.1); + --border-hover: rgba(148, 163, 184, 0.3); + --focus-ring: rgba(99, 102, 241, 0.5); + --accent: #6366f1; + --accent-light: #818cf8; } * { @@ -54,14 +56,14 @@ body { z-index: 0; background: linear-gradient( 135deg, - #0a0a0f 0%, - #1a1a2e 25%, - #16213e 50%, - #0f3460 75%, - #0a0a0f 100% + #0f172a 0%, + #1e293b 25%, + #334155 50%, + #1e40af 75%, + #0f172a 100% ); background-size: 400% 400%; - animation: gradientShift 15s ease infinite; + animation: gradientShift 20s ease infinite; } @keyframes gradientShift { @@ -95,29 +97,56 @@ body { .coming-soon-card { position: relative; - background: var(--bg-card); - backdrop-filter: blur(20px); - -webkit-backdrop-filter: blur(20px); - border: 1px solid var(--border-default); - border-radius: 1.5rem; + background: rgba(30, 41, 59, 0.25); + backdrop-filter: blur(40px); + -webkit-backdrop-filter: blur(40px); + border: 1px solid rgba(148, 163, 184, 0.15); + border-radius: 2.5rem; text-align: center; box-shadow: - 0 25px 50px -12px rgba(0, 0, 0, 0.5), - 0 0 0 1px rgba(255, 255, 255, 0.05) inset; - /* Square: fluid size clamped between 280px and 480px */ - width: clamp(280px, min(80vw, 80vh), 480px); - height: clamp(280px, min(80vw, 80vh), 480px); - /* Center content inside the square */ + 0 20px 40px -10px rgba(0, 0, 0, 0.2), + 0 0 0 1px rgba(255, 255, 255, 0.08) inset; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + /* Rectangle: wider than tall for hero feel */ + width: clamp(300px, min(85vw, 85vh), 580px); + max-width: 580px; + padding: 3.5rem 3rem; display: flex; flex-direction: column; align-items: center; justify-content: center; - padding: 2rem; + margin: auto; +} + +.coming-soon-card:hover { + background: rgba(30, 41, 59, 0.35); + border-color: rgba(148, 163, 184, 0.25); + box-shadow: + 0 20px 40px -10px rgba(99, 102, 241, 0.15), + 0 0 0 1px rgba(148, 163, 184, 0.15) inset; +} + +@media (max-width: 768px) { + .coming-soon-card { + width: clamp(280px, 90vw, 550px); + padding: 2.5rem 2rem; + } } @media (max-width: 480px) { .coming-soon-card { - border-radius: 1.125rem; + width: clamp(260px, 85vw, 350px); + padding: 2rem 1.5rem; + border-radius: 1.5rem; + } + + .action-buttons { + gap: 0.75rem; + } + + .btn { + padding: 0.625rem 1.25rem; + font-size: 0.875rem; } } @@ -126,32 +155,123 @@ body { ======================================== */ .coming-soon-title { - font-size: 3rem; + font-size: 3.2rem; font-weight: 700; - letter-spacing: -0.025em; - line-height: 1.1; + letter-spacing: -0.02em; + line-height: 1.2; color: var(--text-primary); - margin-bottom: 0.75rem; + margin-bottom: 1.25rem; + background: linear-gradient( + 135deg, + var(--accent-light) 20%, + var(--accent) 80% + ); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + opacity: 0.95; +} + +@media (max-width: 768px) { + .coming-soon-title { + font-size: 2.75rem; + } } @media (max-width: 640px) { .coming-soon-title { - font-size: 2rem; + font-size: 2.25rem; + } +} + +@media (max-width: 480px) { + .coming-soon-title { + font-size: 1.875rem; + margin-bottom: 0.75rem; } } .coming-soon-subtitle { - font-size: 1.125rem; - color: var(--text-secondary); + font-size: 1.1rem; + color: rgba(203, 213, 225, 0.85); font-weight: 400; + line-height: 1.7; + margin-bottom: 0; + max-width: 100%; + letter-spacing: 0.3px; } -@media (max-width: 640px) { +@media (max-width: 768px) { .coming-soon-subtitle { font-size: 1rem; } } +@media (max-width: 640px) { + .coming-soon-subtitle { + font-size: 0.9rem; + } +} + +@media (max-width: 480px) { + .coming-soon-subtitle { + font-size: 0.8rem; + } +} + +/* ======================================== + ACTION BUTTONS + ======================================== */ + +.action-buttons { + display: flex; + gap: 1rem; + justify-content: center; + width: 100%; + flex-wrap: wrap; +} + +.btn { + padding: 0.75rem 1.75rem; + border-radius: 0.75rem; + font-weight: 600; + font-size: 1rem; + border: none; + cursor: pointer; + transition: all 0.2s ease-in-out; + text-decoration: none; + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +.btn-primary { + background: linear-gradient( + 135deg, + var(--accent) 0%, + var(--accent-light) 100% + ); + color: white; + box-shadow: 0 10px 30px rgba(99, 102, 241, 0.3); +} + +.btn-primary:hover { + transform: translateY(-2px); + box-shadow: 0 15px 40px rgba(99, 102, 241, 0.4); +} + +.btn-secondary { + background: rgba(226, 232, 240, 0.08); + color: var(--text-primary); + border: 1px solid var(--border-default); +} + +.btn-secondary:hover { + background: rgba(226, 232, 240, 0.12); + border-color: var(--accent); + color: var(--accent-light); +} + /* ======================================== LANGUAGE SELECTOR ======================================== */ @@ -163,35 +283,36 @@ body { .language-selector select { appearance: none; - background: var(--bg-surface); + background: rgba(30, 41, 59, 0.5); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--border-default); - border-radius: 0.5rem; - padding: 0.5rem 2.25rem 0.5rem 0.875rem; + border-radius: 0.75rem; + padding: 0.5rem 2.5rem 0.5rem 1rem; font-size: 0.875rem; - font-weight: 500; + font-weight: 600; color: var(--text-primary); cursor: pointer; - transition: all 0.15s ease-in-out; - min-width: 100px; + transition: all 0.2s ease-in-out; + min-width: 120px; + background-color: rgba(30, 41, 59, 0.5); } .language-selector select:hover { - border-color: var(--border-hover); - background: rgba(255, 255, 255, 0.08); + border-color: var(--accent); + background: rgba(30, 41, 59, 0.6); } .language-selector select:focus { outline: none; - border-color: var(--focus-ring); - box-shadow: 0 0 0 2px var(--focus-ring); + border-color: var(--accent); + box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1); } .language-selector select:focus-visible { outline: none; - border-color: var(--focus-ring); - box-shadow: 0 0 0 2px var(--focus-ring); + border-color: var(--accent); + box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1); } .language-selector::after { @@ -224,6 +345,14 @@ body { text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); } +@media (max-width: 480px) { + .version-label { + font-size: 0.625rem; + bottom: 1rem; + right: 1rem; + } +} + /* ======================================== FOCUS & ACCESSIBILITY ======================================== */ diff --git a/app/page.tsx b/app/page.tsx index c92e1b1..d414404 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -19,9 +19,6 @@ export default function Home() { {/* Language selector - top right */}
-