@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); :root { --font: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; --ease: cubic-bezier(0.4, 0, 0.2, 1); --duration: 260ms; /* ─── Dark (Default: Purple → Wine) ─── */ --bg-from: #3a0f3c; --bg-to: #7b1535; --fg: #ffffff; --fg-secondary: rgba(255, 255, 255, 0.55); --card-bg: rgba(255, 255, 255, 0.10); --card-border: rgba(255, 255, 255, 0.12); --card-shadow: 0 4px 24px rgba(0, 0, 0, 0.25); --card-hover-shadow: 0 12px 40px rgba(0, 0, 0, 0.4); --card-hover-bg: rgba(255, 255, 255, 0.15); --accent: #ffffff; --accent-btn: rgba(255, 255, 255, 0.18); --error: #FF6B7A; } [data-theme='light'] { /* ─── Light: Lavender → Pink ─── */ --bg-from: #e8d5f5; --bg-to: #f5c2d0; --fg: #1c1c2e; --fg-secondary: rgba(28, 28, 46, 0.55); --card-bg: rgba(255, 255, 255, 0.45); --card-border: rgba(255, 255, 255, 0.8); --card-shadow: 0 4px 24px rgba(100, 30, 60, 0.10); --card-hover-shadow: 0 12px 40px rgba(100, 30, 60, 0.18); --card-hover-bg: rgba(255, 255, 255, 0.65); --accent: #1c1c2e; --accent-btn: rgba(28, 28, 46, 0.12); --error: #e0334e; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html, body { height: 100%; } body { min-height: 100vh; font-family: var(--font); color: var(--fg); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; background: linear-gradient(145deg, var(--bg-from) 0%, var(--bg-to) 100%); background-attachment: fixed; transition: background var(--duration) var(--ease), color var(--duration) var(--ease); } a { text-decoration: none; color: inherit; } button { cursor: pointer; border: none; outline: none; font-family: var(--font); } /* ── Scrollbar ── */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 10px; } /* ── Input ── */ input[type="text"], input[type="password"], input[type="url"], input[type="email"] { width: 100%; padding: 0.85rem 1rem; background: var(--card-bg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--card-border); border-radius: 12px; color: var(--fg); font-family: var(--font); font-size: 0.95rem; outline: none; transition: all var(--duration) var(--ease); } input:focus { border-color: rgba(255,255,255,0.5); box-shadow: 0 0 0 3px rgba(255,255,255,0.10); } input::placeholder { color: var(--fg-secondary); } /* ── Glass card ── */ .glass-card { background: var(--card-bg); backdrop-filter: blur(24px) saturate(1.4); -webkit-backdrop-filter: blur(24px) saturate(1.4); border: 1px solid var(--card-border); box-shadow: var(--card-shadow); border-radius: 20px; transition: all var(--duration) var(--ease); } /* ── Btn primary ── */ .btn-primary { background: rgba(255,255,255,0.18); color: var(--fg); border: 1px solid rgba(255,255,255,0.25); padding: 0.75rem 1.4rem; border-radius: 50px; font-size: 0.88rem; font-weight: 600; letter-spacing: -0.01em; backdrop-filter: blur(12px); transition: all var(--duration) var(--ease); } .btn-primary:hover { background: rgba(255,255,255,0.28); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0,0,0,0.2); } .btn-primary:disabled { opacity: 0.5; pointer-events: none; }