| |
| |
| :root{ |
| --paper:#1a1816;--card:#211f1c;--stage:#141210;--void:#0c0a09;--surface:#2a2724;--highlight:#35322e; |
| --ink:#faf8f5;--dim:rgba(250,248,245,.75);--faint:rgba(250,248,245,.55);--muted:rgba(250,248,245,.4); |
| --rule:rgba(250,248,245,.08);--rule2:#2a2724; |
| --accent:#c9754a;--accent-hover:#d4896a;--accent-ink:#1a1816;--accent-soft:rgba(201,117,74,.12); |
| --gold:#b8976c;--good:#34d399;--bad:#f87171; |
| --font-display:"Playfair Display",Georgia,serif;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; |
| --font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Consolas,monospace; |
| } |
| *{box-sizing:border-box} |
| html{color-scheme:dark} |
| body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--font-body); |
| -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility} |
| a{color:var(--accent);text-decoration:none} |
| a:hover{color:var(--accent-hover)} |
| ::selection{background:rgba(201,117,74,.35)} |
|
|
| |
| .top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between; |
| padding:0 20px;height:56px;background:rgba(26,24,22,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)} |
| .brand{display:flex;align-items:center;gap:10px;color:var(--ink)} |
| .brand img{width:22px;height:22px} |
| .brand span{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.01em} |
| .toplinks{display:flex;gap:22px;font-size:13.5px;font-weight:500} |
| .toplinks a{color:var(--dim)} |
| .toplinks a:hover{color:var(--accent)} |
|
|
| |
| .shell{display:grid;grid-template-columns:240px minmax(0,1fr) 200px;gap:0;max-width:1400px;margin:0 auto} |
| .side{border-right:1px solid var(--rule);padding:28px 18px 60px 24px;position:sticky;top:56px; |
| height:calc(100vh - 56px);overflow-y:auto;scrollbar-width:thin} |
| .side .grp{margin:0 0 22px} |
| .side .grp h4{margin:0 0 8px;font:500 10.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase; |
| color:var(--muted)} |
| .side a{display:block;padding:4px 8px;margin:1px -8px;border-radius:6px;font-size:13.5px;color:var(--faint)} |
| .side a:hover{color:var(--ink);background:var(--card)} |
| .side a[aria-current]{color:var(--accent);background:var(--accent-soft)} |
| .side a .n{font:500 10.5px/1 var(--font-mono);color:var(--muted);margin-right:7px} |
| .side a[aria-current] .n{color:var(--accent)} |
|
|
| main{padding:44px 48px 90px;min-width:0} |
| article{max-width:46rem} |
| article h1,article h2,article h3,article h4{font-family:var(--font-display);font-weight:600; |
| letter-spacing:-.01em;line-height:1.2;color:var(--ink);scroll-margin-top:76px} |
| article h1{font-size:2.1rem;margin:0 0 18px} |
| article h2{font-size:1.45rem;margin:2.2em 0 .6em;padding-top:.7em;border-top:1px solid var(--rule)} |
| article h3{font-size:1.12rem;margin:1.8em 0 .5em} |
| article p{margin:0 0 1em;color:var(--dim)} |
| article li{color:var(--dim);margin:.3em 0} |
| article strong{color:var(--ink);font-weight:600} |
| article hr{border:0;border-top:1px solid var(--rule);margin:2.5em 0} |
| article img{max-width:100%;border-radius:10px;height:auto} |
| article a{text-decoration:underline;text-decoration-color:rgba(201,117,74,.35);text-underline-offset:3px} |
| article a:hover{text-decoration-color:var(--accent)} |
| .md-anchor{position:relative;top:-70px} |
|
|
| kbd{font-family:var(--font-mono);font-size:.8em;background:var(--surface);color:var(--ink); |
| border:1px solid var(--highlight);border-bottom-width:2px;border-radius:5px;padding:.05em .4em;white-space:nowrap} |
| code{font-family:var(--font-mono);font-size:.86em;background:var(--surface); |
| border:1px solid var(--rule);border-radius:5px;padding:.1em .35em;color:var(--ink)} |
| .codehilite{background:var(--stage)!important;border:1px solid var(--rule);border-radius:10px; |
| padding:14px 16px;overflow-x:auto;margin:0 0 1.2em} |
| .codehilite pre{margin:0;background:transparent!important} |
| .codehilite code{background:transparent;border:0;padding:0;font-size:13px;line-height:1.6} |
|
|
| table{border-collapse:collapse;width:100%;margin:0 0 1.2em;font-size:14px;display:block;overflow-x:auto} |
| th,td{border:1px solid var(--rule2);padding:7px 11px;text-align:left;vertical-align:top;color:var(--dim)} |
| th{background:var(--card);color:var(--ink);font-weight:600;font-size:13px} |
| tbody tr:nth-child(2n){background:rgba(250,248,245,.02)} |
| table code{white-space:nowrap} |
|
|
| blockquote{margin:0 0 1.2em;padding:10px 16px;border-left:3px solid var(--accent); |
| background:var(--accent-soft);border-radius:0 8px 8px 0} |
| blockquote p{margin:0 0 .5em;color:var(--ink)} |
| blockquote p:last-child{margin:0} |
|
|
| .math{overflow-x:auto;overflow-y:hidden;padding:6px 2px;margin:0 0 1.2em} |
| .katex-display{margin:.4em 0!important} |
| .katex{color:var(--ink)} |
|
|
| |
| .rail{padding:52px 20px 60px 0;position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto} |
| .rail h5{margin:0 0 10px;font:500 10.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase; |
| color:var(--muted)} |
| .rail ul{list-style:none;margin:0;padding:0} |
| .rail ul ul{padding-left:12px} |
| .rail a{display:block;padding:3px 0;font-size:12.5px;color:var(--muted);line-height:1.45} |
| .rail a:hover{color:var(--accent)} |
| .rail .l2>a{color:var(--faint)} |
|
|
| |
| .hero{padding:8px 0 34px;border-bottom:1px solid var(--rule);margin-bottom:34px} |
| .eyebrow{font:500 11px/1 var(--font-mono);letter-spacing:.22em;color:var(--accent);margin:0 0 14px} |
| .hero h1{font-family:var(--font-display);font-size:3.4rem;font-weight:700;letter-spacing:-.02em;margin:0 0 14px;line-height:1.05} |
| .hero .pitch{font-size:1.14rem;color:var(--faint);max-width:34rem;margin:0 0 24px} |
| .cta{display:flex;gap:12px;flex-wrap:wrap} |
| .btn{display:inline-block;padding:10px 20px;border-radius:999px;font-size:14px;font-weight:600; |
| border:1px solid var(--rule2);color:var(--ink);background:var(--card)} |
| .btn:hover{border-color:var(--highlight);color:var(--ink)} |
| .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)} |
| .btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)} |
| .btn.ghost{background:transparent} |
|
|
| |
| .plainlink{margin:-6px 0 1.6em;font-size:14px} |
| .plainlink a{font-weight:500} |
|
|
| |
| .heromark{height:.8em;width:auto;vertical-align:-.08em;margin-right:.22em} |
|
|
| |
| .about{margin-top:3.2em;padding-top:1.4em;border-top:1px solid var(--rule)} |
| .about p{color:var(--faint);max-width:38rem} |
|
|
| |
| .pagenav{display:flex;justify-content:space-between;gap:14px;margin-top:3.2em;padding-top:1.2em; |
| border-top:1px solid var(--rule)} |
| .pagenav a{flex:1;border:1px solid var(--rule2);background:var(--card);border-radius:10px;padding:11px 15px; |
| text-decoration:none} |
| .pagenav a:hover{border-color:rgba(201,117,74,.45)} |
| .pagenav .dir{display:block;font:500 10.5px/1 var(--font-mono);letter-spacing:.12em;color:var(--muted);margin-bottom:4px} |
| .pagenav .lbl{color:var(--ink);font-weight:600;font-size:14px} |
| .pagenav .next{text-align:right} |
|
|
| footer{border-top:1px solid var(--rule);padding:26px 24px;display:flex;justify-content:space-between; |
| gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)} |
| footer a{color:var(--dim)} |
| footer a:hover{color:var(--accent)} |
|
|
| @media (max-width:1150px){.rail{display:none}.shell{grid-template-columns:220px minmax(0,1fr)}} |
| @media (max-width:820px){ |
| .shell{grid-template-columns:minmax(0,1fr)} |
| .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--rule);padding:18px 24px} |
| .side .grp{display:inline-block;vertical-align:top;margin:0 26px 14px 0} |
| main{padding:30px 22px 70px} |
| .hero h1{font-size:2.5rem} |
| } |
|
|
| @font-face{font-family:"Inter";src:url("../fonts/inter-latin.woff2") format("woff2");font-weight:100 900;font-display:swap} |
| @font-face{font-family:"Playfair Display";src:url("../fonts/playfair-latin.woff2") format("woff2");font-weight:400 900;font-display:swap} |
| :root{--font-mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace} |
| .side,.rail{top:0;height:100vh} |
| .side .guidebrand{display:flex;align-items:center;gap:9px;margin:0 0 22px;color:var(--ink)} |
| .side .guidebrand img{width:20px;height:20px} |
| .side .guidebrand span{font-family:var(--font-display);font-weight:700;font-size:17px} |
| .side .guidebrand:hover{background:none} |
| .guidenote{font-size:12px;color:var(--muted);margin:26px 0 0;line-height:1.5} |
| .shell{max-width:1320px} |
|
|
| pre { line-height: 125%; } |
| td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } |
| span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } |
| td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } |
| span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } |
| .codehilite .hll { background-color: #2a2724 } |
| .codehilite { background: ; color: #FAF8F5 } |
| .codehilite .c { color: #8A837B; font-style: italic } |
| .codehilite .err { color: #F87171 } |
| .codehilite .k { color: #C9754A } |
| .codehilite .n { color: #FAF8F5 } |
| .codehilite .o { color: #C9754A } |
| .codehilite .p { color: #BFB9B1 } |
| .codehilite .ch { color: #8A837B; font-style: italic } |
| .codehilite .cm { color: #8A837B; font-style: italic } |
| .codehilite .cp { color: #8A837B; font-style: italic } |
| .codehilite .cpf { color: #8A837B; font-style: italic } |
| .codehilite .c1 { color: #8A837B; font-style: italic } |
| .codehilite .cs { color: #8A837B; font-style: italic } |
| .codehilite .gd { color: #F87171 } |
| .codehilite .ge { font-style: italic } |
| .codehilite .gi { color: #34D399 } |
| .codehilite .gs { font-weight: bold } |
| .codehilite .kc { color: #C9754A } |
| .codehilite .kd { color: #C9754A } |
| .codehilite .kn { color: #C9754A } |
| .codehilite .kp { color: #C9754A } |
| .codehilite .kr { color: #C9754A } |
| .codehilite .kt { color: #B8976C } |
| .codehilite .m { color: #B8976C } |
| .codehilite .s { color: #34D399 } |
| .codehilite .na { color: #B8976C } |
| .codehilite .nb { color: #B8976C } |
| .codehilite .nc { color: #D4896A } |
| .codehilite .no { color: #FAF8F5 } |
| .codehilite .nd { color: #D4896A } |
| .codehilite .ni { color: #FAF8F5 } |
| .codehilite .ne { color: #FAF8F5 } |
| .codehilite .nf { color: #D4896A } |
| .codehilite .nl { color: #FAF8F5 } |
| .codehilite .nn { color: #FAF8F5 } |
| .codehilite .nx { color: #FAF8F5 } |
| .codehilite .py { color: #FAF8F5 } |
| .codehilite .nt { color: #C9754A } |
| .codehilite .nv { color: #FAF8F5 } |
| .codehilite .ow { color: #C9754A } |
| .codehilite .pm { color: #BFB9B1 } |
| .codehilite .w { color: #FAF8F5 } |
| .codehilite .mb { color: #B8976C } |
| .codehilite .mf { color: #B8976C } |
| .codehilite .mh { color: #B8976C } |
| .codehilite .mi { color: #B8976C } |
| .codehilite .mo { color: #B8976C } |
| .codehilite .sa { color: #34D399 } |
| .codehilite .sb { color: #34D399 } |
| .codehilite .sc { color: #34D399 } |
| .codehilite .dl { color: #34D399 } |
| .codehilite .sd { color: #34D399 } |
| .codehilite .s2 { color: #34D399 } |
| .codehilite .se { color: #34D399 } |
| .codehilite .sh { color: #34D399 } |
| .codehilite .si { color: #34D399 } |
| .codehilite .sx { color: #34D399 } |
| .codehilite .sr { color: #34D399 } |
| .codehilite .s1 { color: #34D399 } |
| .codehilite .ss { color: #34D399 } |
| .codehilite .bp { color: #B8976C } |
| .codehilite .fm { color: #D4896A } |
| .codehilite .vc { color: #FAF8F5 } |
| .codehilite .vg { color: #FAF8F5 } |
| .codehilite .vi { color: #FAF8F5 } |
| .codehilite .vm { color: #FAF8F5 } |
| .codehilite .il { color: #B8976C } |
|
|