diff --git a/style.css b/style.css index bf46d56..184669c 100644 --- a/style.css +++ b/style.css @@ -1,40 +1,42 @@ +@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap'); + :root { - --bg-color: #050b18; - --text-color: #e2e8f0; - --accent-1: #00ffb4; - --accent-1-rgb: 0, 255, 180; - --accent-2: #00bfff; - --card-bg: rgba(255, 255, 255, 0.03); - --card-border: rgba(255, 255, 255, 0.08); - --subtitle-color: #64748b; - --label-color: #475569; - --input-bg: rgba(255, 255, 255, 0.05); - --input-border: rgba(255, 255, 255, 0.1); - --header-badge-bg: rgba(0, 255, 180, 0.08); - --header-badge-border: rgba(0, 255, 180, 0.2); - --safe-color: #00ffb4; - --safe-bg: rgba(0, 255, 180, 0.06); - --safe-border: rgba(0, 255, 180, 0.2); - --footer-bg: rgba(255, 255, 255, 0.02); + --bg-color: #030712; + --text-color: #f3f4f6; + --accent-1: #10b981; + --accent-1-rgb: 16, 185, 129; + --accent-2: #06b6d4; + --card-bg: rgba(17, 24, 39, 0.4); + --card-border: rgba(16, 185, 129, 0.15); + --subtitle-color: #9ca3af; + --label-color: #4b5563; + --input-bg: rgba(17, 24, 39, 0.6); + --input-border: rgba(255, 255, 255, 0.08); + --header-badge-bg: rgba(16, 185, 129, 0.08); + --header-badge-border: rgba(16, 185, 129, 0.2); + --safe-color: #10b981; + --safe-bg: rgba(16, 185, 129, 0.06); + --safe-border: rgba(16, 185, 129, 0.2); + --footer-bg: rgba(17, 24, 39, 0.5); } .light-mode { --bg-color: #f8fafc; - --text-color: #000000; + --text-color: #0f172a; --accent-1: #f97316; --accent-1-rgb: 249, 115, 22; --accent-2: #ef4444; - --card-bg: #ffffff; + --card-bg: rgba(255, 255, 255, 0.85); --card-border: rgba(249, 115, 22, 0.15); - --subtitle-color: #000000; - --label-color: #111111; + --subtitle-color: #475569; + --label-color: #1e293b; --input-bg: #ffffff; - --input-border: rgba(249, 115, 22, 0.25); - --header-badge-bg: rgba(249, 115, 22, 0.08); - --header-badge-border: rgba(249, 115, 22, 0.25); + --input-border: rgba(249, 115, 22, 0.2); + --header-badge-bg: rgba(249, 115, 22, 0.06); + --header-badge-border: rgba(249, 115, 22, 0.22); --safe-color: #f97316; - --safe-bg: rgba(249, 115, 22, 0.06); - --safe-border: rgba(249, 115, 22, 0.2); + --safe-bg: rgba(249, 115, 22, 0.04); + --safe-border: rgba(249, 115, 22, 0.15); --footer-bg: #f1f5f9; } @@ -56,10 +58,10 @@ body { background: var(--bg-color); color: var(--text-color); - font-family: 'Segoe UI', system-ui, sans-serif; + font-family: 'Plus Jakarta Sans', 'Segoe UI', system-ui, sans-serif; min-height: 100vh; overflow-x: hidden; - transition: background 0.3s, color 0.3s; + transition: background 0.4s cubic-bezier(0.4, 0, 0.2, 1), color 0.4s cubic-bezier(0.4, 0, 0.2, 1); } body::before { @@ -67,8 +69,8 @@ body::before { position: fixed; inset: 0; background-image: - linear-gradient(rgba(0,255,180,0.03) 1px, transparent 1px), - linear-gradient(90deg, rgba(0,255,180,0.03) 1px, transparent 1px); + linear-gradient(rgba(16, 185, 129, 0.03) 1px, transparent 1px), + linear-gradient(90deg, rgba(16, 185, 129, 0.03) 1px, transparent 1px); background-size: 40px 40px; pointer-events: none; z-index: 0; @@ -77,8 +79,8 @@ body::before { .light-mode body::before { background-image: - linear-gradient(rgba(249, 115, 22, 0.05) 1px, transparent 1px), - linear-gradient(90deg, rgba(249, 115, 22, 0.05) 1px, transparent 1px); + linear-gradient(rgba(249, 115, 22, 0.04) 1px, transparent 1px), + linear-gradient(90deg, rgba(249, 115, 22, 0.04) 1px, transparent 1px); } .hidden { display: none !important; } @@ -203,9 +205,9 @@ body::before { .wrapper { position: relative; z-index: 1; - max-width: 1200px; + max-width: 1000px; margin: 0 auto; - padding: 60px 40px 80px; + padding: 80px 24px; } /* ── Theme Toggle ── */ @@ -240,6 +242,11 @@ body::before { margin-bottom: 52px; } +@keyframes float { + 0%, 100% { transform: translateY(0); } + 50% { transform: translateY(-6px); } +} + .logo-badge { display: inline-flex; align-items: center; @@ -254,6 +261,7 @@ body::before { text-transform: uppercase; color: var(--accent-1); margin-bottom: 24px; + animation: float 4s ease-in-out infinite; } .logo-badge .dot { @@ -299,17 +307,19 @@ h1 span { border-radius: 24px; padding: 48px; margin-bottom: 32px; - box-shadow: 0 4px 32px rgba(0, 0, 0, 0.1); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15); max-width: 900px; margin-left: auto; margin-right: auto; - transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.3s ease; + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .scanner-card:hover { - transform: translateY(-2px); + transform: translateY(-4px); border-color: var(--accent-1); - box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15); + box-shadow: 0 16px 48px rgba(var(--accent-1-rgb), 0.12); } .input-row { @@ -415,13 +425,14 @@ input[type="text"].input-error { display: flex; align-items: center; gap: 8px; - transition: transform 0.15s, opacity 0.15s; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); text-decoration: none; + box-shadow: 0 4px 14px rgba(var(--accent-1-rgb), 0.3); } -.scan-btn:hover { transform: translateY(-1px); opacity: 0.92; } -.scan-btn:active { transform: translateY(0); } -.scan-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; } +.scan-btn:hover { transform: translateY(-2px) scale(1.02); opacity: 0.95; box-shadow: 0 8px 22px rgba(var(--accent-1-rgb), 0.45); } +.scan-btn:active { transform: translateY(0) scale(0.98); } +.scan-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; } .dashboard-cta { display: flex; @@ -849,6 +860,13 @@ input[type="text"].input-error { padding: 20px 16px; text-align: center; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.stat-card:hover { + transform: translateY(-4px) scale(1.02); + border-color: var(--accent-1); + box-shadow: 0 12px 28px rgba(var(--accent-1-rgb), 0.15); } .stat-num { @@ -881,13 +899,13 @@ input[type="text"].input-error { border: 1px solid var(--card-border); border-radius: 14px; padding: 20px; - transition: transform 0.2s; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .feature-item:hover { - transform: translateY(-5px); + transform: translateY(-6px) scale(1.02); border-color: var(--accent-1); - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); + box-shadow: 0 16px 36px rgba(var(--accent-1-rgb), 0.15); } .feature-icon { font-size: 20px; margin-bottom: 10px; } @@ -997,15 +1015,15 @@ input[type="text"].input-error { background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 18px; - transition: all 0.2s; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); width: 100%; } .member-card:hover { background: var(--header-badge-bg); border-color: var(--accent-1); - transform: translateY(-4px); - box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); + transform: translateY(-6px) scale(1.02); + box-shadow: 0 16px 36px rgba(var(--accent-1-rgb), 0.15); } .member-avatar {