/*
	Accessible theme tokens (2025)
	- Avoid pure #000 / #fff to reduce glare
	- Maintain >= 4.5:1 contrast for body text against backgrounds
*/
:root {
	--c-bg:#12161b;            /* base dark background (was #0f1218) */
	--c-bg-alt:#1b2027;        /* subtle elevated panel */
	--c-surface:#222830;       /* cards/surfaces */
	--c-border:#2e3540;        /* border delineation */
	--c-text:#c5ced6;          /* body text (contrast ~6.2:1 vs bg) */
	--c-text-high:#eef2f6;     /* high-emphasis */
	--c-text-dim:#8d98a3;      /* secondary */
	--c-text-invert:#1a1f25;   /* inverse (for chips on light gradients) */
	--c-accent:#18518f;        /* adjusted for better dark contrast */
	--c-accent-alt:#0d61c2;    /* highlight / interactive */
	--c-accent-soft:linear-gradient(90deg,#18518f,#0d61c2);
	--c-focus-ring:0 0 0 3px rgba(13,97,194,.38);
	--c-code-bg:#1b2430;
	--c-radius:14px;
	--c-radius-sm:6px;
	--c-trans:120ms cubic-bezier(.4,0,.2,1);
	font-family:'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
	color-scheme: dark;
}
/* Light scheme (avoid pure white, use soft neutrals) */
:root[data-theme='light'] {
	--c-bg:#f6f8fa;            /* base (GitHub-like) */
	--c-bg-alt:#eef2f5;        /* subtle section */
	--c-surface:#fdfdfd;       /* cards (off-white) */
	--c-border:#d1dae2;
	--c-text:#424b55;
	--c-text-high:#1d252c;
	--c-text-dim:#6a7681;
	--c-text-invert:#f6f8fa;
	--c-accent:#154d87;
	--c-accent-alt:#0d61c2;
	--c-accent-soft:linear-gradient(90deg,#0d61c2,#154d87);
	--c-code-bg:#1f2730;       /* keep dark code blocks for readability */
	color-scheme: light;
}
html,body { background:var(--c-bg); color:var(--c-text); margin:0; padding:0; font-size:16px; -webkit-font-smoothing:antialiased; }
.no-js body { visibility:visible; }
.container { width:min(1120px,100% - 2.5rem); margin-inline:auto; }
.site-header { position:sticky; top:0; backdrop-filter:saturate(180%) blur(14px); background:linear-gradient(120deg,rgba(15,18,24,.85),rgba(15,18,24,.55)); border-bottom:1px solid var(--c-border); z-index:50; }
:root[data-theme='light'] .site-header { background:linear-gradient(120deg,rgba(255,255,255,.85),rgba(255,255,255,.55)); }
.nav { display:flex; align-items:center; gap:2rem; min-height:64px; }
.brand { font-size:1.15rem; font-weight:600; letter-spacing:.5px; color:var(--c-text-high); text-decoration:none; display:inline-flex; align-items:center; gap:.35rem; }
.brand span { background:linear-gradient(90deg,var(--c-accent),var(--c-accent-alt)); -webkit-background-clip:text; background-clip:text; color:transparent; font-weight:700; }
.nav-links { list-style:none; display:flex; gap:1.25rem; margin:0; padding:0; }
.nav-links a { position:relative; display:inline-block; padding:.35rem .15rem; font-weight:500; text-decoration:none; color:var(--c-text); }
.nav-links a::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:2px; background:linear-gradient(90deg,var(--c-accent),var(--c-accent-alt)); transform:scaleX(0); transform-origin:left; transition:transform var(--c-trans); border-radius:2px; }
.nav-links a:hover::after, .nav-links a:focus-visible::after { transform:scaleX(1); }
.theme-toggle { margin-left:auto; background:var(--c-surface); border:1px solid var(--c-border); color:var(--c-text-high); cursor:pointer; font:inherit; padding:.55rem .85rem; border-radius:var(--c-radius-sm); display:inline-flex; align-items:center; gap:.4rem; transition:background var(--c-trans), color var(--c-trans), border-color var(--c-trans); }
.theme-toggle:hover { background:var(--c-bg-alt); }
.site-main { padding-block:2.4rem 3rem; }
.site-footer { border-top:1px solid var(--c-border); padding:2.25rem 0 3rem; background:linear-gradient(180deg,rgba(4,101,201,.08),transparent); }
.footer-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.25rem; }
.foot-social a { color:var(--c-text); text-decoration:none; margin-left:1rem; font-size:.9rem; opacity:.75; transition:opacity var(--c-trans); }
.foot-social a:hover { opacity:1; }
.card-grid { --col:minmax(260px,1fr); display:grid; gap:1.75rem; grid-template-columns:repeat(auto-fit,var(--col)); }
.post-card { position:relative; background:linear-gradient(145deg,var(--c-surface),var(--c-bg-alt)); border:1px solid var(--c-border); padding:1.15rem 1.15rem 1.35rem; border-radius:var(--c-radius); display:flex; flex-direction:column; gap:.85rem; text-decoration:none; color:var(--c-text); box-shadow:0 2px 4px -1px rgba(0,0,0,.28),0 4px 14px -6px rgba(0,0,0,.38); transition:transform var(--c-trans), box-shadow var(--c-trans), border-color var(--c-trans), background var(--c-trans); }
.post-card:hover { transform:translateY(-4px); border-color:var(--c-accent-alt); box-shadow:0 6px 18px -4px rgba(13,97,194,.45); background:linear-gradient(145deg,var(--c-surface),var(--c-surface)); }
:root[data-theme='light'] .post-card { background:linear-gradient(145deg,var(--c-surface),var(--c-bg-alt)); box-shadow:0 2px 4px -1px rgba(0,0,0,.06),0 4px 14px -6px rgba(0,0,0,.08); }
:root[data-theme='light'] .post-card:hover { box-shadow:0 6px 20px -4px rgba(13,97,194,.25); }
.post-card h3 { margin:0; font-size:1.05rem; letter-spacing:.2px; color:var(--c-text-high); line-height:1.3; }
.post-card p { margin:0; font-size:.85rem; line-height:1.45; color:var(--c-text); }
.post-meta { display:flex; gap:.85rem; align-items:center; font-size:.68rem; letter-spacing:.5px; text-transform:uppercase; font-weight:600; color:var(--c-text-dim); }
.tag { background:var(--c-bg-alt); border:1px solid var(--c-border); padding:.18rem .55rem; border-radius:2rem; font-size:.62rem; letter-spacing:.4px; color:var(--c-text-dim); }
.hero { text-align:center; margin-bottom:2.5rem; }
.hero h1 { font-size:clamp(2.25rem,1.85rem + 1.4vw,3.05rem); margin:.15em 0 .6em; line-height:1.05; letter-spacing:-1px; background:var(--c-accent-soft); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero p { font-size:1.05rem; max-width:680px; margin-inline:auto; line-height:1.55; }
.readmore { font-weight:600; font-size:.72rem; letter-spacing:.55px; text-transform:uppercase; color:var(--c-accent-alt); text-decoration:none; }
@media (max-width:760px){ .nav-links { display:none; } .theme-toggle { margin-left:auto; } .site-main { padding-block:2rem 2.5rem; } .hero h1 { font-size:clamp(2rem,1.65rem + 2vw,2.6rem); } }

/* Focus styles */
a:focus-visible, button:focus-visible { outline:none; box-shadow:var(--c-focus-ring); }

/* Link color adjustments to ensure contrast on both schemes */
a { color:var(--c-accent-alt); }
a:hover { color:var(--c-accent); }

/* Code blocks unify */
pre, code { background:var(--c-code-bg); }
:root[data-theme='light'] code:not(pre code) { background:#eef2f6; color:#154d87; }

