@import "https://fonts.googleapis.com/css2?family=Spline+Sans+Mono:wght@400;500;700&display=swap";:root{--bg:#020617;--fg:#f8fafc;--dim:#cbd5e1;--faint:#64748b;--line:#1e293b;--sig:#fdec7b;--warm:#e8b785;--teal:#1d7d9d;--cool:#38bdf8;--mono:"Spline Sans Mono", ui-monospace, Menlo, Consolas, monospace}html,body{background:var(--bg);height:100%;color:var(--fg);font-family:var(--mono);margin:0;overflow:hidden}body.scroll{overflow:auto}#field{z-index:0;display:block;position:fixed;inset:0}.ui{z-index:2;pointer-events:none;opacity:0;transition:opacity .5s;position:fixed;inset:0}.ui.on{opacity:1}.ui>*{pointer-events:auto}body.scroll .ui{position:absolute}.top{justify-content:space-between;align-items:flex-start;gap:20px;padding:24px 34px 0;display:flex;position:absolute;top:0;left:0;right:0}.mark{-webkit-user-select:none;user-select:none;margin:0;line-height:0}.mark canvas{display:block}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}nav{flex-wrap:wrap;justify-content:flex-end;gap:clamp(14px,2.2vw,28px);padding-top:14px;display:flex}nav button{all:unset;cursor:pointer;color:var(--dim);padding:4px 0;font-size:12px;position:relative}nav button:before{content:"./";color:var(--faint)}nav button:hover{color:var(--fg)}nav button[aria-current]{color:var(--sig)}nav button:focus-visible{outline:1px solid var(--sig);outline-offset:4px}.tag{letter-spacing:.16em;text-transform:uppercase;color:var(--faint);align-items:center;gap:14px;font-size:11px;display:flex;position:absolute;bottom:30px;left:34px}.tag b{color:var(--warm);font-weight:400}.cur{background:var(--sig);width:3px;height:12px;animation:1.2s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}pre.ascii-chart{font-family:var(--mono);white-space:pre;color:var(--faint);margin:20px 0 6px;font-size:12px;line-height:1.5;overflow-x:auto}pre.ascii-chart .v{color:var(--sig)}.page{scrollbar-width:none;opacity:0;width:min(66ch,100vw - 88px);max-height:calc(100vh - 236px);transition:opacity .26s;position:absolute;top:148px;left:34px;overflow:auto}.page::-webkit-scrollbar{display:none}.page.on{opacity:1}.page .toc{display:none}body[data-lay=centre] .page{left:50%;transform:translate(-50%)}body[data-lay=index] .page{align-items:flex-start;gap:clamp(40px,6vw,96px);width:min(100vw - 68px,1080px);display:flex;left:50%;right:auto;transform:translate(-50%)}body[data-lay=index] .page .side{flex:none;width:23ch;position:sticky;top:0}body[data-lay=index] .page .body{flex:1;max-width:66ch}body[data-lay=index] .page .toc{margin-top:4px;display:block}body[data-lay=index] .page .tl{letter-spacing:.04em;color:#38445c;border-top:1px solid var(--line);padding:5px 0;font-size:12px}body[data-lay=index] .page .tl:last-child{border-bottom:1px solid var(--line)}body[data-lay=index] .page .tl{cursor:pointer;outline:none;transition:color .15s}body[data-lay=index] .page .tl:hover,body[data-lay=index] .page .tl:focus-visible,body[data-lay=index] .page .tl[aria-current]{color:var(--dim)}body[data-lay=index] .page .tl[data-open]{color:var(--sig)}.page .eyebrow{letter-spacing:.18em;text-transform:uppercase;color:#38445c;margin-bottom:7px;font-size:11px}.page h1.t{letter-spacing:.02em;color:var(--fg);margin:0;font-size:26px;font-weight:500}.page canvas.rule{width:100%;margin:12px 0 34px;display:block}.page .sec{letter-spacing:.16em;text-transform:uppercase;align-items:baseline;gap:12px;margin:36px 0 12px;font-size:12px;font-weight:400;display:flex}.page .sec i{color:var(--sig);font-style:normal}.page .sec span{color:var(--dim)}.page .sec em{letter-spacing:0;text-transform:none;color:#38445c;margin-left:auto;font-style:normal}body[data-sub=num] .page .sec{margin-top:42px}body[data-sub=tick] .page .sec:before{content:"";background:var(--sig);flex:none;align-self:center;width:16px;height:2px}body[data-sub=tick] .page .sec i{color:#38445c}body[data-sub=hair] .page .sec{border-top:1px solid var(--line);margin-top:34px;padding-top:11px}body[data-sub=hair] .page .sec i{color:#38445c}body[data-sub=plain] .page .sec{letter-spacing:0;text-transform:none;margin-top:38px;font-size:14.5px}body[data-sub=plain] .page .sec i{display:none}body[data-sub=plain] .page .sec span{color:var(--fg)}body[data-sub=plain] .page .sec em{font-size:12px}.page p{color:var(--dim);margin:0 0 15px;font-size:14.5px;line-height:1.78}.page p.lede{color:var(--fg)}.page .lede{color:var(--fg);margin:0 0 30px;font-size:15px;line-height:1.7}.page .rows{grid-template-columns:max-content 1fr;align-items:baseline;gap:12px 26px;margin:0 0 30px;display:grid}.page .crow{display:contents}.page .ck{letter-spacing:.14em;text-transform:uppercase;color:#3d4c63;font-size:10.5px}.page .cv{color:var(--dim);font-size:14.5px}.page a.cv{color:var(--warm);border-bottom:1px solid #e8b78547;justify-self:start;padding-bottom:1px;text-decoration:none}.page a.cv:hover{color:var(--sig);border-bottom-color:var(--sig)}.page .rows.quiet .cv{color:#8b98ac;font-size:13.5px}@media (max-width:820px){.page .rows{grid-template-columns:1fr;gap:3px 0}.page .crow{margin-bottom:16px;display:block}.page .ck{margin-bottom:3px;display:block}}.page .entry{grid-template-columns:26px 1fr;column-gap:14px;margin:0 0 2px;display:grid}.page .entry .num{letter-spacing:.1em;color:#38445c;font-variant-numeric:tabular-nums;padding-top:20px;font-size:11px;transition:color .18s}.page .entry.open .num{color:var(--sig)}.page .entry .rest{background-image:linear-gradient(#3c4c68 0,#1e293b 38%,#1e293b00 88%);background-position:0 0;background-repeat:no-repeat;background-size:1px 100%;padding:20px 0 20px 18px}.page .entry.open .rest{background-image:linear-gradient(#7a6c35 0,#2b3a52 34%,#2b3a5200 92%)}.page .entry:last-of-type .rest{padding-bottom:8px}.page .ehead{cursor:pointer;outline:none}.page .nmrow{align-items:baseline;gap:12px;display:flex}.page .ehead h2{letter-spacing:.005em;white-space:nowrap;-webkit-tap-highlight-color:transparent;color:var(--sig);background-image:var(--titlefill);image-rendering:pixelated;-webkit-text-fill-color:transparent;background-position:0;background-repeat:no-repeat;background-size:auto;-webkit-background-clip:text;background-clip:text;margin:0;font-size:18px;font-weight:500}.page .ehead:hover h2,.page .ehead:focus-visible h2{-webkit-text-fill-color:var(--fg);color:var(--fg);background-image:none}.page .nmrow .lead{flex:1 1 0;align-self:center;width:100%;min-width:20px;height:11px;display:block}.page .nmrow .yr{letter-spacing:.14em;color:#4a5a75;font-variant-numeric:tabular-nums;flex:none;font-size:11px}.page .nmrow .tog{text-align:center;color:#38445c;flex:none;width:9px;font-size:13px;line-height:1;transition:color .18s}.page .nmrow .tog:before{content:"+"}.page .entry.open .nmrow .tog:before{content:"−"}.page .entry.open .nmrow .tog,.page .ehead:hover .tog{color:var(--sig)}.page .entry .what{color:#a3aec0;margin:9px 0 0;font-size:14px;line-height:1.6}.page .entry .meta{letter-spacing:.12em;text-transform:uppercase;color:#3d4c63;margin:7px 0 0;font-size:10.5px}.page .ebody{display:none}.page .entry.open .ebody{padding-top:18px;display:block}.page .entry .ebody p{margin:0 0 14px}.page .entry .go{letter-spacing:.05em;flex-wrap:wrap;gap:20px;margin:16px 0 0;font-size:12px;display:flex}.page .entry .go a{color:var(--warm);border-bottom:1px solid #e8b78547;padding-bottom:1px;text-decoration:none}.page .entry .go a:hover{color:var(--sig);border-bottom-color:var(--sig)}@media (max-width:820px){.page .entry{grid-template-columns:20px 1fr;column-gap:10px}.page .entry .rest{padding-left:13px}.page .ehead h2{white-space:normal;font-size:16px}.page .nmrow{flex-wrap:wrap}.page .nmrow .lead{display:none}}.page .none{letter-spacing:.14em;text-transform:uppercase;color:#38445c;font-size:12px}@media (max-width:820px){.page{width:calc(100vw - 32px);max-height:calc(100vh - 200px);top:128px;left:16px}body[data-lay=centre] .page,body[data-lay=index] .page{width:calc(100vw - 32px);display:block;left:16px;right:auto;transform:none}body[data-lay=index] .page .side{width:auto;position:static}body[data-lay=index] .page .body{max-width:none}body[data-lay=index] .page .toc{display:none}}@media (prefers-reduced-motion:reduce){.cur{animation:none}}.hint{letter-spacing:.16em;text-transform:uppercase;color:#334155;font-size:10px;position:absolute;bottom:30px;right:34px}@media (max-width:820px){.panel{border-top:1px solid var(--line);padding:24px 18px 30px 22px;-webkit-mask-image:none;mask-image:none}}@media (prefers-reduced-motion:reduce){.cur{animation:none}}.menubtn,.menu,.scrim{display:none}.menubtn{z-index:6;appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-content:center;align-items:center;width:46px;height:46px;padding:0;position:fixed;top:12px;right:10px}.menubtn canvas{display:block}.scrim{z-index:5;pointer-events:none;opacity:0;background:radial-gradient(130% 78% at 100% 0,#020617f0 0%,#020617b8 38%,#02061700 76%);transition:opacity .22s;position:fixed;inset:0}body.menu-open .scrim{opacity:1}@keyframes menuIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.menu{z-index:6;flex-direction:column;align-items:flex-end;gap:1px;animation:.2s both menuIn;position:fixed;top:56px;right:14px}.menu button{all:unset;cursor:pointer;text-align:right;color:var(--dim);-webkit-tap-highlight-color:transparent;padding:9px 2px;font-size:13.5px;display:block}.menu button:before{content:"./";color:#46566f}.menu button[aria-current],.menu button[aria-current]:before{color:var(--sig)}@media (max-width:820px){.menubtn{display:flex}.scrim{display:block}body.menu-open .menu{display:flex}nav{display:none}.top{padding:18px 68px 0 16px}.hint{display:none}.tag{letter-spacing:.12em;flex-wrap:nowrap;gap:8px;font-size:10px;display:flex;bottom:20px;left:16px;right:16px}.tag b,.tag span:nth-of-type(3),body.reading .tag{display:none}.page{width:calc(100vw - 32px);max-height:calc(100vh - 128px);padding-bottom:8px;top:104px;left:16px}body[data-lay=centre] .page,body[data-lay=index] .page{width:calc(100vw - 32px);display:block;left:16px;right:auto;transform:none}body[data-lay=index] .page .side{width:auto;position:static}body[data-lay=index] .page .body{max-width:none}body[data-lay=index] .page .toc{display:none}.page p{font-size:14.5px;line-height:1.72}.page .eyebrow{margin-bottom:6px;font-size:10.5px}.page h1.t{font-size:21px}.page canvas.rule{margin:10px 0 26px}.page .entry{margin:0;display:block}.page .entry .num{letter-spacing:.16em;padding:0 0 5px;font-size:10px}.page .entry .rest{background-image:none;padding:0 0 26px}.page .entry+.entry{border-top:1px solid var(--line);padding-top:24px}.page .ehead{padding:2px 0}.page .ehead h2{white-space:normal;font-size:15px}.page .nmrow{flex-wrap:wrap}.page .nmrow .lead{display:none}.page .entry .what{margin-top:7px;font-size:13.5px}.page .entry .meta{letter-spacing:.1em;font-size:10px}.page .entry .ebody{padding-top:14px}.page .entry .go{flex-direction:column;align-items:flex-start;gap:0;margin-top:14px}.page .entry .go a{color:var(--warm);border-bottom:0;padding:11px 0;font-size:13px;display:block}.page .entry .go a:before{content:"→ ";color:#46566f}.page .rows{grid-template-columns:1fr;gap:3px 0}.page .crow{margin-bottom:16px;display:block}.page .ck{margin-bottom:3px;display:block}.page .cv{font-size:14.5px}.page a.cv{padding:6px 0;display:inline-block}}
