Open service 2600:9000:225e:c200:6:e5fb:5c40:93a1:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 b2ba97e9b6a83eff85433dad7f6e6288.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: mTmtv1jF-jCKXW853ZOMroxWJmTMnAIzEWNQidhb95WZnm3u5K3k_w== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:225e:c200:6:e5fb:5c40:93a1:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 da78abc509aafffb42eec33ca2dc60d4.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: BDj9P3ZzJ_sG6bVF8vd0pujI8nuLHO1_dvDhRJi0tlbtZnl2pETH9A==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:3000:6:e5fb:5c40:93a1:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 87fae571c6ea0d7d1101b71cc2131bba.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: CyD0wIfEppI00I8X7JWSXCZfymcdn-yDsH2XaTi7Frz5gs8tEZGBkA== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:225e:3400:6:e5fb:5c40:93a1:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 f7aba4a0337c5f98c4703e2b10f1940a.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: hj6Hm-V4DOzkDuEOvMgmGVbH4O3QErVS8BuIyw5HZMDhQJtwI19ozA== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:225e:3400:6:e5fb:5c40:93a1:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 a962efd99fafcdb81ca24e0e8140a67c.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: IlHuwi4dP7thVzqahTxSayr7s8c3IttxZ44paR2jq52wJW-hHRlSVg==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:3000:6:e5fb:5c40:93a1:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 ed7f977b6d983a16331e3fe3f4764e9a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 1t-YTuejK4b0waQ4OgTd8FuGSnWDHtDYrn3tTrt_OdKXPI9QEpiKOA==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:bc00:6:e5fb:5c40:93a1:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 18c9dea802c00b7c060142aad49f7288.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: abLdBlW-M8v6mDtbP0YB6_fdQwl1e8wvj-8UpJHjSHhqCn0-dKVLEg==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:bc00:6:e5fb:5c40:93a1:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 760a29e891ec10bba1274911260e1fc8.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: GKjG5i15KPKFhSUg-Q--ea4dC9XUea1lCvso3lsNlyavkYxPAWjvUg== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.25:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 12e62b05f63a1a2118cca20014b15012.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: Se3u1VJKK3pGB4Vli1UCwK5JE38D34IxGRK92Q4Cgto5MPXtAmOabg== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.117:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 ba67e20db38657ee5cb05d05b3da9d70.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: ZqrSdCZtr68jco0zjv8qoIgwPY4QnMdXry5LvN47tbTzTa2KJ4pRUQ== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.114:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 cfa647edefc0769e715b9781478b0626.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: 9jS8oXEXgt_JbPUHD7bt_HxBR6S6lcUWWl6HvvdJUjTZe810HLSCTg== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.114:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 b2ba97e9b6a83eff85433dad7f6e6288.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: ljrlvm2zQERK8jKko5fUNGsJ41PzlKlRTjT12ffN0oZr_poKaJD2nQ==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 18.66.147.117:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 816b7f4e336674d9d7828ef4700482e8.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: eOMp01jYTa9ipuz41PARGSbJm50RQKBO1nSHKcQSLhVsp9QnJn-5Ng==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 18.66.147.33:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 19dbc4cbbe0be3dca8e57283a83b57c6.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: 6b2ofWqzVrf3sSHAaVFY_2O7MxMaPcst9nABwZ06lYpo2g6ybHIRkA==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 18.66.147.25:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 8b360b28aeb67c1982fcc466a05eef02.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: ItJejyOHYLnYhyOVHjCbYfkxkNgWQx19CqXkVVmjq4a7qPblY_9JUw==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:e400:6:e5fb:5c40:93a1:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 b2ba97e9b6a83eff85433dad7f6e6288.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: x3d3kJOWrI44TeiAwCgpMxBjcPXUpGw9KDYZe35vcBKpZwoQaDbvUA==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:e400:6:e5fb:5c40:93a1:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 19dbc4cbbe0be3dca8e57283a83b57c6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: Yt1WwNyNM72c-_VbQEahsKbPDOF84Bb2iEX8hq2NP9gLAQDymcL4Yw== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 18.66.147.33:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 87fae571c6ea0d7d1101b71cc2131bba.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: Tm-Wmhk068L-q9Vbbs5ISurP4eAnlL51Gvb02tB1qLMY1Qw3AuJvKw== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:225e:1000:6:e5fb:5c40:93a1:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 cfa647edefc0769e715b9781478b0626.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: PtEIUoIoSKAFH71_5Bao3QYwKvm7GVlXLbJDGBjXqcCYIp6g9wJAaA==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:1000:6:e5fb:5c40:93a1:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 e65c822edea04e16936bdb4537763dd4.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: xYJyjyvfT0q7a-HuXO6jvmBZ7FRKZKENr62J0CFodVhWHeh-bB_3cw== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:225e:8a00:6:e5fb:5c40:93a1:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 544049d1dc4d534822b40b9f9c7529da.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: fq_m_tNAWt7VqHa4Kr5abEAxOso6hec_tiZPhWpCJ8BOQJPBAykKQA==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:8a00:6:e5fb:5c40:93a1:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 760a29e891ec10bba1274911260e1fc8.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: 5jU0NZtGBlZqZm6nENlRCPy6NCe5WAAKFs90VaswZ93uUeISDBDMCQ== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
Open service 2600:9000:225e:fe00:6:e5fb:5c40:93a1:443 · plainfin.me
2025-12-23 16:52
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 6577
Connection: close
Date: Tue, 23 Dec 2025 02:23:39 GMT
Last-Modified: Tue, 28 Oct 2025 22:46:50 GMT
ETag: "b78eeae33db19200c265c0be3a27236b"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Server: -
X-Cache: Hit from cloudfront
Via: 1.1 18c9dea802c00b7c060142aad49f7288.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P4
Alt-Svc: h3=":443"; ma=86400
X-Amz-Cf-Id: YGnuGCQXuqvg8ClJUSUQAbAq3tYF6AcOvIU_9hQ9DYcmgZ-q5dYR1Q==
Age: 52110
X-XSS-Protection: 1
X-Frame-Options: DENY
Referrer-Policy: strict-origin-when-cross-origin
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none';
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Resource-Policy: same-origin
Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()
Page title: PlainFin - Financial News Simplified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>PlainFin - Financial News Simplified</title>
<meta name="description" content="PlainFin simplifies financial news so anyone can understand the market. No jargon, just plain English.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<!-- Navigation -->
<nav class="navbar">
<div class="nav-container">
<a class="logo" id="logoLink">
<img src="/favicon-64x64.png" alt="PlainFin Logo" class="logo-icon">
PlainFin
</a>
<div class="nav-links">
<a href="#" class="nav-link">Articles</a>
<a href="/about.html" class="nav-link">About</a>
<button class="btn-nav" id="subscribeBtn">Subscribe</button>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="hero">
<h1>Financial News Made Simple</h1>
<p>Clear, jargon-free explanations of what matters in finance. Available in English & 中文.</p>
</div>
<!-- Main Container -->
<div class="container">
<!-- Controls -->
<div class="controls">
<div class="controls-row">
<div class="control-group">
<label for="language">Language</label>
<select id="language">
<option value="en">English</option>
<option value="zh">中文</option>
</select>
</div>
<div class="control-group">
<label> </label>
<button class="btn" id="refreshBtn">
🔄 Refresh
</button>
</div>
</div>
</div>
<!-- Loading State -->
<div id="loading" class="loading" style="display: none;">
<div class="spinner"></div>
<p>Loading financial news...</p>
</div>
<!-- News Grid -->
<div id="newsGrid" class="news-grid"></div>
</div>
<!-- Article Modal -->
<div id="articleModal" class="modal">
<div class="modal-content">
<div class="modal-header">
<button class="modal-close" id="closeModalBtn">×</button>
<h1 class="modal-title" id="modalTitle"></h1>
</div>
<div class="modal-body">
<!-- NEW: Context Sections -->
<div id="contextSections" class="context-sections">
<!-- Key Takeaway -->
<div id="keyTakeawaySection" class="context-box context-takeaway" style="display: none;">
<div class="context-icon">💡</div>
<div class="context-content">
<h3>Key Takeaway</h3>
<p id="keyTakeawayText"></p>
</div>
</div>
<!-- Why This Matters -->
<div id="whyMattersSection" class="context-box context-why" style="display: none;">
<div class="context-icon">ℹ️</div>
<div class="context-content">
<h3>Why This Matters</h3>
<p id="whyMattersText"></p>
</div>
</div>
<!-- What This Means For You -->
<div id="whatMeansSection" class="context-box context-means" style="display: none;">
<div class="context-icon">📈</div>
<div class="context-content">
<h3>What This Means For You</h3>
<p id="whatMeansText"></p>
</div>
</div>
Open service 2600:9000:225e:fe00:6:e5fb:5c40:93a1:80 · plainfin.me
2025-12-23 16:52
HTTP/1.1 301 Moved Permanently Date: Tue, 23 Dec 2025 16:52:08 GMT Content-Type: text/html Content-Length: 167 Connection: close Location: https://plainfin.me/ X-Cache: Redirect from cloudfront Via: 1.1 8b360b28aeb67c1982fcc466a05eef02.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA60-P4 Alt-Svc: h3=":443"; ma=86400 X-Amz-Cf-Id: w7CfaRN3KcnbXT_sCNK4YoIvlrDcwaDiA4b8mQuCRRan-wopFJ2l5A== X-XSS-Protection: 1 X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://k5vcs2efnh6ckrcrvq7uiyyhhq0irqdn.lambda-url.us-east-1.on.aws https://7dzcrew6c4dixcqfnpflb26k7i0tewih.lambda-url.us-east-1.on.aws; font-src 'self'; object-src 'none'; X-Content-Type-Options: nosniff Cross-Origin-Embedder-Policy: credentialless Cross-Origin-Opener-Policy: same-origin Cross-Origin-Resource-Policy: same-origin Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=() Server: - Page title: 301 Moved Permanently <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>CloudFront</center> </body> </html>
2600:9000:225e:c200:6:e5fb:5c40:93a1 2 2600:9000:225e:3000:6:e5fb:5c40:93a1 1 2600:9000:225e:3400:6:e5fb:5c40:93a1 1 2600:9000:225e:bc00:6:e5fb:5c40:93a1 1 18.66.147.25 1 18.66.147.117 1 18.66.147.114 1 18.66.147.33 1 2600:9000:225e:e400:6:e5fb:5c40:93a1 1 2600:9000:225e:1000:6:e5fb:5c40:93a1 1 2600:9000:225e:8a00:6:e5fb:5c40:93a1 1 2600:9000:225e:fe00:6:e5fb:5c40:93a1 1