/* =========================================================
   Foxera back-end case study (project-foxera-backend.html)
   Loads after main.css, backend.css and northside-backend.css,
   reusing their section frame, stats, .comp, .ticks, .pipe,
   .xcards and .wins. Northside's pink is swapped for Foxera purple.
   ========================================================= */
.fx{--fx:#9d7ad2;--fx-2:#2d0080;--fx-hi:#c4a8f5;--pink:var(--fx-hi);}
.fx .arch-lbl i{background:var(--fx);}

/* ---------- HERO ---------- */
.fx-hero{align-items:center;}
.fx-hero-glow{position:absolute;inset:0 0 0 38%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(42% 52% at 68% 54%,rgba(157,122,210,.42),transparent 70%),
    radial-gradient(40% 46% at 92% 12%,rgba(45,0,128,.9),transparent 72%),
    radial-gradient(rgba(255,255,255,.13) 1px,transparent 1.4px) 0 0/24px 24px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 36%);mask-image:linear-gradient(90deg,transparent 0%,#000 36%);
  animation:nbWipe 1.5s cubic-bezier(.65,0,.2,1) both;}
.fx-mark{display:inline-block;width:78px;height:20px;background:url("../images/tiles/logo-foxera.png") left center/contain no-repeat;}
.fx .nb-hero-in{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);}

/* the phone */
.fx-phone{position:relative;justify-self:center;width:min(100%,340px);aspect-ratio:9/18.5;padding:14px 12px 16px;
  background:#0f0e13;border:1px solid rgba(196,168,245,.32);border-radius:42px;
  box-shadow:0 0 0 7px #17161c,0 0 0 8px rgba(255,255,255,.08),0 60px 100px -30px rgba(0,0,0,.95),0 0 120px -30px rgba(157,122,210,.55);
  display:flex;flex-direction:column;animation:nbDock 1.1s var(--ease) both .7s;transform:rotate(2deg);}
.fx-phone::before{content:"";position:absolute;top:10px;left:50%;width:86px;height:22px;margin-left:-43px;border-radius:12px;background:#000;}
.fx-ph-top{display:flex;align-items:center;gap:10px;padding:30px 8px 12px;border-bottom:1px solid var(--line);}
.fx-ph-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--fx);color:#140c22;font-weight:900;font-size:15px;flex:none;}
.fx-ph-top b{display:block;font-weight:800;font-size:14.5px;}
.fx-ph-top > span:last-child{font-family:var(--fm);font-size:10.5px;color:var(--mid);}
.fx-ph-top > span:last-child b{font-family:var(--fd);color:var(--ink);}
.fx-thread{flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:14px 4px 6px;font-size:13.5px;line-height:1.42;
  transition:opacity .6s var(--ease);}
.fx-thread .b{max-width:84%;padding:9px 12px;border-radius:16px;opacity:0;transform:translateY(10px) scale(.97);
  transition:opacity .45s var(--ease),transform .45s var(--ease);}
