{"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 ReportingPage() {\n  const d = {\"h1\":\"Reporting AI visibility to people who control budget\",\"intro\":\"How to make an AI-visibility number survive a finance review: a baseline with provenance, a six-block monthly report, referral and crawler detection, the confounders that block causal claims, and a maturity model you can stop partway up.\",\"primaryCtas\":[{\"label\":\"See the report structure\",\"href\":\"/blog/monthly-ai-visibility-report\"},{\"label\":\"Read the methodology\",\"href\":\"/methodology\"}],\"inShort\":\"This hub covers how to present AI-visibility measurement to executives and finance without overclaiming: setting a baseline whose provenance survives two quarters, the six blocks of a defensible monthly report including a mandatory statement of what you cannot claim, detecting AI-assistant referral traffic and agent crawls in analytics and server logs while being honest about undercounting, the four confounders that block causal claims, communicating uncertainty without losing the room, and a four-stage maturity model in which staying at an early stage is a valid choice rather than a failure.\",\"whoFor\":[\"In-house SEO and organic growth leads who must justify continued investment against a shrinking search-traffic story\",\"Agency and consultant strategists building a client-facing report they will still be able to defend in six months\",\"Analytics and RevOps people asked to attribute traffic that arrives with no referrer\",\"Heads of marketing preparing a budget conversation about a metric the room has never seen before\",\"Anyone who has been handed a vendor dashboard and asked what it proves\"],\"whenToUse\":[\"You are about to establish a baseline and want to record the right things the first time\",\"Your monthly report is due and you need a structure that will not collapse under questioning\",\"Direct traffic moved and someone has asked whether AI assistants caused it\",\"You are being pushed to claim your work caused a change you cannot isolate\",\"You need to explain to leadership why a stochastic metric has a range instead of a number\"],\"sections\":[{\"heading\":\"A baseline whose provenance survives two quarters\",\"paragraphs\":[\"Most AI-visibility programmes fail at the first re-run, not the first run. Someone measures, reports a number, then three months later cannot reproduce it because the prompt set was edited, the model version moved on, or nobody wrote down when the runs happened.\",\"A baseline is not a number. It is a record: the versioned prompt set, the assistants and model versions queried, the run dates, the number of runs per prompt, the metric definitions in force, the raw responses stored somewhere durable, and a note of who ran it. If you keep those, a future colleague can rebuild your comparison. If you keep only the score, your trend line is decoration.\",\"Store the raw responses. Aggregates cannot be recomputed from other aggregates, and the first time a definition changes you will want to go back to the text.\"],\"bullets\":[{\"text\":\"The full baseline protocol, step by step\",\"href\":\"/blog/defensible-baseline\"},{\"text\":\"Metric definitions and their failure modes\",\"href\":\"/measure\"},{\"text\":\"What every figure should ship with: prompt set, model versions, run dates, sample size, and variance\",\"href\":\"/methodology\"}],\"note\":\"Version and date the prompt set. A prompt set that quietly changes between runs invalidates every comparison built on it, silently.\"},{\"heading\":\"The six blocks of a defensible monthly report\",\"paragraphs\":[\"A report that survives contact with finance is not a longer report. It is a report where each number arrives attached to how it was produced and what it does not license you to say.\",\"Six blocks, in this order. The sixth is the one most teams skip and the one that buys you credibility for the other five.\"],\"bullets\":[{\"text\":\"Metric: which metric, defined in one sentence with its formula available. Name it the same way every month.\"},{\"text\":\"Method: prompt set version, assistants and model versions, run dates, runs per prompt. Two lines, not an appendix.\"},{\"text\":\"Result and confidence: the figure with its spread, stated as a range wherever the run count justifies one.\"},{\"text\":\"Delta: change since last period, with an explicit note of whether the change exceeds normal run-to-run variance.\",\"href\":\"/measure\"},{\"text\":\"What we did and what we will do: the actions taken in the period and the next ones, kept separate from the result so nobody reads adjacency as causation.\"},{\"text\":\"What we cannot claim: the confounders present this period and the statements this data does not support. Mandatory, every month, even when it is boring.\",\"href\":\"/blog/monthly-ai-visibility-report\"}],\"note\":\"The \\\"what we cannot claim\\\" block is not a hedge. It is the thing that makes the rest of the report believable the month you report something good.\"},{\"heading\":\"Finding assistant referrals and agent crawls in your own data\",\"paragraphs\":[\"Two different signals live in your infrastructure, and conflating them is a common reporting error. Referral traffic is a human arriving on your site after an assistant mentioned you. Agent and crawler activity is a machine fetching your pages, sometimes to train, sometimes to answer a live question, sometimes for something you cannot determine.\",\"Referrals are findable in analytics when the assistant passes a referrer, which not all of them do consistently, and which changes without notice. Crawls are findable in server logs by user agent, though user agents change and can be spoofed. Both are worth instrumenting and neither is complete.\",\"Be honest in the report about what this means: assistant-influenced visits are undercounted, some of it lands in direct traffic where it is indistinguishable from a bookmark, and a portion is simply unattributable. Say that once, clearly, rather than letting a stakeholder discover it later.\",\"We do not publish a benchmark for what share of traffic \\\"typically\\\" comes from AI assistants, because we have not measured one and the figures circulating in the market do not ship with a method. Report your own numbers and label their limits.\"],\"bullets\":[{\"text\":\"Configuring analytics to identify assistant referrals\",\"href\":\"/blog/detect-ai-referrals-ga4\"},{\"text\":\"Reading direct-traffic inflation without inventing a cause\",\"href\":\"/blog/dark-ai-traffic\"},{\"text\":\"Finding crawlers and agents in server logs\",\"href\":\"/ai-readiness\"}]},{\"heading\":\"The four confounders that block causal claims\",\"paragraphs\":[\"The question you will be asked is whether your work caused the change. In most months, the honest answer is that you cannot isolate it, and there are four reasons standing in the way at once.\",\"Naming them in advance is what lets you keep saying it without sounding defensive.\"],\"bullets\":[{\"text\":\"Model and provider updates: the system you measured last month may not be the system you measured this month. Record model versions so you can at least see when this applies.\"},{\"text\":\"Seasonality and demand shifts: buyer questions change over a year, and a prompt set that reflects real buying language will move with them.\"},{\"text\":\"Competitor activity: someone else's earned coverage or documentation change can alter answers you never touched.\"},{\"text\":\"Your own concurrent changes: teams rarely change one thing. Site restructures, PR, product launches, and content work usually overlap, which makes attribution to any single lever indefensible.\",\"href\":\"/blog/causal-claims\"}],\"note\":\"Defensible language: \\\"visibility increased over this window, alongside these changes we made.\\\" Indefensible: \\\"our work drove the increase.\\\" The second sentence is the one that gets your whole report audited.\"},{\"heading\":\"Presenting uncertainty without losing the room\",\"paragraphs\":[\"Executives are not allergic to uncertainty; they are allergic to being surprised by it later. A range presented confidently at the start of a programme is far easier to defend than a point estimate that has to be walked back.\",\"A few patterns that work. Lead with the decision the number supports, not the number. Give the range once and then use the midpoint in conversation. Compare against your own prior runs rather than against an external benchmark you cannot verify. Say what would change your mind, and what result would make you recommend stopping.\",\"Where a result is under-powered, say so and say what it would cost in runs to make it conclusive. That converts an awkward caveat into a budget request with a clear deliverable.\"],\"bullets\":[{\"text\":\"Language patterns for stochastic metrics\",\"href\":\"/blog/presenting-uncertainty\"},{\"text\":\"Why answers vary, in terms a non-specialist accepts\",\"href\":\"/ai-search\"},{\"text\":\"Working out how many runs a conclusive answer needs\",\"href\":\"/measure/calculator\"}]},{\"heading\":\"A maturity model you are allowed to stop climbing\",\"paragraphs\":[\"Four stages, and the right stage depends on how much a decision actually rides on the number. Ad-hoc: occasional manual checks, no stored history, useful for finding out whether you have a problem at all. Tracked: a versioned prompt set run on a schedule with results stored, enough to see trend and variance. Instrumented: assistant referral and crawler detection wired into analytics and logs alongside the visibility runs. Attributed: visibility, on-site behaviour, and pipeline connected well enough to inform investment decisions, with the causal limits still stated.\",\"Each stage costs more in tooling and, more importantly, in someone's recurring time. Moving up is only worth it when a decision changes as a result.\",\"Staying at ad-hoc or tracked is a legitimate end state for many teams. A small company that checks quarterly, records what it finds, and spends the saved effort on being better documented is not behind - it has made a reasonable allocation choice.\"],\"bullets\":[{\"text\":\"The four stages with entry criteria\",\"href\":\"/blog/ai-visibility-maturity-model\"},{\"text\":\"Who should own this internally\",\"href\":\"/blog/who-owns-ai-visibility\"},{\"text\":\"Whether you need a tool for your stage at all\",\"href\":\"/tools\"}],\"note\":\"The wrong reason to move up a stage is that a vendor's maturity model says you should. Move when a decision is being made badly for lack of data.\"},{\"heading\":\"The rest of this cluster\",\"paragraphs\":[\"Read the baseline post before your first run and the causal-claims post before your first executive presentation. The rest can be read in any order.\"],\"bullets\":[{\"text\":\"Setting a baseline you can defend six months from now\",\"href\":\"/blog/defensible-baseline\"},{\"text\":\"Build a monthly AI-visibility report executives trust\",\"href\":\"/blog/monthly-ai-visibility-report\"},{\"text\":\"Detect AI-assistant referral traffic in GA4\",\"href\":\"/blog/detect-ai-referrals-ga4\"},{\"text\":\"What you can and cannot claim causally\",\"href\":\"/blog/causal-claims\"},{\"text\":\"Presenting uncertainty without losing the room\",\"href\":\"/blog/presenting-uncertainty\"},{\"text\":\"The AI-visibility maturity model\",\"href\":\"/blog/ai-visibility-maturity-model\"},{\"text\":\"Is \\\"dark\\\" AI traffic real? Reading direct-traffic inflation\",\"href\":\"/blog/dark-ai-traffic\"},{\"text\":\"Who owns AI visibility inside a company\",\"href\":\"/blog/who-owns-ai-visibility\"}]}],\"related\":[{\"label\":\"Metric definitions and sampling\",\"href\":\"/measure\"},{\"label\":\"The published methodology\",\"href\":\"/methodology\"},{\"label\":\"Sample-size calculator\",\"href\":\"/measure/calculator\"},{\"label\":\"Competitive benchmarking rules\",\"href\":\"/competitive\"},{\"label\":\"Risk, corrections, and brand safety\",\"href\":\"/risk\"},{\"label\":\"Templates and checklists\",\"href\":\"/resources\"}],\"faqs\":[{\"q\":\"What should go in the very first report, before we have any trend?\",\"a\":\"Say plainly that it is a baseline and that a baseline has no trend. Include the metric and its definition, the prompt set version, the assistants and model versions queried, the run dates and runs per prompt, the result with its spread, and what you intend to measure next period. Then state what the baseline cannot tell you: nothing about direction, nothing about cause. A first report that promises less than it delivers sets a tone every later report benefits from.\"},{\"q\":\"Leadership wants one number. Can I give them one?\",\"a\":\"You can give one headline metric, provided the range travels with it in the document even if you speak the midpoint out loud. Pick the metric that maps to the decision being made and use the same one every period. What you should refuse is a composite score that blends several measures into a single index with no published formula, because nobody can interpret a move in it, including you. One defined number beats one invented one.\"},{\"q\":\"How do I know if AI assistants are sending us any traffic at all?\",\"a\":\"Check two places. In analytics, look for referrals from assistant domains, accepting that coverage is partial because not every assistant passes a referrer consistently. In server logs, look for agent and crawler user agents, which tells you about machine fetches rather than human visits. Between them you get a floor, never a total. Some assistant-influenced visits arrive as direct traffic and cannot be separated from bookmarks or typed URLs.\"},{\"q\":\"Direct traffic jumped this month. Was that AI?\",\"a\":\"Possibly, and you probably cannot prove it. Unattributed direct traffic has many sources: apps, email clients, privacy tools, mistagged campaigns, and yes, assistant referrals that lost their referrer. Before attributing it, check whether the rise coincides with landing pages that would only be found through a recommendation, and whether your crawler and referral signals moved in the same direction. If they did not, report the rise as unexplained. Naming a cause you cannot evidence is how reports lose their audience.\"},{\"q\":\"Can I ever claim our work caused a visibility change?\",\"a\":\"Rarely, and only with structure. Four confounders are usually present at once: provider model updates, seasonality, competitor moves, and your own concurrent changes. The closest you get to a causal claim is a change isolated to a specific prompt group, sustained across several runs and multiple assistants, following a single documented change, with variance small enough that the shift is clearly outside normal run-to-run noise. Even then, phrase it as consistent with rather than caused by.\"},{\"q\":\"What percentage of traffic should we expect from AI assistants?\",\"a\":\"We will not give you a figure, because we have not measured one and the numbers circulating publicly rarely ship with a method, a sample, or a date. Any benchmark you adopt from a vendor deck becomes a target you will be judged against for reasons nobody can defend. Measure your own referral and crawler signals, report them with their known undercounting, and compare this period against your own last period rather than against a stranger's average.\"},{\"q\":\"Our results moved eight percent. Is that a real change?\",\"a\":\"Only if it exceeds your own run-to-run variance, which you can only know if you ran each prompt multiple times and recorded the spread. On a small number of runs against a non-deterministic system, a change of that size is routinely noise. Before reporting it as movement, check whether it holds across successive runs and across more than one assistant. If your method cannot answer that, the honest report says the change is within measurement noise.\"},{\"q\":\"Do we need a tracking tool to report this properly?\",\"a\":\"Not necessarily. At the ad-hoc and tracked stages, a versioned prompt set, a scheduled manual run, and a spreadsheet with stored raw responses will produce a report that meets every standard on this page. Tools earn their cost when run volume, multi-brand reporting, or scheduled re-runs turn into a recurring job for a person. RankRift does not sell a tracker; read the tools pillar for the criteria and apply them to the options you are considering.\"}],\"closingCtaHeading\":\"Build the report before you need it\",\"closingCtaText\":\"Record a baseline with full provenance this month, and next quarter's report writes itself instead of becoming an argument about where the numbers came from.\",\"closingCtas\":[{\"label\":\"Read the baseline protocol\",\"href\":\"/blog/defensible-baseline\"},{\"label\":\"Get the report outline and scorecard layout\",\"href\":\"/resources\"},{\"label\":\"Use the briefing template\",\"href\":\"/newsletter\"}]};\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 = ReportingPage;"}