PageSourceSearch

https://aipeeps.com/gallery/

html aipeeps.com collected 2026-10-09 17:41:19 UTC 35,088 bytes, 359 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head>
2        <meta charset="utf-8">
3        <meta http-equiv="X-UA-Compatible" content="IE=edge">
4        <meta name="theme-color" content="#292a2a">
5        <!-- The site is dark-only. Declaring color-scheme here (in the head, parsed
6             early) — not just via the :root CSS below — stops Android WebView / in-app
7             browsers (Telegram, Gmail, esp. Samsung's WebView) from applying their own
8             "force dark" / algorithmic darkening ON TOP of the already-dark UI, which
9             double-darkened everything. Chrome proper never force-darkened, so it was fine. -->
10        <meta name="color-scheme" content="dark">
11        <meta name="viewport" content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content, viewport-fit=cover">
12        <link rel="preconnect" href="https://fonts.googleapis.com">
13        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
14        <link href="https://fonts.googleapis.com/css2?family=Exo+2:wght@700&amp;display=swap" rel="stylesheet">
15        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css">
16        
16<script>
17            document.documentElement.style.backgroundColor = "#121212";
18        </script>
18
19
20        <style>
21            :root {
22                color-scheme: dark;
23            }
24
25            /* Target both html and body to ensure zero white space */
26            html,
27            body {
28                margin: 0;
29                padding: 0;
30                height: 100%;
31                width: 100%;
32                color: #ffffff;
33            }
34
35            html.loading-state {
36                background-color: #292a2a !important;
37            }
38
39            /* Background Logic */
40            body.loading-bg {
41                background-color: #292a2a !important;
42                background-image: url("/bg/hearts.svg");
43                background-repeat: repeat;
44            }
45
46            /* ---------------- Splash screen ---------------- */
47            /* Standalone overlay on <body> (a sibling of #app), so its lifetime is
48               independent of when the Vue app mounts — that lets us guarantee a
49               minimum on-screen time so the animated logo is always actually seen,
50               even when the app boots almost instantly. `hidden` by default (no-JS /
51               prerendered pages stay clean); the inline controller reveals it. Opaque
52               hearts backdrop so it fully covers the app booting underneath. */
53            .splash-root {
54                position: fixed;
55                inset: 0;
56                z-index: 9999;
57                display: flex;
58                align-items: center;
59                justify-content: center;
60                overflow: hidden;
61                background-color: #292a2a;
62                background-image: url("/bg/hearts.svg");
63                background-repeat: repeat;
64                /* The geometric centre reads a touch "low" to the eye (optical-centre
65                   illusion), so lift the wordmark slightly above true centre via
66                   bottom padding — leaves the animation's transform untouched. */
67                padding-bottom: 12vh;
68            }
69            .splash-root[hidden] {
70                display: none;
71            }
72
73            /* Graceful exit: the controller adds .splash-leaving and the whole
74               overlay cross-fades away over the freshly rendered app. */
75            .splash-root.splash-leaving {
76                opacity: 0;
77                transform: scale(1.015);
78                transition: opacity 0.55s ease, transform 0.7s ease;
79                pointer-events: none;
80            }
81
82            /* The logo + wordmark: a soft fade / zoom-in on entry, then it simply
83               settles and stays put (no floating). Perfectly centred by the root +
84               stage flex centering on both axes. */
85            .splash-stage {
86                display: flex;
87                align-items: center;
88                justify-content: center;
89                animation: splashIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
90                will-change: transform, opacity;
91            }
92            @keyframes splashIn {
93                from { opacity: 0; transform: translateY(7px) scale(0.92); filter: blur(3px); }
94                to   { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
95            }
96
97            /* logo + wordmark row */
98            .app-loader {
99                display: flex;
100                justify-content: center;
101                align-items: center;
102                font-weight: bold;
103                font-size: 2rem;
104                filter: drop-shadow(-1px 3px 5px rgba(255, 217, 0, 0.322));
105            }
106            .app-loader img {
107                width: 3rem;
108                height: 3rem;
109                margin-right: 15px;
110                /* reserve the box so the late-loading face never shifts the text */
111                flex: none;
112            }
113
114            .font-exo {
115                font-family: "Exo 2", Arial, sans-serif;
116            }
117
118            .text-blue {
119                background-image: linear-gradient(180deg, #8ad9f1 0%, #2fb0d8 100%);
120                -webkit-background-clip: text;
121                background-clip: text;
122                -webkit-text-fill-color: transparent;
123                color: transparent;
124                text-shadow: 0 0 7px rgba(47, 176, 216, 0.25);
125            }
126
127            .text-orange {
128                background-image: linear-gradient(180deg, #f6d488 0%, #f2ad46 100%);
129                -webkit-background-clip: text;
130                background-clip: text;
131                -webkit-text-fill-color: transparent;
132                color: transparent;
133                text-shadow: 0 0 6px rgba(242, 173, 70, 0.22);
134                margin-left: 6px;
135            }
136
137            /* omegleai.com: the logo IS the O of "Omegle", so it has to sit against
138               the wordmark instead of a logo's width away from it. Same 2px the app's
139               MainLogo leaves between the two. */
140            .app-loader img.as-o {
141                margin-right: 0;
142            }
143
144            /* omegleai.com wordmark: flat cyan + glow, like MainLogo's .text-megle.
145               Not a gradient, on purpose: that is what the in-app logo looks like. */
146            .text-megle-splash {
147                color: #00bfff;
148                text-shadow: #267bff 0px 0px 8px;
149                margin-left: 2px;
150            }
151
152            /* The gold half of the OmegleAI wordmark. Same gradient as .text-orange
153               but without its 6px lead-in, which is there to separate "AI" from the
154               logo in "AI peeps" and here would split the word into "megle  AI". */
155            .text-ai-splash {
156                background-image: linear-gradient(180deg, #f6d488 0%, #f2ad46 100%);
157                -webkit-background-clip: text;
158                background-clip: text;
159                -webkit-text-fill-color: transparent;
160                color: transparent;
161                text-shadow: 0 0 6px rgba(242, 173, 70, 0.22);
162            }
163
164            .text-blue-margin {
165                background-image: linear-gradient(180deg, #8ad9f1 0%, #2fb0d8 100%);
166                -webkit-background-clip: text;
167                background-clip: text;
168                -webkit-text-fill-color: transparent;
169                color: transparent;
170                text-shadow: 0 0 7px rgba(47, 176, 216, 0.25);
171                margin-left: 6px;
172            }
173        </style>
174
175        <title>Best AI Characters – AI Girlfriend, Anime &amp; Roleplay | AI Peeps</title>
176        <meta name="description" content="Explore the best AI characters on AI Peeps. Browse featured AI girlfriends, anime characters, and roleplay companions with unique personalities, memory, and image generation.">
177
178        <meta name="robots" content="index, follow">
179        <meta name="author" content="VB">
180        <link rel="canonical" href="https://aipeeps.com/gallery/featured/">
181
182        <meta property="og:type" content="website">
183        <meta property="og:title" content="Best AI Characters – AI Girlfriend, Anime &amp; Roleplay | AI Peeps">
184        <meta property="og:description" content="Browse featured AI characters on AI Peeps, including anime, realistic, and roleplay companions with rich personalities and visual styles.">
185        <meta property="og:image" content="https://cdn.aipeeps.com/masthead/feed/nefertari-c507.webp">
186        <meta property="og:url" content="https://aipeeps.com/gallery/featured/">
187
188        <meta name="twitter:card" content="summary_large_image">
189        <meta name="twitter:title" content="Best AI Characters – AI Girlfriend, Anime &amp; Roleplay | AI Peeps">
190        <meta name="twitter:description" content="Explore featured AI characters on AI Peeps, from anime companions to realistic roleplay characters.">
191        <meta name="twitter:image" content="https://cdn.aipeeps.com/masthead/feed/nefertari-c507.webp">
192
193        <link rel="icon" href="/favicon.ico">
194        <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
195        <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
196        <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
197
198        
198<script>
199            (function (w) {
200                w.fpr =
201                    w.fpr ||
202                    function () {
203                        w.fpr.q = w.fpr.q || [];
204                        w.fpr.q[arguments[0] == "set" ? "unshift" : "push"](arguments);
205                    };
206            })(window);
207            fpr("init", { cid: "eb68kvfe" });
208            fpr("click");
209        </script>
209
210        
210<script src="https://cdn.firstpromoter.com/fpr.js" async=""></script>
210
211        
211<script>
212            (function () {
213                // The site is dark-only: the light theme was retired along with its
214                // toggle in Settings. Anyone still carrying scheme="light" from before is
215                // moved back to dark here, and the stale key is dropped so it cannot
216                // resurrect the half-maintained light palette.
217                document.documentElement.setAttribute("data-scheme", "dark");
218                try {
219                    localStorage.removeItem("scheme");
220                } catch (e) {}
221            })();
222        </script>
222
223
224      
224<script type="module" crossorigin="" src="/assets/app-Brzv3Rd5.js"></script>
224
225      <link rel="stylesheet" crossorigin="" href="/css/app.BaWAZpJu.css">
226    <link rel="manifest" href="/manifest.webmanifest">
226<script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script>
226<link rel="modulepreload" crossorigin="" href="/assets/ChatHead-D8LweFyZ.js"><link rel="stylesheet" href="/css/ChatHead.XgiJz5XQ.css"></head>
227
228    <body class="loading-bg">
229        <noscript><img height="1" width="1" style="display: none" src="https://www.facebook.com/tr?id=1443710170149796&amp;ev=PageView&amp;noscript=1"></noscript>
230        <div id="app" data-server-rendered="true"><div id="app" class="hearts"><div style="position:relative;"><div class="hero-bg-orb orb-1"></div><div class="hero-bg-orb orb-2"></div></div><!----><!----><span id="appcont" class=""><div id="speech-bubble-container" data-v-e65b46fe=""><p id="speech-bubble" class="" data-v-e65b46fe=""></p></div><header class="app-header boxShadow app-header" data-v-9bbed9d0=""><div class="header-left" data-v-9bbed9d0=""><a href="/" class="router-link" data-v-9bbed9d0=""><div class="main-logo" style="cursor:pointer;position:relative;" data-v-9bbed9d0="" data-v-457b426b=""><div class="name" data-v-457b426b=""><span data-v-457b426b=""><span style="position:relative;" data-v-457b426b=""><img src="/assets/small_fill.B3_fbkl5.png" alt="Logo" class="logo" id="logo" style="position:relative;" data-v-457b426b=""><!----></span> &nbsp;</span><span class="text-name" data-v-457b426b=""><span class="text-disappear-second text-logo text-ai text-huge" data-v-457b426b="">AI</span><span class="text-disappear-second text-logo text-peeps text-huge" data-v-457b426b="">peeps</span></span></div></div></a><div class="social-btns" data-v-9bbed9d0="" data-v-3536c240=""><!--[--><a class="discord-btn router-link social-btn" href="https://discord.gg/6kg5XMYtjS" target="_blank" rel="noopener noreferrer" data-v-3536c240=""><span data-v-3536c240="" data-v-9d80f832=""><button class="base-button main-button" type="button" data-v-9d80f832=""><!----><i class="fa fa-brands fa-discord" data-v-9d80f832=""></i><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span></a><!--]--></div></div><div class="header-nav" data-v-9bbed9d0=""><!----><a href="/create-peep/" class="nav-item nav-primary" data-v-9bbed9d0=""><i class="fas fa-wand-magic-sparkles" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Create</span></a><a href="/gallery/" class="nav-item active" data-v-9bbed9d0=""><i class="fas fa-compass" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Browse</span></a><a href="/gallery/creators/" class="nav-item hide-medium" data-v-9bbed9d0=""><i class="fas fa-users" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Creators</span></a><a href="/collections/" class="nav-item hide-narrow" data-v-9bbed9d0=""><i class="fas fa-layer-group" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Collections</span></a><a href="/feed/" class="nav-item" data-v-9bbed9d0=""><i class="fas fa-stream" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Feed</span></a><button class="nav-item" data-v-9bbed9d0=""><i class="fas fa-comment-dots" data-v-9bbed9d0=""></i><span class="nav-text" data-v-9bbed9d0="">Chat</span></button><!----><!----><!----><!----><!----></div><div class="header-actions" data-v-9bbed9d0=""><button class="settings-burger-button" aria-label="Settings" data-v-9bbed9d0=""><i class="fa-solid fa-bars" data-v-9bbed9d0=""></i><!----></button></div></header><!----><!----><!----><div class="page" data-v-083acb9c=""><header class="hub-masthead has-girl" data-v-083acb9c="" data-v-95f85f81=""><!--[--><img class="hub-girl-bg" src="https://cdn.aipeeps.com/masthead/welcome/nikki-grant-960d.webp" alt="" data-v-95f85f81=""><!----><div class="hub-girl-scrim" data-v-95f85f81=""></div><!--]--><!----><!----><div class="hub-title-row" data-v-95f85f81=""><h1 class="cool peeps-brand hub-title" data-v-95f85f81="">Peeps <span class="hub-title-accent" data-v-95f85f81="">Hub</span></h1></div><p class="hub-tagline" data-v-95f85f81="">Discover thousands of AI characters</p><span class="hub-girl-cta" data-v-95f85f81=""><!--[-->✨ Meet Nikki Grant →<!--]--></span></header><!----><div class="container top-and-filters" data-v-083acb9c=""><!----><div class="container" style="gap:0.5rem;align-items:end;width:100%;" data-v-083acb9c=""><div class="container gallery-options-wrapper" data-v-083acb9c=""><nav class="gallery-tabs" data-v-083acb9c=""><!--[--><button type="button" class="active gl-tab" style="--gt:rgb(235, 48, 230);" aria-current="page" data-v-083acb9c=""><i class="fas fa-check-circle" data-v-083acb9c=""></i><span class="gl-label" data-v-083acb9c="">Featured</span></button><button type="button" class="gl-tab" style="--gt:rgb(104, 236, 97);" data-v-083acb9c=""><i class="fas fa-globe" data-v-083acb9c=""></i><span class="gl-label" data-v-083acb9c="">All</span></button><button type="button" class="gl-tab" style="--gt:rgb(242, 173, 70);" data-v-083acb9c=""><i class="fas fa-users" data-v-083acb9c=""></i><span class="gl-label" data-v-083acb9c="">Creators</span></button><!--]--></nav><!----><!----><!----><!----></div></div><!----></div><!----><!----><!----><div class="gallery-page" style="padding-top:0.3rem;" data-v-083acb9c=""><div class="row-container peeps-toolbar" data-v-083acb9c=""><!--[-->
230<div class="row-container sort-controls" data-v-083acb9c=""><span data-v-083acb9c="" data-v-9d80f832=""><button class="base-button main-button small-button toggled" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><span data-v-083acb9c=""><i class="fas fa-arrow-down-wide-short xblue" data-v-083acb9c=""></i>&nbsp;Newest</span><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span><span data-v-083acb9c="" data-v-9d80f832=""><button class="base-button main-button small-button" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><span data-v-083acb9c=""><i class="fas fa-heart xyellow" data-v-083acb9c=""></i>&nbsp;Top</span><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span><span data-v-083acb9c="" data-v-9d80f832=""><button class="base-button main-button small-button" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><span data-v-083acb9c=""><i class="fas fa-shuffle xmagenta" data-v-083acb9c=""></i>&nbsp;Daily</span><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span></div><div class="row-container filter-controls" data-v-083acb9c=""><!----><!----><div class="tag-selector" data-v-083acb9c="" data-v-1aa5bd95=""><div class="row-container space closed-container" data-v-1aa5bd95=""><div class="main-button" style="display:flex;gap:0.5rem;align-items:center;" data-v-1aa5bd95=""><span class="green-btn" data-v-1aa5bd95="" data-v-9d80f832=""><button class="base-button main-button small-button" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[-->🎲<!--]--></span><!----></button><!--teleport start--><!--teleport end--></span><span class="green-btn" data-v-1aa5bd95="" data-v-9d80f832=""><button class="base-button main-button small-button" type="button" data-v-9d80f832=""><!----><!----><div class="spinner" style="display:none;" data-v-9d80f832=""></div><span data-v-9d80f832=""><!--[--><span style="color:white;" data-v-1aa5bd95=""><span class="xyellow">🏷️ Tags</span></span><!--]--></span><!----></button><!--teleport start--><!--teleport end--></span></div><div class="row-container" style="gap:0.5rem;justify-content:end;" data-v-1aa5bd95=""><div name="pop" class="row-container" style="gap:5px;flex-wrap:wrap;justify-content:end;" data-v-1aa5bd95=""></div><!----><!----></div><!----></div><!--teleport start--><!--teleport end--></div></div><!--]--><div class="row-container count-and-view" data-v-083acb9c=""><!----><button type="button" class="nsfw-toggle compact" role="switch" aria-checked="false" aria-label="Showing SFW media, click to switch to NSFW" data-v-083acb9c="" data-v-d14fa24c=""><span class="nsfw-toggle-thumb" data-v-d14fa24c=""></span><span class="active nsfw-toggle-btn" data-v-d14fa24c=""><span class="emoji" data-v-d14fa24c="">😇</span><span class="label" data-v-d14fa24c="">SFW</span></span><span class="nsfw-toggle-btn" data-v-d14fa24c=""><span class="emoji" data-v-d14fa24c="">🌶️</span><span class="label" data-v-d14fa24c="">NSFW</span></span></button><!----></div></div><!----><!----><!----></div><div class="bottom" data-v-083acb9c=""><!----><!----><!----></div></div><!----><div data-v-2ef2b70a=""><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><div data-v-2ef2b70a="" data-v-53635f6c=""><!----><!----></div><!----><!----><!----><!----><!----><!----><!----></div><!----></span></div></div>
231
232        <!-- Splash overlay: a standalone sibling of #app (NOT inside it), hidden by
233             default so no-JS / prerendered pages stay clean. The inline controller
234             below reveals it and keeps it on screen for a short guaranteed minimum
235             before cross-fading away. Just the animated brand logo + wordmark. -->
236        <div id="splash-root" class="splash-root" hidden="">
237            <div class="splash-stage">
238                <div class="app-loader">
239                    <img src="data:image/webp;base64,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" width="48" height="48" alt="AI Peeps" id="splash-logo">
240                    <span id="splash-word-1" class="font-exo text-orange">AI</span>
241                    <span id="splash-word-2" class="font-exo text-blue-margin">peeps</span>
242                </div>
243            </div>
244        </div>
245
246        <!-- Splash controller: reveals the overlay and keeps it on screen for a
247             guaranteed minimum time before cross-fading out — independent of how
248             fast the app boots, so the animated logo is always actually seen. Skips
249             prerendered pages (which already have content in #app). Pure progressive
250             enhancement; without JS the overlay stays hidden and the page is
251             untouched. -->
252        
252<script>
253            (function () {
254                try {
255                    var root = document.getElementById("splash-root");
256                    var app = document.getElementById("app");
257                    if (!root || !app) return;
258
259                    // omegleai.com is the same build under a different name, and this
260                    // splash is the FIRST thing anyone sees — before Vue exists, so
261                    // MainLogo cannot help here. Someone who came looking for an
262                    // Omegle alternative and is greeted by another brand reads it as
263                    // a wrong turn and leaves, so the wordmark is swapped here, ahead
264                    // of the first paint, with no flash of the wrong name.
265                    // Mirrors src/siteMode.js (hostname, ?omegle=1, or the sticky
266                    // session flag it writes) — that runs later, hence the repetition.
267                    var onOmegleHost = location.hostname.indexOf("omegleai") !== -1;
268                    var omegle = onOmegleHost;
269                    try {
270                        var q = new URLSearchParams(location.search).get("omegle");
271                        if (q !== null) {
272                            // ?omegle=0 only switches OFF the dev override; on the real
273                            // domain the site is what it is. Same order as siteMode.js.
274                            omegle =
275                                ["0", "false", "off", "no"].indexOf(q.toLowerCase()) === -1 ||
276                                onOmegleHost;
277                        } else {
278                            omegle =
279                                localStorage.getItem("omegle_mode") === "1" || onOmegleHost;
280                        }
281                    } catch (e) {}
282                    if (omegle) {
283                        var w1 = document.getElementById("splash-word-1");
284                        var w2 = document.getElementById("splash-word-2");
285                        var lg = document.getElementById("splash-logo");
286                        if (w1 && w2) {
287                            w1.textContent = "megle";
288                            w1.className = "font-exo text-megle-splash";
289                            w2.textContent = "AI";
290                            w2.className = "font-exo text-ai-splash";
291                        }
292                        if (lg) {
293                            lg.alt = "OmegleAI";
294                            lg.className = "as-o";
295                        }
296                    }
297                    // Prerendered (SEO) page already has its content in #app → no
298                    // splash intro there; only show it on app/SPA loads.
299                    if (app.children.length > 0) return;
300
301                    // Reveal the overlay (it covers the app booting underneath).
302                    root.hidden = false;
303
304                    var MIN_MS = 1100;       // guaranteed minimum so the intro is seen
305                    var MOUNT_WAIT = 6000;   // safety cap for a very slow app mount
306                    var now = function () {
307                        return (window.performance && performance.now)
308                            ? performance.now() : Date.now();
309                    };
310                    var t0 = now();
311                    var mounted = false, leaving = false;
312                    var obs = null, timer = null;
313
314                    function leave() {
315                        if (leaving) return;
316                        leaving = true;
317                        if (obs) obs.disconnect();
318                        if (timer) clearTimeout(timer);
319                        root.classList.add("splash-leaving");
320                        setTimeout(function () {
321                            if (root.parentNode) root.parentNode.removeChild(root);
322                        }, 650);
323                    }
324                    // Leave once it's been shown long enough AND the app is ready.
325                    function tick() {
326                        if (leaving) return;
327                        if (now() - t0 >= MIN_MS && mounted) {
328                            leave();
329                            return;
330                        }
331                        timer = setTimeout(tick, 80);
332                    }
333
334                    // App mounted = Vue rendered into #app.
335                    if ("MutationObserver" in window) {
336                        obs = new MutationObserver(function () {
337                            if (app.children.length > 0) mounted = true;
338                        });
339                        obs.observe(app, { childList: true });
340                    } else {
341                        mounted = true;
342                    }
343                    setTimeout(function () { mounted = true; }, MOUNT_WAIT); // safety
344                    tick();
345                } catch (e) {}
346            })();
347        </script>
347
348
349        <noscript>
350            <div style="padding:1rem;text-align:center">
351                JavaScript is recommended for the full AI Peeps experience. Some content may be available without it,
352                but interactive features and some pages may be limited.
353            </div>
354        </noscript>
355
356        
356<script src="https://js.stripe.com/v3/" defer=""></script>
356
357    
358
359</body></html>

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.