/* ==========================================================================
   closing · CTA card (#cta, homepage) and footer (#site-footer, every page).
   Every rule is scoped under one of those two roots.
   ========================================================================== */
#cta,#site-footer{
  --cl-line:#2e2c2a;
  --cl-body:#b7b0aa;          /* link text on dark */
  --cl-spring:cubic-bezier(.34,1.4,.64,1);
  --cl-out:cubic-bezier(.16,1,.3,1);
  --cl-out3:cubic-bezier(.215,.61,.355,1);
}

/* =============================== CTA CARD =============================== */
#cta{background:var(--bg);padding:64px 0 32px}
#cta .cl-card{
  position:relative;isolation:isolate;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,.68fr);align-items:center;gap:48px;
  min-height:520px;padding:88px 80px 88px 96px;border-radius:var(--r);
  background:var(--cream);color:var(--ink);
  transform-origin:50% 30%;
}
/* soft apricot bloom + hairline grid behind the illustration */
#cta .cl-card::before{
  content:"";position:absolute;z-index:-1;right:-12%;top:50%;width:62%;aspect-ratio:1;translate:0 -50%;border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,143,90,.30),rgba(255,143,90,.10) 55%,rgba(255,143,90,0) 72%);
}
#cta .cl-card::after{
  content:"";position:absolute;z-index:-1;inset:0 0 0 52%;
  background-image:linear-gradient(to right,rgba(26,25,24,.07) 1px,transparent 1px),linear-gradient(to bottom,rgba(26,25,24,.07) 1px,transparent 1px);
  background-size:40px 40px;background-position:-1px -1px;
  -webkit-mask-image:radial-gradient(70% 70% at 60% 50%,#000 30%,transparent 80%);mask-image:radial-gradient(70% 70% at 60% 50%,#000 30%,transparent 80%);
}

#cta .cl-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
#cta .cl-title{margin:0;font-size:clamp(40px,4.3vw,64px);line-height:.98;letter-spacing:-.035em;color:var(--taupe-2);text-wrap:balance}
#cta .cl-title .hi{color:var(--ink)}
#cta .cl-line{display:block}
#cta .cl-line + .cl-line{margin-top:.06em}
#cta .cl-lede{margin:28px 0 0;max-width:30em;font-size:18px;line-height:1.5;color:#5d544e}
#cta .cl-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
#cta .cl-btn{transition:background-color .2s var(--ease),color .2s var(--ease),translate .35s var(--cl-spring),box-shadow .35s var(--cl-out)}
#cta .cl-btn:hover{translate:0 -2px;box-shadow:0 10px 22px -12px rgba(26,25,24,.55)}
#cta .cl-btn:active{translate:0 0;box-shadow:none}
#cta .cl-btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
#cta .cl-btn--ink{background:var(--ink);color:var(--cream)}
#cta .cl-btn--ink:hover{background:#34302d}

/* ---------- illustration: a compact teammate window ---------- */
#cta .cl-art{position:relative;min-width:0;display:flex;justify-content:flex-end}
#cta .cl-win{
  --s-ease:var(--cl-out);
  position:relative;width:100%;max-width:440px;
  background:#151515;color:var(--fg);border:1px solid #2b2a28;border-radius:14px;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 40px 70px -30px rgba(26,25,24,.55),0 12px 24px -12px rgba(26,25,24,.35);
  font-size:13px;line-height:1.4;
}
#cta .cl-win__bar{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--cl-line)}
#cta .cl-win__mark{width:20px;height:20px;border-radius:5px}
#cta .cl-win__t{font-weight:600;font-size:13px;color:var(--fg)}
#cta .cl-ill{margin-left:auto;font-size:10px;line-height:1;color:var(--taupe)}
#cta .cl-k{display:block;font-size:10px;line-height:1;color:var(--taupe)}

#cta .cl-ask{padding:16px 16px 4px}
#cta .cl-ask__txt{display:flex;align-items:center;min-height:42px;margin-top:8px;padding:11px 14px;border-radius:10px;background:var(--surface-2);font-size:14px;color:var(--fg)}
#cta .cl-caret{display:none;width:2px;height:16px;margin-left:2px;background:var(--accent);animation:cl-blink 1s steps(1) infinite}
#cta .cl-win[data-step="0"] .cl-caret{display:block}
@keyframes cl-blink{50%{opacity:0}}

