/* ===== Apurv Duhan — Blog (theme parity with apurvduhan-8.com) ===== */
:root,[data-theme="dark"]{
  --bg:#0a0a0a;--bg2:#0f0f0f;--surface:#121212;--surface2:#161616;--line:#222222;
  --ink:#f4f4f0;--muted:#858585;--dim:#5c5c5c;
  --lime:#d5ff45;--lime-soft:rgba(213,255,69,.12);--blue:#0099ff;
  --navbg:rgba(10,10,10,.72);--shadow:0 30px 80px rgba(0,0,0,.6);--tile:#fff;
}
[data-theme="light"]{
  --bg:#f5f5f0;--bg2:#efefe9;--surface:#fff;--surface2:#f7f7f2;--line:#e2e2da;
  --ink:#0d0d0b;--muted:#6b6b64;--dim:#9a9a92;
  --lime:#a8d100;--lime-soft:rgba(140,170,0,.12);--blue:#0077cc;
  --navbg:rgba(245,245,240,.8);--shadow:0 30px 80px rgba(40,40,30,.12);--tile:#fff;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
::selection{background:var(--lime);color:#0a0a0a}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.7;
  transition:background .4s,color .4s;-webkit-font-smoothing:antialiased}
h1,h2,h3,.display{font-family:'Host Grotesk','DM Sans',sans-serif;letter-spacing:-.5px}
a{color:inherit}
.wrap{max-width:760px;margin:0 auto;padding:0 28px}
.wrap-wide{max-width:1120px;margin:0 auto;padding:0 28px}

/* nav */
nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:140;background:var(--navbg);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:32px;
  padding:7px 10px;display:flex;align-items:center;gap:2px}
nav a{font-size:.82rem;font-weight:500;color:var(--muted);padding:8px 15px;border-radius:22px;transition:.2s;text-decoration:none}
nav a:hover{color:var(--ink);background:var(--surface2)}
nav a.cta{background:var(--lime);color:#0a0a0a;font-weight:700}
.theme-switch{position:fixed;top:20px;right:24px;z-index:150;width:72px;height:36px;border-radius:30px;cursor:pointer;
  background:var(--navbg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);padding:0;overflow:hidden}
.theme-switch .ts-ic{position:absolute;top:50%;transform:translateY(-50%);font-size:.85rem;color:var(--muted)}
.theme-switch .ts-sun{left:11px}.theme-switch .ts-moon{right:11px}
.theme-switch .ts-knob{position:absolute;top:4px;left:4px;width:28px;height:28px;border-radius:50%;background:var(--lime);transition:transform .32s cubic-bezier(.16,.8,.3,1)}
[data-theme="light"] .theme-switch .ts-knob{transform:translateX(36px)}
@media(max-width:560px){.theme-switch{top:14px;right:14px}}

/* blog index hero */
.blog-hero{padding:150px 0 50px}
.blog-hero .eyebrow{font-size:.72rem;letter-spacing:3px;text-transform:uppercase;color:var(--lime);font-weight:700}
.blog-hero h1{font-size:clamp(2.4rem,6vw,4rem);font-weight:700;line-height:1.02;margin:18px 0 14px}
.blog-hero p{color:var(--muted);font-size:1.1rem;max-width:560px}

/* post list */
.posts{padding:30px 0 120px;display:flex;flex-direction:column;gap:18px}
.postcard{display:block;text-decoration:none;background:var(--surface);border:1px solid var(--line);border-radius:22px;
  padding:32px 30px;transition:transform .3s,border-color .3s}
.postcard:hover{transform:translateY(-5px);border-color:var(--lime)}
.postcard .meta{font-size:.78rem;color:var(--dim);letter-spacing:.5px;text-transform:uppercase;font-weight:600}
.postcard h2{font-size:1.7rem;font-weight:700;margin:12px 0 10px;color:var(--ink)}
.postcard p{color:var(--muted);font-size:1rem}
.postcard .tags{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.tag{font-size:.72rem;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:30px;padding:5px 12px}
.postcard .read{margin-top:18px;color:var(--lime);font-weight:700;font-size:.9rem}

/* article */
.article-head{padding:140px 0 30px}
.article-head .eyebrow{font-size:.72rem;letter-spacing:3px;text-transform:uppercase;color:var(--lime);font-weight:700}
.article-head h1{font-size:clamp(2.2rem,5.5vw,3.4rem);font-weight:700;line-height:1.06;margin:18px 0 20px}
.article-head .byline{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;color:var(--dim);font-size:.9rem}
.article-head .byline b{color:var(--ink);font-weight:600}
.article-cover{max-width:1120px;margin:30px auto 0;padding:0 28px}
.article-cover .band{height:5px;border-radius:5px;background:linear-gradient(90deg,var(--lime),var(--blue))}
article{padding:36px 0 60px;font-size:1.08rem}
article h2{font-size:1.7rem;font-weight:700;margin:48px 0 16px}
article h3{font-size:1.25rem;font-weight:700;margin:34px 0 12px}
article p{margin:0 0 20px;color:var(--ink)}
article p,article li{color:var(--ink)}
article a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
article strong{font-weight:700}
article em{color:var(--muted)}
article ul,article ol{margin:0 0 22px;padding-left:24px}
article li{margin-bottom:10px}
article hr{border:none;border-top:1px solid var(--line);margin:44px 0}
.lede{font-size:1.3rem;line-height:1.5;color:var(--ink);font-weight:500;margin-bottom:30px}
.pull{border-left:3px solid var(--lime);padding:6px 0 6px 22px;margin:30px 0;font-family:'Host Grotesk';
  font-size:1.5rem;font-weight:600;line-height:1.3;letter-spacing:-.5px}
.callout{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px 26px;margin:30px 0}
.callout .clabel{font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--lime);font-weight:700;margin-bottom:10px}
.callout p:last-child{margin-bottom:0}
.article-tag{display:inline-block;font-size:.72rem;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:30px;padding:5px 12px;margin:0 6px 8px 0}

/* demo video */
.demo{margin:30px 0 10px;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#000;box-shadow:0 24px 70px rgba(0,0,0,.4)}
.demo video{display:block;width:100%;height:auto}
.demo-cap{color:var(--dim);font-size:.85rem;text-align:center;margin:14px 0 0}

/* compact artifacts line */
.artifacts{margin:30px 0;padding:16px 20px;border:1px solid var(--line);border-radius:14px;background:var(--surface);
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:.92rem}
.artifacts .alabel{font-weight:700;font-family:'Host Grotesk';color:var(--ink);margin-right:2px}
.artifacts a{color:var(--blue);text-decoration:none;font-weight:600;border-bottom:1px solid transparent;transition:.2s}
.artifacts a:hover{border-bottom-color:var(--blue)}
.artifacts .sep{color:var(--dim)}

/* doc cards (RAID artifacts) */
.docgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:28px 0 36px}
.doc{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;transition:.3s}
.doc:hover{border-color:var(--lime);transform:translateY(-4px)}
.doc .dt{font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--dim);font-weight:700}
.doc h4{font-family:'Host Grotesk';font-size:1.15rem;font-weight:700;margin:8px 0 6px}
.doc p{font-size:.9rem;color:var(--muted);margin:0 0 16px}
.doc .dacts{display:flex;gap:8px}
.dbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;font-weight:700;
  border:1px solid var(--line);border-radius:9px;cursor:pointer;background:transparent;color:var(--ink);text-decoration:none;transition:.2s}
