
:root{
  --bg:#0a0f1a;
  --bg2:#101827;
  --panel:#111b2d;
  --panel2:#16233a;
  --card:#12203a;
  --border:#243654;
  --soft:#8da2c0;
  --text:#edf4ff;
  --primary:#4da3ff;
  --primary2:#7fc0ff;
  --accent:#6ee7ff;
  --gold:#f6c453;
  --success:#3ddc97;
  --shadow:0 16px 40px rgba(0,0,0,.35);
  --radius:18px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,sans-serif;
  background:
    radial-gradient(circle at top left, rgba(77,163,255,.12), transparent 35%),
    radial-gradient(circle at 80% 10%, rgba(110,231,255,.08), transparent 28%),
    linear-gradient(180deg, #08101d 0%, #0b1322 100%);
  color:var(--text);
  line-height:1.6;
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{width:min(var(--max), calc(100% - 32px)); margin:auto}
.site-header{
  position:sticky; top:0; z-index:1000;
  backdrop-filter:blur(14px);
  background:rgba(8,16,29,.82);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.nav{
  min-height:72px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{display:flex; align-items:center; gap:12px; font-weight:800}
.brand-logo{
  width:38px; height:38px; border-radius:12px;
  display:grid; place-items:center;
  background:linear-gradient(135deg, #198fff, #68d5ff);
  color:#fff; font-weight:800;
  box-shadow:0 10px 24px rgba(25,143,255,.3);
}
.brand-text{font-family:Rajdhani,sans-serif; font-size:1.35rem; letter-spacing:.02em}
.brand-text span{color:var(--primary2)}
.nav-links{display:flex; align-items:center; gap:18px; flex-wrap:wrap}
.nav-links a{color:#cfe0fb; font-size:.95rem}
.nav-links a:hover{color:#fff}
.nav-cta{
  padding:11px 18px; border-radius:999px;
  background:linear-gradient(135deg, var(--primary), #3a86ff);
  color:#fff; font-weight:700;
  box-shadow:0 12px 26px rgba(77,163,255,.25);
}
.hero,.page-hero{padding:82px 0 48px}
.hero-grid{
  display:grid; grid-template-columns:1.15fr .85fr;
  gap:34px; align-items:center;
}
.eyebrow,.kicker{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 12px;
  border:1px solid rgba(110,231,255,.25);
  background:rgba(110,231,255,.08);
  color:var(--accent);
  border-radius:999px;
  font-size:.78rem; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase;
}
.hero h1,.page-hero h1,.lesson-content h1{
  margin:18px 0 14px;
  font-size:clamp(2.3rem, 5vw, 4.2rem);
  line-height:1.03;
  letter-spacing:-.03em;
}
.hero p,.page-hero p,.lesson-intro{
  margin:0 0 22px;
  color:var(--soft);
  font-size:1.04rem;
}
.hero-panel,.hero-card,.book-panel,.card,.lesson-card,.lesson-sidebar,.callout,.code-panel{
  background:linear-gradient(180deg, rgba(17,27,45,.9), rgba(13,21,35,.95));
  border:1px solid rgba(255,255,255,.07);
  border-radius:22px;
  box-shadow:var(--shadow);
}
.hero-panel,.book-panel,.card,.lesson-card,.lesson-sidebar{padding:24px}
.hero-actions,.actions,.lesson-nav{display:flex; flex-wrap:wrap; gap:14px}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 22px; border-radius:14px; font-weight:700; transition:.2s ease;
}
.btn-primary{
  background:linear-gradient(135deg, var(--primary), #3a86ff);
  color:#fff; box-shadow:0 14px 28px rgba(77,163,255,.22);
}
.btn-primary:hover{transform:translateY(-2px)}
.btn-secondary{
  border:1px solid var(--border);
  background:rgba(255,255,255,.03);
  color:#fff;
}
.btn-secondary:hover{background:rgba(255,255,255,.06); border-color:#3d5b86}
.hero-points,.meta-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:18px}
.pill,.meta-pill{
  padding:8px 12px; border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
  color:#d8e6fb; font-size:.87rem;
}
.hero-card-top{
  padding:14px 18px;
  border-bottom:1px solid rgba(255,255,255,.06);
  display:flex; align-items:center; gap:8px;
  color:#b8c9e8; font-size:.88rem;
}
.dot{width:10px;height:10px;border-radius:50%}
.dot.red{background:#ff5f57}.dot.yellow{background:#ffbd2e}.dot.green{background:#28ca42}
.hero-card-body{padding:22px}
.code-line{font-family:"JetBrains Mono",monospace;color:#cfe0fb;font-size:.9rem;margin:0 0 10px}
.section{padding:32px 0 12px}
.section-head{margin-bottom:22px}
.section-title,.section-head h2{margin:0 0 10px; font-size:clamp(1.8rem, 3vw, 2.7rem); line-height:1.1; letter-spacing:-.02em}
.section-head p{margin:0; max-width:760px; color:var(--soft)}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.card h3,.lesson-card h3{margin:0 0 8px; font-size:1.2rem}
.card p,.lesson-card p{margin:0; color:var(--soft)}
.lesson-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:22px}
.lesson-no{display:inline-block; margin-bottom:10px; color:#bfe4ff; font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase}
.lesson-layout{display:grid; grid-template-columns:280px minmax(0,1fr); gap:28px; padding:40px 0 50px}
.lesson-sidebar{position:sticky; top:92px; align-self:start}
.lesson-sidebar h3{margin-top:0}
.lesson-sidebar ol{margin:0; padding-left:18px}
.lesson-sidebar li{margin:8px 0}
.lesson-content{min-width:0}
.breadcrumbs{color:var(--soft); font-size:.92rem; margin-bottom:12px}
.lesson-content h2{margin-top:28px; font-size:1.5rem}
.lesson-content ul,.lesson-content ol{padding-left:20px}
.callout{padding:18px 20px; margin:20px 0; background:linear-gradient(135deg, rgba(77,163,255,.12), rgba(110,231,255,.08)), rgba(255,255,255,.03); border:1px solid rgba(110,231,255,.15)}
.callout p{margin:8px 0 0; color:#d9e7fb}
.code-panel{margin-top:22px; overflow:hidden}
.code-header{padding:12px 16px; border-bottom:1px solid rgba(255,255,255,.06); color:#dce7ff; font-weight:700; background:rgba(0,0,0,.16)}
pre{margin:0; padding:18px; overflow-x:auto; background:#0b1220; color:#dff2ff; font-size:.95rem}
code{font-family:"JetBrains Mono",Consolas,monospace}
footer.footer,footer{
  margin-top:56px;
  border-top:1px solid rgba(255,255,255,.08);
  background:rgba(5,10,18,.7);
}
.footer-grid{padding:34px 0; display:grid; grid-template-columns:2fr 1fr 1fr; gap:24px}
footer p,footer a{color:var(--soft); font-size:.94rem}
@media (max-width: 1024px){
  .hero-grid,.lesson-layout,.footer-grid,.grid-3,.lesson-grid{grid-template-columns:1fr}
}
@media (max-width: 768px){
  .nav{padding:14px 0}
  .nav-links{display:none}
  .hero{padding:62px 0 40px}
  .lesson-sidebar{position:static}
  .hero h1,.page-hero h1,.lesson-content h1{font-size:2.6rem}
}
