/*
Theme Name: W3D
Theme URI: https://web3decentralization.com/
Author: The W3D Team
Author URI: https://web3decentralization.com/about/
Description: Standalone premium emerald/cyan dark theme for Web3Decentralization.com. Self-hosted fonts, no external requests, accessibility-first markup. Replaces the Astra-based child theme.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: w3d
Tags: dark, one-column, custom-logo, custom-menu, featured-images, threaded-comments
*/

/* ============================================================
   FONTS (self-hosted variable woff2, latin subset)
   ============================================================ */
@font-face{
	font-family:"Inter";
	font-style:normal;
	font-weight:400 700;
	font-display:swap;
	src:url(assets/fonts/inter.woff2) format("woff2");
}
@font-face{
	font-family:"Space Grotesk";
	font-style:normal;
	font-weight:400 700;
	font-display:swap;
	src:url(assets/fonts/space-grotesk.woff2) format("woff2");
}
@font-face{
	font-family:"JetBrains Mono";
	font-style:normal;
	font-weight:400 700;
	font-display:swap;
	src:url(assets/fonts/jetbrains-mono.woff2) format("woff2");
}

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root{
	--w3d-bg:        #030409;
	--w3d-bg-2:      #04120d;
	--w3d-surface:   #0a1420;
	--w3d-surface-2: #0a1f18;
	--w3d-border:    rgba(255,255,255,.08);
	--w3d-border-2:  rgba(52,211,153,.32);
	--w3d-text:      #eafaf4;
	--w3d-muted:     #9db8ad;
	--w3d-dim:       #6f8b80;
	--w3d-emerald:   #10b981;
	--w3d-emerald-2: #34d399;
	--w3d-teal:      #2dd4bf;
	--w3d-cyan:      #06b6d4;
	--w3d-grad:      linear-gradient(120deg,#10b981 0%,#34d399 45%,#06b6d4 100%);
	--w3d-grad-cyan: linear-gradient(120deg,#10b981,#06b6d4);
	--w3d-btn-grad:  linear-gradient(135deg,#06735a,#05614a);
	--w3d-btn-grad-hover: linear-gradient(135deg,#0a7d62,#06664e);
	--w3d-radius:    16px;
	--w3d-radius-sm: 10px;
	--w3d-glow:      0 0 0 1px rgba(16,185,129,.25), 0 8px 30px -6px rgba(16,185,129,.45);
	--w3d-shadow:    0 4px 24px -8px rgba(0,0,0,.6);
	--w3d-font-head: "Space Grotesk", "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
	--w3d-font-body: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;
	--w3d-font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
	--w3d-content-w: 1180px;
	--w3d-read-w:    820px;
}

/* ============================================================
   BASE / RESET
   ============================================================ */
*, *::before, *::after{ box-sizing:border-box; }
html{ font-size:16px; scroll-behavior:smooth; }
body{
	margin:0;
	background:var(--w3d-bg);
	color:var(--w3d-muted);
	font-family:var(--w3d-font-body);
	line-height:1.7;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
	overflow-x:hidden;
}
body.w3d-app{ background-color:var(--w3d-bg); }
img{ max-width:100%; height:auto; }
h1,h2,h3,h4,h5,h6{
	font-family:var(--w3d-font-head);
	color:var(--w3d-text);
	line-height:1.25;
	letter-spacing:-.01em;
	font-weight:700;
	margin:0 0 .6em;
}
p{ margin:0 0 1em; }
ul,ol{ padding-left:1.3em; }
ul ul, ol ol, ul ol, ol ul{ margin:0; }

a{ color:var(--w3d-emerald-2); text-underline-offset:3px; transition:color .15s; }
a:hover{ color:#99f6e4; }

::selection{ background:rgba(16,185,129,.4); color:#fff; }
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background:var(--w3d-bg); }
::-webkit-scrollbar-thumb{ background:#103b33; border-radius:99px; border:3px solid var(--w3d-bg); }
::-webkit-scrollbar-thumb:hover{ background:#174a40; }

:focus-visible{ outline:2px solid var(--w3d-emerald-2); outline-offset:3px; border-radius:4px; }

/* Screen reader helper */
.screen-reader-text{
	border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%);
	height:1px; width:1px; margin:-1px; overflow:hidden;
	padding:0; position:absolute !important; word-wrap:normal !important;
}
.screen-reader-text:focus{
	background-color:var(--w3d-bg-2); color:var(--w3d-text);
	clip:auto !important; clip-path:none; display:block;
	font-size:15px; height:auto; left:16px; top:12px; line-height:normal;
	padding:14px 20px; border-radius:8px; border:1px solid var(--w3d-emerald-2);
	text-decoration:none; z-index:100000; width:auto;
}

/* Skip link */
.skip-link{ position:absolute; left:-9999px; top:0; z-index:200; }
.skip-link:focus{ left:16px; top:12px; background:var(--w3d-bg-2); color:var(--w3d-text); padding:14px 20px; border:1px solid var(--w3d-emerald-2); border-radius:8px; }

/* Layout wrapper + alignment widths */
.w3d-wrap{ max-width:var(--w3d-content-w); margin:0 auto; padding:0 24px; }
.alignwide{ max-width:var(--w3d-content-w); margin-left:auto; margin-right:auto; }
.alignfull{ width:100%; max-width:none; }
.alignleft{ float:left; margin:.4em 1.4em .6em 0; }
.alignright{ float:right; margin:.4em 0 .6em 1.4em; }

/* ============================================================
   BUTTONS (core block + helpers)
   ============================================================ */
.wp-block-button__link,
.w3d-btn,
a.btn{
	display:inline-block;
	background:var(--w3d-btn-grad);
	color:#fff !important;
	font-family:var(--w3d-font-head);
	font-weight:600;
	font-size:15.5px;
	line-height:1.2;
	padding:14px 22px;
	border-radius:12px;
	text-decoration:none;
	border:1px solid transparent;
	box-shadow:0 8px 24px -10px rgba(16,185,129,.55);
	transition:transform .18s ease, box-shadow .18s ease, background .2s ease;
}
.wp-block-button__link:hover,
.w3d-btn:hover,
a.btn:hover{
	background:var(--w3d-btn-grad-hover);
	color:#fff !important;
	transform:translateY(-2px);
	box-shadow:0 14px 34px -10px rgba(16,185,129,.7);
}

/* Ghost / outline buttons */
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline--1 .wp-block-button__link,
.wp-block-button.is-style-outline--2 .wp-block-button__link,
.btn-ghost{
	background:transparent;
	color:#fff !important;
	border:1px solid rgba(255,255,255,.22);
	box-shadow:none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.btn-ghost:hover{
	background:rgba(255,255,255,.09);
	transform:translateY(-2px);
	box-shadow:none;
}

/* ============================================================
   HEADER / NAVIGATION
   ============================================================ */
.w3d-header{
	position:sticky;
	top:0;
	z-index:60;
	background:rgba(5,7,14,.82);
	-webkit-backdrop-filter:blur(14px);
	backdrop-filter:blur(14px);
	border-bottom:1px solid transparent;
	transition:background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.w3d-header.w3d-scrolled{
	background:rgba(5,7,14,.92);
	border-bottom:1px solid var(--w3d-border);
	box-shadow:0 8px 30px -18px rgba(0,0,0,.8);
}
.w3d-header-inner{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:22px;
	min-height:70px;
}
.w3d-site-branding{ display:flex; align-items:center; }
.w3d-site-branding a{ display:inline-flex; align-items:center; gap:12px; text-decoration:none; }
.w3d-site-branding img.w3d-logo-img{ height:36px; width:auto; }
.w3d-site-branding .w3d-site-name{
	font-family:var(--w3d-font-head);
	font-weight:700;
	font-size:17px;
	color:var(--w3d-text);
	letter-spacing:-.01em;
	line-height:1.2;
}
.w3d-site-branding .w3d-site-tag{
	display:block;
	font-family:var(--w3d-font-body);
	font-size:11px;
	font-weight:500;
	color:var(--w3d-dim);
	letter-spacing:.02em;
}

/* Desktop nav */
.w3d-nav{ }
.w3d-nav ul{
	display:flex;
	align-items:center;
	gap:4px;
	list-style:none;
	margin:0;
	padding:0;
}
.w3d-nav ul ul{ display:none; }
.w3d-nav a{
	display:block;
	padding:9px 13px;
	border-radius:9px;
	font-size:15px;
	font-weight:500;
	color:var(--w3d-muted);
	text-decoration:none;
	white-space:nowrap;
	transition:color .15s, background .15s;
}
.w3d-nav a:hover{ color:var(--w3d-text); background:rgba(255,255,255,.05); }
.w3d-nav .current-menu-item > a,
.w3d-nav .current_page_item > a{
	color:var(--w3d-emerald-2);
	background:rgba(16,185,129,.12);
}
.w3d-nav .menu-item a:focus-visible{ outline-offset:2px; }

/* Mobile toggle button */
.w3d-nav-toggle{
	display:none;
	align-items:center;
	justify-content:center;
	width:44px;
	height:44px;
	border:1px solid var(--w3d-border);
	border-radius:10px;
	background:rgba(255,255,255,.04);
	color:var(--w3d-text);
	cursor:pointer;
}
.w3d-nav-toggle:hover{ background:rgba(255,255,255,.09); }
.w3d-nav-toggle .w3d-burger,
.w3d-nav-toggle .w3d-burger::before,
.w3d-nav-toggle .w3d-burger::after{
	display:block;
	width:18px;
	height:2px;
	border-radius:2px;
	background:currentColor;
	content:"";
	transition:transform .2s ease, opacity .2s ease;
}
.w3d-nav-toggle .w3d-burger{ position:relative; }
.w3d-nav-toggle .w3d-burger::before{ position:absolute; top:-6px; left:0; }
.w3d-nav-toggle .w3d-burger::after{ position:absolute; top:6px; left:0; }
.w3d-nav-toggle[aria-expanded="true"] .w3d-burger{ transform:rotate(45deg); }
.w3d-nav-toggle[aria-expanded="true"] .w3d-burger::before{ transform:translateY(6px) rotate(90deg); }
.w3d-nav-toggle[aria-expanded="true"] .w3d-burger::after{ transform:translateY(-6px) rotate(90deg); }

@media (max-width: 920px){
	.w3d-nav-toggle{ display:flex; }
	.w3d-nav{
		position:absolute;
		top:100%;
		left:0;
		right:0;
		display:none;
		background:rgba(5,7,14,.98);
		border-bottom:1px solid var(--w3d-border);
		padding:10px 24px 18px;
	}
	.w3d-header.w3d-nav-open .w3d-nav{ display:block; }
	.w3d-nav ul{ flex-direction:column; align-items:stretch; gap:2px; }
	.w3d-nav a{ padding:12px 14px; font-size:16px; white-space:normal; }
	.w3d-nav .current-menu-item > a{ background:rgba(16,185,129,.14); }
	.w3d-header-inner{ min-height:62px; }
}

/* ============================================================
   READING PROGRESS BAR
   ============================================================ */
.w3d-progress{
	position:fixed;
	top:0;
	left:0;
	height:3px;
	width:0;
	z-index:99;
	background:var(--w3d-grad-cyan);
	border-radius:0 99px 99px 0;
}

/* ============================================================
   MAIN LAYOUT
   ============================================================ */
.w3d-main{ padding:44px 0 72px; }
.home .w3d-main{ padding-top:0; }

/* Shared article / page typography */
.w3d-content{
	max-width:var(--w3d-read-w);
	margin:0 auto;
	padding:20px 0;
}
.w3d-content h2{ font-size:clamp(24px,3vw,30px); margin-top:1.8em; }
.w3d-content h3{ font-size:21px; margin-top:1.6em; }
.w3d-content h4{ font-size:18px; margin-top:1.4em; }
.w3d-content p, .w3d-content ul, .w3d-content ol, .w3d-content blockquote, .w3d-content table{ font-size:17px; }
.w3d-content li{ margin:.3em 0; }
.w3d-content a{ color:var(--w3d-emerald-2); }
.w3d-content blockquote{
	border-left:3px solid var(--w3d-emerald);
	background:rgba(16,185,129,.08);
	color:var(--w3d-text);
	border-radius:0 12px 12px 0;
	padding:16px 22px;
	margin:1.4em 0;
}
.w3d-content blockquote p{ margin:0; }
.w3d-content table{ border-collapse:collapse; width:100%; }
.w3d-content th{ background:rgba(16,185,129,.14); color:var(--w3d-text); text-align:left; }
.w3d-content td, .w3d-content th{ border:1px solid var(--w3d-border); padding:10px 14px; }
.w3d-content tr:nth-child(even) td{ background:rgba(255,255,255,.02); }
.w3d-content code, .w3d-mono{ font-family:var(--w3d-font-mono); font-size:.92em; }
.w3d-content pre{
	background:#0c0d18;
	border:1px solid var(--w3d-border);
	border-radius:12px;
	padding:16px;
	overflow:auto;
	font-family:var(--w3d-font-mono);
	font-size:14px;
}
.w3d-content img{ border-radius:12px; }
.w3d-content .wp-caption-text, .w3d-content figcaption{ font-size:13px; color:var(--w3d-dim); text-align:center; margin-top:.5em; }

/* Page head (about/methodology/blog-titleless handled in templates) */
.w3d-page-head{ text-align:center; margin-bottom:30px; }
.w3d-page-head h1.w3d-page-title{ font-size:clamp(28px,4vw,40px); margin:0; }

/* Home content area is full-bleed */
.home .w3d-content, .w3d-page-full{ max-width:none; padding:0; }

/* ============================================================
   HOMEPAGE — HERO
   ============================================================ */
.w3d-hero{
	position:relative;
	overflow:hidden;
	background:
		radial-gradient(120% 90% at 8% -10%, rgba(16,185,129,.30), transparent 55%),
		radial-gradient(110% 80% at 95% 0%, rgba(6,182,212,.16), transparent 55%),
		radial-gradient(90% 70% at 50% 120%, rgba(6,182,212,.20), transparent 60%),
		linear-gradient(180deg,#0a0a12 0%, #0e1020 100%);
	padding:88px 24px 72px;
}
.w3d-hero::before,
.w3d-hero::after{
	content:"";
	position:absolute;
	border-radius:50%;
	filter:blur(80px);
	pointer-events:none;
	z-index:0;
}
.w3d-hero::before{ width:520px; height:520px; left:-140px; top:-160px; background:rgba(16,185,129,.55); animation:w3dFloat 18s ease-in-out infinite; }
.w3d-hero::after{ width:460px; height:460px; right:-120px; bottom:-180px; background:rgba(6,182,212,.4); animation:w3dFloat 22s ease-in-out infinite reverse; }
@keyframes w3dFloat{
	0%,100%{ transform:translate(0,0) scale(1); }
	33%{ transform:translate(30px,-40px) scale(1.08); }
	66%{ transform:translate(-25px,25px) scale(.95); }
}
.w3d-hero > *{ position:relative; z-index:1; }
.w3d-hero-inner{ max-width:900px; margin:0 auto; text-align:center; }
.w3d-hero-badge{
	display:inline-block;
	padding:7px 16px;
	border-radius:999px;
	background:rgba(16,185,129,.14);
	border:1px solid rgba(52,211,153,.35);
	font-size:12.5px;
	letter-spacing:.06em;
	color:#a7f3d0;
	margin-bottom:20px;
	font-family:var(--w3d-font-mono);
	text-transform:uppercase;
}
.w3d-hero h1, .w3d-hero-inner h1{
	background:var(--w3d-grad-cyan);
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
	color:transparent;
	font-size:clamp(32px,6vw,54px);
	font-weight:700;
	line-height:1.08;
	margin:0 0 18px;
}
.w3d-hero h2, .w3d-hero-inner h2{
	font-size:clamp(32px,6vw,54px);
	line-height:1.08;
	margin:0 0 18px;
	background:var(--w3d-grad-cyan);
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
	color:transparent;
}
.w3d-hero .w3d-sub{ font-size:19px; line-height:1.65; color:var(--w3d-muted); max-width:660px; margin:0 auto 30px; }
.w3d-ctas{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* Stats */
.w3d-stats{ display:flex; gap:38px; justify-content:center; flex-wrap:wrap; margin-top:38px; }
.w3d-stat{ text-align:center; }
.w3d-stat strong{ display:block; font-size:30px; color:#fff; font-family:var(--w3d-font-mono); font-weight:700; }
.w3d-stat strong::after{ content:""; display:block; width:100%; height:3px; margin-top:6px; border-radius:99px; background:var(--w3d-grad-cyan); }
.w3d-stat span{ font-size:13px; color:var(--w3d-dim); }

/* ============================================================
   SECTIONS
   ============================================================ */
.w3d-section{ padding:64px 24px; }
.w3d-section .w3d-sec-label{
	text-align:center;
	color:var(--w3d-emerald-2);
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.12em;
	font-size:12px;
	margin:0 0 10px;
	font-family:var(--w3d-font-mono);
}
.w3d-section h2{ text-align:center; font-size:clamp(26px,3.2vw,36px); margin:0 0 10px; }
.w3d-section .w3d-sec-sub{ text-align:center; color:var(--w3d-muted); max-width:680px; margin:0 auto 36px; font-size:16px; }
.w3d-section[style*="background-color"]{ background-color:var(--w3d-bg-2) !important; }
.w3d-grad-text{
	background:var(--w3d-grad-cyan);
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
	color:transparent;
}

/* ============================================================
   CHAIN SCORECARD GRID (homepage)
   ============================================================ */
.w3d-chains{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:1024px){ .w3d-chains{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px){ .w3d-chains{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .w3d-chains{ grid-template-columns:1fr; } }
.w3d-chain{
	display:flex;
	flex-direction:column;
	justify-content:flex-end;
	background:linear-gradient(180deg,rgba(23,26,43,.9),rgba(18,20,31,.95));
	border:1px solid var(--w3d-border);
	border-radius:var(--w3d-radius-sm);
	padding:18px;
	gap:10px;
	box-shadow:var(--w3d-shadow);
	transition:transform .2s ease, box-shadow .25s ease, border-color .25s ease;
}
.w3d-chain:hover{
	transform:translateY(-4px);
	border-color:var(--w3d-border-2);
	box-shadow:0 16px 38px -14px rgba(16,185,129,.5);
}
.w3d-chain a{ text-decoration:none; color:var(--w3d-text) !important; display:block; }
.w3d-top{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.w3d-name{ font-weight:600; font-size:15px; color:var(--w3d-text); font-family:var(--w3d-font-head); }
.w3d-score{ font-weight:700; font-size:21px; color:var(--w3d-emerald-2); font-family:var(--w3d-font-mono); }
.w3d-bar{ height:8px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; }
.w3d-bar i{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#10b981,#06b6d4); }
.w3d-detail{ font-size:12.5px; color:var(--w3d-dim); }

/* ============================================================
   TOPIC / GUIDE CARDS
   ============================================================ */
.w3d-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:900px){ .w3d-cards{ grid-template-columns:1fr; } }
.w3d-card{
	display:flex;
	flex-direction:column;
	background:linear-gradient(180deg,rgba(23,26,43,.85),rgba(18,20,31,.95));
	border:1px solid var(--w3d-border);
	border-radius:var(--w3d-radius);
	overflow:hidden;
	box-shadow:var(--w3d-shadow);
	transition:transform .2s ease, border-color .25s ease, box-shadow .25s ease;
}
.w3d-card:hover{ transform:translateY(-4px); border-color:var(--w3d-border-2); box-shadow:0 16px 38px -14px rgba(16,185,129,.45); }
.w3d-card-body{ padding:20px; }
.w3d-card-cat{
	display:inline-block;
	font-size:11px;
	font-weight:700;
	color:var(--w3d-emerald-2);
	text-transform:uppercase;
	letter-spacing:.08em;
	font-family:var(--w3d-font-mono);
}
.w3d-card h3{ font-size:17px; line-height:1.35; margin:10px 0 6px; }
.w3d-card h3 a{ color:var(--w3d-text); text-decoration:none; }
.w3d-card h3 a:hover{ color:var(--w3d-emerald-2); }
.w3d-card p{ font-size:14px; color:var(--w3d-muted); margin:0; }

/* ============================================================
   TRUST + CTA
   ============================================================ */
.w3d-trust{
	background:linear-gradient(150deg,#071a14 0%,#0a2d22 100%);
	border:1px solid var(--w3d-border-2);
	border-radius:var(--w3d-radius);
	padding:40px;
	color:#fff;
	position:relative;
	overflow:hidden;
	box-shadow:0 24px 60px -30px rgba(16,185,129,.4);
}
.w3d-trust::before{
	content:"";
	position:absolute;
	inset:0;
	background:radial-gradient(700px 260px at 15% 0%, rgba(16,185,129,.28), transparent 60%);
	pointer-events:none;
}
.w3d-trust h2, .w3d-trust h3{ color:#fff; font-size:24px; margin:0 0 12px; position:relative; }
.w3d-trust p{ color:#c9cfe8; max-width:740px; position:relative; }
.w3d-trust a{ color:var(--w3d-emerald-2); position:relative; }
.w3d-trust ul.w3d-trust-links{
	list-style:none;
	margin:18px 0 0;
	padding:0;
	display:flex;
	flex-wrap:wrap;
	gap:8px 28px;
	position:relative;
}
.w3d-trust-links a{
	display:inline-flex;
	align-items:center;
	gap:6px;
	text-decoration:none;
	font-weight:600;
	font-size:14.5px;
}
.w3d-trust-links a::after{ content:"→"; color:var(--w3d-teal); }
.w3d-trust-links a:hover{ color:#a7f3d0; }
.w3d-trust .w3d-trust-note{ font-size:13.5px; color:var(--w3d-dim); font-style:italic; margin-top:18px; }

.w3d-cta{
	text-align:center;
	color:#fff;
	border-radius:var(--w3d-radius);
	padding:52px 28px;
	background:radial-gradient(120% 140% at 50% -20%, rgba(16,185,129,.5), transparent 55%),
		radial-gradient(120% 120% at 50% 130%, rgba(6,182,212,.35), transparent 60%),
		linear-gradient(150deg,#09201a,#0c3028);
	border:1px solid var(--w3d-border-2);
	box-shadow:0 24px 70px -30px rgba(16,185,129,.5);
	position:relative;
	overflow:hidden;
}
.w3d-cta h2, .w3d-cta h3{ color:#fff; font-size:30px; margin:0 0 12px; }
.w3d-cta p{ color:#d3d6f2; max-width:560px; margin:0 auto 26px; }

/* ============================================================
   ARTICLE CONTENT HELPERS (editor-added classes)
   ============================================================ */
.w3d-affiliate-note{
	background:rgba(52,211,153,.08);
	border:1px solid rgba(52,211,153,.28);
	border-left:3px solid var(--w3d-emerald-2);
	border-radius:0 10px 10px 0;
	padding:12px 18px;
	font-size:13.5px;
	color:var(--w3d-muted);
}
.w3d-affiliate-note em{ font-style:normal; }
.w3d-disclosure{
	background:rgba(255,255,255,.03);
	border:1px solid var(--w3d-border);
	border-left:3px solid var(--w3d-teal);
	border-radius:0 10px 10px 0;
	padding:12px 18px;
	font-size:13.5px;
	color:var(--w3d-muted);
}
.w3d-disclosure em{ font-style:normal; }
.w3d-sources-note{ font-size:14.5px; color:var(--w3d-muted); }
ul.w3d-sources{
	list-style:none;
	margin:0 0 1.2em;
	padding:0;
	display:grid;
	gap:8px;
}
ul.w3d-sources li{
	background:rgba(255,255,255,.03);
	border:1px solid var(--w3d-border);
	border-radius:10px;
	padding:10px 14px;
	font-size:14.5px;
}
ul.w3d-sources li em{ color:var(--w3d-dim); font-size:13px; }
ul.w3d-sources li a{ font-weight:600; }

/* ============================================================
   BLOG INDEX / ARCHIVE LISTINGS
   ============================================================ */
.w3d-blog-intro{ max-width:var(--w3d-read-w); margin:0 auto 40px; }
.w3d-blog-intro h1, .w3d-blog-intro h2{ font-size:clamp(26px,3.4vw,38px); text-align:center; }
.w3d-blog-intro p{ font-size:17px; text-align:center; color:var(--w3d-muted); }

.w3d-posts{ display:grid; gap:20px; }
.w3d-post-card{
	background:var(--w3d-surface);
	border:1px solid var(--w3d-border);
	border-radius:var(--w3d-radius);
	padding:26px 28px;
	transition:transform .2s ease, border-color .25s ease, box-shadow .25s ease;
}
.w3d-post-card:hover{ transform:translateY(-3px); border-color:var(--w3d-border-2); box-shadow:0 14px 34px -18px rgba(16,185,129,.4); }
.w3d-post-card h2{ font-size:21px; line-height:1.35; margin:8px 0 6px; }
.w3d-post-card h2 a{ color:var(--w3d-text); text-decoration:none; }
.w3d-post-card h2 a:hover{ color:var(--w3d-emerald-2); }
.w3d-post-meta{ font-size:13px; color:var(--w3d-dim); margin:6px 0 12px; }
.w3d-post-meta a{ color:var(--w3d-dim); }
.w3d-post-meta a:hover{ color:var(--w3d-emerald-2); }
.w3d-post-excerpt{ font-size:15px; color:var(--w3d-muted); margin:0; }

/* ============================================================
   SINGLE POST
   ============================================================ */
.w3d-post-head{ max-width:var(--w3d-read-w); margin:0 auto 8px; }
.w3d-post-head .w3d-post-cats{ margin-bottom:12px; }
.w3d-post-head .w3d-card-cat{ font-size:12px; }
.w3d-post-head h1.w3d-post-title{ font-size:clamp(30px,4.6vw,44px); line-height:1.12; margin:0 0 12px; }
.w3d-post-meta-top{ font-size:14px; color:var(--w3d-dim); }
.w3d-post-meta-top a{ color:var(--w3d-dim); text-decoration:underline; text-underline-offset:3px; }
.w3d-post-meta-top a:hover{ color:var(--w3d-emerald-2); }

/* ============================================================
   PAGINATION
   ============================================================ */
.w3d-pagination{ margin:44px 0 8px; }
.w3d-pagination .nav-links{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.w3d-pagination .page-numbers{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:42px;
	height:42px;
	padding:0 12px;
	border:1px solid var(--w3d-border);
	border-radius:10px;
	background:var(--w3d-surface);
	color:var(--w3d-muted);
	text-decoration:none;
	font-size:14.5px;
	font-weight:600;
}
.w3d-pagination .page-numbers:hover{ border-color:var(--w3d-border-2); color:var(--w3d-text); }
.w3d-pagination .page-numbers.current{
	background:rgba(16,185,129,.14);
	border-color:rgba(52,211,153,.4);
	color:var(--w3d-emerald-2);
}

/* ============================================================
   CHAIN SINGLE — DASHBOARD
   ============================================================ */
.chain-wrap{ max-width:940px; margin:0 auto; }
.w3d-chain-single h1{ margin:0; }
.chain-dash-head{
	background:linear-gradient(180deg,rgba(23,26,43,.92),rgba(18,20,31,.96));
	border:1px solid var(--w3d-border);
	border-radius:var(--w3d-radius);
	padding:30px;
	box-shadow:var(--w3d-shadow);
	margin-bottom:30px;
}
.chain-title-row{ display:flex; justify-content:space-between; gap:18px; align-items:flex-start; flex-wrap:wrap; }
.chain-ticker{
	display:inline-block;
	font-family:var(--w3d-font-mono);
	color:var(--w3d-cyan);
	letter-spacing:.08em;
	font-size:12px;
	text-transform:uppercase;
	background:rgba(6,182,212,.12);
	border:1px solid rgba(6,182,212,.35);
	border-radius:999px;
	padding:4px 11px;
	margin-bottom:10px;
}
.chain-name{ font-size:clamp(28px,4vw,40px); font-weight:700; }
.chain-total{ text-align:right; }
.chain-total-score{
	display:block;
	font-size:46px;
	line-height:1;
	font-weight:700;
	font-family:var(--w3d-font-mono);
	background:var(--w3d-grad-cyan);
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
	color:transparent;
}
.chain-total-label{
	display:block;
	margin-top:8px;
	font-size:11px;
	color:var(--w3d-dim);
	text-transform:uppercase;
	letter-spacing:.1em;
}
.chain-grade{
	display:inline-block;
	margin-top:10px;
	font-family:var(--w3d-font-mono);
	font-size:13px;
	font-weight:600;
	letter-spacing:.05em;
	color:#a7f3d0;
	background:rgba(16,185,129,.14);
	border-radius:8px;
	padding:4px 10px;
}
@media (max-width:520px){ .chain-total{ text-align:left; margin-top:14px; } .chain-title-row{ flex-direction:column; } }
.chain-updated{ margin-top:16px; font-size:13px; color:var(--w3d-dim); font-family:var(--w3d-font-mono); }
.chain-summary{ margin-top:14px; font-size:17px; color:var(--w3d-muted); }

.chain-pillars{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:26px; }
@media (max-width:640px){ .chain-pillars{ grid-template-columns:1fr; } }
.chain-pillar{
	background:rgba(255,255,255,.03);
	border:1px solid var(--w3d-border);
	border-radius:12px;
	padding:13px 15px;
}
.pillar-top{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:13px; }
.pillar-name{ color:var(--w3d-muted); }
.pillar-name small{ color:var(--w3d-dim); }
.pillar-score{ font-family:var(--w3d-font-mono); font-weight:700; color:var(--w3d-emerald-2); font-size:15px; }
.pillar-track{ height:8px; background:rgba(255,255,255,.08); border-radius:99px; margin-top:9px; overflow:hidden; }
.pillar-track i{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#10b981,#06b6d4); }

.chain-body{ max-width:var(--w3d-read-w); margin:0 auto; }
.chain-tool-cta{ margin-top:34px; text-align:center; }

/* ============================================================
   CHAINS HUB (archive-chain)
   ============================================================ */
.chains-hub{ max-width:1020px; margin:0 auto; }
.chains-hub-head{ text-align:center; margin-bottom:40px; }
.chains-hub-title{ font-size:clamp(28px,4vw,42px); margin:0 0 12px; }
.chains-hub-head .w3d-sec-sub{ text-align:center; margin:0 auto; max-width:660px; }
.chains-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
@media (max-width:600px){ .chains-grid{ grid-template-columns:1fr; } }
.chains-card{
	display:flex;
	flex-direction:column;
	justify-content:flex-end;
	gap:10px;
	background:linear-gradient(180deg,rgba(23,26,43,.9),rgba(18,20,31,.95));
	border:1px solid var(--w3d-border);
	border-radius:var(--w3d-radius-sm);
	padding:20px;
	box-shadow:var(--w3d-shadow);
	text-decoration:none;
	color:var(--w3d-text) !important;
	transition:transform .2s ease, border-color .25s ease, box-shadow .25s ease;
}
.chains-card:hover{ transform:translateY(-4px); border-color:var(--w3d-border-2); box-shadow:0 16px 38px -14px rgba(16,185,129,.5); }
.chains-card-top{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.chains-card-name{ font-family:var(--w3d-font-head); font-weight:600; font-size:16.5px; color:var(--w3d-text); }
.chains-card-score{ font-family:var(--w3d-font-mono); font-weight:700; font-size:22px; color:var(--w3d-emerald-2); }
.chains-card-bar{ height:8px; border-radius:99px; background:rgba(255,255,255,.08); overflow:hidden; }
.chains-card-bar i{ display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#10b981,#06b6d4); }
.chains-card-sym{ font-family:var(--w3d-font-mono); font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--w3d-dim); }
.chains-empty{ text-align:center; color:var(--w3d-dim); }

/* ============================================================
   404 + SEARCH
   ============================================================ */
.w3d-404{ text-align:center; padding:60px 0; }
.w3d-404 h1{ font-size:clamp(34px,6vw,58px); }
.w3d-404 p{ max-width:520px; margin:0 auto 28px; }
.w3d-search-form{ display:flex; gap:10px; max-width:440px; margin:0 auto; }
.w3d-search-form input[type="search"]{
	flex:1;
	min-width:0;
	background:var(--w3d-surface);
	color:var(--w3d-text);
	border:1px solid var(--w3d-border);
	border-radius:10px;
	padding:12px 16px;
	font-size:15px;
	font-family:var(--w3d-font-body);
}
.w3d-search-form input[type="search"]:focus-visible{ outline:2px solid var(--w3d-emerald-2); outline-offset:1px; }
.w3d-search-form button{
	background:var(--w3d-btn-grad);
	color:#fff;
	border:1px solid transparent;
	border-radius:10px;
	padding:0 20px;
	font-family:var(--w3d-font-head);
	font-weight:600;
	cursor:pointer;
}
.w3d-search-form button:hover{ background:var(--w3d-btn-grad-hover); }
.w3d-no-results{ text-align:center; color:var(--w3d-dim); }

/* ============================================================
   FOOTER
   ============================================================ */
.w3d-footer{
	background:var(--w3d-bg-2);
	border-top:1px solid var(--w3d-border-2);
	margin-top:72px;
	padding:52px 0 28px;
}
.w3d-footer-top{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; }
.w3d-footer-brand img.w3d-logo-img{ height:34px; width:auto; }
.w3d-footer-brand p{ color:var(--w3d-muted); max-width:420px; font-size:14.5px; margin:14px 0 0; }
.w3d-footer-nav ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 26px; }
.w3d-footer-nav a{ color:var(--w3d-muted); text-decoration:none; font-size:14.5px; font-weight:500; }
.w3d-footer-nav a:hover{ color:var(--w3d-emerald-2); }
.w3d-footer-nav .current-menu-item a{ color:var(--w3d-emerald-2); }
.w3d-footer-disclaimer{
	margin-top:30px;
	max-width:940px;
	font-size:13px;
	line-height:1.7;
	color:var(--w3d-dim);
}
.w3d-footer-copy{
	margin-top:22px;
	padding-top:18px;
	border-top:1px solid var(--w3d-border);
	font-size:13px;
	color:var(--w3d-dim);
	display:flex;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:8px;
}
.w3d-footer-copy a{ color:var(--w3d-dim); }
.w3d-footer-copy a:hover{ color:var(--w3d-emerald-2); }

/* ============================================================
   REVEAL ANIMATION (JS-gated so content is never hidden w/o JS)
   ============================================================ */
.js .w3d-reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1); will-change:opacity,transform; }
.js .w3d-reveal.w3d-in{ opacity:1; transform:none; }
.js .w3d-reveal-d1{ transition-delay:.08s; }
.js .w3d-reveal-d2{ transition-delay:.16s; }
.js .w3d-reveal-d3{ transition-delay:.24s; }

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion: reduce){
	html{ scroll-behavior:auto; }
	*, *::before, *::after{
		animation-duration:.001ms !important;
		animation-iteration-count:1 !important;
		transition-duration:.001ms !important;
	}
	.js .w3d-reveal{ opacity:1; transform:none; transition:none; }
	.w3d-hero::before, .w3d-hero::after{ animation:none !important; }
	.w3d-progress{ display:none; }
}