:root{--paper:#fff;--ink:#0b0b0b;--faint:#666;--rule:#c9c9c6;--link:#1b2da6;--mark:#d4231b;--f-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--f-mono:"Courier New", Courier, ui-monospace, monospace;--f-serif:"Times New Roman", Times, Georgia, serif;--line:1.5px;--line-thin:1px;--grid:color-mix(in srgb, var(--ink) 50%, transparent);--glass:color-mix(in srgb, var(--paper) 62%, transparent);--measure:68ch;--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:2rem;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--paper:#121211;--ink:#ecece8;--faint:#9c9c97;--rule:#3a3a37;--link:#8c9cff;--mark:#ff5a4d}}*,:before,:after{box-sizing:border-box}html,body{background:var(--paper);height:100%}body{color:var(--ink);font-family:var(--f-sans);font-variant-numeric:tabular-nums;margin:0;font-size:14px;line-height:1.5}a{color:var(--link);text-underline-offset:2px;text-decoration-thickness:1px}a:hover,a:focus-visible{color:var(--mark)}:focus-visible{outline:1px solid var(--mark);outline-offset:2px}button{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{background:var(--paper);z-index:10;padding:4px 8px;position:absolute;top:-40px;left:16px}.skip:focus{top:8px}body.card-page{overflow:hidden}.frame{z-index:1;pointer-events:none;flex-direction:column;width:min(100% - 32px,100dvh - 16px);height:100dvh;margin:0 auto;padding-block:12px 10px;display:flex;position:relative;container-type:inline-size}.frame a,.frame button,.panel,.colophon{pointer-events:auto}.masthead,.stream-panel{-webkit-user-select:none;user-select:none}.masthead a,.stream-panel a{-webkit-user-drag:none}body.grabbing,body.grabbing *{cursor:grabbing!important}.masthead{--squash:.55;flex:none;padding-bottom:.8cqw;position:relative}.wordmark{text-transform:uppercase;white-space:nowrap;margin:0;font-weight:700;line-height:.72;overflow:visible}.wordmark a{height:100%;color:inherit;text-decoration:none;display:block}.wordmark a:hover,.wordmark a:focus-visible{color:var(--ink)}.wordmark{height:calc(21.88cqw * .72 * var(--squash))}.wordmark .fit{letter-spacing:-.05em;transform:scaleY(var(--squash));transform-origin:0 0;margin-left:-.013em;font-size:21.88cqw;display:inline-block}.wordmark a{transition:color .5s}.at-keep .wordmark a,.at-keep .wordmark a:hover{color:var(--mark)}.panels{flex:1;grid-template-columns:minmax(0,1fr) 25%;column-gap:12px;min-height:0;display:grid}.col{flex-direction:column;min-height:0;display:flex}.panel{background:var(--glass);backdrop-filter:blur(18px)saturate(1.1);flex-direction:column;min-width:0;min-height:0;padding:16px 18px;display:flex;overflow:auto}.rail{cursor:pointer;flex:none;width:100%;min-height:16px;padding:0;display:block;position:relative}.rail:before{content:"";background:var(--grid);transform-origin:0;height:2px;transition:background-color .3s,transform .5s cubic-bezier(.2,.8,.2,1);position:absolute;top:7px;left:0;right:0}.rail:hover:before,.rail:focus-visible:before{background:var(--mark);transform:scaleY(1.5)}.rail[aria-expanded=false]:before{transform:scaleX(.35)}.rail[aria-expanded=false]:hover:before,.rail[aria-expanded=false]:focus-visible:before{transform:scaleX(.5)scaleY(1.5)}.rail:focus-visible{outline:none}.rail-name{text-transform:uppercase;letter-spacing:-.01em;color:var(--faint);padding:calc(9px + .15em) 0 .3em;font-size:clamp(12px,2.1cqw,22px);line-height:1.5;transition:color .4s;display:block}.rail[aria-expanded=true] .rail-name{color:var(--ink)}.rail:hover .rail-name,.rail:focus-visible .rail-name{color:var(--mark)}.links-panel,.comments-panel{margin-bottom:4px}.box-tools{z-index:2;flex:none;align-self:flex-start;gap:2px;margin:-10px 0 4px -8px;display:flex;position:sticky;top:-16px}.box-tools button{color:var(--faint);padding:2px 8px;font-size:22px;line-height:1;transition:color .25s,transform .4s cubic-bezier(.3,1.6,.5,1)}.box-tools button[hidden]{display:none}.box-back:hover,.box-back:focus-visible{color:var(--mark);transform:translate(-3px)}.box-close:hover,.box-close:focus-visible{color:var(--mark);transform:rotate(90deg)}html:not(.js) .box-tools{display:none}.fold+.rail{margin-top:10px}.links-box section+section{margin-top:1em}.links-box ul{margin:.3em 0 0;padding:0;list-style:none}.links-box .entry{padding:.3em 0}.links-box .tags{margin-top:.4em}.rooms{flex:none}.rooms ul{text-transform:uppercase;letter-spacing:-.01em;flex-wrap:wrap;gap:.1em 1.1em;margin:0;padding:0;font-size:clamp(12px,2.1cqw,22px);list-style:none;display:flex}.rooms li{padding-bottom:.3em}.rooms a{color:var(--faint);text-decoration:none;transition:color .4s}.rooms li.active a,.rooms a[aria-current],.rooms a:hover,.rooms a:focus-visible{color:var(--mark)}.rooms .rule{background:var(--grid);height:2px;margin:7px 0 .15em;display:block}.fold{flex:0 auto;grid-template-rows:minmax(0,1fr);min-height:0;transition:grid-template-rows .65s cubic-bezier(.2,.8,.2,1),opacity .45s,visibility;display:grid;overflow:hidden}.fold>.panel{min-height:0}.js .fold.closed,.stream-closed #stream{opacity:0;visibility:hidden;pointer-events:none;grid-template-rows:minmax(0,0fr);transition:grid-template-rows .65s cubic-bezier(.2,.8,.2,1),opacity .45s,visibility 0s .65s}.fold:not(.closed)>.main-panel{animation:.62s cubic-bezier(.2,.8,.2,1) both panel-in}.fold:not(.closed)>.stream-panel.arrive{animation:.62s cubic-bezier(.2,.8,.2,1) 80ms both panel-in}.stream-panel.arrive li{animation:.52s cubic-bezier(.2,.8,.2,1) both entry-in;animation-delay:calc(.16s + var(--i,0) * 45ms)}@keyframes panel-in{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}@keyframes entry-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.main-panel .file>*{animation:.56s cubic-bezier(.2,.8,.2,1) both entry-in}.main-panel .file>:nth-child(2){animation-delay:60ms}.main-panel .file>:nth-child(3){animation-delay:.12s}.main-panel .file>:nth-child(n+4){animation-delay:.18s}.lbl{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0;font-size:11px;font-weight:400;display:block}.meta{color:var(--faint);font-size:.85em}.scroll{flex:1;min-height:0;overflow:auto}.main-panel{font-size:clamp(13px,1.7cqw,17px)}.file{max-width:var(--measure);flex-direction:column;gap:.9em;display:flex}.file h1{letter-spacing:-.03em;overflow-wrap:anywhere;margin:.1em 0 0;font-size:2.3em;font-weight:700;line-height:1.05}.lead{margin:0;font-size:1.12em}.file h2{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:.8em 0 0;font-size:11px;font-weight:400}.back{font-size:.9em;display:inline-block}.tags{flex-wrap:wrap;gap:.3em .9em;margin:0;padding:0;font-size:.85em;list-style:none;display:inline-flex}.list{margin:0;padding:0;list-style:none}.list li{justify-content:space-between;gap:1em;padding:.45em 0;display:flex}.list .meta{white-space:nowrap}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table{margin:0 0 .9em}.prose h2,.prose h3,.prose h4{letter-spacing:-.01em;text-transform:none;color:var(--ink);margin:1.5em 0 .4em;font-size:1.05em;font-weight:700}.prose ul,.prose ol{padding-left:1.4em}.prose blockquote{border-left:2px solid var(--grid);color:var(--faint);padding-left:.9em}.prose code{font-family:var(--f-mono);font-size:.9em}.prose pre{border:var(--line-thin) solid var(--grid);padding:.6em .8em;overflow-x:auto}.prose pre,.prose pre span{color:var(--ink)!important;background:0 0!important}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th{text-align:left;color:var(--faint);border-bottom:var(--line-thin) solid var(--grid);padding:.3em 1em .3em 0;font-size:.85em;font-weight:400}.prose td{border-bottom:var(--line-thin) solid var(--grid);padding:.4em 1em .4em 0}.prose hr{border:0;border-top:var(--line-thin) solid var(--grid)}.prose img{max-width:100%;height:auto}.stream-panel{font-size:clamp(12px,1.5cqw,15px)}.stream-panel ol{margin:.6em 0 0;padding:0;list-style:none}.entry{padding:.55em 0;text-decoration:none;transition:transform .38s cubic-bezier(.3,1.5,.5,1);display:block}.entry:hover,.entry:focus-visible{transform:translate(4px)}.entry .t{color:var(--ink);font-weight:500;line-height:1.3;display:block}.entry .d{color:var(--faint);margin-top:.2em;font-size:.82em;display:block}.entry:hover .t,.entry:focus-visible .t,.entry[aria-current] .t{color:var(--mark)}keep-graph{z-index:0;touch-action:none;user-select:none;cursor:grab;position:fixed;inset:0;overflow:hidden;container-type:size}keep-graph.panning{cursor:grabbing}keep-graph:focus-visible{outline:1px solid var(--mark);outline-offset:-4px}.world{transform-origin:0 0;position:absolute;inset:0}.world svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.world line{stroke:var(--grid);stroke-width:1px;vector-effect:non-scaling-stroke;transition:stroke .25s,stroke-width .25s}.world line.hot{stroke-width:1.5px}.world line.l-tag{stroke-dasharray:2 4}.world line.hot{stroke:var(--mark)}.node{transform:translate(-50%, calc(var(--sq) / -2));--sq:clamp(6px, min(.9cqw, 1.4cqh), 12px);touch-action:none;cursor:pointer;text-align:center;color:var(--ink);flex-direction:column;align-items:center;gap:.35em;padding:0 4px 4px;text-decoration:none;display:flex;position:absolute}.node .sq{width:var(--sq);height:var(--sq);background:var(--ink);border-radius:50%;transition:background-color .2s,transform .42s cubic-bezier(.3,1.6,.5,1)}.node .nm,.node .ds{transition:color .2s,transform .42s cubic-bezier(.3,1.6,.5,1)}.node:hover .sq,.node:focus-visible .sq,.node.held .sq{transform:scale(1.7)}.node:hover .nm,.node:focus-visible .nm{transform:translateY(2px)}.node.held{cursor:grabbing}.node .nm{white-space:nowrap;padding:0 3px;font-size:clamp(11px,min(1.2cqw,2cqh),18px);font-weight:700}.node .ds{color:var(--faint);white-space:nowrap;padding:0 3px;font-size:clamp(10px,min(.95cqw,1.6cqh),14px)}.node-note{--sq:clamp(4px, min(.55cqw, .9cqh), 8px)}.node-note .nm{color:var(--faint);font-size:clamp(10px,min(1cqw,1.7cqh),15px);font-weight:400}.node-tag{--sq:clamp(4px, min(.5cqw, .8cqh), 7px)}.node-tag .sq{background:var(--paper);border:var(--line-thin) solid var(--faint)}.node-tag .nm{color:var(--faint);font-size:clamp(10px,min(.9cqw,1.5cqh),14px);font-weight:400}.node-keep{--sq:clamp(10px, min(1.4cqw, 2.2cqh), 18px)}.node-keep .nm{text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(13px,min(1.6cqw,2.6cqh),24px)}.node:hover .sq,.node.hot .sq,.node:focus-visible .sq,.node.current .sq{background:var(--mark);border-color:var(--mark)}.node:hover .nm,.node.hot .nm,.node:focus-visible .nm,.node.current .nm{color:var(--mark)}.node:focus-visible{outline:none}.node:focus-visible .nm{outline:1px solid var(--mark)}.graph-fallback ul{margin:.2em 0 .8em 1em;padding:0;list-style:none}.graph-fallback p{margin:.6em 0 0}body:has(keep-graph[data-ready]) .graph-fallback{display:none}.colophon{background:var(--glass);backdrop-filter:blur(10px);text-align:center;color:var(--faint);flex:none;align-self:center;margin:8px 0 0;padding:2px 8px;font-size:11px;position:relative}.colophon a,.colophon button{color:var(--faint);text-decoration:underline}.colophon a:hover,.colophon button:hover,.colophon button:focus-visible{color:var(--mark)}@media (width<=860px){body.card-page{height:auto;overflow:auto}.frame{width:auto;height:auto;min-height:100dvh;margin:0 16px}.panels{flex:none;grid-template-columns:minmax(0,1fr)}.panel{overflow:visible}.main-panel,.stream-panel{flex:none;font-size:15px}.col{display:contents}.rooms{order:0}.rail[aria-controls=stream],#stream{order:1}.col-main>.rail,.col-main>.fold{order:2}.col-stream>*{order:3}.panels .rail{margin-top:10px}.panels .rail[aria-controls=stream]{margin-top:0}.colophon{margin-top:auto}.node .ds{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.panel,.scroll{scrollbar-width:thin;scrollbar-color:var(--grid) transparent}.node,.world line{transition:opacity .38s}keep-graph.focusing .node:not(.hot):not(.near):not(.current){opacity:.18}keep-graph.focusing .world line:not(.hot){opacity:.12}.node.near .sq{background:var(--ink)}.node.near .nm{color:var(--ink)}.node-note .nm,.node-tag .nm{transition:opacity .4s,color .2s,transform .42s cubic-bezier(.3,1.6,.5,1)}keep-graph.far .node-note:not(.hot):not(.current) .nm,keep-graph.far .node-tag:not(.hot) .nm{opacity:0}
