@font-face{font-family:Silk;src:url(/silk.woff2?v=3) format("woff2");font-display:swap}
:root{--bg:#0a0912;--bg2:#12101f;--card:#16132a;--line:#2a2448;--txt:#e6e4f2;--mut:#9a95b8;--cy:#78fff0;--pu:#c58cff;--gold:#ffd700;--red:#ff3c5a;
 --pix:Silk,ui-monospace,Menlo,monospace;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,Menlo,Consolas,monospace;--navh:60px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--txt);font:16px/1.7 var(--sans);
 background-image:radial-gradient(ellipse at 50% -10%,#2a1b55 0,transparent 60%),repeating-linear-gradient(45deg,transparent 0 22px,rgba(255,255,255,.015) 22px 23px);background-attachment:fixed}
img.px{image-rendering:pixelated;image-rendering:crisp-edges}
a{color:var(--cy)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
#bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:20;background:transparent}
#bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--pu),var(--cy),var(--gold));box-shadow:0 0 8px var(--cy)}
nav.top{position:sticky;top:0;z-index:15;background:rgba(10,9,18,.88);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.tw{display:flex;align-items:center;gap:12px;height:var(--navh);padding:0 20px;max-width:1440px;margin:0 auto}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--pix);color:var(--cy);text-decoration:none;font-size:18px;letter-spacing:1px}
.logo img{width:30px;height:30px}
.gtag{font-family:var(--pix);font-size:10px;letter-spacing:2px;color:var(--gold);border:1px solid rgba(255,215,0,.5);padding:3px 8px;border-radius:3px}
.links{margin-left:auto;display:flex;gap:18px;font-size:14px}.links a{color:var(--mut);text-decoration:none}.links a:hover,.links a.on{color:var(--txt)}
.drawer-btn{display:none;font-family:var(--pix);font-size:11px;letter-spacing:1px;background:transparent;color:var(--cy);border:1px solid var(--cy);border-radius:3px;padding:6px 9px;cursor:pointer}

.shell{display:grid;grid-template-columns:272px minmax(0,1fr) 248px;max-width:1440px;margin:0 auto}
/* sidebar */
.side{position:sticky;top:var(--navh);height:calc(100vh - var(--navh));border-right:1px solid var(--line);display:flex;flex-direction:column;background:rgba(10,9,18,.55)}
.side-in{flex:1;overflow:auto;padding:22px 18px 12px}
.side-head{font-family:var(--pix);font-size:12px;letter-spacing:2px;color:var(--gold);margin-bottom:12px}.side-head span{color:var(--pu)}
.search{position:relative;display:block;margin-bottom:18px}
.search input{width:100%;font:14px var(--sans);background:var(--bg2);color:var(--txt);border:1px solid var(--line);border-radius:4px;padding:9px 46px 9px 11px;outline:none}
.search input:focus{border-color:var(--cy);box-shadow:0 0 0 3px rgba(120,255,240,.12)}
.search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:11px var(--mono);color:#b5b0d0;border:1px solid var(--line);border-radius:3px;padding:1px 5px;background:var(--bg)}
.grp{margin-bottom:16px}
.grp-h{display:flex;align-items:center;gap:8px;font-family:var(--pix);font-size:11px;letter-spacing:1.5px;color:var(--pu);margin:0 0 6px}
.grp-h img{width:18px;height:18px;border:1px solid var(--line);border-radius:2px}
.grp ul{list-style:none;margin:0;padding:0 0 0 4px;border-left:1px dashed var(--line)}
.grp li a{display:flex;gap:8px;align-items:baseline;padding:5px 8px 5px 12px;margin-left:-1px;border-left:2px solid transparent;color:var(--mut);text-decoration:none;font-size:14.5px;line-height:1.35}
.grp li a small{font-family:var(--pix);font-size:9px;color:#8a84ad;min-width:22px}
.grp li a:hover{color:var(--txt);background:rgba(197,140,255,.06)}
.grp li a.on{color:var(--cy);border-left-color:var(--cy);background:rgba(120,255,240,.07)}
.grp li a.on small{color:var(--cy)}
.grp li a mark{background:rgba(255,215,0,.25);color:inherit;border-radius:2px}
.nores{color:var(--mut);font-size:14px}
.side-foot{border-top:1px solid var(--line);padding:14px 18px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.chain{font-family:var(--pix);font-size:10px;letter-spacing:1.5px;color:var(--mut);display:flex;align-items:center;gap:8px}
.chain i{width:8px;height:8px;background:var(--gold);box-shadow:0 0 8px var(--gold)}
.side-foot a{text-decoration:none}
.scrim{display:none}

/* article */
.main{padding:34px 48px 60px;min-width:0}
article{max-width:760px}
.folio-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.sigil{width:52px;height:52px;border:2px solid var(--c,var(--pu));border-radius:4px;box-shadow:3px 3px 0 rgba(197,140,255,.25);flex:none}
.crumbs{font-size:13px;color:var(--mut)}.crumbs a{color:var(--mut);text-decoration:none}.crumbs a:hover{color:var(--txt)}
.ftag{display:inline-block;font-family:var(--pix);font-size:10px;letter-spacing:2px;color:var(--bg);background:var(--gold);padding:2px 7px;border-radius:2px;margin-right:8px}
.meta-line{font-size:13px;color:var(--mut);margin-top:3px}
article h1{font-family:var(--pix);font-weight:400;font-size:38px;line-height:1.12;margin:6px 0 14px;color:#fff}
.lead{font-size:19px;color:#c9c5e0;margin:0 0 26px;line-height:1.6}
article h2{font-family:var(--pix);font-weight:400;font-size:21px;color:var(--cy);margin:40px 0 10px;scroll-margin-top:80px;letter-spacing:.5px}
article h2::before{content:"◆ ";color:var(--pu);font-size:14px;vertical-align:2px}
article h3{font-size:16px;margin:24px 0 6px;color:#fff}
article p,article li{color:#d4d1e6}
article ul,article ol{padding-left:22px}article li{margin:5px 0}
article code{font:13.5px var(--mono);background:#07060d;border:1px solid var(--line);border-radius:3px;padding:1px 5px;color:var(--gold);overflow-wrap:anywhere}
pre{margin:14px 0;background:#07060d;border:1px solid var(--line);border-left:3px solid var(--pu);border-radius:5px;padding:14px 16px;overflow:auto;font:13px/1.55 var(--mono);color:#cfe}
pre code{background:none;border:0;padding:0;color:inherit}
table{width:100%;border-collapse:collapse;margin:14px 0;font-size:14.5px;display:block;overflow-x:auto}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-family:var(--pix);font-weight:400;font-size:11px;letter-spacing:1px;color:var(--pu);background:rgba(197,140,255,.06)}
td code{white-space:nowrap}
.note{border:1px solid var(--line);border-left:3px solid var(--gold);background:rgba(255,215,0,.05);border-radius:5px;padding:12px 16px;margin:18px 0;font-size:15px}
.note b{font-family:var(--pix);font-weight:400;font-size:11px;letter-spacing:1.5px;color:var(--gold);display:block;margin-bottom:2px}
.note.warn{border-left-color:var(--red);background:rgba(255,60,90,.06)}.note.warn b{color:var(--red)}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}
.lc{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px;text-decoration:none;color:var(--txt);transition:border-color .15s,transform .15s}
.lc:hover{border-color:var(--cy);transform:translate(-1px,-1px);box-shadow:3px 3px 0 #2a6e68}
.lc img{width:34px;height:34px;border-radius:3px;flex:none}
.lc b{display:block;font-size:15px}.lc small{display:block;color:var(--mut);font-size:13.5px;line-height:1.45}
.lc i{font-style:normal;font-family:var(--pix);font-size:9px;letter-spacing:1.5px;color:var(--gold)}
.tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.tiers div{background:var(--card);border:2px solid var(--c);border-radius:6px;overflow:hidden;font-size:13px;color:var(--mut)}
.tiers img{width:100%;display:block;aspect-ratio:1}
.tiers p{margin:0;padding:8px 10px 10px}.tiers b{display:block;font-family:var(--pix);font-weight:400;color:var(--c);font-size:12px;letter-spacing:1px}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:760px;margin-top:46px}
.pn a{display:block;border:1px solid var(--line);border-radius:6px;padding:12px 16px;text-decoration:none;color:var(--txt);background:var(--card)}
.pn a:hover{border-color:var(--pu)}
.pn small{display:block;font-family:var(--pix);font-size:10px;letter-spacing:1.5px;color:var(--mut)}
.pn .nx{text-align:right;grid-column:2}
.dfoot{max-width:760px;margin-top:40px;padding-top:18px;border-top:1px solid var(--line);color:var(--mut);font-size:13px}

/* right rail */
.rail{position:sticky;top:var(--navh);height:calc(100vh - var(--navh));overflow:auto}
.rail-in{padding:34px 20px 20px}
.rail-h{font-family:var(--pix);font-size:11px;letter-spacing:2px;color:var(--gold);margin-bottom:10px}
#toc{list-style:none;margin:0 0 22px;padding:0;border-left:1px solid var(--line)}
#toc a{display:block;padding:4px 0 4px 12px;margin-left:-1px;border-left:2px solid transparent;color:var(--mut);text-decoration:none;font-size:13.5px;line-height:1.4}
#toc a:hover{color:var(--txt)}#toc a.on{color:var(--cy);border-left-color:var(--cy)}
.candle-box{display:flex;align-items:flex-end;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:14px 14px 12px;margin-bottom:16px}
.candle-wrap{position:relative;width:28px;height:96px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.wax{width:16px;height:70px;background:repeating-linear-gradient(0deg,#e9e2ff 0 4px,#d8ccff 4px 8px);box-shadow:inset -4px 0 0 #b9a6f5;transition:height .2s steps(8)}
.wick{width:2px;height:4px;background:#2a2448}
.flame{width:8px;height:12px;background:var(--gold);box-shadow:0 -4px 0 -1px #fff4a8,0 0 12px 4px rgba(255,215,0,.35);animation:flick 1.2s steps(2) infinite}
.dish{width:28px;height:4px;background:var(--pu);box-shadow:0 4px 0 #6e4aa0}
.candle-box.out .flame{opacity:0}
@keyframes flick{50%{transform:translateX(1px) scaleY(.85)}}
.candle-txt b{display:block;font-family:var(--pix);font-weight:400;font-size:20px;color:var(--cy)}
.candle-txt small{color:var(--mut);font-size:12px;line-height:1.3;display:block}
.oath{display:block;text-decoration:none;border:1px solid rgba(255,215,0,.45);border-radius:6px;padding:14px;background:linear-gradient(160deg,rgba(255,215,0,.09),rgba(197,140,255,.06));position:relative}
.oath::before{content:"";position:absolute;inset:3px;border:1px dashed rgba(255,215,0,.25);border-radius:4px;pointer-events:none}
.oath b{display:block;font-family:var(--pix);font-weight:400;font-size:11px;letter-spacing:1.5px;color:var(--gold);margin-bottom:6px}
.oath span{display:block;color:var(--txt);font-size:13.5px;line-height:1.5}
.oath em{display:block;font-style:normal;color:var(--cy);font-size:13px;margin-top:8px}

@media (max-width:1180px){.shell{grid-template-columns:260px minmax(0,1fr)}.rail{display:none}.main{padding:30px 32px 60px}}
@media (max-width:860px){
 .shell{grid-template-columns:1fr}
 .drawer-btn{display:inline-block}.links{display:none}.gtag{display:none}
 .side{position:fixed;top:0;left:0;bottom:0;height:100vh;width:min(300px,86vw);z-index:30;background:var(--bg);transform:translateX(-102%);transition:transform .22s ease;box-shadow:8px 0 30px rgba(0,0,0,.5)}
 body.drawer .side{transform:none}
 body.drawer .scrim{display:block;position:fixed;inset:0;background:rgba(5,4,10,.6);z-index:25}
 .main{padding:24px 18px 50px}
 article h1{font-size:28px}.lead{font-size:17px}
 .cards{grid-template-columns:1fr}.tiers{grid-template-columns:repeat(2,1fr)}
 .pn{grid-template-columns:1fr}.pn .nx{grid-column:1}
}
