:root{--ink:#2a2d33;--ink-2:#55585f;--ink-3:#7a7c82;--line:#e4e1db;--line-2:#efede9;--tint:#f8f7f4;--navy:#14284a;--link:#1b3560;--sans:"FF Latin","PingFang SC","Hiragino Sans GB","Source Han Sans SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;--song:"FF Song","Source Han Serif SC","Noto Serif CJK SC","Songti SC","STSong",serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body.hb{font-family:var(--sans);line-height:1.8;color:var(--ink);background:#fff;font-feature-settings:"kern";font-kerning:normal}.hb a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.28em;-webkit-text-decoration-color:rgba(27,53,96,.28);text-decoration-color:rgba(27,53,96,.28)}.hb a:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.hb a:focus-visible,.hb input:focus-visible,.hb summary:focus-visible{outline:2px solid var(--link);outline-offset:2px}.hb .wrap{max-width:1280px;margin:0 auto;padding:0 32px}.hb .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hb .skip{position:absolute;left:-9999px}.hb .skip:focus{left:12px;top:8px;background:#fff;padding:4px 8px;z-index:9}.hb .num,.hb table{font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.hb time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hb-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:84px}.hb .wordmark{font-family:var(--song);font-weight:400;font-size:27px;color:var(--navy);text-decoration:none;line-height:1;text-align:center;white-space:nowrap}.hb .wordmark span{display:block;font-family:var(--sans);font-size:12.5px;margin-top:8px}.hb-util{display:flex;justify-content:flex-end}.hb-nav .menu{display:flex;justify-content:center;gap:40px;height:46px;border-top:1px solid var(--line-2)}.hb-nav .menu a{display:flex;align-items:center;text-decoration:none;border-bottom:1px solid transparent;margin-bottom:-1px;white-space:nowrap}.hb-nav .menu a:hover{color:var(--navy)}.hb-nav .menu a.on{color:var(--navy);border-bottom-color:var(--champ)}.hb .search{position:relative;justify-self:start}.hb .search input{font:inherit;font-size:14px;width:220px;height:34px;padding:0 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink)}.hb .search input:focus{border-bottom-color:var(--ink-2);outline:0}.hb .search input::placeholder{color:var(--ink-3)}.hb .search-tg{display:none;background:none;border:0;color:var(--ink-2);width:36px;height:36px;align-items:center;justify-content:center;cursor:pointer;border-radius:2px}.hb .search-results{position:absolute;top:calc(100% + 4px);left:0;width:360px;max-height:420px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:2px;display:none;z-index:20}.hb .search-results.open{display:block}.hb .search-results a{display:block;padding:8px 12px;border-top:1px solid var(--line-2);font-size:14px;color:var(--ink);text-decoration:none}.hb .search-results a:first-child{border-top:0}.hb .search-results a small{display:block;font-size:12px;color:var(--ink-3)}.hb .search-results a.on,.hb .search-results a:hover{background:var(--tint)}.hb .search-results .none{padding:10px 12px;font-size:13px;color:var(--ink-3)}.hb .langsw{position:relative;font-size:14px}.hb .langsw summary{list-style:none;cursor:pointer;height:34px;display:flex;align-items:center;padding:0 2px;border-bottom:1px solid var(--line);white-space:nowrap}.hb .langsw summary::-webkit-details-marker{display:none}.hb .langsw div{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--line);padding:4px 0;min-width:150px;z-index:30;display:flex;flex-direction:column;border-radius:2px}.hb .langsw a{padding:5px 12px;color:var(--ink);text-decoration:none}.hb .langsw a:hover{background:var(--tint)}.hb .langsw a.on{font-weight:600;color:var(--navy)}.hb .mtbadge{border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-2);background:var(--tint)}.hb .mtbadge .wrap{padding-top:6px;padding-bottom:6px}.hb .hb-page{padding-top:28px;padding-bottom:96px}.hb .crumb{margin-bottom:56px}.hb .crumb a{color:var(--ink-2);text-decoration:none}.hb .crumb a:hover{text-decoration:underline}.hb-grid{display:grid;grid-template-columns:172px minmax(0,660px) 296px;grid-column-gap:44px;column-gap:44px;grid-template-areas:"toc head info" "toc main info";grid-template-rows:auto 1fr;align-items:start}.hb-head{grid-area:head}.hb-info{grid-area:info}.hb-toc{grid-area:toc;position:-webkit-sticky;position:sticky;top:32px}.hb-main{grid-area:main}.hb h1,.hb-main h2{font-family:var(--song);font-weight:400;color:var(--navy);letter-spacing:0}.hb h1{font-size:42px;line-height:1.28;margin-bottom:28px;text-wrap:balance;word-break:keep-all}.hb-lead{font-size:19px;line-height:1.85;color:var(--ink)}html:not([lang^=zh]) .hb-lead span+span:before{content:" "}html:not([lang^=zh]) .pg-src span{margin-right:.3em}.hb-upd{font-size:14px;color:var(--ink-3);margin-top:14px}.hb-main{font-size:17px;line-height:1.9}.hb-head{padding-bottom:8px}.hb-main section{margin-top:64px;padding-top:40px;border-top:1px solid var(--line);scroll-margin-top:16px}.hb-main h2{font-size:30px;line-height:1.35;margin-bottom:22px}.hb-main h3{font-family:var(--sans);font-size:17.5px;font-weight:600;line-height:1.5;color:var(--ink);margin:36px 0 10px;scroll-margin-top:16px}.hb-main p{margin:0 0 16px}.hb-main .pg-sub h3{margin-top:24px}.hb .pg-mk{color:var(--ink-3);font-weight:600;margin-left:1px}.hb-toc h2{font-family:var(--sans);font-size:13.5px;font-weight:400;color:var(--ink-3);margin:10px 0 12px}.hb-toc ol{list-style:none;border-left:1px solid var(--line)}.hb-toc a{display:block;padding:6px 0 6px 16px;margin-left:-1px;border-left:1px solid transparent;font-size:14.5px;line-height:1.5;color:var(--ink-2);text-decoration:none}.hb-toc a.on,.hb-toc a:hover{color:var(--navy)}.hb-toc a.on{border-left-color:var(--champ)}.hb-info{font-size:14px;line-height:1.65}.hb-info table{width:100%;border-collapse:collapse;border-top:1px solid var(--champ-rule);border-bottom:1px solid var(--champ-rule)}.hb-info caption{text-align:left;font-family:var(--song);font-weight:400;font-size:19px;line-height:1.4;color:var(--navy);padding:0 0 14px}.hb-info td,.hb-info th{vertical-align:top;text-align:left;padding:11px 0;border-top:1px solid var(--line-2)}.hb-info tr:first-child td,.hb-info tr:first-child th{border-top:0}.hb-info th{width:80px;font-weight:400;color:var(--ink-3);padding-right:12px}.hb-info td{color:var(--ink);overflow-wrap:anywhere}.hb-kv{list-style:none}.hb-kv li{display:flex;justify-content:space-between;gap:12px}.hb-unit{font-size:12.5px;color:var(--ink-3);margin-top:2px}.hb-act{margin-top:22px}.hb-btn{display:block;text-align:center;background:var(--navy);color:#fff!important;text-decoration:none!important;font-weight:500;font-size:15px;line-height:1.4;padding:13px 16px;border-radius:2px}.hb-btn:hover{background:#0d1d38}.hb-tw{overflow-x:auto;margin:22px 0 10px}.hb-table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.55}.hb-table caption{text-align:left;font-size:13.5px;color:var(--ink-3);padding:0 0 10px}.hb-table td,.hb-table th{text-align:left;padding:10px 14px 10px 0;border-bottom:1px solid var(--line-2);vertical-align:top}.hb-table thead th{font-weight:400;color:var(--ink-3);font-size:13.5px;border-bottom:1px solid var(--ink-3);padding-bottom:8px}.hb-table tbody tr:last-child td,.hb-table tbody tr:last-child th{border-bottom:1px solid var(--line)}.hb-table tbody th{font-weight:500;color:var(--ink)}.hb-table .num{text-align:right}.hb-table td:last-child,.hb-table th:last-child{padding-right:0}.hb-table small{display:block;font-size:12px;line-height:1.4;color:var(--ink-3);font-weight:400}.hb-table.grid td,.hb-table.grid th{padding:8px 8px 8px 0;white-space:nowrap;font-size:14px}.hb-table td.code{width:72px;color:var(--ink-3);letter-spacing:0}.hb-fn{font-size:14px;color:var(--ink-3)}.hb-list{list-style:none}.hb-list li{padding:16px 0;border-top:1px solid var(--line-2)}.hb-list li:first-child{border-top:0;padding-top:2px}.hb-list li>a{font-weight:500}.hb-list li p{margin:2px 0 0;font-size:15px;color:var(--ink-2)}.hb .pg-about{margin-top:72px;padding-top:20px;border-top:1px solid var(--line);font-size:14px;line-height:1.7;color:var(--ink-2)}.hb .pg-about p{margin:0 0 8px}.hb .pg-about .pv{color:var(--ink-3)}.hb .pg-about summary{cursor:pointer;color:var(--ink-2)}.hb .pg-about details>:not(summary){margin-top:8px}.hb .pg-about h3{font-size:14px;font-weight:600;color:var(--ink-2);margin:14px 0 4px}.hb .pg-about ul{margin-left:18px}.hb .hb-log{list-style:none;margin-left:0}.hb .hb-log time{color:var(--ink-3);margin-right:8px}.hb-foot{border-top:1px solid var(--line);color:var(--ink-3);font-size:13px;line-height:1.9;padding:56px 0 64px;background:var(--tint)}.hb-foot .wrap{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:40px;gap:40px}.hb-foot p{margin:0}.hb-foot .wordmark{text-align:left;font-size:22px;margin-bottom:14px}.hb-foot .wordmark span{margin-top:6px}.hb-foot ul{list-style:none}.hb-foot a{color:var(--ink-2)}.hb .tool-hero,.hb .wiki-hero .wrap,.hb main.wrap{display:block}.hb main.wrap{padding-top:8px;padding-bottom:88px}.hb .tool-hero,.hb .wiki-hero{padding:28px 0 8px}.hb .body .crumb,.hb .tool-hero .crumb,.hb .wiki-hero .crumb{margin-bottom:40px}.hb .body h1,.hb .tool-hero h1,.hb .wiki-hero h1{font-family:var(--song);font-weight:400;color:var(--navy);font-size:40px;line-height:1.3;margin-bottom:18px;text-wrap:balance;word-break:keep-all}.hb .lead,.hb .tool-hero>p{font-size:18px;line-height:1.85;color:var(--ink-2);max-width:700px}.hb .stats{display:flex;flex-wrap:wrap;gap:12px 48px;margin:32px 0 8px;padding-top:20px;border-top:1px solid var(--line)}.hb .stats div{font-size:13.5px;color:var(--ink-3)}.hb .stats b{display:block;font-family:var(--song);font-weight:400;font-size:30px;line-height:1.2;color:var(--navy);font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.hb .links,.hb .wiki-hero p:has(.btn){margin-top:22px}.hb .region-h,.hb .sec-h h2,.hb .sec-title h2,.hb h2.h2s{font-family:var(--song);font-weight:400;color:var(--navy);font-size:26px;line-height:1.35}.hb h2.h2s{margin:48px 0 16px}.hb .h2s small,.hb .region-h small{font-family:var(--sans);font-size:13.5px;color:var(--ink-3);margin-left:10px}.hb .sec-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin:72px 0 22px;padding-top:28px;border-top:1px solid var(--line)}.hb .sec-h .tabs{display:flex;flex-wrap:wrap;gap:4px 22px;font-size:14px;color:var(--ink-3)}.hb .sec-h .tabs a{color:var(--ink-2);text-decoration:none;border-bottom:1px solid transparent}.hb .sec-h .tabs a.on,.hb .sec-h .tabs a:hover{color:var(--navy);border-bottom-color:var(--ink-3)}.hb .region-h{margin:56px 0 14px;display:flex;align-items:baseline}.hb .legend,.hb .muted,.hb .note,.hb .small-note{color:var(--ink-3)}.hb .note{font-size:13.5px;line-height:1.75;margin-top:28px;max-width:760px}.hb .small-note{font-size:14px;margin-top:16px}.hb .emptystate{padding:32px 0;color:var(--ink-3)}.hb .clamp{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.hb .tscroll{overflow-x:auto}.hb .btn{display:inline;background:none;border:0;padding:0;color:var(--link);font-weight:500;text-decoration:underline;-webkit-text-decoration-color:rgba(27,53,96,.28);text-decoration-color:rgba(27,53,96,.28);text-underline-offset:.28em}.hb .btn.gold{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;padding:11px 20px;border-radius:2px;font-size:15px}.hb .btn.gold:hover{background:#0d1d38}.hb .al,.hb .lvl-pill,.hb .pill,.hb .pv,.hb .sample,.hb .tag,.hb .vb,.hb .wip{display:inline;font-size:12.5px;font-weight:400;color:var(--ink-3);background:none;border:0;padding:0;margin-left:6px;white-space:nowrap;letter-spacing:0;text-decoration:none}.hb .vb-ok{color:var(--ink-2)}.hb .lvl-pill:before,.hb .pill:before,.hb .pv:before,.hb .vb:before,.hb .wip:before{content:"（"}.hb .lvl-pill:after,.hb .pill:after,.hb .pv:after,.hb .vb:after,.hb .wip:after{content:"）"}.hb a.pill{color:var(--link);text-decoration:underline}.hb .kind{font-size:13.5px;color:var(--ink-3);margin-bottom:10px}.hb .info,.hb .meta{display:flex;flex-wrap:wrap;gap:2px 18px;font-size:13px;color:var(--ink-3);margin:0}.hb .info{margin:-6px 0 28px}.hb .gapbox,.hb .notice,.hb .tldr{margin:20px 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px;color:var(--ink-2)}.hb .gapbox p,.hb .tldr p{margin:4px 0 0}.hb .tldr b{font-family:var(--song);font-weight:400;font-size:17px;color:var(--navy)}.hb .chiprow,.hb .chips{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px}.hb .chips.small{font-size:13px;margin-top:6px}.hb .updlog{font-size:13.5px;color:var(--ink-2);margin:12px 0}.hb .updlog summary{cursor:pointer}.hb .updlog summary span{color:var(--ink-3);margin-left:10px}.hb .updlog ul{list-style:none;margin-top:6px}.hb .updlog li{display:flex;gap:12px;padding:3px 0}.hb .updlog time{color:var(--ink-3)}.hb .body table,.hb .ptable,.hb .res table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.55;font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.hb .body td,.hb .body th,.hb .ptable td,.hb .ptable th,.hb .res td,.hb .res th{text-align:left;padding:10px 14px 10px 0;border-bottom:1px solid var(--line-2);vertical-align:top}.hb .body thead th,.hb .ptable thead th,.hb .ptable tr:first-child th,.hb .res thead th{font-weight:400;color:var(--ink-3);font-size:13px;border-bottom:1px solid var(--ink-3);white-space:nowrap}.hb .ptable thead th{cursor:pointer}.hb .ptable td.num,.hb .ptable th.num{text-align:right}.hb .ptable .vh{writing-mode:vertical-rl;padding:8px 2px;font-size:12px}.hb .ptable.matrix td,.hb .ptable.matrix th{padding:5px 4px;text-align:center}.hb .ptable.matrix tbody th{text-align:left;white-space:nowrap;padding-right:10px}.hb .mx{color:var(--ink-3)}.hb .mv{color:var(--navy);font-weight:600}.hb .ptable small{display:block;color:var(--ink-3);font-size:12px}.hb .tfilter{margin:28px 0 12px}.hb .inp input,.hb .inp select,.hb .tfilter input{font:inherit;font-size:15px;height:40px;width:100%;max-width:420px;padding:0 4px;border:0;border-bottom:1px solid var(--ink-3);border-radius:0;background:transparent;color:var(--ink)}.hb .inp input:focus,.hb .inp select:focus,.hb .tfilter input:focus{outline:0;border-bottom-color:var(--navy)}.hb .toolnav{display:flex;flex-wrap:wrap;gap:4px 28px;margin-top:26px;font-size:15px;border-bottom:1px solid var(--line)}.hb .toolnav a{color:var(--ink-2);text-decoration:none;padding:8px 0;margin-bottom:-1px;border-bottom:1px solid transparent}.hb .toolnav a.on{color:var(--navy);border-bottom-color:var(--champ-rule)}.hb .toolnav a.soon{color:var(--ink-3)}.hb .cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:64px;gap:64px}.hb .post{padding:22px 0;border-bottom:1px solid var(--line-2)}.hb .post h3{font-family:var(--song);font-weight:400;font-size:21px;line-height:1.45;margin:6px 0}.hb .post h3 a{color:var(--navy);text-decoration:none}.hb .post h3 a:hover{text-decoration:underline}.hb .post p:not(.meta){font-size:15px;color:var(--ink-2);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hb aside .box{padding:18px 0 26px;border-top:1px solid var(--line)}.hb .box h4{font-family:var(--song);font-weight:400;font-size:19px;color:var(--navy);margin-bottom:8px}.hb .box p{font-size:14.5px;color:var(--ink-2);margin:0 0 10px}.hb .list{list-style:none;font-size:14.5px}.hb ol.list{counter-reset:n}.hb .list li{display:flex;flex-wrap:wrap;gap:2px 12px;padding:8px 0;border-top:1px solid var(--line-2)}.hb .list li:first-child{border-top:0}.hb ol.list li{counter-increment:n}.hb ol.list li:before{content:counter(n);font-family:var(--song);color:var(--ink-3);min-width:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hb .list li a{flex:1 1}.hb .list li .meta{flex-basis:100%;padding-left:26px}.hb .deadline{margin-left:auto;font-size:13px;color:var(--ink-3);white-space:nowrap}.hb .mustread{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:40px;gap:40px;margin:48px 0 0;padding-top:28px;border-top:1px solid var(--line)}.hb .mr{display:block;text-decoration:none;color:var(--ink)}.hb .mr .lbl,.hb .mr .lvtag{font-size:13px;color:var(--ink-3)}.hb .mr h3{font-family:var(--song);font-weight:400;font-size:22px;line-height:1.45;color:var(--navy);margin:6px 0 8px}.hb .mr p{font-size:14.5px;color:var(--ink-2)}.hb .mr .go2{display:inline-block;margin-top:10px;font-size:14px;color:var(--link);text-decoration:underline;-webkit-text-decoration-color:rgba(27,53,96,.28);text-decoration-color:rgba(27,53,96,.28)}.hb .mr:hover h3{text-decoration:underline}.hb .path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:40px;gap:40px}.hb .step .lvl{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.hb .step .lvl span{font-family:var(--song);color:var(--ink-3);font-size:18px}.hb .step h3{font-family:var(--song);font-weight:400;font-size:22px;color:var(--navy)}.hb .step .goal{font-size:14px;color:var(--ink-3);margin-bottom:12px}.hb .step ol{list-style:none;counter-reset:c}.hb .step ol li{counter-increment:c;display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--line-2);font-size:14.5px}.hb .step ol li:before{content:counter(c);font-family:var(--song);color:var(--ink-3);min-width:14px}.hb .step ol li a{flex:1 1}.hb .step .rt{margin-left:auto;font-size:12.5px;white-space:nowrap}.hb .step .rt,.hb .step ol li.todo{color:var(--ink-3)}.hb .step .all{display:inline-block;margin-top:10px;font-size:14px}.hb .bar{height:1px;background:var(--line);margin-top:16px}.hb .bar i{display:block;height:1px;background:var(--navy)}.hb .step small.covtxt{display:block;font-size:12.5px;color:var(--ink-3);margin-top:6px}.hb .cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px 40px;gap:8px 40px}.hb .cat{padding:18px 0 24px;border-top:1px solid var(--line-2)}.hb .cat h3{font-family:var(--song);font-weight:400;font-size:20px;color:var(--navy)}.hb .cat .cnt{font-size:13.5px;color:var(--ink-3);margin:2px 0 10px}.hb .cat .subs{display:flex;flex-direction:column;font-size:14.5px}.hb .cat .subs a,.hb .cat .subs span{display:flex;justify-content:space-between;gap:10px;padding:5px 0}.hb .cat .subs small{color:var(--ink-3)}.hb .cat .more{display:inline-block;margin-top:8px;font-size:14px}.hb .cat.empty h3{color:var(--ink-2)}.hb .wcat{display:flex;flex-wrap:wrap;gap:6px 26px;margin-top:26px;padding-top:14px;border-top:1px solid var(--line);font-size:14.5px}.hb .wcat a{color:var(--ink-2);text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent}.hb .wcat a.on,.hb .wcat a:hover{color:var(--navy)}.hb .wcat a.on{border-bottom-color:var(--navy)}.hb .wcat small{color:var(--ink-3);margin-left:5px;font-size:12.5px}.hb .ctrees{column-count:3;column-gap:40px;font-size:14.5px}.hb .ctree{page-break-inside:avoid;break-inside:avoid;padding:10px 0;border-top:1px solid var(--line-2)}.hb .ctree summary{cursor:pointer}.hb .ctree summary small{color:var(--ink-3);margin-left:8px}.hb .ctree ul{list-style:none;padding-left:14px}.hb .ctree li{padding:3px 0}.hb .series{display:grid;grid-template-columns:1fr 1fr;grid-gap:40px;gap:40px}.hb .ser .top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.hb .ser h3{font-family:var(--song);font-weight:400;font-size:20px;color:var(--navy)}.hb .ser ol,.hb .ser ul{list-style:none;font-size:14.5px}.hb .ser li{padding:6px 0;border-top:1px solid var(--line-2)}.hb .xtopics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 40px;gap:0 40px}.hb .xt{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line-2);font-size:14.5px}.hb .xt b{font-weight:400}.hb .xt p{margin:0}.hb .sync{margin-top:56px;padding-top:18px;border-top:1px solid var(--line);font-size:13.5px;color:var(--ink-3)}.hb .body code,.hb .commits code,.hb .sync code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--tint);padding:1px 5px;border-radius:2px;word-break:break-word}.hb .dom-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px 56px;gap:8px 56px;margin-top:40px}.hb .dsec{padding:22px 0 26px;border-top:1px solid var(--line);scroll-margin-top:16px}.hb .dsec h2{font-family:var(--song);font-weight:400;font-size:22px;color:var(--navy);margin-bottom:10px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.hb .dsec h2 small{font-family:var(--sans);font-size:13px}.hb .dsec .topic{padding:10px 0;border-top:1px solid var(--line-2)}.hb .dsec .topic h3{font-size:15px;font-weight:600;display:flex;justify-content:space-between;gap:10px}.hb .dsec .topic ul,.hb .soonlist{list-style:none;font-size:14.5px;margin-top:4px}.hb .dsec .topic li,.hb .soonlist li{padding:3px 0}.hb .alist{margin:8px 0 0}.hb .alist a.row{display:grid;grid-template-columns:1fr auto;grid-gap:18px;gap:18px;padding:18px 0;border-top:1px solid var(--line-2);text-decoration:none;color:var(--ink)}.hb .alist a.row b{font-family:var(--song);font-weight:400;font-size:19px;line-height:1.5;color:var(--navy);display:block}.hb .alist a.row:hover b{text-decoration:underline}.hb .alist a.row p{font-size:14.5px;color:var(--ink-2);margin:4px 0 0}.hb .alist .rm{font-size:12.5px;color:var(--ink-3);text-align:right;white-space:nowrap}.hb .alist h3.grp{font-family:var(--sans);font-size:14px;font-weight:600;color:var(--ink-2);padding:28px 0 6px;letter-spacing:0}.hb .art{display:grid;grid-template-columns:200px minmax(0,680px) 260px;grid-gap:48px;gap:48px;padding-top:28px}.hb .art .toc{position:-webkit-sticky;position:sticky;top:32px;align-self:start;font-size:14px}.hb .art .toc h5{font-size:13.5px;font-weight:400;color:var(--ink-3);margin:0 0 10px}.hb .art .toc nav{border-left:1px solid var(--line);max-height:60vh;overflow:auto}.hb .art .toc nav a{display:block;padding:5px 0 5px 14px;margin-left:-1px;border-left:1px solid transparent;color:var(--ink-2);text-decoration:none;line-height:1.5}.hb .art .toc nav a.on{color:var(--navy);border-left-color:var(--champ)}.hb .art .toc .lvl3{padding-left:26px;font-size:13px;color:var(--ink-3)}.hb .serbox{margin-top:28px;padding-top:14px;border-top:1px solid var(--line);font-size:13.5px}.hb .serbox b{font-weight:400;color:var(--ink-3)}.hb .serbox ol{list-style:none;margin-top:6px}.hb .serbox li{padding:4px 0}.hb .serbox li.cur a{color:var(--navy);text-decoration:none;font-weight:600}.hb .body{font-size:17px;line-height:1.9}.hb .post-page{max-width:700px;padding-top:28px}.hb .body h2{font-family:var(--song);font-weight:400;font-size:27px;line-height:1.4;color:var(--navy);margin:52px 0 16px;scroll-margin-top:16px}.hb .body h3{font-size:18px;font-weight:600;margin:34px 0 10px;scroll-margin-top:16px}.hb .body h4{font-size:16px;font-weight:600;margin:26px 0 8px}.hb .body p{margin:0 0 16px}.hb .body ol,.hb .body ul{margin:0 0 18px 22px}.hb .body li{margin-bottom:6px}.hb .body table{display:block;overflow-x:auto;margin:18px 0 26px}.hb .body blockquote{border-left:1px solid var(--champ-rule);padding:2px 0 2px 20px;margin:22px 0;color:var(--ink-2)}.hb .body blockquote p{margin:0}.hb .body hr{border:0;border-top:1px solid var(--line);margin:36px 0}.hb .body .meta-note{font-size:13px;color:var(--ink-3);margin-top:40px;padding-top:14px;border-top:1px solid var(--line)}.hb .body .answer{font-size:18px;color:var(--ink)}.hb .prevnext{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;margin-top:48px;padding-top:18px;border-top:1px solid var(--line)}.hb .prevnext a{text-decoration:none;color:var(--navy);font-family:var(--song);font-size:17px}.hb .prevnext a:last-child{text-align:right}.hb .prevnext small{display:block;font-family:var(--sans);font-size:12.5px;color:var(--ink-3)}.hb .rel{align-self:start;font-size:14px}.hb .rel .card{padding:16px 0 20px;border-top:1px solid var(--line)}.hb .rel .card h6{font-size:13.5px;font-weight:400;color:var(--ink-3);margin-bottom:8px}.hb .rel .card b{font-family:var(--song);font-weight:400;font-size:17px;color:var(--navy)}.hb .rel .card p{color:var(--ink-2);margin:4px 0 8px}.hb .rel ul{list-style:none}.hb .rel li{padding:4px 0}.hb .rel .card:not(.navy)>a{display:block;padding:4px 0;line-height:1.5}.hb .commits{list-style:none;font-size:14.5px}.hb .commits li{padding:5px 0;border-top:1px solid var(--line-2)}.hb .cov-grid,.hb .flygrid,.hb .pgrid,.hb .tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:0 40px;gap:0 40px}.hb .flygrid{grid-template-columns:repeat(4,minmax(0,1fr))}.hb .cov,.hb .flyc,.hb .pcard,.hb .tg{display:flex;gap:14px;align-items:baseline;padding:14px 0;border-top:1px solid var(--line-2);text-decoration:none;color:var(--ink)}.hb .cov .n,.hb .pcard .code{min-width:34px;font-size:13px;color:var(--ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hb .cov .n{font-family:var(--song);font-size:20px;color:var(--navy)}.hb .cov b,.hb .pcard b,.hb .tg h4{display:block;font-weight:500;font-size:15.5px;line-height:1.5;color:var(--navy)}.hb .cov small,.hb .flyc small,.hb .pcard small{display:block;color:var(--ink-3);font-size:12.5px}.hb .pcard .stats2{display:flex;flex-wrap:wrap;gap:0 12px;margin-top:2px;font-size:12.5px;color:var(--ink-3)}.hb .flyc:hover span,.hb .pcard:hover b,.hb .tg:hover h4{text-decoration:underline}.hb .tg{flex-direction:column;gap:2px}.hb .tg h4{font-family:var(--song);font-weight:400;font-size:19px}.hb .tg p{font-size:14px;color:var(--ink-2);margin:0}.hb .tg .wip{margin:0}.hb .tg .wip:after,.hb .tg .wip:before{content:none}.hb .tg.soon h4{color:var(--ink-2)}.hb .tools-grid{margin-top:56px}.hb .flyc{flex-wrap:wrap;gap:0 10px}.hb .flyc b{font-size:13px;color:var(--ink-3);font-weight:400;min-width:26px}.hb .flyc span{color:var(--navy)}.hb .flyc small{flex-basis:100%;padding-left:36px}.hb .cov{align-items:center}.hb .calc{margin-top:36px;padding:28px 0 8px;border-top:1px solid var(--line)}.hb .calc .form{display:grid;grid-template-columns:1fr auto 1fr 1fr 120px auto;grid-gap:18px 20px;gap:18px 20px;align-items:end}.hb .calc .form.sform{grid-template-columns:repeat(3,1fr) auto}.hb .calc .form2{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px 20px;gap:18px 20px;margin-top:22px}.hb .fld label{display:block;font-size:13px;color:var(--ink-3);margin-bottom:2px}.hb .fld p{font-size:13px;margin:0}.hb .inp{position:relative}.hb .inp input,.hb .inp select{max-width:none}.hb .inp .hint{display:block;font-size:12px;color:var(--ink-3);min-height:16px}.hb .ac-list{position:absolute;left:0;right:0;top:44px;background:#fff;border:1px solid var(--line);border-radius:2px;z-index:15;display:none;max-height:300px;overflow:auto}.hb .ac-list.open{display:block}.hb .ac-list a,.hb .ac-list div{display:block;padding:7px 10px;font-size:14px;color:var(--ink);text-decoration:none;cursor:pointer}.hb .ac-list .on,.hb .ac-list a:hover,.hb .ac-list div:hover{background:var(--tint)}.hb .swap{background:none;border:0;border-bottom:1px solid var(--line);height:40px;color:var(--ink-2);font:inherit;font-size:14px;cursor:pointer;padding:0 4px}.hb .go{background:var(--navy);color:#fff;border:0;border-radius:2px;height:42px;padding:0 26px;font:inherit;font-size:15px;font-weight:500;cursor:pointer}.hb .go:hover{background:#0d1d38}.hb .sinputs{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px 20px;gap:18px 20px;margin-top:20px}.hb .calc-msg{margin:26px 0 8px;font-size:15px;color:var(--ink-2)}.hb .calc-msg.err,.hb .err{color:#8a3324}.hb #out,.hb #s-out{margin-top:20px}.hb .res{overflow-x:auto}.hb .res tr.best td{background:var(--tint)}.hb .prog{display:flex;gap:10px;align-items:baseline}.hb .prog b{display:block;font-weight:500;color:var(--navy)}.hb .prog small{color:var(--ink-3);font-size:12.5px}.hb .miles{font-family:var(--song);font-weight:400;font-size:22px;color:var(--navy);font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.hb .meter{width:120px;height:1px;background:var(--line)}.hb .meter i{display:block;height:1px;background:var(--navy)}.hb .goal{font-size:15px}.hb .dsec2{margin-top:24px}.hb .deal{display:grid;grid-template-columns:180px minmax(0,1fr);grid-gap:28px;gap:28px;padding:22px 0;border-top:1px solid var(--line-2);scroll-margin-top:16px}.hb .dl-when b{display:block;font-family:var(--song);font-weight:400;font-size:18px;color:var(--navy)}.hb .dl-when span{font-size:13.5px;color:var(--ink-3)}.hb .deal h3{font-family:var(--song);font-weight:400;font-size:21px;color:var(--navy);margin-bottom:4px}.hb .deal p{margin:0 0 8px;font-size:14.5px}.hb .lim{font-size:14.5px;color:var(--ink-2);margin:6px 0 10px 18px}.hb .guide{max-width:820px}.hb .answer{font-size:18px;line-height:1.85;margin:24px 0}.hb .faq .qa{padding:16px 0;border-top:1px solid var(--line-2)}.hb .faq .qa h3{font-size:17px;font-weight:600;margin-bottom:4px}.hb .faq .qa p{margin:0;color:var(--ink-2)}.hb .hb-faq{list-style:none}.hb .hb-faq li{padding:9px 0;border-top:1px solid var(--line-2)}.hb .hb-faq li:first-child{border-top:0}.hb .ovt-all{min-width:1500px}.hb .ovt-all td:nth-child(n+3):nth-child(-n+4){white-space:nowrap}.hb .ovt td{font-size:13.5px}.hb table.res{display:block;overflow-x:auto;margin-top:12px}.hb table.res td{min-width:90px}.hb .trip{font-size:14.5px;color:var(--ink-2);padding:14px 0;border-top:1px solid var(--line)}.hb .trip .kv,.hb .trip .line{padding:2px 0}.hb .res-head{margin:18px 0 4px}.hb .res-head b,.hb .res-head h3{font-family:var(--song);font-weight:400;font-size:21px;color:var(--navy)}.hb .grey,.hb .na{color:var(--ink-3)}.hb .cond,.hb .src{font-size:13px;color:var(--ink-2)}.hb .home3{padding-top:36px}.hb .ph{display:block;background:var(--tint);overflow:hidden}.hb .ph img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.hb .home-lead{grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-gap:48px;gap:48px;align-items:start}.hb .lead-story h2{font-family:var(--song);font-weight:400;color:var(--navy);font-size:36px;line-height:1.3;margin:8px 0 12px;text-wrap:balance;word-break:keep-all}.hb .card h3 a,.hb .lead-story h2 a,.hb .row h3 a{color:var(--navy);text-decoration:none}.hb .card h3 a:hover,.hb .lead-story h2 a:hover,.hb .row h3 a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--champ-rule);text-decoration-color:var(--champ-rule);text-underline-offset:.22em}.hb .lead-story>p:not(.meta):not(.progs){font-size:17px;color:var(--ink-2);line-height:1.8;max-width:680px}.hb .lead-story .meta{margin-top:18px}.hb .progs{font-size:13px;margin-top:6px}.hb .sec-t{font-family:var(--song);font-weight:400;color:var(--navy);font-size:22px;padding-bottom:10px;border-bottom:1px solid var(--line)}.hb .row{display:grid;grid-template-columns:112px minmax(0,1fr);grid-gap:16px;gap:16px;padding:16px 0;border-bottom:1px solid var(--line-2);align-items:start}.hb .row h3{font-family:var(--song);font-weight:400;font-size:17px;line-height:1.45;margin:2px 0}.hb .row .meta{font-size:12.5px}.hb .lead-side .more{margin-top:14px;font-size:14px}.hb .sec{margin-top:80px}.hb .sec-head{gap:20px;padding-top:22px;border-top:1px solid var(--line);margin-bottom:24px}.hb .sec-head h2{font-family:var(--song);font-weight:400;color:var(--navy);font-size:28px}.hb .grid4{grid-gap:32px 28px;gap:32px 28px}.hb .card .meta{margin-top:14px;font-size:12.5px}.hb .card h3{font-family:var(--song);font-weight:400;font-size:19px;line-height:1.45;margin:4px 0}.hb .card>p:not(.meta){font-size:14px;color:var(--ink-2);margin:0}.hb .photo-note{margin-top:64px;font-size:13px}.hb .credits{font-size:14px;line-height:1.7}.hb .credits li{margin-bottom:4px}.hb .w-0{width:0}.hb .w-5{width:5%}.hb .w-10{width:10%}.hb .w-15{width:15%}.hb .w-20{width:20%}.hb .w-25{width:25%}.hb .w-30{width:30%}.hb .w-35{width:35%}.hb .w-40{width:40%}.hb .w-45{width:45%}.hb .w-50{width:50%}.hb .w-55{width:55%}.hb .w-60{width:60%}.hb .w-65{width:65%}.hb .w-70{width:70%}.hb .w-75{width:75%}.hb .w-80{width:80%}.hb .w-85{width:85%}.hb .w-90{width:90%}.hb .w-95{width:95%}.hb .w-100{width:100%}@media(max-width:1180px){.hb-grid{grid-template-columns:minmax(0,1fr) 280px;grid-template-areas:"head info" "toc info" "main info";grid-template-rows:auto auto 1fr}.hb-toc{position:static;margin-top:28px}.hb-toc ol{border-left:0;display:flex;flex-wrap:wrap;gap:4px 20px}.hb-toc a{padding:2px 0;margin:0}.hb-toc a,.hb-toc a.on{border-left:0}.hb-nav .menu{gap:28px}.hb .search input{width:180px}.hb .art{grid-template-columns:200px minmax(0,1fr)}.hb .art .rel{grid-column:2}.hb .flygrid{grid-template-columns:repeat(3,minmax(0,1fr))}.hb .calc .form{grid-template-columns:1fr auto 1fr}.hb .calc .form2{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.hb .art,.hb .calc .form,.hb .calc .form.sform,.hb .calc .form2,.hb .cats,.hb .cols,.hb .cov-grid,.hb .deal,.hb .dom-sections,.hb .mustread,.hb .path,.hb .pgrid,.hb .series,.hb .sinputs,.hb .tools-grid,.hb .xtopics{grid-template-columns:minmax(0,1fr)}.hb .mustread,.hb .path{gap:28px}.hb .home-lead{grid-template-columns:minmax(0,1fr);gap:36px}.hb .home3{padding-top:0}.hb .home3 .lead-story{margin:0 -20px}.hb .home3 .lead-story>:not(.ph){margin-left:20px;margin-right:20px}.hb .lead-story h2{font-size:27px;word-break:normal;overflow-wrap:anywhere}.hb .grid4{grid-template-columns:1fr 1fr;gap:28px 16px}.hb .card h3{font-size:16.5px}.hb .sec{margin-top:56px}.hb .sec-head h2{font-size:24px}.hb .body h1,.hb .tool-hero h1,.hb .wiki-hero h1{font-size:30px}.hb .lead,.hb .tool-hero>p{font-size:16.5px}.hb .stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px 20px;gap:14px 20px}.hb .stats b{font-size:24px}.hb .flygrid{grid-template-columns:1fr 1fr;gap:0 20px}.hb .ctrees{column-count:1}.hb .art .toc{position:static}.hb .art .rel{grid-column:auto}.hb .deal{gap:6px}.hb .sec-h{margin-top:48px}.hb .hb-carriers thead{display:none}.hb .hb-carriers,.hb .hb-carriers tbody{display:block;border:0}.hb .hb-carriers tbody{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:16px;column-gap:16px}.hb .hb-carriers tr{display:flex;gap:8px;border-bottom:1px solid var(--line-2)}.hb .hb-carriers td{border:0;padding:7px 0}.hb .hb-carriers td.code{width:auto;min-width:26px}.hb .hb-carriers td:last-child{display:none}.hb .wrap{padding:0 20px}.hb .hb-bar{grid-template-columns:1fr auto auto;height:52px;column-gap:6px}.hb .wordmark{grid-column:1;grid-row:1;text-align:left;font-size:21px}.hb .wordmark span{display:none}.hb .search{grid-column:2;grid-row:1;justify-self:end;position:static}.hb .search-tg{display:flex}.hb .search input{display:none;position:absolute;left:20px;right:20px;top:52px;width:auto;background:#fff;height:40px;z-index:25;padding:0 4px}.hb .search.open input{display:block}.hb .search-results{left:20px;right:20px;top:96px;width:auto}.hb-nav{position:relative}.hb-util{grid-column:3;grid-row:1}.hb .langsw summary{height:36px}.hb-nav .menu{flex-wrap:wrap;justify-content:flex-start;gap:2px 14px;height:auto;padding:8px 20px 10px;font-size:14.5px}.hb-nav .menu a{height:30px;font-size:14.5px}.hb .hb-page{padding-top:18px;padding-bottom:64px}.hb .crumb{margin-bottom:30px}.hb-grid{display:block}.hb h1{font-size:31px;margin-bottom:20px}.hb-lead{font-size:17.5px}.hb-info,.hb-toc{margin-top:40px}.hb-main{font-size:16.5px}.hb-main section{margin-top:48px;padding-top:32px}.hb-main h2{font-size:25px}.hb-table td,.hb-table th{padding:9px 10px 9px 0}.hb-foot{padding:40px 0 48px}.hb-foot .wrap{grid-template-columns:1fr;gap:18px}}html:not([lang^=zh]) .hb .lvl-pill:before,html:not([lang^=zh]) .hb .pill:before,html:not([lang^=zh]) .hb .pv:before,html:not([lang^=zh]) .hb .vb:before,html:not([lang^=zh]) .hb .wip:before{content:"("}html:not([lang^=zh]) .hb .lvl-pill:after,html:not([lang^=zh]) .hb .pill:after,html:not([lang^=zh]) .hb .pv:after,html:not([lang^=zh]) .hb .vb:after,html:not([lang^=zh]) .hb .wip:after{content:")"}.hb .nmark{font-size:12.5px;color:var(--ink-3);margin-left:6px;white-space:nowrap}.hb .nmark:before{content:"［"}.hb .nmark:after{content:"］"}.hb .nfacts{display:grid;grid-template-columns:8.5em minmax(0,1fr);margin:26px 0 34px;border-top:1px solid var(--line);font-size:15.5px;line-height:1.75}.hb .nfacts dd,.hb .nfacts dt{padding:9px 0;border-bottom:1px solid var(--line-2)}.hb .nfacts dt{color:var(--ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-right:16px}.hb .nfacts dd a{white-space:nowrap}.hb .nsrc{margin-left:20px;font-size:15px}.hb .nsrc li{margin-bottom:12px}.hb .nsrc li p{font-size:13.5px;color:var(--ink-3);margin:2px 0 0}.hb .nsrc a{word-break:break-word}@media (max-width:720px){.hb .nfacts{grid-template-columns:minmax(0,1fr)}.hb .nfacts dt{border-bottom:0;padding-bottom:0}}.notice.fresh-n{border-left:2px solid #8a6d3b;background:transparent;color:inherit;padding:.5rem .8rem;margin:.6rem 0;font-size:.92rem}.notice.hb-alert{margin:0 0 22px;border-top:2px solid #8a6d3b;border-bottom:1px solid var(--line);padding:14px 0 10px;font-size:15px}.hb-alert .hb-alert-h{font-weight:600;color:var(--ink);margin:0 0 6px}.hb-alert time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#8a6d3b;margin-right:.4em}:root{--ink:#111418;--ink-2:#3d434b;--ink-3:#6b7280;--line:#e5e7eb;--line-2:#f0f1f3;--tint:#f6f7f8;--navy:#111418;--link:#0a58ca;--champ:#0a58ca;--champ-rule:#d6e2f5;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Microsoft YaHei",Roboto,Helvetica,Arial,sans-serif;--song:var(--sans)}body.hb{font-size:16px;line-height:1.7;letter-spacing:0}.hb a{color:var(--link);text-decoration:none}.hb a:hover{text-decoration:underline;text-underline-offset:.2em}.hb .wrap{max-width:1200px;padding:0 24px}.hb h1,.hb h2,.hb h3{font-family:var(--sans);color:var(--ink);letter-spacing:-.01em}.hb h1{font-weight:800;font-size:clamp(28px,4vw,40px);line-height:1.2}.hb main h2{font-weight:750;font-size:22px;line-height:1.35}.hb main h3{font-weight:700;font-size:17px;line-height:1.45}.hb main h2 a,.hb main h3 a{color:var(--ink)}.hb main h2 a:hover,.hb main h3 a:hover{color:var(--link);text-decoration:none}.hb-nav{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;align-items:center;padding:0 max(24px,calc((100vw - 1200px)/2 + 24px))}.hb-nav .hb-bar{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:20px;height:60px;padding:0;max-width:none;margin:0;order:2;justify-self:end}.hb-nav .menu{order:1;justify-content:flex-start;gap:26px;height:60px;border:0;grid-column:1;grid-row:1;padding-left:200px}.hb-nav .menu a{font-size:15px;font-weight:600;color:var(--ink-2);border-bottom:2px solid transparent}.hb-nav .menu a.on{color:var(--ink);border-bottom-color:var(--ink)}.hb-nav .menu a:hover{color:var(--ink);text-decoration:none}.hb .wordmark{position:absolute;left:max(24px,calc((100vw - 1200px)/2 + 24px));top:0;height:60px;display:flex;align-items:center;gap:8px;font-size:21px;font-weight:800;letter-spacing:-.02em;color:var(--ink);text-align:left}.hb .wordmark span{display:inline;margin:0;font-size:13px;font-weight:500;color:var(--ink-3)}.hb-foot .wordmark{position:static;height:auto}.hb .search input{width:200px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--tint)}.hb .search input:focus{border-color:var(--ink-3);background:#fff}.hb .langsw summary{font-size:14px;color:var(--ink-2)}.hb .home3{padding-top:28px}.hb .home-lead{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);grid-gap:40px;gap:40px;padding-bottom:36px;border-bottom:1px solid var(--line)}.hb .lead-story .ph{border-radius:8px;aspect-ratio:16/10}.hb .card .ph img,.hb .lead-story .ph img,.hb .row .ph img{width:100%;height:100%;object-fit:cover;display:block}.hb .lead-story h2{font-size:clamp(24px,3vw,32px);font-weight:800;line-height:1.25;margin:10px 0}.hb .lead-story p{color:var(--ink-2);font-size:16px}.hb .meta{display:flex;gap:12px;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--link);margin-top:14px}.hb .meta span+span{color:var(--ink-3);font-weight:500}.hb .progs{font-size:13.5px;color:var(--ink-3);margin-top:8px}.hb .lead-side .sec-t{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:4px}.hb .lead-side .row{display:grid;grid-template-columns:96px 1fr;grid-gap:14px;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.hb .lead-side .row .ph{border-radius:6px;aspect-ratio:1/1}.hb .lead-side .row .meta{margin-top:0}.hb .lead-side .row h3{font-size:15px;line-height:1.45;margin-top:4px}.hb .sec{padding:36px 0 8px}.hb .sec-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:20px}.hb .sec-head h2{font-size:22px;font-weight:800}.hb .sec-head a{font-size:14px;font-weight:600}.hb .grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:24px;gap:24px}.hb .card{border:0;padding:0;background:none}.hb .card .ph{border-radius:8px;aspect-ratio:3/2}.hb .card h3{font-size:16.5px;line-height:1.4;margin-top:6px}.hb .card p:not(.meta){font-size:14px;color:var(--ink-2);margin-top:4px}.hb .photo-note{font-size:12.5px;color:var(--ink-3);margin:28px 0}.hb main{padding-bottom:56px}.hb .crumb{font-size:13px;color:var(--ink-3)}.hb table{border-collapse:collapse;font-size:14.5px}.hb th{font-weight:700;color:var(--ink);background:var(--tint);text-align:left}.hb td,.hb th{border-bottom:1px solid var(--line);padding:9px 12px}.hb .lvl-pill,.hb .pill{border:0!important;background:none!important;padding:0!important;border-radius:0!important;font-weight:700;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}.hb .btn,.hb .hb-btn,.hb button.go{background:var(--ink);color:#fff;border:0;border-radius:6px;font-weight:700}.hb input,.hb select{border-radius:6px}.hb .hb-foot{background:var(--tint);border-top:1px solid var(--line);margin-top:24px}@media (max-width:900px){.hb-nav{grid-template-columns:1fr;padding:0 16px}.hb .wordmark{left:16px}.hb-nav .hb-bar{height:56px}.hb-nav .menu{grid-row:2;padding-left:0;height:44px;overflow-x:auto;gap:20px;border-top:1px solid var(--line-2)}.hb .search input{width:150px}.hb .home-lead{grid-template-columns:1fr;gap:24px}.hb .grid4{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.hb .wrap{padding:0 16px}}@media (max-width:600px){.hb .search input,.hb .wordmark span{display:none}.hb .search-tg{display:flex}}.hb .hb-head h1,.hb .tool-hero h1,.hb .wiki-hero h1,.hb main h1{font-family:var(--sans);font-weight:800;letter-spacing:-.015em}.hb .hb-info th{white-space:nowrap;width:1%}.hb .card .ph:not(:has(picture)){display:none}.hb .home-lead{margin-bottom:0}.hb .tool-hero,.hb .wiki-hero{padding:20px 0 4px}.hb .body .crumb,.hb .tool-hero .crumb,.hb .wiki-hero .crumb{margin-bottom:18px}.hb .body h1,.hb .tool-hero h1,.hb .wiki-hero h1{color:var(--ink);font-size:clamp(26px,3.6vw,36px);line-height:1.25;margin-bottom:12px}.hb .tool-hero p,.hb .wiki-hero p{max-width:720px;color:var(--ink-2)}.hb .hb-page{padding-bottom:56px}.hb .hb-page,.hb .post-page{padding-top:16px}.hb .sec-h{margin:40px 0 16px;padding-top:18px}.hb .toolnav{margin-top:16px}.hb .toolnav a.on{border-bottom:2px solid var(--ink);color:var(--ink);font-weight:700}.hb .calc{margin-top:20px;padding:20px;border:1px solid var(--line);border-radius:10px;background:#fff}.hb .calc .inp input,.hb .calc .inp select{height:42px;border:1px solid var(--line);border-radius:6px;padding:0 10px;background:#fff;width:100%}.hb .calc .go{border-radius:6px;background:var(--ink);height:42px}.hb .swap{border:1px solid var(--line);border-radius:6px;height:42px;padding:0 10px}.hb .calc-msg{margin:16px 0 4px}.hb .body h2{margin-top:36px}.hb .body li,.hb .body p{max-width:720px}.hb .body blockquote{border-left:3px solid var(--ink);background:var(--tint);padding:10px 14px;margin:14px 0}@media (max-width:700px){.hb .calc{padding:14px;margin-top:14px}.hb .calc .form{grid-template-columns:1fr 44px 1fr;gap:10px 8px}.hb .calc .form .fld:nth-of-type(3){grid-column:1/span 2}.hb .calc .form .fld:nth-of-type(4){grid-column:3}.hb .calc .form .go{grid-column:1/-1;width:100%}.hb .swap{font-size:0;padding:0;width:44px;align-self:start;margin-top:20px}.hb .swap:after{content:"⇄";font-size:18px}.hb .calc .form2{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}.hb .calc .form2 .fld:first-child{grid-column:1/-1}.hb .calc .form2 .fld:last-child{display:none}.hb .fld label{font-size:12.5px}.hb .inp .hint{min-height:0}.hb .tool-hero p{font-size:15px}}.hb .mvc{border:1px solid var(--line);border-radius:6px;padding:20px;margin:20px 0}.hb .mvc-note{font-size:14px;color:var(--ink-3);margin:0 0 14px}.hb .mvc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px 20px;gap:14px 20px}.hb .mvc-grid label{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--ink-2)}.hb .mvc-grid input{font:inherit;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:6px}.hb .mvc-out{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.hb .mvc-out p{margin:4px 0}.hb .mvc-v{font-size:17px;margin-top:10px!important}@media (max-width:600px){.hb .mvc-grid{grid-template-columns:1fr}}