:root{--bg:#0E1116;--surface:#121622;--surface-2:#151A28;--ink:#272E3F;--txt:#E8ECF4;--soft:#BDC7D6;--mute:#9AA5B7;--accent:#82C8FF;--radius:14px;--radius-sm:10px;--shadow:0 8px 24px rgba(0,0,0,.35)}html,body{background:var(--bg);color:var(--txt);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial}.container-narrow{max-width:900px}.navbar-wrap{backdrop-filter:saturate(120%)blur(10px);background:rgba(18,22,34,.6);border-bottom:1px solid var(--ink)}.navbar .nav-link{color:var(--mute)}.navbar .nav-link:hover{color:var(--txt)}.navbar-toggler{filter:invert(1)grayscale(1)}.card-min{background:linear-gradient(180deg,var(--surface),var(--surface-2));border:1px solid var(--ink);border-radius:var(--radius);box-shadow:0 2px 10px rgba(0,0,0,.25);transition:transform .12s ease,border-color .2s ease,box-shadow .2s ease}.card-min:hover{transform:translateY(-2px);border-color:#334058;box-shadow:var(--shadow)}.card-body{padding:20px}h1,h2,h3,h4{color:var(--txt)}.link-quiet{color:var(--txt);text-decoration:none}.link-quiet:hover{opacity:.9;text-decoration:underline}.meta{letter-spacing:.2px}.excerpt{color:var(--soft);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.readmore{display:inline-block;margin-top:.5rem;color:var(--accent);text-decoration:none}.readmore:hover{text-decoration:underline}.post-wrap{max-width:820px}.post-title{font-size:clamp(1.9rem,2.4vw,2.4rem);font-weight:700}.prose{line-height:1.78;color:var(--txt)}.prose p{margin:1rem 0}.prose a{color:var(--accent);text-decoration:none}.prose a:hover{text-decoration:underline}.prose img,.prose video{border-radius:var(--radius-sm);max-width:100%;height:auto}.prose pre{background:#0b0f18;color:var(--txt);border:1px solid #1c2435;border-radius:var(--radius-sm);padding:14px;overflow:auto}.prose code{background:#0b0f18;color:#e8ecf4;padding:.15rem .35rem;border-radius:.4rem}.pagination{--bs-pagination-bg:var(--surface);--bs-pagination-border-color:var(--ink)}.page-item .page-link{color:var(--soft)}.page-item .page-link:hover{color:var(--txt)}.page-item.active .page-link{background:var(--accent);border-color:transparent;color:#071018}.hero .lead{color:var(--soft)}.badge.tag{font-weight:500;font-size:.8rem;border-radius:999px;padding:.35rem .65rem;background:rgba(130,200,255,.12);color:#9dd3ff;border:1px solid rgba(130,200,255,.25);letter-spacing:.2px;transition:background .2s ease,color .2s ease,transform .12s ease}.badge.tag:hover{background:rgba(130,200,255,.22);color:#dff2ff;transform:translateY(-1px)}