PageSourceSearch

https://solarmovies.gd/

html solarmovies.gd collected 2026-10-10 01:12:16 UTC 71,882 bytes, 1,001 lines download raw bytes

1<!DOCTYPE html><html lang="en">
2<head><meta charset="utf-8"><title>SolarMovies - Watch Full Movies &amp; TV Series Free</title>
3<script nonce="9211d881c254b9db0f3f7eda298e5491">if(/Web0S|NetCast|SmartTV|SMART-TV|Tizen|BRAVIA|AFT[A-Z]|PlayStation|Xbox|CrKey|HbbTV|VIDAA|Roku/i.test(navigator.userAgent))document.documentElement.className+=" tv";</script>
3
4<meta name="description" content="Watch full movies and complete TV series for free on SolarMovies. HD quality, updated daily with the latest releases. Start streaming instantly.">
5<!-- Modern robots directive — opts into longer snippets, bigger image previews,
6     and full-length video previews. 2026 best practice for content sites. -->
7<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
8<!-- Bing-specific directive — Bing is ~6% of US search and powers Copilot AI
9     Overviews, so giving it the same explicit permissions as Googlebot helps
10     pickup in Microsoft's AI ecosystem. -->
11<meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
12<!-- Cross-origin hints — DNS + TCP + TLS handshake done in parallel with HTML
13     parse instead of serially when first image is requested. Saves ~150-250ms
14     LCP on cold visits. -->
15<link rel="preconnect" href="https://image.tmdb.org" crossorigin>
16<link rel="preconnect" href="https://vidsrc.mov" crossorigin>
17<link rel="preconnect" href="https://embed.vidsrc.si" crossorigin>
18<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
19<link rel="dns-prefetch" href="https://www.youtube.com">
20<link rel="dns-prefetch" href="https://i.ytimg.com">
21<script nonce="9211d881c254b9db0f3f7eda298e5491">document.cookie="hv=1; path=/; max-age=86400; SameSite=Lax; Secure";document.cookie="hv2=1; path=/; max-age=86400; SameSite=Lax; Secure";</script>
vendor: 1 bytes, line 21
21
22<script nonce="9211d881c254b9db0f3f7eda298e5491">(function(){try{if(!/^\/watch\//.test(location.pathname)||/[?&]hv=/.test(location.search))return;var n=0;try{n=+(sessionStorage.getItem("hvr")||0)}catch(e){}if(n>=2)return;
23window.__hv=fetch("/?__hvchk=1&r="+Math.random().toString(36).slice(2),{credentials:"same-origin",cache:"no-store"}).then(function(r){if(r.status!==401)return true;try{sessionStorage.setItem("hvr",n+1)}catch(e){}var q=location.search?location.search+"&":"?";location.replace(location.pathname+q+"hv="+Date.now().toString(36)+location.hash);return false}).catch(function(){return true});}catch(e){}})();</script>
23
24<meta property="og:type" content="website">
25<meta property="og:title" content="SolarMovies - Watch Full Movies &amp; TV Series Free">
26<meta property="og:description" content="Watch full movies and complete TV series for free on SolarMovies. HD quality, updated daily with the latest releases. Start streaming instantly.">
27<meta property="og:site_name" content="SolarMovies">
28<meta property="og:locale" content="en_US">
29<meta property="og:image" content="https://solarmovies.gd/assets/brands/solarmovies/og-share.jpg">
30<meta property="og:image:secure_url" content="https://solarmovies.gd/assets/brands/solarmovies/og-share.jpg">
31<meta property="og:image:type" content="image/jpeg">
32<meta property="og:image:width" content="1200">
33<meta property="og:image:height" content="800">
34<meta property="og:image:alt" content="SolarMovies - Watch Full Movies &amp; TV Series Free">
35<meta name="twitter:card" content="summary_large_image">
36<meta name="twitter:image" content="https://solarmovies.gd/assets/brands/solarmovies/og-share.jpg">
37<meta name="twitter:image:alt" content="SolarMovies - Watch Full Movies &amp; TV Series Free">
38<meta name="twitter:title" content="SolarMovies - Watch Full Movies &amp; TV Series Free">
39<meta name="twitter:description" content="Watch full movies and complete TV series for free on SolarMovies. HD quality, updated daily with the latest releases. Start streaming instantly.">
40<meta name="twitter:domain" content="solarmovies.gd">
41<meta name="viewport" content="width=device-width, initial-scale=1">
42<link rel="canonical" href="https://solarmovies.gd/">
43<meta property="og:url" content="https://solarmovies.gd/">
44<script type="application/ld+json" nonce="9211d881c254b9db0f3f7eda298e5491">{"@context":"https://schema.org","@type":"WebSite","name":"SolarMovies","url":"https://solarmovies.gd/","description":"SolarMovies - Watch free movies and TV shows online in HD","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://solarmovies.gd/browser?keyword={search_term_string}"},"query-input":"required name=search_term_string"}}</script>
vendor: 1 bytes, line 44
44
45<script type="application/ld+json" nonce="9211d881c254b9db0f3f7eda298e5491">{"@context":"https://schema.org","@type":"Organization","name":"SolarMovies","url":"https://solarmovies.gd/","logo":"https://solarmovies.gd/assets/brands/solarmovies/logo.png","contactPoint":{"@type":"ContactPoint","contactType":"customer support","availableLanguage":["English"],"url":"https://solarmovies.gd/"},"alternateName":"SolarMovie","sameAs":["https://t.me/+7YjmLuJQrclmZWE0"]}</script>
vendor: 1 bytes, line 45
45
46<script type="application/ld+json" nonce="9211d881c254b9db0f3f7eda298e5491">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is SolarMovies?","acceptedAnswer":{"@type":"Answer","text":"A free streaming destination for movies and TV in HD. Tens of thousands of titles across every genre, refreshed daily, no account required, no payment, no friction."}},{"@type":"Question","name":"Is SolarMovies actually free?","acceptedAnswer":{"@type":"Answer","text":"Completely free. No paywall surprise, no premium upgrade, no hidden fees. The entire library is open."}},{"@type":"Question","name":"Do I need to sign up?","acceptedAnswer":{"@type":"Answer","text":"No. There is no account system on SolarMovies. No email, no password, no credit card — there\u0027s literally no form to fill out."}},{"@type":"Question","name":"Are there ads on SolarMovies?","acceptedAnswer":{"@type":"Answer","text":"A few, and we keep them minimal: no banner spam, no pop-ups in the middle of a stream and no \u0022click to continue\u0022 walls. The viewing experience comes first."}}
46,{"@type":"Question","name":"Is SolarMovies safe?","acceptedAnswer":{"@type":"Answer","text":"Yes. There is no account, so no password or payment details can leak, and ads are kept to a minimum. As on any website, keep your browser up to date."}},{"@type":"Question","name":"Is it legal in my country?","acceptedAnswer":{"@type":"Answer","text":"SolarMovies does not host any files — it lists streams from third-party providers. Laws on streaming differ from country to country, so check the rules where you live."}},{"@type":"Question","name":"What\u0027s the difference between SolarMovies and 123Movies?","acceptedAnswer":{"@type":"Answer","text":"Both are free streaming sites. SolarMovies focuses on a clean player, fast HD playback and as few ads as possible."}},{"@type":"Question","name":"How do I watch?","acceptedAnswer":{"@type":"Answer","text":"Step 1: Open solarmovies.gd. Step 2: Search by title or scroll genre rows. Step 3: Click the poster. Step 4: Press play. Done."}},{"@type":"Question","name":"Buffering keeps happening — fix?","acceptedA
46nswer":{"@type":"Answer","text":"Try another server under the player, or drop the quality from HD to 480p or 360p. If your connection is below ~5 Mbps, that resolves it almost every time."}},{"@type":"Question","name":"Can I download for offline?","acceptedAnswer":{"@type":"Answer","text":"Not at the moment — SolarMovies is for streaming only."}},{"@type":"Question","name":"Is there an Android app?","acceptedAnswer":{"@type":"Answer","text":"Not a separate app — but you can add SolarMovies to your phone\u0027s home screen from the browser menu (\u0022Add to Home screen\u0022) and open it like an app."}},{"@type":"Question","name":"How do I confirm I\u0027m on the real SolarMovies?","acceptedAnswer":{"@type":"Answer","text":"Polished UI + fast HD playback + minimal ads. The canonical URL right now is solarmovies.gd."}},{"@type":"Question","name":"I heard SolarMovies got shut down — true?","acceptedAnswer":{"@type":"Answer","text":"The brand has had downtime episodes, but the current site is healthy and actively maintained."}},{"@type":"Question","name":"The site isn\u0027t loading — why?","acceptedA
46nswer":{"@type":"Answer","text":"Check https://downforeveryoneorjustme.com/ to confirm whether it\u0027s a global issue. If it\u0027s just your end, refresh, restart your router, or switch DNS."}},{"@type":"Question","name":"What if SolarMovies is down?","acceptedAnswer":{"@type":"Answer","text":"Join the SolarMovies Telegram channel — it always has the current address, so you never lose the site."}}]}</script>
vendor: 1 bytes, line 46
46
47<script type="application/ld+json" nonce="9211d881c254b9db0f3f7eda298e5491">{"@context":"https://schema.org","@type":"ItemList","name":"SolarMovies — Top Sections","itemListElement":[{"@type":"ListItem","position":1,"name":"Movies","url":"https://solarmovies.gd/movie"},{"@type":"ListItem","position":2,"name":"TV Shows","url":"https://solarmovies.gd/tv"},{"@type":"ListItem","position":3,"name":"Top IMDb","url":"https://solarmovies.gd/top-imdb"},{"@type":"ListItem","position":4,"name":"Latest","url":"https://solarmovies.gd/updates"}]}</script>
47
48<link rel="manifest" href="/manifest.json">
49<!-- Multiple favicon sizes so Google's search snippet + iOS home-screen +
50     Android PWA all get the right resolution. Single file reused for all sizes
51     since we don't pre-generate multiple — browsers downscale fine. -->
52<link rel="shortcut icon" href="/assets/brands/solarmovies/favicon.png" type="image/x-icon">
53<link rel="icon" type="image/png" sizes="32x32"   href="/assets/brands/solarmovies/favicon.png">
54<link rel="icon" type="image/png" sizes="16x16"   href="/assets/brands/solarmovies/favicon.png">
55<link rel="icon" type="image/png" sizes="192x192" href="/assets/brands/solarmovies/favicon.png">
56<link rel="icon" type="image/png" sizes="512x512" href="/assets/brands/solarmovies/favicon.png">
57<link rel="apple-touch-icon" sizes="180x180"      href="/assets/brands/solarmovies/favicon.png">
58<!-- Theme color drives Android Chrome / iOS Safari chrome color + PWA splash.
59     Follows the admin-configured accent. -->
60<meta name="theme-color" content="#EA8420">
61<!-- iOS PWA hints — when added to home screen, app runs in standalone mode
62     with translucent black status bar. -->
63<meta name="apple-mobile-web-app-capable" content="yes">
64<!-- Modern equivalent (Chrome warns about the apple-* tag alone since 2024).
65     Both kept for iOS Safari backwards compat. -->
66<meta name="mobile-web-app-capable" content="yes">
67<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
68<meta name="apple-mobile-web-app-title" content="SolarMovies">
69<!-- Block iOS Safari from auto-linking phone-number-looking strings (years,
70     IDs) as tel: links — those break our card titles. -->
71<meta name="format-detection" content="telephone=no">
72<!-- hreflang: English-only site, but declaring it explicitly + x-default
73     tells Google "this version serves everyone" and prevents wrong-locale issues. -->
74<link rel="alternate" hreflang="en"        href="https://solarmovies.gd/">
75<link rel="alternate" hreflang="x-default" href="https://solarmovies.gd/">
76<!-- Browser address-bar search integration -->
77<link rel="search" type="application/opensearchdescription+xml" title="SolarMovies" href="/opensearch.xml">
78<!-- Preload the main stylesheet so the browser starts the download in parallel
79     with HTML parse rather than waiting until it hits the <link rel="stylesheet">
80     tag. Measurably better LCP on cold visits (~50-150ms). -->
81<link rel="preload" href="/assets/build/34505f3de3c98087c1aa7214e9a9/dist/styles-DTEbPRni9766.fa1.css?v=1" as="style">
82<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/11.0.5/swiper-bundle.min.css">
83<link rel="stylesheet" href="/assets/build/34505f3de3c98087c1aa7214e9a9/dist/styles-DTEbPRni9766.fa1.css?v=1">
84<style nonce="9211d881c254b9db0f3f7eda298e5491">
85/* Match fmovies: use the OS-native system font stack everywhere instead of
86   the Google-hosted Montserrat. Faster (no font fetch / FOIT), sharper at
87   small sizes (kerned by the OS rendering engine).
88     macOS  → San Francisco
89     Win    → Segoe UI
90     Android → Roboto
91     Linux  → Cantarell / Noto Sans                                       */
92:root, body, .bf-card__title, .bf-card__caption, .item-title,
93.movie-cards .item .title, .movie-cards .item .metadata, .section-name,
94input, button, select, textarea {
95  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
96               "Noto Sans", "Liberation Sans", Arial, sans-serif,
97               "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
98               "Noto Color Emoji" !important;
99}
100/* Admin-configurable brand accent. Exposed as `--accent` (solid) and
101   `--accent-soft` (~13% translucent) so any selector can reference them
102   via `var(--accent)` / `var(--accent-soft)`. Changing the accent in
103   /admin/settings instantly re-skins the whole site. */
104:root {
105  --accent:         #EA8420;
106  --accent-soft:    rgba(234,132,32,.13);
107  --accent-season:  #7c3aed;
108  --accent-episode: #0891b2;
109}
110
111/* ===== Bflix theme overrides =====
112   The compiled bflix CSS (styles-DTEbPRni9766.css) hard-codes its own brand
113   color on buttons, navs, hero, etc. We re-paint those surfaces with
114   var(--accent) so changing the admin setting instantly re-skins the site.
115   !important is required because the theme's specificity wins otherwise. */
116
117/* Primary buttons / pills (Watch Now, Login, Search, Submit, etc.) */
118.btn-primary, .content-box-btn, .watch-btn,
119.btn.btn-primary, .btn.content-box-btn, button.btn-primary {
120  background: var(--accent) !important;
121  border-color: var(--accent) !important;
122  color: #fff !important;
123}
124.btn-primary:hover, .content-box-btn:hover, .watch-btn:hover { filter: brightness(0.88); }
125
126/* "View All" / more links + section name underline accent */
127.more-btn, .more-btn:visited { color: var(--accent) !important; }
128.more-btn:hover { color: #fff !important; }
129.section-name { border-left-color: var(--accent) !important; }
130
131/* Header nav — bold + sliding accent underline + hover border/tint.
132   At rest items are clean (weight 600, pure white, just the underline on active).
133   On hover, a subtle border + accent-soft background appears so the item feels
134   like a real button you can click, combined with the sliding underline.        */
135header .header-nav > ul > li > a {
136  font-weight: 600 !important;
137  color: #fff !important;
138  letter-spacing: .01em !important;
139  position: relative !important;
140  padding: .35rem .7rem !important;
141  border-radius: .4rem !important;
142  border: 1px solid transparent !important;
143  background: transparent !important;
144  transition: color .18s ease, background-color .18s ease, border-color .18s ease !important;
145}
146header .header-nav > ul > li > a::after {
147  content: "";
148  position: absolute;
149  left: .7rem; right: .7rem; bottom: -.15rem;
150  height: 2px;
151  background: var(--accent);
152  transform: scaleX(0);
153  transform-origin: center;
154  transition: transform .22s ease;
155  border-radius: 2px;
156}
157header .header-nav > ul > li:hover > a,
158header .header-nav > ul > li > a:focus-visible {
159  background: var(--accent-soft) !important;
160  border-color: rgba(255,255,255,.12) !important;
161}
162header .header-nav > ul > li:hover > a::after,
163header .header-nav > ul > li.active > a::after,
164header .header-nav > ul > li > a:focus-visible::after { transform: scaleX(1); }
165header .header-nav a:hover,
166header .header-nav .active > a { color: var(--accent) !important; }
167header .header-btn:hover { color: var(--accent) !important; }
168
169/* Pagination */
170.pagination .page-item.active .page-link,
171.pagination .page-link.active {
172  background: var(--accent) !important;
173  border-color: var(--accent) !important;
174  color: #fff !important;
175}
176.pagination .page-link { color: var(--accent) !important; }
177.pagination .page-link:hover { background: var(--accent) !important; color: #fff !important; }
178
179/* Featured hero — nav arrows */
180#featured .featured-prev, #featured .featured-next,
181#featured .swiper-button-next, #featured .swiper-button-prev { color: var(--accent) !important; }
182/* 2026-09-25: the theme's thumb strip only hides the -prev/-next thumbs (container is overflow:unset,
183   every thumb is width:100%), so once the hero auto-rotated past slide 2 the earlier thumbs piled up
184   across the hero over the title. Only the active thumb is ever visible. */
185#featured .featured-thumb .swiper-wrapper .swiper-slide.poster:not(.swiper-slide-active) { opacity: 0 !important; }
186
187/* 2026-09-27: "All genres →" / "All countries →" at the end of the menu dropdowns */
188.header-nav .nav-all a { color: var(--accent) !important; font-weight: 600; }
189
190/* Swiper pagination bullets */
191.swiper-pagination-bullet-active { background: var(--accent) !important; }
192
193/* Footer link hover + genre/country dropdowns */
194footer a:hover { color: var(--accent) !important; }
195header .header-nav ul.c4 a:hover { color: var(--accent) !important; }
196
197@media (min-width: 1060px) {
198  .header-nav > ul > li > ul { display: none; }
199  .header-nav > ul > li > ul.c4 { max-height: 70vh; overflow-y: auto; overscroll-behavior: contain; }
200  .header-nav > ul > li:hover::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 60%; z-index: 98; }
201}
202
203/* Dropdown hover backgrounds use the translucent accent */
204.dropdown-item:hover, .dropdown-item:focus { background: var(--accent-soft) !important; color: #fff !important; }
205
206/* Site-wide background — soft accent radial over dark base. Replaces the
207   bflix theme's hardcoded red glow and follows whatever accent the admin
208   chose in /admin/settings. Attaches to body so it covers every page,
209   including landing (/), home, listings, watch, admin, auth. */
210html, body {
211  background:
212    radial-gradient(ellipse at top, var(--accent-soft) 0%, transparent 60%),
213    #0d0f12 !important;
214  background-attachment: fixed !important;
215}
216#wrapper, #wrapper.index-page, #wrapper.home, #wrapper.watch,
217#wrapper.admin-page { background: transparent !important; }
218
219/* Watch-page rating widget — the red gradient bar showing "X of 10". The
220   theme paints .detail-lower with a hardcoded brand gradient. */
221.detail-lower,
222#movie-rating.detail-lower {
223  background: linear-gradient(90deg, var(--accent) 0%, var(--accent-soft) 100%) !important;
224}
225.detail-lower .score { color: #fff !important; }
226
227/* Filter form — bflix renders checkboxes/radios as <input> + <label> pairs
228   where the theme paints :checked + label with its hardcoded brand color.
229   Re-paint to follow var(--accent). */
230.xfilter .input-set input { position: absolute; opacity: 0; pointer-events: none; }
231.xfilter .input-set label {
232  display: inline-block;
233  padding: .35rem .75rem;
234  margin: .15rem .25rem .15rem 0;
235  border-radius: .35rem;
236  background: #1e242c;
237  color: #c9cdd3;
238  font-size: .85rem;
239  cursor: pointer;
240  transition: background .15s ease, color .15s ease, border-color .15s ease;
241  border: 1px solid transparent;
242}
243.xfilter .input-set label:hover {
244  border-color: var(--accent) !important;
245  color: #fff;
246}
247.xfilter .input-set input:checked + label {
248  background: var(--accent) !important;
249  color: #fff !important;
250  border-color: var(--accent) !important;
251}
252.xfilter .label-set { color: #989ea6; font-size: .85rem; padding: .4rem .5rem .4rem 0; }
253
254/* Filter form action buttons */
255.xfilter .actions .btn-submit {
256  background: var(--accent) !important;
257  border-color: var(--accent) !important;
258  color: #fff !important;
259}
260.xfilter .actions .btn-cancel {
261  background: transparent !important;
262  border: 1px solid #2a2e34 !important;
263  color: #989ea6 !important;
264}
265.xfilter .actions .btn-cancel:hover {
266  border-color: var(--accent) !important;
267  color: var(--accent) !important;
268}
269
270/* Watch-page seasons + episodes — distinct from the main brand accent so the
271   three tiers (brand action / season picker / episode picker) are immediately
272   visually separable. Defaults: seasons=violet, episodes=cyan. Both
273   admin-editable in /admin/settings. */
274
275/* Watch-page control bar — Auto Play / Auto Next / Focus toggle icons go red
276   in the theme when active. */
277#movie-control .toggle-ctrl.active,
278#movie-control .toggle-ctrl.active i,
279#movie-control .item.active i { color: var(--accent) !important; }
280#movie-control .item .btn:hover i { color: var(--accent) !important; }
281
282/* IMDb badge + quality keep their yellow (intentionally not retinted). */
283
284/* ---- TV browsers (html.tv, set in <head>): search pop-up readable from the sofa, no desktop-only noise ---- */
285.tv #search-modal .modal-dialog{align-items:flex-start;margin-top:3vh}
286.tv #search-modal .modal-dialog-centered{min-height:0}
287.tv #search-modal .modal-title{font-size:1.6rem}
288.tv #search-modal input.form-control{height:60px;font-size:26px;padding:0 18px;color:#fff;background:#0f141b;border:2px solid #4a5563;border-radius:.6rem}
289.tv #search-modal input.form-control:focus{border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.25)}
290.tv #search-modal #sm-echo{display:block;min-height:2.6rem;margin:0 0 .6rem;font-size:30px;line-height:1.2;font-weight:600;color:#fff;word-break:break-word}
291.tv #search-modal #sm-echo:empty::before{content:"Type a title with your remote";color:#7d848d;font-weight:400;font-size:20px}
292.tv #search-modal .suggestion{max-height:42vh}
293.tv #search-modal .suggestion a{font-size:20px;padding:.7rem .9rem!important;gap:1rem!important}
294.tv #search-modal .suggestion a img{width:48px!important;height:72px!important}
295.tv #search-modal .suggestion a:focus{outline:3px solid #fff;outline-offset:-3px;background:#2a323c}
296.tv #search-modal .modal-footer .btn{font-size:20px;padding:.7rem 1.6rem}
297#sm-echo{display:none}
298.tv #tg-toast,.tv .share-keep,.tv .share-links,.tv .sk-text{display:none!important}
299.tv a:focus-visible,.tv button:focus-visible,.tv .bf-card:focus{outline:3px solid #fff;outline-offset:2px}
300.tv header .header-nav > ul > li:focus-within > ul{display:block}
301.tv #opt-panel .opt-pill{font-size:19px;padding:.7rem 1.2rem;min-height:52px}
302.tv #opt-panel .opt-pill:focus{outline:3px solid #fff;outline-offset:2px}
303.tv #movie-episodes .ep-card{font-size:18px;padding:.8rem .9rem}
304.tv #movie-episodes .ep-card:focus{outline:3px solid #fff;outline-offset:2px}
305</style>
306<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" defer></script>
vendor: 1 bytes, line 306
306
307<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js" defer></script>
vendor: 1 bytes, line 307
307
308<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.3/js/bootstrap.min.js" defer></script>
vendor: 1 bytes, line 308
308
309<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/11.0.5/swiper-bundle.min.js" defer></script>
309
310</head>
311<body>
312<header> <div class="container"> <div class="header-wrap">
313<button class="btn ml-0 header-btn" id="nav-btn" type="button"><i class="fa-solid fa-bars"></i></button>
314<a href="/" class="header-logo"><img src="/assets/brands/solarmovies/logo.png" alt="SolarMovies" style="max-height: 2.1rem;"></a>
315<div class="header-nav"><ul>
316<li><a href="/home">Home</a></li>
317<li><a href="javascript:;">Genre</a><ul class="c4">
318<li><a href="/genre/action" title="Action">Action</a></li>
319<li><a href="/genre/action-adventure" title="Action &amp; Adventure">Action &amp; Adventure</a></li>
320<li><a href="/genre/adventure" title="Adventure">Adventure</a></li>
321<li><a href="/genre/animation" title="Animation">Animation</a></li>
322<li><a href="/genre/comedy" title="Comedy">Comedy</a></li>
323<li><a href="/genre/crime" title="Crime">Crime</a></li>
324<li><a href="/genre/documentary" title="Documentary">Documentary</a></li>
325<li><a href="/genre/drama" title="Drama">Drama</a></li>
326<li><a href="/genre/family" title="Family">Family</a></li>
327<li><a href="/genre/fantasy" title="Fantasy">Fantasy</a></li>
328<li><a href="/genre/history" title="History">History</a></li>
329<li><a href="/genre/horror" title="Horror">Horror</a></li>
330<li><a href="/genre/kids" title="Kids">Kids</a></li>
331<li><a href="/genre/music" title="Music">Music</a></li>
332<li><a href="/genre/mystery" title="Mystery">Mystery</a></li>
333<li><a href="/genre/news" title="News">News</a></li>
334<li><a href="/genre/reality" title="Reality">Reality</a></li>
335<li><a href="/genre/romance" title="Romance">Romance</a></li>
336<li><a href="/genre/sci-fi-fantasy" title="Sci-Fi &amp; Fantasy">Sci-Fi &amp; Fantasy</a></li>
337<li><a href="/genre/science-fiction" title="Science Fiction">Science Fiction</a></li>
338<li><a href="/genre/soap" title="Soap">Soap</a></li>
339<li><a href="/genre/talk" title="Talk">Talk</a></li>
340<li><a href="/genre/thriller" title="Thriller">Thriller</a></li>
341<li><a href="/genre/tv-movie" title="TV Movie">TV Movie</a></li>
342<li><a href="/genre/war" title="War">War</a></li>
343<li><a href="/genre/war-politics" title="War &amp; Politics">War &amp; Politics</a></li>
344<li><a href="/genre/western" title="Western">Western</a></li>
345<li class="nav-all"><a href="/genres" title="All genres">All genres →</a></li>
346</ul></li>
347<li><a href="javascript:;">Country</a><ul class="c4">
348<li><a href="/country/argentina" title="Argentina">Argentina</a></li>
349<li><a href="/country/australia" title="Australia">Australia</a></li>
350<li><a href="/country/belgium" title="Belgium">Belgium</a></li>
351<li><a href="/country/brazil" title="Brazil">Brazil</a></li>
352<li><a href="/country/canada" title="Canada">Canada</a></li>
353<li><a href="/country/china" title="China">China</a></li>
354<li><a href="/country/denmark" title="Denmark">Denmark</a></li>
355<li><a href="/country/france" title="France">France</a></li>
356<li><a href="/country/germany" title="Germany">Germany</a></li>
357<li><a href="/country/hong-kong" title="Hong Kong">Hong Kong</a></li>
358<li><a href="/country/india" title="India">India</a></li>
359<li><a href="/country/ireland" title="Ireland">Ireland</a></li>
360<li><a href="/country/italy" title="Italy">Italy</a></li>
361<li><a href="/country/japan" title="Japan">Japan</a></li>
362<li><a href="/country/mexico" title="Mexico">Mexico</a></li>
363<li><a href="/country/netherlands" title="Netherlands">Netherlands</a></li>
364<li><a href="/country/new-zealand" title="New Zealand">New Zealand</a></li>
365<li><a href="/country/norway" title="Norway">Norway</a></li>
366<li><a href="/country/philippines" title="Philippines">Philippines</a></li>
367<li><a href="/country/poland" title="Poland">Poland</a></li>
368<li><a href="/country/romania" title="Romania">Romania</a></li>
369<li><a href="/country/russia" title="Russia">Russia</a></li>
370<li><a href="/country/south-africa" title="South Africa">South Africa</a></li>
371<li><a href="/country/south-korea" title="South Korea">South Korea</a></li>
372<li><a href="/country/spain" title="Spain">Spain</a></li>
373<li><a href="/country/sweden" title="Sweden">Sweden</a></li>
374<li><a href="/country/switzerland" title="Switzerland">Switzerland</a></li>
375<li><a href="/country/taiwan" title="Taiwan">Taiwan</a></li>
376<li><a href="/country/thailand" title="Thailand">Thailand</a></li>
377<li><a href="/country/turkey" title="Turkey">Turkey</a></li>
378<li><a href="/country/united-kingdom" title="United Kingdom">United Kingdom</a></li>
379<li><a href="/country/united-states-of-america" title="United States of America">United States of America</a></li>
380<li class="nav-all"><a href="/countries" title="All countries">All countries →</a></li>
381</ul></li>
382<li><a href="/movie">Movies</a></li>
383<li><a href="/tv">TV-Series</a></li>
384<li><a href="/new-episodes">New Episodes</a></li>
385<li><a href="/trending">Trending</a></li>
386<li><a href="javascript:;">Top 2026</a><ul class="c1" style="width:15.5rem;white-space:nowrap">
387<li><a href="/top-movies-2026" title="Top 2026 Movies">Top 2026 Movies</a></li>
388<li><a href="/top-tv-shows-2026" title="Top 2026 TV Shows">Top 2026 TV Shows</a></li>
389</ul></li>
390<li><a href="/top-imdb">Top IMDb</a></li>
391<li><a href="/browser">Filter</a></li>
392</ul></div>
393<div class="header-right">
394<button class="btn header-btn" type="button" data-bs-toggle="modal" data-bs-target="#search-modal"><i class="fa-solid fa-magnifying-glass"></i></button>
395<div class="user-section"><div class="header-user-menu">
396</div></div>
397</div>
398</div> </div> </header>
399<div id="wrapper" class="index-page">
400<div style="display:none"><h1>Watch Movies and TV Series Free on SolarMovies</h1></div>
401<main>
402<div class="container">
403  <div class="index-upper">
404    <div class="page-title">
405      <div class="logo"><img alt="SolarMovies" src="/assets/brands/solarmovies/logo.png"></div>
406            <h6 style="font-weight:700;font-size:2rem;line-height:1.2;margin:.6rem 0 0;color:#fff">SolarMovies</h6>
407            <div class="links">
408        <a href="/watch/movie-spider-man-brand-new-day-2fymcb0x">Spider-Man: Brand New Day</a>, <a href="/watch/tv-souryo-to-majiwaru-shikiyoku-no-yoru-ni-fycnall9">Souryo to Majiwaru Shikiyoku no Yoru ni...</a>, <a href="/watch/movie-resident-evil-2qrgrcx2">Resident Evil</a>, <a href="/watch/tv-reacher-2pzovm4q">Reacher</a>, <a href="/watch/tv-the-tonight-show-starring-jimmy-fallon-dnkpqg3v">The Tonight Show Starring Jimmy Fallon</a>
409      </div>
410            <div style="margin:.6rem 0;display:flex;justify-content:center"><style nonce="9211d881c254b9db0f3f7eda298e5491">.share-box{display:flex;flex-direction:column;align-items:center;gap:.7rem;max-width:100%;margin:0 auto}.share-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.share-links .sh{display:inline-flex;align-items:center;gap:.5rem;height:2.55rem;padding:0 1.05rem;border:0;border-radius:2rem;color:#fff !important;font-size:.9rem;font-weight:600;line-height:1;text-decoration:none;cursor:pointer;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.28);transition:transform .15s,filter .15s,box-shadow .15s}.share-links .sh i{font-size:1.05rem}.share-links .sh[hidden]{display:none}.share-links .sh:hover,.share-links .sh:focus-visible{transform:translateY(-2px);filter:brightness(1.1);box-shadow:0 8px 20px rgba(0,0,0,.35)}.share-links .sh-copy{background:#3b4250}.share-links .sh-x{box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 4px 14px rgba(0,0,0,.28)}.share-links .sh-more{background:var(--accent)}.share-keep{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.45rem;padding:.45rem .9rem;border-radius:2rem;background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.18);color:#c9cdd3;font-size:.84rem;text-align:center}.share-keep i.fa-star{color:#f5c518}.share-keep b{color:#fff}
410.share-keep kbd{display:inline-block;min-width:1.6rem;padding:.12rem .45rem;border-radius:.3rem;background:#12151a;border:1px solid rgba(255,255,255,.22);border-bottom-width:3px;color:#fff;font:600 .8rem/1.2 ui-monospace,Menlo,monospace}.share-keep .sh-install{margin-left:.2rem;padding:.3rem .8rem;border:0;border-radius:2rem;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}@media (max-width:576px){.share-links{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.share-links .sh{justify-content:center;padding:0 .5rem;font-size:.8rem;gap:.35rem}}</style><div class="share-box"><div class="share-links"><a class="sh" href="https://api.whatsapp.com/send?text=SolarMovies%20https%3A%2F%2Fsolarmovies.gd%2F" target="_blank" rel="noopener nofollow" style="background:#25d366" aria-label="Share on WhatsApp"><i class="fa-brands fa-whatsapp" aria-hidden="true"></i><span>WhatsApp</span></a><a class="sh" href="https://t.me/share/url?url=https%3A%2F%2Fsolarmovies.gd%2F&amp;text=SolarMovies" target="_blank" rel="noopener nofollow" style="background:#229ed9" aria-label="Share on Telegram"><i class="fa-brands fa-telegram" aria-hidden="true"></i><span>Telegram</span></a><a class="sh" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fsolarmovies.gd%2F" target="_blank" rel="noopener nofollow" style="background:#1877f2" aria-label="Share on Facebook"><i class="fa-brands fa-facebook-f" aria-hidden="true"></i><span>Facebook</span></a><a class="sh sh-x" href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fsolarmovies.gd%2F&amp;text=SolarMovies" target="_blank" rel="noopener nofollow" style="background:#0f1419" aria-label="Share on X"><i class="fa-brands fa-x-twitter" aria-hidden="true"></i><span>X</span></a><a class="sh" href="https://www.reddit.com/submit?url=https%3A%2F%2Fsolarmovies.gd%2F&amp;title=SolarMovies" target="_blank" rel="noopener nofollow" style="background:#ff4500" aria-label="Share on Reddit"><i class="fa-brands fa-reddit-alien" aria-hidden="true"></i><span>Reddit</span></a><button type="button" class="sh sh-copy" data-url="https://solarmovies.gd/" aria-label="Copy link"><i class="fa-solid fa-link" aria-hidden="true"></i><span>Copy link</span></button><button type="button" class="sh sh-more" data-url="https://solarmovies.gd/" data-title="SolarMovies" hidden aria-label="More sharing options"><i class="fa-solid fa-share-nodes" aria-hidden="true"></i><span>More…</span></button></div><div class="share-keep" data-brand="SolarMovies"><span class="sk-text"><i class="fa-solid fa-star" aria-hidden="true"></i> Never lose <b>SolarMovies</b> — press <kbd>Ctrl</kbd> + <kbd>D</kbd> to bookmark it</span></div></div>
410<script nonce="9211d881c254b9db0f3f7eda298e5491">(function(){var ua=navigator.userAgent||"",mac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||"")||/Mac OS X/.test(ua),ios=/iPhone|iPad|iPod/.test(ua)||(mac&&navigator.maxTouchPoints>1),android=/Android/i.test(ua),deferred=null;function esc(s){return String(s).replace(/[&<>"]/g,function(c){return {"&":"&amp;","<":"&lt;",">":"&gt;","\"":"&quot;"}[c];});}function paint(){document.querySelectorAll(".share-keep").forEach(function(k){var b="<b>"+esc(k.getAttribute("data-brand"))+"</b>",t=k.querySelector(".sk-text"),star='<i class="fa-solid fa-star" aria-hidden="true"></i> ';if(ios){t.innerHTML=star+"Keep "+b+" one tap away: tap <b>Share</b> <i class=\"fa-solid fa-arrow-up-from-bracket\"></i> then <b>Add to Home Screen</b>";}else if(android){t.innerHTML=star+(deferred?"Keep "+b+" one tap away":"Keep "+b+" one tap away: open the menu <b>⋮</b> → <b>Add to Home screen</b>");if(deferred&&!k.querySelector(".sh-install")){var i=document.createElement("button");i.type="button";i.className="sh-install";i.textContent="Install app";k.appendChild(i);}}else if(mac){t.innerHTML=star+"Never lose "+b+" — press <kbd>⌘</kbd> + <kbd>D</kbd> to bookmark it";}});}if(navigator.share&&(ios||android)){document.querySelectorAll(".sh-more").forEach(function(m){m.hidden=false;});}window.addEventListener("beforeinstallprompt",function(e){e.preventDefault();deferred=e;paint();});document.addEventListener("click",function(e){var c=e.target.closest&&e.target.closest(".sh-copy"),m=e.target.closest&&e.target.closest(".sh-more"),i=e.target.closest&&e.target.closest(".sh-install");if(c){var u=c.getAttribute("data-url"),s=c.querySelector("span"),done=function(){s.textContent="Copied!";setTimeout(function(){s.textContent="Copy link";},1600);};if(navigator.clipboard){navigator.clipboard.writeText(u).then(done,function(){prompt("Copy this link:",u);});}else{prompt("Copy this link:",u);}}if(m){navigator.share({title:m.getAttribute("data-title"),url:m.getAttribute("data-url")}).catch(function(){});}if(i&&deferred){deferred.prompt();deferred=null;i.remove();}});if(document.readyState!=="loading")paint();else document.addEventListener("DOMContentLoaded",paint);})();</script>
410</div>
411    </div>
412    <div class="content-box mt-4 sm">
413      <div class="content-upper">
414        <div id="search">
415          <div class="inner">
416            <form autocomplete="off" action="/browser" method="get">
417              <i class="fa-solid fa-magnifying-glass"></i>
418              <input type="text" name="keyword" placeholder="Search movies">
419              <a href="/browser"><i class="fa-solid fa-filter"></i> Filter</a>
420            </form>
421            <div class="suggestion"></div>
422          </div>
423        </div>
424      </div>
425      <a href="/home" class="btn content-box-btn modal-btn">View Full Site <i class="fa-solid fa-long-arrow-right"></i></a>
426    </div>
427  </div>
428
429      <div class="index-content">
430    <style nonce="9211d881c254b9db0f3f7eda298e5491">
431      /* 2026-09-28 polish: the theme's 15 % margins (30 % on phones) left ~250 px of empty space
432         above the logo, below the search box and under this card — fixed, smaller gaps instead. */
433      #wrapper.index-page .index-upper{margin:3.5rem auto 2.5rem}
434      #wrapper.index-page .index-content{margin-bottom:1.5rem}
435      @media (max-width:700px){#wrapper.index-page .index-upper{margin:2rem auto 1.75rem}}
436      @media (max-width:600px){#wrapper.index-page .index-content{padding:1.4rem 1.1rem}}
437      /* keyboard focus only, in the brand colour (was the browser's blue frame after a click) */
438      .index-content summary:focus{outline:none}
439      .index-content summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:.6rem}
440      .index-content .ic-title{font-size:1.5rem;font-weight:700;color:#fff;margin:0 0 .6rem;line-height:1.3}
441      .index-content .ic-intro{color:#c9cdd3;font-size:.98rem;line-height:1.65;margin:0 0 1.1rem}
442      .index-content .ic-intro strong{color:#fff}
443      .index-content .ic-facts{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.8rem;padding:0;list-style:none}
444      .index-content .ic-facts li{background:#1a1f26;border:1px solid #2a313b;border-radius:1rem;padding:.35rem .8rem;font-size:.82rem;color:#c9cdd3}
445      .index-content .ic-facts li b{color:#fff;margin-right:.25rem}
446      .index-content .ic-group{margin:0 0 1.6rem}
447      .index-content .ic-group>h2{font-size:1.1rem;font-weight:700;color:#fff;margin:0 0 .7rem;display:flex;align-items:center;gap:.5rem}
448      .index-content .ic-group>h2::before{content:"";width:.28rem;height:1.05rem;border-radius:.2rem;background:var(--accent)}
449      .index-content details{background:#1a1f26;border:1px solid #262d36;border-radius:.7rem;margin:0 0 .5rem;transition:border-color .15s}
450      .index-content details[open]{border-color:color-mix(in srgb,var(--accent) 45%,#262d36)}
451      .index-content summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem}
452      .index-content summary::-webkit-details-marker{display:none}
453      .index-content summary h3{margin:0;font-size:.98rem;font-weight:600;color:#e6e9ee;line-height:1.4}
454      .index-content summary::after{content:"+";flex:0 0 auto;width:1.6rem;height:1.6rem;border-radius:50%;background:#262d36;color:#c9cdd3;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.05rem;line-height:1}
455      .index-content details[open] summary::after{content:"−";background:var(--accent);color:#0b0d10}
456      .index-content details p{margin:0;padding:0 1rem 1rem;color:#aab0b8;font-size:.92rem;line-height:1.65}
457      .index-content details p a{color:var(--accent)}
458      @media (max-width:600px){.index-content .ic-title{font-size:1.25rem}.index-content summary{padding:.75rem .85rem}.index-content summary h3{font-size:.92rem}.index-content details p{padding:0 .85rem .9rem}}
459    </style>
460    <h2 class="ic-title">Watch free movies &amp; TV shows on SolarMovies</h2>
461    <p class="ic-intro">Welcome to <strong>solarmovies.gd</strong> — the SolarMovies destination engineered for HD streaming first. Below is everything you need to know about the platform, in straight Q&amp;A form.</p>
462    <ul class="ic-facts">
463      <li><b>115,000+</b>titles</li>      <li><b>94,000+</b>movies</li>      <li><b>20,000+</b>TV shows</li>      <li><b>New</b>episodes daily</li>
464      <li><b>HD</b>streaming</li>
465      <li><b>No</b>sign-up</li>
466    </ul>
467        <section class="ic-group">
468      <h2>About SolarMovies</h2>
469            <details open><summary><h3>What is SolarMovies?</h3></summary><p>A free streaming destination for movies and TV in HD. Tens of thousands of titles across every genre, refreshed daily, no account required, no payment, no friction.</p></details>
470            <details><summary><h3>Is SolarMovies actually free?</h3></summary><p>Completely free. No paywall surprise, no premium upgrade, no hidden fees. The entire library is open.</p></details>
471            <details><summary><h3>Do I need to sign up?</h3></summary><p>No. There is no account system on SolarMovies. No email, no password, no credit card — there&#039;s literally no form to fill out.</p></details>
472            <details><summary><h3>Are there ads on SolarMovies?</h3></summary><p>A few, and we keep them minimal: no banner spam, no pop-ups in the middle of a stream and no &quot;click to continue&quot; walls. The viewing experience comes first.</p></details>
473            <details><summary><h3>Is SolarMovies safe?</h3></summary><p>Yes. There is no account, so no password or payment details can leak, and ads are kept to a minimum. As on any website, keep your browser up to date.</p></details>
474            <details><summary><h3>Is it legal in my country?</h3></summary><p>SolarMovies does not host any files — it lists streams from third-party providers. Laws on streaming differ from country to country, so check the rules where you live.</p></details>
475            <details><summary><h3>What&#039;s the difference between SolarMovies and 123Movies?</h3></summary><p>
475Both are free streaming sites. SolarMovies focuses on a clean player, fast HD playback and as few ads as possible.</p></details>
476          </section>
477        <section class="ic-group">
478      <h2>Watching on SolarMovies</h2>
479            <details><summary><h3>How do I watch?</h3></summary><p>Step 1: Open solarmovies.gd. Step 2: Search by title or scroll genre rows. Step 3: Click the poster. Step 4: Press play. Done.</p></details>
480            <details><summary><h3>Buffering keeps happening — fix?</h3></summary><p>Try another server under the player, or drop the quality from HD to 480p or 360p. If your connection is below ~5 Mbps, that resolves it almost every time.</p></details>
481            <details><summary><h3>Can I download for offline?</h3></summary><p>Not at the moment — SolarMovies is for streaming only.</p></details>
482            <details><summary><h3>Is there an Android app?</h3></summary><p>Not a separate app — but you can add SolarMovies to your phone&#039;s home screen from the browser menu (&quot;Add to Home screen&quot;) and open it like an app.</p></details>
483          </section>
484        <section class="ic-group">
485      <h2>Access &amp; official address</h2>
486            <details><summary><h3>How do I confirm I&#039;m on the real SolarMovies?</h3></summary><p>Polished UI + fast HD playback + minimal ads. The canonical URL right now is solarmovies.gd.</p></details>
487            <details><summary><h3>I heard SolarMovies got shut down — true?</h3></summary><p>The brand has had downtime episodes, but the current site is healthy and actively maintained.</p></details>
488            <details><summary><h3>The site isn&#039;t loading — why?</h3></summary><p>Check https://downforeveryoneorjustme.com/ to confirm whether it&#039;s a global issue. If it&#039;s just your end, refresh, restart your router, or switch DNS.</p></details>
489            <details><summary><h3>What if SolarMovies is down?</h3></summary><p>Join the SolarMovies <a href="https://t.me/+7YjmLuJQrclmZWE0" target="_blank" rel="noopener">Telegram channel</a> — it always has the current address, so you never lose the site.</p></details>
490          </section>
491        <div class="text-center mt-5">
492      <a href="/home" class="btn btn-lg btn-primary text-body-emphasis" style="font-weight: 500;">Go to SolarMovies <i class="fa-solid fa-arrow-circle-right ml-2"></i></a>
493    </div>
494  </div>
495  <section class="idx-links" aria-label="Explore SolarMovies">
496    <style nonce="9211d881c254b9db0f3f7eda298e5491">
497      .idx-links{margin:0 0 4rem;padding:2.5rem;border-radius:.8rem;background-color:#1e242c;border:1px solid rgba(255,255,255,.04)}
498      .idx-links h2{font-size:1.15rem;font-weight:700;color:#fff;margin:1.8rem 0 .8rem;display:flex;align-items:center;gap:.5rem}
499      .idx-links h2:first-of-type{margin-top:0}
500      .idx-links h2::before{content:"";width:.28rem;height:1.05rem;border-radius:.2rem;background:var(--accent)}
501      .idx-links ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.45rem .9rem}
502      .idx-links li{min-width:0}
503      .idx-links li a{display:flex;align-items:baseline;gap:.4rem;color:#d7dbe0;text-decoration:none;font-size:.9rem;line-height:1.35;padding:.2rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
504      .idx-links li a span{overflow:hidden;text-overflow:ellipsis}
505      .idx-links li a small{flex:0 0 auto;color:#7d848d;font-size:.74rem}
506      .idx-links li a:hover{color:var(--accent)}
507      .idx-links .idx-hubs{display:flex;flex-wrap:wrap;gap:.45rem}
508      .idx-links .idx-hubs a{display:inline-block;padding:.38rem .8rem;border-radius:1rem;background:#1a1f26;border:1px solid #2a313b;color:#e6e9ee;font-size:.84rem;font-weight:600;text-decoration:none;transition:border-color .15s,color .15s}
509      .idx-links .idx-hubs a:hover{border-color:var(--accent);color:#fff}
510      @media (max-width:600px){.idx-links{padding:1.4rem 1.1rem;margin-bottom:2.5rem}.idx-links ul{grid-template-columns:1fr 1fr;gap:.35rem .7rem}.idx-links li a{font-size:.84rem}}
511    </style>
512        <h2>Popular on SolarMovies right now</h2>
513    <ul>
514            <li><a href="/watch/tv-law-order-special-victims-unit-1rqosmg5" title="Watch Law &amp; Order: Special Victims Unit free"><span>Law &amp; Order: Special Victims Unit</span><small>TV · 1999</small></a></li>
515            <li><a href="/watch/tv-the-late-show-with-stephen-colbert-p76c4lj4" title="Watch The Late Show with Stephen Colbert free"><span>The Late Show with Stephen Colbert</span><small>TV · 2015</small></a></li>
516            <li><a href="/watch/tv-lanterns-1in1qc40" title="Watch Lanterns free"><span>Lanterns</span><small>TV · 2026</small></a></li>
517            <li><a href="/watch/tv-the-mentalist-2gq2eioy" title="Watch The Mentalist free"><span>The Mentalist</span><small>TV · 2008</small></a></li>
518            <li><a href="/watch/tv-running-man-292nu11c" title="Watch Running Man free"><span>Running Man</span><small>TV · 2010</small></a></li>
519            <li>
519<a href="/watch/movie-the-odyssey-18ts23wq" title="Watch The Odyssey free"><span>The Odyssey</span><small>Movie · 2026</small></a></li>
520            <li><a href="/watch/tv-grey-s-anatomy-rwfyw28x" title="Watch Grey&#039;s Anatomy free"><span>Grey&#039;s Anatomy</span><small>TV · 2005</small></a></li>
521            <li><a href="/watch/tv-the-simpsons-119tigjc" title="Watch The Simpsons free"><span>The Simpsons</span><small>TV · 1989</small></a></li>
522            <li><a href="/watch/tv-the-office-21pxa746" title="Watch The Office free"><span>The Office</span><small>TV · 2005</small></a></li>
523            <li><a href="/watch/tv-law-order-cpf7mhi2" title="Watch Law &amp; Order free"><span>Law &amp; Order</span><small>TV · 1990</small></a></li>
524            <li><a href="/watch/tv-mobland-1c42woax" title="Watch MobLand free"><span>MobLand</span><small>TV · 2025</small></a></li>
525            <li><a href="/watch/tv-doraemon-1b5y3s0s" title="Watch Doraemon free"><span>Doraemon</span><small>TV · 2005</small></a></li>
526          </ul>
527            <h2>New episodes this week</h2>
528    <ul>
529            <li><a href="/watch/tv-lanterns-1in1qc40" title="Watch Lanterns new episode"><span>Lanterns</span><small>S1 E8</small></a></li>
530            <li><a href="/watch/tv-mobland-1c42woax" title="Watch MobLand new episode"><span>MobLand</span><small>S2 E4</small></a></li>
531            <li><a href="/watch/tv-ncis-34zjbzxl" title="Watch NCIS new episode"><span>NCIS</span><small>S24 E1</small></a></li>
532            <li><a href="/watch/tv-american-horror-story-1r0wsq9t" title="Watch American Horror Story new episode"><span>American Horror Story</span><small>S13 E6</small></a></li>
533            <li><a href="/watch/tv-ted-lasso-3iqknqh9" title="Watch Ted Lasso new episode"><span>Ted Lasso</span><small>S4 E10</small></a></li>
534            <li><a href="/watch/tv-slow-horses-3g4obrsp" title="Watch Slow Horses new episode"><span>Slow Horses</span><small>S6 E4</small></a></li>
535            <li><a href="/watch/tv-saturday-night-live-d5h4l" title="Watch Saturday Night Live new episode"><span>Saturday Night Live</span><small>S52 E2</small></a></li>
536            <li><a href="/watch/tv-chicago-p-d-1sg7l9qo" title="Watch Chicago P.D. new episode"><span>Chicago P.D.</span><small>S14 E1</small></a></li>
537          </ul>
538        <h2>Explore SolarMovies</h2>
539    <div class="idx-hubs">
540      <a href="/movie">Free movies</a><a href="/tv">TV series</a><a href="/new-episodes">New episodes</a><a href="/new-releases">New releases</a><a href="/trending">Trending now</a><a href="/top-imdb">Top IMDb</a><a href="/top-movies-2026">Top 2026 movies</a><a href="/top-tv-shows-2026">Top 2026 TV shows</a><a href="/genre/action">Action</a><a href="/genre/comedy">Comedy</a><a href="/genre/drama">Drama</a><a href="/genre/horror">Horror</a><a href="/genre/thriller">Thriller</a><a href="/genre/animation">Animation</a><a href="/genre/documentary">Documentary</a><a href="/genres">All genres</a><a href="/countries">All countries</a>    </div>
541  </section>
542</div>
543</main>
544<footer class="bf-footer">
545  <div class="container">
546    <div class="bf-footer__grid">
547
548      <!-- Brand column -->
549      <div class="bf-footer__col bf-footer__brand">
550        <a href="/" class="bf-footer__logo"><img src="/assets/brands/solarmovies/logo.png" alt="SolarMovies"></a>
551        <p class="bf-footer__desc">A free hub for high-quality movies and shows.</p>
552        <p class="bf-footer__legal">Disclaimer: This site does not store any files on its server. All contents are provided by non-affiliated third parties.</p>
553                <div class="bf-footer__social">
554                    <a href="https://t.me/+7YjmLuJQrclmZWE0" target="_blank" rel="noopener" aria-label="Telegram"><i class="fa-brands fa-telegram"></i></a>                  </div>
555              </div>
556
557      <!-- Genres column -->
558            <div class="bf-footer__col">
559        <h4 class="bf-footer__h">Genres</h4>
560        <ul>
561                      <li><a href="/genre/drama">Drama</a></li>
562                      <li><a href="/genre/comedy">Comedy</a></li>
563                      <li><a href="/genre/documentary">Documentary</a></li>
564                      <li><a href="/genre/thriller">Thriller</a></li>
565                      <li><a href="/genre/crime">
565Crime</a></li>
566                      <li><a href="/genre/horror">Horror</a></li>
567                      <li><a href="/genres">All genres →</a></li>
568        </ul>
569      </div>
570      
571      <!-- Countries column -->
572            <div class="bf-footer__col">
573        <h4 class="bf-footer__h">Country</h4>
574        <ul>
575                      <li><a href="/country/united-states-of-america">United States of America</a></li>
576                      <li><a href="/country/united-kingdom">United Kingdom</a></li>
577                      <li><a href="/country/canada">Canada</a></li>
578                      <li><a href="/country/france">France</a></li>
579                      <li><a href="/country/japan">Japan</a></li>
580                      <li><a href="/country/germany">Germany</a></li>
581                      <li><a href="/countries">All countries →</a></li>
582        </ul>
583      </div>
584      
585      <!-- Watch column -->
586      <div class="bf-footer__col">
587        <h4 class="bf-footer__h">Watch Free</h4>
588        <ul>
589          <li><a href="/home">Home</a></li>
590          <li><a href="/movie">Movies</a></li>
591          <li><a href="/tv">TV-Series</a></li>
592          <li><a href="/new-episodes">New Episodes</a></li>
593          <li><a href="/new-releases">New Releases</a></li>
594          <li><a href="/trending">Trending</a></li>
595          <li><a href="/top-imdb">Top IMDb</a></li>
596          <li><a href="/updates">Recently Updated</a></li>
597          <li><a href="/browser">Search &amp; Filter</a></li>
598        </ul>
599      </div>
600
601      <!-- Help column -->
602      <div class="bf-footer__col">
603        <h4 class="bf-footer__h">Help</h4>
604        <ul>
605          <li><a href="/browser">Browse</a></li>
606          <li><a href="/sitemap.xml">Sitemap</a></li>
607        </ul>
608      </div>
609
610    </div>
611
612    <div class="bf-footer__bottom">
613      <span>Trailers shown here are official content embedded from YouTube. Watch the full titles on the rights-holders' official streaming platforms.</span>
614      <span class="bf-footer__copy">© 2026 SolarMovies. All rights reserved.</span>
615    </div>
616  </div>
617
618  <style nonce="9211d881c254b9db0f3f7eda298e5491">
619    .bf-footer{ margin-top:3rem; padding:2.5rem 0 1.5rem; background:rgba(13,15,18,.55); border-top:1px solid rgba(255,255,255,.05); }
620    .bf-footer__grid{
621      display:grid;
622      grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr;
623      gap:2rem 2.5rem;
624      align-items:flex-start;
625    }
626    .bf-footer__brand{ padding-right:1rem; }
627    .bf-footer__logo img{ height:2rem; max-width:160px; object-fit:contain; display:block; margin-bottom:.9rem; }
628    .bf-footer__desc{ color:#a8aeb6; font-size:.85rem; line-height:1.55; margin:0 0 .8rem; }
629    .bf-footer__legal{ color:#7d848d; font-size:.78rem; line-height:1.5; margin:0 0 .9rem; }
630    .bf-footer__social{ display:flex; gap:.6rem; }
631    .bf-footer__social a{
632      display:inline-flex; align-items:center; justify-content:center;
633      width:2.2rem; height:2.2rem; border-radius:50%;
634      background:rgba(255,255,255,.06); color:#c9cdd3;
635      text-decoration:none; transition:background .15s ease, color .15s ease;
636    }
637    .bf-footer__social a:hover{ background:var(--accent); color:#fff; }
638
639    .bf-footer__h{
640      color:#fff; font-size:.78rem; font-weight:600;
641      text-transform:uppercase; letter-spacing:.08em;
642      margin:0 0 .9rem;
643    }
644    .bf-footer__col ul{ list-style:none; padding:0; margin:0; }
645    .bf-footer__col li{ margin-bottom:.45rem; }
646    .bf-footer__col a{
647      color:#a8aeb6; text-decoration:none; font-size:.88rem;
648      transition:color .15s ease;
649    }
650    .bf-footer__col a:hover{ color:var(--accent); }
651
652    .bf-footer__bottom{
653      margin-top:2rem; padding-top:1.2rem;
654      border-top:1px solid rgba(255,255,255,.05);
655      display:flex; justify-content:space-between; align-items:center;
656      gap:1rem; flex-wrap:wrap;
657      color:#7d848d; font-size:.78rem;
658    }
659    .bf-footer__copy{ white-space:nowrap; }
660
661    @media (max-width: 1100px){
662      .bf-footer__grid{ grid-template-columns: 1fr 1fr 1fr; }
663      .bf-footer__brand{ grid-column: 1 / -1; padding-right:0; }
664    }
665    @media (max-width: 640px){
666      .bf-footer__grid{ grid-template-columns: 1fr 1fr; gap:1.5rem; }
667      .bf-footer__bottom{ flex-direction:column; align-items:flex-start; }
668    }
669  </style>
670</footer>
671<div class="modal fade" id="search-modal" tabindex="-1" aria-hidden="true">
672  <div class="modal-dialog modal-dialog-centered">
673    <div class="modal-content content-box">
674      <button type="button" class="btn-close modal-close" data-bs-dismiss="modal" aria-label="Close"></button>
675      <form method="get" action="/browser">
676        <div class="modal-body content-upper p-4">
677          <div class="modal-title mb-3">Search</div>
678          <div id="sm-echo" aria-live="polite"></div>
679          <input class="form-control" type="text" name="keyword" placeholder="Search movies & TV-shows by title or IMDb id" autofocus autocomplete="off">
680        </div>
681        <div class="modal-footer"><button type="submit" class="btn content-box-btn">Search</button></div>
682      </form>
683    </div>
684  </div>
685</div>
686<style>
687  /* Skeleton shimmer for lazy-loaded posters */
688  @keyframes _skelpulse { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
689  .movie-cards .item .poster img.lazyload:not(.loaded),
690  .swiper-slide.poster img:not(.loaded),
691  #movie-detail .poster img:not(.loaded) {
692    background: linear-gradient(110deg, #1e242c 30%, #2a313b 50%, #1e242c 70%) 0 0/200% 100% no-repeat;
693    animation: _skelpulse 1.4s ease-in-out infinite;
694  }
695  .movie-cards .item .poster img.loaded,
696  .swiper-slide.poster img.loaded,
697  #movie-detail .poster img.loaded { animation: none; background: none; }
698
699</style>
700<script nonce="9211d881c254b9db0f3f7eda298e5491">
701(function(){
702  // --- Skeleton fade-in: mark images .loaded once they fire onload ---
703  function bindLoad(img){
704    if (img.complete && img.naturalWidth > 0) { img.classList.add('loaded'); return; }
705    img.addEventListener('load',  function(){ img.classList.add('loaded'); }, { once: true });
706    img.addEventListener('error', function(){ img.classList.add('loaded'); }, { once: true });
707  }
708  document.querySelectorAll('img').forEach(bindLoad);
709  new MutationObserver(function(muts){
710    muts.forEach(function(m){
711      m.addedNodes.forEach(function(n){
712        if (n.nodeType !== 1) return;
713        (n.tagName === 'IMG' ? [n] : (n.querySelectorAll ? n.querySelectorAll('img') : [])).forEach(bindLoad);
714      });
715    });
716  }).observe(document.documentElement, { childList: true, subtree: true });
717
718  // --- Predictive prefetch on link hover (desktop only, 120ms debounce) ---
719  if (window.matchMedia && window.matchMedia('(hover: hover)').matches) {
720    var prefetched = new Set();
721    document.addEventListener('mouseover', function(e){
722      var a = e.target.closest('a[href^="/watch/"], a[href^="/movie"], a[href^="/tv"], a[href^="/genre/"], a[href^="/country/"]');
723      if (!a) return;
724      var href = a.getAttribute('href');
725      if (!href || prefetched.has(href)) return;
726      clearTimeout(a._pf);
727      a._pf = setTimeout(function(){
728        prefetched.add(href);
729        var l = document.createElement('link');
730        l.rel = 'prefetch'; l.href = href; l.as = 'document';
731        document.head.appendChild(l);
732      }, 120);
733    }, true);
734    document.addEventListener('mouseout', function(e){
735      var a = e.target.closest('a');
736      if (a && a._pf) { clearTimeout(a._pf); a._pf = null; }
737    }, true);
738  }
739
740  // --- Global delegated handlers replacing inline onclick / onsubmit ---
741  document.addEventListener('click', function(e){
742    var b = e.target.closest('[data-back2top]');
743    if (b) { e.preventDefault(); window.scrollTo({ top: 0, behavior: 'smooth' }); }
744  });
745  document.addEventListener('submit', function(e){
746    var f = e.target.closest('form[data-confirm]');
747    if (!f) return;
748    if (!window.confirm(f.getAttribute('data-confirm'))) e.preventDefault();
749  });
750
751  // --- Keyboard shortcuts ---
752  document.addEventListener('keydown', function(e){
753    if (/INPUT|TEXTAREA|SELECT/.test(e.target.tagName || '') || e.target.isContentEditable) return;
754    if (e.ctrlKey || e.metaKey || e.altKey) return;
755    switch (e.key) {
756      case '/': e.preventDefault(); {
757        var m = document.getElementById('search-modal');
758        if (m && window.bootstrap) bootstrap.Modal.getOrCreateInstance(m).show();
759      } break;
760      case 'f': {
761        var ifr = document.getElementById('embed-iframe');
762        if (ifr && ifr.requestFullscreen) ifr.requestFullscreen().catch(function(){});
763      } break;
764      case 'j': case 'k': {
765        var sel = e.key === 'j' ? '#movie-control .next:not([disabled])' : '#movie-control .prev:not([disabled])';
766        var btn = document.querySelector(sel);
767        if (btn && btn.tagName === 'A') window.location.href = btn.getAttribute('href');
768      } break;
769    }
770  });
771
772  // Service worker retired (it could serve stale HTML with a mismatched CSP
773  // nonce). Don't register a new one. Any worker already installed on a
774  // visitor's device updates itself to the self-destruct stub at /sw.js on
775  // their next navigation and unregisters — no action needed here.
776
777  // --- Toast (bottom-right popup, reusable site-wide) ---
778  window.showToast = function(msg, kind){
779    var host = document.getElementById('toast-host');
780    if (!host) {
781      host = document.createElement('div');
782      host.id = 'toast-host';
783      host.style.cssText = 'position:fixed;right:1rem;bottom:1rem;z-index:10050;display:flex;flex-direction:column;gap:.5rem;max-width:90vw;pointer-events:none';
784      document.body.appendChild(host);
785    }
786    var bg = kind === 'error' ? 'var(--accent)' : (kind === 'info' ? '#1e242c' : '#198754');
787    var t = document.createElement('div');
788    t.style.cssText = 'background:' + bg + ';color:#fff;padding:.8rem 1.1rem;border-radius:.6rem;box-shadow:0 6px 24px rgba(0,0,0,.45);font-size:.95rem;font-weight:500;pointer-events:auto;transform:translateY(20px);opacity:0;transition:transform .25s ease,opacity .25s ease';
789    t.textContent = msg;
790    host.appendChild(t);
791    requestAnimationFrame(function(){ t.style.transform='translateY(0)'; t.style.opacity='1'; });
792    setTimeout(function(){
793      t.style.transform='translateY(20px)'; t.style.opacity='0';
794      setTimeout(function(){ t.remove(); }, 300);
795    }, 3000);
796  };
797
798  // Mobile nav drawer toggle — works with bflix's @media (≤1059px) styling that
799  // positions .header-nav as an absolute dropdown and hides its <ul> by default.
800  // We just toggle the <ul>'s display.
801  document.addEventListener('click', function(e){
802    var btn = e.target.closest('#nav-btn');
803    var navUl = document.querySelector('header .header-nav > ul');
804    if (btn) {
805      if (navUl) navUl.style.display = (navUl.style.display === 'block') ? '' : 'block';
806      e.stopPropagation();
807      return;
808    }
809    // Click outside the dropdown closes it
810    if (navUl && navUl.style.display === 'block' &&
811        !e.target.closest('.header-nav') && !e.target.closest('#nav-btn')) {
812      navUl.style.display = '';
813    }
814  });
815  // On mobile, second-level dropdowns (Genre, Country sublists) toggle their own <ul>
816  document.addEventListener('click', function(e){
817    if (window.innerWidth > 1059) return;
818    var a = e.target.closest('header .header-nav > ul > li > a[href="javascript:;"]');
819    if (!a) return;
820    e.preventDefault();
821    var sub = a.parentElement.querySelector('ul');
822    if (sub) sub.style.display = (sub.style.display === 'block') ? '' : 'block';
823  });
824
825  // Search autocomplete inside #search-modal
826  var sm = document.getElementById('search-modal');
827  if (sm) {
828    var input = sm.querySelector('input[name="keyword"]');
829    if (input) {
830      var box;
831      var timer;
832      var echo = document.getElementById('sm-echo');
833      input.addEventListener('input', function(){
834        clearTimeout(timer);
835        if (echo) echo.textContent = input.value;
836        var q = input.value.trim();
837        if (q.length < 2) { if (box) box.innerHTML = ''; return; }
838        timer = setTimeout(function(){
839          fetch('/api/suggest?q=' + encodeURIComponent(q))
840            .then(function(r){ return r.json(); })
841            .then(function(items){
842              if (!box) {
843                box = document.createElement('div');
844                box.className = 'suggestion';
845                box.style.cssText = 'background:#1e242c;border-radius:.5rem;margin-top:.5rem;max-height:60vh;overflow:auto';
846                input.parentNode.appendChild(box);
847              }
848              box.innerHTML = items.map(function(i){
849                return '<a href="' + i.url + '" style="display:flex;align-items:center;gap:.7rem;padding:.5rem .7rem;color:#fff;text-decoration:none">' +
850                  (i.poster ? '<img src="' + i.poster + '" style="width:36px;height:54px;object-fit:cover;border-radius:.25rem">' : '') +
851                  '<div><div style="font-weight:500">' + (i.title||'') + '</div><div style="color:#989ea6;font-size:.85rem">' + (i.type==='tv'?'TV':'Movie') + (i.year?(' · '+i.year):'') + '</div></div>' +
852                  '</a>';
853              }).join('');
854            }).catch(function(){});
855        }, 200);
856      });
857    }
858  }
859
860  function initAll(){
861    // Tab switching for any .super-wnav[data-tabs] inside a section
862    document.querySelectorAll('.super-wnav[data-tabs]').forEach(function(nav){
863      if (nav.dataset.tabsInit) return; nav.dataset.tabsInit = '1';
864      nav.addEventListener('click', function(e){
865        var t = e.target.closest('.tab');
866        if (!t) return;
867        var id = t.getAttribute('data-id');
868        var sec = nav.closest('section');
869        if (!sec) return;
870        nav.querySelectorAll('.tab').forEach(function(x){ x.classList.toggle('active', x === t); });
871        // 2026-09-25: a "View All" next to the tabs follows the active tab (Best-of row on /home)
872        var lnk = sec.querySelector('a[data-tab-link]');
873        if (lnk) { try { var m = JSON.parse(lnk.getAttribute('data-links') || '{}'); if (m[id]) lnk.href = m[id]; } catch(e){} }
874        sec.querySelectorAll(':scope > .tab-body').forEach(function(b){
875          var match = (b.getAttribute('data-id') === id);
876          b.style.display = match ? '' : 'none';
877          if (match) {
878            // Recalc any swipers inside the newly visible tab-body
879            b.querySelectorAll('.swiper').forEach(function(sw){ if (sw.swiper) sw.swiper.update(); });
880          }
881        });
882      });
883      // Initial: hide non-active tab-bodies
884      var sec = nav.closest('section');
885      var activeId = (nav.querySelector('.tab.active') || {}).getAttribute && nav.querySelector('.tab.active').getAttribute('data-id');
886      if (sec && activeId) {
887        sec.querySelectorAll(':scope > .tab-body').forEach(function(b){
888          b.style.display = (b.getAttribute('data-id') === activeId) ? '' : 'none';
889        });
890      }
891    });
892
893    // Make .swiper-slide[href] clickable (bflix featured pattern)
894    document.querySelectorAll('.swiper-slide[href]').forEach(function(el){
895      if (el.dataset.clickInit) return; el.dataset.clickInit = '1';
896      el.style.cursor = 'pointer';
897      el.addEventListener('click', function(e){
898        if (e.target.closest('a, button, .dropdown')) return;
899        window.location.href = el.getAttribute('href');
900      });
901    });
902
903    if (typeof Swiper === 'undefined') return;
904
905    // Card sliders (home + watch-related). For tabbed sliders the prev/next
906    // in section-top should drive whichever tab-body is currently active.
907    document.querySelectorAll('section.slider .swiper:not(.featured):not(.featured-thumb)').forEach(function(el){
908      if (el.dataset.swiperInit) return; el.dataset.swiperInit = '1';
909      var sec = el.closest('section');
910      var prevBtn = sec.querySelector('.head-right .super-wnav .prev, .head-right .super-wnav .next-prev .prev');
911      var nextBtn = sec.querySelector('.head-right .super-wnav .next, .head-right .super-wnav .next-prev .next');
912      // slidesPerView: 'auto' lets bflix's CSS .movie-cards.md .item width rules
913      // determine slide size (matches the grid widths exactly across breakpoints).
914      var sw = new Swiper(el, {
915        slidesPerView: 'auto',
916        spaceBetween: 0,
917        slidesPerGroupAuto: true,
918        // Enable touch swipe + mouse drag as fallback so users can navigate
919        // even if the prev/next buttons fail to bind (e.g. CSP race conditions).
920        touchEventsTarget: 'wrapper',
921        grabCursor: true,
922        watchOverflow: true,
923        resistanceRatio: 0
924      });
925      // Wire shared prev/next (single set per section) — only act on active tab-body's swiper
926      function activeSwiper(){
927        var bodies = sec.querySelectorAll(':scope > .tab-body');
928        if (!bodies.length) return el.swiper;
929        for (var i = 0; i < bodies.length; i++) {
930          if (bodies[i].style.display !== 'none') {
931            var s = bodies[i].querySelector('.swiper');
932            return s ? s.swiper : null;
933          }
934        }
935        return null;
936      }
937      if (prevBtn && !prevBtn.dataset.wired) {
938        prevBtn.dataset.wired = '1';
939        prevBtn.addEventListener('click', function(){ var s = activeSwiper(); if (s) s.slidePrev(); });
940      }
941      if (nextBtn && !nextBtn.dataset.wired) {
942        nextBtn.dataset.wired = '1';
943        nextBtn.addEventListener('click', function(){ var s = activeSwiper(); if (s) s.slideNext(); });
944      }
945    });
946
947    // #featured hero + thumb strip (linked)
948    var feat  = document.querySelector('#featured .swiper.featured');
949    var thumb = document.querySelector('#featured .swiper.featured-thumb');
950    if (feat && !feat.dataset.swiperInit) {
951      feat.dataset.swiperInit = '1';
952      var sec = feat.closest('#featured');
953      var thumbInstance = null;
954      if (thumb && !thumb.dataset.swiperInit) {
955        thumb.dataset.swiperInit = '1';
956        thumbInstance = new Swiper(thumb, {
957          slidesPerView: 1, spaceBetween: 0, watchSlidesProgress: true
958        });
959      }
960      new Swiper(feat, {
961        slidesPerView: 1, loop: false,
962        autoplay: { delay: 6500, disableOnInteraction: false },
963        navigation: {
964          prevEl: sec.querySelector('.featured-prev'),
965          nextEl: sec.querySelector('.featured-next')
966        },
967        thumbs: thumbInstance ? { swiper: thumbInstance } : undefined,
968        pagination: {
969          el: sec.querySelector('.featured-pagination'), type: 'fraction'
970        }
971      });
972    }
973  }
974  if (document.readyState === 'loading') {
975    document.addEventListener('DOMContentLoaded', initAll);
976  } else { initAll(); }
977  window.addEventListener('load', initAll);
978})();
979</script>
979
980<!-- Histats.com  START  (async). Always-on, site-wide counter — separate from
981     the admin-configured per-brand analytics below so this fires on the homepage
982     too (the brand analytics is intentionally skipped on /). One shared Histats
983     ID across all brands; admin pages don't include this (they use _admin_footer). -->
984<script type="text/javascript">var _Hasync= _Hasync|| [];
985_Hasync.push(['Histats.start', '1,4739166,4,0,0,0,00010000']);
986_Hasync.push(['Histats.fasi', '1']);
987_Hasync.push(['Histats.track_hits', '']);
988(function() {
989function go() {
990var hs = document.createElement('script'); hs.type = 'text/javascript'; hs.async = true;
991hs.src = ('//s10.histats.com/js15_as.js');
992(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(hs);
993}
994var p = window.__hv; if (p && p.then) { var t = setTimeout(go, 1500); p.then(function(ok){ clearTimeout(t); if (ok !== false) go(); }, function(){ clearTimeout(t); go(); }); } else go();
995})();</script>
995
996<noscript><a href="/" target="_blank"><img src="//sstatic1.histats.com/0.gif?4739166&101" alt="blog counter" border="0"></a></noscript>
997<!-- Histats.com  END  -->
998<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"9d3fe75cfd784d7daa306095c713f18d","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 998
998
999<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a481c17d2b580aad',t:'MTc5MTU5NDczNg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
999</body></html>
1000</div>
1001</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.