
:root{--bg:#05070d;--bg2:#0a0f1a;--panel:rgba(12,18,32,.72);--panel2:rgba(18,26,44,.85);--line:rgba(120,160,255,.14);--line2:rgba(0,229,255,.35);
--txt:#d7e2f2;--dim:#7d8aa5;--acc:#00e5ff;--acc2:#ff2bd6;--ok:#39ff88;--warn:#ffb000;--r:14px;--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
--sans:Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--top:60px;--side:300px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:radial-gradient(1200px 600px at 80% -10%,rgba(255,43,214,.10),transparent 60%),radial-gradient(900px 600px at -10% 20%,rgba(0,229,255,.10),transparent 60%),var(--bg);color:var(--txt);font:15px/1.65 var(--sans);min-height:100vh;-webkit-font-smoothing:antialiased}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
::selection{background:rgba(0,229,255,.3)}
#bg{position:fixed;inset:0;width:100%;height:100%;z-index:-2;opacity:.35;pointer-events:none}
body:not(.page-home):not(.page-error) #bg{opacity:.12}
.grid-overlay{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(0,229,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,229,255,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 80%)}
.grid-overlay::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.015) 0 1px,transparent 1px 3px)}
/* top bar */
.top{position:sticky;top:0;z-index:40;height:var(--top);display:flex;align-items:center;gap:16px;padding:0 18px;background:rgba(5,7,13,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.top::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--acc),var(--acc2),transparent);opacity:.6}
.brand{display:flex;align-items:center;gap:10px;font:800 18px/1 var(--mono);letter-spacing:.08em;color:#fff;white-space:nowrap}
.brand:hover{text-decoration:none}.brand-mark{color:var(--acc);font-size:22px;text-shadow:0 0 12px var(--acc)}
.us{color:var(--acc2)}
.burger{display:none;background:none;border:0;width:36px;height:36px;padding:8px;cursor:pointer}
.burger span{display:block;height:2px;margin:4px 0;background:var(--txt);transition:.2s}
.search-btn{flex:1;max-width:460px;margin-left:auto;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--dim);font:14px var(--sans);cursor:pointer;transition:.2s}
.search-btn:hover{border-color:var(--line2);color:var(--txt);box-shadow:0 0 0 3px rgba(0,229,255,.08)}
.search-btn .s-txt{flex:1;text-align:left}
kbd{font:11px var(--mono);padding:2px 6px;border-radius:6px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--dim)}
.top-links{display:flex;gap:4px}.top-links a{display:flex;align-items:center;gap:6px;color:var(--dim);font:600 13px var(--mono);padding:8px 10px;border-radius:8px}
.top-links a:hover{color:#fff;background:rgba(255,255,255,.05);text-decoration:none}
/* shell */
.shell{display:flex;min-height:calc(100vh - var(--top))}
.side{position:sticky;top:var(--top);height:calc(100vh - var(--top));width:var(--side);flex:none;overflow:auto;border-right:1px solid var(--line);background:rgba(6,9,16,.6);backdrop-filter:blur(8px);display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:#1d2a44 transparent}
.side-head{padding:12px;position:sticky;top:0;background:#060910;z-index:2}
.side-head input,.dir-filter{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--txt);font:13px var(--sans);outline:none}
.side-head input:focus,.dir-filter:focus{border-color:var(--line2)}
.tree{padding:0 8px 16px;font-size:13.5px;flex:1}
.t-dir summary{list-style:none;display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:7px;cursor:pointer;color:#eaf1ff;user-select:none}
.t-dir summary::-webkit-details-marker{display:none}
.t-dir summary:hover{background:rgba(255,255,255,.04)}
.t-dir summary a{color:inherit;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-dir summary a.active{color:var(--c)}
.chev{width:0;height:0;border-left:5px solid var(--dim);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s;flex:none}
.t-dir[open]>summary .chev{transform:rotate(90deg);border-left-color:var(--c)}
.t-count{font:11px var(--mono);color:var(--dim);background:rgba(255,255,255,.04);border-radius:20px;padding:0 7px}
.t-kids{margin-left:11px;padding-left:8px;border-left:1px solid rgba(255,255,255,.06)}
.t-dir[open]>.t-kids{border-left-color:color-mix(in srgb,var(--c) 35%,transparent)}
.t-file{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:7px;color:var(--dim)}
.t-file:hover{background:rgba(255,255,255,.04);color:#fff;text-decoration:none}
.t-file.active{background:linear-gradient(90deg,rgba(0,229,255,.16),transparent);color:#fff;box-shadow:inset 2px 0 0 var(--acc)}
.t-ico{font-size:13px;width:18px;text-align:center;flex:none}.t-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-foot{padding:10px 14px;border-top:1px solid var(--line);font:12px var(--mono);color:var(--dim)}
.main{flex:1;min-width:0;padding:28px clamp(16px,4vw,56px) 0;max-width:1400px}
.foot{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;margin-top:64px;padding:22px 0 30px;border-top:1px solid var(--line);color:var(--dim);font:12px var(--mono)}
.scrim{display:none}
/* glitch */
.glitch{position:relative;display:inline-block}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden;opacity:.8;pointer-events:none}
.glitch::before{color:var(--acc2);animation:gl1 3.2s infinite linear alternate-reverse;transform:translate(-2px,0)}
.glitch::after{color:var(--acc);animation:gl2 2.6s infinite linear alternate-reverse;transform:translate(2px,0)}
@keyframes gl1{0%,86%{clip-path:inset(100% 0 0 0)}88%{clip-path:inset(20% 0 55% 0)}92%{clip-path:inset(60% 0 10% 0)}96%{clip-path:inset(40% 0 40% 0)}100%{clip-path:inset(100% 0 0 0)}}
@keyframes gl2{0%,84%{clip-path:inset(100% 0 0 0)}87%{clip-path:inset(70% 0 5% 0)}91%{clip-path:inset(10% 0 75% 0)}95%{clip-path:inset(45% 0 30% 0)}100%{clip-path:inset(100% 0 0 0)}}
.brand .glitch::before,.brand .glitch::after{display:none}
.brand:hover .glitch::before,.brand:hover .glitch::after{display:block}
/* hero */
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding:30px 0 50px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font:600 12px var(--mono);letter-spacing:.14em;color:var(--ok);padding:6px 12px;border:1px solid rgba(57,255,136,.25);border-radius:30px;background:rgba(57,255,136,.06)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok);animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.3}}
.hero-title{font:800 clamp(42px,7vw,92px)/1 var(--mono);letter-spacing:.02em;margin:22px 0 14px;color:#fff;text-shadow:0 0 30px rgba(0,229,255,.25)}
.hero-sub{font-size:clamp(17px,2vw,21px);color:#aab6cc;margin:0 0 28px;max-width:560px}
.typed{color:var(--acc);font-family:var(--mono);border-right:2px solid var(--acc);padding-right:3px;white-space:nowrap}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:10px;border:1px solid var(--line2);background:rgba(0,229,255,.06);color:#eafcff;font:600 14px var(--sans);cursor:pointer;transition:.2s}
.btn:hover{text-decoration:none;background:rgba(0,229,255,.14);box-shadow:0 0 24px rgba(0,229,255,.2)}
.btn.primary{background:linear-gradient(135deg,var(--acc),#3b8bff 60%,var(--acc2));border:0;color:#04121a}
.btn.primary:hover{filter:brightness(1.1);box-shadow:0 0 30px rgba(0,229,255,.4)}
.stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.stat{min-width:110px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.stat b{display:block;font:800 24px var(--mono);color:#fff}.stat span{font:12px var(--mono);color:var(--dim);text-transform:uppercase;letter-spacing:.1em}
.hero-r{position:relative}
.vault-dial{position:absolute;right:-40px;top:-70px;width:340px;height:340px;opacity:.55;pointer-events:none}
.vault-dial i{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(0,229,255,.35)}
.vault-dial .r1{animation:spin 40s linear infinite}
.vault-dial .r2{inset:40px;border:2px solid transparent;border-top-color:var(--acc2);border-bottom-color:var(--acc);animation:spin 12s linear infinite reverse}
.vault-dial .r3{inset:90px;border:1px dotted rgba(255,43,214,.5);animation:spin 20s linear infinite}
.vault-dial .core{position:absolute;inset:0;display:grid;place-items:center;font-size:44px;color:var(--acc);text-shadow:0 0 25px var(--acc)}
@keyframes spin{to{transform:rotate(360deg)}}
.term{position:relative;border:1px solid var(--line);border-radius:var(--r);background:rgba(4,8,14,.88);box-shadow:0 30px 80px rgba(0,0,0,.5),0 0 0 1px rgba(0,229,255,.05);overflow:hidden;font:13px/1.8 var(--mono)}
.term-bar{display:flex;align-items:center;gap:6px;padding:9px 12px;background:rgba(255,255,255,.03);border-bottom:1px solid var(--line);color:var(--dim);font-size:12px}
.term-bar i{width:11px;height:11px;border-radius:50%;background:#ff5f57}.term-bar i:nth-child(2){background:#febc2e}.term-bar i:nth-child(3){background:#28c840}.term-bar span{margin-left:8px}
.term-body{padding:14px 16px}.term .ln{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;animation:ln .3s forwards}
.term .ln:nth-child(n){animation-delay:calc(var(--d,0) * 1s)}
@keyframes ln{to{opacity:1}}
.pr{color:var(--ok)}.perm{color:#56607a}.cnt{color:var(--dim)}.sha{color:var(--warn)}.dim{color:var(--dim)}
.cursor{animation:pulse 1s steps(1) infinite;color:var(--acc)}
/* sections */
.h-sec{font:700 14px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#9fb0cc;margin:10px 0 18px}.h-sec span{color:var(--acc2)}
.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-bottom:28px}
.card{position:relative;display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);color:var(--txt);overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s;isolation:isolate}
.card::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(400px 160px at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--c,#00e5ff) 18%,transparent),transparent 70%);opacity:0;transition:opacity .25s}
.card:hover{text-decoration:none;transform:translateY(-3px);border-color:color-mix(in srgb,var(--c,#00e5ff) 55%,transparent);box-shadow:0 14px 40px rgba(0,0,0,.35),0 0 0 1px color-mix(in srgb,var(--c,#00e5ff) 25%,transparent)}
.card:hover::before{opacity:1}
.card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c,#00e5ff);opacity:.7}
.card-ico{font-size:24px}.card-ico.big{font-size:34px}.card-ico.sm{font-size:16px}
.card-top{display:flex;align-items:center;gap:8px}
.card-title{font-weight:700;color:#fff;font-size:16px;line-height:1.3}
.card-desc{color:#9aa7bf;font-size:13.5px;line-height:1.5;flex:1}
.card-meta{margin-top:auto;font:12px var(--mono);color:var(--dim);display:flex;align-items:center;gap:6px}.card-meta b{color:var(--c)}
.arrow{margin-left:auto;color:var(--c);transition:transform .2s}.card:hover .arrow{transform:translateX(4px)}
.sections{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.sec-card{padding:24px;min-height:220px;animation:rise .5s both;animation-delay:calc(var(--i) * 70ms)}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}
.sec-card .card-title{font-size:21px}
.sec-num{position:absolute;right:18px;top:12px;font:800 44px var(--mono);color:color-mix(in srgb,var(--c) 22%,transparent)}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font:11px var(--mono);padding:2px 8px;border-radius:20px;border:1px solid color-mix(in srgb,var(--c) 35%,transparent);color:var(--c)}
.archive{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:-8px 0 30px}.archive .label{font:12px var(--mono);color:var(--dim);margin-right:4px}
.pill{font:13px var(--mono);padding:6px 12px;border-radius:30px;border:1px solid var(--line);background:var(--panel);color:var(--txt)}.pill b{color:var(--c,var(--acc))}.pill:hover{text-decoration:none;border-color:var(--c,var(--acc))}
.panel{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:22px clamp(16px,3vw,30px);margin:24px 0}
.commits{list-style:none;margin:0;padding:0}.commits li a{display:flex;gap:14px;align-items:baseline;padding:9px 6px;border-bottom:1px dashed var(--line);color:var(--txt)}
.commits li:last-child a{border:0}.commits li a:hover{background:rgba(255,255,255,.03);text-decoration:none}
.commits code{color:var(--warn);font:13px var(--mono)}.commits .msg{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commits .who{color:var(--dim);font:12px var(--mono);white-space:nowrap}
/* crumbs + heads */
.crumbs{font:13px var(--mono);color:var(--dim);margin-bottom:18px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.crumbs a{color:var(--dim)}.crumbs a:hover{color:var(--acc)}.crumbs .sep{opacity:.4}.crumbs .cur{color:var(--txt)}
.dir-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:22px;border-radius:var(--r);border:1px solid var(--line);margin-bottom:24px;background:linear-gradient(120deg,color-mix(in srgb,var(--c) 14%,transparent),transparent 60%),var(--panel)}
.dir-head h1{margin:0;font:800 clamp(26px,3.4vw,38px)/1.1 var(--sans);color:#fff}.dir-head p{margin:4px 0 0;color:var(--dim);font:13px var(--mono)}
.dir-ico{font-size:40px;width:68px;height:68px;display:grid;place-items:center;border-radius:16px;background:rgba(0,0,0,.3);border:1px solid color-mix(in srgb,var(--c) 40%,transparent);box-shadow:0 0 30px color-mix(in srgb,var(--c) 20%,transparent);color:var(--c);font-weight:800}
.dir-head>div{flex:1;min-width:200px}.dir-filter{max-width:260px}
.empty-filter{color:var(--dim);font-family:var(--mono)}
.gallery{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.g-item{border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--panel);color:var(--dim);font:12px var(--mono);transition:.2s}
.g-item img{display:block;width:100%;height:150px;object-fit:cover;background:#0b111c}.g-item span{display:block;padding:8px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-item:hover{transform:translateY(-3px);border-color:var(--line2);text-decoration:none}
.shelf{display:grid;gap:26px 20px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin-bottom:30px}
.book{display:flex;flex-direction:column;gap:6px;color:var(--txt);perspective:900px}.book:hover{text-decoration:none}
.cover{position:relative;aspect-ratio:3/4;border-radius:4px 10px 10px 4px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.5),inset 4px 0 0 rgba(255,255,255,.08);transition:transform .35s;transform-origin:left center}
.book:hover .cover{transform:rotateY(-14deg) translateX(4px);box-shadow:16px 18px 40px rgba(0,0,0,.6)}
.cover.img img{width:100%;height:100%;object-fit:cover;display:block}
.cover.gen{display:flex;flex-direction:column;padding:14px 12px;background:linear-gradient(160deg,hsl(var(--h),70%,22%),hsl(calc(var(--h) + 60),70%,10%));border:1px solid hsla(var(--h),90%,60%,.35)}
.cover.gen::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:hsla(var(--h),90%,70%,.4)}
.cv-top{font:700 10px var(--mono);letter-spacing:.2em;color:hsl(var(--h),90%,75%)}
.cv-title{font:800 15px/1.25 var(--sans);color:#fff;margin-top:10px;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.cv-glyph{margin-top:auto;font-size:26px;opacity:.8}
.book-title{font-weight:600;font-size:13.5px;line-height:1.35;color:#eaf1ff}.book-meta{font:11px var(--mono);color:var(--dim)}
/* file page */
.file-head{margin-bottom:22px}.file-head h1{font:800 clamp(28px,4vw,44px)/1.15 var(--sans);margin:0 0 14px;color:#fff;letter-spacing:-.01em}.fh-ico{margin-right:10px}
.doc-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font:12.5px var(--mono);color:var(--dim);padding-bottom:16px;border-bottom:1px solid var(--line)}
.doc-meta .grow{flex:1}.doc-meta a{color:var(--dim)}.doc-meta a:hover{color:var(--acc)}
.badge{padding:3px 10px;border-radius:20px;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);color:var(--c);background:color-mix(in srgb,var(--c) 10%,transparent)}
.copy-link{background:none;border:1px solid var(--line);color:var(--dim);border-radius:6px;padding:3px 9px;font:12px var(--mono);cursor:pointer}.copy-link:hover{color:var(--acc);border-color:var(--line2)}
.doc-wrap{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:40px;align-items:start}
.doc-main{min-width:0}
.toc{position:sticky;top:calc(var(--top) + 20px);max-height:calc(100vh - var(--top) - 40px);overflow:auto;font-size:13px;border-left:1px solid var(--line);padding-left:16px;scrollbar-width:thin}
.toc-h{font:700 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:10px}
.toc a{display:block;color:var(--dim);padding:3px 0;line-height:1.4;border-left:2px solid transparent;margin-left:-18px;padding-left:16px}
.toc a:hover{color:#fff;text-decoration:none}.toc a.on{color:var(--acc);border-left-color:var(--acc)}
.toc a.l3{padding-left:28px}.toc a.l4{padding-left:40px;font-size:12px}
.progress{height:3px;background:var(--line);border-radius:3px;margin-top:14px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--acc),var(--acc2))}
/* markdown */
.md{font-size:16px;line-height:1.75;color:#d3dced;overflow-wrap:break-word}
.md-loading{font:13px var(--mono);color:var(--acc);padding:20px 0}.dots{animation:pulse 1s infinite}
.md-fallback{white-space:pre-wrap}
.md h1,.md h2,.md h3,.md h4,.md h5{color:#fff;line-height:1.3;margin:1.8em 0 .6em;position:relative;scroll-margin-top:80px}
.md>:first-child{margin-top:.4em}
.md h1{font-size:1.9em;padding-bottom:.3em;border-bottom:1px solid var(--line)}
.md h2{font-size:1.5em;padding-bottom:.25em;border-bottom:1px solid var(--line)}
.md h3{font-size:1.22em;color:#e8f4ff}.md h4{font-size:1.05em;color:var(--acc)}
.md .anchor{position:absolute;left:-1.1em;opacity:0;color:var(--dim);font-weight:400}.md h1:hover .anchor,.md h2:hover .anchor,.md h3:hover .anchor,.md h4:hover .anchor{opacity:1}
.md a{color:var(--acc);text-decoration:underline;text-decoration-color:rgba(0,229,255,.35);text-underline-offset:3px}.md a:hover{text-decoration-color:var(--acc)}
.md a.ext::after{content:"↗";font-size:.75em;margin-left:2px;opacity:.6}
.md a.internal{color:#c792ff;text-decoration-color:rgba(199,146,255,.4)}
.md a.broken{color:var(--dim);text-decoration:line-through dotted}
.md a.tag{display:inline-block;text-decoration:none;font:600 12px var(--mono);padding:1px 9px;border-radius:20px;background:rgba(255,43,214,.1);border:1px solid rgba(255,43,214,.3);color:#ff8ae6;margin:0 2px}
.md a.tag:hover{background:rgba(255,43,214,.2)}
.md img{max-width:100%;height:auto;border-radius:10px;border:1px solid var(--line);background:#fff1;cursor:zoom-in}
.md a img{cursor:pointer}
.md hr{border:0;height:1px;background:linear-gradient(90deg,transparent,var(--line2),transparent);margin:2em 0}
.md blockquote{margin:1.2em 0;padding:.6em 1.1em;border-left:3px solid var(--acc2);background:rgba(255,43,214,.05);border-radius:0 10px 10px 0;color:#c4cde0}
.md code{font:.88em var(--mono);background:rgba(0,229,255,.08);border:1px solid rgba(0,229,255,.15);color:#9ff3ff;padding:.12em .4em;border-radius:6px}
.md pre{position:relative;background:#070b13!important;border:1px solid var(--line);border-radius:12px;padding:0;overflow:hidden;margin:1.2em 0}
.md pre code,.code-view code{display:block;padding:16px 18px;overflow:auto;background:none!important;border:0;color:#cfd8ea;font:13.5px/1.6 var(--mono)}
.md pre .lang{position:absolute;top:0;right:0;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:4px 10px;background:rgba(255,255,255,.04);border-bottom-left-radius:8px}
.md pre .copy{position:absolute;top:6px;right:6px;opacity:0;transition:.2s;font:11px var(--mono);padding:4px 10px;border-radius:6px;border:1px solid var(--line2);background:#0c1424;color:var(--acc);cursor:pointer}
.md pre:hover .copy{opacity:1}.md pre:hover .lang{opacity:0}
.table-wrap{overflow:auto;margin:1.2em 0;border:1px solid var(--line);border-radius:12px}
.md table{border-collapse:collapse;width:100%;font-size:14px}
.md th{background:rgba(0,229,255,.07);color:#fff;text-align:left;font-weight:700}
.md th,.md td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.md tr:last-child td{border-bottom:0}.md tbody tr:hover{background:rgba(255,255,255,.025)}
.md ul,.md ol{padding-left:1.6em}.md li{margin:.25em 0}.md li::marker{color:var(--acc)}
.md mark{background:rgba(255,176,0,.25);color:#ffe2a8;padding:0 3px;border-radius:3px}
.md input[type=checkbox]{accent-color:var(--acc);margin-right:6px}
.callout{border:1px solid color-mix(in srgb,var(--cc) 40%,transparent);background:color-mix(in srgb,var(--cc) 8%,transparent);border-radius:12px;margin:1.2em 0;padding:0}
.callout>summary,.callout>.c-title{list-style:none;display:flex;gap:8px;align-items:center;font-weight:700;color:var(--cc);padding:10px 16px;cursor:default}
.callout>summary{cursor:pointer}.callout>summary::-webkit-details-marker{display:none}
.callout>summary::after{content:"▸";margin-left:auto;transition:.2s}.callout[open]>summary::after{transform:rotate(90deg)}
.callout>.c-body{padding:0 16px 8px}
.backlinks{margin-top:40px;padding:18px 20px;border:1px dashed var(--line2);border-radius:var(--r)}
.backlinks h3{margin:0 0 10px;font:700 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.backlinks a{display:inline-block;margin:4px 8px 4px 0;padding:4px 12px;border-radius:20px;background:rgba(199,146,255,.08);border:1px solid rgba(199,146,255,.25);color:#d8b4ff;font-size:13.5px}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px}
.pager a{display:flex;flex-direction:column;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:#fff}
.pager a:hover{border-color:var(--line2);text-decoration:none}.pager small{color:var(--dim);font:12px var(--mono)}.pager .next{text-align:right}
.viewer{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#0b111c}
.viewer.pdf iframe,.viewer.html iframe{display:block;width:100%;height:calc(100vh - 220px);min-height:520px;border:0;background:#fff}
.viewer.image{display:grid;place-items:center;padding:20px;background:repeating-conic-gradient(#0d1420 0 25%,#0a1019 0 50%) 0 0/24px 24px}
.viewer.image img,.viewer video{max-width:100%;max-height:78vh;border-radius:8px;cursor:zoom-in}
.viewer.binary{padding:50px;text-align:center}.big-ico{font-size:60px}
.viewer-note{font:12.5px var(--mono);color:var(--dim)}
.code-view{margin:0;border:1px solid var(--line);border-radius:var(--r);background:#070b13;max-height:80vh;overflow:auto}
.tabs{display:flex;gap:6px;margin-bottom:12px}.tabs button{font:600 13px var(--mono);padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--dim);cursor:pointer}.tabs button.on{color:var(--acc);border-color:var(--line2);background:rgba(0,229,255,.08)}
/* palette */
.palette{position:fixed;inset:0;z-index:100;background:rgba(2,4,9,.7);backdrop-filter:blur(6px);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}
.palette[hidden]{display:none}
.pal-box{width:min(720px,94vw);border:1px solid var(--line2);border-radius:16px;background:rgba(9,14,25,.97);box-shadow:0 40px 120px rgba(0,0,0,.7),0 0 60px rgba(0,229,255,.12);overflow:hidden;animation:pop .18s ease-out}
@keyframes pop{from{transform:scale(.97);opacity:0}}
.pal-in{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);font-size:20px;color:var(--acc)}
.pal-in input{flex:1;background:none;border:0;outline:none;color:#fff;font:17px var(--sans)}
.pal-status{font:11px var(--mono);color:var(--dim);padding:6px 18px;border-bottom:1px solid var(--line)}
.pal-list{list-style:none;margin:0;padding:6px;max-height:58vh;overflow:auto}
.pal-list li a{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:10px;color:var(--txt)}
.pal-list li a:hover,.pal-list li.sel a{background:linear-gradient(90deg,rgba(0,229,255,.14),rgba(255,43,214,.05));text-decoration:none}
.pal-list .pt{display:flex;gap:8px;align-items:center;font-weight:600;color:#fff}.pal-list .pp{font:11.5px var(--mono);color:var(--dim)}
.pal-list .ps{font-size:12.5px;color:#9aa7bf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pal-list em{font-style:normal;color:var(--acc);background:rgba(0,229,255,.12);border-radius:3px}
.pal-list .grp{font:700 10.5px var(--mono);letter-spacing:.15em;color:var(--dim);padding:10px 12px 4px;text-transform:uppercase}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.88);display:grid;place-items:center;cursor:zoom-out;padding:20px}
.lightbox[hidden]{display:none}.lightbox img{max-width:96vw;max-height:94vh;border-radius:8px;box-shadow:0 0 80px rgba(0,229,255,.2)}
/* map */
.map-tools{display:flex;flex-wrap:wrap;gap:18px;align-items:center;font:13px var(--mono);color:var(--dim);margin-bottom:12px}
.map-tools input{accent-color:var(--acc)}.map-legend{display:flex;flex-wrap:wrap;gap:12px}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:10px;height:10px;border-radius:50%}
.map-wrap{position:relative;height:calc(100vh - 260px);min-height:520px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:radial-gradient(circle at center,rgba(0,229,255,.06),transparent 70%),#04070d}
#map{width:100%;height:100%;display:block;cursor:grab}#map.drag{cursor:grabbing}
.map-tip{position:absolute;pointer-events:none;padding:6px 10px;border-radius:8px;background:rgba(9,14,25,.95);border:1px solid var(--line2);font:12px var(--mono);color:#fff;white-space:nowrap}
.map-status{position:absolute;left:12px;bottom:10px;font:11px var(--mono);color:var(--dim)}
/* tags */
.tag-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}
.tag-cloud button{font:600 13px var(--mono);padding:6px 14px;border-radius:30px;border:1px solid rgba(255,43,214,.3);background:rgba(255,43,214,.07);color:#ff8ae6;cursor:pointer;transition:.15s}
.tag-cloud button b{color:var(--dim);font-weight:400;margin-left:6px}.tag-cloud button:hover,.tag-cloud button.on{background:rgba(255,43,214,.22);color:#fff;box-shadow:0 0 18px rgba(255,43,214,.25)}
/* error */
.err{text-align:center;padding:60px 0}.err-code{font:800 120px/1 var(--mono);color:var(--acc)}.err h1{color:#fff}.err p{color:var(--dim);max-width:560px;margin:0 auto 24px}.err .hero-cta{justify-content:center}
/* responsive */
@media (max-width:1180px){.doc-wrap{grid-template-columns:1fr}.toc{display:none}}
@media (max-width:980px){.hero{grid-template-columns:1fr}.vault-dial{display:none}}
@media (max-width:860px){
 .burger{display:block}.side{position:fixed;left:0;top:var(--top);z-index:35;transform:translateX(-102%);transition:transform .25s;box-shadow:20px 0 60px rgba(0,0,0,.5);background:rgba(6,9,16,.98)}
 body.nav-open .side{transform:none}body.nav-open .scrim{display:block;position:fixed;inset:var(--top) 0 0 0;z-index:30;background:rgba(0,0,0,.5)}
 .top-links span,.search-btn kbd{display:none}.search-btn .s-txt{display:none}.search-btn{flex:none;margin-left:auto}
 .brand{font-size:15px}.main{padding-top:20px}
}
@media (max-width:520px){.stat{flex:1 1 40%;min-width:0}.top-links a:nth-child(3){display:none}.pager{grid-template-columns:1fr}.dir-filter{max-width:none}.commits .who{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}#bg{display:none}}
