/* ==========================================================================
   TrafficArmor — public site stylesheet
   --------------------------------------------------------------------------
   Was three <style> blocks, one embedded in each page. They shared 394 of about
   480 rules, and no selector was ever defined differently between them, so this
   is their union with the duplicates dropped — no page needs an override and
   nothing had to be reconciled.

   Rule order follows index.html first, then whatever affiliates and pricing add,
   so the cascade each page saw before is preserved.

   Loaded once from home/inc/header.php.
   ========================================================================== */

:root{
  color-scheme:dark;
  --bg:#000000; --panel:#0A0A0A; --card:#111111; --border:#222222;
  --neon:#D4FF00; --red:#FF453A; --amber:#FFD60A;
  --text:#E5E7EB; --muted:#9CA3AF; --dim:#6B7280; --faint:#3F3F46;
  --w:1280px;
  --ink:#FFFFFF; --text2:#D1D5DB;
  --neon-solid:#D4FF00;
  --grid-line:rgba(255,255,255,.035);
  --nav-bg:rgba(0,0,0,.88); --nav-bg2:rgba(0,0,0,.96); --dock-bg:rgba(0,0,0,.92);
  --badge-bg:rgba(17,17,17,.6);
  --console-shadow:0 0 80px rgba(212,255,0,.05),0 40px 80px rgba(0,0,0,.8);
  --pop-shadow:0 24px 60px rgba(0,0,0,.7);
  --watermark:rgba(255,255,255,.018);
  --dot-idle:#1a1a1a; --clean-dot:rgba(150,170,90,.6);
  --btn-hover-bg:#fff; --btn-hover-fg:#000;
  --ambient:rgba(212,255,0,.065);
  --scan:rgba(212,255,0,.06);
}
[data-theme="light"]{
  color-scheme:light;
  --bg:#F1EEE3; --panel:#FAF8EF; --card:#E8E4D4; --border:#D8D3C0;
  --neon:#66821A; --red:#D8322A; --amber:#A87B00;
  --text:#262418; --muted:#4C493A; --dim:#807D6B; --faint:#C7C2AC;
  --ink:#12100A; --text2:#33301F;
  --neon-solid:#D4FF00;
  --grid-line:rgba(60,55,30,.06);
  --nav-bg:rgba(241,238,227,.88); --nav-bg2:rgba(241,238,227,.97); --dock-bg:rgba(241,238,227,.94);
  --badge-bg:rgba(250,248,239,.72);
  --console-shadow:0 0 60px rgba(102,130,26,.12),0 30px 60px rgba(60,52,20,.16);
  --pop-shadow:0 24px 60px rgba(60,52,20,.18);
  --watermark:rgba(50,45,20,.03);
  --dot-idle:#DCD6C2; --clean-dot:rgba(110,125,45,.55);
  --btn-hover-bg:#0C0C0A; --btn-hover-fg:#D4FF00;
  --ambient:rgba(102,130,26,.10);
  --scan:rgba(102,130,26,.10);
}
html,body{transition:background-color .3s ease,color .3s ease}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:84px}
body{background:var(--bg);color:var(--text);font-family:'Space Grotesk',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--neon-solid);color:#000}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
.wrap{max-width:var(--w);margin:0 auto;padding:0 24px}
/* ---------- top bar ---------- */
.topbar{
  background:var(--neon-solid);color:#000;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  text-align:center;padding:9px 46px 9px 16px;position:relative;z-index:102;
}
.topbar a{border-bottom:1px solid #000;margin-left:8px}
.topbar-live{display:inline-flex;align-items:center;gap:9px}
.topbar-live::before{content:'';width:6px;height:6px;border-radius:50%;background:#000;box-shadow:0 0 0 4px rgba(0,0,0,.12);animation:taPulse 1.4s infinite;flex:none}
.topbar-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#000;width:26px;height:26px;border:none;background:none;cursor:pointer;font:700 18px/26px 'JetBrains Mono',monospace}
.topbar-close:hover{opacity:.6}
@keyframes taPulse{50%{opacity:.35}}
@media(max-width:600px){.topbar{font-size:10px;letter-spacing:.04em}.topbar-live{display:inline}.topbar-live::before{display:none}}
/* ---------- nav ---------- */
nav{
  position:sticky;top:0;z-index:100;
  background:var(--nav-bg);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
.nav-inner{max-width:var(--w);margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:19px;letter-spacing:-.02em;color:var(--ink);text-transform:uppercase}
.logo-mark{width:16px;height:18px;background:var(--neon-solid);position:relative;flex-shrink:0;clip-path:polygon(50% 0, 100% 13%, 100% 56%, 50% 100%, 0 56%, 0 13%)}
.logo-mark::after{content:'';position:absolute;inset:4px;background:var(--bg);clip-path:polygon(50% 0, 100% 13%, 100% 56%, 50% 100%, 0 56%, 0 13%)}
.nav-links{display:flex;gap:28px;font-size:14px;color:var(--muted);align-items:center}
.nav-links>a{transition:color .15s}
.nav-links>a:hover{color:var(--neon)}
.nav-drop{position:relative}
.nav-drop-btn{font-family:inherit;font-size:14px;color:var(--muted);background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:0;transition:color .15s}
.nav-drop-btn:hover,.nav-drop:hover .nav-drop-btn{color:var(--neon)}
.nav-drop-btn .caret{font-size:10px;transition:transform .2s}
.nav-drop:hover .nav-drop-btn .caret{transform:rotate(180deg)}
.nav-drop-menu{position:absolute;top:calc(100% + 14px);left:-14px;min-width:290px;background:var(--panel);border:1px solid var(--border);padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s;box-shadow:var(--pop-shadow)}
.nav-drop::before{content:'';position:absolute;top:100%;left:0;right:0;height:16px}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{opacity:1;visibility:visible;transform:none}
.nav-drop-menu a{display:block;padding:11px 14px;color:var(--ink);font-size:14px;font-weight:500;transition:background .15s}
.nav-drop-menu a small{display:block;color:var(--dim);font-size:11.5px;font-weight:400;margin-top:3px;font-family:'JetBrains Mono',monospace}
.nav-drop-menu a:hover{background:rgba(212,255,0,.06)}
.nav-drop-menu a:hover small{color:var(--muted)}
.nav-cta{display:flex;align-items:center;gap:16px;font-size:14px;font-weight:500}
.nav-cta .login:hover{color:var(--ink)}
.btn-neon{background:var(--neon-solid);color:#000;padding:9px 18px;font-weight:700;transition:background .15s,transform .1s;display:inline-block}
.btn-neon:hover{background:var(--btn-hover-bg);color:var(--btn-hover-fg)}
.btn-neon:active{transform:translateY(1px)}
.btn-ghost{border:1px solid var(--border);color:var(--ink);padding:9px 18px;font-weight:500;transition:border-color .15s,color .15s;display:inline-block}
.btn-ghost:hover{border-color:var(--neon);color:var(--neon)}
.theme-toggle{border:none;background:none;padding:0;color:var(--muted);font-size:16px;line-height:1;cursor:pointer;transition:color .15s;flex:none;transform:translateY(2px)}
.theme-toggle:hover{color:var(--neon)}
.nav-mobile .theme-toggle{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:13px 0;font-size:15px;font-family:inherit;border-bottom:1px solid var(--border);width:100%;transform:none}
.nav-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;margin-left:8px}
.nav-burger span{display:block;width:22px;height:2px;background:var(--ink);transition:.25s}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-mobile{display:none;flex-direction:column;gap:2px;padding:0 24px 16px;border-bottom:1px solid var(--border);background:var(--nav-bg2)}
.nav-mobile a{padding:13px 0;font-size:15px;color:var(--muted);border-bottom:1px solid var(--border)}
.nav-mobile a:last-of-type{border-bottom:none}
.nav-mobile a:hover{color:var(--neon)}
.nav-mobile a.btn-neon{color:#000;border-bottom:none}
.nav-mobile a.btn-neon:hover{background:var(--btn-hover-bg);color:var(--btn-hover-fg)}
.nav-mobile.open{display:flex}
@media(max-width:820px){
  .nav-links{display:none}
  .nav-cta{display:none}
  .nav-burger{display:flex}
}
/* ---------- hero ---------- */
/* The hero grid fades out towards its foot instead of stopping dead at the section
   edge. On affiliates a rule sits immediately below and hides the join; on pricing
   there is nothing there, so the grid simply stopped mid-air.

   Done as an extra background LAYER, not a mask: background layers paint first-listed
   on top, so a gradient running to the page colour sits over the grid lines and
   dissolves them. mask-image would have faded the hero's own text with the grid, and
   an opacity or filter approach would have made the hero a stacking context — which
   has bitten this project twice already. .soon (the coming-soon pages) gets the same
   treatment; it is neither .hero nor .page-hero, so it had no grid at all. */
.hero{
  position:relative;
  background-image:linear-gradient(to bottom,transparent 55%,var(--bg) 100%),linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);
  background-size:100% 100%,40px 40px,40px 40px;
}
.hero::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 70% 55% at 50% 0%,rgba(212,255,0,.06),transparent 65%);
}
.hero-inner{max-width:var(--w);margin:0 auto;padding:88px 24px 56px;text-align:center;position:relative;z-index:1}
.hero-badge{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'JetBrains Mono',monospace;font-size:12px;
  color:var(--neon);border:1px solid rgba(212,255,0,.24);background:var(--badge-bg);
  box-shadow:inset 0 0 28px rgba(212,255,0,.025);backdrop-filter:blur(14px);
  padding:6px 14px;margin-bottom:28px;
}
.badge-status{display:inline-flex;align-items:center;gap:6px;color:#000;background:var(--neon-solid);padding:3px 7px;margin-left:-8px;font-size:9px;font-weight:700;letter-spacing:.12em}
.badge-status i{width:6px;height:6px;border-radius:50%;background:#000;animation:taPulse 1.3s infinite;flex:none}
.cursor{display:inline-block;width:7px;height:13px;background:var(--neon-solid);animation:blink 1.1s steps(1) infinite;vertical-align:-2px}
@keyframes blink{50%{opacity:0}}
h1{
  font-size:clamp(40px,6.5vw,76px);
  font-weight:700;line-height:1.04;letter-spacing:-.03em;color:var(--ink);
  margin-bottom:24px;
}
h1 .accent{color:var(--neon)}
/* Hero headline only — the global h1 rule above still governs every other h1.
   Line one caps at 90px, line two at 78px.

   The vw and the floor are scaled by the same 78/90 ratio rather than left alone, so
   line two stays 86.7% of line one at EVERY width instead of only at the cap. Sharing
   6.5vw would make both lines identical below ~1385px — no emphasis at all on a typical
   laptop, which is where most of this page is read. */
.hero h1{font-size:clamp(40px,6.5vw,90px)}
.hero h1 .accent{font-size:clamp(34.7px,5.63vw,78px)}
.hero-sub{
  font-size:clamp(16px,2vw,20px);color:var(--muted);font-weight:400;
  max-width:720px;margin:0 auto 40px;line-height:1.6;
}
.hero-sub strong{color:var(--ink);font-weight:500}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:40px}
.hero-actions .btn-neon,.hero-actions .btn-ghost{padding:14px 30px;font-size:15px}
.trust{display:flex;flex-wrap:wrap;justify-content:center;gap:26px;font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--dim)}
.trust span{display:flex;align-items:center;gap:8px}
.trust i{width:6px;height:6px;background:var(--neon-solid);border-radius:50%;flex-shrink:0}
/* ---------- console (hero mockup) ---------- */
.console{max-width:1080px;margin:0 auto;padding:0 24px 88px;position:relative;z-index:1}
.console-frame{border:1px solid var(--border);background:var(--panel);box-shadow:var(--console-shadow)}
.console-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--border);padding:10px 18px;
  font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--dim);
}
.console-head .dots{display:flex;gap:6px}
.console-head .dots i{width:9px;height:9px;border-radius:50%;background:var(--border)}
.console-head .path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.console-grid{display:grid;grid-template-columns:1fr 1fr}
@media(max-width:860px){.console-grid{grid-template-columns:1fr}}
.verdict{padding:32px;border-right:1px solid var(--border);font-family:'JetBrains Mono',monospace}
@media(max-width:860px){.verdict{border-right:none;border-bottom:1px solid var(--border)}}
.verdict-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;gap:10px;flex-wrap:wrap}
.label-xs{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.pill-threat{
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--red);border:1px solid rgba(255,69,58,.35);background:rgba(255,69,58,.08);
  padding:4px 10px;animation:pulse 1.6s ease-in-out infinite;
}
@keyframes pulse{50%{opacity:.45}}
.score-row{display:flex;align-items:flex-end;gap:14px;margin-bottom:30px}
.score{font-size:72px;font-weight:700;line-height:.85;color:var(--red)}
.score-label{font-size:11px;color:var(--dim);padding-bottom:4px;line-height:1.5}
.kv{font-size:12.5px}
.kv .row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:11px 0}
.kv .k{color:var(--dim);flex-shrink:0}
.kv .v{color:var(--ink);text-align:right;word-break:break-word}
.kv .v.bad{color:var(--red)}
.kv .v .tag{color:var(--neon);margin-left:6px}
.rescan{
  margin-top:26px;width:100%;padding:12px;border:1px solid var(--border);
  color:var(--dim);font-family:'JetBrains Mono',monospace;font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  transition:color .15s,border-color .15s;
}
.rescan:hover{color:var(--neon);border-color:var(--neon)}
/* live feed */
.feed{padding:32px;background:var(--card);position:relative;overflow:hidden;font-family:'JetBrains Mono',monospace;display:flex;flex-direction:column}
.feed-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.live-dot{display:inline-flex;align-items:center;gap:7px;font-size:10px;color:var(--neon);letter-spacing:.14em;text-transform:uppercase}
.live-dot i{width:6px;height:6px;background:var(--neon-solid);border-radius:50%;animation:pulse 1.2s infinite}
#feedRows{display:flex;flex-direction:column;gap:13px;font-size:11.5px;min-height:280px}
.feed-row{display:flex;align-items:center;gap:14px;animation:rowIn .35s ease}
@keyframes rowIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.feed-row .verdict-tag{width:52px;font-weight:700;flex-shrink:0}
.v-block{color:var(--red)}
.v-allow{color:var(--neon)}
.v-review{color:var(--amber)}
.feed-row .reason{flex:1;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feed-row .meta{color:var(--faint);flex-shrink:0}
.feed-fade{position:absolute;left:0;right:0;bottom:0;height:110px;background:linear-gradient(to top,var(--card),transparent);pointer-events:none}
/* ---------- stats strip ---------- */
.stats{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel)}
.stats-grid{max-width:var(--w);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}
@media(max-width:860px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
.stat{padding:36px 24px;border-right:1px solid var(--border);text-align:center}
.stat:last-child{border-right:none}
@media(max-width:860px){.stat:nth-child(2){border-right:none}.stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--border)}}
.stat .num{font-family:'JetBrains Mono',monospace;font-size:clamp(28px,3.5vw,42px);font-weight:700;color:var(--neon);letter-spacing:-.02em}
.stat .num .unit{font-size:.55em;color:var(--dim);font-weight:400}
.stat .desc{font-size:12px;color:var(--dim);margin-top:8px;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.1em}
/* ============ FEATURE ROWS ============ */
section.rows{padding:24px 24px 0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:56px 0;border-bottom:1px solid var(--border)}
.row2:last-child{border-bottom:none}
.row2 h2{font-size:32px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1.15;margin:14px 0 16px}
.row2 h2 .accent{display:block;color:var(--neon)}
.row2 p{color:var(--muted);line-height:1.65;font-size:16px}
.kicker{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--neon);text-transform:uppercase;letter-spacing:.18em}
.row2 ul{list-style:none;margin-top:18px}
.row2 li{display:flex;gap:12px;color:var(--muted);font-size:15px;padding:6px 0}
.row2 li::before{content:'>';color:var(--neon);font-family:'JetBrains Mono',monospace;font-weight:700}
.viz{border:1px solid var(--border);background:var(--panel);padding:28px;position:relative;overflow:hidden}
.viz-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.2em;margin-bottom:20px}
/* unmask card */
.um-card{border:1px solid var(--border);background:var(--card);padding:18px;font-family:'JetBrains Mono',monospace}
.um-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.um-ip{color:var(--ink);font-size:15px}
.um-sub{color:var(--dim);margin-top:6px;font-size:11.5px}
.um-lines{margin-top:16px;border-top:1px dashed var(--border);padding-top:14px;display:flex;flex-direction:column;gap:11px;font-size:12.5px}
.um-line{display:flex;justify-content:space-between;gap:12px;opacity:0;transform:translateY(5px);transition:opacity .4s,transform .4s;color:var(--ink)}
.um-line .lv{color:var(--dim)}
.um-line .flag{color:var(--red)}
.run .um-line{opacity:1;transform:none}
.run .um-line:nth-child(1){transition-delay:.5s}
.run .um-line:nth-child(2){transition-delay:1.1s}
.run .um-line:nth-child(3){transition-delay:1.7s}
.um-verdict{margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.um-verdict .v-label{color:var(--dim);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
/* fingerprint layers */
.fp-stack{font-family:'JetBrains Mono',monospace;font-size:12px}
.fp-line{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.fp-line .k{width:120px;color:var(--dim);flex:none}
.fp-track{flex:1;height:8px;background:var(--card);border:1px solid var(--border);position:relative}
.fp-fill{position:absolute;inset:0;width:0;background:var(--neon-solid);transition:width 1s cubic-bezier(.2,.8,.2,1)}
.fp-line .pct{width:42px;text-align:right;color:var(--muted)}
.fp-out{margin-top:22px;border:1px solid var(--border);background:var(--card);padding:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.fp-out .hash{color:var(--neon);letter-spacing:.05em;font-weight:500}
.fp-out .tag{color:var(--red);border:1px solid rgba(255,69,58,.4);background:rgba(255,69,58,.08);padding:3px 8px;font-size:10px;text-transform:uppercase;flex:none}
.fp-note{margin-top:12px;font-size:11px;color:var(--dim)}
.fp-note b{color:var(--text);font-weight:500}
/* dashboard mock */
.dash table{width:100%;border-collapse:collapse;font-family:'JetBrains Mono',monospace;font-size:11.5px}
.dash th{color:var(--dim);text-transform:uppercase;letter-spacing:.1em;font-weight:400;text-align:left;padding:0 10px 10px;border-bottom:1px solid var(--border)}
.dash td{padding:10px;border-bottom:1px solid rgba(34,34,34,.6);color:var(--text2);white-space:nowrap}
.dash tr.rowline{cursor:pointer;transition:background .15s}
.dash tr.rowline:hover{background:rgba(212,255,0,.04)}
.badge{padding:2px 7px;font-size:10px;text-transform:uppercase;border:1px solid}
.b-red{color:var(--red);border-color:rgba(255,69,58,.4);background:rgba(255,69,58,.08)}
.b-neon{color:var(--neon);border-color:rgba(212,255,0,.35);background:rgba(212,255,0,.07)}
.b-amber{color:var(--amber);border-color:rgba(255,214,10,.4);background:rgba(255,214,10,.08)}
.dash-actions{display:flex;gap:10px;margin-top:16px;font-family:'JetBrains Mono',monospace;font-size:11px;flex-wrap:wrap}
.dash-actions span{border:1px solid var(--border);padding:6px 12px;color:var(--muted);cursor:pointer;transition:.15s}
.dash-actions span:hover{color:var(--neon);border-color:var(--neon)}
/* rule builder (interactive) */
.rule{font-family:'JetBrains Mono',monospace;font-size:12.5px}
.rb-cond{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--border);cursor:pointer}
.rb-cond:last-of-type{border-bottom:none}
.rb-cond input[type=checkbox]{accent-color:var(--neon);width:14px;height:14px;flex:none;cursor:pointer}
.rb-cond .sig{color:var(--dim);width:82px;flex:none}
.rb-cond .val{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rb-act{display:flex;align-items:center;gap:10px;margin-top:16px}
.rb-act label{color:var(--dim)}
.rb-act select{background:var(--panel);border:1px solid var(--border);color:var(--neon);font-family:'JetBrains Mono',monospace;font-size:12.5px;padding:7px 10px;cursor:pointer}
.rb-act select:focus-visible{outline:2px solid var(--neon);outline-offset:2px}
.rb-out{margin-top:16px;border:1px solid rgba(212,255,0,.35);padding:12px 14px;background:rgba(212,255,0,.04);color:var(--muted);line-height:1.7;word-break:break-word}
.rb-out .op{color:var(--neon)}
.rb-live{margin-top:12px;font-size:11px;color:var(--dim)}
/* integration code */
.code{font-family:'JetBrains Mono',monospace;font-size:13px;line-height:1.9}
.code .step{margin-bottom:22px}
.code .s-label{color:var(--dim);font-size:11px;margin-bottom:6px;text-transform:uppercase;letter-spacing:.1em}
.code .s-code{color:var(--neon);background:var(--card);border:1px solid var(--border);padding:12px 16px;overflow-x:auto;white-space:pre}
.code .s-code .c{color:var(--faint)}
.plat{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;font-family:'JetBrains Mono',monospace;font-size:11px}
.plat span{border:1px solid var(--border);padding:5px 10px;color:var(--muted)}
/* ---------- deploy tabs ---------- */
.istep{display:flex;gap:16px;align-items:flex-start;padding:4px 0}
.istep .in{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--neon);flex:none;width:24px;padding-top:2px}
.istep b{display:block;color:var(--ink);font-size:15px;font-weight:600;margin-bottom:3px}
.istep small{color:var(--muted);font-size:13px;line-height:1.5}
.iline{height:16px;border-left:1px dashed var(--border);margin-left:11px}
/* ---------- coverage grid + catch wall + comparison ---------- */
.coverage{padding:72px 0 64px;border-top:1px solid var(--border)}
.coverage-head{text-align:center;max-width:680px;margin:0 auto 44px}
.coverage-head h2{font-size:clamp(30px,3.6vw,44px);font-weight:700;color:var(--ink);letter-spacing:-.025em;line-height:1.1;margin-bottom:14px}
.coverage-head p{color:var(--muted);font-size:16.5px;line-height:1.6}
.catgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:860px){.catgrid{grid-template-columns:1fr}}
.cat{border:1px solid var(--border);background:var(--panel);padding:22px 24px;transition:border-color .2s}
.cat:hover{border-color:rgba(255,69,58,.5)}
.cat h4{color:var(--ink);font-size:15.5px;font-weight:700;margin-bottom:8px}
.cat h4::before{content:'✗ ';color:var(--red);font-family:'JetBrains Mono',monospace}
.cat p{color:var(--muted);font-size:13.5px;line-height:1.6}
.cat p b{color:var(--neon);font-weight:600}
.cat.ok{border-color:rgba(212,255,0,.35);background:rgba(212,255,0,.03)}
.cat.ok:hover{border-color:var(--neon)}
.cat.ok h4::before{content:'✓ ';color:var(--neon)}
.compare{padding:72px 0;background:var(--panel);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px}
@media(max-width:1020px){.compare-grid{grid-template-columns:1fr}}
.compare h3{font-size:28px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1.15;margin-bottom:14px}
.compare .csub{color:var(--muted);font-size:15px;line-height:1.6;margin-bottom:30px}
.miss-card{padding:16px;border:1px solid var(--border);background:var(--bg);font-family:'JetBrains Mono',monospace;font-size:12px;margin-bottom:14px}
.miss-card .mh{display:flex;justify-content:space-between;gap:10px;color:var(--neon);margin-bottom:8px}
.miss-card .mw{color:var(--muted)}
.miss-card .mm{color:var(--dim);margin-top:8px}
.miss-card .mm b{color:var(--red);font-weight:500}
.cmp-tbl{border:1px solid var(--border);background:var(--bg);overflow-x:auto}
.cmp-tbl table{width:100%;border-collapse:collapse;text-align:left;min-width:460px}
.cmp-tbl th{padding:14px 16px;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--border)}
.cmp-tbl th.me{color:var(--neon);font-weight:700}
.cmp-tbl td{padding:12px 14px;font-size:12.5px;border-bottom:1px solid var(--border);color:var(--text2);white-space:nowrap}
.cmp-tbl tr:last-child td{border-bottom:none}
.cmp-tbl .y{color:var(--neon)}
.cmp-tbl .n{color:var(--dim)}
/* ---------- pricing band ---------- */
.pricing-band{border-top:1px solid var(--border);background:var(--panel);padding:56px 0}
.pricing-card{display:flex;align-items:center;gap:48px;flex-wrap:wrap}
.pricing-lead{flex:1;min-width:260px}
.pricing-lead h2{font-size:28px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1.15;margin-top:10px}
.price-stat strong{display:block;font-family:'JetBrains Mono',monospace;font-size:24px;font-weight:700;color:var(--neon)}
.price-stat span{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.12em;font-family:'JetBrains Mono',monospace}
/* ---------- faq ---------- */
.faq{padding:72px 0 80px;border-top:1px solid var(--border)}
.faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:start}
@media(max-width:960px){.faq-grid{grid-template-columns:1fr;gap:32px}}
.faq h2{font-size:clamp(28px,3.4vw,40px);font-weight:700;color:var(--ink);letter-spacing:-.025em;line-height:1.12}
.faq .fsub{color:var(--muted);font-size:15.5px;line-height:1.6;margin-top:14px}
.faq-list{border-top:1px solid var(--border)}
.faq-list details{border-bottom:1px solid var(--border)}
.faq-list summary{display:flex;align-items:baseline;gap:16px;padding:18px 4px;cursor:pointer;list-style:none;color:var(--ink);font-size:15.5px;font-weight:500}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .qn{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--neon);flex:none}
.faq-list summary .plus{margin-left:auto;color:var(--dim);font-family:'JetBrains Mono',monospace;transition:transform .2s;flex:none}
.faq-list details[open] summary .plus{transform:rotate(45deg);color:var(--neon)}
.faq-list .fa{padding:0 4px 20px 39px;color:var(--muted);font-size:14px;line-height:1.65}
/* ============ 3-COL VALUE GRID ============ */
.grid3{padding:72px 0}
.grid3-head{max-width:640px;margin-bottom:40px}
.grid3-head h2{font-size:36px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-bottom:14px;line-height:1.15}
.grid3-head p{color:var(--muted);font-size:17px;line-height:1.6}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.g3 .cell{border:1px solid var(--border);background:var(--panel);padding:28px;transition:border-color .2s}
.g3 .cell:hover{border-color:var(--neon)}
.g3 h4{color:var(--ink);font-size:19px;font-weight:700;margin:14px 0 12px}
.g3 p{color:var(--muted);font-size:14.5px;line-height:1.65}
.g3 .ic{font-family:'JetBrains Mono',monospace;color:var(--neon);font-size:13px}
/* ---------- live proof (dare) ---------- */
.proof{padding:64px 0;border-bottom:1px solid var(--border)}
.dare-band{display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:center;border:1px solid var(--border);background:
  radial-gradient(ellipse 60% 120% at 12% 50%,rgba(212,255,0,.07),transparent 65%),var(--panel);
  padding:34px 40px}
