/* World 1 · footer: a quiet editorial utility layer. Brand, index, notes, the AI Lab hand-off, legal, copyright.
   No conversion here: the final contact section directly above carries the founder, the mail and the buttons,
   so nothing of that is repeated. Warm white page, ink, soft grey, hairlines. Glass only on the newsletter field
   and its small azure Subscribe control. One shared component for every World 1 page (index.html is the source;
   _src/sync-shell.py, build-legal.py and build-insights.py copy it). */
.footer{position:relative;z-index:4;background:var(--bg);color:var(--ink);padding:0 0 26px;
  font-family:var(--font);font-feature-settings:"cv11","ss01","calt";letter-spacing:-.018em;-webkit-font-smoothing:antialiased}
.ft-inner{width:var(--wrap);margin:0 auto}
.ft-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* upper: brand · index · notes */
.ft-grid{display:grid;grid-template-columns:1.2fr .8fr minmax(320px,1fr);gap:32px 60px;padding:34px 0 30px;border-top:1px solid var(--line)}
.ft-wm{display:inline-block;color:var(--ink);text-decoration:none}
.ft-wm .wm{font-size:17px}
.ft-tag{margin-top:12px;font-size:14px;font-weight:400;line-height:1.5;color:#5B6478;letter-spacing:-.012em}
.ft-label{margin:0 0 12px;font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#8A93A6;line-height:1}
.ft-nav{display:flex;flex-direction:column;gap:8px}
.ft-nav a{font-size:14.5px;font-weight:400;letter-spacing:-.014em;color:var(--ink);text-decoration:none;width:max-content;transition:color .25s var(--ease)}
.ft-nav a:hover{color:var(--accent)}
.ft-form{justify-self:end;width:100%;max-width:400px}
.ft-notes{font-size:14px;font-weight:400;line-height:1.5;letter-spacing:-.012em;color:#5B6478}
.ft-field{margin-top:12px;display:flex;align-items:center;height:42px;padding:0 4px 0 0;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 0 0 1px var(--line),0 0 0 2px rgba(150,200,255,.12),inset 0 1px 0 #fff}
.ft-field input{flex:1;min-width:0;height:100%;border:0;background:none;padding:0 16px;font:inherit;font-size:14px;letter-spacing:-.012em;color:var(--ink);outline:none}
.ft-field input::placeholder{color:#8A93A6}
.ft-field button{height:34px;padding:0 14px;border-radius:999px;color:#fff;font:inherit;font-size:13px;font-weight:500;letter-spacing:-.012em;background:var(--gl-az);box-shadow:var(--gl-rim-az);transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease)}
.ft-field button:hover{background:var(--gl-az-h);box-shadow:var(--gl-rim-az-h)}
.ft-agree{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-size:12px;line-height:1.5;color:#5B6478;cursor:pointer}
.ft-agree input{appearance:none;-webkit-appearance:none;width:14px;height:14px;margin:2px 0 0;border-radius:4px;flex:none;cursor:pointer;background:#fff;box-shadow:inset 0 0 0 1px rgba(15,23,42,.25);transition:background .2s,box-shadow .2s}
.ft-agree input:checked{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.ft-agree a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.ft-note{margin-top:10px;font-size:12.5px;line-height:1.5;color:#1E7BE6}
.ft-note:empty{display:none}
.ft-note.bad{color:#B4402A}

/* the AI Lab hand-off: one editorial row between two hairlines, one electric-blue point */
.ft-ai{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:0 22px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.ft-ai-h{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.ft-ai-h i{width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#eaf5ff 0,#8cc2ff 30%,#4f9dff 58%,#1f6fe0 100%);box-shadow:inset 0 -1px 1px rgba(10,40,120,.35),0 0 8px rgba(95,168,255,.7)}
.ft-ai-d{font-size:14px;font-weight:400;letter-spacing:-.012em;color:#5B6478}
.ft-ai-go{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:500;letter-spacing:-.015em;color:var(--ink);padding-bottom:2px;border-bottom:1px solid rgba(16,24,40,.22);transition:color .25s var(--ease),border-color .25s var(--ease)}
.ft-ai-go span{font-size:13px;transition:transform .28s var(--ease)}
.ft-ai:hover .ft-ai-h,.ft-ai:hover .ft-ai-go{color:#1E7BE6}
.ft-ai:hover .ft-ai-go{border-bottom-color:#1E7BE6}
.ft-ai:hover .ft-ai-go span{transform:translateX(3px)}

/* base: legal · socials + copyright. Quiet. */
.ft-base{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:18px}
.ft-legal{display:flex;flex-wrap:wrap;gap:8px 20px}
.ft-legal a,.ft-legal button{font-size:12.5px;font-weight:400;letter-spacing:-.005em;color:#5B6478;text-decoration:none;background:none;border:0;padding:0;font-family:inherit;cursor:pointer;transition:color .25s var(--ease)}
.ft-legal a:hover,.ft-legal button:hover{color:var(--ink)}
.ft-meta{display:flex;align-items:center;gap:18px}
.ft-social{list-style:none;margin:0;padding:0;display:flex;gap:6px}
.ft-soc{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;color:#8A93A6;box-shadow:0 0 0 1px var(--line);cursor:default}
.ft-soc svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ft-copy{font-size:12.5px;color:#8A93A6;letter-spacing:-.005em}

@media (max-width:900px){
  .footer{padding-bottom:26px}
  /* order: brand, index, notes, AI Lab, socials + legal, copyright; hairlines between groups, no cards */
  .ft-grid{grid-template-columns:1fr;gap:0;padding:34px 0 0}
  .ft-brand{padding-bottom:22px}
  .ft-nav{padding:20px 0 22px;border-top:1px solid var(--line)}
  .ft-form{justify-self:stretch;max-width:none;padding:20px 0 22px;border-top:1px solid var(--line)}
  .ft-ai{grid-template-columns:auto 1fr;gap:6px 14px;padding:18px 0}
  .ft-ai-d{grid-column:1/3}
  .ft-ai-go{grid-column:1/3;justify-self:start;margin-top:4px}
  .ft-base{flex-direction:column;align-items:flex-start;gap:16px;padding-top:18px}
  /* socials, then legal, then copyright */
  .ft-meta{display:contents}
  .ft-social{order:1}.ft-legal{order:2}.ft-copy{order:3}
}
@media (prefers-reduced-motion:reduce){
  .ft-ai-go span,.ft-nav a,.ft-field button{transition:none}
}