#cta .cl-steps{display:grid;gap:10px;padding:14px 16px 4px}
#cta .cl-step{display:flex;align-items:center;gap:10px;color:var(--taupe);transition:opacity .35s var(--s-ease),translate .45s var(--s-ease),color .3s}
#cta .cl-ic{position:relative;flex:none;width:16px;height:16px}
#cta .cl-spin{position:absolute;inset:1px;border-radius:50%;border:2px solid rgba(155,156,255,.25);border-top-color:var(--violet);opacity:0;animation:cl-rot .8s linear infinite}
#cta .cl-tick{position:absolute;inset:0;width:16px;height:16px;fill:none;stroke:var(--ok);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#cta .cl-tick circle{stroke:rgba(255,210,138,.35)}
#cta .cl-step.is-wait{opacity:0;translate:0 6px}
#cta .cl-step.is-run{color:var(--fg)}
#cta .cl-step.is-run .cl-spin{opacity:1}
#cta .cl-step.is-run .cl-tick,#cta .cl-step.is-wait .cl-tick{opacity:0}
@keyframes cl-rot{to{transform:rotate(360deg)}}

#cta .cl-res{margin:14px 16px 16px;padding:14px;border:1px solid var(--cl-line);border-radius:10px;background:#1b1b1b;
  transition:background-color .4s var(--s-ease),border-color .4s}
#cta .cl-res > *{transition:opacity .45s var(--s-ease),translate .55s var(--s-ease)}
#cta .cl-res > :nth-child(2){transition-delay:.06s}
#cta .cl-res > :nth-child(3){transition-delay:.12s}
#cta .cl-win:is([data-step="0"],[data-step="1"],[data-step="2"]) .cl-res{background:transparent;border-style:dashed;border-color:#34312e}
#cta .cl-win:is([data-step="0"],[data-step="1"],[data-step="2"]) .cl-res > *{opacity:0;translate:0 8px;transition-delay:0s}
#cta .cl-win[data-step="5"] .cl-res{border-color:rgba(255,210,138,.28)}
#cta .cl-res__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
#cta .cl-state{position:relative;display:grid;font-size:10px;line-height:1;text-align:right}
#cta .cl-state > span{grid-area:1/1;transition:opacity .3s,translate .4s var(--s-ease)}
#cta .cl-state__a{color:var(--accent)}
#cta .cl-state__b{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--ok);opacity:0;translate:0 4px}
#cta .cl-win[data-step="5"] .cl-state__a{opacity:0;translate:0 -4px}
#cta .cl-win[data-step="5"] .cl-state__b{opacity:1;translate:0 0}

#cta .cl-items{display:grid;gap:8px;margin-top:12px}
#cta .cl-items li{display:flex;align-items:center;gap:10px;color:var(--fg)}
#cta .cl-box{flex:none;display:grid;place-items:center;width:16px;height:16px;border-radius:4px;border:1.5px solid #4a4642;
  transition:background-color .3s var(--s-ease),border-color .3s var(--s-ease);transition-delay:calc(var(--n) * 140ms)}
#cta .cl-box svg{width:12px;height:12px;fill:none;stroke:var(--accent-ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:12;stroke-dashoffset:12;transition:stroke-dashoffset .35s var(--s-ease);transition-delay:calc(var(--n) * 140ms + 80ms)}
#cta .cl-win:is([data-step="4"],[data-step="5"]) .cl-box{background:var(--ok);border-color:var(--ok)}
#cta .cl-win:is([data-step="4"],[data-step="5"]) .cl-box svg{stroke-dashoffset:0}

#cta .cl-acts{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
#cta .cl-chip{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:6px;background:var(--surface-2);
  font-family:var(--font-mono);font-weight:500;font-size:11px;text-transform:uppercase;color:var(--fg)}
#cta .cl-chip--go{position:relative;display:inline-grid;background:var(--accent);color:var(--accent-ink);transition:background-color .3s,scale .3s var(--cl-spring)}
#cta .cl-chip--go > span{grid-area:1/1;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:opacity .25s,translate .35s var(--s-ease)}
#cta .cl-chip__b{opacity:0;translate:0 6px}
#cta .cl-chip__b svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#cta .cl-win:is([data-step="4"],[data-step="5"]) .cl-chip--go{background:var(--ok)}
#cta .cl-win:is([data-step="4"],[data-step="5"]) .cl-chip__a{opacity:0;translate:0 -6px}
#cta .cl-win:is([data-step="4"],[data-step="5"]) .cl-chip__b{opacity:1;translate:0 0}
#cta .cl-win.is-press .cl-chip--go{scale:.94}
/* loop reset: fade the body, not the frame */
#cta .cl-win > :not(.cl-win__bar){transition:opacity .4s var(--cl-out)}
#cta .cl-win.is-reset > :not(.cl-win__bar){opacity:0}

/* entrance (pre-state only applied by JS when motion is allowed) */
#cta.cl-anim [data-cl-in]{opacity:0;translate:0 28px}
#cta.cl-anim [data-cl-in].is-in{opacity:1;translate:0 0;transition:opacity .8s var(--cl-out3),translate 1s var(--cl-out);transition-delay:calc(var(--i,0) * 90ms)}