@media(max-width:960px){.dare-band{grid-template-columns:1fr;text-align:center;gap:20px}}
.dare-band .pct{font-family:'JetBrains Mono',monospace;font-size:clamp(54px,6vw,80px);font-weight:700;color:var(--neon);letter-spacing:-.05em;line-height:1}
.dare-band h2{font-size:21px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-bottom:8px}
.dare-band p{color:var(--muted);font-size:14px;line-height:1.6}
.dare-band p b{color:var(--ink);font-weight:600}
.marquee{border:1px solid var(--border);border-top:none;overflow:hidden;background:var(--panel)}
.mq-track{display:flex;gap:44px;width:max-content;padding:12px 0;animation:mq 30s linear infinite;font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--muted);white-space:nowrap}
.mq-track span b{color:var(--neon);font-weight:700;margin-right:7px}
.mq-track .mq-label{color:var(--dim)}
@keyframes mq{to{transform:translateX(-50%)}}
/* ---------- collaborative intelligence / bird's-eye ---------- */
.intel{padding:0 0 72px}
.intel .row2{border-bottom:none;padding:48px 0 0}
.eye{position:relative;border:1px solid var(--border);background:var(--panel);overflow:hidden}
.eye canvas{display:block;width:100%;height:440px}
@media(max-width:640px){.eye canvas{height:340px}}
.eye-hud{position:absolute;inset:0;pointer-events:none;font-family:'JetBrains Mono',monospace}
.hud-tl{position:absolute;top:16px;left:18px}
.hud-tr{position:absolute;top:16px;right:18px;text-align:right}
.hud-k{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.hud-v{font-size:20px;font-weight:700;color:var(--neon);margin-top:2px}
.hud-v.red{color:var(--red)}
.eye-legend{position:absolute;bottom:14px;left:18px;display:flex;gap:16px;font-size:10.5px;color:var(--dim)}
.eye-legend span{display:flex;align-items:center;gap:6px}
.eye-legend i{width:7px;height:7px;border-radius:50%;flex:none}
.lg-clean{background:var(--clean-dot)}
.lg-flag{background:var(--red)}
.lg-link{background:var(--neon-solid)}
/* ---------- fraud-ring dotgrid ---------- */
.dotgrid{display:grid;grid-template-columns:repeat(14,1fr);gap:5px;margin-top:16px}
.dotgrid i{aspect-ratio:1;background:var(--dot-idle);transition:background .3s}
.dotgrid i.hot{background:var(--red)}
.dotgrid i.one{background:var(--neon-solid)}
.dg-cap{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--dim);margin-top:8px;text-transform:uppercase;letter-spacing:.1em}
/* ---------- hero verdict scan beam ---------- */
.kv{position:relative;overflow:hidden}
.kv .vscan{position:absolute;left:0;right:0;top:-30%;height:34%;background:linear-gradient(transparent,var(--scan),transparent);animation:scanDown 4.5s linear infinite;pointer-events:none}
@keyframes scanDown{from{transform:translateY(-100%)}to{transform:translateY(420%)}}
/* ---------- final cta ---------- */
.final{padding:110px 24px;text-align:center;border-top:1px solid var(--border);position:relative;overflow:hidden;background:
  radial-gradient(ellipse 55% 80% at 50% 100%,rgba(212,255,0,.11),transparent 68%),
  linear-gradient(to right,var(--grid-line) 1px,transparent 1px),
  linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px),var(--bg);
  background-size:auto,40px 40px,40px 40px}
