/* FilingPulse design system v2 — "the wire-service reading room."
   Institutional light broadsheet + an always-running monospace data layer.
   Iron rule: every animation communicates real pipeline state; nothing else moves.
   Motion budget (complete inventory): ticker scroll, stat count-up, EKG draw + live
   dot, table-row stagger, sparkline draw-in. All motion sits inside
   prefers-reduced-motion: no-preference. */

@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url("/fonts/ibm-plex-mono-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;
  src:url("/fonts/ibm-plex-mono-600.woff2") format("woff2")}

:root{
  --bg:#ffffff; --alt:#f7f9fb; --panel:#fafbfc; --ink:#101828; --muted:#5b6675; --faint:#8b95a5;
  --line:#e5e9f0; --brand:#1e40af; --brand-ink:#172f86; --brand-soft:#eef3fe;
  --buy:#067647; --sell:#b42318;
  --mono:"IBM Plex Mono",ui-monospace,"Cascadia Code",Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --ease-out:cubic-bezier(0.16,1,0.3,1); --dur-fast:150ms; --dur-med:300ms; --dur-slow:600ms;
}
*{margin:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:16px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.wrap{max-width:1408px;margin:0 auto;padding:0 36px}
@media(max-width:720px){.wrap{padding:0 20px}}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* Header */
.site-header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:58px;
  max-width:none;padding:0 28px}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:1.02rem;
  color:var(--ink);letter-spacing:-.01em;text-decoration:none}
.brand:hover{text-decoration:none}
.brand svg{display:block}
.site-nav{display:flex;align-items:center;gap:24px;
  font-family:var(--mono);font-size:.74rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.site-nav a{color:var(--muted)}
.site-nav a:hover{color:var(--ink);text-decoration:none}
.site-nav .nav-cta{color:var(--brand);border:1px solid var(--brand);border-radius:6px;padding:6px 13px}
.site-nav .nav-cta:hover{background:var(--brand);color:#fff}
@media(max-width:720px){.site-nav{gap:14px}.site-nav .hide-sm{display:none}}

/* Live status chip — every dot maps to a defined state (live | stale) */
.chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);
  font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.chip .dot{width:8px;height:8px;border-radius:50%;background:var(--buy);position:relative;flex:none}
.chip.stale .dot{background:var(--faint)}
@media (prefers-reduced-motion: no-preference){
  .chip:not(.stale) .dot::before{content:"";position:absolute;inset:0;border-radius:50%;
    background:var(--buy);animation:pulse 1.8s var(--ease-out) infinite}
}
@keyframes pulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(2.6);opacity:0}}

/* Ticker tape — real filings, duplicated track, seamless -50% translate */
.tape{border-bottom:1px solid var(--line);background:var(--panel);overflow:hidden;
  font-family:var(--mono);font-size:.76rem;white-space:nowrap;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent)}
.tape-track{display:inline-flex;width:max-content;padding:9px 0}
.tape-item{padding:0 26px;color:var(--muted);border-right:1px solid var(--line)}
.tape-item .tk{color:var(--brand);font-weight:600}
.tape-item .buy{color:var(--buy)}
.tape-item .sell{color:var(--sell)}
@media (prefers-reduced-motion: no-preference){
  .tape-track{animation:tick 70s linear infinite}
  .tape:hover .tape-track{animation-play-state:paused}
}
@media (prefers-reduced-motion: reduce){
  .tape{overflow-x:auto;mask-image:none;-webkit-mask-image:none}
  .tape-track[aria-hidden]{display:none}
}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Typography */
h1{font-size:clamp(2rem,4.4vw,2.85rem);line-height:1.1;letter-spacing:-.032em;font-weight:700}
h2{font-size:1.42rem;letter-spacing:-.02em;font-weight:700}
h3{font-size:1rem;font-weight:650}
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--brand)}
.lede{color:var(--muted);font-size:1.06rem;max-width:58ch}
.muted{color:var(--muted)}
.small{font-size:.86rem}

/* Buttons */
.btn{display:inline-block;padding:11px 20px;border-radius:7px;font-weight:600;
  font-size:.95rem;text-decoration:none;border:1px solid transparent;
  transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-ink)}
