/* Canonical public footer. Android carries an identical copy for standalone hosting. */
.foot {
 --ink: #090c18; --on-ink: #eef0f7; --on-ink-2: #a3a9c2; --on-ink-3: #6e7591;
 --ink-line: rgba(220,228,255,.10); --line: var(--ink-line);
 --mark-1: var(--dye-light); --mark-2: var(--dye); --mark-3: #20263f;
 --f-sans: 'Inter Tight', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
 --f-serif: 'Instrument Serif', 'Times New Roman', serif;
 --f-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
 --pad: clamp(20px, 4.4vw, 72px);
 --dye: #a873ff; --dye-deep: #522aa8; --dye-light: #e2d1ff;
 transition: --dye .9s var(--e-inout), --dye-deep .9s var(--e-inout), --dye-light .9s var(--e-inout);
 font-family: var(--f-sans); font-size: 17px; line-height: 1.55; color: var(--on-ink);
}
/* Footer dyes stay luminous on the dark anchor, even when the page uses paper-safe shades. */
html[data-dye="cobalt"] .foot { --dye: #4d6bff; --dye-deep: #1f33b0; --dye-light: #b9c6ff; }
html[data-dye="periwinkle"] .foot { --dye: #8f97ff; --dye-deep: #3f3fb0; --dye-light: #dadcff; }
html[data-dye="ember"] .foot { --dye: #ff6a3d; --dye-deep: #a8331a; --dye-light: #ffcdb9; }
html[data-dye="saffron"] .foot { --dye: #f2b134; --dye-deep: #7d5200; --dye-light: #ffe2a4; }
html[data-dye="rose"] .foot { --dye: #ff5a8a; --dye-deep: #9c1d4b; --dye-light: #ffc6d7; }
.foot *, .foot *::before, .foot *::after { box-sizing: border-box; }
.foot p { margin: 1em 0; }
.foot a { text-decoration: none; }
.foot button { font: inherit; color: inherit; border: 0; cursor: pointer; }
.foot input { font: inherit; color: inherit; }
.foot :where(.mono), .foot:where(.mono) { font-family: var(--f-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; }
.foot .sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.foot :focus-visible { outline: 2px solid var(--dye); outline-offset: 3px; border-radius: 4px; }
.foot { position: relative; background: var(--ink); padding: 14vh var(--pad) 28px; overflow: hidden; border: 0; }
.foot-top, .foot-bottom { max-width: none; margin-left: 0; margin-right: 0; }
.foot-top { display: grid; grid-template-columns: 1fr 1.2fr; gap: 6vw; }
.foot-news h3 { margin: 0; font-size: clamp(2rem, 3.6vw, 3.4rem); letter-spacing: -.045em; font-weight: 600; }
.foot-news > p { color: var(--on-ink-2); max-width: 36ch; }
.foot .news { display: flex; flex-direction: row; gap: 8px; margin-top: 22px; max-width: 460px; padding: 6px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line); }
.foot .news input { flex: 1; min-width: 0; border: 0; background: none; outline: none; padding: 0 16px; font-size: 16px; }
.foot .news button { height: 46px; padding: 0 20px; border-radius: 999px; background: var(--dye); color: #fff; font-weight: 500; white-space: nowrap; transition: transform .4s var(--e-spring), background .3s; }
.foot .news button:hover { background: #fff; color: var(--ink); }
.foot .news-msg { min-height: 1.4em; color: var(--on-ink-2); font-size: 14px; }
.foot .news-msg.is-bad { color: #ff8b8b; }
.foot-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.foot-cols div { display: flex; flex-direction: column; gap: 10px; }
.foot-cols h4 { margin: 0 0 8px; color: var(--on-ink-3); font-weight: 400; }
.foot-cols a { color: var(--on-ink-2); width: fit-content; transition: color .25s, transform .4s var(--e-out); }
.foot-cols a:hover { color: var(--on-ink); transform: translateX(4px); }
.foot-mark {
  position: relative; margin: 12vh 0 4vh; font-weight: 700; letter-spacing: -.07em; line-height: .8; white-space: nowrap;
  font-size: clamp(5rem, 21vw, 24rem); color: transparent;
  background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), var(--mark-1) 0, var(--mark-2) 18%, var(--mark-3) 42%);
  -webkit-background-clip: text; background-clip: text; user-select: none;
}
.foot-mark i { font-family: var(--f-serif); font-weight: 400; letter-spacing: -.03em; margin-left: .03em; }
.foot-mark .fm-dot { font-family: var(--f-sans); font-style: normal; font-weight: 700; letter-spacing: 0; color: var(--dye); margin: 0 .08em 0 .02em; }
.foot-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; color: var(--on-ink-3); padding-top: 20px; border-top: 1px solid var(--ink-line); font-size: 10.5px; }
.foot-bottom p { margin: 0; }
.foot-bottom a:hover { color: var(--dye); }

html[data-theme="light"] .foot {
 --ink: #151327; --on-ink: #f5f2fc; --on-ink-2: #c7c2d5; --on-ink-3: #aaa3bc;
 --ink-line: rgba(238,231,255,.17); --line: rgba(238,231,255,.2);
 --fg: #f5f2fc; --mark-1: var(--dye-light); --mark-2: var(--dye); --mark-3: #716780;
 color: var(--on-ink);
}
html[data-theme="light"] .foot .foot-mark {
 background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), var(--mark-1) 0, var(--mark-2) 18%, var(--mark-3) 42%);
 -webkit-background-clip: text; background-clip: text;
}
html[data-theme="light"] .foot .news { background: rgba(255,255,255,.035); }
html[data-theme="light"] .foot .news button { background: var(--dye-deep); color: #fff; }
html[data-theme="light"][data-dye="saffron"] .foot .news button { background: var(--dye); color: #241800; }
html[data-theme="light"] .foot .news button:hover { background: #fffdfa; color: #151327; }
html[data-theme="light"] .foot-mark .fm-dot, html[data-theme="light"] .foot-bottom a:hover { color: var(--dye-deep); }
html[data-theme="light"] .foot .news-msg.is-bad { color: #b3261e; }

@media (max-width: 1023px) { .foot-top { grid-template-columns: 1fr; gap: 56px; } }
@media (max-width: 640px) { .foot { font-size: 16px; } .foot-cols { grid-template-columns: 1fr 1fr; } .foot-mark { font-size: 25vw; } }
@media (max-width: 760px) {
  /* footer: three tight columns, newsletter and wordmark sized to fit one screen */
  .foot { padding: 7vh var(--pad) 20px; }
  .foot-top { gap: 22px; }
  .foot-news h3 { font-size: clamp(1.55rem, 6.8vw, 2rem); }
  .foot-news > p, .foot .news-msg { font-size: 13px; line-height: 1.42; margin-bottom: 0; }
  .foot .news { margin-top: 10px; }
  .foot .news button { height: 42px; padding: 0 15px; font-size: 13.5px; }
  .foot-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 12px; }
  .foot-cols div { gap: 0; }
  .foot-cols h4 { margin: 0 0 4px; font-size: 9.5px; letter-spacing: .1em; }
  .foot-cols a { display: flex; align-items: center; min-height: 36px; font-size: 12.5px; line-height: 1.2; }
  .foot-mark { margin: 3.5vh 0 2vh; font-size: 22vw; }
  .foot-bottom { flex-direction: column; align-items: flex-start; padding-top: 12px; gap: 4px; font-size: 10px; line-height: 1.35; }
}