.final::before{content:'TRAFFICARMOR';position:absolute;left:50%;bottom:-3vw;transform:translateX(-50%);
  font:700 clamp(80px,16vw,230px)/1 'Space Grotesk',sans-serif;letter-spacing:-.08em;color:var(--watermark);white-space:nowrap;pointer-events:none}
.final>*{position:relative;z-index:1}
.final .fkicker{font:600 10.5px/1 'JetBrains Mono',monospace;color:var(--neon);letter-spacing:.18em;text-transform:uppercase;margin-bottom:17px}
.final h2{font-size:clamp(43px,6.6vw,83px);line-height:.98;letter-spacing:-.055em;color:var(--ink);max-width:1000px;margin:0 auto 22px;text-wrap:balance}
.final h2 span{color:var(--neon)}
.final .final-sub{font-size:17px;line-height:1.6;color:var(--muted);max-width:650px;margin:0 auto 32px}
.final .hero-actions{justify-content:center;margin-bottom:16px}
.final-micro{font:400 9.5px/1.5 'JetBrains Mono',monospace;color:var(--dim);letter-spacing:.08em;text-transform:uppercase}
/* ---------- scroll progress ---------- */
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--neon-solid);z-index:1000;box-shadow:0 0 14px rgba(212,255,0,.7)}
/* ---------- mobile conversion dock ---------- */
.mobile-dock{display:none;position:fixed;left:0;right:0;bottom:0;z-index:120;background:var(--dock-bg);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:10px 12px;gap:8px}
.mobile-dock a{flex:1;text-align:center;padding:12px 8px;font-size:12px}
@media(max-width:720px){.mobile-dock{display:flex}body{padding-bottom:62px}}
/* ---------- footer ---------- */
/* Sticky footer. Short pages — the coming-soon tools, a 404 — left the footer floating
   in the middle of the viewport with the background showing beneath it. body becomes a
   flex column at full viewport height and the footer takes the slack, so it sits at the
   bottom when the content is short and flows normally when it is not.

   Not position:absolute/fixed: that takes the footer out of flow, so on a long page it
   would overlap the content instead of following it. margin-top:auto only consumes
   space that is actually spare.

   .scroll-progress and .ambient are fixed/absolute and out of flow, so they are
   unaffected by the flex context. */
