/* Marketive app footer: the one base every app page builds on (Hub, Atlas, Beacon, Slate, Vecta).
   Shared: the shell, the giant fading wordmark, the glow and the bottom bar.
   Each app fills in: its four link columns, its mark, its name, and (optionally) these variables:
     --af-bg       footer ground                     --af-accent  top line and glow colour
     --af-glow     glow strength (rgba)              --af-display wordmark font (fonts are not settled yet)
     --af-size     wordmark size                     --af-word    wordmark fill (a gradient)
   Every class starts with af- so no page style can touch it. Colours come from tokens/marketive-family.css,
   with the same values as fallbacks so the footer also works on a page without the tokens. */
footer.af{
  --af-bg:#0d0a18;--af-accent:var(--mk-violet,#9372ff);--af-glow:rgba(127,88,236,.3);
  --af-ink:#fff;--af-head:#f4f1fb;--af-text:#a9a3c0;--af-faint:#8b84a4;--af-line:rgba(255,255,255,.08);
  --af-display:var(--mk-font-sans,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif);
  --af-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --af-size:min(24vw,300px);
  --af-word:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,.06) 78%,transparent);
  position:relative;display:block;overflow:hidden;container-type:inline-size;margin:0;padding:0;
  background:var(--af-bg);border-top:1px solid var(--af-line);color:var(--af-text);
  font:400 14px/1.55 var(--mk-font-sans,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif);text-align:left
}
footer.af *{box-sizing:border-box}
footer.af::before{content:"";position:absolute;left:50%;top:0;width:min(720px,80%);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--af-accent),transparent)}
.af-w{position:relative;z-index:1;width:min(1160px,100% - 40px);margin-inline:auto}

/* the app's own four columns */
.af-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;padding:clamp(48px,6vw,76px) 0 8px}
.af-h{margin:0 0 12px;color:var(--af-head);font:600 12px var(--af-mono);letter-spacing:.14em;text-transform:uppercase}
footer.af .af-col a,footer.af .af-col span{display:flex;align-items:center;gap:9px;width:fit-content;padding:5px 0;color:var(--af-text);text-decoration:none;transition:color .2s,transform .2s}
footer.af .af-col a:hover{color:var(--af-ink);transform:translateX(3px)}
.af-col img,.af-col svg{flex:none;width:16px;height:16px}

/* the giant wordmark, led by the app's mark */
.af-big{position:relative;display:flex;justify-content:center;align-items:baseline;margin:clamp(10px,2vw,24px) 0 0;font:800 var(--af-size)/.8 var(--af-display);letter-spacing:-.06em;white-space:nowrap;user-select:none}
.af-mark{flex:none;display:block;width:calc(var(--af-size)*.78);height:calc(var(--af-size)*.78);margin-right:calc(var(--af-size)*.06)}
.af-mark svg,.af-mark img{display:block;width:100%;height:100%;overflow:visible}
.af-word,.af-word>i{font-style:normal;display:inline-block;background:var(--af-word);-webkit-background-clip:text;background-clip:text;color:transparent}
.af-word>i{padding-right:.04em}
.af-glow{position:absolute;left:50%;bottom:-40px;width:80%;height:200px;transform:translateX(-50%);background:radial-gradient(closest-side,var(--af-glow),transparent);pointer-events:none}

/* the shared bottom bar: the same on every app */
.af-bar{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:space-between;padding:14px 0 6px;font-size:13px}
.af-bar>span{color:#c9c4dc}
.af-bar nav{display:flex;flex-wrap:wrap;gap:4px 22px;align-items:center}
footer.af .af-bar a{display:inline-flex;align-items:center;gap:8px;padding:6px 0;color:var(--af-text);text-decoration:none}
footer.af .af-bar a:hover{color:var(--af-ink)}
footer.af .af-bar button{background:none;border:0;padding:6px 0;color:var(--af-text);font:inherit;text-decoration:underline;cursor:pointer}
footer.af .af-bar button:hover{color:var(--af-ink)}
.af-bar svg{flex:none}
.af-fine{margin:0;padding:0 0 26px;font-size:12px;color:var(--af-faint);opacity:.75}
.af-bar:last-child{padding-bottom:26px}

/* the letters rise once when the wordmark comes into view (app-footer.js adds af-arm, then af-in).
   An app animates its own mark with the same two classes. */
footer.af.af-arm .af-word>i{opacity:0;transform:translateY(40%)}
footer.af.af-arm.af-in .af-word>i{opacity:1;transform:none;transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--k)*50ms + 120ms)}

@media(max-width:900px){.af-cols{grid-template-columns:1fr 1fr;gap:28px 16px}}
@media(max-width:768px){footer.af .af-col a,footer.af .af-col span{padding:8px 0}footer.af .af-bar a,footer.af .af-bar button{padding:9px 0}}
@media(prefers-reduced-motion:reduce){footer.af *{transition:none!important}footer.af.af-arm .af-word>i{opacity:1;transform:none}}
