/* ================================================================
   ENSOUL.DEV — Dark theme matching the explorer aesthetic
   ================================================================ */

:root {
	--bg: #0a0a0f;
	--bg-card: #12121a;
	--bg-input: #1a1a24;
	--border: #2d2d3f;
	--border-dim: #1e1e2a;
	--primary: #7c3aed;
	--primary-light: #a78bfa;
	--primary-glow: rgba(124, 58, 237, 0.15);
	--text: #e0e0e0;
	--text-secondary: #888;
	--text-dim: #666;
	--green: #4ade80;
	--green-bg: #1e3a2f;
	--blue: #60a5fa;
	--blue-bg: #1e2a3f;
	--purple-bg: #2d1e3f;
	--pink: #f472b6;
	--pink-bg: #3f1e2d;
	--gold: #fbbf24;
	--gold-bg: #3f3a1e;
	--font: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
	font-family: var(--font);
	background: var(--bg);
	color: var(--text);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

a { color: var(--primary); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--primary-light); }

code, pre {
	font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', monospace;
}

code {
	background: var(--bg-input);
	border: 1px solid var(--border);
	border-radius: 4px;
	padding: 2px 6px;
	font-size: 0.9em;
}

pre {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 16px 20px;
	overflow-x: auto;
	font-size: 0.9em;
	line-height: 1.5;
	margin: 16px 0;
}

pre code {
	background: none;
	border: none;
	padding: 0;
	font-size: inherit;
}

/* ── Layout ───────────────────────────────────────────── */

.container { max-width: 960px; margin: 0 auto; padding: 0 24px; }
.wide { max-width: 1120px; }

section { padding: 80px 0; }
section + section { border-top: 1px solid var(--border-dim); }

/* ── Nav ──────────────────────────────────────────────── */

nav {
	position: sticky; top: 0; z-index: 100;
	background: rgba(10, 10, 15, 0.92);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--border);
	padding: 14px 0;
}

nav .inner {
	max-width: 1120px; margin: 0 auto; padding: 0 24px;
	display: flex; align-items: center; gap: 32px;
}

nav .logo {
	font-size: 1.15em; font-weight: 800; letter-spacing: 1px;
	color: var(--primary); text-transform: uppercase;
}

nav .links { display: flex; gap: 24px; margin-left: auto; }
nav .links a { color: var(--text-secondary); font-size: 0.9em; font-weight: 500; }
nav .links a:hover { color: var(--text); }

.mobile-toggle { display: none; background: none; border: none; color: var(--text); font-size: 1.4em; cursor: pointer; }

@media (max-width: 680px) {
	nav .links { display: none; flex-direction: column; gap: 12px; position: absolute; top: 52px; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid var(--border); padding: 16px 24px; }
	nav .links.open { display: flex; }
	.mobile-toggle { display: block; margin-left: auto; }
}

/* ── Hero ─────────────────────────────────────────────── */

.hero {
	text-align: center;
	padding: 100px 0 60px;
}

.hero h1 {
	font-size: clamp(2.4em, 5vw, 3.6em);
	font-weight: 900;
	color: var(--primary);
	letter-spacing: -1px;
	margin-bottom: 16px;
}

.hero .subline {
	font-size: clamp(1em, 2.5vw, 1.25em);
	color: var(--text-secondary);
	max-width: 640px;
	margin: 0 auto 32px;
	line-height: 1.5;
}

.hero .ctas { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

.btn {
	display: inline-block;
	padding: 12px 28px;
	border-radius: 8px;
	font-weight: 600;
	font-size: 1em;
	transition: all 0.2s;
	cursor: pointer;
	border: none;
}

.btn-primary {
	background: var(--primary);
	color: #fff;
}
.btn-primary:hover { background: #6d28d9; color: #fff; }

.btn-secondary {
	background: transparent;
	color: var(--primary);
	border: 1px solid var(--primary);
}
.btn-secondary:hover { background: var(--primary-glow); color: var(--primary-light); }

/* ── Live Stats ───────────────────────────────────────── */

.live-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 48px;
}

.stat-card {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 20px;
	text-align: center;
}

.stat-value {
	font-size: 1.6em;
	font-weight: 700;
	color: var(--primary);
}

.stat-label {
	font-size: 0.8em;
	color: var(--text-secondary);
	margin-top: 4px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

@media (max-width: 680px) {
	.live-stats { grid-template-columns: repeat(2, 1fr); }
}

/* ── Section headings ─────────────────────────────────── */

.section-title {
	font-size: 1.8em;
	font-weight: 800;
	color: var(--text);
	margin-bottom: 8px;
}

.section-sub {
	color: var(--text-secondary);
	font-size: 1.05em;
	margin-bottom: 40px;
}

/* ── Problem section ──────────────────────────────────── */

.problem-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 32px 0;
}

.problem-card {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 24px;
}

.problem-card .icon { font-size: 2em; margin-bottom: 12px; }
.problem-card h3 { font-size: 1em; color: var(--text); margin-bottom: 8px; }
.problem-card p { font-size: 0.9em; color: var(--text-secondary); line-height: 1.5; }

@media (max-width: 680px) {
	.problem-grid { grid-template-columns: 1fr; }
}

/* ── Steps ────────────────────────────────────────────── */

.steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 32px;
}