html{height:100%}
body{display:flex;flex-direction:column;min-height:100vh}
footer{margin-top:auto;border-top:1px solid var(--border);background:var(--panel)}
.foot{max-width:var(--w);margin:0 auto;padding:56px 24px 40px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
@media(max-width:860px){.foot{grid-template-columns:1fr 1fr}}
.foot h4{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.foot a{display:block;font-size:14px;color:var(--muted);padding:5px 0;transition:color .15s}
.foot a:hover{color:var(--neon)}
.foot .blurb{font-size:13px;color:var(--dim);line-height:1.6;margin-top:14px;max-width:280px}
.footbar{border-top:1px solid var(--border);font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--dim);padding:20px 24px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:var(--w);margin:0 auto}
/* Coming-soon pages (the tools). Deliberately reuses the site chrome — nav, footer,
   stylesheet — rather than the standalone one-off the blog page is, so a visitor who
   lands here can still get anywhere and the page is not a dead end. */
.soon{min-height:56vh;display:flex;align-items:center;justify-content:center;padding:80px 22px;position:relative;background-image:linear-gradient(to bottom,transparent 55%,var(--bg) 100%),linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:100% 100%,40px 40px,40px 40px;}
.soon-inner{max-width:620px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}
.soon-tag{font:700 10px/1 'JetBrains Mono',monospace;letter-spacing:.16em;text-transform:uppercase;
  color:var(--neon);border:1px solid var(--neon);padding:6px 10px}
.soon h1{font-size:clamp(30px,4.4vw,46px);font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.soon p{color:var(--muted);font-size:15.5px;line-height:1.7}
.soon .soon-note{color:var(--dim);font-size:13.5px}
.soon-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:8px}

/* The partners form sits in the page rather than a modal, so it needs a width of its
   own — the .cfield styles it borrows from the contact modal are sized by the modal
   panel. Left-aligned inside a centred .soon block, because a form with centred labels
   is harder to scan than one with a straight left edge. */
.pform{width:100%;max-width:560px;margin:26px auto 0;text-align:left}
.pform .cform-foot{margin-top:18px}
@media(max-width:560px){.pform .cfield-row{grid-template-columns:1fr}}

/* Footer link accents.

   Both sit inline inside the anchor rather than turning .foot a into a flex row, so the
   other twenty links in the footer keep the layout they already had.

   24/7 is an outlined pill, the same idiom as .pill-threat and the dashboard's own 24/7
   badge. The $ is a bare glyph, not a second pill: two badges side by side in one column
   would read as noise, and the dollar only needs to catch the eye, not label anything.

   Light mode uses a darker green than --neon. #66821A on the cream panel measures
   4.14:1, under AA at 9px; #4A5F13 is 6.72:1. */
.ft-tag{display:inline-block;margin-left:8px;vertical-align:1px;
  font:700 9px/1 'JetBrains Mono',monospace;letter-spacing:.12em;
  color:var(--neon);
  border:1px solid color-mix(in srgb,var(--neon-solid) 34%,transparent);
  background:color-mix(in srgb,var(--neon-solid) 9%,transparent);
  padding:3px 6px}
.ft-earn{display:inline-block;margin-left:7px;
  font:700 14px/1 'JetBrains Mono',monospace;color:var(--neon)}
.foot a:hover .ft-tag,.foot a:hover .ft-earn{color:var(--neon)}
[data-theme="light"] .ft-tag{color:#4A5F13;
  border-color:color-mix(in srgb,#4A5F13 28%,transparent)}
[data-theme="light"] .ft-earn{color:#4A5F13}

/* Legal in the small print. Sits between the copyright and the status so the row reads
   left to right as ownership, terms, state — and wraps as a block on narrow screens
   rather than pushing the status line off the end. Same mono voice and dim tone as its
   neighbours, so it registers as small print rather than navigation. */
/* This is a <nav>, which is right semantically but means the site's top-bar rule
   applies to it: nav{position:sticky;top:0;z-index:100;background:var(--nav-bg);
   backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}. That gave the
   legal row a sticky, blurred, backgrounded bar of its own inside the footer — dark in
   dark mode where it hid against the panel, and visible the moment the theme changed.
   Undone explicitly rather than by dropping the element: the semantics are worth
   keeping. */
.footlegal{position:static;top:auto;z-index:auto;background:none;backdrop-filter:none;
  border-bottom:none;box-shadow:none;
  display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;justify-content:center}
.footlegal a{color:var(--dim);transition:color .15s}
.footlegal a:hover{color:var(--neon)}
@media(max-width:760px){
  .footbar{flex-direction:column;gap:12px;text-align:center}
  .footlegal{order:3}
}
.footbar .status{color:var(--neon);display:flex;align-items:center;gap:7px}
.footbar .status i{width:6px;height:6px;background:var(--neon-solid);border-radius:50%;animation:pulse 1.4s infinite}
/* ---------- ambient pointer glow + card spotlights ---------- */
.ambient{position:fixed;z-index:-1;left:0;top:0;width:480px;height:480px;border-radius:50%;
  background:radial-gradient(circle,var(--ambient),transparent 68%);
  transform:translate(calc(var(--mx,50vw) - 50%),calc(var(--my,20vh) - 50%));
  pointer-events:none;will-change:transform}
.viz,.cat,.cell,.miss-card{position:relative;overflow:hidden}
.viz::before,.cat::before,.cell::before,.miss-card::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(280px circle at var(--spot-x,50%) var(--spot-y,50%),rgba(212,255,0,.07),transparent 62%);
  opacity:0;transition:opacity .25s}
.viz:hover::before,.cat:hover::before,.cell:hover::before,.miss-card:hover::before{opacity:1}
/* staggered card reveals */
.reveal .cat,.reveal .cell,.reveal .miss-card{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal.in .cat,.reveal.in .cell,.reveal.in .miss-card{opacity:1;transform:none}
.reveal.in .cat:nth-child(2),.reveal.in .cell:nth-child(2){transition-delay:.08s}
.reveal.in .cat:nth-child(3),.reveal.in .cell:nth-child(3){transition-delay:.16s}
.reveal.in .cat:nth-child(4){transition-delay:.24s}
.reveal.in .cat:nth-child(5){transition-delay:.32s}
.reveal.in .cat:nth-child(6){transition-delay:.4s}
.reveal.in .miss-card:nth-of-type(2){transition-delay:.1s}
.reveal.in .miss-card:nth-of-type(3){transition-delay:.2s}
/* reveal on scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media(max-width:960px){
  .row2{grid-template-columns:1fr;gap:36px}
  .row2.flip .viz{order:2}
  .g3{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .g3{grid-template-columns:1fr}
}
/* ---------- responsive fixes ---------- */
.row2>*,.compare-grid>*,.console-grid>*,.dare-band>*,.g3>*,.catgrid>*,.foot>*,.proof .wrap>*{min-width:0}
.viz.dash{overflow-x:auto}
@media(max-width:700px){
  .cmp-tbl table{min-width:0}
  .cmp-tbl td{white-space:normal}
  .cmp-tbl td:first-child{min-width:110px}
  .dash table{font-size:10.5px}
  .dare-band{padding:28px 22px}
  .compare-grid{gap:44px}
}
/* light mode: nav stays dark instrument chrome */
[data-theme="light"] nav{
  --nav-bg:rgba(0,0,0,.88); --nav-bg2:rgba(0,0,0,.96);
  --border:#222222; --panel:#0A0A0A; --card:#111111;
  --ink:#FFFFFF; --text:#E5E7EB; --muted:#9CA3AF; --dim:#6B7280;
  --neon:#D4FF00; --pop-shadow:0 24px 60px rgba(0,0,0,.6);
  --btn-hover-bg:#fff; --btn-hover-fg:#000; --bg:#000000;
}
/* nav shadow once scrolled */
nav{transition:box-shadow .25s}
nav.scrolled{box-shadow:0 10px 34px rgba(0,0,0,.35)}
[data-theme="light"] nav.scrolled{box-shadow:0 10px 34px rgba(0,0,0,.35)}
/* keyboard focus */
a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible{outline:2px solid var(--neon-solid);outline-offset:2px}
/* ---------- modals ---------- */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:flex-start;justify-content:center;padding:6vh 20px 40px;overflow-y:auto;background:rgba(0,0,0,.62);backdrop-filter:blur(6px)}
[data-theme="light"] .modal{background:rgba(40,36,22,.45)}
.modal.open{display:flex}
.modal-panel{width:100%;max-width:600px;background:var(--panel);border:1px solid var(--border);box-shadow:var(--pop-shadow);opacity:0;transform:translateY(18px);transition:opacity .25s ease,transform .25s ease}
.modal.open .modal-panel{opacity:1;transform:none}
.modal-panel.wide{max-width:760px}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px;border-bottom:1px solid var(--border)}
.modal-head .mk{font:600 10.5px/1 'JetBrains Mono',monospace;color:var(--neon);letter-spacing:.18em;text-transform:uppercase}
.modal-close{border:none;background:none;color:var(--dim);font:400 22px/1 'JetBrains Mono',monospace;cursor:pointer;padding:2px 6px;transition:color .15s}
.modal-close:hover{color:var(--red)}
.modal-body{padding:26px 24px 30px}
.modal-body h3{font-size:26px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-bottom:8px}
.modal-body .msub{color:var(--muted);font-size:14.5px;line-height:1.6;margin-bottom:24px}
/* contact form */
.cfield{margin-bottom:16px}
.cfield label{display:block;font:500 10.5px/1 'JetBrains Mono',monospace;color:var(--dim);letter-spacing:.14em;text-transform:uppercase;margin-bottom:7px}
.cfield input,.cfield select,.cfield textarea{width:100%;background:var(--card);border:1px solid var(--border);color:var(--text);font-family:'Space Grotesk',sans-serif;font-size:14.5px;padding:11px 13px;transition:border-color .15s}
.cfield input:focus,.cfield select:focus,.cfield textarea:focus{outline:none;border-color:var(--neon)}
.cfield textarea{min-height:120px;resize:vertical}
.cfield-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.cfield-row{grid-template-columns:1fr}}
.cform-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:22px}
.cform-note{font:400 11px/1.6 'JetBrains Mono',monospace;color:var(--dim)}
.cform-note a{color:var(--neon);border-bottom:1px solid var(--neon)}
/* terms */
.terms-body{max-height:62vh;overflow-y:auto;padding-right:8px}
.terms-body h4{font-size:15px;font-weight:700;color:var(--ink);margin:22px 0 8px}
.terms-body h4:first-child{margin-top:0}
.terms-body p{color:var(--muted);font-size:13.5px;line-height:1.7;margin-bottom:10px}
.terms-updated{font:400 11px/1 'JetBrains Mono',monospace;color:var(--dim);margin-bottom:20px}
/* mobile Tools group */
.nav-mobile-group{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:13px 0;font-size:15px;font-family:inherit;color:var(--muted);background:none;border:none;border-bottom:1px solid var(--border);cursor:pointer;transition:color .15s}
.nav-mobile-group:hover{color:var(--neon)}
.nav-mobile-group .caret{font-size:11px;transition:transform .2s}
.nav-mobile-group[aria-expanded="true"] .caret{transform:rotate(180deg)}
.nav-mobile-sub{display:none;flex-direction:column;border-bottom:1px solid var(--border)}
.nav-mobile-sub.open{display:flex}
.nav-mobile-sub a{padding:11px 0 11px 16px;font-size:14px;border-bottom:none}
.nav-mobile-sub a:last-child{padding-bottom:14px}
.logo-mark{width:16px;height:23px;background:none;clip-path:none}
.logo-mark::after{display:none}
/* ---------- logo lockup ---------- */
.logo-lockup{zoom:.14;display:block}
@media(max-width:820px){.logo-lockup{zoom:.12}}
@media(max-width:480px){.logo-lockup{zoom:.105}}
/* light mode: mobile dock matches dark nav chrome */
[data-theme="light"] .mobile-dock{
  --dock-bg:rgba(0,0,0,.92); --border:#222222; --ink:#FFFFFF; --muted:#9CA3AF; --neon:#D4FF00;
  --btn-hover-bg:#fff; --btn-hover-fg:#000;
}
.cform-status{flex-basis:100%;font-size:13px;margin-top:10px;min-height:18px}
.cform-status.ok{color:var(--neon)}
.cform-status.err{color:var(--red)}
/* ---------- subpage shell: page hero ---------- */
.page-hero{position:relative;text-align:center;padding:76px 0 56px;
  background-image:linear-gradient(to bottom,transparent 55%,var(--bg) 100%),linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);
  background-size:100% 100%,40px 40px,40px 40px;border-bottom:1px solid var(--border)}
