@import "tailwindcss";

@theme {
	--color-brand: #f59e0b;       /* amber-400 */
	--color-brand-dim: #d97706;   /* amber-600 */
	--color-surface: #18181b;     /* zinc-900 */
	--color-surface-2: #27272a;   /* zinc-800 */
	--color-surface-3: #3f3f46;   /* zinc-700 */
	--color-muted: #a1a1aa;       /* zinc-400 */
	--color-text: #f4f4f5;        /* zinc-100 */
	--color-border: #3f3f46;      /* zinc-700 */
	--color-danger:  #f87171;      /* red-400 */
	--color-success: #4ade80;      /* green-400 */
}

/* ── Amber theme (default) — same as @theme above, explicit for clarity ── */
[data-theme="amber"] {
	--color-brand:     #f59e0b;
	--color-brand-dim: #d97706;
	--color-surface:   #18181b;
	--color-surface-2: #27272a;
	--color-surface-3: #3f3f46;
	--color-muted:     #a1a1aa;
	--color-text:      #f4f4f5;
	--color-border:    #3f3f46;
	--color-danger:    #f87171;
	--color-success:   #4ade80;
}

/* ── Slate theme — indigo/slate dark ─────────────────────────────────── */
[data-theme="slate"] {
	--color-brand:     #818cf8;   /* indigo-400 */
	--color-brand-dim: #4f46e5;   /* indigo-600 */
	--color-surface:   #0f172a;   /* slate-900 */
	--color-surface-2: #1e293b;   /* slate-800 */
	--color-surface-3: #334155;   /* slate-700 */
	--color-muted:     #94a3b8;   /* slate-400 */
	--color-text:      #f1f5f9;   /* slate-100 */
	--color-border:    #334155;   /* slate-700 */
	--color-danger:    #f87171;   /* red-400 */
	--color-success:   #4ade80;   /* green-400 */
}

/* ── Rose theme — dark pink ───────────────────────────────────────────── */
[data-theme="rose"] {
	--color-brand:     #fb7185;   /* rose-400 */
	--color-brand-dim: #e11d48;   /* rose-600 */
	--color-surface:   #18181b;   /* zinc-900 */
	--color-surface-2: #1c1318;   /* custom dark rose */
	--color-surface-3: #2d1f26;   /* custom dark rose-2 */
	--color-muted:     #a1a1aa;   /* zinc-400 */
	--color-text:      #f4f4f5;   /* zinc-100 */
	--color-border:    #3f2d36;   /* custom rose border */
	--color-danger:    #f87171;   /* red-400 */
	--color-success:   #4ade80;   /* green-400 */
}

/* ── Light amber theme ────────────────────────────────────────────────── */
[data-theme="light"] {
	--color-brand:     #d97706;   /* amber-600 */
	--color-brand-dim: #b45309;   /* amber-700 */
	--color-surface:   #ffffff;
	--color-surface-2: #f4f4f5;   /* zinc-100 */
	--color-surface-3: #e4e4e7;   /* zinc-200 */
	--color-muted:     #71717a;   /* zinc-500 */
	--color-text:      #18181b;   /* zinc-900 */
	--color-border:    #d4d4d8;   /* zinc-300 */
	--color-danger:    #dc2626;   /* red-600 */
	--color-success:   #16a34a;   /* green-600 */
}

/* ── Light slate theme ────────────────────────────────────────────────── */
[data-theme="light-slate"] {
	--color-brand:     #4f46e5;   /* indigo-600 */
	--color-brand-dim: #4338ca;   /* indigo-700 */
	--color-surface:   #f8fafc;   /* slate-50 */
	--color-surface-2: #f1f5f9;   /* slate-100 */
	--color-surface-3: #e2e8f0;   /* slate-200 */
	--color-muted:     #64748b;   /* slate-500 */
	--color-text:      #0f172a;   /* slate-900 */
	--color-border:    #cbd5e1;   /* slate-300 */
	--color-danger:    #dc2626;   /* red-600 */
	--color-success:   #16a34a;   /* green-600 */
}

/* ── Light rose theme ─────────────────────────────────────────────────── */
[data-theme="light-rose"] {
	--color-brand:     #e11d48;   /* rose-600 */
	--color-brand-dim: #be123c;   /* rose-700 */
	--color-surface:   #fff1f2;   /* rose-50 */
	--color-surface-2: #ffe4e6;   /* rose-100 */
	--color-surface-3: #fecdd3;   /* rose-200 */
	--color-muted:     #9f1239;   /* rose-800 at 60% */
	--color-text:      #0f0a0b;   /* near black */
	--color-border:    #fda4af;   /* rose-300 */
	--color-danger:    #dc2626;   /* red-600 */
	--color-success:   #16a34a;   /* green-600 */
}