/* ================================ FOOTER ================================ */
#site-footer{background:var(--bg);color:var(--fg);padding-top:72px;overflow:hidden}
#site-footer .ftr__top{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,3fr);gap:48px 24px;align-items:start}
#site-footer .ftr__intro{display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:360px}
#site-footer .ftr__tag{margin:0;font-size:30px;line-height:1.05;letter-spacing:-.025em;text-wrap:balance}
#site-footer .ftr__mono{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:12px;line-height:1;color:var(--taupe)}
#site-footer .ftr__mono span{display:inline-flex;align-items:center;gap:8px}
#site-footer .ftr__mono span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}
#site-footer .ftr__mono span:nth-child(2)::before{background:var(--violet)}
#site-footer .ftr__mono span:nth-child(3)::before{background:var(--ok)}
#site-footer .ftr__cta{margin-top:8px;transition:background-color .2s var(--ease),translate .35s var(--cl-spring)}
#site-footer .ftr__cta:hover{translate:0 -2px}

#site-footer .ftr__nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
#site-footer .ftr__col{min-width:0}
#site-footer .ftr__head{margin:0 0 18px;font-family:var(--font-mono);font-weight:500;font-size:12px;line-height:1;text-transform:uppercase;color:var(--taupe)}
#site-footer .ftr__acc-btn{display:none}
#site-footer .ftr__list{display:flex;flex-direction:column;gap:4px}
#site-footer .ftr__list a{display:inline-block;padding:3px 0;border-radius:4px;font-size:14px;line-height:1.4;font-weight:500;color:var(--cl-body);transition:color .2s ease}
#site-footer .ftr__list a span{display:inline-block;transition:translate .45s var(--cl-out)}
#site-footer .ftr__list a:hover{color:var(--fg)}
#site-footer .ftr__list a:hover span{translate:6px 0}
#site-footer .ftr__list a[aria-current="page"]{color:var(--fg)}
#site-footer .ftr__more{margin-top:10px;padding-top:12px;border-top:1px solid var(--cl-line);max-width:180px}
#site-footer .ftr__more a{color:var(--accent)}
#site-footer .ftr__more a:hover{color:var(--accent-hover)}

/* giant wordmark: mark + "Lexi", clipped along the bottom like a horizon */
#site-footer > .container{container-type:inline-size}
#site-footer .ftr__logo{display:block;width:100%;margin-top:88px;font-size:clamp(78px,28.5vw,520px);font-size:clamp(78px,33cqw,520px);height:.8em;overflow:hidden;border-radius:4px}
#site-footer .ftr__logo:focus-visible{outline-offset:6px}
#site-footer .ftr__logo-in{display:flex;align-items:flex-start;justify-content:center;gap:.22em;line-height:1}
#site-footer .ftr__mark{position:relative;display:block;flex:none;width:.85em;height:.85em;margin-top:.02em}
#site-footer .ftr__mark-img{width:100%;height:100%;border-radius:.21em}
#site-footer .ftr__dots{position:absolute;inset:0;width:100%;height:100%;opacity:0;touch-action:pan-y}
#site-footer.ftr--dots .ftr__dots{opacity:1}
#site-footer.ftr--dots .ftr__mark-img{opacity:0}
#site-footer .ftr__word{display:block;font-family:var(--font-display);font-weight:700;letter-spacing:-.045em;color:var(--taupe);margin-top:-.1em;white-space:nowrap;transition:color .5s var(--ease)}
#site-footer .ftr__logo:hover .ftr__word{color:#b9a89c}

/* legal bar */
#site-footer .ftr__legal{border-top:1px solid var(--cl-line)}
#site-footer .ftr__legal-in{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:22px;padding-bottom:22px}
#site-footer .ftr__copy{margin:0;font-size:12px;line-height:1.4;white-space:nowrap;color:var(--cl-body)}
#site-footer .ftr__legal-nav ul{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 20px}
#site-footer .ftr__legal-nav a,#site-footer .ftr__legal-nav button{display:flex;align-items:center;min-height:24px;padding:2px 0;border-radius:4px;font-family:var(--font-display);font-size:12px;line-height:1.4;white-space:nowrap;color:var(--cl-body);transition:color .2s ease}
#site-footer .ftr__legal-nav a:hover,#site-footer .ftr__legal-nav button:hover{color:var(--fg)}

/* intro (pre-state only applied when JS + motion allowed) */
#site-footer.cl-anim [data-ftr-intro]{opacity:0;translate:0 32px}
#site-footer.cl-anim [data-ftr-intro].is-in{opacity:1;translate:0 0;transition:opacity .6s var(--cl-out3),translate .8s var(--cl-out);transition-delay:var(--d,0s)}