.step {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 28px 24px;
	position: relative;
}

.step-num {
	font-size: 2.5em;
	font-weight: 900;
	color: var(--primary);
	opacity: 0.3;
	position: absolute;
	top: 12px;
	right: 16px;
}

.step h3 { font-size: 1.1em; margin-bottom: 8px; }
.step p { font-size: 0.9em; color: var(--text-secondary); line-height: 1.5; }
.step code { font-size: 0.85em; }

@media (max-width: 680px) {
	.steps { grid-template-columns: 1fr; }
}

/* ── Trust levels ─────────────────────────────────────── */

.trust-list { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; }

.trust-item {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 16px 20px;
}

.trust-num {
	font-size: 1.6em;
	font-weight: 900;
	min-width: 40px;
	text-align: center;
}

.trust-item.basic .trust-num { color: var(--green); }
.trust-item.verified .trust-num { color: var(--blue); }
.trust-item.anchored .trust-num { color: var(--primary-light); }
.trust-item.immortal .trust-num { color: var(--pink); }
.trust-item.sovereign .trust-num { color: var(--gold); }

.trust-info h3 { font-size: 1em; margin-bottom: 2px; }
.trust-info p { font-size: 0.85em; color: var(--text-secondary); }

/* ── Validator CTA ────────────────────────────────────── */

.validator-cta {
	text-align: center;
}

.validator-cta pre {
	display: inline-block;
	text-align: left;
	font-size: 1.1em;
	padding: 20px 32px;
	margin: 24px 0;
}

/* ── Footer ───────────────────────────────────────────── */

footer {
	border-top: 1px solid var(--border);
	padding: 40px 0;
	text-align: center;
	color: var(--text-dim);
	font-size: 0.85em;
}

footer .links { display: flex; gap: 24px; justify-content: center; margin-bottom: 16px; flex-wrap: wrap; }
footer .links a { color: var(--text-secondary); }
footer .tagline { color: var(--text-dim); }

/* ── Docs layout ──────────────────────────────────────── */

.docs-layout {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 40px;
	max-width: 1120px;
	margin: 0 auto;
	padding: 32px 24px;
	min-height: calc(100vh - 60px);
}

.docs-sidebar {
	position: sticky;
	top: 60px;
	height: fit-content;
}

.docs-sidebar h3 {
	font-size: 0.75em;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--text-dim);
	margin: 20px 0 8px;
}

.docs-sidebar a {
	display: block;
	padding: 6px 0;
	color: var(--text-secondary);
	font-size: 0.9em;
}
.docs-sidebar a:hover, .docs-sidebar a.active { color: var(--primary); }

.docs-content h1 {
	font-size: 2em;
	font-weight: 800;
	color: var(--text);
	margin-bottom: 8px;
}

.docs-content h2 {
	font-size: 1.4em;
	font-weight: 700;
	color: var(--primary-light);
	margin-top: 48px;
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--border);
}

.docs-content h3 {
	font-size: 1.1em;
	font-weight: 600;
	margin-top: 32px;
	margin-bottom: 12px;
}

.docs-content p { margin-bottom: 16px; color: var(--text); line-height: 1.7; }
.docs-content ul, .docs-content ol { margin: 0 0 16px 24px; line-height: 1.7; }
.docs-content li { margin-bottom: 6px; }

.docs-content .lead {
	font-size: 1.1em;
	color: var(--text-secondary);
	margin-bottom: 32px;
}

/* API endpoint cards */
.endpoint {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 8px;
	padding: 20px;
	margin: 16px 0;
}

.endpoint .method {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: 0.8em;
	font-weight: 700;
	background: var(--green-bg);
	color: var(--green);
	margin-right: 8px;
}

.endpoint .path {
	font-family: 'SF Mono', monospace;
	font-size: 0.95em;
	color: var(--text);
}

.endpoint p { margin-top: 8px; font-size: 0.9em; color: var(--text-secondary); }

/* Tokenomics allocation bars */
.alloc-bar {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 8px 0;
}

.alloc-fill {
	height: 8px;
	border-radius: 4px;
	background: var(--primary);
}

.alloc-label { font-size: 0.85em; color: var(--text-secondary); min-width: 180px; }
.alloc-pct { font-size: 0.85em; color: var(--text-dim); min-width: 40px; }

@media (max-width: 780px) {
	.docs-layout { grid-template-columns: 1fr; }
	.docs-sidebar { position: static; display: flex; flex-wrap: wrap; gap: 8px 16px; }
	.docs-sidebar h3 { width: 100%; margin-top: 12px; }
}

/* ── Flywheel ─────────────────────────────────────────── */

.flywheel-visual {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 12px;
	padding: 32px;
	margin: 32px 0;
}

.flywheel-steps {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
	margin-top: 20px;
}

.flywheel-step {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 6px;
	background: var(--bg);
	border: 1px solid var(--border-dim);
}

.flywheel-step .num {
	font-weight: 800;
	color: var(--primary);
	min-width: 24px;
}

.flywheel-step p { font-size: 0.85em; color: var(--text-secondary); margin: 0; }

@media (max-width: 680px) {
	.flywheel-steps { grid-template-columns: 1fr; }
}
