| |
| |
| |
|
|
| *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } |
|
|
| :root { |
| --dark: #111a0d; |
| --moss: #3d6b2a; |
| --leaf: #5a9e3c; |
| --sprout: #8ecf5e; |
| --gold: #c9a84c; |
| --ink: #0e1209; |
| } |
|
|
| html, body { |
| height: 100%; |
| font-family: 'Cabinet Grotesk', sans-serif; |
| background: var(--dark); |
| color: #fff; |
| cursor: none; |
| overflow: hidden; |
| } |
|
|
| |
| .cursor-dot, .cursor-ring { |
| position: fixed; |
| pointer-events: none; |
| z-index: 9999; |
| border-radius: 50%; |
| transform: translate(-50%, -50%); |
| } |
| .cursor-dot { width: 6px; height: 6px; background: var(--sprout); mix-blend-mode: screen; } |
| .cursor-ring { width: 28px; height: 28px; border: 1.5px solid var(--sprout); mix-blend-mode: screen; transition: width .15s, height .15s; } |
| body.cursor-hover .cursor-ring { width: 40px; height: 40px; } |
|
|
| |
| .auth-grain { |
| position: fixed; inset: -100px; |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E"); |
| opacity: 0.045; |
| pointer-events: none; |
| animation: grain .12s steps(2) infinite; |
| z-index: 0; |
| } |
| @keyframes grain { |
| 0% { transform: translate(0,0); } |
| 25% { transform: translate(-4px,-4px); } |
| 50% { transform: translate(4px,4px); } |
| 75% { transform: translate(-3px,3px); } |
| 100% { transform: translate(3px,-3px); } |
| } |
|
|
| .orb { |
| position: fixed; |
| border-radius: 50%; |
| filter: blur(80px); |
| pointer-events: none; |
| z-index: 0; |
| } |
| .orb-1 { |
| width: 500px; height: 500px; |
| background: radial-gradient(circle, rgba(61,107,42,.45) 0%, transparent 70%); |
| top: -120px; left: -100px; |
| animation: floatA 9s ease-in-out infinite alternate; |
| } |
| .orb-2 { |
| width: 380px; height: 380px; |
| background: radial-gradient(circle, rgba(90,158,60,.28) 0%, transparent 70%); |
| bottom: -60px; right: -60px; |
| animation: floatB 11s ease-in-out infinite alternate; |
| } |
| .orb-3 { |
| width: 260px; height: 260px; |
| background: radial-gradient(circle, rgba(201,168,76,.18) 0%, transparent 70%); |
| top: 40%; left: 60%; |
| animation: floatC 13s ease-in-out infinite alternate; |
| } |
| @keyframes floatA { from { transform: translate(0,0); } to { transform: translate(28px,22px); } } |
| @keyframes floatB { from { transform: translate(0,0); } to { transform: translate(-22px,18px); } } |
| @keyframes floatC { from { transform: translate(0,0); } to { transform: translate(18px,-28px); } } |
|
|
| |
| .auth-page { |
| position: relative; |
| z-index: 1; |
| min-height: 100vh; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| justify-content: center; |
| gap: 20px; |
| padding: 40px 24px; |
| } |
|
|
| |
| .auth-lang-switcher { display:flex;justify-content:center;gap:4px;margin-bottom:16px; } |
| .auth-lang-switcher .lang-btn { |
| padding:4px 10px;border-radius:6px;font-size:.72rem;font-weight:700; |
| color:rgba(255,255,255,.35);background:transparent;transition:all .15s;cursor:pointer;font-family:inherit; |
| } |
| .auth-lang-switcher .lang-btn:hover { color:rgba(255,255,255,.8); } |
| .auth-lang-switcher .lang-btn.active { color:#fff;background:rgba(255,255,255,.12); } |
|
|
| |
| [dir="rtl"] .auth-page { direction: rtl; } |
|
|
| |
| .auth-brand { text-align: center; } |
| .auth-logo { |
| font-family: 'Instrument Serif', serif; |
| font-size: 2.6rem; |
| letter-spacing: -0.02em; |
| line-height: 1; |
| margin-bottom: 8px; |
| display:flex;justify-content:center; |
| } |
| .auth-logo-img { height:160px;width:auto;object-fit:contain; } |
| .logo-leaf { color: var(--sprout); } |
| .logo-guard { color: rgba(255,255,255,.9); } |
| .auth-tagline { |
| font-size: 0.8rem; |
| font-weight: 600; |
| letter-spacing: 0.08em; |
| text-transform: uppercase; |
| color: rgba(255,255,255,.3); |
| } |
|
|
| |
| .auth-card { |
| width: 100%; |
| max-width: 420px; |
| background: rgba(255,255,255,.04); |
| border: 1px solid rgba(255,255,255,.09); |
| border-radius: 20px; |
| padding: 32px; |
| backdrop-filter: blur(20px); |
| } |
|
|
| |
| .auth-tabs { |
| display: flex; |
| gap: 4px; |
| background: rgba(255,255,255,.05); |
| border-radius: 10px; |
| padding: 4px; |
| margin-bottom: 28px; |
| } |
| .auth-tab { |
| flex: 1; |
| padding: 9px; |
| border-radius: 7px; |
| font-size: 0.875rem; |
| font-weight: 600; |
| background: transparent; |
| border: none; |
| color: rgba(255,255,255,.45); |
| cursor: none; |
| transition: background .18s, color .18s; |
| } |
| .auth-tab.active { background: rgba(255,255,255,.12); color: #fff; } |
| .auth-tab:hover:not(.active) { color: rgba(255,255,255,.7); background: rgba(255,255,255,.05); } |
|
|
| |
| .auth-form { display: flex; flex-direction: column; gap: 18px; } |
| .auth-form.hidden { display: none; } |
|
|
| .form-group { display: flex; flex-direction: column; gap: 7px; } |
| .form-label { |
| font-size: 0.78rem; |
| font-weight: 700; |
| letter-spacing: 0.04em; |
| text-transform: uppercase; |
| color: rgba(255,255,255,.4); |
| } |
|
|
| .input-wrap { position: relative; } |
| .input-icon { |
| position: absolute; |
| left: 14px; top: 50%; |
| transform: translateY(-50%); |
| color: rgba(255,255,255,.25); |
| pointer-events: none; |
| } |
| .form-input { |
| width: 100%; |
| padding: 12px 16px 12px 42px; |
| border-radius: 10px; |
| border: 1px solid rgba(255,255,255,.1); |
| background: rgba(255,255,255,.05); |
| color: rgba(255,255,255,.9); |
| font-family: 'Cabinet Grotesk', sans-serif; |
| font-size: 0.9rem; |
| outline: none; |
| transition: border-color .15s, background .15s; |
| } |
| .form-input:focus { border-color: var(--leaf); background: rgba(255,255,255,.07); } |
| .form-input::placeholder { color: rgba(255,255,255,.35); } |
| .form-input:-webkit-autofill, |
| .form-input:-webkit-autofill:hover, |
| .form-input:-webkit-autofill:focus { |
| -webkit-text-fill-color: rgba(255,255,255,.9); |
| -webkit-box-shadow: 0 0 0 1000px #1a2212 inset; |
| transition: background-color 5000s ease-in-out 0s; |
| } |
|
|
| .form-error { |
| font-size: 0.8rem; |
| color: #f87171; |
| min-height: 18px; |
| } |
|
|
| .form-submit { |
| margin-top: 4px; |
| padding: 13px 20px; |
| border-radius: 12px; |
| background: var(--leaf); |
| color: #fff; |
| font-weight: 700; |
| font-size: 0.95rem; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 8px; |
| transition: background .18s, transform .12s; |
| cursor: none; |
| } |
| .form-submit:hover:not(:disabled) { background: var(--moss); transform: translateY(-1px); } |
| .form-submit:disabled { opacity: .5; } |
|
|
| |
| .auth-footer { |
| font-size: 0.75rem; |
| color: rgba(255,255,255,.18); |
| letter-spacing: 0.03em; |
| } |
|
|