PageSourceSearch

https://unrollx.app/assets/js/privacy-6GrTe_IH.js

js unrollx.app collected 2026-10-02 01:15:44 UTC 24,487 bytes, 1 lines download raw bytes

1import{a as e,j as s}from"./react-vendor-C5vRrpgz.js";import{N as r,F as a}from"./Footer-D1eMT1FL.js";import{g as o}from"./config.shared-B4kqHljE.js";import{p as t}from"./processor-CNYgo0Vq.js";import"./media-vendor-6-lIQkoL.js";import"./marketing-CyP386ci.js";const i={plausible:{name:"Plausible",title:"Plausible Analytics",description:"We use Plausible to measure anonymous page views, referral sources, and country-level traffic patterns without analytics cookies.",privacyUrl:"https://plausible.io/privacy"},umami:{name:"Umami",title:"Umami Analytics",description:"We use Umami to measure privacy-friendly page views and product events without advertising cookies or cross-site profiling.",privacyUrl:"https://umami.is/privacy"}};const l=({data:e})=>{if(!e)return[];const s=e.seoData,r=`https://${s.site.domain}`,a=`${r}/privacy`,o=s.twitterTitle??s.title,t=s.twitterDescription??s.description,i=[{title:s.title},{name:"description",content:s.description},{name:"keywords",content:s.keywords},{property:"og:type",content:"article"},{property:"og:url",content:a},{property:"og:title",content:s.title},{property:"og:description",content:s.description},{property:"og:image",content:`${r}${s.og.image}`},{property:"og:image:alt",content:s.og.image_alt},{property:"og:site_name",content:s.site.name},{name:"robots",content:"index, follow"}];return i.push({name:"twitter:card",content:s.twitter.card}),s.twitter.site&&i.push({name:"twitter:site",content:s.twitter.site}),s.twitter.creator&&i.push({name:"twitter:creator",content:s.twitter.creator}),i.push({name:"twitter:title",content:o},{name:"twitter:description",content:t},{name:"twitter:image",content:`${r}${s.og.image}`},{name:"twitter:image:alt",content:s.og.image_alt}),i};function n({title:e,children:r,className:a=""}){return s.jsxs("section",{className:`mb-12 ${a}`,children:[s.jsx("h2",{className:"font-serif text-3xl font-semibold mb-6",style:{color:"var(--color-ink)"},children:e}),r]})}function c({title:e,children:r}){return s.jsxs("div",{className:"p-6 rounded-2xl",style:{backgroundColor:"white",border:"1px solid var(--color-ash)"},children:[s.jsx("h3",{className:"font-serif text-xl font-semibold mb-4",style:{color:"var(--color-ink)"},children:e}),r]})}function d({children:e}){return s.jsx("div",{className:"p-6 rounded-2xl border-l-4",style:{backgroundColor:"var(--color-paper-warm)",borderColor:"var(--color-amber)"},children:e})}function m(){const{seoData:l}=e(),m=o(l.analytics).map(e=>i[e]),h=m.map(e=>e.name),p=0===(u=h).length?"privacy-friendly analytics providers":1===u.length?u[0]:2===u.length?`${u[0]} and ${u[1]}`:`${u.slice(0,-1).join(", ")}, and ${u[u.length-1]}`;var u;const x=1!==h.length,y=h.length>0?`You can block ${p} with browser privacy tools. The public reading experience should still work, but blocking essential auth storage will prevent account features from functioning correctly.`:"If you block analytics scripts with browser privacy tools, the public reading experience should still work, but blocking essential auth storage will prevent account features from functioning correctly.";return s.jsxs(s.Fragment,{children:[s.jsx(r,{}),s.jsxs("main",{className:"text-foreground relative overflow-hidden pt-[70px] md:pt-[60px] flex-1",style:{backgroundColor:"var(--color-paper)",color:"var(--color-ink)"},children:[s.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"url(\"data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%232d2d2d' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E\")"}}),s.jsxs("div",{className:"max-w-4xl mx-auto px-6 py-20 md:px-4 md:py-16 sm:px-3 sm:py-12 relative z-10",children:[s.jsxs("div",{className:"mb-16 animate-fade-in-up",children:[s.jsx("div",{className:"inline-block mb-4 px-4 py-2 rounded-full text-sm font-medium tracking-wide uppercase",style:{backgroundColor:"var(--color-amber)",color:"white"},children:"Legal Document"}),s.jsx("h1",{className:"font-serif text-5xl md:text-6xl font-bold mb-6 leading-tight",children:"Privacy Policy"}),s.jsx("svg",{className:"-mt-2 mb-6",width:"200",height:"12",viewBox:"0 0 300 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"none",children:s.jsx("path",{d:"M2 6C50 3 100 1 150 5C200 9 250 4 298 7",stroke:"var(--color-amber)",strokeWidth:"3",strokeLinecap:"round"})}),s.jsx("p",{className:"text-xl md:text-2xl font-light leading-relaxed mb-4",style:{color:"var(--color-smoke)"},children:"This policy explains how UnrollX handles information when you browse public X threads as a guest, sign in to an account, or manage a paid subscription."}),s.jsxs("p",{className:"text-sm font-medium",style:{color:"var(--color-smoke-light)"},children:["Last updated: ","March 16, 2026"]})]}),s.jsxs("div",{className:"prose prose-lg max-w-none",children:[s.jsx(n,{title:"Owner and Data Controller",className:"animate-fade-in-up animate-delay-200",children:s.jsxs("div",{className:"p-6 rounded-2xl",style:{backgroundColor:"white",border:"1px solid var(--color-ash
1)"},children:[s.jsx("p",{className:"mb-2 text-base",style:{color:"var(--color-ink)"},children:"UnrollX"}),s.jsxs("p",{className:"mb-2 text-base",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Contact Email:"})," ",s.jsx("a",{href:"mailto:[email protected]",style:{color:"var(--color-amber)"},className:"hover:underline",children:"[email protected]"})]}),s.jsxs("p",{className:"text-base",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Website:"})," ",s.jsx("a",{href:"https://unrollx.app",style:{color:"var(--color-amber)"},className:"hover:underline",children:"https://unrollx.app"})]})]})}),s.jsx(n,{title:"Quick Overview",className:"animate-fade-in-up animate-delay-300",children:s.jsxs(d,{children:[s.jsxs("p",{className:"mb-3 text-base",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Guest access still exists:"})," You can read public X threads without an account, subject to anonymous rate limits."]}),s.jsxs("p",{className:"mb-3 text-base",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Accounts now matter:"})," Free and Pro require sign-in, which means we process account, session, and plan information for those users."]}),s.jsxs("p",{className:"mb-3 text-base",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Saved libraries store more data:"})," Signed-in accounts can save private Thread library and AI-generated titles to your account, and Pro removes the Free library cap."]}),s.jsxs("p",{className:"m-0 text-base",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"No ad-tech tracking:"})," ",h.length>0?`We use ${p} for privacy-friendly site analytics and do not run cross-site behavioral advertising.`:"We do not run cross-site behavioral advertising, and any privacy-friendly analytics we enable will stay provider-limited and cookie-free."]})]})}),s.jsxs(n,{title:"Information We Collect",children:[s.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mb-6",children:[s.jsx(c,{title:"Guest Browsing and Device Data",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"IP address and request metadata used for rate limits, security, and abuse prevention"}),s.jsx("li",{children:"Browser, operating system, device type, and similar technical details"}),s.jsx("li",{children:"Pages visited, referral source, visit timing, and country-level analytics data"}),s.jsx("li",{children:"Operational logs needed to keep the service available and diagnose failures"})]})}),s.jsx(c,{title:"Account and Sign-In Data",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Email address if you sign in with a magic link"}),s.jsx("li",{children:"Basic profile data from the provider you choose, such as name, email, username, and avatar"}),s.jsx("li",{children:"Account identifiers, plan status, and authentication records"}),s.jsx("li",{children:"Session data needed to keep you signed in across page loads and server requests"})]})}),s.jsx(c,{title:"Subscription and Billing Data",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Selected plan, trial or subscription status, billing cycle, and next billing date"}),s.jsx("li",{children:"Billing history and limited payment metadata such as card brand and last four digits"}),s.jsxs("li",{children:[t.name," customer or transaction references used to manage checkout and payment updates"]}),s.jsx("li",{children:"Tax or billing-region information handled through the checkout process when required"})]})}),s.jsx(c,{title:"Saved Content and Support Data",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Public thread URLs and public X/Twitter content you ask us to render"}),s.jsx("li",{children:"Cached copies of public thread data used to speed up future reads"}),s.jsx("li",{children:"Private Thread library entries, saved titles, and title edits for eligible paid plans"}),s.jsx("li",{children:"Messages and account context you send to support"})]})})]}),s.jsx(d,{children:s.jsxs("p",{className:"m-0 text-base",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Important:"})," Guest browsing remains available, but account-based and subscription features require us to process personal data such as email, profile details, plan status, and private library data."]})})]}),s.jsx(n,{title:"How We Use Information",children:s.jsxs("div",{className:"grid md:grid-cols-3 gap-4",children:[s.jsx(c,{title:"Service Delivery",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Fetch and display the public thread you requested"}),s.jsx("li",{children:"Apply usage quotas for guests, free accounts, and paid plans"}),s.jsx("li",{children:"Save private Thread library and generate or store titles when your plan includes those features"})]})}),s.jsx(c,{title:"Accounts and Billing",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Authenticate you through OAuth or email magic links"}),s.jsx("li",{children:"Maintain your session across the web app"}),s.jsx("li",{children:"Manage subscriptions, trials, cancellations, billing history, and support requests"})]})}),s.jsx(c,{title:"Security and Improvement",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Detect abuse, fraud, scraping, and other misuse"}),s.jsx("li",{children:"Debug outages, monitor performance, and improve reliability"}),s.jsx("li",{children:"Measure site usage with privacy-friendly analytics"})]})})]})}),s.jsxs(n,{title:"Cookies and Similar Technologies",children:[s.jsxs(d,{children:[s.jsx("p",{className:"mb-3 text-base",style:{color:"var(--color-smoke)"},children:s.jsx("strong",{children:"We do not use advertising cookies or cross-site tracking."})}),s.jsxs("p",{className:"m-0 text-base",style:{color:"var(--color-smoke)"},children:[h.length>0?`${p} ${x?"are":"is"} configured without analytics cookies.`:"Our analytics tools are configured without analytics cookies when enabled."," ","However, account features rely on essential browser storage so you can stay signed in and complete secure login flows."]})]}),s.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mt-4",children:[s.jsx(c,{title:"Essential Sign-In Storage",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Authentication cookies and browser storage for access tokens, refresh tokens, and expiry times"}),s.jsx("li",{children:"Data required for logged-in pages such as subscription management and Thread library"}),s.jsx("li",{children:"Session refresh data so the app can keep your login active when appropriate"})]})}),s.jsx(c,{title:"Temporary OAuth and Login State",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Session storage for OAuth state, redirect URI, and PKCE verifier values"}),s.jsx("li",{children:"Temporary values used to complete secure OAuth callbacks"}),s.jsx("li",{children:"Magic-link verification data needed to finish email sign-in"})]})})]})]}),s.jsx(n,{title:"Third-Party Services",children:s.jsxs("div",{className:"space-y-4",children:[s.jsxs(c,{title:"X / Twitter Public Content",children:[s.jsx("p",{className:"mb-3",style:{color:"var(--color-smoke)"}
1,children:"UnrollX displays public X/Twitter thread data you request to read, including public posts, usernames, profile images, and engagement metadata."}),s.jsxs("p",{className:"m-0 text-sm",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Privacy Policy:"})," ",s.jsx("a",{href:"https://twitter.com/privacy",style:{color:"var(--color-amber)"},className:"hover:underline",children:"https://twitter.com/privacy"})]})]}),m.map(e=>s.jsxs(c,{title:e.title,children:[s.jsx("p",{className:"mb-3",style:{color:"var(--color-smoke)"},children:e.description}),s.jsxs("p",{className:"m-0 text-sm",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Privacy Policy:"})," ",s.jsx("a",{href:e.privacyUrl,style:{color:"var(--color-amber)"},className:"hover:underline",children:e.privacyUrl})]})]},e.name)),s.jsx(c,{title:"Authentication Providers",children:s.jsx("p",{className:"mb-0",style:{color:"var(--color-smoke)"},children:"If you choose OAuth sign-in, providers such as Google or GitHub authenticate you and may share basic profile data with us. If you choose email sign-in, we process your email address and use service providers to deliver sign-in links."})}),s.jsx(c,{title:`${t.name} Billing`,children:s.jsxs("p",{className:"mb-0",style:{color:"var(--color-smoke)"},children:["Paid subscriptions are processed by ",t.name,", our merchant of record and payment processor. ",t.name," handles checkout and payment collection. We receive subscription status, billing dates, billing-history records, and limited payment metadata, but we do not store full payment card numbers ourselves."]})})]})}),s.jsxs(n,{title:"Data Sharing and Disclosure",children:[s.jsx(d,{children:s.jsx("p",{className:"m-0 text-base",style:{color:"var(--color-smoke)"},children:s.jsx("strong",{children:"We do not sell or rent your personal information."})})}),s.jsx("p",{className:"mt-4 mb-4",style:{color:"var(--color-smoke)"},children:"We share information only when needed to operate the service or meet legal obligations, including:"}),s.jsxs("ul",{className:"space-y-2 m-0 pl-0",children:[s.jsx("li",{children:"Service providers that help with hosting, security, authentication, analytics, email delivery, and billing"}),s.jsx("li",{children:"X/Twitter or sign-in providers when needed to complete the action you requested"}),s.jsx("li",{children:"Professional advisers, regulators, or authorities when required by law or to protect rights and safety"}),s.jsx("li",{children:"A buyer or successor if UnrollX is involved in a merger, acquisition, or asset sale"})]}),s.jsx("div",{className:"mt-6 p-6 rounded-2xl",style:{backgroundColor:"white",border:"1px solid var(--color-ash)"},children:s.jsxs("p",{className:"m-0",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{style:{color:"var(--color-ink)"},children:"Thread library is private to your account."})," ","We do not publish your saved Thread library for other users to browse."]})})]}),s.jsx(n,{title:"Data Retention",children:s.jsx("div",{className:"p-6 rounded-2xl",style:{backgroundColor:"white",border:"1px solid var(--color-ash)"},children:s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex justify-between items-start gap-6 border-b pb-3",style:{borderColor:"var(--color-ash)"},children:[s.jsx("span",{className:"font-medium",style:{color:"var(--color-ink)"},children:"Account and profile data"}),s.jsx("span",{className:"text-right",style:{color:"var(--color-smoke)"},children:"Retained while your account is active and for a reasonable period afterward for support, fraud prevention, and legal compliance"})]}),s.jsxs("div",{className:"flex justify-between items-start gap-6 border-b pb-3",style:{borderColor:"var(--color-ash)"},children:[s.jsx("span",{className:"font-medium",style:{color:"var(--color-ink)"},children:"Subscription and billing records"}),s.jsx("span",{className:"text-right",style:{color:"var(--color-smoke)"},children:"Retained as needed for accounting, tax, dispute resolution, and subscription support"})]}),s.jsxs("div",{className:"flex justify-between items-start gap-6 border-b pb-3",style:{borderColor:"var(--color-ash
1)"},children:[s.jsx("span",{className:"font-medium",style:{color:"var(--color-ink)"},children:"Saved Thread library"}),s.jsx("span",{className:"text-right",style:{color:"var(--color-smoke)"},children:"Retained until you delete it, close your account, or we no longer need it to provide the feature; backups may persist for a limited time"})]}),s.jsxs("div",{className:"flex justify-between items-start gap-6",children:[s.jsx("span",{className:"font-medium",style:{color:"var(--color-ink)"},children:"Logs, analytics, and cached public thread data"}),s.jsx("span",{className:"text-right",style:{color:"var(--color-smoke)"},children:"Retained for limited periods based on operational needs, provider settings, and abuse-prevention requirements"})]})]})})}),s.jsxs(n,{title:"Your Choices and Privacy Rights",children:[s.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mb-6",children:[s.jsx(c,{title:"Browse as a Guest",children:s.jsx("p",{className:"m-0 text-sm",style:{color:"var(--color-smoke)"},children:"You can use the basic thread reader without creating an account, subject to anonymous rate limits."})}),s.jsx(c,{title:"Manage Your Subscription",children:s.jsxs("p",{className:"m-0 text-sm",style:{color:"var(--color-smoke)"},children:["Paid users can review plan and billing details, and cancel a subscription from the account area. ",t.name," continues to process the payment relationship."]})}),s.jsx(c,{title:"Access, Correction, and Deletion",children:s.jsxs("p",{className:"m-0 text-sm",style:{color:"var(--color-smoke)"},children:["You can delete saved library entries in the app where available. For account closure, data access, correction, deletion, or export requests, contact"," ",s.jsx("a",{href:"mailto:[email protected]",style:{color:"var(--color-amber)"},className:"hover:underline",children:"[email protected]"}),"."]})}),s.jsx(c,{title:"Analytics Choice",children:s.jsx("p",{className:"m-0 text-sm",style:{color:"var(--color-smoke)"},children:y})})]}),s.jsxs(d,{children:[s.jsx("p",{className:"mb-3 text-base",style:{color:"var(--color-smoke)"},children:"If you live in a region with privacy laws such as the EEA, UK, or California, you may have additional rights to access, correct, delete, export, or object to certain processing, subject to applicable law."}),s.jsx("p",{className:"m-0 text-base",style:{color:"var(--color-smoke)"},children:"We do not sell personal information or use it for cross-site behavioral advertising."})]})]}),s.jsx(n,{title:"Children's Privacy",children:s.jsxs("div",{className:"p-6 rounded-2xl border-l-4",style:{backgroundColor:"#fef2f2",borderColor:"#dc2626"},children:[s.jsxs("p",{className:"mb-3 text-base",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{children:"Age Restriction:"})," UnrollX is not intended for children under 13 years of age."]}),s.jsxs("p",{className:"m-0 text-base",style:{color:"var(--color-smoke)"},children:["If you believe a child under 13 has provided personal information to us, contact"," ",s.jsx("a",{href:"mailto:[email protected]",style:{color:"var(--color-amber)"},className:"hover:underline",children:"[email protected]"})," ","and we will investigate and remove the information where appropriate."]})]})}),s.jsx(n,{title:"Security Measures",children:s.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[s.jsx(c,{title:"Safeguards We Use",children:s.jsxs("ul",{className:"space-y-2 m-0 pl-0 text-sm",children:[s.jsx("li",{children:"HTTPS/TLS encryption for site traffic"}),s.jsx("li",{children:"Authentication tokens with expiration and refresh handling"}),s.jsx("li",{children:"Rate limits, abuse controls, and operational logging"}),s.jsx("li",{children:"Access controls and regular maintenance of service infrastructure"})]})}),s.jsx(c,{title:"Limits of Security",children:s.jsx("p",{className:"m-0 text-sm",style:{color:"var(--color-smoke)"},children:"No online service can promise absolute security. We use reasonable administrative, technical, and organizational measures, but you should also protect your account credentials and email inbox."})})]})}),s.jsx(n,{title:"Changes to This Policy",children:s.jsxs("div",{className:"p-6 rounded-2xl",style:{backgroundColor:"white",border:"1px solid var(--color-ash
1)"},children:[s.jsx("p",{className:"mb-3",style:{color:"var(--color-smoke)"},children:'We may update this policy as the product changes, including when account, billing, or paid features change. When we do, we will revise the "Last updated" date on this page.'}),s.jsx("p",{className:"m-0",style:{color:"var(--color-smoke)"},children:"For material changes, we may also notify you by email or by posting a prominent notice in the service."})]})}),s.jsx(n,{title:"Contact Us",children:s.jsxs("div",{className:"p-6 rounded-2xl",style:{backgroundColor:"white",border:"1px solid var(--color-ash)"},children:[s.jsx("p",{className:"mb-4",style:{color:"var(--color-smoke)"},children:"If you have questions, concerns, or requests about this privacy policy or our data practices, contact us:"}),s.jsxs("div",{className:"space-y-2",children:[s.jsxs("p",{className:"m-0",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{style:{color:"var(--color-ink)"},children:"Email:"})," ",s.jsx("a",{href:"mailto:[email protected]",style:{color:"var(--color-amber)"},className:"hover:underline",children:"[email protected]"})]}),s.jsxs("p",{className:"m-0",style:{color:"var(--color-smoke)"},children:[s.jsx("strong",{style:{color:"var(--color-ink)"},children:"Website:"})," ",s.jsx("a",{href:"https://unrollx.app",style:{color:"var(--color-amber)"},className:"hover:underline",children:"https://unrollx.app"})]})]})]})})]})]})]}),s.jsx(a,{}),s.jsx("style",{children:"\n        @keyframes fadeInUp {\n          from {\n            opacity: 0;\n            transform: translateY(30px);\n          }\n          to {\n            opacity: 1;\n            transform: translateY(0);\n          }\n        }\n\n        .animate-fade-in-up {\n          animation: fadeInUp 0.8s ease-out forwards;\n          opacity: 0;\n        }\n\n        .animate-delay-200 {\n          animation-delay: 200ms;\n        }\n\n        .animate-delay-300 {\n          animation-delay: 300ms;\n        }\n\n        .prose h2 {\n          font-family: 'Newsreader', Georgia, serif;\n          color: var(--color-ink);\n          font-size: 1.875rem;\n          font-weight: 600;\n          margin-bottom: 1.5rem;\n          margin-top: 3rem;\n        }\n\n        .prose h3 {\n          font-family: 'Newsreader', Georgia, serif;\n          color: var(--color-ink);\n          font-size: 1.5rem;\n          font-weight: 600;\n          margin-bottom: 1rem;\n          margin-top: 0;\n        }\n\n        .prose h4 {\n          color: var(--color-ink);\n          font-weight: 600;\n        }\n\n        .prose p,\n        .prose li {\n          color: var(--color-smoke);\n          line-height: 1.75;\n        }\n\n        .prose strong {\n          color: var(--color-ink);\n        }\n\n        .prose a {\n          color: var(--color-amber);\n          text-decoration: none;\n          transition: all 0.2s;\n        }\n\n        .prose a:hover {\n          color: var(--color-amber-dark);\n          text-decoration: underline;\n        }\n\n        .prose ul {\n          list-style: none;\n          padding-left: 0;\n        }\n\n        .prose ul li {\n          padding-left: 1.5rem;\n          position: relative;\n        }\n\n        .prose ul li::before {\n          content: '•';\n          position: absolute;\n          left: 0.5rem;\n          color: var(--color-amber);\n          font-weight: bold;\n        }\n\n        .prose section {\n          margin-bottom: 3rem;\n        }\n      "})]})}export{m as default,l as meta};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.