/* Blind custody · file viewer + paper */
:root{--navy:#0A1628;--navy-d:#07101f;--ink:#FAFAF9;--grey:#9FB0C4;--dim:#6f8299;--line:rgba(159,176,196,.16);--pur:#5B4FCF;--pur-lt:#7F77DD;--teal:#16C990;
--paper:#FBFAF7;--p-ink:#1A1A1A;--p-sec:#5e5e5e;--p-line:#E6E3DC;--acc:#5B4FCF;--acc-l:#F0EEF8;--ok:#0D9E72;--ok-l:#E6F5EF;--warn:#B07A00;--warn-l:#FFF4D9;--bad:#C8443A;--bad-l:#FBEAE8;--bar:56px;
--serif:"Source Serif 4","Source Serif Pro",Georgia,serif;--mono:"Geist Mono",ui-monospace,monospace;--sans:Geist,system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--bar) + 60px)}
body{margin:0;background:var(--navy-d);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--pur-lt);text-decoration:none}a:hover{color:var(--ink)}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--pur-lt);outline-offset:2px}

/* bar */
.zb{position:fixed;inset:0 0 auto 0;z-index:30;height:var(--bar);display:flex;align-items:center;gap:18px;padding:0 18px;background:rgba(10,22,40,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
@supports not (backdrop-filter:blur(1px)){.zb{background:var(--navy)}}
.zb-logo{display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:600;font-size:16px}
.zb-logo svg{width:22px;height:22px}
.zb-crumb{display:flex;align-items:center;gap:9px;min-width:0;padding-left:18px;border-left:1px solid var(--line);font-family:var(--mono);font-size:12.5px;color:var(--grey)}
.zb-crumb a{color:var(--grey)}.zb-crumb a:hover{color:var(--ink)}
.zb-crumb b{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zb-r{margin-left:auto;display:flex;align-items:center;gap:10px}
.zb-view{position:relative;display:flex;padding:3px;border:1px solid var(--line);border-radius:999px;background:rgba(6,16,30,.6)}
.zb-view button{position:relative;z-index:1;height:32px;padding:0 14px;border:0;border-radius:999px;background:none;color:var(--grey);font-size:13.5px;white-space:nowrap;transition:color .15s}
.zb-view button[aria-pressed="true"]{color:var(--ink)}
.zb-view i{position:absolute;top:3px;bottom:3px;left:var(--l,3px);width:var(--w,0);border-radius:999px;background:var(--pur);transition:left .2s ease-out,width .2s ease-out,background .2s}
body.srv .zb-view i{background:#3a4658}
.zb-btn{display:inline-flex;align-items:center;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:none;color:var(--grey);font-size:13.5px;white-space:nowrap}
.zb-btn:hover{color:var(--ink);border-color:rgba(159,176,196,.4)}
.zb-tree{display:none}
.zb-prog{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--pur-lt);transform-origin:0 50%;transform:scaleX(var(--p,0))}

/* tree */
.zv{display:grid;grid-template-columns:300px minmax(0,1fr);padding-top:var(--bar);min-height:100vh}
.zt{position:sticky;top:var(--bar);align-self:start;height:calc(100vh - var(--bar));overflow-y:auto;padding:18px 10px 28px;border-right:1px solid var(--line);background:var(--navy);font-family:var(--mono);font-size:13px}
.zt-h{display:flex;align-items:center;justify-content:space-between;padding:0 10px 10px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.zt ul{list-style:none;margin:0;padding:0}
.zt ul ul{padding-left:14px;margin-left:13px;border-left:1px solid var(--line)}
.zt-dir{display:flex;align-items:center;gap:8px;padding:5px 10px;color:var(--grey)}
.zt-dir::before{content:"▾";font-size:10px;color:var(--dim)}
.zt a{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;color:var(--grey);transition:background .15s,color .15s}
.zt a:hover{background:rgba(159,176,196,.07);color:var(--ink)}
.zt a.on{background:rgba(91,79,207,.22);color:var(--ink)}
.zt a svg{width:14px;height:14px;opacity:.7}
.zt a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zt a em{font-style:normal;font-size:11px;color:var(--dim)}
.zt a.on em{color:var(--pur-lt)}
.zt-root{padding:5px 10px;color:var(--ink)}

/* tabs + sheet */
.zr{min-width:0;padding:0 24px 80px;background:radial-gradient(1200px 600px at 50% -10%,rgba(91,79,207,.12),transparent 60%)}
.zr-tabs{position:sticky;top:var(--bar);z-index:10;display:flex;align-items:center;gap:12px;max-width:880px;margin:0 auto;padding:14px 0 10px;background:linear-gradient(var(--navy-d) 70%,transparent)}
.zr-tab{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid var(--line);border-bottom-color:transparent;border-radius:8px 8px 0 0;background:rgba(16,35,61,.8);font-family:var(--mono);font-size:12.5px;color:var(--ink)}
.zr-tab i{width:7px;height:7px;border-radius:50%;background:var(--teal)}
body.srv .zr-tab i{background:#8090a4}
.zr-meta{margin-left:auto;font-family:var(--mono);font-size:12px;color:var(--grey)}
.zp{max-width:880px;margin:0 auto;padding:64px clamp(26px,7vw,92px) 56px;background:var(--paper);color:var(--p-ink);border-radius:2px 2px 4px 4px;box-shadow:0 30px 80px -30px rgba(0,0,0,.7),0 0 0 1px rgba(0,0,0,.2);font-family:var(--serif);font-size:18px;line-height:1.68;font-feature-settings:"onum" 1,"kern" 1}
.zp.in{animation:zIn .3s ease-out}
@keyframes zIn{from{opacity:0;transform:translateY(8px)}}
.zp-run{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding-bottom:12px;margin-bottom:44px;border-bottom:1px solid var(--p-line);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--p-sec)}
.zp-run span{white-space:nowrap}
.zp h1{margin:0;font-family:var(--serif);font-weight:600;font-size:40px;line-height:1.12;letter-spacing:-.012em;text-wrap:balance}
.zp-sec{display:flex;align-items:baseline;gap:14px;margin:0 0 6px;font-family:var(--mono);font-size:12.5px;color:var(--acc)}
.zp-sec b{font-weight:500}
.zp-sec span{color:var(--p-sec)}
.zp-cite{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0}
.zp-cite a{font-family:var(--mono);font-size:12px;padding:2px 8px;border-radius:4px;background:var(--acc-l);color:#3f35a8}
.zp-badge{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:2px 9px;border-radius:999px;background:var(--warn-l);color:var(--warn);font-family:var(--mono);font-size:11.5px;vertical-align:middle;letter-spacing:0}
.zp-lead{position:relative;margin:30px 0 30px;padding:0 0 0 0;font-size:21px;line-height:1.55;color:#222}
.zp-lead::before{content:"Plain words";display:block;margin-bottom:6px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--p-sec)}
.zp p{margin:0 0 16px;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.zp b{font-weight:600}
.zp code,.zp .m{font-family:var(--mono);font-size:.78em;padding:.06em .32em;border-radius:3px;background:var(--acc-l);color:#3f35a8;white-space:nowrap}
.zp a.ref{font-family:var(--mono);font-size:.78em;color:var(--acc)}
.zp ul.zl{margin:0 0 18px;padding:0;list-style:none;display:grid;gap:12px}
.zp ul.zl li{position:relative;padding-left:24px}
.zp ul.zl li::before{content:"—";position:absolute;left:0;color:var(--acc)}

/* front matter */
.zf-head{font-family:var(--sans);font-size:15px;letter-spacing:.02em;color:var(--acc);margin:0 0 14px}
.zf-by{display:flex;flex-wrap:wrap;gap:4px 22px;margin:22px 0 0;font-family:var(--sans);font-size:14.5px;color:var(--p-sec)}
.zf-by span{white-space:nowrap}.zf-by b{color:var(--p-ink)}
.zf-kw{margin:14px 0 0;font-size:15.5px;color:var(--p-sec)}
.zf-kw i{font-style:italic;color:var(--p-ink)}
.zf-abs{margin:34px 0 0;padding:24px 0 6px;border-top:1.5px solid var(--p-ink)}
.zf-abs h2,.zf-blk h2{margin:0 0 10px;font-family:var(--mono);font-weight:500;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--p-sec)}
.zf-abs p{font-size:17px;line-height:1.65}
.zf-proofs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:28px 0;background:var(--p-line);border:1px solid var(--p-line)}
.zf-proofs div{padding:16px 18px;background:var(--paper)}
.zf-proofs i{display:block;font-style:normal;font-family:var(--mono);font-size:11.5px;color:var(--acc);margin-bottom:6px}
.zf-proofs b{display:block;font-family:var(--sans);font-size:15.5px;line-height:1.3;margin-bottom:4px}
.zf-proofs span{display:block;font-size:15px;line-height:1.45;color:var(--p-sec)}
.zf-blk{margin:36px 0 0}
.zf-eq{margin:10px 0 0;padding:20px 22px;border:1px solid var(--p-line);border-radius:6px;background:#fff;font-family:var(--mono);font-size:14px;line-height:1.6;color:var(--p-ink);overflow-x:auto;white-space:nowrap;text-align:center}
.zf-eq small{display:block;margin-top:8px;font-family:var(--serif);font-size:14.5px;white-space:normal;color:var(--p-sec);font-style:italic}
.zf-eq .k{color:var(--acc);font-weight:500}
.zf-eq .o{color:var(--p-sec)}

/* tables */
.zfig{margin:26px 0 30px}
.zcap{display:block;font-family:var(--serif);font-size:15px;line-height:1.5;color:var(--p-sec)}
.zcap b{font-family:var(--sans);font-weight:600;font-size:13.5px;color:var(--p-ink);margin-right:.35em}
.zcap-t{margin:0 0 8px}
.zcap-f{margin:12px 0 0}
.ztbl{overflow-x:auto}
.ztbl table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14.5px;line-height:1.45;border-top:1.5px solid var(--p-ink);border-bottom:1.5px solid var(--p-ink)}
.ztbl th{text-align:left;font-weight:600;padding:9px 14px 8px 0;border-bottom:1px solid var(--p-ink);white-space:nowrap}
.ztbl td{padding:8px 14px 8px 0;vertical-align:top;border-top:1px solid var(--p-line)}
.ztbl tr:first-child td{border-top:0}
.ztbl td.m{font-family:var(--mono);font-size:13px;background:none;padding:8px 14px 8px 0;color:var(--p-ink);white-space:normal}
.ztbl.dn td:first-child::before{content:"✓ ";color:var(--ok);font-weight:700}
.ztbl.dn td:last-child::before{content:"✕ ";color:var(--bad);font-weight:700}
.ztbl.not td:first-child{font-family:var(--mono);font-size:13.5px;white-space:nowrap;color:var(--acc)}

/* property */
.zprop{margin:18px 0;padding:18px 20px 16px;border:1px solid var(--p-ink);border-radius:2px;background:#fff}
.zprop h3{margin:0 0 6px;font-family:var(--sans);font-size:14.5px;font-weight:600}
.zprop h3 i{font-style:normal;font-family:var(--mono);font-weight:500;color:var(--acc);margin-right:.4em}
.zprop p{margin:0;font-style:italic;text-align:left}
.zprop .hb{margin-top:10px;font-style:normal;font-size:15.5px;color:var(--p-sec)}
.zprop .hb b{font-style:italic;color:var(--p-ink)}
.zprop .st{display:inline-block;margin-top:10px;padding:2px 9px;border-radius:999px;background:var(--warn-l);color:var(--warn);font-family:var(--mono);font-size:11.5px;font-style:normal}

/* notes */
.znote{margin:18px 0 22px;padding:14px 18px;border-radius:6px;background:var(--acc-l);font-size:16.5px;line-height:1.55}
.znote p{margin:0;text-align:left}
.zstat{display:flex;gap:12px;margin:18px 0 22px;padding:12px 16px;border-radius:6px;background:var(--warn-l);color:#5a3f00;font-family:var(--sans);font-size:14.5px;line-height:1.5}
.zstat::before{content:"Status";flex:none;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding-top:2px;color:var(--warn)}
.zquote{margin:22px 0;padding:6px 0 6px 22px;border-left:2px solid var(--p-ink);font-size:21px;font-style:italic;line-height:1.45}
.zquote small{display:block;margin-top:6px;font-family:var(--mono);font-size:12px;font-style:normal;color:var(--p-sec)}
.zcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}
.zcards div{padding:16px;border:1px solid var(--p-line);border-radius:6px;background:#fff}
.zcards b{display:block;font-family:var(--mono);font-weight:500;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.zcards span{display:block;font-size:16px;line-height:1.45}

/* listing */
.zcode{margin:24px 0 28px}
.zcode pre{margin:0;padding:16px 0;border-radius:6px;background:#0d1b30;color:#dfe5ef;font-family:var(--mono);font-size:13px;line-height:1.6;overflow-x:auto;counter-reset:ln}
.zcode pre span.l{display:block;padding:0 18px 0 0;white-space:pre}
.zcode pre span.l::before{counter-increment:ln;content:counter(ln);display:inline-block;width:3.2em;padding-right:1.2em;text-align:right;color:#4d607a;user-select:none}
.zcode .c{color:#7d8ea6;font-style:italic}.zcode .s{color:#9fe0c4}.zcode .k{color:#b8b2f0}.zcode .n{color:#ffd28a}
.zcode .zcap-t code{background:none;padding:0;color:var(--p-ink);font-size:.9em}
.zcode .pth{display:block;font-family:var(--mono);font-size:12px;color:var(--p-sec);margin-top:2px}

/* threats */
.zthr{border-top:1.5px solid var(--p-ink);border-bottom:1.5px solid var(--p-ink);font-family:var(--sans);margin:20px 0}
.zthr details{border-top:1px solid var(--p-line)}
.zthr details:first-child{border-top:0}
.zthr summary{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 20px;gap:16px;align-items:baseline;padding:11px 0;cursor:pointer;list-style:none;font-size:15px}
.zthr summary::-webkit-details-marker{display:none}
.zthr summary::after{content:"+";font-family:var(--mono);color:var(--p-sec);text-align:right}
.zthr details[open] summary::after{content:"−"}
.zthr summary b{font-weight:600}
.zthr summary span{color:var(--p-sec)}
.zthr details p{margin:0 0 12px;padding:10px 14px;border-radius:6px;background:var(--ok-l);font-size:14.5px;text-align:left}
.zthr details p::before{content:"Because ";font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ok);margin-right:6px}
.zthr-h{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 20px;gap:16px;padding:9px 0 8px;border-bottom:1px solid var(--p-ink);font-weight:600;font-size:14.5px}

/* prev / next */
.zpn{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:52px;padding-top:22px;border-top:1px solid var(--p-line);font-family:var(--sans)}
.zpn a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--p-line);border-radius:6px;color:var(--p-ink);transition:border-color .15s,background .15s}
.zpn a:hover{border-color:var(--acc);background:#fff;color:var(--p-ink)}
.zpn a small{font-family:var(--mono);font-size:11.5px;color:var(--p-sec)}
.zpn a b{font-weight:600;font-size:15px}
.zpn a.nx{text-align:right;grid-column:2}
.zrefs ol{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-family:var(--sans);font-size:15px}
.zrefs li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px}
.zrefs li i{font-style:normal;font-family:var(--mono);font-size:13px;color:var(--acc)}
.zrefs li:target{background:var(--acc-l)}

/* server view */
.zsrv-ban{display:none;margin:-30px 0 34px;padding:12px 16px;border-radius:6px;background:#1c2a3e;color:#dfe5ef;font-family:var(--mono);font-size:12.5px;line-height:1.5}
body.srv .zsrv-ban{display:block}
.zx{font-family:var(--mono)!important;font-size:.8em!important;letter-spacing:.02em;color:#7a8597!important;word-break:break-all;font-style:normal!important;font-weight:400!important}
@media(max-width:1100px){.zr-meta{display:none}}
@media(max-width:900px){.zv{grid-template-columns:minmax(0,1fr)}.zb-crumb{display:none}.zb-tree{display:inline-flex}
.zt{position:fixed;top:var(--bar);left:0;bottom:0;z-index:25;width:min(320px,86vw);height:auto;transform:translateX(-100%);transition:transform .3s ease-out;box-shadow:20px 0 60px rgba(0,0,0,.5)}
.zt.open{transform:none}.zr{padding:0 10px 60px}.zp{padding:40px 22px;font-size:17px}.zp p{text-align:left}.zcards,.zf-proofs{grid-template-columns:1fr}.zp h1{font-size:32px}}
@media(max-width:600px){.zb-view button{padding:0 10px;font-size:12.5px}.zb-btn{display:none}}
@media print{body{background:#fff}.zb,.zt,.zr-tabs,.zpn{display:none}.zv{display:block;padding:0}.zr{padding:0;background:none}.zp{box-shadow:none;max-width:none;padding:0}}
@media(prefers-reduced-motion:reduce){.zp.in{animation:none}.zt{transition:none}}

.zb-crumb a,.zb-crumb span{flex:none;white-space:nowrap}
.zb-crumb b{min-width:60px}

/* one continuous paper */
.zs{scroll-margin-top:110px}
.zs-rule{margin:64px 0 54px;border:0;border-top:1px solid var(--p-line)}
.zp .zh{margin:0;font-family:var(--serif);font-weight:600;font-size:32px;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}
.zp-end{margin-top:56px;text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#a3a3a3}
.zt-g{margin-bottom:14px}
.zt-g .zt-dir{padding:4px 10px 6px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.zt-g .zt-dir::before{display:none}
.zt-g ul{padding:0;margin:0;border:0}
.zt a{grid-template-columns:34px minmax(0,1fr);font-family:var(--sans);font-size:14px;line-height:1.3;padding:7px 10px}
.zt a span{white-space:normal}
.zt a em{font-family:var(--mono);font-size:11.5px;padding-top:1px}
.zt{font-family:var(--sans)}
.zrefs li.flash{animation:zFlash 1.4s ease-out}
@keyframes zFlash{0%{background:rgba(91,79,207,.25)}100%{background:transparent}}
