.ff .auth-wrap{position:relative;z-index:1;min-height:100vh;justify-content:center;padding:48px 20px}.ff .auth-lockup,.ff .auth-wrap{display:flex;flex-direction:column;align-items:center}.ff .auth-lockup{gap:14px;margin-bottom:26px}.ff .auth-lockup .word{font-weight:700;font-size:19px;letter-spacing:-.01em;color:var(--strong)}.ff .auth-lockup .word b{color:var(--accent-lt);font-weight:700}.ff .auth-card{width:100%;max-width:420px;background:var(--frost-2);border:1px solid var(--stroke);border-radius:var(--r-card);padding:32px 30px;box-shadow:var(--shadow);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4)}.ff .auth-card.narrow{max-width:400px;text-align:center}.ff .auth-h1{font-size:27px;font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--strong)}.ff .auth-sub{margin-top:8px;font-size:15px;color:var(--soft);font-weight:300;line-height:1.55}.ff .auth-form{margin-top:24px;gap:16px}.ff .auth-field,.ff .auth-form{display:flex;flex-direction:column}.ff .auth-field{gap:7px}.ff .auth-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-lt)}.ff .auth-input{width:100%;background:var(--frost);border:1px solid var(--stroke);border-radius:var(--r-ctrl);padding:13px 15px;font-size:15.5px;color:var(--strong);font-family:var(--font);transition:border-color .2s,background .2s}.ff .auth-input::-moz-placeholder{color:var(--hint)}.ff .auth-input::placeholder{color:var(--hint)}.ff .auth-input:focus{outline:none;border-color:var(--accent-lt);background:var(--frost-2)}.ff .auth-input:focus-visible{outline:2px solid var(--accent-lt);outline-offset:2px}.ff .auth-pw{position:relative}.ff .auth-pw .auth-input{padding-right:46px}.ff .auth-pw .reveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;display:grid;place-items:center;color:var(--soft);background:none;border:none;cursor:pointer;border-radius:9px}.ff .auth-pw .reveal:hover{color:var(--strong)}.ff .auth-pw .reveal:focus-visible{outline:2px solid var(--accent-lt);outline-offset:1px}.ff .auth-btn{width:100%;padding:14px 20px;font-size:15.5px}.ff .auth-ghostbtn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--frost);border:1px solid var(--stroke);color:var(--strong);padding:12px 18px;border-radius:var(--r-ctrl);font-size:14.5px;font-weight:600;cursor:pointer;font-family:var(--font);transition:border-color .2s,background .2s;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.ff .auth-ghostbtn:hover{border-color:var(--stroke-2);background:var(--frost-2)}.ff .auth-ghostbtn:disabled{opacity:.5;cursor:not-allowed}.ff .auth-ghostbtn:focus-visible{outline:2px solid var(--accent-lt);outline-offset:2px}.ff .auth-link{color:var(--accent-lt);font-weight:600;transition:opacity .2s}.ff .auth-link:hover{opacity:.82;text-decoration:underline;text-underline-offset:3px}.ff .auth-meta{margin-top:22px;text-align:center;font-size:14px;color:var(--soft)}.ff .auth-right{text-align:right;font-size:13.5px}.ff .auth-right a{color:var(--soft);transition:color .2s}.ff .auth-right a:hover{color:var(--strong)}.ff .auth-error{font-size:13.5px;color:#fbd3d4;background:rgba(224,132,135,.12);border:1px solid rgba(224,132,135,.4);border-radius:12px;padding:11px 13px;line-height:1.45}.ff .auth-attest{display:flex;align-items:flex-start;gap:11px;background:var(--frost);border:1px solid var(--stroke);border-radius:var(--r-ctrl);padding:13px 15px;cursor:pointer}.ff .auth-attest input{margin-top:2px;width:16px;height:16px;flex:none;cursor:pointer;accent-color:var(--accent)}.ff .auth-attest span{font-size:13px;line-height:1.5;color:var(--text)}.ff .auth-attest a{color:var(--accent-lt);font-weight:600}.ff .wiz{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.ff .wiz-head{position:sticky;top:0;z-index:10;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);background:rgba(21,25,38,.5);border-bottom:1px solid var(--stroke)}.ff .wiz-head .in{display:flex;align-items:center;gap:16px;max-width:520px;margin:0 auto;padding:18px 22px 14px}.ff .wiz-back{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--stroke);background:var(--frost);color:var(--strong);cursor:pointer;transition:background .2s,opacity .2s}.ff .wiz-back:hover{background:var(--frost-2)}.ff .wiz-bars{display:flex;flex:1;gap:6px}.ff .wiz-bars span{height:5px;flex:1;border-radius:999px;background:var(--stroke);transition:background .5s}.ff .wiz-bars span.on{background:linear-gradient(135deg,var(--accent-lt),var(--accent))}.ff .wiz-body{flex:1;display:flex;flex-direction:column;max-width:520px;width:100%;margin:0 auto;padding:30px 22px 120px}.ff .wiz-h1{font-size:clamp(28px,5vw,38px);font-weight:600;letter-spacing:-.025em;line-height:1.05;color:var(--strong)}.ff .wiz-p{margin-top:10px;font-size:16px;color:var(--soft);font-weight:300;line-height:1.55}.ff .wiz-foot{position:fixed;inset-inline:0;bottom:0;z-index:10;border-top:1px solid var(--stroke);background:rgba(21,25,38,.7);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.ff .wiz-foot .in{max-width:520px;margin:0 auto;padding:16px 22px}.ff .wiz-meta{position:fixed;inset-inline:0;bottom:0;z-index:10;text-align:center;padding:20px;font-size:14px;color:var(--soft);background:linear-gradient(to top,var(--bg-bot),transparent)}.ff .wiz-creating{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px}.ff .wiz-creating img{width:96px;height:auto;animation:ff-bob 2.4s ease-in-out infinite}.ff .rise{opacity:0;transform:translateY(14px);animation:ff-rise .5s ease forwards}.ff .rise.d1{animation-delay:.08s}.ff .rise.d2{animation-delay:.16s}.ff .rise.d3{animation-delay:.24s}@keyframes ff-rise{to{opacity:1;transform:translateY(0)}}.ff .auth-badge{margin:0 auto 18px;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:rgba(232,89,12,.14);border:1px solid var(--stroke);color:var(--accent-lt)}@media(prefers-reduced-motion:reduce){.ff .rise{opacity:1;transform:none}.ff .rise,.ff .wiz-creating img{animation:none}}