
:root,:root:not([data-theme=dark]),:root[data-theme=light]{--bg:#05060d;--bg2:#0c0f1c;--card:rgba(20,24,44,.55);--line:rgba(140,150,255,.16);--text:#e9ecf8;--muted:#9aa3c0;--accent:#22d3ee;--accent2:#a855f7;--grad:linear-gradient(90deg,#a855f7,#22d3ee);color-scheme:dark}
body{background:radial-gradient(1200px 600px at 85% -10%,rgba(168,85,247,.18),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(34,211,238,.12),transparent 60%),var(--bg);background-attachment:fixed;min-height:100vh}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.55;background-image:radial-gradient(1px 1px at 20px 30px,#fff,transparent),radial-gradient(1px 1px at 140px 80px,#cbd5ff,transparent),radial-gradient(1.5px 1.5px at 260px 160px,#fff,transparent),radial-gradient(1px 1px at 90px 210px,#a5f3fc,transparent),radial-gradient(1px 1px at 330px 260px,#e9d5ff,transparent);background-size:360px 300px}
header.top{background:rgba(5,6,13,.72);border-bottom:1px solid var(--line)}header.top:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--grad);opacity:.6}
header.top .wrap{position:relative}.brand{font-size:1.05rem;white-space:nowrap;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
header.top nav ul{gap:2px}header.top nav a{white-space:nowrap}header.top nav a:hover{background:rgba(168,85,247,.12);color:#fff;box-shadow:0 0 14px rgba(34,211,238,.18)}
.navbtn{display:none;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;color:var(--text);width:42px;height:40px;cursor:pointer;font-size:1.2rem;line-height:1}
@media(max-width:700px){.navbtn{display:block}header.top nav{position:absolute;top:60px;left:0;right:0;display:none;background:rgba(8,10,22,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:8px 20px 14px}header.top nav.open{display:block}header.top nav ul{flex-direction:column;align-items:stretch}header.top nav a{display:block;padding:12px 10px;font-size:1rem}}
main.wrap{padding-top:28px;padding-bottom:40px}
h1,h2,h3{letter-spacing:-.01em;line-height:1.2}h1{font-size:clamp(1.65rem,5.2vw,2.6rem);margin:6px 0 12px}
.post h1{font-size:clamp(1.6rem,5vw,2.5rem);background:linear-gradient(90deg,#fff,#c7d2fe 60%,#a5f3fc);-webkit-background-clip:text;background-clip:text;color:transparent}
.post{max-width:72ch;margin:0 auto}.post .content{line-height:1.75}.post p,.post li{font-size:1.07rem}.post li{margin:6px 0}
.post h2{margin-top:44px;font-size:clamp(1.3rem,3.6vw,1.65rem);padding-left:12px;border-left:3px solid;border-image:var(--grad) 1}.post h3{margin-top:28px}
.post .content a,.lead a{color:var(--accent);text-decoration-color:rgba(34,211,238,.4)}.post .content a:hover{text-shadow:0 0 12px rgba(34,211,238,.6)}
.meta{color:var(--muted);font-size:.92rem;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}.post .meta{margin:0 0 18px}.meta a{color:var(--text)}
.post pre{background:#070915;border:1px solid var(--line);border-radius:14px;padding:16px 18px;overflow:auto;box-shadow:inset 0 0 0 1px rgba(168,85,247,.08),0 8px 30px rgba(0,0,0,.35);font-size:.9rem;line-height:1.6}
.post code{font-family:ui-monospace,SFMono-Regular,"JetBrains Mono",Menlo,monospace;font-size:.88em}.post :not(pre)>code{background:rgba(168,85,247,.14);border:1px solid rgba(168,85,247,.25);padding:1px 6px;border-radius:6px;color:#e9d5ff}
.post blockquote{border-left:3px solid var(--accent2);margin:22px 0;padding:10px 18px;color:var(--muted);background:rgba(168,85,247,.06);border-radius:0 12px 12px 0}
.post hr{border:0;height:1px;background:var(--grad);opacity:.4;margin:32px 0}
.ptags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:12px 0 0}.ptags a{font-size:.8rem;border:1px solid rgba(34,211,238,.25);background:rgba(34,211,238,.06);border-radius:999px;padding:3px 11px;text-decoration:none;color:#a5f3fc;transition:.2s}
.ptags a:hover{color:#fff;border-color:var(--accent2);box-shadow:0 0 14px rgba(168,85,247,.45)}
.crumbs ol{display:flex;flex-wrap:nowrap;gap:6px;list-style:none!important;padding:0!important;margin:0 0 14px;font-size:.84rem;color:var(--muted);overflow:hidden;white-space:nowrap}
.crumbs li{list-style:none;flex:0 0 auto}.crumbs li[aria-current]{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text);opacity:.8}.crumbs li+li:before{content:"›";margin-right:6px;opacity:.7;color:var(--accent)}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--accent)}
.catnav{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:16px 0 0}.catnav a{display:inline-block;font-size:.86rem;border:1px solid var(--line);background:rgba(255,255,255,.03);border-radius:999px;padding:6px 13px;text-decoration:none;color:var(--text);transition:.2s}.catnav a[aria-current],.catnav a:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 0 14px rgba(34,211,238,.3)}
a.cat{color:var(--accent);text-decoration:none;font-weight:600}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.card{position:relative;background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:20px;transition:transform .2s,border-color .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);border-color:rgba(168,85,247,.45);box-shadow:0 10px 40px rgba(88,28,135,.25),0 0 0 1px rgba(34,211,238,.15)}
.card h3{margin:8px 0 8px;font-size:1.12rem}.card h3 a{color:var(--text);text-decoration:none}.card h3 a:hover{color:#fff;text-shadow:0 0 14px rgba(34,211,238,.5)}.card p{color:var(--muted);margin:0}.card .meta{font-size:.82rem}
.related{margin-top:48px;border-top:1px solid var(--line);padding-top:24px}
.post img{max-width:100%;height:auto;border-radius:12px}.post table{display:block;overflow-x:auto;border-collapse:collapse}.post th,.post td{border:1px solid var(--line);padding:6px 10px}.content a{overflow-wrap:anywhere}
.lead{color:var(--muted);font-size:1.08rem}
footer{border-top:1px solid var(--line);margin-top:40px;padding:26px 0;color:var(--muted);font-size:.9rem}footer .wrap{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between}footer a{color:var(--muted)}footer a:hover{color:var(--accent)}.social{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:640px){.post p,.post li{font-size:1.02rem}.catnav a{font-size:.8rem}main.wrap{padding-top:18px}}
@media(prefers-reduced-motion:reduce){.card,.ptags a,.catnav a{transition:none}.card:hover{transform:none}}
.ltools{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}.ltools input,.ltools select{font:inherit;background:rgba(12,15,28,.8);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.ltools input:focus,.ltools select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,211,238,.18)}.ltools input{flex:1;min-width:200px}
.lcount{color:var(--muted);font-size:.9rem;margin:0 0 12px}.lmeta{display:flex;flex-wrap:wrap;gap:10px;font-size:.82rem;color:var(--muted);margin-top:8px}
