/* FunnelForge public pages — static file (no content hash) so it always loads
   at /funnelforge/ff-public.css even when /_next/static/css/<hash>.css 404s. */
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; }
.ff-pub-shell { display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; background:#f8fafc; }
.ff-pub-main { display:flex; flex:1; flex-direction:column; align-items:center; justify-content:center; padding:2rem 1rem 2.5rem; box-sizing:border-box; }
.ff-landing { display:flex; flex:1; flex-direction:column; }
.ff-landing-inner { max-width:48rem; margin:0 auto; padding:3rem 1.5rem 4rem; text-align:center; }

.ff-topnav { position:sticky; top:0; z-index:50; width:100%; border-bottom:1px solid #e2e8f0; background:rgba(255,255,255,.92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.ff-topnav-in { max-width:72rem; margin:0 auto; display:flex; flex-direction:column; gap:0.75rem; padding:0.75rem 1rem; box-sizing:border-box; }
@media (min-width:640px) {
  .ff-topnav-in { flex-direction:row; align-items:center; justify-content:space-between; min-height:4rem; padding:0 1.5rem; }
}
.ff-brand { display:flex; align-items:center; gap:0.65rem; text-decoration:none; color:#0f172a; }
.ff-logo { display:flex; height:2.25rem; width:2.25rem; flex-shrink:0; align-items:center; justify-content:center; border-radius:0.5rem; background:linear-gradient(135deg,#8b5cf6,#4f46e5); color:#fff; font-weight:700; font-size:0.875rem; box-shadow:0 2px 6px rgba(79,70,229,.25); }
.ff-wordmark { line-height:1.15; }
.ff-title { font-size:0.95rem; font-weight:700; letter-spacing:-0.02em; }
.ff-sub { display:none; font-size:0.6rem; font-weight:600; text-transform:uppercase; letter-spacing:0.12em; color:#64748b; }
@media (min-width:640px) { .ff-sub { display:block; } }
.ff-topnav-nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:0.35rem; width:100%; }
@media (min-width:640px) { .ff-topnav-nav { width:auto; gap:0.5rem; } }
.ff-topnav-nav a { display:inline-block; padding:0.45rem 0.7rem; font-size:0.875rem; font-weight:500; text-decoration:none; color:#475569; border-radius:0.5rem; }
.ff-topnav-nav a:hover { background:#f1f5f9; color:#0f172a; }
.ff-topnav-nav a.ff-cta { background:#4f46e5; color:#fff !important; font-weight:600; padding:0.5rem 0.9rem; box-shadow:0 1px 3px rgba(79,70,229,.2); }
.ff-topnav-nav a.ff-cta:hover { background:#6366f1; }
.ff-topnav-nav a.ff-active { background:#f1f5f9; color:#0f172a; }
.ff-topnav-nav a.ff-cta.ff-active { background:#3730a3; }

.ff-pub-footer { margin-top:auto; width:100%; border-top:1px solid #e0e7ff; background:linear-gradient(180deg,#f8fafc 0%,#fff 40%,#f8fafc 100%); padding:2rem 1rem; text-align:center; }
.ff-pub-footer-in { max-width:42rem; margin:0 auto; }
.ff-pub-footer p { margin:0.25rem 0; }
.ff-pub-footer .ff-fine { font-size:0.7rem; font-weight:500; text-transform:uppercase; letter-spacing:0.15em; color:#64748b; }
.ff-pub-footer .ff-credit { font-size:1.1rem; font-weight:800; color:#4f46e5; }
.ff-pub-footer .ff-tag { margin-top:0.5rem; font-size:0.9rem; line-height:1.5; color:#475569; }

.ff-card { width:100%; max-width:28rem; margin:0 auto; background:#fff; border:1px solid #e2e8f0; border-radius:1rem; padding:1.75rem; box-shadow:0 20px 40px -12px rgba(15,23,42,.12); box-sizing:border-box; }
.ff-auth-head { display:flex; align-items:flex-start; gap:1rem; margin-bottom:1.5rem; }
.ff-icon-box { display:flex; height:2.75rem; width:2.75rem; flex-shrink:0; align-items:center; justify-content:center; border-radius:0.6rem; background:#eef2ff; color:#4f46e5; border:1px solid #c7d2fe; }
.ff-card h1 { margin:0; font-size:1.4rem; font-weight:800; color:#0f172a; letter-spacing:-0.02em; }
.ff-card .ff-lead { margin:0.4rem 0 0; font-size:0.9rem; line-height:1.5; color:#64748b; }
.ff-field { display:block; margin-top:1.1rem; }
.ff-auth-head + .ff-field { margin-top:0; }
.ff-field > span, .ff-field > .ff-label { display:block; font-size:0.8rem; font-weight:600; color:#1e293b; margin-bottom:0.4rem; }
.ff-input { display:block; width:100%; box-sizing:border-box; padding:0.55rem 0.8rem; font-size:1rem; line-height:1.4; color:#0f172a; background:#fafafa; border:1px solid #cbd5e1; border-radius:0.6rem; }
.ff-input:focus { outline:2px solid #a5b4fc; border-color:#6366f1; background:#fff; }
.ff-err { margin-top:0.9rem; padding:0.5rem 0.65rem; font-size:0.85rem; color:#991b1b; background:#fef2f2; border:1px solid #fecaca; border-radius:0.5rem; }
.ff-btn-primary { display:block; width:100%; box-sizing:border-box; margin-top:1.4rem; padding:0.7rem; font-size:0.9rem; font-weight:700; color:#fff; background:#4f46e5; border:none; border-radius:0.6rem; cursor:pointer; box-shadow:0 4px 12px -2px rgba(79,70,229,.4); }
.ff-btn-primary:hover:not(:disabled) { background:#4338ca; }
.ff-btn-primary:disabled { opacity:0.55; cursor:not-allowed; }
.ff-subtle { margin-top:1.2rem; text-align:center; font-size:0.88rem; color:#64748b; }
.ff-subtle a, .ff-link { color:#4f46e5; font-weight:600; text-decoration:none; }
.ff-subtle a:hover, .ff-link:hover { text-decoration:underline; }
.ff-hero-eyebrow { display:inline-flex; margin-bottom:1rem; padding:0.35rem 0.8rem; font-size:0.75rem; font-weight:600; color:#3730a3; background:#eef2ff; border:1px solid #c7d2fe; border-radius:9999px; }
.ff-hero { margin:0; font-size:2rem; line-height:1.15; font-weight:800; color:#0f172a; letter-spacing:-0.03em; }
@media (min-width:640px) { .ff-hero { font-size:2.5rem; } }
.ff-hero .ff-grad { color:#4f46e5; }
.ff-hero-p { margin:1.25rem auto 0; max-width:36rem; font-size:1.05rem; line-height:1.6; color:#475569; }
.ff-hero-actions { margin-top:2rem; display:flex; flex-direction:column; gap:0.65rem; align-items:stretch; justify-content:center; }
@media (min-width:480px) { .ff-hero-actions { flex-direction:row; align-items:center; justify-content:center; } }
.ff-btn-lg { display:inline-flex; align-items:center; justify-content:center; gap:0.4rem; padding:0.75rem 1.25rem; font-size:0.95rem; font-weight:600; text-decoration:none; border-radius:0.6rem; }
.ff-btn-lg-primary { color:#fff; background:#4f46e5; box-shadow:0 6px 16px -4px rgba(79,70,229,.5); }
.ff-btn-lg-primary:hover { background:#4338ca; }
.ff-btn-lg-ghost { color:#0f172a; background:#fff; border:2px solid #e2e8f0; }
.ff-btn-lg-ghost:hover { background:#f8fafc; }