.btn-secondary{color:var(--ink);border-color:var(--line);background:#fff}
.btn-secondary:hover{border-color:var(--faint)}

/* Panels, corner registration marks, hero graph paper */
.panel{background:#fff;border:1px solid var(--line);border-radius:8px}
.marked{position:relative}
.marked .corner{position:absolute;width:9px;height:9px;pointer-events:none}
.marked .corner::before,.marked .corner::after{content:"";position:absolute;background:rgba(16,24,40,.35)}
.marked .corner::before{width:9px;height:1px;top:4px}
.marked .corner::after{width:1px;height:9px;left:4px}
.marked .c-tl{top:-5px;left:-5px}.marked .c-tr{top:-5px;right:-5px}
.marked .c-bl{bottom:-5px;left:-5px}.marked .c-br{bottom:-5px;right:-5px}
.graph-bg{position:absolute;inset:0;z-index:-1;
  background-image:linear-gradient(to right,rgba(30,64,175,.045) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(30,64,175,.045) 1px,transparent 1px);
  background-size:24px 24px;
  -webkit-mask-image:radial-gradient(ellipse 62% 58% at 38% 34%,#000 50%,transparent 100%);
  mask-image:radial-gradient(ellipse 62% 58% at 38% 34%,#000 50%,transparent 100%)}

/* Response panel (light terminal replacement) */
.resp{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.resp-route{font-family:var(--mono);font-size:.76rem;font-weight:600;color:var(--ink);
  padding:10px 16px;border-bottom:1px solid var(--line);background:#fff}
.resp-route .verb{color:var(--buy)}
.resp pre{padding:16px 18px;overflow-x:auto;font-family:var(--mono);font-size:.78rem;line-height:1.62;color:#3a4557}
.resp .k{color:var(--brand)}
.resp .s{color:#0f5132}
.resp .d{color:var(--faint)}
.resp-note{font-family:var(--mono);font-size:.72rem;color:var(--faint);
  border-top:1px solid var(--line);padding:9px 16px;background:#fff}

/* Data tables */
table.data{width:100%;border-collapse:collapse;font-size:.84rem}
table.data th{font-family:var(--mono);color:var(--faint);font-weight:600;font-size:.68rem;
  letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:9px 12px;
  border-bottom:1px solid var(--line)}
table.data td{padding:8px 12px;border-bottom:1px solid var(--line);vertical-align:top;
  font-family:var(--mono);font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}
table.data td.prose-cell{font-family:var(--sans);font-size:.86rem;white-space:normal;min-width:130px}
table.data tr:last-child td{border-bottom:none}
table.data tbody tr{box-shadow:inset 0 0 0 0 transparent}
table.data tbody tr:hover{background:var(--alt);box-shadow:inset 2px 0 0 0 var(--brand);
  transition:none}
table.data tbody tr{transition:background-color var(--dur-fast) ease-out,box-shadow var(--dur-fast) ease-out}
.tick{font-family:var(--mono);font-weight:600;font-size:.8rem;color:var(--brand)}
.t-buy{color:var(--buy)}
.t-sell{color:var(--sell)}
.skel td{color:transparent}
.skel .bar{display:inline-block;height:10px;border-radius:3px;background:var(--line);min-width:40px}
@media (prefers-reduced-motion: no-preference){
  .row-in{animation:rowin var(--dur-med) var(--ease-out) both}
  @keyframes rowin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
}

/* Pipeline diagram */
.pipe{display:grid;grid-template-columns:1fr 28px 1fr 28px 1fr;gap:0;align-items:stretch;margin-top:34px}
.pipe-stage{border:1px solid var(--line);border-radius:8px;background:#fff;padding:20px 22px}
.pipe-stage .eyebrow{display:block;margin-bottom:8px}
.pipe-stage p{color:var(--muted);font-size:.9rem;margin-top:6px}
.pipe-stage .mono-note{font-family:var(--mono);font-size:.72rem;color:var(--faint);margin-top:12px;
  border-top:1px solid var(--line);padding-top:10px}
.pipe-link{position:relative}
.pipe-link::before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--line)}
.pipe-link::after{content:"";position:absolute;top:50%;right:2px;width:6px;height:6px;
  border-top:1px solid var(--faint);border-right:1px solid var(--faint);
  transform:translateY(-50%) rotate(45deg)}
@media(max-width:860px){.pipe{grid-template-columns:1fr}.pipe-link{height:26px}
  .pipe-link::before{left:50%;right:auto;top:0;bottom:0;width:1px;height:auto}
  .pipe-link::after{left:50%;right:auto;top:auto;bottom:2px;
    transform:translateX(-50%) rotate(135deg)}}

/* Full-bleed volume band */
.band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);
  padding:34px 0 26px}
.band-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px}
.band-label{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted)}
.band-minmax{font-family:var(--mono);font-size:.72rem;color:var(--faint)}
#vol-chart{display:block;width:100%;height:96px;margin-top:14px}
#vol-chart rect{fill:var(--brand);opacity:.55}
#vol-chart rect.today{opacity:1}
#vol-chart rect:hover{opacity:.85}
@media (prefers-reduced-motion: no-preference){
  #vol-chart rect{transform-origin:bottom;animation:grow var(--dur-slow) var(--ease-out) both}
  @keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
}

/* Sections — vertical padding only; horizontal space always belongs to .wrap,
   so combining classes on one element can never strip the mobile side gutters */
.section{padding-top:64px;padding-bottom:64px}
.section-alt{background:var(--alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-tight{padding-top:36px;padding-bottom:36px}

/* Pricing — ruled comparison table, financial-print grammar */
table.pricing{width:100%;border-collapse:collapse;margin-top:28px;background:#fff;
  border:1px solid var(--line);font-size:.9rem}
table.pricing th,table.pricing td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line)}
table.pricing thead th{border-bottom:1px solid var(--ink)}
table.pricing th.tier-name{font-family:var(--mono);font-size:.74rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase}
table.pricing .price{font-family:var(--mono);font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}
table.pricing .price small{font-size:.72rem;color:var(--faint);font-weight:400}
table.pricing td{color:var(--muted);font-size:.86rem}
table.pricing td.row-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--faint)}
table.pricing .hot{background:var(--brand-soft)}
.notice{background:var(--brand-soft);border:1px solid #d6e2fb;color:var(--brand-ink);
  border-radius:8px;padding:12px 16px;font-size:.9rem;margin-top:20px}

/* Stacked pricing for phones — same ruled grammar, no sideways scroll */
.pricing-stack{display:none;margin-top:24px;border-top:1px solid var(--ink)}
.ptier{border-bottom:1px solid var(--line);padding:14px 4px}
.ptier-head{display:flex;justify-content:space-between;align-items:baseline}
.ptier-name{font-family:var(--mono);font-size:.76rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase}
.ptier-price{font-family:var(--mono);font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}
.ptier-price small{font-size:.72rem;color:var(--faint);font-weight:400}
.ptier p{color:var(--muted);font-size:.86rem;margin-top:4px}
.ptier.hot{background:var(--brand-soft);margin:0 -12px;padding:14px 12px;border-radius:8px;
  border-bottom:1px solid var(--line)}

/* Mobile rhythm: tighter sections, glanceable pricing, clean two-column splits */
@media(max-width:720px){
  .section{padding-top:42px;padding-bottom:42px}
  .section-tight{padding-top:28px;padding-bottom:28px}
  .band{padding:24px 0 18px}
  .pricing-scroll{display:none}
  .pricing-stack{display:block}
  .footer-cols{grid-template-columns:1fr 1fr;gap:22px;margin-bottom:22px}
  .footer-cols>div:nth-child(even):not(:first-child){justify-self:end;text-align:right}
  .site-footer{padding:32px 0 40px}
  .tape-item{padding:0 18px}
  .live-head{align-items:center}
  .docs table{display:block;overflow-x:auto;white-space:nowrap}
  .docs table td:last-child{white-space:normal;min-width:220px}
}

/* Changelog strip */
.log-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
.log-item{border-top:2px solid var(--ink);padding-top:12px}
.log-item time{font-family:var(--mono);font-size:.72rem;color:var(--faint);letter-spacing:.05em}
.log-item h3{margin:6px 0 4px;font-size:.95rem}
.log-item p{color:var(--muted);font-size:.86rem}
@media(max-width:720px){.log-strip{grid-template-columns:1fr}}

/* Code (inline, docs) */
code{font-family:var(--mono);font-size:.85em;background:var(--alt);
  border:1px solid var(--line);border-radius:4px;padding:1px 5px}
pre code{background:none;border:none;padding:0}
pre.term{background:#0d1526;color:#dbe4f3;border-radius:10px;padding:18px 20px;
  overflow-x:auto;font-family:var(--mono);font-size:.8rem;line-height:1.6;border:1px solid #1c2740}
pre.term .c{color:#5f6f8f}pre.term .k{color:#7aa5f8}pre.term .s{color:#67d19a}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:44px 0 52px;font-size:.88rem}
.footer-cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;margin-bottom:32px}
.site-footer h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--faint);margin-bottom:10px;font-weight:600}
.site-footer ul{list-style:none}
.site-footer li{margin:6px 0}
.site-footer a{color:var(--muted)}
.site-footer a:hover{color:var(--ink)}
.legal{color:var(--faint);font-size:.8rem;line-height:1.6;border-top:1px solid var(--line);padding-top:22px}
.legal p+p{margin-top:8px}
@media(max-width:720px){.footer-cols{grid-template-columns:1fr 1fr}}

/* Two-column document pages: sticky title rail left, content right */
.pagegrid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:72px;
  padding-top:64px;padding-bottom:80px;align-items:start}
.pagegrid>*,.docsgrid>*{min-width:0}
.pagehead{position:sticky;top:96px}
.pagehead .eyebrow{display:block;margin-bottom:10px}
.pagehead h1{font-size:1.9rem;letter-spacing:-.03em;line-height:1.15}
.pagehead .updated{color:var(--faint);font-size:.76rem;margin-top:14px;font-family:var(--mono);line-height:1.7}
.pagehead .pagenav{margin-top:26px;border-top:1px solid var(--line);padding-top:14px}
.pagehead .pagenav a{display:block;font-family:var(--mono);font-size:.72rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:5px 0}
.pagehead .pagenav a:hover{color:var(--ink);text-decoration:none}
.doc-body{max-width:860px}
.doc-body>h2:first-child{margin-top:0}
.doc-body h2{margin:38px 0 10px}
.doc-body p{color:#2c3648;margin:12px 0}
.doc-body ul{margin:12px 0 12px 22px;color:#2c3648}
.doc-body li{margin:6px 0}
@media(max-width:900px){.pagegrid{grid-template-columns:1fr;gap:26px}.pagehead{position:static}}

/* Docs page: sticky mono table of contents */
.docsgrid{display:grid;grid-template-columns:210px minmax(0,1fr);gap:64px;
  padding-top:48px;padding-bottom:80px;align-items:start}
.toc{position:sticky;top:96px}
.toc a{display:block;font-family:var(--mono);font-size:.72rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--muted);
  border-left:2px solid var(--line);padding:6px 0 6px 12px}
.toc a:hover{color:var(--ink);border-color:var(--brand);text-decoration:none}
@media(max-width:900px){.docsgrid{grid-template-columns:1fr;gap:20px}
  .toc{position:static;display:flex;flex-wrap:wrap;gap:2px 16px}
  .toc a{border-left:none;padding-left:0}}

/* Legacy prose (kept for any page not yet migrated) */
.prose{max-width:680px;padding-top:56px;padding-bottom:72px}
.prose h1{margin-bottom:10px}
.prose .updated{color:var(--faint);font-size:.85rem;margin-bottom:34px;font-family:var(--mono)}
.prose h2{margin:38px 0 10px}
.prose p{color:#2c3648;margin:12px 0}
.prose ul{margin:12px 0 12px 22px;color:#2c3648}
.prose li{margin:6px 0}
