/* ===== BFM V6 — shared auth pages (sign in / create / recover / reset) ===== */
/* center the card in the full viewport. The sticky nav (~70px) is pulled back out with a
   negative margin so the card lands near true-center, then re-cleared with top padding. */
.auth-wrap{position:relative;z-index:1;min-height:100vh;margin-top:-70px;display:flex;align-items:center;justify-content:center;padding:70px 20px 40px}

/* layered, drifting gold background — depth without WebGL (2D, performant) */
.auth-bg{position:fixed;inset:0;z-index:0;overflow:hidden;background:radial-gradient(125% 95% at 50% -12%,#15100a 0%,#0a0805 56%,#050403 100%);pointer-events:none}
.auth-bg::before,.auth-bg::after{content:"";position:absolute;border-radius:50%;filter:blur(75px);opacity:.5;mix-blend-mode:screen}
.auth-bg::before{width:62vw;height:62vw;left:-12vw;top:-16vw;background:radial-gradient(circle,#e0aa3e,transparent 64%);animation:authGlowA 23s ease-in-out infinite}
.auth-bg::after{width:50vw;height:50vw;right:-13vw;bottom:-15vw;background:radial-gradient(circle,#8a5e1c,transparent 64%);animation:authGlowB 29s ease-in-out infinite}
.auth-bg i{position:absolute;inset:0;background-image:radial-gradient(rgba(255,211,106,.06) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(72% 68% at 50% 42%,#000,transparent);mask-image:radial-gradient(72% 68% at 50% 42%,#000,transparent);animation:authGrid 32s linear infinite}
@keyframes authGlowA{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(8vw,6vw) scale(1.12)}}
@keyframes authGlowB{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-7vw,-5vw) scale(1.1)}}
@keyframes authGrid{to{background-position:0 340px}}
@media(prefers-reduced-motion:reduce){.auth-bg::before,.auth-bg::after,.auth-bg i{animation:none}}
.auth-card{width:100%;max-width:440px;background:linear-gradient(180deg,rgba(18,13,6,.86),rgba(10,8,4,.8));border:1px solid rgba(255,211,106,.2);border-radius:22px;padding:30px 30px 26px;box-shadow:0 40px 90px rgba(0,0,0,.6);opacity:0;transform:translateY(14px);animation:legalIn .55s ease forwards}
.auth-card h1{font-family:var(--display);font-weight:800;font-size:25px;color:var(--head);margin:2px 0 4px}
.auth-card .sub{color:var(--ink-dim);font-size:13.5px;line-height:1.5;margin:0 0 20px}
.tabs{display:flex;gap:6px;background:rgba(3,3,2,.5);border:1px solid var(--line);border-radius:12px;padding:5px;margin-bottom:20px}
.tabs button{flex:1;appearance:none;border:0;background:transparent;color:var(--ink-dim);font-family:var(--display);font-weight:700;font-size:14px;padding:10px;border-radius:9px;cursor:pointer;transition:.18s}
.tabs button:hover{color:var(--head)}
.tabs button.on{color:#241803;background:linear-gradient(135deg,#ffe08c,#e0aa3e)}
.panel{display:none}.panel.on{display:block}
.fg{margin-bottom:14px}
.fg label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}
.fg input{width:100%;font-family:var(--body);font-size:14.5px;color:var(--head);background:rgba(3,3,2,.6);border:1px solid var(--line2);border-radius:11px;padding:12px 14px;transition:border-color .2s,box-shadow .25s}
.fg input::placeholder{color:#6a5e49}
.fg input:focus{outline:none;border-color:rgba(255,211,106,.6);box-shadow:0 0 0 3px rgba(255,211,106,.14)}
.fg input.bad{border-color:#ff7a66;box-shadow:0 0 0 3px rgba(255,122,102,.18)}
.fg .hint{font-size:11px;color:var(--ink-faint);margin-top:5px}
.fg .hint a{color:var(--g2)}
.cf-turnstile{margin:4px 0 16px;display:flex;justify-content:center;min-height:65px}
.ac-btn{width:100%;font-family:var(--display);font-weight:700;font-size:15px;color:#211501;cursor:pointer;border:0;border-radius:12px;padding:13px;background:linear-gradient(135deg,#fff7cf,#ffe08c 24%,#e0aa3e 60%,#9b6518);box-shadow:0 10px 26px rgba(224,170,62,.22);transition:transform .15s,filter .2s}
.ac-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.ac-btn:active{transform:translateY(1px) scale(.99)}
.ac-btn:disabled{opacity:.6;cursor:default;transform:none}
.auth-foot{margin-top:16px;text-align:center;font-size:13px;color:var(--ink-dim)}
.auth-foot a{color:var(--g1)}
.auth-foot a:hover{text-decoration:underline}
.msg{margin:0 0 16px;padding:11px 14px;border-radius:11px;font-size:13px;line-height:1.5;display:none}
.msg.err{display:block;background:rgba(255,122,102,.1);border:1px solid rgba(255,122,102,.3);color:#ffb9a6}
.msg.ok{display:block;background:rgba(120,230,140,.1);border:1px solid rgba(120,230,140,.3);color:#bdf0c4}
.msg a{color:inherit;font-weight:600;text-decoration:underline}
.opt{font-size:10px;color:var(--ink-faint);text-transform:none;letter-spacing:0}
.pwbar{height:4px;border-radius:3px;background:rgba(255,255,255,.06);margin-top:8px;overflow:hidden}
.pwbar i{display:block;height:100%;width:0;border-radius:3px;transition:width .25s,background .25s}
