:root{--ink:#1a1b1e;--ink-soft:#55585e;--ink-faint:#8a8e96;--paper:#fbfaf8;--paper-raised:#fff;--rule:#e4e1db;--rule-soft:#efede8;--accent:#2f5d7c;--accent-soft:#eaf1f6;--up:#a8352c;--down:#1f6b4e;--measure:48rem;--wide:64rem;--sans:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "BIZ UDPGothic", Meiryo, system-ui, sans-serif;--mono:"SFMono-Regular", "SF Mono", Menlo, Consolas, "Noto Sans Mono", monospace;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--ink:#e6e4e0;--ink-soft:#a5a8ae;--ink-faint:#75787f;--paper:#16171a;--paper-raised:#1d1f23;--rule:#2e3136;--rule-soft:#26282c;--accent:#8ab4d0;--accent-soft:#1e2a33;--up:#e08a82;--down:#6fc4a0}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-feature-settings:"palt" 1;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.9}a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:from-font}a:hover{text-decoration-thickness:2px}.shell{max-width:var(--wide);margin:0 auto;padding:0 1.5rem}.lede,.group,.group__head,.questions,.colophon .shell{max-width:var(--measure);margin-inline:auto}.masthead{border-bottom:1px solid var(--rule);margin-bottom:3rem;padding:2.5rem 0 1.25rem}.masthead__inner{max-width:var(--measure);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin:0 auto;padding:0 1.5rem;display:flex}.masthead__title{letter-spacing:.04em;margin:0;font-size:1.0625rem;font-weight:600}.masthead__title a{color:var(--ink);text-decoration:none}.masthead__nav{gap:1.25rem;font-size:.8125rem;display:flex}.masthead__nav a{color:var(--ink-faint);letter-spacing:.04em;text-decoration:none}.masthead__nav a:hover{color:var(--accent)}.questions{border-bottom:1px solid var(--rule-soft);padding:1.5rem 0}.questions__source{color:inherit;flex-wrap:wrap;align-items:baseline;gap:.75rem;text-decoration:none;display:flex}.questions__source:hover .questions__title{color:var(--accent)}.questions__badge{background:var(--accent-soft);color:var(--accent);letter-spacing:.04em;white-space:nowrap;border-radius:2px;padding:.125rem .5rem;font-size:.75rem}.questions__title{font-size:.9375rem;font-weight:600}.questions__date{font-family:var(--mono);color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.75rem}.questions__list{max-width:var(--measure);color:var(--ink-soft);margin:.5rem 0 0;padding-left:1.25rem}.questions__list li{margin-bottom:.3em}.colophon{border-top:1px solid var(--rule);color:var(--ink-faint);margin-top:5rem;padding:1.5rem 0 3rem;font-size:.8125rem}.lede{color:var(--ink-soft);margin-block:0 3.5rem}.group{margin-block:0 3.5rem}.group__head{border-bottom:1px solid var(--rule);align-items:baseline;gap:.75rem;margin-bottom:.25rem;padding-bottom:.5rem;display:flex}.group__title{letter-spacing:.06em;margin:0;font-size:.9375rem;font-weight:600}.group__count{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.75rem}.group__empty{color:var(--ink-faint);margin:0;padding:1rem 0;font-size:.875rem}.entry{border-bottom:1px solid var(--rule-soft);color:inherit;grid-template-columns:6.5rem 1fr;gap:0 1.5rem;padding:1.125rem 0;text-decoration:none;display:grid}.entry:hover .entry__title{color:var(--accent)}.entry__date{font-family:var(--mono);color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-top:.25rem;font-size:.8125rem}.entry__title{margin:0;font-size:1.0625rem;font-weight:600;line-height:1.6}.entry__summary{color:var(--ink-soft);margin:.25rem 0 0;font-size:.875rem;line-height:1.75}@media (width<=34rem){.entry{grid-template-columns:1fr;gap:.25rem}.entry__date{padding-top:0}}.article__header{max-width:var(--measure);margin-inline:auto;margin-bottom:3rem}.article__meta{color:var(--ink-faint);align-items:center;gap:.75rem;margin-bottom:.75rem;font-size:.8125rem;display:flex}.badge{background:var(--accent-soft);color:var(--accent);letter-spacing:.04em;border-radius:2px;padding:.125rem .5rem;font-size:.75rem;display:inline-block}.article__method{color:var(--ink-faint);border-bottom:1px dotted var(--rule);text-decoration:none}.article__method:hover{color:var(--accent)}.article__title{letter-spacing:.01em;margin:0;font-size:1.75rem;line-height:1.5}.article__summary{color:var(--ink-soft);margin:1rem 0 0}.prose{grid-template-columns:minmax(0, 1fr) min(var(--measure), 100%) minmax(0, 1fr);display:grid}.prose>*{grid-column:2;margin-block:0 1.5em}.prose>:is(table,pre){width:100%;max-width:min(var(--wide), 100%);grid-column:1/-1;justify-self:center}.prose h2{border-bottom:1px solid var(--rule);margin-block:3rem 1rem;padding-bottom:.4rem;font-size:1.1875rem;line-height:1.6}.prose h3{margin-block:2.25rem .75rem;font-size:1.0625rem}.prose strong{font-weight:600}.prose code{font-family:var(--mono);background:var(--rule-soft);border-radius:3px;padding:.1em .35em;font-size:.875em}.prose pre{font-family:var(--mono);background:var(--paper-raised);border:1px solid var(--rule);border-radius:4px;padding:1rem 1.125rem;font-size:.8125rem;line-height:1.7;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose blockquote{border-left:2px solid var(--accent);color:var(--ink-soft);margin-inline:0;padding-left:1.25rem}.prose ul,.prose ol{padding-left:1.5rem}.prose li{margin-bottom:.4em}.prose hr{border:0;border-top:1px solid var(--rule)}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-feature-settings:"palt" 0;width:max-content;max-width:100%;font-size:.875rem;line-height:1.6;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--rule-soft);text-align:left;white-space:nowrap;vertical-align:baseline;padding:.5rem 1rem}.prose thead th{background:var(--rule-soft);border-bottom:1px solid var(--rule);color:var(--ink-soft);letter-spacing:.03em;font-size:.8125rem;font-weight:600;position:sticky;top:0}.prose tbody tr:nth-child(2n){background:color-mix(in srgb, var(--rule-soft) 45%, transparent)}.prose tbody th:first-child,.prose tbody td:first-child,.prose thead th:first-child{background:var(--paper);border-right:1px solid var(--rule-soft);position:sticky;left:0}.prose thead th:first-child{background:var(--rule-soft)}.prose tbody tr:nth-child(2n) :is(th,td):first-child{background:color-mix(in srgb, var(--rule-soft) 45%, var(--paper))}.prose tbody tr:last-child :is(th,td){border-bottom:0}.prose :is(th,td):first-child{padding-left:.75rem}.prose :is(th,td):last-child{padding-right:.75rem}
