:root{--bg: #F9F8F6;--bg-elev: #FFFFFF;--bg-soft: #F1EFEA;--surface: rgba(255, 255, 255, .72);--surface-strong: #FFFFFF;--border: #E6E4DF;--border-strong: #D9D5CC;--text: #1C1C1C;--text-muted: #5C5C5C;--text-soft: #8A8A8A;--forest: #1F4E3D;--forest-dark: #173B2E;--forest-light: #D2E8E0;--terracotta: #E07A5F;--sand: #F4A261;--success: #2A9D8F;--accent: var(--forest);--accent-soft: var(--forest-light);--danger: #C0523A;--font-display: "Outfit", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--grad-brand: linear-gradient(135deg, #1F4E3D 0%, #2A9D8F 100%);--grad-hero: radial-gradient(ellipse at top left, rgba(31, 78, 61, .1), transparent 55%), radial-gradient(ellipse at bottom right, rgba(224, 122, 95, .1), transparent 55%);--bg-size: auto;--bg-position: center;--shadow-sm: 0 1px 0 rgba(0, 0, 0, .02);--shadow-md: 0 8px 32px rgba(0, 0, 0, .04), 0 1px 0 rgba(0, 0, 0, .02);--shadow-lg: 0 20px 60px rgba(31, 78, 61, .12), 0 1px 0 rgba(0, 0, 0, .02);--shadow-brand: 0 12px 28px rgba(31, 78, 61, .22);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 28px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--focus-ring: rgba(31, 78, 61, .1);--bio-bg: var(--forest-light);--bio-border: rgba(31, 78, 61, .12);--bio-text: var(--forest)}[data-theme=dark]{--bg: #15161D;--bg-elev: #1E1F28;--bg-soft: #20212B;--surface: rgba(30, 31, 40, .72);--surface-strong: rgba(30, 31, 40, .95);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--text: #F1EEE6;--text-muted: #9D97A8;--text-soft: #6B6678;--forest: #3DC4B7;--forest-dark: #2A9D8F;--forest-light: rgba(61, 196, 183, .18);--terracotta: #F39669;--sand: #FFB58A;--success: #3DC4B7;--accent: #3DC4B7;--accent-soft: rgba(61, 196, 183, .18);--danger: #E88A8A;--grad-brand: linear-gradient(135deg, #1F4E3D 0%, #2A9D8F 100%);--grad-hero: radial-gradient(ellipse at top left, rgba(14, 155, 143, .18), transparent 50%), radial-gradient(ellipse at bottom right, rgba(154, 130, 209, .18), transparent 50%);--bg-size: auto;--bg-position: center;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .5);--shadow-brand: 0 12px 28px rgba(61, 196, 183, .28);--focus-ring: rgba(61, 196, 183, .22);--bio-bg: rgba(61, 196, 183, .16);--bio-border: rgba(61, 196, 183, .28);--bio-text: #3DC4B7}[data-theme=glass]{--bg: #5B9FE0;--bg-elev: rgba(255, 255, 255, .72);--bg-soft: rgba(255, 255, 255, .52);--surface: rgba(255, 255, 255, .68);--surface-strong: rgba(255, 255, 255, .82);--border: rgba(255, 255, 255, .62);--border-strong: rgba(255, 255, 255, .78);--text: #0E2A4A;--text-muted: rgba(14, 42, 74, .68);--text-soft: rgba(14, 42, 74, .48);--forest: #252943;--forest-dark: #1A1D30;--forest-light: rgba(255, 255, 255, .55);--terracotta: #FF9F0A;--sand: #FFD60A;--success: #34C759;--accent: #0A84FF;--accent-soft: #64D2FF;--danger: #FF453A;--grad-brand: linear-gradient(135deg, #252943 0%, #0A84FF 100%);--grad-hero: url(/themes/glass-bg.webp);--bg-size: cover;--bg-position: center center;--shadow-sm: 0 2px 10px rgba(20, 70, 130, .12);--shadow-md: 0 10px 28px rgba(20, 70, 130, .18);--shadow-lg: 0 18px 48px rgba(20, 70, 130, .24);--shadow-brand: 0 12px 28px rgba(37, 41, 67, .35);--focus-ring: rgba(10, 132, 255, .22);--bio-bg: rgba(255, 255, 255, .55);--bio-border: rgba(255, 255, 255, .72);--bio-text: #0E2A4A}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes logoPop{0%{opacity:0;transform:scale(.5) rotate(-20deg)}60%{transform:scale(1.1) rotate(5deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes blobFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(20px,-30px) scale(1.1)}66%{transform:translate(-15px,20px) scale(.95)}}@keyframes bioPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes spin{to{transform:rotate(360deg)}}html,body{background:var(--bg);background-image:var(--grad-hero);background-size:var(--bg-size, auto);background-position:var(--bg-position, center);background-repeat:no-repeat;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.framework7-root,.views,.view,.page{background:transparent!important}.page,.page-content{background:transparent!important;--f7-page-bg-color: transparent}.gate-page{background:transparent!important;--f7-safe-area-top: 0px;--f7-safe-area-bottom: 0px}.gate-page-content{position:relative;height:100%;width:100%;padding:0!important;margin:0!important;overflow:hidden;background:transparent}.gate-page .navbar,.gate-page .toolbar,.gate-page .statusbar{display:none!important}.safe-areas .page.gate-page,.page.gate-page{padding-top:0!important;padding-bottom:0!important}.gate-page:before,.gate-page:after{display:none!important}button{font-family:inherit;border:none;background:none;padding:0;margin:0;cursor:pointer;color:inherit;position:relative;overflow:hidden;isolation:isolate}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;outline:none}a{color:inherit;text-decoration:none}*{box-sizing:border-box}.gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:var(--bg);background-image:var(--grad-hero);background-size:var(--bg-size, auto);background-position:var(--bg-position, center);background-repeat:no-repeat;display:flex;flex-direction:column;padding:max(env(safe-area-inset-top),24px) 24px calc(max(env(safe-area-inset-bottom),24px) + 48px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;min-height:100%}@media (min-width: 500px){.gate{border-radius:0}}@media (min-width: 640px){.gate:not([data-variant=welcome]){padding:clamp(24px,8vh,72px) 24px}.gate:not([data-variant=welcome]) .gate-body{width:100%;max-width:420px;height:auto;margin:0 auto;padding:32px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}[data-theme=glass] .gate:not([data-variant=welcome]) .gate-body{background:var(--surface-strong);border-color:var(--border);box-shadow:var(--shadow-lg);backdrop-filter:blur(28px) saturate(1.4);-webkit-backdrop-filter:blur(28px) saturate(1.4)}}.gate-blobs{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.blob{position:absolute;border-radius:50%;filter:blur(64px);opacity:.22;animation:blobFloat 12s ease-in-out infinite}.blob.b1{width:300px;height:300px;background:var(--forest-light);top:-90px;left:-70px}.blob.b2{width:220px;height:220px;background:var(--sand);top:30%;right:-60px;animation-delay:-3s}.blob.b3{width:260px;height:260px;background:var(--terracotta);bottom:-90px;left:20%;animation-delay:-6s}.blob.b4{width:200px;height:200px;background:var(--success);top:50%;left:30%;animation-delay:-9s}.gate-body{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100%;height:auto}.brand-logo{display:inline-flex;align-items:center;gap:10px}.brand-mark{flex-shrink:0;display:grid;place-items:center;background:#fff;color:#1c1c1c;border:1px solid var(--border);box-shadow:var(--shadow-brand)}.brand-wordmark{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;color:var(--text);line-height:1}.auth-top .brand-logo{animation:fadeUp .5s var(--ease-out) both}#gate-welcome{padding-left:0;padding-right:0;margin-left:-24px;margin-right:-24px}.welcome-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;border-radius:inherit}.welcome-slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity 1.4s ease-in-out}.welcome-slide.active{opacity:1}.welcome-bg svg{width:100%;height:100%;display:block}.welcome-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 0%,transparent 60%,var(--bg) 100%);opacity:.55;pointer-events:none}.welcome-head{position:relative;z-index:2;text-align:center;padding:24px 24px 0;display:flex;flex-direction:column;align-items:center;gap:16px;margin:auto 0}.welcome-head .brand-logo{animation:logoPop .9s var(--ease-spring) both}.welcome-head .welcome-title{font-family:var(--font-display);font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--text);animation:fadeUp .7s .25s var(--ease-out) both}.welcome-head .welcome-sub{font-size:14px;color:var(--text-muted);max-width:280px;line-height:1.4;animation:fadeUp .7s .4s var(--ease-out) both}#gate-welcome .welcome-cta{position:relative;z-index:2;padding:0 24px 8px;margin-top:0;animation:fadeUp .7s .6s var(--ease-out) both;display:flex;flex-direction:column;gap:10px;width:100%;flex-shrink:0}#gate-welcome{display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:100%}.cta-primary{padding:16px;border-radius:var(--radius-md);background:var(--forest);color:#fff;font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-.01em;box-shadow:var(--shadow-brand);transition:transform .2s;width:100%;flex-shrink:0}.cta-primary:active{transform:scale(.97)}.cta-primary:disabled{opacity:.5}.cta-secondary{padding:16px;border-radius:var(--radius-md);background:var(--surface-strong);border:1px solid var(--border);font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text);transition:transform .2s;width:100%;flex-shrink:0}.cta-secondary:active{transform:scale(.97)}.auth-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.gate-back{width:42px;height:42px;border-radius:50%;background:var(--surface-strong);border:1px solid var(--border);display:grid;place-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:transform .2s}.gate-back:active{transform:scale(.9)}.gate-back svg{width:18px;height:18px;stroke:var(--text);stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.auth-title{font-family:var(--font-display);font-size:30px;font-weight:800;letter-spacing:-.02em;margin-top:auto;padding-top:8px;color:var(--text);animation:fadeUp .5s var(--ease-out) both}.auth-sub{font-size:14px;color:var(--text-muted);margin-top:4px;margin-bottom:24px;line-height:1.5;animation:fadeUp .5s .1s var(--ease-out) both}.auth-section-label{font-size:11px;color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:14px 4px 8px}.social-btn{width:100%;padding:14px;border-radius:var(--radius-md);background:var(--surface-strong);border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;font-weight:700;margin-bottom:8px;transition:transform .2s,background .2s;animation:fadeUp .5s var(--ease-out) both;color:var(--text)}.social-btn:active{transform:scale(.97)}.social-btn.google{background:#fff;color:#1f1f1f;border-color:#00000014}.social-btn__icon{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;flex-shrink:0}.social-providers{display:flex;align-items:center;justify-content:center;gap:14px;margin:4px 0 12px;animation:fadeUp .5s var(--ease-out) both}.social-icon-btn{width:52px;height:52px;border-radius:50%;border:1px solid var(--border);background:var(--surface-strong);box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s;color:var(--text)}.social-icon-btn:active{transform:scale(.94)}.social-icon-btn:hover:not(:disabled),.social-icon-btn:focus-visible{box-shadow:var(--shadow-md, 0 6px 16px rgba(0, 0, 0, .12));outline:none}.social-icon-btn:disabled,.social-icon-btn.is-disabled{opacity:.45;cursor:not-allowed}.social-icon-btn__glyph{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center}.social-icon-btn.google{background:#fff;border-color:#00000014}.social-icon-btn.facebook{background:#fff;border-color:#1877f233}.social-icon-btn.x{background:#fff;color:#0f1419;border-color:#0000001f}.social-icon-btn.apple{background:#fff;color:#000;border-color:#0000001f}.divider{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:11px;color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border-strong)}.auth-field{position:relative;margin-bottom:10px;animation:fadeUp .5s var(--ease-out) both}.auth-field .a-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);display:grid;place-items:center;color:var(--text-soft);pointer-events:none;z-index:1}.auth-field .a-icon svg{width:19px;height:19px;display:block}.auth-field:focus-within .a-icon{color:var(--forest)}.auth-field input{width:100%;padding:16px 16px 16px 46px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);font-size:14px;font-weight:500;transition:border-color .2s,box-shadow .2s;color:var(--text)}.auth-field input:focus{border-color:var(--forest);box-shadow:0 0 0 3px var(--focus-ring)}.auth-field input::placeholder{color:var(--text-soft);font-weight:500}.auth-field.has-eye input{padding-right:48px}.auth-field .toggle-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:var(--text-muted)}.auth-field .toggle-eye svg{width:18px;height:18px}.auth-field-error{font-size:12px;color:var(--danger);margin:4px 4px 8px;font-weight:500}.auth-forgot{font-size:12px;color:var(--accent);font-weight:600;text-align:right;cursor:pointer;background:none;border:none;padding:0;display:block;margin:4px 4px 16px auto}.auth-submit{width:100%;padding:16px;border-radius:var(--radius-md);background:var(--forest);color:#fff;font-family:var(--font-display);font-size:15px;font-weight:700;box-shadow:var(--shadow-brand);transition:transform .2s;display:flex;align-items:center;justify-content:center;gap:8px;animation:fadeUp .5s .2s var(--ease-out) both;flex-shrink:0;box-sizing:border-box;min-height:54px}.auth-submit:active{transform:scale(.97)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-submit-row{display:flex;align-items:stretch;gap:10px;flex-shrink:0}.auth-submit-row .auth-submit{flex:1}.bio-icon-btn{flex-shrink:0;width:54px;min-height:54px;border-radius:var(--radius-md);background:var(--bio-bg);border:1px solid var(--bio-border);color:var(--bio-text);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:transform .2s,opacity .2s;animation:fadeUp .5s .2s var(--ease-out) both}.bio-icon-btn svg{width:24px;height:24px;animation:bioPulse 2s ease-in-out infinite}.bio-icon-btn.is-running svg{animation-duration:.9s}.bio-icon-btn:active{transform:scale(.97)}.bio-icon-btn:disabled{opacity:.75;cursor:wait}.bio-error{margin-bottom:10px}.auth-foot{margin-top:auto;text-align:center;font-size:13px;color:var(--text-muted);padding-top:14px;flex-shrink:0}.auth-foot a{color:var(--accent);font-weight:700;cursor:pointer}.auth-foot-links{display:flex;justify-content:center;gap:24px;margin-top:18px;font-size:13px}.auth-foot-links a{color:var(--accent);font-weight:600;cursor:pointer}.auth-error{background:#c0523a1a;border:1px solid rgba(192,82,58,.25);color:var(--danger);padding:10px 14px;border-radius:12px;font-size:12px;font-weight:600;margin-bottom:10px;animation:fadeUp .3s var(--ease-out) both}.welcome-terms{text-align:center;font-size:11px;color:var(--text-soft);margin-top:10px;line-height:1.5}.welcome-terms b{color:var(--text-muted);font-weight:700}.welcome-terms a,.auth-terms a{color:var(--text);font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.auth-gender{margin:4px 0 12px;text-align:left}.auth-gender-label{font-size:12px;font-weight:600;color:var(--text-muted);margin:0 4px 8px}.auth-gender-opt{font-weight:500;color:var(--text-soft)}.auth-gender-pills{display:flex;gap:8px}.auth-gender-pill{flex:1;height:40px;border-radius:12px;border:1.5px solid var(--border, rgba(0, 0, 0, .08));background:var(--bg-elev, #fff);color:var(--text);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.auth-gender-pill.is-active{border-color:var(--accent, #0E9B8F);background:color-mix(in srgb,var(--accent, #0E9B8F) 14%,transparent);color:var(--accent, #0E9B8F)}.auth-terms{text-align:left;color:var(--text-muted);font-weight:500;font-size:12px;line-height:1.4;margin:4px 4px 16px}.legal-page{max-width:560px;margin:0 auto;width:100%}.legal-content{font-size:13px;line-height:1.55;color:var(--text-muted);padding-bottom:24px;animation:fadeUp .5s .1s var(--ease-out) both}.legal-content .legal-updated{font-size:11px;color:var(--text-soft);margin:0 0 16px}.legal-content h2{font-size:14px;font-weight:700;color:var(--text);margin:18px 0 8px;line-height:1.3}.legal-content p{margin:0 0 10px}.legal-content ul{margin:0 0 10px;padding-left:1.2em}.legal-content li{margin-bottom:6px}.legal-content b{color:var(--text);font-weight:700}.legal-content a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}.status-icon{width:96px;height:96px;border-radius:30px;display:grid;place-items:center;margin:16px auto 24px;font-size:48px;color:#fff;box-shadow:var(--shadow-md);animation:logoPop .9s var(--ease-spring) both}.status-icon.success{background:var(--grad-brand)}.status-icon.error{background:linear-gradient(135deg,var(--sand),var(--terracotta))}.status-icon.info{background:var(--grad-brand)}.status-title{font-family:var(--font-display);text-align:center;font-size:26px;font-weight:800;letter-spacing:-.03em;color:var(--text);margin-bottom:10px;animation:fadeUp .5s .1s var(--ease-out) both}.status-text{text-align:center;font-size:14px;color:var(--text-muted);line-height:1.5;max-width:320px;margin:0 auto 28px;animation:fadeUp .5s .2s var(--ease-out) both}.gate-loading-text{margin-top:auto;margin-bottom:auto;animation:none;opacity:.7}.password-strength{margin:-4px 4px 14px;display:flex;gap:4px}.password-strength-bar{flex:1;height:4px;border-radius:2px;background:var(--border-strong);transition:background .3s var(--ease-out)}.password-strength-bar.active.s-1{background:var(--danger)}.password-strength-bar.active.s-2{background:var(--terracotta)}.password-strength-bar.active.s-3{background:var(--sand)}.password-strength-bar.active.s-4{background:var(--success)}.password-requirements{margin:0 4px 14px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;font-size:12px;color:var(--text-muted);line-height:1.7}.password-requirements ul{margin:6px 0 0;padding-left:18px}.password-requirements li.ok{color:var(--success);font-weight:600}.gate-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:4px;margin-right:-4px}[data-theme=glass] .gate-back,[data-theme=glass] .cta-secondary,[data-theme=glass] .social-btn,[data-theme=glass] .social-icon-btn,[data-theme=glass] .auth-field input,[data-theme=glass] .bio-icon-btn{backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3)}[data-theme=glass] .cta-primary,[data-theme=glass] .auth-submit{background:var(--forest);color:#fff;box-shadow:var(--shadow-brand)}[data-theme=glass] .social-btn.google,[data-theme=glass] .social-icon-btn.google,[data-theme=glass] .social-icon-btn.facebook,[data-theme=glass] .social-icon-btn.x,[data-theme=glass] .social-icon-btn.apple{background:#ffffffeb;border-color:#fffc}[data-theme=glass] .welcome-overlay{background:linear-gradient(to bottom,transparent 0%,transparent 45%,rgba(255,255,255,.55) 100%);opacity:1}[data-theme=glass] .blob{opacity:.12}[data-theme=glass] .password-requirements{background:var(--surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}@media (max-width: 639px){[data-theme=glass] .brand-wordmark,[data-theme=glass] .auth-foot{color:#fff}[data-theme=glass] .auth-foot a{color:var(--accent)}}[data-theme=dark] .social-btn.google,[data-theme=dark] .social-icon-btn.google,[data-theme=dark] .social-icon-btn.facebook,[data-theme=dark] .social-icon-btn.x,[data-theme=dark] .social-icon-btn.apple{background:#fff;color:#1f1f1f;border-color:#ffffff1f}[data-theme=dark] .social-icon-btn.x,[data-theme=dark] .social-icon-btn.apple{color:#0f1419}[data-theme=dark] .blob{opacity:.18}
