{"compiledCode":"\"use strict\";Object.defineProperty(exports, \"__esModule\", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _react = require('react'); var _react2 = _interopRequireDefault(_react);\n\n function ProductPage() {\n  const d = {\"h1\":\"AI visibility tracker design brief\",\"intro\":\"A vendor-neutral specification for what an AI visibility tracker should measure, disclose, export, and refuse to promise. This is an evaluation brief, not a product offer.\",\"primaryCtas\":[{\"label\":\"Read the published methodology\",\"href\":\"/methodology\"},{\"label\":\"Compare tracker evaluation criteria\",\"href\":\"/tools\"}],\"notice\":\"RankRift does not build, operate, or sell a tracker. This page is a design and evaluation brief you can use to assess one, or to scope your own.\",\"inShort\":\"This page specifies a defensible recurring measurement loop: versioned prompts, repeated runs through supported interfaces, dated model and method records, raw evidence, sample size, and variance beside every figure. Use it to evaluate a vendor, scope an internal build, or decide that a spreadsheet remains sufficient.\",\"whoFor\":[\"In-house SEO and organic growth leads who need a defensible recurring number rather than a screenshot of one chat session\",\"Agency and consultant strategists measuring several client brands and categories on the same ruler each month\",\"Founders and heads of marketing who keep being asked why an assistant names a competitor and want a tracked answer instead of an anecdote\",\"Analytics and RevOps people who need exports and an API so AI-visibility data lands in the warehouse alongside everything else\",\"Skeptics evaluating whether any tracker's numbers are trustworthy, who want to read the method before they read the dashboard\"],\"whenToUse\":[\"When you already have a prompt set you believe reflects how buyers actually ask, and re-running it by hand has become the bottleneck\",\"When you need the same measurement repeated on a fixed cadence so a change over time means something\",\"When more than one person has to trust the number, and it has to survive being questioned in a meeting\",\"Not when you have never measured anything yet — start with the manual snapshot and the spreadsheet method instead\",\"Not when what you actually need is a one-off answer to a single question about one category\"],\"sections\":[{\"heading\":\"How to use this design brief\",\"paragraphs\":[\"Treat every capability below as a requirement to verify in a real implementation, not as a RankRift feature claim. Ask a vendor to demonstrate it with an export and a reproducible run.\",\"Nothing on this page is for sale, and there is no checkout, price, or waitlist. The brief stands on its own as a specification and purchasing checklist.\"],\"note\":\"If an implementation cannot demonstrate a listed capability, score that capability as absent rather than inferring it from marketing copy.\"},{\"heading\":\"What a defensible tracker specification includes\",\"paragraphs\":[\"A defensible tracker automates the measurement loop that the spreadsheet method describes: a fixed set of buyer-realistic prompts, run repeatedly, across several assistants, on a schedule, with the raw responses kept so any number can be traced back to the text it came from.\",\"A defensible implementation uses supported provider interfaces and records exactly which surface it measured, with model versions pinned and recorded. It should not scrape consumer interfaces, automate consumer accounts, or work around rate limits — that is a methodological position as much as a terms-of-service one, because a scraped session and an API call are not measuring the same thing.\"],\"bullets\":[{\"text\":\"Tracked prompt sets — versioned, dated, editable, and yours; build a set from the prompt-set patterns or bring your own\",\"href\":\"/competitive/prompt-sets\"},{\"text\":\"Scheduled multi-model runs — the same set executed across assistants on a cadence you choose, so runs are comparable to each other\"},{\"text\":\"Share-of-voice reporting — how often your brand appears in the answer set, next to which other brands, with the sample size and variance shown beside the figure\",\"href\":\"/measure\"},{\"text\":\"Citation-source reporting — which domains and pages the assistants actually drew on when they answered, aggregated across runs\"},{\"text\":\"Drift alerting — a flag when a tracked measurement moves beyond what run-to-run noise explains, rather than an alert on every wobble\",\"href\":\"/blog/variance-and-noise\"},{\"text\":\"Exports and an API — raw responses and computed metrics out in open formats, so your reporting is not trapped in the vendor's interface\",\"href\":\"/reporting\"}]},{\"heading\":\"What it does not do\",\"paragraphs\":[\"This section exists because most of the disappointment in this category comes from expectations no measurement product can meet. Read it before the feature list, not after.\",\"A tracker is an instrument. Instruments observe; they do not steer. Anyone selling you an instrument that also promises to move the thing it measures is selling you two products and can only deliver one.\"],\"bullets\":[{\"text\":\"It cannot control or guarantee what a model says about you. No product can. If a vendor implies otherwise, that is the moment to ask how\",\"href\":\"/get-recommended\"},{\"text\":\"It cannot prove causation. It can show that a measurement changed after you did something; model updates, seasonality, and competitor activity are all sitting in that gap\",\"href\":\"/blog/causal-claims\"},{\"text\":\"It cannot see inside a provider's ranking or retrieval system. A tracker observes outputs, so any story about why an answer changed is inference from outputs and should be labelled as such\"},{\"text\":\"It undercounts what providers do not expose — surfaces without API parity, unlinked mentions, personalization, and session context are all partially or entirely invisible to a tracker\",\"href\":\"/methodology\"},{\"text\":\"It does not replace judgement. A number tells you something moved; deciding whether that matters to your business is still your job\"},{\"text\":\"It is not a content service, an outreach service, or a placement service; a vendor that bundles placement with measurement is grading its own work\",\"href\":\"/risk\"}],\"note\":\"AI answers vary by model, phrasing, region, personalization, and date. A single answer is not a measurement, and no amount of dashboard polish changes that.\"},{\"heading\":\"You probably don't need this yet\",\"paragraphs\":[\"Most teams asking about a tracker have not yet established that they have a measurable problem, and buying an instrument before you know what you are measuring is how measurement programs die in month three.\",\"There is a cheaper sequence, and we would rather you ran it. If it tells you the gap is small, or that your prompt set was flattering you, you have saved yourself a subscription and learned more than a dashboard would have taught you.\"],\"bullets\":[{\"text\":\"Start with the manual snapshot for a sampled, honestly-bounded reading of whether you appear at all\",\"href\":\"/check\"},{\"text\":\"Then run the spreadsheet method end to end — it is genuinely viable and it teaches you the ruler\",\"href\":\"/measure\"},{\"text\":\"Work out how many runs you would actually need before a change is detectable at all\",\"href\":\"/measure/calculator\"},{\"text\":\"Use the on-page scorecard layout, checklists and templates and see how far manual measurement carries you\",\"href\":\"/resources\"},{\"text\":\"Read the build-versus-buy-versus-spreadsheet decision tree, in which \\\"not yet\\\" is a valid answer\",\"href\":\"/blog/build-buy-or-spreadsheet\"},{\"text\":\"Compare the categories of tool on criteria rather than on marketing, including when no tool fits\",\"href\":\"/tools\"}]},{\"heading\":\"Who a different approach suits better\",\"paragraphs\":[\"Use this section to decide when a different or simpler approach is the better fit.\"],\"bullets\":[{\"text\":\"A team measuring one brand in one category, once a quarter, is better served by a spreadsheet and an afternoon than by any subscription\",\"href\":\"/measure\"},{\"text\":\"A team whose real question is \\\"is anyone saying something false about us\\\" needs brand monitoring, which is a different job from visibility tracking\",\"href\":\"/blog/three-different-jobs\"},{\"text\":\"A team already paying for a suite that covers this adequately should exhaust that before adding a tool\",\"href\":\"/blog/enterprise-vs-lean-tools\"},{\"text\":\"A team with engineering capacity and unusual measurement needs may be better off building against the model APIs directly, using our published method as the spec\",\"href\":\"/methodology\"},{\"text\":\"A team that needs one deep, one-off answer about a category wants a research run, not a tracker\",\"href\":\"/research\"}]},{\"heading\":\"Evaluation criteria for an implementation\",\"paragraphs\":[\"Require these properties from any implementation you build or buy; verify each one in the interface, export, contract, and privacy documentation.\",\"Every reported number should ship with its prompt set, model identifiers, run dates, sample size, variance, and evidence access rules. Apply the same provenance requirements to every vendor and external study. The method behind the number stays public and ungated.\"],\"bullets\":[{\"text\":\"The methodology is published, versioned, and changelogged; method changes are documented before dependent numbers ship\",\"href\":\"/methodology\"},{\"text\":\"Provenance is attached to every figure, in the interface and in the export — not buried in a help article\"},{\"text\":\"Prompt sets and results should remain customer-controlled and exportable in open formats\"},{\"text\":\"Customer prompt sets and results should never appear in public research without written permission\",\"href\":\"/privacy-policy\"},{\"text\":\"Measurement uses supported, documented provider interfaces\",\"href\":\"/blog/api-vs-ui-scraping\"},{\"text\":\"A vendor publishes its limits and does not declare itself the winner of its own comparison\",\"href\":\"/disclosure\"}]}],\"related\":[{\"label\":\"The published measurement method\",\"href\":\"/methodology\"},{\"label\":\"Disclosure and independence\",\"href\":\"/disclosure\"},{\"label\":\"Evaluation criteria for AI-visibility tools\",\"href\":\"/tools\"},{\"label\":\"Measure it yourself first\",\"href\":\"/measure\"},{\"label\":\"Manual visibility snapshot\",\"href\":\"/check\"}],\"faqs\":[{\"q\":\"Is this a RankRift product or sales page?\",\"a\":\"No. RankRift does not build or sell a tracker. This page is a public design and evaluation brief: it describes what a defensible tracker should do, so you can hold any vendor, or your own build, to it.\"},{\"q\":\"Will a tracker make an assistant recommend us?\",\"a\":\"No, and be wary of anything that says otherwise. A tracker measures what assistants say; it has no mechanism to change it. What changes an assistant's answer is the underlying material an assistant draws on — entity clarity, presence in the sources that get cited, retrievability, genuine third-party coverage. Those are covered in the getting-recommended pillar, with honest labelling of which levers are measured, which are provider-documented, and which are still hypotheses.\"},{\"q\":\"Why measure through APIs instead of the interfaces buyers actually use?\",\"a\":\"Because a measurement has to be repeatable and attributable. Documented APIs can expose model identifiers and parameters and support a complete request-and-response record. Consumer-interface automation can produce numbers that are hard to reproduce and may conflict with provider terms. State the resulting coverage limit rather than papering over it with unsupported data.\"},{\"q\":\"How is this different from a rank tracker?\",\"a\":\"A rank tracker records the position of a URL for a query on a deterministic results page. An AI-visibility tracker samples a non-deterministic system: the same prompt can produce different brands on different runs, so a single observation is not a data point in the usual sense. That is why a tracker should show sample size and variance next to every figure, and why cadence and prompt-set design matter more than they do in classic rank tracking.\"},{\"q\":\"What should happen to customer prompt sets and results?\",\"a\":\"Treat them as competitively sensitive. A defensible service states ownership, retention, deletion, training-use, and export rules in its contract and privacy notice, and demonstrates that an export is usable before a customer depends on it.\"},{\"q\":\"What does a drift alert actually tell me?\",\"a\":\"That a tracked measurement has moved further than run-to-run noise comfortably explains, given your sample size. It does not tell you why. The cause could be a model update, a change in the sources being cited, a competitor's activity, or your own work finally landing. The alert is a prompt to investigate, not a conclusion — and separating those two things is most of what honest reporting in this category consists of.\"},{\"q\":\"What should an agency or multi-brand implementation add?\",\"a\":\"It should add isolated workspaces, versioned prompt sets per brand and category, comparable schedules, role controls, and a defensible report format. Verify those capabilities directly rather than accepting a roadmap promise.\"},{\"q\":\"How will I know if the tracker stops being worth it?\",\"a\":\"Open exports matter partly because they let you answer that yourself. If your measurements have gone flat, your category is stable, and nothing in your reporting cycle depends on the cadence any more, a quarterly manual run may be the right answer, and you can make that call with your own data in hand. Treat low lock-in as demonstrated only when leaving is genuinely easy.\"}],\"closingCtaHeading\":\"Read the method before evaluating a tracker\",\"closingCtaText\":\"The methodology is public and ungated. If a vendor's method does not convince you, its dashboard should not either.\",\"closingCtas\":[{\"label\":\"Read the methodology\",\"href\":\"/methodology\"},{\"label\":\"Use the manual snapshot\",\"href\":\"/check\"},{\"label\":\"How tracker categories are evaluated\",\"href\":\"/tools\"}]};\n  const btn = (kind) => ({\n    display: \"inline-block\",\n    padding: kind === \"primary\" ? \"11px 18px\" : \"9px 16px\",\n    margin: \"6px 10px 6px 0\",\n    borderRadius: 8,\n    textDecoration: \"none\",\n    fontWeight: 700,\n    fontSize: 15,\n    background: kind === \"primary\" ? \"#3d3f8c\" : \"transparent\",\n    color: kind === \"primary\" ? \"#ffffff\" : \"#3d3f8c\",\n    border: \"2px solid #3d3f8c\",\n  });\n  return (\n    _react2.default.createElement('div', { className: [\"np-rankrift\",\"rrpage\"].join(\" \"), 'aria-labelledby': \"rr-title\",}\n, _react2.default.createElement('style', null, \"\\n        .np-rankrift.rrpage{max-width:880px;margin:0 auto;padding:28px 20px 64px;color:#1a1f2b;\\n          font-family:var(--cdqcat5-font-body, \\\"DM Sans\\\", Arial, sans-serif);\\n          line-height:1.62;font-size:17px}\\n        .np-rankrift.rrpage h1{font-size:2rem;line-height:1.2;margin:0 0 12px}\\n        .np-rankrift.rrpage h2{font-size:1.35rem;line-height:1.3;margin:36px 0 10px}\\n        .np-rankrift.rrpage p{margin:0 0 14px}\\n        .np-rankrift.rrpage ul{margin:0 0 16px;padding-left:22px}\\n        .np-rankrift.rrpage li{margin:0 0 8px}\\n        .np-rankrift.rrpage a{color:#33368a}\\n        .np-rankrift .rr-intro{font-size:1.16rem;color:#39414f}\\n        .np-rankrift .rr-callout{background:#f2f3fb;border-left:4px solid #3d3f8c;padding:12px 16px;border-radius:6px;margin:6px 0 16px;font-size:0.98rem}\\n        .np-rankrift.rrpage details{border:1px solid #e3e5ef;border-radius:8px;padding:10px 14px;margin:0 0 10px;background:#fbfbfe}\\n        .np-rankrift.rrpage summary{cursor:pointer;font-weight:600}\\n        .np-rankrift.rrpage details p{margin:10px 0 2px}\\n        .np-rankrift .rr-ctarow{margin:16px 0 10px}\\n        @media (max-width:560px){.np-rankrift.rrpage{font-size:16px;padding:22px 16px 56px}.np-rankrift.rrpage h1{font-size:1.6rem}}\\n      \")\n\n      , _react2.default.createElement('h1', { id: \"rr-title\",}, d.h1)\n      , _react2.default.createElement('p', { className: \"rr-intro\",}, d.intro)\n      , _react2.default.createElement('div', { className: \"rr-ctarow\",}\n        , d.primaryCtas.map((c, i) => (\n          _react2.default.createElement('a', { key: i, href: c.href, style: btn(i === 0 ? \"primary\" : \"ghost\"),}, c.label)\n        ))\n      )\n\n      , d.notice ? _react2.default.createElement('div', { className: \"rr-callout\",}, d.notice) : null\n\n      , d.inShort ? (\n        _react2.default.createElement('section', { 'aria-label': \"In short\" ,}\n          , _react2.default.createElement('h2', null, \"In short\" )\n          , _react2.default.createElement('p', null, d.inShort)\n        )\n      ) : null\n\n      , d.whoFor && d.whoFor.length ? (\n        _react2.default.createElement('section', { 'aria-label': \"Who this is for\"   ,}\n          , _react2.default.createElement('h2', null, \"Who this is for\"   )\n          , _react2.default.createElement('ul', null, d.whoFor.map((x, i) => _react2.default.createElement('li', { key: i,}, x)))\n        )\n      ) : null\n\n      , d.whenToUse && d.whenToUse.length ? (\n        _react2.default.createElement('section', { 'aria-label': \"When to use this\"   ,}\n          , _react2.default.createElement('h2', null, \"When to use this\"   )\n          , _react2.default.createElement('ul', null, d.whenToUse.map((x, i) => _react2.default.createElement('li', { key: i,}, x)))\n        )\n      ) : null\n\n      , d.sections.map((s, i) => (\n        _react2.default.createElement('section', { key: i,}\n          , _react2.default.createElement('h2', { id: s.heading.toLowerCase().replace(/[^a-z0-9]+/g, \"-\").replace(/^-|-$/g, \"\"),}, s.heading)\n          , (s.paragraphs || []).map((p, j) => _react2.default.createElement('p', { key: j,}, p))\n          , s.bullets && s.bullets.length ? (\n            _react2.default.createElement('ul', null\n              , s.bullets.map((b, j) => (\n                _react2.default.createElement('li', { key: j,}, b.href ? _react2.default.createElement('a', { href: b.href,}, b.text) : b.text)\n              ))\n            )\n          ) : null\n          , s.note ? _react2.default.createElement('div', { className: \"rr-callout\",}, s.note) : null\n        )\n      ))\n\n      , d.related && d.related.length ? (\n        _react2.default.createElement('section', { 'aria-label': \"Related pages\" ,}\n          , _react2.default.createElement('h2', null, \"Related pages\" )\n          , _react2.default.createElement('ul', null, d.related.map((r, i) => _react2.default.createElement('li', { key: i,}, _react2.default.createElement('a', { href: r.href,}, r.label))))\n        )\n      ) : null\n\n      , d.faqs && d.faqs.length ? (\n        _react2.default.createElement('section', { 'aria-label': \"Frequently asked questions\"  ,}\n          , _react2.default.createElement('h2', null, \"Frequently asked questions\"  )\n          , d.faqs.map((f, i) => (\n            _react2.default.createElement('details', { key: i,}\n              , _react2.default.createElement('summary', null, f.q)\n              , _react2.default.createElement('p', null, f.a)\n            )\n          ))\n        )\n      ) : null\n\n      , _react2.default.createElement('section', { 'aria-label': \"Next step\" ,}\n        , _react2.default.createElement('h2', null, d.closingCtaHeading)\n        , _react2.default.createElement('p', null, d.closingCtaText)\n        , _react2.default.createElement('div', { className: \"rr-ctarow\",}\n          , d.closingCtas.map((c, i) => (\n            _react2.default.createElement('a', { key: i, href: c.href, style: btn(i === 0 ? \"primary\" : \"ghost\"),}, c.label)\n          ))\n        )\n      )\n\n, _react2.default.createElement('style', null, \"\\n.np-rankrift{--np-paper:#eef0ef;--np-ink:#2b3439;--np-accent:#c8ccd9;box-sizing:border-box;max-width:none!important;width:100%;min-height:100vh;background:var(--np-paper)!important;color:var(--np-ink)!important;margin:0!important;padding:0 clamp(20px,5vw,72px) 72px!important;font-family:var(--cdqcat5-font-body, \\\"DM Sans\\\", Arial, sans-serif)!important;font-size:17px!important;line-height:1.75!important;overflow-wrap:anywhere}\\n.np-rankrift *{box-sizing:border-box;min-width:0}.np-rankrift>*{max-width:1080px;margin-left:auto;margin-right:auto}.np-rankrift .np-topbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;margin-bottom:52px;border-bottom:1px solid var(--np-ink)}.np-rankrift .np-brand{font-family:var(--cdqcat5-font-heading, \\\"Space Grotesk\\\", Arial, sans-serif);font-size:22px;letter-spacing:-.5px;text-decoration:none}.np-rankrift .np-topbar nav{display:flex;flex-wrap:wrap;gap:10px 22px}.np-rankrift .np-topbar nav a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;border-bottom:1px solid transparent}.np-rankrift .np-topbar nav a:hover{border-bottom-color:currentColor}\\n.np-rankrift h1{font-family:var(--cdqcat5-font-heading, \\\"Space Grotesk\\\", Arial, sans-serif)!important;font-weight:400!important;font-size:clamp(36px,5.2vw,66px)!important;line-height:1.08!important;letter-spacing:-1.8px!important;max-width:960px;margin-top:0!important;margin-bottom:28px!important;text-wrap:balance;color:var(--np-ink)!important}.np-rankrift h2{font-family:var(--cdqcat5-font-heading, \\\"Space Grotesk\\\", Arial, sans-serif)!important;font-weight:400!important;font-size:clamp(25px,3vw,35px)!important;line-height:1.25!important;letter-spacing:-.5px!important;color:var(--np-ink)!important;margin-top:38px!important;margin-bottom:18px!important;text-wrap:balance}.np-rankrift h3{font-size:19px!important;line-height:1.4!important;color:var(--np-ink)!important;margin-top:24px!important;margin-bottom:10px!important}.np-rankrift p,.np-rankrift li{line-height:1.8!important;max-width:78ch}.np-rankrift p{margin-bottom:18px!important}.np-rankrift p,.np-rankrift li,.np-rankrift label{color:var(--np-ink)!important}.np-rankrift main,.np-rankrift article,.np-rankrift section{max-width:100%}.np-rankrift section{padding-top:8px!important;padding-bottom:24px!important;background:transparent!important}.np-rankrift section+section{border-top:1px solid color-mix(in srgb,var(--np-ink) 22%,transparent);margin-top:32px!important}.np-rankrift ul,.np-rankrift ol{padding-left:24px;max-width:78ch}.np-rankrift li{margin-bottom:10px!important}\\n.np-rankrift a{color:var(--np-ink);text-underline-offset:4px;text-decoration-thickness:1px}.np-rankrift a:hover{text-decoration:underline}.np-rankrift a:focus-visible,.np-rankrift button:focus-visible,.np-rankrift input:focus-visible,.np-rankrift select:focus-visible,.np-rankrift textarea:focus-visible,.np-rankrift summary:focus-visible{outline:3px solid var(--np-ink);outline-offset:5px}.np-rankrift button,.np-rankrift input,.np-rankrift select,.np-rankrift textarea{font:inherit;max-width:100%;min-height:44px;border-radius:3px!important}.np-rankrift button{cursor:pointer}.np-rankrift [class*=\\\"cta\\\"] a,.np-rankrift [class*=\\\"button\\\"]{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:12px 20px!important;background:var(--np-ink)!important;color:var(--np-paper)!important;border:1px solid var(--np-ink)!important;border-radius:3px!important;text-decoration:none!important;font-size:14px!important;font-weight:600!important;white-space:normal;line-height:1.45!important}.np-rankrift details{border:1px solid color-mix(in srgb,var(--np-ink) 28%,transparent)!important;border-radius:3px!important;padding:0 18px!important;background:transparent!important;margin-bottom:12px!important}.np-rankrift summary{min-height:48px;padding:14px 0;cursor:pointer;font-weight:600;line-height:1.5}.np-rankrift details>p{padding-bottom:12px}.np-rankrift blockquote{border-left:3px solid var(--np-ink)!important;background:var(--np-accent)!important;color:var(--np-ink)!important;padding:18px 22px!important;margin:24px 0!important;max-width:78ch}.np-rankrift .np-table{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin:24px 0;outline-offset:4px}.np-rankrift table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.65;display:table!important;overflow:visible!important}.np-rankrift th{background:var(--np-accent)!important;color:var(--np-ink)!important;text-align:left;padding:15px!important;font-weight:600}.np-rankrift td{color:var(--np-ink)!important;background:transparent!important;padding:15px!important;border-bottom:1px solid color-mix(in srgb,var(--np-ink) 22%,transparent)!important;vertical-align:top}.np-rankrift pre{max-width:100%;overflow-x:auto;padding:20px;background:var(--np-ink)!important;color:var(--np-paper)!important;line-height:1.6;font-size:14px}.np-rankrift pre code{color:inherit!important;background:transparent!important}.np-rankrift img,.np-rankrift svg{max-width:100%;height:auto}\\n@media(max-width:680px){.np-rankrift{font-size:16px!important;padding-left:20px!important;padding-right:20px!important}.np-rankrift .np-topbar{display:block;margin-bottom:36px;padding-top:20px}.np-rankrift .np-topbar nav{margin-top:12px;gap:4px 18px}.np-rankrift h1{letter-spacing:-1px!important}.np-rankrift [style*=\\\"grid-template-columns\\\"]{grid-template-columns:minmax(0,1fr)!important}.np-rankrift [class*=\\\"cta\\\"]{flex-wrap:wrap!important;gap:12px!important}.np-rankrift .np-table table{min-width:580px}.np-rankrift th,.np-rankrift td{padding:12px!important}.np-rankrift blockquote{padding:16px!important}}\\n@media(prefers-reduced-motion:reduce){.np-rankrift *{scroll-behavior:auto!important;transition:none!important}}\\n\")\n, _react2.default.createElement('style', null, \".np-rankrift{--np-paper:var(--cdqcat5r-bg);--np-ink:var(--cdqcat5r-fg);--np-accent:var(--cdqcat5r-panel-muted);--tr-ink:var(--cdqcat5r-fg);--tr-ink-soft:var(--cdqcat5r-fg);--tr-muted:var(--cdqcat5r-muted);--tr-line:var(--cdqcat5r-border);--tr-bg:var(--cdqcat5r-bg);--tr-bg-soft:var(--cdqcat5r-panel-muted);--tr-accent:var(--cdqcat5r-link);--tr-accent-deep:var(--cdqcat5r-link);padding-top:64px!important;padding-bottom:88px!important;font-family:var(--cdqcat5-font-body)!important;background:var(--cdqcat5r-bg)!important;color:var(--cdqcat5r-fg)!important}\\n.np-rankrift h1,.np-rankrift h2,.np-rankrift h3{font-family:var(--cdqcat5-font-heading)!important;font-weight:400!important}.np-rankrift h1{max-width:22ch!important;font-size:clamp(36px,4.8vw,64px)!important;letter-spacing:-.04em!important;line-height:1.12!important}.np-rankrift h2{letter-spacing:-.025em!important}.np-rankrift h3{letter-spacing:-.015em!important}\\n.np-rankrift a{color:var(--cdqcat5r-link)!important}.np-rankrift p,.np-rankrift li{color:var(--cdqcat5r-fg)!important}.np-rankrift [class*=\\\"intro\\\"],.np-rankrift [class*=\\\"lede\\\"]{font-size:20px!important;line-height:1.7!important;max-width:64ch!important;color:var(--cdqcat5r-muted)!important}\\n.np-rankrift [class*=\\\"callout\\\"],.np-rankrift [class*=\\\"note\\\"],.np-rankrift [class*=\\\"summary\\\"],.np-rankrift [class*=\\\"card\\\"],.np-rankrift .tr-cta{background:var(--cdqcat5r-panel-muted)!important;border-color:var(--cdqcat5r-border)!important;color:var(--cdqcat5r-fg)!important;border-radius:8px!important}\\n.np-rankrift [class*=\\\"cta\\\"] a,.np-rankrift [class*=\\\"button\\\"],.np-rankrift .tr-btn{background:var(--cdqcat5r-fg)!important;color:var(--cdqcat5r-bg)!important;border-color:var(--cdqcat5r-fg)!important;min-height:48px!important}.np-rankrift [class*=\\\"eyebrow\\\"]{color:var(--cdqcat5r-link)!important;letter-spacing:.12em!important}.np-rankrift details{border-color:var(--cdqcat5r-border)!important}.np-rankrift th{background:var(--cdqcat5r-panel-muted)!important;color:var(--cdqcat5r-fg)!important}\\n.np-rankrift .tr-hero{padding-top:0!important}.np-rankrift .tr-wrap{max-width:1080px!important;padding-left:0!important;padding-right:0!important}.np-rankrift :focus-visible{outline-color:var(--cdqcat5r-link)!important}@media(max-width:680px){.np-rankrift{padding-top:38px!important;padding-bottom:56px!important}.np-rankrift [class*=\\\"intro\\\"],.np-rankrift [class*=\\\"lede\\\"]{font-size:18px!important}}\")\n)\n  );\n} exports.default = ProductPage;"}