.dbtn.v{flex:1;padding:9px 12px}.dbtn.v:hover{background:var(--ink);color:var(--bg)}
.dbtn.d{flex:0 0 40px;height:36px;color:var(--muted)}.dbtn.d:hover{background:var(--ink);color:var(--bg)}

/* share / cross-post bar */
.share{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:40px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.share span{font-weight:700;font-family:'Host Grotesk';margin-right:6px}
.share a{font-size:.85rem;font-weight:600;color:var(--ink);border:1px solid var(--line);border-radius:30px;padding:8px 16px;text-decoration:none;transition:.2s}
.share a:hover{background:var(--lime);color:#0a0a0a;border-color:var(--lime)}

.author{display:flex;gap:16px;align-items:center;margin:40px 0;padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:20px}
.author .av{width:58px;height:58px;border-radius:50%;background:var(--lime);color:#0a0a0a;display:flex;align-items:center;justify-content:center;font-family:'Host Grotesk';font-weight:800;font-size:1.2rem;flex-shrink:0}
.author b{font-family:'Host Grotesk'}
.author p{margin:4px 0 0;color:var(--muted);font-size:.92rem}

footer{border-top:1px solid var(--line);padding:50px 0;text-align:center;color:var(--dim);font-size:.82rem}
footer a{color:var(--muted);text-decoration:none}footer a:hover{color:var(--lime)}

/* PDF lightbox (photo-style) */
.lb{position:fixed;inset:0;z-index:400;display:none}
.lb.open{display:block}
.lb-back{position:absolute;inset:0;background:rgba(5,5,5,.9);backdrop-filter:blur(10px)}
.lb-top{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:16px 22px;background:linear-gradient(180deg,rgba(0,0,0,.55),transparent)}
.lb-title{font-family:'Host Grotesk';font-weight:700;font-size:.95rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.lb-acts{display:flex;gap:10px}
.lb-ic{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s;text-decoration:none}
.lb-ic:hover{background:var(--lime);color:#0a0a0a;border-color:var(--lime)}
.lb-scroll{position:absolute;inset:0;overflow:auto;z-index:2;padding:74px 24px 44px;cursor:zoom-in;scrollbar-width:none}
.lb-scroll::-webkit-scrollbar{display:none}
.lb-scroll.zoomed{cursor:grab}.lb-scroll.zoomed.panning{cursor:grabbing}
.lb-stage{margin:0 auto;display:flex;flex-direction:column;gap:18px;transition:width .35s cubic-bezier(.16,.8,.3,1)}
.lb-stage canvas{width:100%;height:auto;display:block;border-radius:6px;box-shadow:0 24px 70px rgba(0,0,0,.6);background:#fff}
.lb-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);z-index:3;color:rgba(255,255,255,.55);font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;pointer-events:none;transition:opacity .4s}
.lb.zoom-on .lb-hint{opacity:0}
