/* Free-tool pages (AI Agent Allowlist, AI Tools Blocklist, Shadow AI Tools). Alpha Quantum design language. v3 */
.ft{--void:#040814;--void2:#070d1f;--ink:#0f172a;--ink2:#475569;--mute:#94a3b8;--line:#e2e8f0;--bg:#f8fafc;
  --blue:#2563eb;--cyan:#22d3ee;--violet:#8b5cf6;--magenta:#e879f9;--safe:#10b981;--warn:#f59e0b;--danger:#ef4444;
  --glass:rgba(255,255,255,.04);--gline:rgba(148,197,255,.16);--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --head:"Plus Jakarta Sans","Inter",system-ui,sans-serif;font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);
  background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.ft *{box-sizing:border-box}
.ft a{color:var(--blue)}
.ft-wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.ft h1,.ft h2,.ft h3{font-family:var(--head);letter-spacing:-.025em;line-height:1.12;margin:0}
.ft code,.ft kbd,.ft pre{font-family:var(--mono)}
.ft code{font-size:.86em;color:#1e293b;background:rgba(15,23,42,.06);padding:1px 5px;border-radius:5px;word-break:break-word}
.ft-hero code,.ft-sec.dark code,.ft-band code{color:#e2e8f0;background:rgba(255,255,255,.08)}
.ft pre code{background:none;padding:0;color:inherit}
/* hero */
.ft-hero{position:relative;background:var(--void);color:#e2e8f0;padding:72px 0 64px;overflow:hidden}
.ft-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(900px 480px at 18% 10%,rgba(37,99,235,.28),transparent 60%),radial-gradient(700px 420px at 90% 30%,rgba(139,92,246,.22),transparent 60%);pointer-events:none}
.ft-hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(148,197,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(148,197,255,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%);pointer-events:none}
.ft-hero .ft-wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.ft-pill{display:inline-flex;align-items:center;gap:8px;font:600 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);border:1px solid var(--gline);background:rgba(34,211,238,.06);border-radius:999px;padding:8px 14px;margin-bottom:22px}
.ft-pill i{font-size:8px}
.ft-hero h1{font-size:clamp(2.1rem,4.2vw,3.35rem);font-weight:800;color:#fff;margin-bottom:18px}
.ft-grad{background:linear-gradient(90deg,var(--cyan),#60a5fa 45%,var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.ft-lead{font-size:1.08rem;color:#b6c2d6;max-width:600px;margin:0 0 28px}
.ft-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:30px}
.ft-btn{display:inline-flex;align-items:center;gap:10px;font:700 15px/1 var(--head);padding:15px 22px;border-radius:12px;text-decoration:none!important;transition:transform .15s,box-shadow .15s;border:0;cursor:pointer}
.ft-btn.primary{background:linear-gradient(90deg,var(--cyan),var(--blue) 55%,var(--violet));color:#fff!important;box-shadow:0 10px 30px rgba(37,99,235,.35)}
.ft-btn.primary:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(37,99,235,.45)}
.ft-btn.ghost{background:rgba(255,255,255,.04);color:#e2e8f0!important;border:1px solid var(--gline)}
.ft-btn.ghost:hover{background:rgba(255,255,255,.08)}
.ft-btn.light{background:#fff;color:var(--ink)!important;border:1px solid var(--line)}
.ft-meta{display:flex;flex-wrap:wrap;gap:8px}
.ft-meta span{font:600 11.5px/1 var(--mono);color:#9fb0c9;border:1px solid var(--gline);border-radius:8px;padding:8px 10px;background:var(--glass)}
.ft-meta i{color:var(--cyan);margin-right:6px}
/* terminal */
.ft-term{background:#0a1226;border:1px solid var(--gline);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.45),0 0 0 1px rgba(34,211,238,.05) inset;overflow:hidden}
.ft-term-bar{display:flex;align-items:center;gap:7px;padding:12px 14px;border-bottom:1px solid var(--gline);background:rgba(255,255,255,.02)}
.ft-term-bar b{width:10px;height:10px;border-radius:50%;background:#ef4444;display:inline-block}.ft-term-bar b:nth-child(2){background:#f59e0b}.ft-term-bar b:nth-child(3){background:#10b981}
.ft-term-bar span{margin-left:8px;font:600 11px/1 var(--mono);letter-spacing:.1em;color:#7d8fb0;text-transform:uppercase}
.ft-term pre{margin:0;padding:18px 18px 20px;font-size:12.5px;line-height:1.7;color:#cbd5e1;white-space:pre-wrap;word-break:break-word}
.ft-term .p{color:var(--cyan)}.ft-term .ok{color:#34d399}.ft-term .no{color:#fb7185}.ft-term .dim{color:#64748b}.ft-term .hl{color:#fff;font-weight:600}
/* stat band */
.ft-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:-34px;position:relative;z-index:2}
.ft-stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 20px 18px;box-shadow:0 12px 32px rgba(15,23,42,.08)}
.ft-stat b{display:block;font:800 1.7rem/1.1 var(--head);letter-spacing:-.02em;color:var(--ink)}
.ft-stat b em{font-style:normal;background:linear-gradient(90deg,var(--blue),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}
.ft-stat span{display:block;font:600 11px/1.45 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);margin-top:8px}
/* sections */
.ft-sec{padding:84px 0}.ft-sec.alt{background:var(--bg)}
.ft-sec.dark{background:var(--void);color:#cbd5e1;position:relative;overflow:hidden}
.ft-sec.dark:before{content:"";position:absolute;inset:0;background:radial-gradient(800px 360px at 50% 0,rgba(37,99,235,.22),transparent 65%);pointer-events:none}
.ft-sec.dark .ft-wrap{position:relative}
.ft-kicker{display:flex;align-items:center;gap:10px;font:600 11.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin-bottom:14px}
.ft-kicker:before{content:"";width:26px;height:1px;background:currentColor}
.ft-sec.dark .ft-kicker{color:var(--cyan)}
.ft-h2{font-size:clamp(1.7rem,3vw,2.35rem);font-weight:800;margin-bottom:12px!important}
.ft-sec.dark .ft-h2{color:#fff}
.ft-sub{font-size:1.02rem;color:var(--ink2);max-width:720px;margin:0 0 36px}
.ft-sec.dark .ft-sub{color:#9fb0c9}
.ft-center{text-align:center}.ft-center .ft-kicker{justify-content:center}.ft-center .ft-sub{margin-left:auto;margin-right:auto}
/* tiles */
.ft-grid{display:grid;gap:16px}.ft-g2{grid-template-columns:repeat(2,1fr)}.ft-g3{grid-template-columns:repeat(3,1fr)}.ft-g4{grid-template-columns:repeat(4,1fr)}
.ft-tile{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;transition:transform .2s,box-shadow .2s,border-color .2s}
.ft-tile:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(15,23,42,.09);border-color:#cbd5e1}
.ft-tile:before,.ft-tile:after{content:"";position:absolute;width:12px;height:12px;border-color:#cbd5e1;border-style:solid;opacity:.8}
.ft-tile:before{top:8px;right:8px;border-width:1px 1px 0 0}.ft-tile:after{bottom:8px;left:8px;border-width:0 0 1px 1px}
.ft-sec.dark .ft-tile{background:rgba(255,255,255,.03);border-color:var(--gline)}
.ft-sec.dark .ft-tile:before,.ft-sec.dark .ft-tile:after{border-color:rgba(148,197,255,.3)}
.ft-ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:19px;margin-bottom:16px;box-shadow:0 8px 20px rgba(37,99,235,.2)}
.ft-ico.c1{background:linear-gradient(135deg,#22d3ee,#2563eb)}.ft-ico.c2{background:linear-gradient(135deg,#e879f9,#a21caf)}
.ft-ico.c3{background:linear-gradient(135deg,#10b981,#059669)}.ft-ico.c4{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}
.ft-ico.c5{background:linear-gradient(135deg,#f59e0b,#d97706)}.ft-ico.c6{background:linear-gradient(135deg,#ec4899,#be185d)}
.ft-tile h3{font-size:1.08rem;font-weight:700;margin-bottom:8px!important}
.ft-sec.dark .ft-tile h3{color:#fff}
.ft-tile p{margin:0;color:var(--ink2);font-size:.93rem}
.ft-sec.dark .ft-tile p{color:#9fb0c9}
.ft-badge{position:absolute;top:18px;right:22px;font:700 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;border-radius:6px;padding:6px 8px}
.ft-badge.free{color:#047857;background:#d1fae5}.ft-badge.full{color:#6d28d9;background:#ede9fe}.ft-badge.warn{color:#b45309;background:#fef3c7}
.ft-sec.dark .ft-badge.free{color:#6ee7b7;background:rgba(16,185,129,.14)}.ft-sec.dark .ft-badge.full{color:#c4b5fd;background:rgba(139,92,246,.18)}
.ft-bars{margin-top:14px;display:grid;gap:8px}
.ft-bar{display:grid;grid-template-columns:110px 1fr 64px;gap:10px;align-items:center;font:500 11.5px/1.2 var(--mono);color:var(--ink2)}
.ft-bar i{display:block;height:6px;border-radius:4px;background:#e2e8f0;overflow:hidden}
.ft-bar i s{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--violet))}
.ft-bar b{text-align:right;color:var(--ink);font-weight:600}
.ft-sec.dark .ft-bar{color:#9fb0c9}.ft-sec.dark .ft-bar b{color:#fff}.ft-sec.dark .ft-bar i{background:rgba(255,255,255,.08)}
/* steps + code */
.ft-steps{display:grid;gap:16px;counter-reset:st}
.ft-step{display:grid;grid-template-columns:52px 1fr;gap:18px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
.ft-step:before{counter-increment:st;content:counter(st);width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font:800 1rem/1 var(--head);color:#fff;background:linear-gradient(135deg,var(--cyan),var(--blue) 60%,var(--violet))}
.ft-step h3{font-size:1.05rem;margin-bottom:6px!important}
.ft-step p{margin:0 0 12px;color:var(--ink2);font-size:.93rem}
.ft-step > div{min-width:0}
.ft-code{position:relative;background:#0a1226;border:1px solid #1e2a44;border-radius:12px;margin:10px 0 0}
.ft-code pre{margin:0;padding:16px 60px 16px 16px;color:#e2e8f0;font-size:12.8px;line-height:1.65;overflow-x:auto;white-space:pre}
.ft-code .c{color:#64748b}.ft-code .k{color:#c4b5fd}.ft-code .s{color:#86efac}.ft-code .p{color:var(--cyan)}
.ft-code .ft-copy{position:absolute;top:10px;right:10px;font:600 11px/1 var(--mono);color:#cbd5e1;background:rgba(255,255,255,.06);border:1px solid #2b3a5c;border-radius:8px;padding:7px 9px;cursor:pointer}
.ft-code .ft-copy:hover{background:rgba(255,255,255,.12)}
.ft-code .ft-lang{position:absolute;top:-9px;left:14px;font:700 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#93c5fd;background:#0a1226;border:1px solid #1e2a44;border-radius:6px;padding:4px 7px}
.ft-note{font-size:.86rem;color:var(--ink2);margin-top:10px}
.ft-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ft-tab{font:600 12.5px/1 var(--mono);padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink2);cursor:pointer}
.ft-tab[aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.ft-panel[hidden]{display:none}
/* comparison */
.ft-cmp{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;font-size:.93rem}
.ft-cmp th,.ft-cmp td{padding:15px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.ft-cmp tr:last-child td{border-bottom:0}
.ft-cmp th{font:700 11px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);background:var(--bg)}
.ft-cmp td:first-child{font-weight:600;color:var(--ink)}
.ft-cmp .y{color:#047857;font-weight:600}.ft-cmp .n{color:var(--mute)}
.ft-cmp th.full,.ft-cmp td.full{background:linear-gradient(180deg,rgba(139,92,246,.05),rgba(37,99,235,.04))}
.ft-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:16px}
/* downloads */
.ft-dl{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.ft-dl + .ft-dl{margin-top:12px}
.ft-dl .ft-ico{margin:0;width:42px;height:42px;font-size:17px}
.ft-dl b{display:block;font:700 .98rem/1.3 var(--head);word-break:break-all}
.ft-dl small{display:block;font:500 11px/1.5 var(--mono);color:var(--ink2);word-break:break-all;margin-top:3px}
/* trust */
.ft-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ft-check{display:flex;gap:12px;align-items:flex-start}
.ft-check i{color:var(--safe);margin-top:4px}
/* faq */
.ft-faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.ft-faq details + details{margin-top:10px}
.ft-faq summary{cursor:pointer;font:700 1rem/1.4 var(--head);list-style:none;display:flex;justify-content:space-between;gap:16px}
.ft-faq summary::-webkit-details-marker{display:none}
.ft-faq summary:after{content:"+";font:600 1.2rem/1 var(--mono);color:var(--blue)}
.ft-faq details[open] summary:after{content:"\2212"}
.ft-faq details p{margin:12px 0 0;color:var(--ink2);font-size:.94rem}
/* cta band */
.ft-band{background:linear-gradient(120deg,#0b1e3f,#1e1b4b 60%,#312e81);border-radius:20px;padding:40px;color:#e2e8f0;display:grid;grid-template-columns:1.4fr auto;gap:28px;align-items:center;position:relative;overflow:hidden}
.ft-band:before{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(34,211,238,.35),transparent 70%)}
.ft-band h2{color:#fff;font-size:1.7rem;margin-bottom:8px!important}
.ft-band p{margin:0;color:#c7d2fe}
.ft-band .ft-cta{margin:0;position:relative}
.ft-small{font-size:.85rem;color:var(--ink2)}
/* responsive */
@media(max-width:980px){.ft-hero .ft-wrap{grid-template-columns:1fr;gap:34px}.ft-g4{grid-template-columns:repeat(2,1fr)}.ft-g3,.ft-trust{grid-template-columns:repeat(2,1fr)}.ft-stats{grid-template-columns:repeat(2,1fr)}.ft-band{grid-template-columns:1fr}}
@media(max-width:640px){.ft-wrap{padding:0 16px}.ft-hero{padding:48px 0 60px}.ft-g2,.ft-g3,.ft-g4,.ft-trust{grid-template-columns:1fr}.ft-sec{padding:60px 0}
  .ft-step{grid-template-columns:1fr;padding:18px}.ft-dl{grid-template-columns:auto 1fr}.ft-dl .ft-btn{grid-column:1/-1;justify-content:center}.ft-band{padding:28px}
  .ft-bar{grid-template-columns:90px 1fr 54px}.ft-term pre{font-size:11.5px}.ft-stat b{font-size:1.4rem}
  .ft-code pre{padding:40px 14px 14px;font-size:12px}}
@media print{.ft-hero,.ft-sec.dark{background:#fff!important;color:#000!important}.ft-copy{display:none}}
