/* Landing footer, shared by inner pages (copied from index.html; keep in sync) */
.ff{--u:calc(min(100vw,1440px) / 1440);background:#fafafa;box-shadow:0 0 0 100vmax #fafafa;clip-path:inset(0 -100vmax);overflow:hidden;margin-top:clamp(80px,8.3vw,120px)}
.ff .pile{position:relative;max-width:1440px;margin:calc(var(--u) * -95) auto 0;height:calc(var(--u) * 470);overflow:hidden;border-bottom:1px solid var(--ink)}
.ff .fl,.ff .pill2{position:absolute;bottom:calc(var(--u) * var(--b));left:calc(var(--u) * var(--l));rotate:var(--r);translate:0 calc(-1 * var(--u) * 900);opacity:0;
  transition:translate 1s var(--spring) var(--d),opacity .2s ease var(--d)}
.ff .fl{width:calc(var(--u) * var(--s));height:calc(var(--u) * var(--s));overflow:visible}
/* toss the pile: flowers fall in with gravity, land on each other, and can be grabbed and thrown */
.ff .pile{touch-action:pan-y;user-select:none;-webkit-user-select:none}
.ff .phy{position:absolute;left:0;top:0;cursor:grab;will-change:transform}
.ff .phy:active{cursor:grabbing}
.ff .phy svg{width:100%;height:100%;overflow:visible;display:block}
.ff .fl svg{width:100%;height:100%;overflow:visible;display:block;transition:rotate .7s var(--glide)}
@media (hover:hover){.ff .fl:hover svg{rotate:45deg}}
.ff .pill2{font-size:max(15px,calc(var(--u) * 26));font-weight:500;letter-spacing:-.01em;color:#fff;background:#1a1730;border-radius:999px;padding:.55em 1.1em;white-space:nowrap;z-index:2;transition-property:translate,opacity,background}
.ff .pill2:hover{background:#2f7bf5}
.ff .pill2:focus-visible{outline:2px solid #2f7bf5;outline-offset:3px}
.ff.in .fl,.ff.in .pill2{translate:0 0;opacity:1}
.ff .row{position:relative;z-index:1;max-width:1194px;margin:0 auto;display:grid;grid-template-columns:minmax(0,587fr) minmax(0,378fr) minmax(0,229fr);gap:0;padding-block:clamp(56px,8.3vw,120px) 0;min-height:calc(var(--u) * 310)}
.ff .row p{margin:0;max-width:440px;padding-right:24px;font-size:clamp(24px,2.4vw,34px);font-weight:500;line-height:1.15;letter-spacing:-.02em}
.ff .row h3{margin:0 0 14px;font-family:var(--mono);font-weight:500;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ff .row ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:18px;font-weight:500}
.ff .row a:hover{color:#2f7bf5}
.ff .row .todo{color:#9a9a9a;border:0;border-radius:0;padding:0;margin:0}
/* copy email: a quiet pill under the line; confirms in place */
.ff .copy{margin-top:32px;display:inline-flex;align-items:center;gap:10px;font:500 18px/1 var(--sans);color:#fff;background:var(--ink);border:0;border-radius:999px;padding:16px 26px 16px 22px;cursor:pointer;transition:background .25s ease,translate .35s var(--glide)}
.ff .copy svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.ff .copy:hover{background:#2f7bf5;translate:0 -2px}
.ff .copy:focus-visible{outline:2px solid #2f7bf5;outline-offset:3px}
.ff .mark{display:block;font-size:calc(min(100vw,1440px) * .158);font-weight:500;letter-spacing:-.055em;line-height:.8;white-space:nowrap;margin-left:-.04em;padding:.12em 0 .2em;user-select:none}
.ff .mark .c{position:relative;display:inline-block}
.ff .mark .idot{width:.25em;height:.25em;top:.0em}
.ff .legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:37px 40px;font-family:var(--mono);font-weight:500;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@media (max-width:760px){
  .ff{--u:calc(100vw / 900)}
  .ff .pile{height:calc(var(--u) * 560)}
  .ff .row{grid-template-columns:1fr 1fr;gap:32px}
  .ff .pile{margin-top:24px}
  .ff .row>div:first-child{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){.ff .fl,.ff .pill2{translate:0 0;opacity:1}}
