:root{--ink:#111214;--ink-2:#3c3f44;--ink-3:#6b6f75;--ink-4:#9aa0a6;--rule:#e2e2e2;--rule-2:#cdcdcd;--bg:#fff;--bg-2:#fafafa;--accent:#0b4f9e;--serif:Georgia,"Times New Roman","Source Serif 4","Songti SC",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Microsoft YaHei",sans-serif;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--maxw:790px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.7}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px}a{color:inherit}header{padding:80px 0 0}.kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;font-size:11px;font-weight:700}h1{font-family:var(--serif);letter-spacing:-.012em;color:var(--ink);max-width:22ch;font-size:35px;font-weight:600;line-height:1.22}.deck{max-width:62ch;color:var(--ink-2);margin-top:18px;font-size:15.5px;line-height:1.72}.byline{color:var(--ink-3);letter-spacing:.03em;margin-top:24px;font-size:12.5px}.byline .nm{color:var(--ink-2);font-weight:600}header .rule{background:var(--ink);border:0;height:1px;margin:28px 0 0}.tools{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:26px;display:flex}.tools input[type=search]{min-width:0;font-family:var(--sans);color:var(--ink);background:var(--bg-2);border:1px solid var(--rule-2);border-radius:2px;outline:none;flex:220px;padding:7px 10px;font-size:13.5px}.tools input[type=search]:focus{border-color:var(--accent);background:#fff}.tools .views{border:1px solid var(--rule-2);border-radius:2px;gap:2px;display:flex;overflow:hidden}.tools .views button{font-family:var(--sans);letter-spacing:.04em;background:var(--bg);color:var(--ink-3);cursor:pointer;border:0;padding:7px 11px;font-size:11.5px}.tools .views button[aria-pressed=true]{background:var(--ink);color:#fff}.chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.chip{font-family:var(--sans);letter-spacing:.02em;background:var(--bg-2);color:var(--ink-3);border:1px solid var(--rule-2);cursor:pointer;border-radius:11px;padding:3px 9px;font-size:11px;text-decoration:none}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.tools .status{font-family:var(--serif);color:var(--ink-4);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12.5px;font-style:italic}.tools .status[hidden]{display:none}main{padding:0 0 4px}section{padding:42px 0 0}section[hidden]{display:none}.sec-head{border-top:1px solid var(--ink);align-items:baseline;gap:10px;padding-top:12px;display:flex}.sec-head h2{letter-spacing:.15em;text-transform:uppercase;color:var(--ink);font-size:11.5px;font-weight:700}.sec-head .count{color:var(--ink-4);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-size:11.5px}.sec-head .hint{font-family:var(--serif);color:var(--ink-4);margin-left:auto;font-size:13px;font-style:italic}@media (width<=560px){.sec-head .hint{display:none}}.entry{border-bottom:1px solid var(--rule);margin:0 -10px;padding:20px 10px 19px;transition:background .13s;display:block}.entry[hidden]{display:none}.entry:hover{background:var(--bg-2)}.entry .t{font-family:var(--serif);letter-spacing:-.004em;color:var(--ink);align-items:baseline;gap:11px;font-size:18px;font-weight:600;line-height:1.36;display:flex}.entry .t a{color:inherit;text-decoration:none;transition:color .13s}.entry:hover .t a{color:var(--accent)}.entry .t .tag{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);border:1px solid var(--rule-2);border-radius:2px;flex:none;padding:2.5px 5px;font-size:9.5px;font-weight:700;position:relative;top:-1px}.entry .t .tag.en{color:var(--accent);border-color:#c6d5ea}.entry .t .arw{font-family:var(--sans);color:var(--ink-4);flex:none;margin-left:auto;font-size:13px;font-weight:400;transition:transform .14s,color .14s}.entry:hover .t .arw{color:var(--accent);transform:translate(3px)}.entry .d{max-width:66ch;color:var(--ink-3);margin-top:8px;font-size:14px;line-height:1.68}.entry .u{font-family:var(--mono);letter-spacing:.01em;color:var(--ink-4);overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:10px;font-size:11px;display:flex}.entry .u .d,.entry .u .from,.entry .u .tg{font-family:var(--sans);font-size:11.5px}.entry .u .tg a{color:var(--ink-3);border-bottom:1px solid var(--rule-2);text-decoration:none}.entry .u .tg a:hover{color:var(--accent);border-color:var(--accent)}.entry .u .from a{color:var(--ink-3);border-bottom:1px solid var(--rule-2);text-decoration:none}.entry .u .from a:hover{color:var(--accent);border-color:var(--accent)}.entry .u .src{font-family:var(--sans);color:var(--ink-4);border-bottom:1px solid #0000;margin-left:auto;font-size:11px;text-decoration:none}.entry .u .src:hover{color:var(--accent);border-color:var(--accent)}.empty{font-family:var(--serif);color:var(--ink-3);border-bottom:1px solid var(--rule);padding:26px 0;font-style:italic}.note{padding:64px 0 0}.note .back{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:22px;font-size:11.5px;font-weight:700;text-decoration:none;display:inline-block}.note .back:hover{text-decoration:underline}.note .note-byline{border-bottom:1px solid var(--ink);color:var(--ink-3);flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:20px;padding-bottom:22px;font-size:12.5px;display:flex}.note .note-byline .tagset{font-family:var(--mono);color:var(--ink-4);font-size:11.5px}.note .note-byline .tagset a{color:var(--ink-3);border-bottom:1px solid var(--rule-2);text-decoration:none}.note .note-byline .tagset a:hover{color:var(--accent);border-color:var(--accent)}.prose{color:var(--ink-2);font-size:15.5px;line-height:1.75}.prose>*+*{margin-top:15px}.prose h2{font-family:var(--serif);color:var(--ink);letter-spacing:-.006em;border-top:1px solid var(--ink);margin-top:52px;padding-top:14px;font-size:21px;font-weight:600;line-height:1.34}.prose h3{font-family:var(--serif);color:var(--ink);margin-top:34px;font-size:17px;font-weight:600;line-height:1.4}.prose h4{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-top:28px;font-size:12px;font-weight:700}.prose p{max-width:68ch}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--accent);border-bottom:1px solid #0b4f9e4d;text-decoration:none}.prose a:hover{border-bottom-color:var(--accent)}.prose ul,.prose ol{max-width:68ch;padding-left:1.35em}.prose li+li{margin-top:6px}.prose ul{padding-left:1.05em;list-style:none}.prose ul>li:before{content:"—";color:var(--ink-4);width:1.05em;margin-left:-1.05em;display:inline-block}.prose blockquote{border-left:2px solid var(--rule-2);color:var(--ink-3);padding:2px 0 2px 18px;font-style:italic}.prose hr{border:0;border-top:1px solid var(--rule);margin:40px 0}.prose code{font-family:var(--mono);background:var(--bg-2);border:1px solid var(--rule);border-radius:2px;padding:.1em .35em;font-size:.87em}.prose pre{background:var(--bg-2);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:2px;padding:15px 17px;overflow-x:auto}.prose pre.astro-code{border:1px solid var(--rule);border-left:3px solid var(--accent);background-color:var(--bg-2)!important}.prose pre code{background:0 0;border:0;padding:0;font-size:13px;line-height:1.62}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.prose th,.prose td{text-align:left;vertical-align:top;border-bottom:1px solid var(--rule);padding:9px 12px 9px 0}.prose th{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--ink);white-space:nowrap;font-size:11px;font-weight:700}.prose img,.prose svg{max-width:100%;height:auto}.prose figure{margin:32px 0}.prose figcaption{font-family:var(--serif);color:var(--ink-4);max-width:68ch;margin-top:12px;font-size:13px;font-style:italic;line-height:1.6}.prose .lede{color:var(--ink-2);max-width:64ch;font-size:17px;line-height:1.66}.prose h2+.lede{color:var(--ink-3);border-bottom:1px solid var(--rule);margin-top:8px;padding-bottom:14px;font-size:14.5px;line-height:1.66}:root{--ok:#2b6b45;--ok-bg:#f2f8f4;--cav:#8a5a00;--cav-bg:#fdf7ec;--bad:#9a2b2b;--bad-bg:#fdf3f3;--accent-soft:#eef3f8}.prose .meta-row{color:var(--ink-3);border-top:1px solid var(--rule);flex-wrap:wrap;gap:6px 28px;padding-top:14px;font-size:12.5px;display:flex}.prose .meta-row b{color:var(--ink);font-weight:600}.prose .small{color:var(--ink-3);font-size:12.8px;line-height:1.68}.prose h2 .n{color:var(--accent);font-variant-numeric:tabular-nums;margin-right:10px}.prose .box{background:var(--bg-2);border:1px solid var(--rule);border-radius:3px;margin:20px 0;padding:14px 18px;font-size:14px}.prose .box .t{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.prose .box.note{background:var(--accent-soft);border-color:#cfdff0}.prose .box.note .t{color:var(--accent)}.prose .box.finding{border:1px solid var(--rule);border-left:3px solid var(--cav);background:#fff}.prose .box.finding .t{color:var(--cav)}.prose .box p{max-width:68ch;margin:9px 0}.prose .box>:first-child{margin-top:0}.prose .box>:last-child{margin-bottom:0}.prose .pill{font-family:var(--sans);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:3px;padding:2px 7px;font-size:10.6px;font-weight:700;display:inline-block}.prose .pill.ok{color:var(--ok);background:var(--ok-bg);border-color:#c4ddcd}.prose .pill.cav{color:var(--cav);background:var(--cav-bg);border-color:#e8d3a8}.prose .pill.bad{color:var(--bad);background:var(--bad-bg);border-color:#ecc4c4}.prose .num{font-variant-numeric:tabular-nums;white-space:nowrap}.prose pre .cm{color:#6f7883}.prose pre .kw{color:#0b3d68;font-weight:600}.prose pre .mk{color:#8a5a00;font-weight:700}.prose figure svg{width:100%;height:auto;display:block}.prose h2+figure,.prose figure{margin:26px 0}.prose footer{border-top:1px solid var(--rule);color:var(--ink-3);margin-top:56px;padding-top:18px;font-size:12.6px;line-height:1.62}.prose footer p{max-width:68ch;margin:9px 0}.prose footer strong,.prose footer b{color:var(--ink-2)}.wrap>footer{border-top:1px solid var(--ink);color:var(--ink-3);flex-wrap:wrap;align-items:baseline;gap:10px 18px;margin-top:56px;padding:20px 0 76px;font-size:12.5px;display:flex}.wrap>footer a{color:var(--accent);text-decoration:none}.wrap>footer a:hover{text-decoration:underline}.wrap>footer .sp{color:var(--ink-4);margin-left:auto}@media (width<=600px){header{padding-top:54px}h1{max-width:none;font-size:27px}.entry .t{font-size:16.5px}.tools .status,footer .sp{margin-left:0}.note{padding-top:44px}.prose h2{margin-top:42px;font-size:19px}}