/* ============================== RESPONSIVE ============================== */
@media (max-width:1024px){
  #cta .cl-card{grid-template-columns:1fr;gap:48px;padding:72px 56px;min-height:0}
  #cta .cl-card::after{inset:45% 0 0 0}
  #cta .cl-card::before{right:auto;left:50%;top:auto;bottom:-25%;translate:-50% 0;width:90%}
  #cta .cl-title{font-size:clamp(40px,6.4vw,64px)}
  #cta .cl-art{justify-content:center}
  #cta .cl-win{max-width:520px}
  #site-footer .ftr__top{grid-template-columns:1fr}
  #site-footer .ftr__intro{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px 32px}
  #site-footer .ftr__tag{grid-column:1;max-width:14em}
  #site-footer .ftr__mono{grid-column:1}
  #site-footer .ftr__cta{grid-column:2;grid-row:1 / span 2;margin:0}
  #site-footer .ftr__logo{margin-top:72px}
}
@media (max-width:640px){
  #cta{padding:40px 0 16px}
  #cta .cl-card{padding:32px 20px 16px;gap:24px;border-radius:var(--r)}
  #cta .cl-title{font-size:clamp(34px,10vw,44px);line-height:1.02}
  #cta .cl-lede{margin-top:20px;font-size:16px}
  #cta .cl-actions{margin-top:24px;width:100%;flex-direction:column}
  #cta .cl-btn{width:100%}
  #cta .cl-win{font-size:12.5px}
  #cta .cl-ask__txt{font-size:13px;min-height:38px;padding:9px 12px}
  #cta .cl-win__bar{padding:10px 14px}
  #cta .cl-ask{padding:12px 14px 2px}
  #cta .cl-steps{display:none}
  #cta .cl-items li:nth-child(3){display:none}
  #cta .cl-res{margin:10px 14px 14px;padding:12px}
  #cta .cl-items{gap:6px;margin-top:10px}
  #cta .cl-acts{margin-top:10px}

  #site-footer{padding-top:48px}
  #site-footer .ftr__intro{display:flex;align-items:flex-start;gap:18px}
  #site-footer .ftr__tag{font-size:28px}
  #site-footer .ftr__cta{margin-top:6px}
  #site-footer .ftr__nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px}
  /* accordion (enabled by js/closing.js) */
  #site-footer.ftr--acc .ftr__nav{display:block;border-top:1px solid var(--cl-line)}
  #site-footer.ftr--acc .ftr__col{border-bottom:1px solid var(--cl-line)}
  #site-footer.ftr--acc .ftr__head{margin:0}
  #site-footer.ftr--acc .ftr__head-t{display:none}
  #site-footer.ftr--acc .ftr__acc-btn{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:60px;padding:0;text-align:left;
    font:inherit;text-transform:inherit;color:var(--taupe);border-radius:4px}
  #site-footer.ftr--acc .ftr__acc-btn svg{width:16px;height:16px;flex:none}
  #site-footer.ftr--acc .ftr__acc-btn .v{transform-origin:8px 8px;transition:transform .3s var(--cl-out)}
  #site-footer.ftr--acc .ftr__acc-btn[aria-expanded="true"]{color:var(--fg)}
  #site-footer.ftr--acc .ftr__acc-btn[aria-expanded="true"] .v{transform:rotate(90deg);opacity:0}
  #site-footer.ftr--acc .ftr__list{overflow:hidden;gap:2px;padding-bottom:18px}
  #site-footer.ftr--acc .ftr__list[hidden]{display:none}
  #site-footer.ftr--acc .ftr__list a{font-size:15px;padding:6px 0}
  #site-footer .ftr__logo{margin-top:56px}
  #site-footer .ftr__legal-in{flex-direction:column;align-items:flex-start;padding-top:18px;padding-bottom:20px}
  #site-footer .ftr__legal-nav ul{justify-content:flex-start;gap:8px 20px}
  #site-footer .ftr__copy,#site-footer .ftr__legal-nav a,#site-footer .ftr__legal-nav button{font-size:13px}
}

@media (prefers-reduced-motion:reduce){
  #cta .cl-btn:hover,#site-footer .ftr__cta:hover{translate:none}
  #site-footer .ftr__list a:hover span{translate:none}
  #cta .cl-spin,#cta .cl-caret{animation:none}
}

/* legal links on touch screens: 44px tall targets (24px minimum everywhere else) */
@media (max-width:767px),(pointer:coarse){
  #site-footer .ftr__legal-nav ul{row-gap:0}
  #site-footer .ftr__legal-nav a,#site-footer .ftr__legal-nav button{min-height:44px}
  #site-footer .ftr__legal-in{padding-top:8px;padding-bottom:10px}
}
