PageSourceSearch

https://www.wral.com/weather/forecast-raleigh-durham-fayetteville/

html wral.com collected 2026-09-24 08:26:23 UTC 52,505 bytes, 1,542 lines download raw bytes

1<!doctype html><html lang="en" data-gallery-cover="" data-hero-poster="" data-gallery-media=""><head>
2		<meta charset="utf-8">
3		<!--
4			DEV-1215 · Reserve the chrome's footprint before any JS runs.
5			The wral-header and wral-alerts-bar custom elements ship empty and are
6			upgraded by the deferred core module, so on a slow/cold load first paint
7			happens before upgrade and the page content jumps down. These min-heights
8			hold the space; the components override them via the --wral-* custom
9			properties once they know their real height.
10			Must stay the first rule set in the document head (right after the
11			charset meta) so it is parsed before OneTrust and every other tag.
12		-->
13		<style>
14			wral-header { display: block; min-height: var(--wral-header-height, 44px); }
15			wral-alerts-bar { display: block; min-height: var(--wral-alerts-bar-height, 87px); }
16			@media (min-width: 1024px) {
17				wral-header { min-height: var(--wral-header-height, 108px); }
18			}
19		</style>
20		<!-- OneTrust Cookies Consent Notice start for wral.com -->
21		
21<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="6d068f80-e744-46ab-877e-4847983f3ad4"></script>
21
22		
22<script type="text/javascript">
23		function OptanonWrapper() { }
24		</script>
24
25		<!-- OneTrust Cookies Consent Notice end for wral.com -->
26		<meta name="viewport" content="width=device-width, initial-scale=1">
27		<link rel="preconnect" href="https://web-components.cdn.wral.com" crossorigin="">
28		<link rel="modulepreload" href="https://web-components.cdn.wral.com/core/v0.15/components.es.js">
29		<title>Taste of fall continues with cooler and crisp nights ahead :: WRAL.com</title>
30		<link rel="icon" type="image/png" href="https://www.wral.com/favicon-48x48.png">
31		
32			
33		
34		
35			
36				<!-- HTL Ad management -->
37				<link rel="stylesheet" type="text/css" href="https://htlbid.com/v3/wral.com/opscobid.css">
38				
38<script async src="https://htlbid.com/v3/wral.com/opscobid.js"></script>
38
39				
39<script>window.opscobid = window.opscobid || {}, opscobid.cmd = opscobid.cmd || [], opscobid.cmd.push(function () { opscobid.setTargeting("is_testing", "no"), opscobid.setTargeting("is_home", "no"), opscobid.setTargeting("category", "story"), opscobid.setTargeting("keywords", "wral-weathercenter,weather-forecast,weather"), opscobid.layout() })</script>
39
40			
41		
42		<meta name="description" content="Cooler, fall like weather sticks around a bit longer. Thursday should be our final day of drizzle to go along with the cooler weather.
43
44">
45		<meta name="ad-unit-path" content="wral-v4/weather/forecast-raleigh-durham-fayetteville">
46		<meta name="robots" content="index,follow,max-image-preview:large">
47		<link rel="dns-prefetch" href="//images.wral.com">
48		<link rel="preconnect" href="https://images.wral.com">
49
50		
51			
52		
53
54		<link rel="canonical" href="https://www.wral.com/weather/forecast-raleigh-durham-fayetteville/">
55		<link rel="preload" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Condensed:wght@400;500;700&#x26;family=Roboto:wght@400;500;700&#x26;display=swap" as="style">
56		<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Condensed:wght@400;500;700&#x26;family=Roboto:wght@400;500;700&#x26;display=swap">
57		<!--
58			web-components-wral · core library.
59			DEV-1215: pinned to v0.15, which carries the CLS fix for the header and
60			alerts bar. Keep this in lockstep with the modulepreload above and the
61			components.es.js loader below.
62		-->
63		<link rel="stylesheet" href="https://web-components.cdn.wral.com/core/v0.15/styles.css" media="print" onload="this.media=&#x27;all&#x27;">
64
65		<meta property="og:url" content="https://www.wral.com/weather/forecast-raleigh-durham-fayetteville/">
66		<meta name="twitter:url" content="https://www.wral.com/weather/forecast-raleigh-durham-fayetteville/">
67		<meta property="og:title" content="Taste of fall continues with cooler and crisp nights ahead">
68		<meta name="twitter:title" content="Taste of fall continues with cooler and crisp nights ahead">
69		
70			
71				<meta property="og:description" content="Cooler, fall like weather sticks around a bit longer. Thursday should be our final day of drizzle to go along with the cooler weather.
72
73">
74				<meta name="twitter:description" content="Cooler, fall like weather sticks around a bit longer. Thursday should be our final day of drizzle to go along with the cooler weather.
75
76">
77			
78
79			
80				<meta property="og:image" content="https://images.wral.com/ca1e4f1f-fe61-41b4-ab5d-942a22d9964c?w=1200&#x26;h=630&#x26;height=630">
81				<meta property="og:image:width" content="1200">
82				<meta property="og:image:height" content="630">
83				<meta property="og:image:alt" content="Taste of fall continues with cooler and crisp nights ahead">
84				<meta name="twitter:image" content="https://images.wral.com/ca1e4f1f-fe61-41b4-ab5d-942a22d9964c?w=1200&#x26;h=630&#x26;height=630">
85			
86			
87			
88		
89
90		<!-- OG Video (only when a hero video is present) -->
91		
92  		
93    		<!-- og:video / og:video:secure_url -->
94    		<meta property="og:video" content="https://media-hls.wral.com/vodhttporigins3/_definst_/smil:amazons3/api-vod-prod-renditions/f3f8b1c7-b571-54e9-9a31-e2718a9340c1-71843f6719a3/21e3d2ee-ee47-44a0-8c94-a5f85267a4c4/playlist.smil/playlist.m3u8">
95    		<meta property="og:video:secure_url" content="https://media-hls.wral.com/vodhttporigins3/_definst_/smil:amazons3/api-vod-prod-renditions/f3f8b1c7-b571-54e9-9a31-e2718a9340c1-71843f6719a3/21e3d2ee-ee47-44a0-8c94-a5f85267a4c4/playlist.smil/playlist.m3u8">
96    		<meta property="og:video:type" content="application/x-mpegURL">
97    		<meta property="og:video:width" content="1920">
98    		<meta property="og:video:height" content="1080">
99
100    		
101  		
102		
103
104		
105  		
106    		<meta name="twitter:player" content="https://media-hls.wral.com/vodhttporigins3/_definst_/smil:amazons3/api-vod-prod-renditions/f3f8b1c7-b571-54e9-9a31-e2718a9340c1-71843f6719a3/21e3d2ee-ee47-44a0-8c94-a5f85267a4c4/playlist.smil/playlist.m3u8">
107    		<meta name="twitter:player:width" content="1280">
108    		<meta name="twitter:player:height" content="720">
109  		
110		
111
112		<meta property="og:type" content="article">
113		<meta property="og:site_name" content="WRAL.com">
114		<meta name="twitter:site" content="@wral">
115		<meta name="twitter:card" content="summary_large_image">
116		<meta name="twitter:creator" content="@wral">
117
118		
118<script type="module" src="https://cdn.wral.com/@wral/search-results/v0.1.14/define.standalone.js"></script>
118
119
120		
121			
122				<meta name="keywords" content="WRAL WeatherCenter, weather-forecast, weather">
123				<meta name="news_keywords" content="WRAL WeatherCenter, weather-forecast, weather">
124			
125			
126				<meta property="article:published_time" content="2025-11-11T15:11:22Z">
127			
128			
129				<meta property="article:modified_time" content="2026-09-24T01:24:43Z">
130			
131			
132				<meta property="article:author" content="WRAL Severe Weather Center">
133				<meta name="author" content="WRAL Severe Weather Center">
134			
135			
136				
137					<meta property="article:tag" content="WRAL WeatherCenter">
138				
139					<meta property="article:tag" content="weather-forecast">
140				
141					<meta property="article:tag" content="weather">
142				
143			
144			
145				
145<script async src="https://imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
145
146				
146<script defer src="https://video-player.cdn.wral.com/v1.0/wralvideo.js"></script>
146
147				
147<script>
148					window.addEventListener('DOMContentLoaded', () => {
149						const players = document.querySelectorAll('video.wral-video');
150						if (!players.length) {
151							return;
152						}
153						const removeHeroPreviewOverlays = () => {
154							document.querySelectorAll('.hero-preview-overlay').forEach((overlay) => {
155								overlay.remove();
156							});
157						};
158						const adUnitPath = document.querySelector('meta[name="ad-unit-path"]')?.content || '';
159						const buildAdTagUrl = () => {
160							const adUnitParams = new URLSearchParams();
161							adUnitParams.set('sz', '576x324');
162							adUnitParams.set('iu', `/6167/${adUnitPath}`);
163							adUnitParams.set('ciu-szs', (['300x250']).join(','));
164							adUnitParams.set('impl', 's');
165							adUnitParams.set('gdfp_req', '1');
166							adUnitParams.set('env', 'vp');
167							adUnitParams.set('output', 'xml_vast3');
168							adUnitParams.set('unviewed_position_start', '1');
169							adUnitParams.set('correlator', `${Date.now()}`);
170							adUnitParams.set('url', window.location.href);
171							adUnitParams.set('description_url', window.location.href);
172							adUnitParams.set('plcmt', 1);
173							adUnitParams.set('vpmute', 1);
174							return `https://pubads.g.doubleclick.net/gampad/ads?${adUnitParams.toString()}`;
175						};
176						players.forEach((videoElement) => {
177							videoElement.getAttributeNames().forEach((name) => {
178								// Keep data-title -- the wralvideo player reads it to render
179								// the overlay headline (DEV-1127). Still drop the legacy
180								// data-video-* attributes from the iOS playback fix.
181								if (name.startsWith('data-video-')) {
182									videoElement.removeAttribute(name);
183								}
184							});
185							const player = wralvideo(videoElement, { adTagUrl: buildAdTagUrl() });
186							player.one('play', () => {
187								// get all hero-preview-overlay classes and remove them
188								removeHeroPreviewOverlays();
189								window.dataLayer = window.dataLayer || [];
190								window.dataLayer.push({
191									event: 'GAEvent',
192									eventAction: 'contentStart',
193									eventCategory: 'video',
194									eventLabel: window.document.title,
195									eventValue: 'HTML Video',
196									id: window.location.href, // current url
197								});
198							});
199						});
200					});
201				</script>
201
202			
203		
204
205		
205<script type="module" src="https://web-components.cdn.wral.com/weather/icon/v0/component.es.js"></script>
205
206		
206<script type="module" async src="https://web-components.cdn.wral.com/core/v0.15/components.es.js"></script>
206
207
208		
209			
210			
211		
212
213		
214			
215			
216		
217
218		
219			
220			
221				<!-- JSON-LD Structured Data for an Article  -->
222				
222<script type="application/ld+json">
223					{"@context":"https://schema.org","@type":"NewsArticle","isAccessibleForFree":true,"mainEntityOfPage":{"@type":"WebPage","@id":"https://www.wral.com/weather/forecast-raleigh-durham-fayetteville/"},"headline":"Taste of fall continues with cooler and crisp nights ahead","description":"Cooler, fall like weather sticks around a bit longer. Thursday should be our final day of drizzle to go along with the cooler weather.\n\n","image":"https://images.wral.com/ca1e4f1f-fe61-41b4-ab5d-942a22d9964c","datePublished":"2025-11-11T15:11:22+00:00","dateModified":"2026-09-24T01:24:43+00:00","publisher":{"@type":"NewsMediaOrganization","name":"WRAL","url":"https://www.wral.com/","logo":{"@type":"ImageObject","url":"https://images.wral.com/4687bfb9-1153-4ec6-b63e-01c2ae696033?w=1200&h=630","width":1200,"height":630}},"author":{"@type":"Person","name":"WRAL Severe Weather Center"}}
224				</script>
224
225			
226		
227
228		<!-- JSON-LD for the hero VideoObject -->
229		
230  		
231    		
231<script type="application/ld+json">
232      		{"@context":"https://schema.org/","@type":"VideoObject","name":"Taste of fall continues with cooler and crisp nights ahead","description":"Cooler, fall like weather sticks around a bit longer. Thursday should be our final day of drizzle to go along with the cooler weather.\n\n","thumbnailUrl":"https://images.wral.com/ca1e4f1f-fe61-41b4-ab5d-942a22d9964c?w=640&height=360","uploadDate":"2025-11-11T15:11:22+00:00","isLiveBroadcast":false,"contentUrl":"https://media-hls.wral.com/vodhttporigins3/_definst_/smil:amazons3/api-vod-prod-renditions/f3f8b1c7-b571-54e9-9a31-e2718a9340c1-71843f6719a3/21e3d2ee-ee47-44a0-8c94-a5f85267a4c4/playlist.smil/playlist.m3u8","embedUrl":"https://media-hls.wral.com/vodhttporigins3/_definst_/smil:amazons3/api-vod-prod-renditions/f3f8b1c7-b571-54e9-9a31-e2718a9340c1-71843f6719a3/21e3d2ee-ee47-44a0-8c94-a5f85267a4c4/playlist.smil/playlist.m3u8"}
233    		</script>
233
234  		
235		
236
237		
237<script type="application/ld+json">
238			{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://wral.com/"},{"@type":"ListItem","position":2,"name":"Weather","item":"https://wral.com/weather"},{"@type":"ListItem","position":3,"name":"Forecast raleigh durham fayetteville","item":"https://wral.com/weather/forecast-raleigh-durham-fayetteville"}]}
239		</script>
239
240
241		
242			
243				
243<script type="text/javascript">
244					window._taboola = window._taboola || [];
245					_taboola.push({article:'auto'});
246					!function (e, f, u, i) {
247						if (!document.getElementById(i)){
248							e.async = 1;
249							e.src = u;
250							e.id = i;
251							f.parentNode.insertBefore(e, f);
252						}
253					}(document.createElement('script'),
254					document.getElementsByTagName('script')[0],
255					'//cdn.taboola.com/libtrc/wral-wralnews/loader.js',
256					'tb_loader_script');
257					if(window.performance && typeof window.performance.mark == 'function')
258						{window.performance.mark('tbl_ic');}
259				</script>
259
260
261				
261<script defer src="//s.ntv.io/serve/load.js"></script>
261
262				
262<script defer src="https://ak.sail-horizon.com/spm/spm.v1.min.js"></script>
262
263				
263<script>Sailthru.init({ customerId: '1f6454efcec5f1022e7f7daf14bbbeb4' });</script>
263
264			
265		
266	<style>
267			.timestamp .timestamp-item:not(:first-child)::before {
268				content: "—";
269			}
270
271			.aspect-16x9 {
272				aspect-ratio: 16 / 9;
273			}
274
275			.article-body-video {
276				margin: 1rem 0;
277			}
278
279			.article-body-video .video-container {
280				position: relative;
281				padding-bottom: calc(100% * 9 / 16);
282				width: 100%;
283			}
284
285			.article-body-video .video-container > * {
286				max-width: 100%;
287				width: 100%;
288				height: 100%;
289				position: absolute;
290			}
291
292			.article-hero img {
293				background-color: var(--color-gray-2);
294				color: var(--color-gray-4);
295				font-family: var(--body-font-family);
296				text-shadow: 1px 1px 1px var(--color-white);
297				display: grid;
298				align-content: center;
299				justify-content: center;
300			}
301
302			figcaption,
303			.article-body .image-tool__caption,
304			.article-body media-caption {
305				color: var(--color-gray-4);
306				border-bottom: 0.0625rem solid var(--color-gray-2);
307				padding-bottom: 0.625rem;
308				font-size: 0.8125rem;
309				display: block;
310				font-family: sans-serif;
311				margin: 1rem 0;
312			}
313
314			/* Rights line under an image. Emitted by plexer's content/image
315			   transform for body images, and by the hero figure below. Inline so
316			   it reads as part of the caption: "A caption (© WRAL)". */
317			.image-copyright {
318				white-space: nowrap;
319			}
320
321			.ai-generation-notice {
322				color: var(--color-gray-4);
323				font-style: italic;
324				margin-bottom: 0.5rem;
325			}
326
327			.house-promo {
328				display: flex;
329				width: 300px;
330				min-height: 158px;
331				border-width: .1875rem;
332				--tw-border-opacity: 1;
333				border-color: rgb(231 229 228/var(--tw-border-opacity));
334				padding: .625rem;
335				border-style: solid;
336				box-sizing: border-box;
337				margin: auto;
338			}
339
340			.house-promo:empty {
341
342				border: none;
343			}
344
345			.font-resize-container {
346				margin-left: 0;
347				display: flex;
348				flex-direction: row;
349				gap: .5rem;
350				margin-right: auto;
351				margin-top: 5px;
352				min-height: 37px;
353				align-items: center;
354			}
355
356			.article-tools-container {
357				display: flex;
358				align-items: anchor-center;
359			}
360
361			.small-font p {
362				font-size: 1.125rem;
363			}
364
365			.medium-font p {
366				font-size: 1.5rem;
367			}
368
369			.large-font p {
370				font-size: 1.75rem;
371			}
372			.more-on-this {
373				margin: 0px auto;
374				padding: 0px 1rem;
375			}
376
377			.more-on-this > h3 {
378				margin: 0px 0px 1rem;
379			}
380
381			.more-on-this > .more-on-this-item {
382				align-content: flex-start;
383				align-items: flex-start;
384				flex-flow: row nowrap;
385				border-bottom: 0.0625rem solid #e7e5e4;
386				padding: 0.625rem 0 0.75rem;
387			}
388
389			.related-collection > .more-on-this-item {
390				padding: 0.625rem 0 0.75rem;
391			}
392
393			.more-on-this-item article-asset {
394				display: block;
395			}
396
397			.opscoad-OOP_Adhesion {
398				display: block;
399				width: 100%;
400				min-height: 50px;
401			}
402
403			@media (min-width: 768px) {
404				.opscoad-OOP_Adhesion {
405					min-height: 90px;
406				}
407			}
408
409			.opscoad-OOP_Adhesion iframe,
410			.opscoad-OOP_Adhesion img {
411				width: 100%;
412				height: 100%;
413				object-fit: contain;
414			}
415		</style>
416
417		<!-- Admiral Measure Script -->
418		
418<script type="text/javascript">
419			!(function(Y, _name) {
420				Y[_name] = Y[_name] || function D() { (D.q = D.q || []).push(arguments) };
421				Y[_name].v = Y[_name].v || 2;
422				Y[_name].s = "1";
423			})(window, "admiral");
424			!(function(Y, D, A, U) {
425				A = Y.createElement(D);
426				Y = Y.getElementsByTagName(D)[0];
427				A.async = 1;
428				A.src = "https://websitesdude.com/files/l1mg4m_15klgw-prod.js";
429				(U = 0) && U(A);
430				Y.parentNode.insertBefore(A, Y);
431			})(document, "script");
432		</script>
432
433		
433<script type="text/javascript">
434			!(function(Y, D, A, U, M) {
435				function s(U, M) {
436					try {
437						s = Y.localStorage;
438						(U = JSON.parse(s.getItem(A)).lgk || []) &&
439							(M = Y[D].pubads()) &&
440							U.forEach(function(Y) {
441								Y && Y[0] && M.setTargeting(Y[0], Y[1] || "");
442							});
443					} catch(N) {}
444					var s;
445				}
446				try {
447					(M = Y[D] = Y[D] || {}).cmd = M.cmd || [];
448					typeof M.pubads === U ? s() :
449						typeof M.cmd.unshift === U ? M.cmd.unshift(s) : M.cmd.push(s);
450				} catch(N) {}
451			})(window, "googletag", "_a10Q1zA" + "wNjNeCQzk0MjBD" + "MMDU9OD4YwN0NFMUMtMQ", "function");
452		</script>
452
453	</head>
454
455	<body>
456		<svg xmlns="http://www.w3.org/2000/svg" style="position:absolute;width:0;height:0;overflow:hidden" aria-hidden="true">
457
458			<symbol id="i-text-height" viewBox="0 0 576 512">
459				<path d="M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z"></path>
460			</symbol>
461		</svg>
462		<wral-header style="position: sticky; top: 0; z-index: 99999;"></wral-header>
463		<wral-alerts-bar id="alerts"></wral-alerts-bar>
464		<main>
465			<article class="content-wrapper article">
466			<section class="article-header">
467				<studio-breadcrumbs style="min-height: 25px" metadata="{&#x22;path&#x22;:&#x22;/weather/forecast-raleigh-durham-fayetteville/&#x22;,&#x22;site&#x22;:&#x22;wral.com&#x22;}">
468				</studio-breadcrumbs>
469				<h1>Taste of fall continues with cooler and crisp nights ahead</h1>
470				
471					<div class="article-abstract">Cooler, fall like weather sticks around a bit longer. Thursday should be our final day of drizzle to go along with the cooler weather.
472
473</div>
474				
475				<div class="timestamp">
476					
477						<span class="timestamp-item">
478							Posted
479							<formatted-timestamp iso-date="2025-11-11T15:11:22.872Z">
480								11/11/2025, 3:11:22 PM
481							</formatted-timestamp>
482						</span>
483					
484					
485						<span class="timestamp-item">
486							Updated
487							<formatted-timestamp iso-date="2026-09-24T01:24:43.743Z">
488								9/24/2026, 1:24:43 AM
489							</formatted-timestamp>
490						</span>
491					
492				</div>
493			</section>
494
495			<section class="article-main">
496				
497					<div class="tags">
498						<ul>
499							<li>Related</li>
500							<!-- DEV-537 · Crawlers need the tag links in the server HTML, and
501							     <tag-item> only builds its <a> inside a shadow root after a
502							     client-side fetch. When the embedded tag data carries a clean
503							     href, render a plain light-DOM anchor instead. That data is a
504							     snapshot from when the story was tagged, so a tag can lack an
505							     href even though a page exists now; those keep <tag-item> and
506							     resolve in the browser as before. An href with a query string
507							     is api-tag's /tags/?tag= catchall, not a tag page: component
508							     path too. -->
509							
510								
511								
512									<li><tag-item value="wral-weathercenter">
513											WRAL WeatherCenter
514										</tag-item></li>
515								
516							
517								
518								
519									<li><tag-item value="weather-forecast">
520											weather-forecast
521										</tag-item></li>
522								
523							
524								
525								
526									<li><tag-item value="weather">
527											weather
528										</tag-item></li>
529								
530							
531						</ul>
532					</div>
533				
534				<div class="article-meta">
535					
536						<figure class="article-hero">
537							
538								<div class="video-container">
539									<!--
540										DEV-1239 · The rights holder rides the player's own
541										title overlay (wralvideo renders data-title before play
542										and on pause) instead of a second template overlay
543										stacked on top of it. Same shape as images: "A title
544										(© WRAL)", or "© WRAL" alone. NOTE: no // comments
545										inside attribute expressions — attribute newlines are
546										collapsed, so a line comment swallows the expression.
547									-->
548									<video id="hero-video" class="wral-video" controls data-title="WRAL WeatherCenter Forecast" poster="https://images.wral.com/ca1e4f1f-fe61-41b4-ab5d-942a22d9964c?w=1200&#x26;h=675&#x26;height=675" width="1920" height="1080" style="width: 100%;">
549										
550											<source src="https://media-hls.wral.com/vodhttporigins3/_definst_/smil:amazons3/api-vod-prod-renditions/f3f8b1c7-b571-54e9-9a31-e2718a9340c1-71843f6719a3/21e3d2ee-ee47-44a0-8c94-a5f85267a4c4/playlist.smil/playlist.m3u8" type="application/x-mpegURL">
551										
552										
553									</video>
554									
555									<!--
556										DEV-1239 · The hero video's copyright renders in the
557										player's own data-title overlay (see the <video> tag
558										above); this template overlay is for the editorial
559										caption only, so the two never stack.
560									-->
561									
562								</div>
563								<style>
564									.article-hero .video-container {
565										position: relative;
566										padding-bottom: calc(100% * 9 / 16);
567										width: 100%;
568										position: relative;
569									}
570
571									.article-hero .video-container>* {
572										max-width: 100%;
573										width: 100%;
574										height: 100%;
575										position: absolute;
576									}
577
578									.article-hero .caption-overlay {
579										position: absolute;
580										bottom: 0%;
581										background-color: rgba(0, 0, 0, 0.75);
582										display: flex;
583										color: var(--color-white);
584										justify-content: space-around;
585										align-items: center;
586										zindex: 9996;
587										width: 100%;
588										height: 20%;
589										font-size: 1.125rem;
590									}
591
592									.article-hero .live-overlay {
593										position: absolute;
594										bottom: 2%;
595										left: 1%;
596										background-color: var(--color-red);
597										display: flex;
598										color: var(--color-white);
599										justify-content: space-around;
600										display: flex;
601										align-items: center;
602										z-index: 9997;
603										width: 90px;
604										height: 18px;
605										padding: 6px;
606										font-size: 12px;
607										text-transform: uppercase;
608									}
609								</style>
610							
611
612							
613
614							
615						</figure>
616					
617
618					
619						<div class="article-byline">
620							By WRAL Severe Weather Center
621						</div>
622					
623				</div>
624
625				<div class="article-body">
626					<div class="article-tools-container">
627						<div id="font-resize" class="font-resize-container">
628							<button id="small-font-button" aria-label="Small font size" style="border:none;background:0 0">
629								<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="text-height" class="fa-text-height fa-w-18 svg-inline--fa small-buttom-font-svg" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" style="height:19.13px;width:17px">
630									<use href="#i-text-height"></use>
631								</svg>
632							</button>
633							<button id="medium-font-button" aria-label="Medium font size" style="border:none;background:0 0">
634								<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="text-height" class="fa-text-height fa-w-18 svg-inline--fa" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" style="height:27px;width:21px">
635									<use href="#i-text-height"></use>
636								</svg>
637							</button>
638							<button id="large-font-button" aria-label="Large font size" style="border:none;background:0 0">
639								<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="text-height" class="fa-text-height fa-w-18 svg-inline--fa" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" style="height:31.5px;width:28px">
640									<use href="#i-text-height"></use>
641								</svg>
642							</button>
643							
643<script>
644								const body = document.getElementsByClassName("article-body")[0],
645									smallFontButton = document.getElementById("small-font-button"),
646									mediumFontButton = document.getElementById("medium-font-button"),
647									largeFontButton = document.getElementById("large-font-button");
648
649								smallFontButton.addEventListener("click", t => {
650									body.classList.add("small-font"),
651									body.classList.remove("medium-font"),
652									body.classList.remove("large-font")
653								}),
654								mediumFontButton.addEventListener("click", t => {
655									body.classList.remove("small-font"),
656									body.classList.add("medium-font"),
657									body.classList.remove("large-font")
658								}),
659								largeFontButton.addEventListener("click", t => {
660									body.classList.remove("small-font"),
661										body.classList.remove("medium-font"),
662										body.classList.add("large-font")
663								})
664							</script>
664
665						</div>
666						<wral-bookmark-button baseurl="https://api.wral.com/user-facts/v1/"></wral-bookmark-button>
667					</div>
668
669						
670							
671							
672							
673							<p>The fall weather many people have been waiting for is here! Highs stay in the 60s with some spotty showers into Thursday.</p>
674							
675						
676							
677							
678							
679						
680					
681							
682							
683							
684							<p> Cold air damming is set up, and it's a pattern that will keep us quite cool through Thursday. </p>
685							
686						
687							
688								<div class="exco-wrapper" style="aspect-ratio: 16/9;">
689									<p>Other WRAL Top Stories</p>
690									<div class="exco-player" style="width: inherit;" id="d8af3f9c-ad37-4890-8ed5-bb0ce702acdf"></div>
691								</div>
692							
693							
694							
695						
696					
697							
698							
699							
700							<picture><img src="https://images.wral.com/97a14d28-fef5-48f4-8909-6305c619cd58" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
701							
702						
703							
704							
705							
706						
707					
708							
709							
710							
711							<ul><li><b>Tonight:</b> Light rain and drizzle. Lows in the mid to upper 50s.<ul></ul></li><li><b>Thursday:</b> Cloudy, cool with some drizzle. Breezy. Highs in the low to mid 60s. <ul></ul></li><li><b>Friday: </b>Gradually decreasing clouds. Still breezy. Highs near 70 degrees.
712
713<ul></ul></li></ul>
714							
715						
716							
717							
718							
719						
720					
721							
722							
723							
724							<p><a rel="noopener" target="_new" href="https://www.wral.com/download-wral-apps/">Download the WRAL Weather App</a> | <a rel="noopener" target="_new" href="https://www.wral.com/video/live-dualdoppler5000-radar/">Track rain with the DualDoppler5000</a></p>
725							
726						
727							
728							
729							
730						
731					
732							
733							
734							
735							<h2>Another gray day with cooler temperatures Thursday</h2>
736							
737						
738							
739							
740							
741						
742					
743							
744							
745							
746							<p>The fall feel is with us again Thursday. We could see some light rain or pockets of drizzle the first half of the day. It stays cool with highs in the 60s.</p>
747							
748						
749							
750							
751							
752						
753					
754							
755							
756							
757							<picture><img src="https://images.wral.com/7a47949c-b4d8-4bb5-9dae-7b77caae29c4" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
758							
759						
760							
761							
762								<div class="opscoad-Mobile_In_Content" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville">
763								</div>
764								<div class="opscoad-article_in_read" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
765							
766							
767						
768					
769							
770							
771							
772							<p>Morning lows will make it feel like fall in the next several days. Parts of the viewing area could get down into the upper 40s over the weekend. Time to break out the sweaters!</p>
773							
774						
775							
776							
777							
778						
779					
780							
781							
782							
783							<picture><img src="https://images.wral.com/8aa904d5-ee7a-4a54-83d8-69cc80db6477" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
784							
785						
786							
787							
788							
789						
790					
791							
792							
793							
794							<picture><img src="https://images.wral.com/92b0b219-b13b-412f-b666-57d47097e2de" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
795							
796						
797							
798							
799							
800						
801					
802							
803							
804							
805							<p>The breeze picked up a bit Wednesday, and it stays breezy for the rest of the work week. A low off the coast and an area of high pressure to the north will funnel in a fairly gusty northeast breeze.</p>
806							
807						
808							
809							
810							
811						
812					
813							
814							
815							
816							<picture><img src="https://images.wral.com/4aaf5aec-e56a-463e-9ed6-670d228c1b9a" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
817							
818						
819							
820							
821							
822						
823					
824							
825							
826							
827							<h2>A nor'easter to bring gusty winds this week</h2>
828							
829						
830							
831							
832								<div class="opscoad-Mobile_In_Content" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville">
833								</div>
834								<div class="opscoad-article_in_read" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
835							
836							
837						
838					
839							
840							
841							
842							<p>The Outer Banks could have gusts around 45 mph Thursday and Friday. The nor'easter likely has some big impacts in the northeast this weekend.</p>
843							
844						
845							
846							
847							
848						
849					
850							
851							
852							
853							<picture><img src="https://images.wral.com/dae94868-b29a-48e0-9dc5-a2fbc69fb14d" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
854							
855						
856							
857							
858							
859						
860					
861							
862							
863							
864							<p><a href="https://www.wral.com/video/wral-news-plus/20364185/" target="_blank">Get the latest forecast on WRAL News+</a><b> </b>and <a href="https://www.wral.com/download-wral-apps/5787234/" target="_blank">download the WRAL Weather app</a><b> </b>to get notifications when conditions change.  </p>
865							
866						
867							
868							
869							
870								<div id="nativo-0001"></div>
871								<div id="nativo-0002"></div>
872								<div id="nativo-0003"></div>
873							
874						
875					
876							
877							
878							
879							<h2>Severe drought creeps back in</h2>
880							
881						
882							
883							
884							
885						
886					
887							
888							
889							
890							<p>The latest drought report released on Sept. 17 showed worsening conditions, with Wake County being added back into the severe drought c
890ategory. </p>
891							
892						
893							
894							
895							
896						
897					
898							
899							
900							
901							<p>We've gotten some rain, but it's not been enough.</p>
902							
903						
904							
905							
906								<div class="opscoad-Mobile_In_Content" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville">
907								</div>
908								<div class="opscoad-article_in_read" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
909							
910							
911						
912					
913							
914							
915							
916							<p>Reservoir levels could also contribute to the change in Wake and lack of change in our northern spots, despite even some better totals there over the weekend. Kerr Lake is still over 10 feet below full pool, and Falls Lake is about 4.5 feet below full pool.</p>
917							
918						
919							
920							
921							
922						
923					
924							
925							
926							
927							<picture><img src="https://images.wral.com/31d737a6-74a1-41a4-ade5-23d41db6b6ee" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
928							
929						
930							
931							
932							
933						
934					
935							
936							
937							
938							<h2>What's active in the tropics?</h2>
939							
940						
941							
942							
943							
944						
945					
946							
947							
948							
949							<p>Fay is a tropical depression once again. There is a medium chance of development off the coast of Africa. </p>
950							
951						
952							
953							
954							
955						
956					
957							
958							
959							
960							<picture><img src="https://images.wral.com/c4fb9956-e436-468c-97da-9dc5ab7eedd6" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
961							
962						
963							
964							
965							
966						
967					
968							
969							
970							
971							<p>In the Pacific, Polo is a major hurricane south of Manzanillo, Mexico. This will stay off the coast of Manzanillo and Acapulco, but could have a more direct impact on Cabo San Lucas later in the week. </p>
972							
973						
974							
975							
976								<div class="opscoad-Mobile_In_Content" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville">
977								</div>
978								<div class="opscoad-article_in_read" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
979							
980							
981						
982					
983							
984							
985							
986							<picture><img src="https://images.wral.com/7161b7cb-dbfb-4141-b0f3-b83ed8b4b877" alt=""><figcaption><span class="image-copyright">© WRAL</span></figcaption></picture>
987							
988						
989							
990							
991							
992						
993					
994							
995							
996							
997							<p>This could also aid monsoonal moisture in the Southwestern U.S. </p>
998							
999						
1000							
1001							
1002							
1003						
1004					
1005							
1006							
1007							
1008							<h2>El Niño to Super El Niño </h2>
1009							
1010						
1011							
1012							
1013							
1014						
1015					
1016							
1017							
1018							
1019							<p>Conditions for a Super El Niño have not been reached, yet but we could experience those conditions by the end of the year. For this to occur, sea temperatures must be at least two degrees Celsius above normal for an average of three months. Currently we are at 1.5 just above that number and climbing.  </p>
1020							
1021						
1022							
1023							
1024							
1025						
1026					
1027							
1028							
1029							
1030							<picture><img src="https://images.wral.com/fdd1ffb8-949f-46f6-b31d-6029947f26c6" alt=""></picture>
1031							
1032						
1033							
1034							
1035							
1036						
1037					
1038							
1039							
1040							
1041							<h2>7-day forecast for central North Carolina.</h2>
1042							
1043						
1044							
1045							
1046								<div class="opscoad-Mobile_In_Content" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville">
1047								</div>
1048								<div class="opscoad-article_in_read" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
1049							
1050							
1051						
1052					
1053							
1054							
1055							
1056							<ul><li><b>Thursday</b>: Light rain or drizzle possible with highs in the upper 60s.<ul></ul></li><li><b>Friday</b>: Partly cloudy with highs in the low 70s.<ul></ul></li><li><b>Saturday</b>: Mostly sunny with highs in the mid 70s.<ul></ul></li><li><b>Sunday:</b> Partly cloudy with highs in the upper 70s.<ul></ul></li><li><b>Monday</b>: Mostly sunny with highs near 80.<ul></ul></li><li><b>Tuesday</b>: Mostly sunny with highs in the low to mid 80s.<ul></ul></li><li><b>Wednesday</b>: Partly cloudy with highs in the mid 80s.<ul></ul></li></ul>
1057							
1058						
1059							
1060							
1061							
1062						
1063					
1064					
1065				</div>
1066
1067
1068				<div class="article-footer">
1069					
1070						<div class="more-on-this section-wrapper">
1071							<h3 class="section-title">More on this</h3>
1072							
1073								<div class="more-on-this-item">
1074									<article-asset title="NC experts discuss drought effects as it worsens across the state" href="https://www.wral.com/video/nc-expert
1074s-discuss-drought-effects-as-it-worsens-across-the-state/22351026/" align-thumbnail="right" thumbnail-stack="">
1075										
1076											<picture slot="thumbnail">
1077												<img class="aspect-16x9" src="https://images.wral.com/asset/weather/2026/04/23/22351028/Drought_Monitor_State_423_1-DMID1-6ar86dvs0-1920x1080.jpg?w=360&#x26;h=200&#x26;f=webp" alt="Asset Thumbnail" width="360" height="200">
1078											</picture>
1079										
1080										
1081										<div slot="excerpt">As drought continues to degrade across the state, a panel of experts curated by NC State will discuss more about this event and its impacts.
1082</div>
1083									</article-asset>
1084								</div>
1085							
1086								<div class="more-on-this-item">
1087									<article-asset title="Ask the Meteorologist: What goes into the creation of the drought monitor?" href="https://www.wral.com/weather/ask-the-meteorologist-creating-drought-monitor-april-2026/" align-thumbnail="right" thumbnail-stack="">
1088										
1089											<picture slot="thumbnail">
1090												<img class="aspect-16x9" src="https://images.wral.com/c1e936d0-1d88-4e7a-9ac8-8128716e6721?w=360&#x26;h=200&#x26;f=webp" alt="Asset Thumbnail" width="360" height="200">
1091											</picture>
1092										
1093										
1094										<div slot="excerpt">When we think about the worsening drought across our area, we typically think about the fact that we have not had much rain. It's not just precipitation, though, that determines if we are in a drought. Let's dive into how the drought monitor is created.</div>
1095									</article-asset>
1096								</div>
1097							
1098								<div class="more-on-this-item">
1099									<article-asset title="Ask the Meteorologist: What would it take to end ongoing drought?" href="https://www.wral.com/video/ask-the-meteorologist-what-would-it-take-to-end-ongoing-drought/22350562/" align-thumbnail="right" thumbnail-stack="">
1100										
1101											<picture slot="thumbnail">
1102												<img class="aspect-16x9" src="https://images.wral.com/asset/weather/2026/04/22/22350563/ericmillerdrought-DMID1-6aqrzr53v-950x713.jpg?w=360&#x26;h=200&#x26;f=webp" alt="Asset Thumbnail" width="360" height="200">
1103											</picture>
1104										
1105										
1106										<div slot="excerpt">At this point, it would either take a tropical system or something called an "upper level low" to help us get rid of the drought.
1107</div>
1108									</article-asset>
1109								</div>
1110							
1111						</div>
1112					
1113
1114					
1115
1116						
1117								<div class="section-wrapper" id="scroll-wrapper">
1118									<h3 class="section-title">Related</h3>
1119									<lazy-wrapper id="related-lazy-wrapper" tag="search-list" props="{
1120											&#x22;image-width&#x22;: &#x22;640&#x22;,
1121											&#x22;image-height&#x22;: &#x22;360&#x22;
1122										}" data-related-primary="{&#x22;paginate&#x22;:false,&#x22;limit&#x22;:3,&#x22;query&#x22;:&#x22;tags.name: \&#x22;drought\&#x22;&#x22;}" data-related-searches="[]">
1123									<div slot="placeholder" aria-hidden="true"></div>
1124								</lazy-wrapper>
1125							</div>
1126						
1127
1128					
1129					
1130					
1131						<div class="article-copyright">
1132							© 2026  Copyright Capitol Broadcasting Company
1133						</div>
1134					
1135				</div>
1136
1137				
1138					<!-- Taboola -->
1139					<div class="section-wrapper">
1140						<div id="taboola-below-article-thumbnails" style="min-height: 1580px;"></div>
1141					</div>
1142					
1142<script type="text/javascript">
1143						window._taboola = window._taboola || [];
1144						_taboola.push({
1145							mode: 'alternating-thumbnails-a',
1146							container: 'taboola-below-article-thumbnails',
1147							placement: 'Below Article Thumbnails',
1148							target_type: 'mix'
1149						});
1150					</script>
1150
1151				
1152			</section>
1153
1154			<section class="article-sidebar">
1155				<div class="sticky-container" style="top: 120px;">
1156					<div class="sticky">
1157						<div class="opscoad-Desktop_Right_Rail_1" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
1158						<div id="sidebar-promo" class="house-promo"></div>
1159						
1159<script>
1160							!function () {
1161								const promoUrl = 'https://www-promos.wral.com/content/ads/fetch_promos.php?asset_id=4&ad_position=standard_promo_1';
1162								const getPromos = async () => {
1163									const res = await fetch(promoUrl);
1164									const json = await res.json();
1165									if (res.ok) {
1166										const housePromo = document.getElementById("sidebar-promo");
1167										housePromo.innerHTML = json.markup;
1168										const innerLink = housePromo.getElementsByClassName("h-link")[0];
1169										innerLink.style = "margin: auto; text-decoration: none;"
1170										innerLink.getElementsByClassName("flag-media")[0].style = "display: flex;"
1171										innerLink.querySelector(".flag-media img").style = "margin: auto;"
1172										innerLink.querySelectorAll(".flag-body > *").forEach(elt => {
1173											elt.style = "margin: auto; text-align: center; font-size: 1rem; font-weight: 700; color: black;";
1174										})
1175									} else {
1176										throw new Error(text);
1177									}
1178								};
1179								getPromos();
1180							}();
1181						</script>
1181
1182
1183						<div id="bc_recommend"></div>
1184						<div class="opscoad-Desktop_Right_Rail_2" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
1185					</div>
1186				</div>
1187			</section>
1188			</article>
1189		</main>
1190				
1190<script>
1191					(() => {
1192							if (typeof window === 'undefined') return;
1193
1194							const lazyWrapperId = 'related-lazy-wrapper';
1195							let initialized = false;
1196
1197						const normalize = (item) => {
1198							if (!item) return null;
1199							const href = item.uri || item.href || item.url || item.path || '';
1200							const title = item.title || item.headline || item.name || '';
1201							const description = item.description || item.summary || item.deck || '';
1202							const image =
1203								item.image
1204								|| item.image_url
1205								|| item.primaryImage
1206								|| item.teaseImage
1207								|| (Array.isArray(item.images) && item.images[0] && (item.images[0].src || item.images[0]))
1208								|| '';
1209							if (!href || !title) return null;
1210							return { href, title, description, image };
1211						};
1212
1213						const parseConfigs = (lazyWrapper) => {
1214							let primary = null;
1215							let searches = [];
1216							try {
1217								if (lazyWrapper.dataset.relatedPrimary) {
1218									primary = JSON.parse(lazyWrapper.dataset.relatedPrimary);
1219								}
1220							} catch (err) {
1221							}
1222							try {
1223								if (lazyWrapper.dataset.relatedSearches) {
1224									searches = JSON.parse(lazyWrapper.dataset.relatedSearches);
1225								}
1226							} catch (err) {
1227							}
1228							return { primary, searches };
1229						};
1230
1231						const ensureSearchListAttributes = (searchList) => {
1232							if (!searchList.hasAttribute('image-width')) {
1233								searchList.setAttribute('image-width', '640');
1234							}
1235							if (!searchList.hasAttribute('image-height')) {
1236								searchList.setAttribute('image-height', '360');
1237							}
1238						};
1239
1240							const initSearchList = (lazyWrapper, searchList) => {
1241								if (!searchList || initialized) return;
1242								initialized = true;
1243
1244							const { primary, searches } = parseConfigs(lazyWrapper);
1245
1246							const searchConfig = (primary && primary.query)
1247								? primary
1248								: (Array.isArray(searches) ? searches.find(search => search?.query) : null);
1249							if (!searchConfig) {
1250								return;
1251							}
1252
1253							ensureSearchListAttributes(searchList);
1254
1255							const apiBase = 'https://api.wral.com/related/v1/recommendations/search';
1256							const limit = Number.isFinite(+searchConfig.limit) ? +searchConfig.limit : 3;
1257							const paginate = searchConfig.paginate === true;
1258							const baseParams = {
1259								query: searchConfig.query,
1260								limit,
1261								lang: searchConfig.lang || 'en',
1262								sort: searchConfig.sort || 'updated',
1263								paginate,
1264							};
1265
1266							const sentinel = document.createElement('div');
1267							sentinel.setAttribute('aria-hidden', 'true');
1268							sentinel.style.cssText = 'height: 1px; width: 100%;';
1269							searchList.after(sentinel);
1270
1271							let accumulated = [];
1272							let nextToken = null;
1273							let loading = false;
1274							let reachedEnd = false;
1275
1276							const loadPage = async (token = null) => {
1277								if (loading || reachedEnd) return;
1278								loading = true;
1279								searchList.loading = true;
1280
1281								const params = new URLSearchParams();
1282								params.set('query', baseParams.query);
1283								params.set('limit', `${baseParams.limit}`);
1284								params.set('lang', baseParams.lang);
1285								params.set('sort', baseParams.sort);
1286								if (baseParams.paginate) params.set('paginate', 'true');
1287								if (token) params.set('next', token);
1288								const url = `${apiBase}?${params.toString()}`;
1289
1290								try {
1291									const res = await fetch(url);
1292									if (!res.ok) throw new Error(`status ${res.status}`);
1293									const data = await res.json();
1294									const pageItems = Array.isArray(data.items)
1295										? data.items
1296										: (Array.isArray(data.results) ? data.results : []);
1297									const currentUrl = window.location.href.replace(/\/$/, '');
1298									const normalized = pageItems.map(normalize).filter(Boolean)
1299										.filter(item => item.href.replace(/\/$/, '') !== currentUrl);
1300									accumulated.push(...normalized);
1301									searchList.items = accumulated.slice();
1302									nextToken = data.next || null;
1303									reachedEnd = !nextToken;
1304									searchList.error = '';
1305								} catch (err) {
1306									searchList.error = 'Unable to load results.';
1307									reachedEnd = true;
1308								} finally {
1309									loading = false;
1310									searchList.loading = false;
1311									if (!baseParams.paginate || reachedEnd) {
1312										observer?.disconnect();
1313									}
1314								}
1315							};
1316
1317							const observer = baseParams.paginate
1318								? new IntersectionObserver((entries) => {
1319									entries.forEach(entry => {
1320										if (entry.isIntersecting && !reachedEnd && !loading) {
1321											loadPage(nextToken);
1322										}
1323									});
1324								}, {
1325									// Use viewport as the root; shadow DOM + external roots can miss intersections.
1326									root: null,
1327									rootMargin: '200px 0px',
1328								})
1329								: null;
1330
1331							if (observer) {
1332								observer.observe(sentinel);
1333							}
1334
1335								loadPage();
1336							};
1337
1338							const observeSearchList = (lazyWrapper, shadowRoot) => {
1339								const existing = shadowRoot.querySelector('search-list');
1340								if (existing) {
1341									initSearchList(lazyWrapper, existing);
1342									return;
1343							}
1344							const mo = new MutationObserver(() => {
1345									const next = shadowRoot.querySelector('search-list');
1346									if (next) {
1347										mo.disconnect();
1348										initSearchList(lazyWrapper, next);
1349									}
1350								});
1351								mo.observe(shadowRoot, { childList: true, subtree: true });
1352							};
1353
1354							const waitForShadowRoot = (lazyWrapper, timeoutMs = 8000) => new Promise((resolve) => {
1355								const start = performance.now();
1356								const check = () => {
1357								if (lazyWrapper.shadowRoot) {
1358									resolve(lazyWrapper.shadowRoot);
1359									return;
1360								}
1361								if (performance.now() - start >= timeoutMs) {
1362									resolve(null);
1363									return;
1364								}
1365								requestAnimationFrame(check);
1366							};
1367							check();
1368						});
1369
1370							const attachWhenReady = async (lazyWrapper) => {
1371								if (initialized) return;
1372								const shadowRoot = await waitForShadowRoot(lazyWrapper);
1373								if (initialized) return;
1374								if (shadowRoot) {
1375									observeSearchList(lazyWrapper, shadowRoot);
1376								}
1377							};
1378
1379							const bootstrap = () => {
1380								const lazyWrapper = document.getElementById(lazyWrapperId);
1381								if (!lazyWrapper) {
1382									return;
1383								}
1384
1385								if (customElements.get('lazy-wrapper')) {
1386									attachWhenReady(lazyWrapper);
1387								} else {
1388									customElements.whenDefined('lazy-wrapper')
1389										.then(() => attachWhenReady(lazyWrapper));
1390								}
1391							};
1392
1393						if (document.readyState === 'complete' || document.readyState === 'interactive') {
1394							bootstrap();
1395						} else {
1396							document.addEventListener('DOMContentLoaded', bootstrap, { once: true });
1397						}
1398					})();
1399				</script>
1399
1400
1401		<!-- DEV-1087: bottom footer Desktop Leaderboard removed (improves footer viewability) -->
1402
1403		<div class="opscoad-OOP_Leaderboard" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
1404		<div class="opscoad-OOP_Pushdown" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
1405		
1406			<div class="opscoad-OOP_Adhesion" data-unit="wral-v4/weather/forecast-raleigh-durham-fayetteville/"></div>
1407		
1408
1409		
1409<script async src="https://www.googletagmanager.com/gtm.js?id=GTM-TV2CD7D" onload="window.dataLayer = window.dataLayer || []; window.dataLayer.push({ &#x27;gtm.start&#x27; : new Date().getTime(), event : &#x27;gtm.js&#x27; });">
1410		</script>
1410
1411
1412		
1412<script>
1413			(() => {
1414				if (typeof window === 'undefined') return;
1415
1416				const captionStyleText = `
1417					figcaption,
1418					.image-tool__caption,
1419					media-caption {
1420						color: var(--color-gray-4);
1421						border-bottom: 0.0625rem solid var(--color-gray-2);
1422						padding-bottom: 0.625rem;
1423						font-size: 0.8125rem;
1424						display: block;
1425						font-family: sans-serif;
1426						margin: 1rem 0;
1427					}
1428				`;
1429				const captionSelectors = [
1430					'.image-tool__caption',
1431					'.image-caption',
1432					'media-caption',
1433				].join(',');
1434
1435				const convertToFigcaption = element => {
1436					if (!element || element.tagName?.toLowerCase() === 'figcaption') return;
1437					const figcaption = document.createElement('figcaption');
1438					for (const { name, value } of Array.from(element.attributes)) {
1439						figcaption.setAttribute(name, value);
1440					}
1441					figcaption.innerHTML = element.innerHTML;
1442					element.replaceWith(figcaption);
1443				};
1444
1445				const normalizeCaptions = root => {
1446					if (!root || typeof root.querySelectorAll !== 'function') return;
1447					root.querySelectorAll(captionSelectors).forEach(convertToFigcaption);
1448				};
1449
1450				const ensureShadowCaptionStyles = root => {
1451					if (!root || !('host' in root)) return;
1452					if (root.querySelector('style[data-inline-caption-style]')) return;
1453					const style = document.createElement('style');
1454					style.setAttribute('data-inline-caption-style', 'true');
1455					style.textContent = captionStyleText;
1456					root.prepend(style);
1457				};
1458
1459				const observeCaptions = target => {
1460					if (!target || typeof MutationObserver === 'undefined') return;
1461					const observer = new MutationObserver(() => {
1462						normalizeCaptions(target);
1463					});
1464					observer.observe(target, { childList: true, subtree: true });
1465				};
1466
1467				const init = () => {
1468					document.querySelectorAll('content-block').forEach(block => {
1469						normalizeCaptions(block);
1470						observeCaptions(block);
1471
1472						if (!block.shadowRoot) return;
1473						ensureShadowCaptionStyles(block.shadowRoot);
1474						normalizeCaptions(block.shadowRoot);
1475						observeCaptions(block.shadowRoot);
1476					});
1477				};
1478
1479				if (document.readyState === 'loading') {
1480					document.addEventListener('DOMContentLoaded', init, { once: true });
1481				} else {
1482					init();
1483				}
1484			})();
1485		</script>
1485
1486
1487		
1487<script>
1488			/** DataLayer Events */
1489			window.dataLayer = window.dataLayer || [];
1490			window.dataLayer.push({
1491				'event': 'core-page-view',
1492				'currentPageUrl': window.location.href,
1493				'assetType': 'story',
1494				'template': 'wral-web.story',
1495				'articleTitle': window.document.title,
1496				'articleHeadline': document.querySelector('h1')?.textContent,
1497				'siteVersion': 5,
1498			});
1499		</script>
1499
1500
1501		
1501<script>
1502			(function (d, s, n) {
1503				var js, fjs = d.getElementsByTagName(s)[0];
1504				js = d.createElement(s);
1505				js.className = n;
1506				js.src = "//player.ex.co/player/d8af3f9c-ad37-4890-8ed5-bb0ce702acdf";
1507				fjs.parentNode.insertBefore(js, fjs);
1508			}(document, 'script', 'exco-player'));
1509		</script>
1509
1510
1511		
1511<script id="chartbeat">
1512			(function () {
1513				setTimeout(function () {
1514					var _sf_async_config = window._sf_async_config = (window._sf_async_config || {});
1515					_sf_async_config.uid = 20531;
1516					_sf_async_config.domain = 'wral.com';
1517					_sf_async_config.useCanonical = true;
1518					_sf_async_config.useCanonicalDomain = true;
1519					_sf_async_config.flickerControl = false;
1520					function loadChartbeat() {
1521						var e = document.createElement('script');
1522						var n = document.getElementsByTagName('script')[0];
1523						e.type = 'text/javascript';
1524						e.async = true;
1525						e.src = '//static.chartbeat.com/js/chartbeat.js';
1526						n.parentNode.insertBefore(e, n);
1527					}
1528					loadChartbeat();
1529				}, 100);
1530			})();
1531		</script>
1531
1532		
1532<script async id="chartbeat_mab" src="//static.chartbeat.com/js/chartbeat_mab.js"></script>
1532
1533
1534		<wral-footer></wral-footer>
1535		<my-wral-benefits-modal></my-wral-benefits-modal>
1536		
1536<script type="text/javascript">
1537			window._taboola = window._taboola || [];
1538			_taboola.push({flush: true});
1539		</script>
1539
1540	
1541
1542</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.