/* ── Forest theme — dark green ────────────────────────────────────────── */
[data-theme="forest"] {
	--color-brand:     #4ade80;   /* green-400 */
	--color-brand-dim: #16a34a;   /* green-600 */
	--color-surface:   #0a130d;   /* custom near-black green */
	--color-surface-2: #111c14;   /* custom dark green */
	--color-surface-3: #1a2e1e;   /* custom mid green */
	--color-muted:     #6b9a77;   /* custom muted green */
	--color-text:      #e8f5e9;   /* custom light green-tinted white */
	--color-border:    #1e3a24;   /* custom green border */
	--color-danger:    #f87171;   /* red-400 */
	--color-success:   #4ade80;   /* green-400 */
}

/* ── Mono theme — pure dark with white accent ─────────────────────────── */
[data-theme="mono"] {
	--color-brand:     #f4f4f5;   /* zinc-100 — white accent */
	--color-brand-dim: #a1a1aa;   /* zinc-400 */
	--color-surface:   #09090b;   /* zinc-950 */
	--color-surface-2: #18181b;   /* zinc-900 */
	--color-surface-3: #27272a;   /* zinc-800 */
	--color-muted:     #71717a;   /* zinc-500 */
	--color-text:      #f4f4f5;   /* zinc-100 */
	--color-border:    #27272a;   /* zinc-800 */
	--color-danger:    #f87171;   /* red-400 */
	--color-success:   #4ade80;   /* green-400 */
}

/* ── Cyberpunk theme — dark with neon cyan/magenta accents ────────────── */
[data-theme="cyber"] {
	--color-brand:     #22d3ee;   /* cyan-400 — neon cyan */
	--color-brand-dim: #06b6d4;   /* cyan-500 */
	--color-surface:   #050712;   /* custom near-black blue */
	--color-surface-2: #0d1117;   /* custom dark blue-black */
	--color-surface-3: #161b27;   /* custom dark blue */
	--color-muted:     #6272a4;   /* dracula comment blue */
	--color-text:      #e2e8f0;   /* slate-200 */
	--color-border:    #1e2d45;   /* custom dark border */
	--color-danger:    #ff5555;   /* dracula red */
	--color-success:   #50fa7b;   /* dracula green */
}

html {
	background-color: var(--color-surface);
	color: var(--color-text);
}

/* ── Reading typography custom properties ──────────────────────────── */
:root {
	--reading-font: system-ui, -apple-system, sans-serif;
	--reading-size: 1.05rem;
	--reading-line-height: 1.85;
	--reading-max-width: 72ch;
}

/* ── Chapter prose ─────────────────────────────────────────────────── */
.prose-chapter {
	max-width: var(--reading-max-width, 72ch);
	line-height: var(--reading-line-height, 1.85);
	font-family: var(--reading-font);
	font-size: var(--reading-size);
	color: var(--color-muted);
}

.prose-chapter h1,
.prose-chapter h2,
.prose-chapter h3 {
	color: var(--color-text);
	font-weight: 700;
	margin-top: 1.5em;
	margin-bottom: 0.5em;
}

.prose-chapter h1 { font-size: 1.4rem; }
.prose-chapter h2 { font-size: 1.2rem; }
.prose-chapter h3 { font-size: 1.05rem; }

.prose-chapter p {
	margin-bottom: 1.2em;
}

/* Indented paragraph style — book-like, no gap, indent instead */
.prose-chapter.para-indented p {
	text-indent: 2em;
	margin-bottom: 0.35em;
}

.prose-chapter em {
	color: var(--color-muted);
}

.prose-chapter strong {
	color: var(--color-text);
}

.prose-chapter hr {
	border-color: var(--color-border);
	margin: 2em 0;
}

/* ── Reading progress bar ───────────────────────────────────────────── */
.reading-progress {
	position: fixed;
	top: 0;
	left: 0;
	height: 2px;
	z-index: 100;
	background: var(--color-brand);
	pointer-events: none;
	transition: width 0.1s linear;
}

/* ── Paginated reader ───────────────────────────────────────────────── */
.paginated-container {
	overflow: hidden;
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
}

.paginated-container .prose-chapter {
	transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

/* ── Hide scrollbars (used on horizontal carousels) ────────────────── */
.scrollbar-none {
	scrollbar-width: none;       /* Firefox */
	-ms-overflow-style: none;    /* IE / Edge legacy */
}
.scrollbar-none::-webkit-scrollbar {
	display: none;               /* Chrome / Safari / WebKit */
}

/* ── Hero carousel fade ─────────────────────────────────────────────── */
@keyframes fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}
.animate-fade-in {
	animation: fade-in 0.4s ease-out forwards;
}

/* ── Navigation progress bar ───────────────────────────────────────── */
@keyframes progress-bar {
	0%   { width: 0%; opacity: 1; }
	80%  { width: 90%; opacity: 1; }
	100% { width: 100%; opacity: 0; }
}
.animate-progress-bar {
	animation: progress-bar 4s cubic-bezier(0.1, 0.05, 0.1, 1) forwards;
}

/* ── Respect reduced motion — disable all decorative animations ─────── */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ── Footer content-visibility — skip paint for off-screen footer ───── */
footer {
	content-visibility: auto;
	contain-intrinsic-size: auto 80px;
}