.page-hero::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(212,255,0,.06),transparent 65%)}
.page-hero .wrap{position:relative;z-index:1}
.ph-title{font-size:clamp(36px,5vw,58px);font-weight:700;line-height:1.05;letter-spacing:-.03em;color:var(--ink);margin-bottom:18px}
.ph-sub{font-size:clamp(15px,1.8vw,18px);color:var(--muted);max-width:640px;margin:0 auto;line-height:1.6}
.ph-sub strong{color:var(--ink);font-weight:600}
/* ---------- plans: vertical table (desktop) ---------- */
.plans-sec{padding:64px 0 56px}
.vt{display:none;border:1px solid var(--border);background:var(--panel)}
.vt table{width:100%;border-collapse:collapse;table-layout:fixed}
.vt th,.vt td{border-bottom:1px solid var(--border);border-left:1px solid var(--border);padding:13px 12px;text-align:center;font-size:13.5px;color:var(--text2)}
.vt th:first-child,.vt td:first-child{border-left:none}
.vt td.tl,.vt th.tl{text-align:left;color:var(--dim);width:148px;font:400 10.5px/1.5 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase}
.vt thead th{vertical-align:bottom;padding:24px 12px 18px;position:relative;background:var(--card)}
.vt-name{font:700 11px/1 'JetBrains Mono',monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.vt th.hot .vt-name{color:var(--neon)}
.vt-price{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:22px;color:var(--ink);letter-spacing:-.02em}
.vt-price small{font-size:11px;color:var(--dim);font-weight:400}
.vt-badge{position:absolute;top:0;left:0;right:0;text-align:center;padding:4px 0}
.vt .ck{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--neon)}
.vt td.hot,.vt th.hot{background:var(--card)}
.vt th.hot{box-shadow:inset 0 2px 0 var(--neon-solid)}
.vt tbody tr:hover td{background:rgba(212,255,0,.03)}
.vt tbody tr:hover td.hot{background:var(--card)}
.vt tfoot td{padding:16px 10px;border-bottom:none}
.vt tfoot a{display:block;text-align:center;padding:10px 6px;font-size:12px}
.pt-badge{background:var(--neon-solid);color:#000;font:700 8.5px/1 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;padding:4px 7px}
/* ---------- plans: stacked cards (mobile) ---------- */
.pt{display:flex;flex-direction:column;gap:14px}
.pt-head{display:none}
.pt-row{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;align-items:center;border:1px solid var(--border);background:var(--panel);padding:20px;font-size:14px;color:var(--text2)}
.pt-row.hot{outline:1px solid var(--neon-solid);outline-offset:-1px}
.pt-row>div[data-l]::before{content:attr(data-l);display:block;font:400 9.5px/1 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:4px}
.pt-name{grid-column:1/-1;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pt-name::before{display:none!important}
.pt-clicks{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--neon)}
.pt-price{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:17px;color:var(--ink)}
.pt-price small{font-size:11px;color:var(--dim);font-weight:400}
.pt-cta{grid-column:1/-1}
.pt-cta a{display:block;width:100%;text-align:center;padding:12px;font-size:12.5px}
.pt-vol{border:none;background:none;padding:4px 2px}
.pt-volnote{grid-column:1/-1;font:400 10px/1.4 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
@media(min-width:1020px){
  .vt{display:block}
  .pt{display:none}
}
.pt-notes{margin-top:22px}
.pt-notes p{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--dim);line-height:1.7;margin-bottom:4px}
.pl-custom{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border:1px solid var(--border);border-top:none;background:var(--panel);padding:18px 28px;color:var(--muted);font-size:14.5px}
.pl-custom b{color:var(--ink);font-weight:600}
@media(max-width:1019.9px){.pl-custom{border-top:1px solid var(--border);margin-top:14px}}
/* ---------- never-expire band ---------- */
.expire-band{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel);padding:48px 0}
.expire-in{display:flex;align-items:center;gap:36px}
@media(max-width:700px){.expire-in{flex-direction:column;text-align:center;gap:18px}}
.expire-inf{font-family:'JetBrains Mono',monospace;font-size:clamp(64px,8vw,96px);font-weight:700;color:var(--neon);line-height:1;flex:none}
.expire-in h2{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-bottom:8px}
.expire-in p{color:var(--muted);font-size:15px;line-height:1.65;max-width:640px}
.incl{padding:72px 0}
.nav-links a[aria-current="page"]{color:var(--neon)}
/* plan attribute rows + high volume + notes */
.pl-attrs{margin:22px 0 26px;flex:1}
.pl-attrs div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--border);font-size:13px}
.pl-attrs div:last-child{border-bottom:none}
.pl-attrs span{color:var(--dim)}
.pl-attrs b{color:var(--text);font-weight:500;font-family:'JetBrains Mono',monospace;font-size:12px;text-align:right}
.hv-head{max-width:640px;margin:64px 0 28px}
.hv-head h2{font-size:30px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1.15;margin:14px 0 12px}
.hv-head p{color:var(--muted);font-size:15.5px;line-height:1.65}
.pl-notes{margin-top:28px;font:400 12px/1.9 'JetBrains Mono',monospace;color:var(--dim)}
/* plan spec rows */