.fx-thread .b.on,.fx-thread.all .b{opacity:1;transform:none;}
.fx-thread.fade{opacity:0;}
.fx-thread .out{align-self:flex-start;background:#25232d;color:#e8e6ee;border-bottom-left-radius:5px;}
.fx-thread .in{align-self:flex-end;background:var(--fx);color:#140c22;font-weight:600;border-bottom-right-radius:5px;}
.fx-thread .ok{display:flex;gap:9px;align-items:center;}
.fx-thread .ok::before{content:"";flex:none;width:10px;height:5px;margin-bottom:3px;border-left:2px solid var(--acid);border-bottom:2px solid var(--acid);transform:rotate(-45deg);}
.fx-phone figcaption{position:absolute;left:0;right:0;bottom:-46px;text-align:center;font-family:var(--fm);font-size:11px;color:var(--mid);}

/* ---------- 01 how it fits together ---------- */
.fxa{margin-top:clamp(44px,5vw,72px);display:flex;flex-direction:column;align-items:stretch;}
.fxa-row{display:grid;gap:12px;}
.fxa-users{grid-template-columns:repeat(3,minmax(0,1fr));}
.fxa-c{display:grid;grid-template-columns:34px 1fr;gap:3px 14px;align-content:start;padding:16px;border:1px solid var(--line);background:var(--bg-2);}
.fxa-c .t-ic{grid-row:1/3;}
.fxa-c b{font-weight:800;font-size:16px;}
.fxa-c small{font-size:13.5px;line-height:1.45;color:var(--dim);}
.fxa-link{height:44px;display:flex;justify-content:center;}
.fxa-link i{position:relative;width:1px;height:100%;background:repeating-linear-gradient(180deg,var(--line-2) 0 5px,transparent 5px 9px);overflow:hidden;}
.fxa-link i::after{content:"";position:absolute;left:-1px;top:0;width:3px;height:14px;background:var(--acid);animation:fxDrop 2.2s linear infinite;}
@keyframes fxDrop{from{transform:translateY(-14px);}to{transform:translateY(44px);}}
.fxa-core{padding:clamp(16px,2vw,24px);border:1px solid rgba(216,255,54,.5);
  background:linear-gradient(180deg,rgba(216,255,54,.05),transparent 50%),#121216;display:flex;flex-direction:column;gap:14px;}
.fxa-core-h{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.fxa-core-h b{font-weight:900;font-size:clamp(18px,1.8vw,24px);letter-spacing:-.02em;}
.fxa-chips{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.fxa-chips li{padding:12px 14px;border:1px solid var(--line-2);background:#17171c;font-size:14px;line-height:1.35;color:#dcdce3;}
.fxa-chips b{color:var(--acid);font-weight:800;}
.fxa-tenant{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:14px;border-top:1px dashed var(--line-2);}
.fxa-tenant span{padding:6px 10px;border:1px solid rgba(196,168,245,.4);background:rgba(157,122,210,.1);color:#ddd0f5;font-size:13px;}
.fxa-tenant .fxa-tl{border:0;background:none;padding:0 6px 0 0;font-family:var(--fm);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--fx-hi);}
.fxa-base{grid-template-columns:minmax(0,.9fr) minmax(0,2.1fr);align-items:stretch;}
.fxa-db{border-style:solid;border-color:var(--line-2);background:var(--bg-2);flex-wrap:wrap;}
.fxa-svc{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
.fxa-svc li{padding:12px 14px;border:1px solid var(--line);background:var(--bg-2);font-family:var(--fm);font-size:11px;line-height:1.45;color:var(--mid);}
.fxa-svc b{display:block;font-family:var(--fd);font-size:15px;font-weight:800;color:var(--ink);}
/* tiles arrive in order */
.fxa-c,.fxa-chips li,.fxa-db,.fxa-svc li{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--d) * 110ms + 150ms);}
.fxa.go .fxa-c,.fxa.go .fxa-chips li,.fxa.go .fxa-db,.fxa.go .fxa-svc li{opacity:1;transform:none;}

/* ---------- 02 payments ---------- */
.mny{background:#121216;border:1px solid var(--line);}
.mny-top{display:flex;align-items:baseline;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);}
.mny-top b{font-weight:800;font-size:17px;}
.mny-top span{font-family:var(--fm);font-size:11.5px;color:var(--mid);}
.mny-top em{margin-left:auto;font-style:normal;font-weight:900;font-size:22px;letter-spacing:-.02em;}
.mny-split{padding:18px;border-bottom:1px solid var(--line);}
.mny-bar{display:flex;height:14px;background:rgba(255,255,255,.06);overflow:hidden;}
.mny-bar i{display:block;height:100%;transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease);}
.mny-bar .s{width:98%;background:var(--fx);}
.mny-bar .f{width:2%;background:var(--acid);transform-origin:left;transition-delay:1s;}
.mny.go .mny-bar i{transform:none;}
.mny-legend{display:grid;gap:8px;margin-top:14px;}
.mny-legend span{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--dim);}
.mny-legend i{width:10px;height:10px;display:block;flex:none;}
.mny-legend .s{background:var(--fx);}.mny-legend .f{background:var(--acid);}
.mny-legend b{margin-left:auto;font-family:var(--fm);font-weight:500;color:var(--ink);}
.mny-row{display:flex;justify-content:space-between;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.06);font-size:14px;color:#d9d9e0;}
.mny-row:last-child{border-bottom:0;}
.mny-row b{font-family:var(--fm);font-weight:500;}
.mny-row.dim{color:var(--mid);}
.lad{position:relative;margin:-6px -10px 0 auto;width:min(88%,390px);padding:18px 20px;background:var(--paper);color:#141414;box-shadow:0 30px 60px -24px rgba(0,0,0,.9);}
.lad-l{font-family:var(--fm);font-size:11px;color:#6d6d72;}
.lad ol{list-style:none;margin:8px 0 12px;}
.lad li{display:flex;justify-content:space-between;padding:8px 10px;border-bottom:1px dashed #c9c5bc;font-size:14px;}
.lad li b{font-family:var(--fm);font-weight:500;}
.lad li.on{background:#141414;color:var(--paper);border-bottom-color:transparent;}
.lad li.on b{color:var(--acid);}
.lad-sum{display:grid;grid-template-columns:1fr auto;gap:5px 16px;font-size:13.5px;color:#3a3a40;}
.lad-sum span:nth-child(even){font-family:var(--fm);text-align:right;}
.lad-sum b{font-weight:900;font-size:16px;color:#141414;padding-top:8px;border-top:2px solid #141414;}
.lad-sum b:last-child{font-size:22px;letter-spacing:-.02em;text-align:right;}

/* ---------- 03 SMS ---------- */
.rt{background:#0c0c0f;border:1px solid var(--line);box-shadow:0 40px 80px -40px rgba(0,0,0,.9);}
.rt-top{display:flex;justify-content:space-between;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);font-family:var(--fm);font-size:11px;color:var(--mid);}
.rt-top b{color:var(--ink);font-weight:500;}
.rt-row{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:14px;min-height:46px;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.06);}
.rt-row:last-child{border-bottom:0;}
.rt-h{min-height:34px;font-family:var(--fm);font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--mid);border-bottom:1px solid var(--line);}
.rt-row code{justify-self:start;max-width:100%;padding:6px 11px;border-radius:13px 13px 13px 4px;background:var(--fx);color:#140c22;font-family:var(--fd);font-weight:600;font-size:13.5px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rt-row > span{display:flex;align-items:center;gap:9px;font-size:14px;color:#dcdce3;}
.rt-row > span::before{content:"";width:8px;height:8px;border-radius:50%;flex:none;background:currentColor;}
.rt-row .ok::before{background:var(--acid);}
.rt-row .go::before{background:var(--fx-hi);}
.rt-row .hu{color:var(--dim);}
.rt-h > span::before{display:none !important;}
.rt-h > span{font-size:10.5px !important;color:var(--mid) !important;}
.rt-row .hu::before{background:transparent;border:1.5px solid var(--mid);}
.rt-row:not(.rt-h){opacity:0;transform:translateX(-12px);transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--i) * 140ms + 200ms);}
.rt.go .rt-row{opacity:1;transform:none;}
.rule{position:relative;margin:-6px -10px 0 auto;width:min(88%,380px);padding:18px 20px 16px;background:var(--paper);color:#141414;
  font-weight:800;font-size:18px;line-height:1.3;letter-spacing:-.01em;box-shadow:0 30px 60px -24px rgba(0,0,0,.9);}
.rule cite{display:block;margin-top:10px;font-style:normal;font-family:var(--fm);font-weight:400;font-size:11px;color:#6d6d72;}

.fx-sub{margin-top:clamp(80px,9vw,130px);}
.fx-sub-h{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(20px,4vw,60px);align-items:start;
  padding-top:22px;border-top:1px solid var(--line);}
.fx-sub-h h3{font-weight:900;font-size:clamp(26px,3vw,44px);line-height:1;letter-spacing:-.035em;}
.fx-sub-h p{color:#d4d4dc;font-size:clamp(15.5px,1.25vw,17.5px);line-height:1.65;max-width:62ch;}
.pipe.five{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:clamp(50px,6vw,80px);}
.pipe.five::before,.pipe.five::after{left:10%;right:10%;}

/* ---------- 04 calendar ---------- */
.cal{position:relative;background:#f7f6fa;color:#1d1b24;border:1px solid var(--line);box-shadow:0 40px 80px -40px rgba(0,0,0,.9);padding-bottom:clamp(110px,12vw,150px);}
.cal-top{display:flex;justify-content:space-between;align-items:baseline;padding:14px 16px;border-bottom:1px solid #e3e0ea;}
.cal-top b{font-weight:800;font-size:16px;}
.cal-top span{font-family:var(--fm);font-size:11px;color:#7c7887;}
.cal-grid{--hr:62px;display:grid;grid-template-columns:44px repeat(3,minmax(0,1fr));}
.cal-times{display:flex;flex-direction:column;padding-top:34px;}
.cal-times span{height:var(--hr);font-family:var(--fm);font-size:10px;color:#9a96a5;text-align:right;padding-right:6px;transform:translateY(-6px);}
.cal-col{position:relative;height:calc(var(--hr) * 5 + 34px);border-left:1px solid #e3e0ea;
  background:repeating-linear-gradient(180deg,transparent 0 calc(var(--hr) - 1px),#ebe8f0 calc(var(--hr) - 1px) var(--hr)) 0 34px/100% calc(100% - 34px) no-repeat;
  transition:background-color .4s;}
.cal-col.dim{background-color:rgba(45,0,128,.12);}
.cal-col.dim .ap{opacity:.45;}
.cal-st{display:flex;align-items:center;gap:7px;height:34px;padding:0 8px;font-size:12.5px;font-weight:700;border-bottom:1px solid #e3e0ea;}
.cal-st i{width:9px;height:9px;border-radius:50%;background:var(--c);}
.ap{position:absolute;left:5px;right:5px;top:calc(34px + var(--t) * var(--hr) + 2px);height:calc(var(--h) * var(--hr) - 4px);
  padding:5px 7px;border-radius:6px;background:color-mix(in srgb,var(--c) 18%,#fff);border-left:3px solid var(--c);
  font-size:11px;line-height:1.3;color:#57536a;overflow:hidden;}
.ap b{display:block;font-size:11.5px;color:#1d1b24;}
.ap em{position:absolute;right:6px;top:5px;font-style:normal;font-family:var(--fm);font-size:9px;color:#6b4fa3;}
.ap.chain{background:color-mix(in srgb,var(--c) 26%,#fff);}
.ap.ghost{background:transparent;border:1.5px dashed var(--c);}
.ap.drag{box-shadow:0 16px 28px -10px rgba(45,0,128,.55);transform:translate(-12%,-6px) rotate(-2deg);outline:2px solid var(--fx);z-index:2;}
.brain{position:absolute;left:clamp(10px,4%,24px);right:clamp(10px,10%,70px);bottom:-30px;padding:16px 18px;background:#18181b;color:#fff;
  border-left:3px solid var(--fx);box-shadow:0 30px 60px -20px rgba(0,0,0,.9);display:flex;flex-direction:column;gap:8px;}
.brain-k{font-family:var(--fm);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--fx-hi);}
.brain p{font-size:14px;line-height:1.45;color:#d6d4dd;}
.brain-b{padding:8px 12px;background:rgba(157,122,210,.16);border:1px solid rgba(157,122,210,.45);font-size:13px;font-weight:600;}
.brain-b.on{background:var(--fx);border-color:var(--fx);color:#140c22;}
#calendar .vis-note{bottom:-62px;}

/* ---------- 06 jobs ---------- */
.crn{background:#0c0c0f;border:1px solid var(--line);font-family:var(--fm);font-size:12.5px;box-shadow:0 40px 80px -40px rgba(0,0,0,.9);}
.crn-top{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:11px;color:var(--mid);}
.crn-top b{color:var(--ink);font-weight:500;}
.crn-top span:last-child{margin-left:auto;}
.crn .dots,.ft .dots{display:flex;gap:5px;}
.crn .dots i,.ft .dots i{width:8px;height:8px;border-radius:50%;background:#2a2a30;display:block;}
.crn-row{display:grid;grid-template-columns:104px minmax(0,1fr) 10px;align-items:center;gap:14px;min-height:42px;padding:6px 16px;border-bottom:1px solid rgba(255,255,255,.05);color:#d4d4dc;
  opacity:0;transition:opacity .5s var(--ease);transition-delay:calc(var(--i) * 110ms + 150ms);}
.crn-row:last-child{border-bottom:0;}
.crn.go .crn-row{opacity:1;}
.crn-row .w{color:var(--fx-hi);}
.crn-row > span:nth-child(2){font-family:var(--fd);font-size:14px;}
.crn-row i{width:8px;height:8px;border-radius:50%;background:var(--acid);box-shadow:0 0 0 0 rgba(216,255,54,.5);animation:fxPulse 2.4s ease-out infinite;animation-delay:calc(var(--i) * -.27s);}
@keyframes fxPulse{0%{box-shadow:0 0 0 0 rgba(216,255,54,.55);}70%,100%{box-shadow:0 0 0 7px rgba(216,255,54,0);}}

/* ---------- 07 AI ---------- */
.ai{background:#121216;border:1px solid var(--line);padding-bottom:18px;box-shadow:0 40px 80px -40px rgba(0,0,0,.9);}
.ai-top{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);}
.ai-top b{font-weight:800;font-size:15px;}
.ai-top span:last-child{margin-left:auto;font-family:var(--fm);font-size:11px;color:var(--mid);}
.ai-dot{width:22px;height:22px;border-radius:50%;background:conic-gradient(from 90deg,var(--fx),var(--fx-2),var(--fx));animation:fxSpin 6s linear infinite;}
@keyframes fxSpin{to{transform:rotate(1turn);}}
.ai-u{margin:18px 18px 0 auto;width:fit-content;max-width:80%;padding:10px 14px;border-radius:16px 16px 5px 16px;background:var(--fx);color:#140c22;font-weight:600;font-size:14px;line-height:1.4;}
.ai-tools{list-style:none;display:flex;flex-direction:column;gap:6px;margin:16px 18px 0;}
.ai-tools li{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--mid);opacity:0;transform:translateY(6px);
  transition:opacity .45s var(--ease),transform .45s var(--ease);transition-delay:calc(var(--i) * 380ms + 250ms);}
.ai-tools.go li{opacity:1;transform:none;}
.ai-tools li::before{content:"";width:14px;height:14px;border-radius:50%;border:1.5px solid var(--acid);flex:none;
  background:radial-gradient(circle,var(--acid) 0 3px,transparent 3.5px);}
.ai-tools code{font-family:var(--fm);font-size:12px;color:var(--ink);padding:3px 8px;background:#1b1b21;border:1px solid var(--line);}
.ai-card{margin:16px 18px 0;padding:16px;background:var(--paper);color:#141414;display:flex;flex-direction:column;gap:3px;}
.ai-k{font-family:var(--fm);font-size:10.5px;color:#6d6d72;text-transform:uppercase;letter-spacing:1.4px;}
.ai-card b{font-weight:900;font-size:17px;letter-spacing:-.01em;margin-top:4px;}
.ai-card > span:not(.ai-k){font-size:14px;color:#3a3a40;}
.ai-btns{display:flex;gap:8px;margin-top:12px;}
.ai-btns span{padding:8px 16px;border:1.5px solid #141414;font-weight:700;font-size:13.5px;}
.ai-btns .on{background:#141414;color:var(--acid);}
.ai-foot{margin:14px 18px 0;font-family:var(--fm);font-size:11px;color:var(--acid);}

/* ---------- 08 extras visuals ---------- */
.ttp{width:min(86%,300px);display:flex;flex-direction:column;gap:8px;}
.ttp-s{position:relative;display:flex;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid var(--line-2);background:#121216;font-family:var(--fm);font-size:11px;color:var(--dim);}
.ttp-s b{font-family:var(--fd);font-size:14px;font-weight:800;color:var(--ink);}
.ttp-s.on{border-color:var(--acid);}
.ttp-s.on b{color:var(--acid);}
.ttp-s + .ttp-s::before{content:"";position:absolute;left:22px;top:-9px;width:1px;height:8px;background:var(--line-2);}
.bk{width:min(86%,290px);display:flex;flex-direction:column;gap:6px;font-family:var(--fm);font-size:11.5px;}
.bk span{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#121216;border:1px solid var(--line);color:#d4d4dc;transition:transform .6s var(--ease);}
.bk span:first-child{border-color:rgba(216,255,54,.5);}
.bk i{width:14px;height:16px;border:1.5px solid var(--fx-hi);border-radius:2px 6px 2px 2px;flex:none;}
.bk em{margin-top:6px;font-style:normal;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--acid);text-align:center;}
.pl{width:min(86%,290px);display:flex;flex-direction:column;gap:6px;}
.pl span{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:11px 12px;background:#121216;border:1px solid var(--line);font-family:var(--fm);font-size:11px;color:var(--dim);}
.pl b{font-family:var(--fd);font-size:14px;font-weight:800;color:var(--ink);}
.pl .on{border-color:var(--fx);background:linear-gradient(90deg,rgba(157,122,210,.22),rgba(157,122,210,.05));color:#ddd0f5;}
.xc:hover .bk span:first-child{transform:translateX(6px);}

/* ---------- 09 testing ---------- */
.tcount{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(24px,3vw,36px);border-top:1px solid var(--line);}
.tcount li{padding:16px 12px 0 0;display:flex;flex-direction:column;gap:6px;}
.tcount b{font-weight:900;font-size:clamp(28px,3vw,44px);letter-spacing:-.04em;line-height:1;}
.tcount li:nth-child(3) b{color:var(--acid);}
.tcount span{font-family:var(--fm);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--mid);}
.ft{background:#0c0c0f;border:1px solid var(--line);font-family:var(--fm);font-size:12.5px;box-shadow:0 40px 80px -40px rgba(0,0,0,.9);}
.ft-top{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:11px;color:var(--mid);}
.ft-top b{color:var(--ink);font-weight:500;}
.ft-top span:last-child{margin-left:auto;}
.ft-row{display:grid;grid-template-columns:44px minmax(0,1fr) 14px;align-items:center;gap:12px;min-height:42px;padding:6px 16px;border-bottom:1px solid rgba(255,255,255,.05);}
.ft-row:last-child{border-bottom:0;}
.ft-row code{color:var(--fx-hi);}
.ft-row span{font-family:var(--fd);font-size:14px;color:#d4d4dc;}
.ft-row i{width:0;height:0;border-left:8px solid var(--acid);border-top:5px solid transparent;border-bottom:5px solid transparent;opacity:.7;}
.ft-row.more span{color:var(--mid);}

/* ---------- responsive ---------- */
@media(max-width:1100px){
  .fxa-chips{grid-template-columns:repeat(2,minmax(0,1fr));}
  .fxa-base{grid-template-columns:1fr;}
}
@media(max-width:980px){
  .fx .nb-hero-in{grid-template-columns:minmax(0,1fr);}
  .fx-hero-glow{inset:auto 0 0 0;height:60%;-webkit-mask-image:linear-gradient(180deg,transparent,#000 40%);mask-image:linear-gradient(180deg,transparent,#000 40%);}
  .fx-phone{width:min(86%,320px);margin:20px auto 60px;}
  .fx-sub-h{grid-template-columns:1fr;}
  .pipe.five{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:30px;}
  .pipe.five::before,.pipe.five::after{display:none;}
  .lad,.rule{margin-right:0;}
}
@media(max-width:760px){
  .fxa-users{grid-template-columns:1fr;}
  .fxa-svc{grid-template-columns:repeat(2,minmax(0,1fr));}
  .fxa-svc li:last-child{grid-column:1/-1;}
  .pipe.five{grid-template-columns:1fr 1fr;}
  .tcount{grid-template-columns:1fr 1fr;row-gap:18px;}
}
@media(max-width:620px){
  .fxa-chips{grid-template-columns:1fr;}
  .fx-phone{width:min(80%,290px);}
  .cal{padding-bottom:0;}
  .brain{position:relative;left:auto;right:auto;bottom:auto;margin:-14px 10px 0;}
  #calendar .vis-note{bottom:-28px;}
  .cal-grid{--hr:52px;grid-template-columns:36px repeat(3,minmax(0,1fr));}
  .ap{font-size:10px;padding:4px 5px;}
  .ap em{display:none;}
  .brain{right:10px;}
  .crn-row{grid-template-columns:86px minmax(0,1fr) 10px;gap:10px;padding:6px 12px;font-size:11.5px;}
  .crn-row > span:nth-child(2){font-size:13px;}
  .rt-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:8px 12px;gap:10px;}
  .rt-row code{font-size:12.5px;}
  .rt-row > span{font-size:13px;}
}
@media (prefers-reduced-motion:reduce){
  .fx-hero-glow,.fx-phone,.fxa-link i::after,.crn-row i,.ai-dot{animation:none !important;}
  .fxa-c,.fxa-chips li,.fxa-db,.fxa-svc li,.mny-bar i,.rt-row,.crn-row,.ai-tools li,.fx-thread,.fx-thread .b{transition:none !important;}
}
