@scope(html[data-pg=article],html[data-pg=terms]){.nav.grid-nav .nav-in{max-width:none!important;padding:22px var(--gutter) 0 var(--gutter)!important}#topProg{background:var(--ink);z-index:1200;width:0;height:1px;display:none;position:fixed;top:0;left:0}@media (max-width:900px){#topProg{display:block}.rail .prog,.rail .hint{display:none}.nav.grid-nav .nav-in{padding:22px var(--gutter) 0 var(--gutter)!important}}.wrap{z-index:1;padding:0 var(--gutter);position:relative}.hero{grid-template-columns:repeat(12,1fr);padding:4rem 0;display:grid;position:relative}.hero:after{content:"";background:color-mix(in srgb, rgb(var(--ink-rgb)) 9%, var(--bg));width:100vw;height:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hero .art{aspect-ratio:4/3;background:rgba(var(--ink-rgb), .07);grid-column:1/5;align-self:start;margin-right:44px}.hero .art img{object-fit:cover;width:100%;height:100%;display:block}.hero .hd{grid-column:5/13;align-self:end}.hero .hd h1,.hero .standfirst{max-width:720px}.hero h1{font-family:var(--sans);font-weight:500;font-size:var(--type-h1);line-height:var(--type-h1-lh);text-wrap:balance}.hero .standfirst{font-family:var(--sans);font-size:var(--type-sub);color:var(--ink-2);line-height:var(--type-sub-lh);text-wrap:balance;max-width:720px;margin-top:.75rem}.hero .meta{font-family:var(--mono);grid-template-columns:repeat(8,minmax(0,1fr));margin-top:30px;display:grid}.hero .meta .m1{grid-column:1/3}.hero .meta .m2{grid-column:3/5}.hero .meta .m3{grid-column:5/7}.cat-chip{width:fit-content;font-family:var(--mono);border:1px solid var(--line-soft);color:var(--ink-3);margin-bottom:14px;padding:2px 8px;font-size:.75rem;display:inline-block}.hero .meta>div{overflow-wrap:anywhere;min-width:0;padding-right:1rem}.hero .meta .lb{font-family:var(--mono);letter-spacing:.02em;color:var(--ink-3);margin-bottom:7px;font-size:.75rem;line-height:normal}.hero .meta .vv{font-family:var(--sans);color:var(--ink);text-indent:-1.2em;padding-left:1.2em;font-size:.875rem}.hero .meta .vv:before{font-family:var(--mono);content:"└ ";color:var(--ink-4);text-indent:0;width:1.2em;display:inline-block}.body-grid{grid-template-columns:repeat(12,1fr);padding-top:4rem;display:grid}.rail{font-family:var(--mono);flex-direction:column;grid-column:1/5;align-self:start;min-height:calc(100dvh - 4rem);margin-top:-2px;margin-right:32px;display:flex;position:sticky;top:2rem}.rail .share{margin-top:auto;padding-top:26px}.rail .share a{font-size:var(--type-tree);line-height:var(--type-tree-lh);color:var(--ink-2);cursor:pointer;padding:3px 0;display:block}.rail .share a:hover{color:var(--ink)}.rail .share a:before{content:"└ ";color:var(--ink-4)}.rail-title{font-family:var(--sans);font-weight:500;font-size:var(--type-handoff);text-wrap:balance;opacity:0;max-width:40ch;max-height:0;transition:opacity .4s ease, transform .4s var(--ease-out), max-height .4s ease, margin .4s ease;margin-right:-32px;line-height:1.5;overflow:hidden;transform:translateY(8px)}.rail-title.on{opacity:1;max-height:240px;margin-bottom:24px;transform:none}.rail .th{font-family:var(--mono);letter-spacing:.02em;color:var(--ink-3);margin-bottom:12px;font-size:.75rem;line-height:normal}.rail a{width:fit-content;max-width:100%;font-size:var(--type-tree);line-height:var(--type-tree-lh);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;padding:3px 0;display:block;overflow:hidden}.rail a:hover,.rail a.on{color:var(--ink)}.rail a .br{color:var(--ink-4);margin-right:10px}.rail a.on .br{color:var(--ink-2)}.rail a.sub{padding-left:18px}.rail .prog{color:var(--ink-4);white-space:nowrap;margin-top:26px;font-size:.875rem;overflow:hidden}.rail .prog b{color:var(--ink);font-weight:400}.rail .pct{color:var(--ink-2);margin-left:8px}.rail .hint{letter-spacing:.02em;color:var(--ink-3);margin-top:12px;font-size:.75rem}.prose{grid-column:5/13;min-width:0;max-width:732px;margin-left:-32px;padding-left:32px}#body>.art-section:first-child>p:first-child{margin-top:-2px}.prose p a{overflow-wrap:break-word}.prose :is(p,li,td,th,.cap,.mx) a{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3);transition:color .15s,text-decoration-color .15s}.prose :is(p,li,td,th,.cap,.mx) a:is(:hover,:focus-visible){color:var(--ink);text-decoration-color:#0000}.prose code:not(pre code){font-family:var(--mono);color:var(--ink);background:rgba(var(--ink-rgb), .05);border:1px solid var(--line-soft);overflow-wrap:break-word;padding:.0625em .25em;font-size:.875em;line-height:1}.prose .art-section>:is(ul,ol){max-width:660px;color:var(--ink-2);margin-bottom:14px;padding-left:1.25rem;font-size:1rem;line-height:1.7}.prose .art-section>ul{list-style:outside}.prose .art-section>ol{list-style:decimal}.prose .art-section>:is(ul,ol)>li+li{margin-top:6px}.prose .q-block.q-excerpt{border-left:1px solid var(--line);margin:1.75rem 0;padding-left:1.25rem}.prose .q-block.q-excerpt p{color:var(--ink-2);text-indent:0;hanging-punctuation:none}.prose .q-block.q-excerpt .mention{color:var(--ink)}.prose :is(.art-diagram,.art-thread)>.cap{font-family:var(--sans);color:var(--ink-3);padding-top:10px;font-size:.875rem;line-height:1.6}.prose .art-xpost{max-width:660px;margin:26px 0}.prose .art-xpost blockquote{border:1px solid var(--line-soft);font-family:var(--sans);color:var(--ink);margin:0;padding:14px 16px 16px;font-size:1rem;line-height:1.7}.prose .art-xpost blockquote p{color:var(--ink);margin:0 0 14px}.prose .art-xpost blockquote p.art-xpost-by{font-family:var(--mono);font-size:var(--type-data);color:var(--ink-3);margin:0}.prose .art-xpost .art-xpost-by a{color:inherit;text-decoration:none}.prose .art-xpost .art-xpost-by a:hover{color:var(--ink)}.prose .art-section:last-child,.prose .art-section:last-child>:last-child{margin-bottom:0}.prose .art-section h2{margin-bottom:20px;font-size:.875rem}.more-sec{margin-top:110px;padding-top:10px}.rel-lbl{font-family:var(--mono);color:var(--ink);margin-bottom:2rem;font-size:1rem;font-weight:400;line-height:1.1}@media (max-width:900px){.rel-lbl{margin-bottom:1.5rem}}.tabs-line{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:12px 2px}a.frow{color:inherit;text-decoration:none}.frow{font-family:var(--mono);cursor:pointer;border-bottom:1px solid var(--line-soft);grid-template-columns:repeat(12,minmax(0,1fr));align-items:baseline;padding:1rem 2px;font-size:.875rem;transition:background .12s;display:grid}.frow .f-l{color:var(--ink-3);font-size:var(--type-data);transition:transform .18s var(--ease-out);grid-column:1/3}.frow .f-t{font-family:var(--sans);font-weight:400;font-size:var(--type-h5);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;grid-column:5/12;min-width:0;padding-right:24px;line-height:1.5;overflow:hidden}.frow .f-d{text-align:right;color:var(--ink-3);font-size:var(--type-data);transition:transform .18s var(--ease-out);grid-column:12/13}.frow{transition:opacity .25s}#feed:hover .frow:not(:hover){opacity:.35}.frow{position:relative}.frow:hover:before{content:"";background:color-mix(in srgb, rgb(var(--ink-rgb)) 9%, var(--bg));height:1px;position:absolute;top:-1px;left:0;right:0}.vm-row{font-family:var(--mono);letter-spacing:.02em;color:var(--ink-2);cursor:pointer;grid-template-columns:repeat(12,minmax(0,1fr));padding:16px 2px 0;font-size:.75rem;display:grid}.vm-row:before{content:"";grid-column:1/3}.vm-row:hover{color:var(--ink)}@media (max-width:900px){.hero .standfirst{font-size:var(--type-sub-m)}.hero h1{line-height:var(--type-h1-lh-m)}.wrap{padding:0 var(--gutter)}.body-grid{display:block}.hero{flex-direction:column;display:flex}.hero .hd{order:1;margin-left:16.6667%}.hero .meta{grid-template-columns:repeat(10,minmax(0,1fr))}.hero .meta .m1{grid-column:1/3}.hero .meta .m2{grid-column:3/5}.hero .meta .m3{grid-column:5/7}.hero .art{order:3;width:100%;margin:26px 0 0}.body-grid{grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.rail{grid-column:1/3;align-self:start;min-height:0;margin-bottom:0;margin-right:16px;display:block;position:sticky;top:2rem}.rail-title,.rail>.th,.rail #tree{display:none}.rail .share{margin-top:2px;padding-top:0}.prose{grid-column:3/13;max-width:716px;margin-left:-16px;padding-left:16px}.rail .prog,.rail .hint{display:none}}@media (max-width:1100px) and (min-width:901px){.rail{min-height:calc(100dvh - 4rem);top:2rem}}@media (max-width:1100px){.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}.nav.grid-nav .nav-in{padding:22px var(--gutter) 0 var(--gutter)!important}}@media (max-width:640px){.hero{padding:2.66667rem 0}.body-grid{padding-top:2.66667rem}#feed .frow{flex-wrap:wrap;gap:8px 1rem;display:flex}#feed .frow .f-t{white-space:normal;order:1;width:100%;padding-right:0}#feed .frow .f-l{order:2}#feed .frow .f-d{text-align:left;order:3}}a.frow:focus-visible{border-bottom-color:rgb(var(--ink-rgb));border-radius:0;outline:none}a.frow:focus-visible:before{content:"";background:rgb(var(--ink-rgb));height:1px;position:absolute;top:-1px;left:0;right:0}.vm-row:focus-visible{border-radius:0;outline:none;position:relative}.vm-row:focus-visible:after{content:"";background:rgb(var(--ink-rgb));height:1px;position:absolute;top:-1px;left:0;right:0}#body h2,#body h3{scroll-margin-top:2rem}.hero.no-art .art{display:none}}[data-tpl=article] .art-anim{display:block}[data-tpl=article] .art-anim-still{display:none}[data-tpl=article] .art-anim-box{position:relative}[data-tpl=article] .art-anim-play{background:#1414134d;justify-content:center;align-items:center;display:none;position:absolute;inset:0}[data-tpl=article] .art-anim-pill{background:var(--paper);height:36px;color:var(--bg);font-family:var(--sans);align-items:center;padding:8px 12px;font-size:1rem;line-height:1;transition:box-shadow .2s ease-in-out;display:flex}[data-tpl=article] .art-anim-play:hover>.art-anim-pill{box-shadow:0 0 0 2px var(--paper)}[data-tpl=article] .art-anim-play:focus-visible{outline:none}[data-tpl=article] .art-anim-play:focus-visible>.art-anim-pill{box-shadow:0 0 0 2px var(--bg), 0 0 0 3px rgb(var(--ink-rgb))}[data-tpl=article] .art-anim-toggle{font-family:var(--mono);color:var(--ink-3);align-self:flex-start;margin-right:auto;font-size:.75rem;position:relative;top:2px}[data-tpl=article] .art-anim-toggle:hover{color:var(--ink)}[data-tpl=article] .art-video :is(video,.art-anim-box,.cap>b,.art-anim-toggle){-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion:reduce){[data-tpl=article] .art-anim{display:none}[data-tpl=article] .art-anim-still,[data-tpl=article] .art-fig[data-anim-chosen] .art-anim{display:block}[data-tpl=article] .art-fig[data-anim-chosen] .art-anim-still,[data-tpl=article] .art-fig:not([data-anim-chosen]) .art-anim-toggle{display:none}[data-tpl=article] .art-fig:not([data-anim-chosen]) .art-anim-play:not([hidden]){display:flex}}#app:has(>.nav.nav-collapsed)~[data-tpl=article] .hero .hd{margin-left:0}#app:has(>.nav.nav-collapsed)~[data-tpl=article] .hero .meta{grid-template-columns:repeat(3,1fr);gap:12px 1rem}#app:has(>.nav.nav-collapsed)~[data-tpl=article] .hero .meta>div{grid-column:auto;padding-right:0}@media (max-width:1000px){#app:has(>.nav.nav-ssr)~[data-tpl=article] .hero .hd{margin-left:0}#app:has(>.nav.nav-ssr)~[data-tpl=article] .hero .meta{grid-template-columns:repeat(3,1fr);gap:12px 1rem}#app:has(>.nav.nav-ssr)~[data-tpl=article] .hero .meta>div{grid-column:auto;padding-right:0}}@media (max-width:440px){#app:has(>.nav:is(.nav-collapsed,.nav-ssr))~[data-tpl=article] .hero .meta{grid-template-columns:max-content minmax(0,1fr);align-items:baseline;gap:8px 1rem}#app:has(>.nav:is(.nav-collapsed,.nav-ssr))~[data-tpl=article] .hero .meta>:is(.m1,.m2,.m3){display:contents}#app:has(>.nav:is(.nav-collapsed,.nav-ssr))~[data-tpl=article] .hero .meta .lb{margin-bottom:0}#app:has(>.nav:is(.nav-collapsed,.nav-ssr))~[data-tpl=article] .hero .meta .vv:before{content:none}#app:has(>.nav:is(.nav-collapsed,.nav-ssr))~[data-tpl=article] .hero .meta .vv{text-indent:0;padding-left:0}}@media (max-width:900px){#app:has(>.nav:is(.nav-collapsed,.nav-ssr))~[data-tpl=article] .body-grid{flex-direction:column;display:flex}#app:has(>.nav:is(.nav-collapsed,.nav-ssr))~[data-tpl=article] .rail{order:2;margin-top:40px;margin-right:0;position:static}#app:has(>.nav:is(.nav-collapsed,.nav-ssr))~[data-tpl=article] .prose{order:1;max-width:700px;margin-left:0;padding-left:0}}