/* ---------- affiliates ---------- */
.ph-note{margin-top:16px;font:400 11px/1.6 'JetBrains Mono',monospace;color:var(--dim)}
.earn-sec{padding:64px 0 56px}
.earn{border:1px solid var(--border);background:var(--panel)}
.earn-row{display:grid;grid-template-columns:1.3fr 1fr 1.1fr 1fr;gap:12px;align-items:center;padding:15px 22px;border-bottom:1px solid var(--border);font-size:14.5px;color:var(--text2)}
.earn-row:last-child{border-bottom:none}
.earn-head{font:400 10px/1.4 'JetBrains Mono',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:13px 22px;background:var(--card)}
.en{font-weight:700;color:var(--ink);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ey{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--neon)}
.earn-row.hot{background:var(--card);box-shadow:inset 2px 0 0 var(--neon-solid)}
@media(max-width:700px){
  .earn-row{grid-template-columns:1fr 1fr;gap:8px 16px}
  .earn-head{display:none}
  .earn-row>div:nth-child(1){grid-column:1/-1}
}
.aff-prove{padding:8px 0 24px}
.etick{display:flex;flex-direction:column;gap:12px;min-height:250px;overflow:hidden;position:relative;font-family:'JetBrains Mono',monospace;font-size:12px}
.etick::after{content:'';position:absolute;left:0;right:0;bottom:0;height:80px;background:linear-gradient(to top,var(--panel),transparent);pointer-events:none}
.etick-row{display:flex;justify-content:space-between;gap:12px;animation:rowIn .35s ease}
.etick-row .ea{color:var(--neon);font-weight:700;flex:none}
.etick-row .ew{color:var(--text2);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.etick-row .et{color:var(--faint);flex:none}
.etick-foot{display:flex;justify-content:space-between;gap:12px;border-top:1px dashed var(--border);margin-top:14px;padding-top:14px;font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--dim);flex-wrap:wrap}
.etick-foot b{color:var(--neon);font-weight:700}
.etick-sum{color:var(--ink);font-weight:700}
.aff-terms{padding:8px 0 40px}
/* plan spec rows */

.logo-mark{width:16px;height:23px;background:none;clip-path:none}
