PageSourceSearch

https://www.wirtualnemedia.pl/wskaznik/

html wirtualnemedia.pl collected 2026-10-02 02:21:32 UTC 40,562 bytes, 437 lines download raw bytes

1<!DOCTYPE html>
2<html lang="pl" prefix="og: https://ogp.me/ns#">
3<head>
4<meta charset="UTF-8">
5<meta name="viewport" content="width=device-width, initial-scale=1.0">
6
7<!-- ═══════════════════════════════════════════════
8     PODSTAWOWE META TAGI SEO
9════════════════════════════════════════════════ -->
10<title>Wirtualny Wskaźnik Wpływu (WWW) — Ranking polskich mediów cyfrowych | Wirtualne Media</title>
11<meta name="description" content="Wirtualny Wskaźnik Wpływu (WWW) — autorski ranking polskich mediów cyfrowych publikowany co miesiąc przez serwis Wirtualne Media. Analizujemy ok. 160 marek wg 14 kategorii danych: ruch, social media, cytowania.">
12<meta name="keywords" content="Wirtualny Wskaźnik Wpływu, ranking mediów, polskie media cyfrowe, Wirtualne Media, ranking wydawców, Onet, Wirtualna Polska, Interia, archiwum raportów, social media">
13<meta name="author" content="Wirtualne Media">
14<meta name="publisher" content="Wirtualne Media Sp. z o.o.">
15<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
16<meta name="googlebot" content="index, follow">
17<meta name="language" content="Polish">
18<meta name="geo.region" content="PL">
19<meta name="geo.placename" content="Polska">
20<link rel="canonical" href="https://www.wirtualnemedia.pl/wskaznik/">
21
22<!-- ═══════════════════════════════════════════════
23     OPEN GRAPH
24════════════════════════════════════════════════ -->
25<meta property="og:type" content="website">
26<meta property="og:site_name" content="Wirtualne Media">
27<meta property="og:title" content="Wirtualny Wskaźnik Wpływu — Ranking polskich mediów cyfrowych">
28<meta property="og:description" content="Autorski miesięczny ranking polskich mediów cyfrowych. Archiwum wszystkich edycji od września 2025. 14 kategorii danych, 160 marek.">
29<meta property="og:url" content="https://www.wirtualnemedia.pl/wskaznik/">
30<meta property="og:image" content="https://www.wirtualnemedia.pl/wskaznik/og-wskaznik.jpg">
31<meta property="og:image:width" content="1200">
32<meta property="og:image:height" content="630">
33<meta property="og:image:alt" content="Wirtualny Wskaźnik Wpływu — archiwum miesięcznych raportów">
34<meta property="og:locale" content="pl_PL">
35
36<!-- ═══════════════════════════════════════════════
37     TWITTER / X CARDS
38════════════════════════════════════════════════ -->
39<meta name="twitter:card" content="summary_large_image">
40<meta name="twitter:site" content="@wirtualnemedia">
41<meta name="twitter:creator" content="@wirtualnemedia">
42<meta name="twitter:title" content="Wirtualny Wskaźnik Wpływu — Ranking polskich mediów cyfrowych">
43<meta name="twitter:description" content="Autorski miesięczny ranking polskich mediów cyfrowych. Archiwum wszystkich edycji.">
44<meta name="twitter:image" content="https://www.wirtualnemedia.pl/wskaznik/og-wskaznik.jpg">
45
46<!-- ═══════════════════════════════════════════════
47     SCHEMA.ORG — JSON-LD
48════════════════════════════════════════════════ -->
49<script type="application/ld+json">
50{
51  "@context": "https://schema.org",
52  "@graph": [
53    {
54      "@type": "WebSite",
55      "@id": "https://www.wirtualnemedia.pl/wskaznik/#website",
56      "url": "https://www.wirtualnemedia.pl/wskaznik/",
57      "name": "Wirtualny Wskaźnik Wpływu",
58      "description": "Miesięczny ranking polskich mediów cyfrowych",
59      "inLanguage": "pl",
60      "publisher": { "@id": "https://www.wirtualnemedia.pl/#organization" }
61    },
62    {
63      "@type": "Organization",
64      "@id": "https://www.wirtualnemedia.pl/#organization",
65      "name": "Wirtualne Media",
66      "url": "https://www.wirtualnemedia.pl",
67      "logo": {
68        "@type": "ImageObject",
69        "url": "https://www.wirtualnemedia.pl/logo.png"
70      },
71      "sameAs": [
72        "https://twitter.com/wirtualnemedia",
73        "https://www.facebook.com/wirtualnemedia",
74        "https://www.linkedin.com/company/wirtualnemedia"
75      ]
76    },
77    {
78      "@type": "CollectionPage",
79      "@id": "https://www.wirtualnemedia.pl/wskaznik/",
80      "url": "https://www.wirtualnemedia.pl/wskaznik/",
81      "name": "Wirtualny Wskaźnik Wpływu — archiwum raportów",
82      "description": "Archiwum miesięcznych raportów rankingu polskich mediów cyfrowych",
83      "inLanguage": "pl",
84      "isPartOf": { "@id": "https://www.wirtualnemedia.pl/wskaznik/#website" },
85      "breadcrumb": { "@id": "https://www.wirtualnemedia.pl/wskaznik/#breadcrumb" }
86    },
87    {
88      "@type": "BreadcrumbList",
89      "@id": "https://www.wirtualnemedia.pl/wskaznik/#breadcrumb",
90      "itemListElement": [
91        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://www.wirtualnemedia.pl" },
92        { "@type": "ListItem", "position": 2, "name": "Wirtualny Wskaźnik Wpływu", "item": "https://www.wirtualnemedia.pl/wskaznik/" }
93      ]
94    },
95    {
96      "@type": "ItemList",
97      "name": "Miesięczne raporty WWW",
98      "itemListElement": [
99        { "@type": "ListItem", "position": 1, "name": "Sierpień 2026", "url": "https://www.wirtualnemedia.pl/wskaznik/www-sierpien2026.html" },
100        { "@type": "ListItem", "position": 2, "name": "Lipiec 2026", "url": "https://www.wirtualnemedia.pl/wskaznik/www-lipiec2026.html" },
101        { "@type": "ListItem", "position": 3, "name": "Czerwiec 2026", "url": "https://www.wirtualnemedia.pl/wskaznik/www-czerwiec2026.html" },
102        { "@type": "ListItem", "position": 4, "name": "Maj 2026", "url": "https://www.wirtualnemedia.pl/wskaznik/www-maj2026.html" },
103        { "@type": "ListItem", "position": 5, "name": "Kwiecień 2026", "url": "https://www.wirtualnemedia.pl/wskaznik/www-kwiecien2026.html" },
104        { "@type": "ListItem", "position": 6, "name": "Marzec 2026", "url": "https://www.wirtualnemedia.pl/wskaznik/www-marzec2026.html" },
105        { "@type": "ListItem", "position": 7, "name": "Luty 2026", "url": "https://www.wirtualnemedia.pl/wskaznik/www-luty2026.html" },
106        { "@type": "ListItem", "position": 8, "name": "Styczeń 2026", "url": "https://www.wirtualnemedia.pl/wskaznik/www-styczen2026.html" },
107        { "@type": "ListItem", "position": 9, "name": "Grudzień 2025", "url": "https://www.wirtualnemedia.pl/wskaznik/www-grudzien2025.html" },
108        { "@type": "ListItem", "position": 10, "name": "Listopad 2025", "url": "https://www.wirtualnemedia.pl/wskaznik/www-listopad2025.html" },
109        { "@type": "ListItem", "position": 11, "name": "Październik 2025", "url": "https://www.wirtualnemedia.pl/wskaznik/www-pazdziernik2025.html" },
110        { "@type": "ListItem", "position": 12, "name": "Wrzesień 2025", "url": "https://www.wirtualnemedia.pl/wskaznik/www-wrzesien2025.html" }
111      ]
112    }
113  ]
114}
115</script>
115
116
117<link rel="alternate" hreflang="pl" href="https://www.wirtualnemedia.pl/wskaznik/">
118<link rel="alternate" hreflang="x-default" href="https://www.wirtualnemedia.pl/wskaznik/">
119
120<meta name="theme-color" content="#0D1B2A">
121<link rel="icon" type="image/png" sizes="32x32" href="https://www.wirtualnemedia.pl/favicon-32x32.png">
122<link rel="apple-touch-icon" sizes="180x180" href="https://www.wirtualnemedia.pl/apple-touch-icon.png">
123
124<link rel="preconnect" href="https://fonts.googleapis.com">
125<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous">
126<link href="https://fonts.googleapis.com/css2?family=Barlow:wght@300;400;500;600;700;800&family=Barlow+Condensed:wght@500;600;700;800&display=swap" rel="stylesheet">
127<script src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
vendor: 1 bytes, line 127
127
128<script src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
vendor: 1 bytes, line 128
128
129<script src="https://unpkg.com/@babel/[email protected]/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
129
130<style>
131:root {
132  --bg: #F4F4F5; --surface: #ffffff; --surface2: #F9F9FA;
133  --nav: #0D1B2A; --border: #E0E0E0; --border-strong: #CBD0D8;
134  --orange: #F05A28; --orange-hover: #C94316; --orange-dim: rgba(240,90,40,0.10); --orange-dim2: rgba(240,90,40,0.06);
135  --text: #111111; --text2: #555555; --text3: #8A9AAB;
136  --green: #16A34A; --green-dim: rgba(22,163,74,0.12);
137  --shadow: 0 1px 4px rgba(0,0,0,0.08), 0 4px 16px rgba(0,0,0,0.05);
138  --shadow-lg: 0 4px 24px rgba(0,0,0,0.10);
139}
140[data-dark] {
141  --bg: #070d17; --surface: #0c1525; --surface2: #101d32;
142  --nav: #040b14; --border: #182d4a; --border-strong: #243f5e;
143  --orange: #F05A28; --orange-hover: #ff7347; --orange-dim: rgba(240,90,40,0.14); --orange-dim2: rgba(240,90,40,0.06);
144  --text: #e4eaf2; --text2: #7a9ab8; --text3: #3d6080;
145  --green: #34d399; --green-dim: rgba(52,211,153,0.14);
146  --shadow: 0 2px 12px rgba(0,0,0,0.30); --shadow-lg: 0 8px 32px rgba(0,0,0,0.40);
147}
148*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
149html { scroll-behavior: smooth; }
150body { background: var(--bg); color: var(--text); font-family: 'Barlow', sans-serif; line-height: 1.55; -webkit-font-smoothing: antialiased; transition: background 0.3s, color 0.3s; }
151a { color: inherit; text-decoration: none; }
152button { font-family: 'Barlow', sans-serif; cursor: pointer; border: none; background: none; }
153
154.nav-top { background: var(--nav); height: 52px; display: flex; align-items: center; padding: 0 24px; gap: 16px; position: sticky; top: 0; z-index: 100; }
155.nav-logo { display: flex; align-items: center; gap: 10px; margin-right: auto; }
156.nav-pill { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,0.7); border: 1.5px solid rgba(255,255,255,0.18); border-radius: 4px; padding: 4px 10px; transition: color 0.15s, border-color 0.15s; }
157.nav-pill:hover { color: #fff; border-color: rgba(255,255,255,0.4); }
158.nav-cta { background: var(--orange); color: #fff; font-size: 12px; font-weight: 700; border-radius: 9999px; padding: 6px 16px; letter-spacing: 0.04em; transition: background 0.15s; }
159.nav-cta:hover { background: var(--orange-hover); }
160.nav-cat { background: var(--surface); border-bottom: 1px solid var(--border); height: 40px; display: flex; align-items: stretch; padding: 0 24px; overflow-x: auto; scrollbar-width: none; }
161.nav-cat::-webkit-scrollbar { display: none; }
162.nav-cat a { font-size: 12px; font-weight: 600; color: var(--text2); padding: 0 14px; display: flex; align-items: center; border-bottom: 2px solid transparent; white-space: nowrap; transition: color 0.15s, border-color 0.15s; }
163.nav-cat a:hover, .nav-cat a.active { color: var(--orange); border-bottom-color: var(--orange); }
164
165.wrap { max-width: 860px; margin: 0 auto; padding: 0 24px; }
166.section { padding: 56px 0; border-bottom: 1px solid var(--border); }
167.section-label { font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--orange); margin-bottom: 20px; display: flex; align-items: center; gap: 8px; }
168.section-label::before { content: ''; width: 20px; height: 2px; background: var(--orange); display: inline-block; flex-shrink: 0; }
169
170/* HERO */
171.hero { background: var(--nav); color: #fff; padding: 64px 0 52px; position: relative; overflow: hidden; }
172.hero::after { content: 'WWW'; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); font-family: 'Barlow Condensed', sans-serif; font-size: 240px; font-weight: 800; color: rgba(240,90,40,0.035); pointer-events: none; letter-spacing: -8px; line-height: 1; }
173.hero-badge { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--orange); margin-bottom: 14px; }
174.hero-title { font-family: 'Barlow Condensed', sans-serif; font-size: clamp(44px, 7vw, 80px); font-weight: 800; line-height: 0.95; letter-spacing: -1px; margin-bottom: 16px; }
175.hero-title span { color: var(--orange); }
176.hero-sub { font-size: 15px; color: rgba(255,255,255,0.45); max-width: 520px; line-height: 1.6; margin-bottom: 36px; }
177.hero-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,0.08); }
178.hstat-val { font-family: 'Barlow Condensed', sans-serif; font-size: 28px; font-weight: 800; color: var(--orange); }
179.hstat-lbl { font-size: 11px; color: rgba(255,255,255,0.4); margin-top: 3px; line-height: 1.3; }
180
181/* MONTH GRID */
182.months-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
183.month-card { background: var(--surface); border: 1px solid var(--border); padding: 28px; display: block; position: relative; transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s; overflow: hidden; cursor: pointer; }
184.month-card::before { content: ''; position: absolute; inset: 0; background: var(--orange-dim2); opacity: 0; transition: opacity 0.2s; pointer-events: none; }
185.month-card:hover { transform: translateY(-4px); border-color: var(--orange); box-shadow: var(--shadow-lg); }
186.month-card:hover::before { opacity: 1; }
187.month-card.current { border-color: var(--orange); }
188.month-card.current::after { content: 'NOWY'; position: absolute; top: 0; right: 0; background: var(--orange); color: #fff; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; padding: 4px 10px; }
189.month-card.bonus { grid-column: 1 / -1; border-color: var(--orange); background: var(--surface); }
190.month-card.bonus::before { opacity: 0.5; }
191.month-label { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--orange); margin-bottom: 16px; }
192.month-name { font-family: 'Barlow Condensed', sans-serif; font-size: 36px; font-weight: 800; line-height: 1; letter-spacing: -0.5px; color: var(--text); }
193.month-year { font-size: 14px; font-weight: 600; color: var(--text3); margin-top: 4px; margin-bottom: 20px; }
194.month-divider { height: 1px; background: var(--border); margin-bottom: 16px; }
195.month-cta { font-size: 13px; font-weight: 600; color: var(--text2); display: flex; align-items: center; justify-content: space-between; }
196.month-arrow { font-size: 18px; color: var(--orange); }
197.bonus-inner { display: flex; align-items: center; gap: 24px; }
198.bonus-icon { font-size: 40px; color: var(--orange); opacity: 0.6; flex-shrink: 0; }
199.bonus-label { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--orange); margin-bottom: 8px; }
200.bonus-name { font-family: 'Barlow Condensed', sans-serif; font-size: 26px; font-weight: 800; line-height: 1.1; color: var(--text); margin-bottom: 4px; }
201.bonus-sub { font-size: 12px; color: var(--text3); }
202
203/* ABOUT */
204.qa-item { border-top: 1px solid var(--border); padding: 18px 0; }
205.qa-item:first-child { border-top: none; }
206.qa-q { font-size: 14px; font-weight: 700; margin-bottom: 8px; display: flex; gap: 12px; align-items: flex-start; }
207.qa-num { min-width: 24px; height: 24px; background: var(--orange); color: #fff; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
207 margin-top: 1px; }
208.qa-a { font-size: 13px; color: var(--text2); line-height: 1.75; padding-left: 36px; }
209.qa-a strong { color: var(--text); font-weight: 600; }
210
211/* METHODOLOGY */
212.method-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
213.method-card { background: var(--surface); border: 1px solid var(--border); padding: 16px 18px; }
214.method-weight { font-family: 'Barlow Condensed', sans-serif; font-size: 22px; font-weight: 800; color: var(--orange); }
215.method-name { font-size: 13px; font-weight: 600; color: var(--text); margin-top: 4px; }
216.method-src { font-size: 11px; color: var(--text3); margin-top: 2px; }
217
218/* FOOTER */
219.footer { padding: 32px 0 48px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
220.footer-brand { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text2); }
221.footer-src { font-size: 10px; color: var(--text3); letter-spacing: 0.06em; text-transform: uppercase; }
222
223/* TWEAKS */
224.tweaks-panel { position: fixed; bottom: 20px; right: 20px; background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow-lg); padding: 20px; width: 240px; z-index: 200; display: none; }
225.tweaks-panel.visible { display: block; }
226.tweaks-title { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text); margin-bottom: 16px; display: flex; justify-content: space-between; align-items: center; }
227.tweaks-close { font-size: 18px; color: var(--text3); cursor: pointer; }
228.tw-label { font-size: 11px; font-weight: 600; color: var(--text2); margin-bottom: 6px; }
229.tw-row { display: flex; gap: 6px; margin-bottom: 14px; }
230.tw-opt { flex: 1; padding: 7px; font-size: 11px; font-weight: 600; text-align: center; border: 1.5px solid var(--border); color: var(--text2); cursor: pointer; transition: all 0.15s; }
231.tw-opt.active, .tw-opt:hover { border-color: var(--orange); color: var(--orange); background: var(--orange-dim); }
232
233@media (max-width: 800px) { .months-grid { grid-template-columns: repeat(2, 1fr); } .month-card.bonus { grid-column: 1 / -1; } .hero-stats { grid-template-columns: repeat(2,1fr); } }
234@media (max-width: 500px) { .months-grid { grid-template-columns: 1fr; } .bonus-inner { flex-direction: column; gap: 12px; } .wrap { padding: 0 14px; } .section { padding: 36px 0; } .hero-title { font-size: 40px; } .method-grid { grid-template-columns: repeat(2,1fr); } }
235</style>
236</head>
237<body>
238<div id="root"></div>
239<script type="text/babel">
240
241const MONTHS = [
242  {id:'sierpien2026', name:'Sierpień', year:'2026', current:true, href:'https://www.wirtualnemedia.pl/wskaznik/www-sierpien2026.html'},
243  {id:'lipiec2026', name:'Lipiec', year:'2026', href:'https://www.wirtualnemedia.pl/wskaznik/www-lipiec2026.html'},
244  {id:'czerwiec2026', name:'Czerwiec', year:'2026', href:'https://www.wirtualnemedia.pl/wskaznik/www-czerwiec2026.html'},
245  {id:'maj2026', name:'Maj', year:'2026', href:'https://www.wirtualnemedia.pl/wskaznik/www-maj2026.html'},
246  {id:'kwiecien2026', name:'Kwiecień', year:'2026', href:'https://www.wirtualnemedia.pl/wskaznik/www-kwiecien2026.html'},
247  {id:'marzec2026', name:'Marzec', year:'2026', href:'https://www.wirtualnemedia.pl/wskaznik/www-marzec2026.html'},
248  {id:'luty2026', name:'Luty', year:'2026', href:'https://www.wirtualnemedia.pl/wskaznik/www-luty2026.html'},
249  {id:'styczen2026', name:'Styczeń', year:'2026', href:'https://www.wirtualnemedia.pl/wskaznik/www-styczen2026.html'},
250  {id:'grudzien2025', name:'Grudzień', year:'2025', href:'https://www.wirtualnemedia.pl/wskaznik/www-grudzien2025.html'},
251  {id:'listopad2025', name:'Listopad', year:'2025', href:'https://www.wirtualnemedia.pl/wskaznik/www-listopad2025.html'},
252  {id:'pazdziernik2025', name:'Październik', year:'2025', href:'https://www.wirtualnemedia.pl/wskaznik/www-pazdziernik2025.html'},
253  {id:'wrzesien2025', name:'Wrzesień', year:'2025', href:'https://www.wirtualnemedia.pl/wskaznik/www-wrzesien2025.html'},
254];
255
256const WEIGHTS = [
257  {name:'Realni użytkownicy',w:'×1,25',src:'Mediapanel'},
258  {name:'Odsłony strony',w:'×1',src:'Mediapanel'},
259  {name:'Śr. dzienna RU',w:'×1,5',src:'Mediapanel'},
260  {name:'Śr. czas na stronie',w:'×0,5',src:'Mediapanel'},
261  {name:'Cytowania',w:'×1',src:'Mediaboard'},
262  {name:'YouTube — odsłony',w:'×1',src:'Social Blade'},
263  {name:'FB — interakcje',w:'×1',src:'Sotrender'},
264  {name:'FB — odsłony wideo',w:'×0,25',src:'Sotrender'},
265  {name:'IG — interakcje',w:'×0,5',src:'Sotrender'},
266  {name:'IG — odsłony wideo',w:'×0,25',src:'Sotrender'},
267  {name:'TikTok — interakcje',w:'×1',src:'Sotrender'},
268  {name:'TikTok — odsłony wideo',w:'×0,25',src:'Sotrender'},
269  {name:'X — interakcje',w:'×0,25',src:'Sotrender'},
270  {name:'X — odsłony postów',w:'×0,25',src:'Sotrender'},
271];
272
273function LogoMark() {
274  return (
275    <svg width="36" height="24" viewBox="0 0 58 38" fill="none">
276      <polygon points="0,2 8,2 13,36 5,36" fill="#F05A28"/>
277      <polygon points="10,36 18,36 28,3 20,3" fill="#F05A28"/>
278      <polygon points="30,3 38,3 43,36 35,36" fill="#F05A28"/>
279      <polygon points="40,36 48,36 58,2 50,2" fill="#F05A28"/>
280    </svg>
281  );
282}
283
284function App() {
285  const [dark, setDark] = React.useState(false);
286  const [tweaksOpen, setTweaksOpen] = React.useState(false);
287
288  React.useEffect(() => {
289    document.documentElement.toggleAttribute('data-dark', dark);
290  }, [dark]);
291
292  React.useEffect(() => {
293    const handler = e => {
294      if (e.data?.type === '__activate_edit_mode') setTweaksOpen(true);
295      if (e.data?.type === '__deactivate_edit_mode') setTweaksOpen(false);
296    };
297    window.addEventListener('message', handler);
298    window.parent.postMessage({type: '__edit_mode_available'}, '*');
299    return () => window.removeEventListener('message', handler);
300  }, []);
301
302  return (
303    <>
304      {/* HERO */}
305      <div className="hero">
306        <div className="wrap">
307          <div style={{display:'flex', alignItems:'center', justifyContent:'space-between', marginBottom:36, paddingBottom:24, borderBottom:'1px solid rgba(255,255,255,0.10)'}}>
308            <a href="https://www.wirtualnemedia.pl" target="_blank" rel="noopener">
309              <img src="data:image/png;base64,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" alt="Wirtualne Media" style={{height:28, display:'block'}}/>
310            </a>
311            <a href="https://www.wirtualnemedia.pl/wskaznik/" target="_blank" rel="noopener">
312              <img src="data:image/png;base64,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Az0HNBQ8I6xMROeTGg5hMST+c6kFPdFnh3SUgIbiIf31MbcbnffkVes4oEFI5yKic3nScAjnn1v8vrX2y9OXdBGPDuloAQ2FQ9raJ64JXOzJV9da0Ae8ba19e6kz0oR0CiI6j4sEdOnmcNq3jkI6akBDByH96eFvFtqTt+1+P15f6gGFdA4iOoeLBzT0EtJCw7q1FQIaiof0x+V3VRfakwjom0s/sJCOT0THt1pAQ/WQFhrWra0Y0FA8pHfH/e5QaE9WC2gQ0rHtTqfT1mso67jf9f7JWT2gS+dXGXfXer5P+K3dD67Wagzr1q4Q0KXz1yF/bjW+Weeht237da0e0KVC/3B4im8v+Zb3CLwSHddVA9pazVekrc7QumpAW/vrFeltq3G360NTBbQ1r0hHJaJjunpAQ8GQThnQUOyS9CquHtAgpOMR0fFsFtBQLKRb2yygQUjfsVlAg5CORUTHsnlAg5C21goENAhpa61AQIOQjkNEx1EmoGHykP63FQlomDykZQIahHQMIjqGcgENk4b0l5vDqVRAw6QhLRfQsAjpbGdkGCLav7IBDZOF9Jfzx1vWZCEtG9BwvkZz3+Y5I0MR0b6VD2iYZEiUD2iYJKTlA7o0yRkZjoj2q5uAhsGHRDcBDYOHtKuAhsHPyJBEtE/dBTQMOiS6C2gYNKRdBjQMekaGJaL96Tag4Twk/r31Oi6k24CGwULadUCDkPZDRPvSfUDDzeH0U6t7SfpjdR/QMEhIhwhoENI+iGg/hgloKP6/jXzKMAENnYd0qIAGIa1PRPswXEBDpyEdLqCh05AOGdAgpLWJaG1vW2v/HDWgobOQDhvQ0FlIhw5oENK6RLSuGA6vtl7INXQS0uEDGhYh/WPjpXzMFAENQlqTiNY01XAIxUM6TUDD+e/fi1bzbtdZz8i+CWkpIlrPlMMhFA3pdAENRS9Jn/2M7JuQliGitUw9HEKxkE4b0FAspM5IE9JKRLQOw2GhSEinD2goElJnZEFIaxDRGgyH99g4pAL6wMYhdUbeQ0i3J6LbMxw+YqOQCugHbBRSZ+Qjzn9Xt37XZloiui3D4RGuHFIB/YQrh9QZeYQiX/6Y0u50Om29hrKO+93tyk/x+83h9PvKzzGM4373orX25ZrPcXM4vV7z8Udy3O++bPc/ArMmZ+QzXOGMvDn/I4ozEQWAJG/nAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQJKIAkCSiAJAkogCQNL/ABFjcy4VSvpVAAAAAElFTkSuQmCC" alt="Wirtualny Wskaźnik Wpływu" style={{height:36, display:'block', opacity:0.9}}/>
313            </a>
314          </div>
315          <div style={{display:'flex', alignItems:'flex-start', justifyContent:'space-between', gap:16, marginBottom:16}}>
316            <div>
317              <div className="hero-badge">Projekt Wirtualne Media · od 2025 r.</div>
318              <h1 className="hero-title">Wirtualny<br/>Wskaźnik <span>Wpływu</span></h1>
319            </div>
320          </div>
321          <p className="hero-sub">Miesięczny ranking skumulowanej cyfrowej aktywności polskich mediów — ok. 160 marek, 14 kategorii danych, jeden syntetyczny wskaźnik.</p>
322          <div className="hero-stats">
323            <div><div className="hstat-val">~160</div><div className="hstat-lbl">Marek medialnych</div></div>
324            <div><div className="hstat-val">600+</div><div className="hstat-lbl">Profili social media</div></div>
325            <div><div className="hstat-val">14</div><div className="hstat-lbl">Kategorii danych</div></div>
326            <div><div className="hstat-val">7</div><div className="hstat-lbl">Kategorii tematycznych</div></div>
327          </div>
328        </div>
329      </div>
330
331      {/* MONTHS */}
332      <section className="section">
333        <div className="wrap">
334          <h2 className="section-label">Wyniki — wybierz miesiąc</h2>
335          <div className="months-grid">
336
337            {MONTHS.map((m, i) => (
338              <React.Fragment key={m.id}>
339                {i === 5 && (
340                  <a className="month-card bonus" href="https://www.wirtualnemedia.pl/wskaznik/analiza.html">
341                    <div className="month-label" style={{color:'var(--orange)'}}>Raport półroczny</div>
342                    <div className="bonus-inner">
343                      <div className="bonus-icon">★</div>
344                      <div>
345                        <div className="bonus-name">Bonus z analizą</div>
346                        <div className="bonus-sub">Wrzesień 2025 – Luty 2026 · Meta-analiza 6 edycji</div>
347                      </div>
348                      <div style={{marginLeft:'auto'}}><span className="month-arrow">↗</span></div>
349                    </div>
350                  </a>
351                )}
352                <a className={`month-card${m.current?' current':''}`} href={m.href}>
353                  <div className="month-label">Raport miesięczny</div>
354                  <div className="month-name">{m.name}</div>
355                  <div className="month-year">{m.year}</div>
356                  <div className="month-divider"></div>
357                  <div className="month-cta">
358                    <span>Zobacz wyniki</span>
359                    <span className="month-arrow">↗</span>
360                  </div>
361                </a>
362              </React.Fragment>
363            ))}
364          </div>
365        </div>
366      </section>
367
368      {/* METHODOLOGY */}
369      <section className="section">
370        <div className="wrap">
371          <h2 className="section-label">14 kategorii — wagi i źródła</h2>
372          <div className="method-grid">
373            {WEIGHTS.map(({name,w,src}) => (
374              <div key={name} className="method-card">
375                <div className="method-weight">{w}</div>
376                <div className="method-name">{name}</div>
377                <div className="method-src">{src}</div>
378              </div>
379            ))}
380          </div>
381          <p style={{marginTop:20, fontSize:13, color:'var(--text2)', lineHeight:1.7}}>
382            Lider każdej kategorii otrzymuje <strong style={{color:'var(--text)'}}>100 punktów</strong>. Reszta jest przeliczana proporcjonalnie. Wyniki mnożone przez wagi (suma wag = 10), sumowane i dzielone przez 10 — <strong style={{color:'var(--text)'}}>100 = maksymalny możliwy wynik</strong>. Filary: www 4,25 · social media 3,75 · cytowania i YouTube 2,0. Wagi obowiązują od edycji za sierpień 2026.
383          </p>
384        </div>
385      </section>
386
387      {/* Q&A */}
388      <section className="section">
389        <div className="wrap">
390          <h2 className="section-label">O rankingu WWW</h2>
391          <div>
392            {[
393              ['Czym jest Wirtualny Wskaźnik Wpływu (WWW)?','Autorski projekt serwisu Wirtualne Media, który mierzy skumulowaną cyfrową aktywność polskich wydawców. To swego rodzaju „power ranking" — nie bada pojedynczej metryki, lecz łączy <strong>14 kategorii danych</strong> w jeden syntetyczny wskaźnik. Analizowane jest wyłącznie to, co dzieje się w internecie.'],
394              ['Jakie dane składają się na wynik WWW?','Wskaźnik bazuje na 14 kategoriach z odpowiednimi wagami (suma 10): <strong>średnia dzienna liczba RU</strong> (×1,5), <strong>realni użytkownicy strony</strong> (×1,25), odsłony strony (×1), średni czas na stronie (×0,5), cytowania (×1), odsłony YouTube (×1), interakcje na Facebooku (×1), odsłony wideo FB (×0,25), interakcje na Instagramie (×0,5), odsłony wideo IG (×0,25), interakcje na TikToku (×1), odsłony wideo TikTok (×0,25), interakcje na X/Twitterze (×0,25) i odsłony postów na X (×0,25). Wagi w tej postaci obowiązują od edycji za sierpień 2026; wcześniejsze raporty liczone były według poprzedniego zestawu wag.'],
395              ['Jak jest wyliczany wynik końcowy?','Metodą benchmarku. W każdej kategorii lider (najwyższy wynik bezwzględny) otrzymuje <strong>100 punktów</strong>. Reszta jest przeliczana proporcjonalnie — np. połowa wyniku lidera = 50 pkt. Następnie wyniki kategorii są mnożone przez wagi, sumowane i dzielone przez 10 (sumę wag), dając finalny wskaźnik WWW. W efekcie 100 oznacza maksymalny możliwy wynik — medium, które byłoby liderem wszystkich 14 kategorii.'],
396              ['Skąd pochodzą dane?','Z czterech źródeł: <strong>Mediapanel</strong> (dane o ruchu na stronach), <strong>Social Blade</strong> (YouTube), <strong>Sotrender</strong> (Facebook, Instagram, TikTok, X/Twitter — ok. 600 profili) oraz <strong>Mediaboard</strong> (cytowalność mediów).'],
397              ['Ile marek jest analizowanych i jak często?','Ranking obejmuje ok. <strong>160 marek medialnych</strong> (od sierpnia 2026; wcześniej ok. 130) i ponad <strong>600 profili social media</strong>. Wyniki publikowane są <strong>co miesiąc</strong>. Jeśli medium ma kilka profili na danej platformie, ich wyniki się sumują — liczy się skumulowana aktywność marki.'],
398            ].map(([q,a],i) => (
399              <div key={i} className="qa-item">
400                <div className="qa-q"><span className="qa-num">{i+1}</span>{q}</div>
401                <div className="qa-a" dangerouslySetInnerHTML={{__html:a}}/>
402              </div>
403            ))}
404          </div>
405        </div>
406      </section>
407
408      {/* FOOTER */}
409      <footer>
410        <div className="wrap">
411          <div className="footer">
412            <div className="footer-brand">Wirtualny Wskaźnik Wpływu · Archiwum 2025–2026</div>
413            <div className="footer-src">Źródło: Wirtualnemedia.pl · Wrzesień 2026</div>
414          </div>
415        </div>
416      </footer>
417
418      {/* TWEAKS */}
419      <div className={`tweaks-panel${tweaksOpen?' visible':''}`}>
420        <div className="tweaks-title">
421          Tweaks
422          <span className="tweaks-close" onClick={() => { setTweaksOpen(false); window.parent.postMessage({type:'__edit_mode_dismissed'},'*'); }}>×</span>
423        </div>
424        <div className="tw-label">Motyw</div>
425        <div className="tw-row">
426          <div className={`tw-opt${!dark?' active':''}`} onClick={() => setDark(false)}>Jasny</div>
427          <div className={`tw-opt${dark?' active':''}`} onClick={() => setDark(true)}>Ciemny</div>
428        </div>
429      </div>
430    </>
431  );
432}
433
434ReactDOM.createRoot(document.getElementById('root')).render(<App/>);
435</script>
435
436</body>
437</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.