:root{--paper:#FAFAFB;--surface:#FFFFFF;--ink:#1A1D21;--ink-2:#4A505C;--muted:#8A909C;--line:#E7E5E0;--brand:#2F49B8;--brand-soft:#EEF1FB;--radius:6px;--code-bg:#F5F6F9;--code-inline-bg:#F1F2F6;--quote-bg:#F8F9FC}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}*,:after,:before{box-sizing:border-box}body.ispt-body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%}h1,h2,h3,h4,p{margin-top:0}.ispt-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgba(250,250,251,.95);border-bottom:1px solid var(--line)}.ispt-header__inner{max-width:1120px;margin:0 auto;padding:0 24px;height:58px;display:flex;align-items:center;gap:34px}.ispt-brand{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:600;white-space:nowrap}.ispt-brand__mark{width:14px;height:14px;border-radius:3px;background:var(--brand);display:inline-block}.ispt-nav{display:flex;gap:26px;font-size:14px;color:var(--ink-2)}.ispt-nav a:hover{color:var(--brand)}.ispt-header__right{margin-left:auto}.ispt-search{font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}.ispt-search:hover{color:var(--brand)}.ispt-search .i-tabler-search{display:inline-block;width:15px;height:15px}.ispt-main{max-width:1120px;margin:0 auto;padding:30px 24px 72px}.ispt-main--home{max-width:1040px}.ispt-intro{padding:22px 0 32px;border-bottom:1px solid var(--line)}.ispt-intro__title{font-size:26px;font-weight:600;margin:0 0 8px;letter-spacing:-.01em}.ispt-intro__sub{color:var(--muted);margin:0 0 20px;font-size:14px}.ispt-searchbox{max-width:520px}.ispt-filter,.ispt-searchbox input{width:100%;padding:10px 13px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-size:14px;outline:none}.ispt-filter:focus,.ispt-searchbox input:focus{border-color:var(--brand)}.ispt-searchbox__hint{display:block;margin-top:7px;font-size:12px;color:var(--muted)}.ispt-section{margin-top:36px}.ispt-section__title{font-size:14px;font-weight:600;color:var(--ink-2);margin:0 0 14px;display:flex;align-items:baseline;gap:10px}.ispt-section__title span{font-size:12px;color:var(--muted);font-weight:400}.ispt-dirs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.ispt-dir{display:block;padding:13px 15px;border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--radius);background:var(--surface);transition:border-color .15s ease,transform .15s ease}.ispt-dir:hover{border-color:var(--brand);transform:translateY(-1px)}.ispt-dir__name{font-size:14px;font-weight:600;display:block}.ispt-dir__meta{font-size:12px;color:var(--muted);margin-top:3px;display:block}.ispt-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.ispt-feat{display:block;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.ispt-feat:hover .ispt-feat__title{color:var(--brand)}.ispt-feat__img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-bottom:1px solid var(--line)}.ispt-feat__body{padding:11px 14px 14px}.ispt-feat__cat{font-size:11px;color:var(--brand)}.ispt-feat__title{font-size:14px;font-weight:600;line-height:1.5;margin-top:5px;display:block}.ispt-list{border-top:1px solid var(--line)}.ispt-row{display:grid;grid-template-columns:52px minmax(0,1fr) 100px;grid-gap:12px;gap:12px;align-items:baseline;padding:11px 4px;border-bottom:1px solid var(--line);font-size:14px}.ispt-row:hover .ispt-row__title{color:var(--brand)}.ispt-row__date{font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ispt-row__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ispt-row__cat{text-align:right}.ispt-row__cat,.ispt-row__excerpt{font-size:12px;color:var(--muted);white-space:nowrap}.ispt-row__excerpt{overflow:hidden;text-overflow:ellipsis}.ispt-row--doc{grid-template-columns:52px minmax(0,1fr);align-items:start;padding:13px 4px}.ispt-row__main{min-width:0;display:block}.ispt-row--doc .ispt-row__title{display:block;font-weight:500}.ispt-row--doc .ispt-row__excerpt{display:block;margin-top:3px}.ispt-pager{gap:18px;margin-top:22px}.ispt-pager a{border:1px solid var(--line);border-radius:var(--radius);padding:6px 12px;background:var(--surface)}.ispt-pager a:hover{border-color:var(--brand);color:var(--brand)}.ispt-more{margin-top:14px;text-align:right;font-size:13px}.ispt-more a{color:var(--brand)}.ispt-page-head{padding:10px 0 20px;border-bottom:1px solid var(--line)}.ispt-page-head h1{font-size:26px;font-weight:600;margin:0 0 6px;letter-spacing:-.01em}.ispt-page-head p{color:var(--muted);font-size:13px;margin:0}.ispt-filter{max-width:420px;margin-top:18px}.ispt-arch-month{font-size:13px;font-weight:600;color:var(--ink-2);margin:26px 0 8px}.ispt-empty{padding:40px 0;text-align:center;color:var(--muted);font-size:14px}.ispt-main--post{max-width:1120px}.ispt-post__grid{display:grid;grid-template-columns:minmax(0,760px) 220px;grid-gap:48px;gap:48px;align-items:start}.ispt-post__main{min-width:0}.ispt-post__meta{display:flex;flex-wrap:wrap;gap:9px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:14px}.ispt-post__cat{color:var(--brand)}.ispt-post h1{font-size:30px;line-height:1.35;font-weight:600;margin:0 0 12px;letter-spacing:-.01em}.ispt-post__excerpt{color:var(--ink-2);font-size:15px;margin:0 0 16px}.ispt-post__tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}.ispt-tag{font-size:12px;color:var(--ink-2);background:var(--brand-soft);border-radius:4px;padding:2px 8px}.ispt-tag:hover{color:var(--brand)}.ispt-prose{font-size:16px;line-height:1.85;color:var(--ink);max-width:100%;overflow-wrap:break-word}.ispt-prose h1,.ispt-prose h2,.ispt-prose h3,.ispt-prose h4{font-weight:600;line-height:1.4;margin:32px 0 14px}.ispt-prose h1{font-size:24px}.ispt-prose h2{font-size:22px;border-bottom:1px solid var(--line);padding-bottom:8px}.ispt-prose h3{font-size:18px}.ispt-prose p{margin:0 0 18px}.ispt-prose pre{background:var(--code-bg)!important;border:1px solid var(--line);border-radius:var(--radius);padding:15px;overflow:auto;font-size:13px;line-height:1.7;margin:0 0 20px}.ispt-prose pre code{background:none!important;padding:0}.ispt-prose :not(pre)>code{background:var(--code-inline-bg);border-radius:3px;padding:2px 5px;font-size:13px}.ispt-prose table{width:100%;border-collapse:collapse;font-size:14px;margin:18px 0;display:block;overflow-x:auto}.ispt-prose td,.ispt-prose th{border:1px solid var(--line);padding:8px 10px}.ispt-prose th{background:var(--code-bg)}.ispt-prose blockquote{border-left:3px solid var(--brand);margin:18px 0;padding:6px 16px;color:var(--ink-2);background:var(--quote-bg)}.ispt-prose img{border-radius:var(--radius)}.ispt-prose ol,.ispt-prose ul{padding-left:24px;margin:0 0 18px}.ispt-prose li{margin:4px 0}.ispt-prose hr{border:none;border-top:1px solid var(--line);margin:30px 0}.ispt-post__toc{position:-webkit-sticky;position:sticky;top:82px;font-size:13px}.toc-container{position:relative;border-left:1px solid var(--line);padding-left:15px}.ispt-post__toc h2{font-size:12px;color:var(--muted);font-weight:600;margin:0 0 10px}.toc{max-height:70vh;overflow:auto;scrollbar-width:thin}.toc ul{list-style:none;padding-left:0;margin:0}.toc li{padding:2px 0}.toc a{display:block;padding:2px 4px 2px 0;color:var(--ink-2);transition:color .15s ease}.toc a.is-current,.toc a:hover{color:var(--brand)}.toc a.is-current{font-weight:600}.toc-mark{position:absolute;left:-1px;top:0;width:2px;height:0;border-radius:2px;background:var(--brand);opacity:0;pointer-events:none;transition:transform .22s cubic-bezier(.4,0,.2,1),height .22s ease,opacity .18s ease}@media (prefers-reduced-motion:reduce){.toc-mark{transition:none}}.ispt-post__nav{display:flex;justify-content:space-between;gap:20px;margin-top:42px;padding-top:20px;border-top:1px solid var(--line);font-size:13px}.ispt-post__nav a{color:var(--ink-2);max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ispt-dirlink,.ispt-post__nav a:hover{color:var(--brand)}.ispt-dirlink{display:inline-block;margin-top:22px;font-size:13px;border:1px solid var(--line);border-radius:var(--radius);padding:7px 13px;background:var(--surface)}.ispt-dirlink:hover{border-color:var(--brand)}#comment{margin-top:48px;padding-top:24px}#comment,.ispt-footer{border-top:1px solid var(--line)}.ispt-footer{margin-top:36px}.ispt-footer__inner{max-width:1120px;margin:0 auto;padding:22px 24px 12px;display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}.ispt-footer__inner a:hover{color:var(--brand)}.ispt-footer__spacer{flex:1 1}.ispt-footer__legal{max-width:1120px;margin:0 auto;padding:0 24px 22px;display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}.ispt-footer__legal a{color:var(--muted);text-decoration:none;border-bottom:1px dotted var(--line)}.ispt-footer__legal a:hover{color:var(--brand);border-bottom-color:var(--brand)}.ispt-footer__dot{color:var(--line)}@media (max-width:900px){.ispt-post__grid{grid-template-columns:minmax(0,1fr);gap:0}.ispt-post__toc{display:none}.ispt-dirs,.ispt-featured{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.ispt-header__inner{gap:15px;padding:0 16px;height:54px}.ispt-nav{gap:14px;font-size:13px}.ispt-search span:last-child{display:none}.ispt-main{padding:18px 16px 56px}.ispt-dirs,.ispt-featured{grid-template-columns:minmax(0,1fr)}.ispt-row{grid-template-columns:46px minmax(0,1fr)}.ispt-row__cat,.ispt-row__excerpt{display:none}.ispt-intro__title{font-size:21px}.ispt-page-head h1{font-size:22px}.ispt-footer__inner,.ispt-footer__legal{padding-left:18px;padding-right:18px}.ispt-post h1{font-size:24px}.ispt-prose{font-size:15px;width:100%;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.ispt-main{max-width:100%;overflow-x:clip}.ispt-post__grid{display:block!important;width:100%}.ispt-post__main{width:100%;max-width:100%;min-width:0}.ispt-post__toc{display:none!important}.ispt-post h1,.ispt-post__excerpt{overflow-wrap:anywhere}.ispt-prose table{display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important}.ispt-prose pre{max-width:100%;overflow-x:auto}}.ispt-search{border:0;background:none;cursor:pointer;font-family:inherit;padding:0}.ispt-search .i-tabler-search:before{content:"\1F50D";font-style:normal}.ispt-prose h2,.ispt-prose h3{scroll-margin-top:76px}.ispt-prose :not(pre)>code,.ispt-prose pre code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.ispt-modal{position:fixed;inset:0;z-index:60;background:rgba(20,24,32,.42);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}.ispt-modal[hidden]{display:none}.ispt-modal__box{width:100%;max-width:620px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 50px rgba(20,24,32,.18);padding:14px}.ispt-modal__box input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:var(--radius);font:inherit;font-size:15px;outline:none}.ispt-modal__box input:focus{border-color:var(--brand)}.ispt-modal__hint{font-size:12px;color:var(--muted);margin:8px 2px 4px}.ispt-modal__results{max-height:54vh;overflow:auto}.ispt-modal__results a{display:block;padding:9px 4px;border-bottom:1px solid var(--line);font-size:14px}.ispt-modal__results a:hover{color:var(--brand)}.ispt-modal__results small{color:var(--muted);font-size:12px;margin-left:8px}.ispt-notfound{padding:70px 0;text-align:center}.ispt-notfound h1{font-size:30px;margin-bottom:10px}.ispt-notfound p{color:var(--muted)}.ispt-tagcloud{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.ispt-about{max-width:720px}.ispt-about h2{font-size:20px;margin:30px 0 12px}.ispt-about p{margin:0 0 16px;color:var(--ink-2)}.ispt-stat{display:flex;gap:28px;flex-wrap:wrap;margin:22px 0 4px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ispt-stat div{font-size:13px;color:var(--muted)}.ispt-stat strong{display:block;font-size:22px;color:var(--ink);font-weight:600}@media (max-width:600px){.ispt-modal{padding:8vh 12px 12px}}.ispt-brand__mark{width:24px;height:24px;border-radius:5px;background:transparent;object-fit:contain}@media (max-width:600px){.ispt-brand__mark{width:22px;height:22px}}.ispt-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ispt-main--home{max-width:1120px;padding-top:18px}.ispt-hero{position:relative;height:240px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.ispt-hero__slide{position:absolute;inset:0;display:flex;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s ease}.ispt-hero__slide.is-active{opacity:1;visibility:visible}.ispt-hero__text{flex:1 1 58%;min-width:0;padding:26px 34px;background:linear-gradient(115deg,#F1F4FD,#FAFBFF 72%);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:7px}.ispt-hero__cat{font-size:12px;font-weight:600;color:var(--brand)}.ispt-hero__title{font-size:22px;font-weight:600;line-height:1.4;letter-spacing:-.01em;color:var(--ink);max-width:520px}.ispt-hero__desc{font-size:13px;line-height:1.6;color:var(--ink-2);max-width:470px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.ispt-hero__cta{margin-top:4px;font-size:13px;color:var(--brand)}.ispt-hero__slide:hover .ispt-hero__cta{text-decoration:underline}.ispt-hero__img{flex:0 0 40%;width:40%;height:100%;object-fit:contain;padding:10px;background:#F7F8FC;border-left:1px solid var(--line)}.ispt-hero__controls{position:absolute;right:12px;bottom:12px;z-index:3;display:flex;align-items:center;gap:6px;padding:4px 7px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.92)}.ispt-hero__controls button{width:22px;height:22px;padding:0;border:0;background:none;color:var(--ink-2);font-size:16px;line-height:1;cursor:pointer}.ispt-hero__controls button:hover{color:var(--brand)}.ispt-hero__dots{display:flex;align-items:center;gap:5px}.ispt-hero__dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:#C8CEDC;cursor:pointer}.ispt-hero__dots button.is-active{width:16px;border-radius:4px;background:var(--brand)}.ispt-home-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:16px 0 0;padding-bottom:16px;border-bottom:1px solid var(--line)}.ispt-home-toolbar .ispt-searchbox{flex:1 1 320px;max-width:420px}.ispt-searchbox__hint{margin-top:6px}.ispt-home-toolbar .ispt-intro__stats{display:flex;gap:18px;padding-bottom:0;font-size:12px;color:var(--muted);white-space:nowrap}.ispt-intro__stats b{font-size:17px;font-weight:600;color:var(--ink);margin-right:3px}.ispt-home-grid{display:grid;grid-template-columns:264px minmax(0,1fr);grid-gap:36px;gap:36px;align-items:start;margin-top:24px}.ispt-home-side{grid-column:1;grid-row:1;min-width:0;position:-webkit-sticky;position:sticky;top:82px}.ispt-home-main{grid-column:2;grid-row:1;min-width:0}.ispt-home-grid .ispt-section{margin-top:0}.ispt-home-main .ispt-section+.ispt-section,.ispt-home-side .ispt-section+.ispt-section{margin-top:26px}.ispt-home-grid .ispt-section__title{font-size:15px;color:var(--ink)}.ispt-section__more{margin-left:auto;font-size:12px;font-weight:400;color:var(--brand)}.ispt-section__more:hover{text-decoration:underline}.ispt-home-side .ispt-dirs{display:block}.ispt-home-side .ispt-dir{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;transition:none}.ispt-home-side .ispt-dir:last-child{border-bottom:0}.ispt-home-side .ispt-dir:hover{transform:none;border-bottom-color:var(--line)}.ispt-home-side .ispt-dir:hover .ispt-dir__name{color:var(--brand)}.ispt-home-side .ispt-dir__name{font-size:13px;font-weight:500}.ispt-home-side .ispt-dir__num{font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.ispt-home-main .ispt-hot{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 24px;gap:0 24px}.ispt-hot__item{display:flex;gap:10px;align-items:baseline;padding:7px 2px;border-bottom:1px solid var(--line);font-size:13px}.ispt-hot__item:hover .ispt-hot__title{color:var(--brand)}.ispt-hot__no{min-width:18px;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ispt-hot__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ispt-home-main .ispt-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.ispt-home-main .ispt-feat{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.ispt-home-main .ispt-feat__no{min-width:18px;padding-top:1px;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ispt-home-main .ispt-feat__text{min-width:0}.ispt-home-main .ispt-feat__cat{display:block;font-size:11px}.ispt-home-main .ispt-feat__title{display:block;font-size:13px;font-weight:500;line-height:1.5;margin-top:2px}.ispt-home-main .ispt-feat:hover .ispt-feat__title{color:var(--brand)}.ispt-row--home{grid-template-columns:minmax(0,1fr) 92px;padding:10px 4px}.ispt-row--home .ispt-row__cat{text-align:right}.ispt-pager{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:20px;font-size:13px;color:var(--muted)}.ispt-pager[hidden]{display:none}.ispt-pager button{min-width:30px;padding:5px 9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer}.ispt-pager button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.ispt-pager button.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.ispt-pager button:disabled{opacity:.4;cursor:default}.ispt-pager__info{margin-left:8px;font-size:12px;color:var(--muted)}@media (max-width:900px){.ispt-home-grid{display:flex;flex-direction:column;align-items:stretch;gap:0}.ispt-home-main,.ispt-home-side{grid-column:auto;grid-row:auto;width:100%}.ispt-home-side{position:static}.ispt-home-side .ispt-dirs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 16px;gap:0 16px}.ispt-home-main{margin-top:28px}}@media (max-width:600px){.ispt-hero{height:176px}.ispt-hero__text{flex:1 1 100%;width:100%;position:relative;z-index:1;padding:16px 18px;gap:5px}.ispt-hero__title{font-size:16px}.ispt-hero__desc{display:none}.ispt-hero__cta{font-size:12px}.ispt-hero__img{position:absolute;inset:0;flex:none;width:100%;height:100%;padding:0;object-fit:cover;opacity:.1;border-left:0;pointer-events:none}.ispt-hero__controls{right:8px;bottom:8px;padding:3px 5px}.ispt-home-toolbar{gap:10px}.ispt-home-toolbar .ispt-intro__stats{gap:12px}.ispt-home-side .ispt-dirs{gap:0 12px}.ispt-hot__item{padding:6px 2px}.ispt-home-main .ispt-hot{grid-template-columns:minmax(0,1fr)}.ispt-home-main .ispt-featured{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.ispt-home-main .ispt-feat{flex:0 0 210px;scroll-snap-align:start}.ispt-row--home .ispt-row__meta{gap:10px}}.ispt-home-toolbar{justify-content:flex-end;align-items:center}.ispt-home-toolbar .ispt-intro__stats{margin-left:auto}.ispt-home-side .ispt-hot{display:block}.ispt-home-side .ispt-hot__item{padding:7px 2px;font-size:12.5px}.ispt-home-side .ispt-section--hot{margin-top:26px}.ispt-row--home{display:block;padding:15px 4px}.ispt-row--home .ispt-row__title{display:block;font-size:15px;font-weight:500;line-height:1.5;white-space:normal;overflow:visible;text-overflow:clip}.ispt-row--home .ispt-row__excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;text-overflow:clip;margin-top:5px;line-height:1.65;font-size:12.5px}.ispt-row--home .ispt-row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:9px;font-size:12px;color:var(--muted)}.ispt-row--home .ispt-row__cat{display:inline;text-align:left;color:var(--brand)}.ispt-row--home .ispt-row__date{font-size:12px}.ispt-row--home .ispt-row__stat{white-space:nowrap}.ispt-row--home .ispt-row__stat b{color:var(--ink-2);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ispt-header__right{display:flex;align-items:center;gap:14px}.ispt-iconbtn{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink-2);cursor:pointer}.ispt-iconbtn:hover{color:var(--brand);border-color:var(--brand)}.ispt-icon-sun{display:none}html[data-theme=dark] .ispt-icon-sun{display:block}html[data-theme=dark] .ispt-icon-moon{display:none}.ispt-user{position:relative}.ispt-userbtn{display:inline-flex;align-items:center;gap:7px;padding:0;border:0;background:none;color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer}.ispt-userbtn:hover{color:var(--brand)}.ispt-userbtn__avatar{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--brand);color:#fff;font-size:12px;font-weight:600}.ispt-user__menu{position:absolute;right:0;top:calc(100% + 12px);width:184px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 38px rgba(20,24,32,.16);z-index:40}.ispt-user__menu[hidden]{display:none}.ispt-user__head{padding:6px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}.ispt-user__head strong{display:block;font-size:13px;color:var(--ink)}.ispt-user__head span{font-size:12px;color:var(--muted)}.ispt-user__menu button{display:block;width:100%;text-align:left;padding:7px 8px;border:0;border-radius:6px;background:none;color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer}.ispt-user__menu button:hover{background:var(--brand-soft);color:var(--brand)}.ispt-user__sep{height:1px;background:var(--line);margin:6px 0}.ispt-user__tip{margin:6px 4px 2px;font-size:12px;color:var(--brand)}.ispt-user__tip[hidden]{display:none}html[data-theme=dark]{--paper:#12141A;--surface:#1A1D25;--ink:#E9ECF2;--ink-2:#B8BECB;--muted:#868E9E;--line:#2C313D;--brand:#8AA0FF;--brand-soft:#232B48;--code-bg:#171A22;--code-inline-bg:#232838;--quote-bg:#191D26}html[data-theme=dark] .ispt-header{background:rgba(18,20,26,.94)}html[data-theme=dark] .ispt-hero__text{background:linear-gradient(115deg,#1E2433,#191D28 72%)}html[data-theme=dark] .ispt-hero__img{background:transparent;padding:0;filter:invert(.92) hue-rotate(180deg) brightness(.94)}html[data-theme=dark] .ispt-hero__controls{background:rgba(26,29,37,.94);border-color:var(--line)}html[data-theme=dark] .ispt-hero__dots button{background:#4A5262}html[data-theme=dark] .ispt-pager button.is-active{color:#12141A}html[data-theme=dark] .ispt-comment-form input[type=email],html[data-theme=dark] .ispt-comment-form input[type=text],html[data-theme=dark] .ispt-comment-form textarea{background:#14171F}html[data-theme=dark] .ispt-comment-form button{color:#12141A}html[data-theme=dark] .ispt-comment-status.is-err{color:#FF948C}html[data-theme=dark] .ispt-userbtn__avatar{color:#12141A}html[data-theme=dark] .ispt-modal{background:rgba(6,8,12,.66)}@media (max-width:600px){.ispt-header__inner{gap:10px;padding:0 12px}.ispt-nav{gap:11px;font-size:12.5px}.ispt-header__right{gap:8px}.ispt-search>span:last-child,.ispt-userbtn__label{display:none}.ispt-iconbtn,.ispt-userbtn__avatar{width:22px;height:22px}.ispt-userbtn__avatar{font-size:11px}.ispt-home-toolbar .ispt-intro__stats{gap:12px}.ispt-row--home .ispt-row__meta{gap:10px}}.ispt-comments{margin-top:40px;padding-top:26px;border-top:1px solid var(--line)}.ispt-comment-count{font-size:13px;font-weight:400;color:var(--muted);margin-left:4px}.ispt-comment-list{margin:12px 0 24px}.ispt-comment-item{padding:13px 0;border-bottom:1px solid var(--line)}.ispt-comment-head{display:flex;gap:10px;align-items:baseline;font-size:12px;color:var(--muted)}.ispt-comment-author{font-size:14px;font-weight:600;color:var(--ink)}.ispt-comment-body{margin:7px 0 0;font-size:15px;line-height:1.75;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}.ispt-comment-empty{color:var(--muted);font-size:14px;margin:0}.ispt-comment-row{display:flex;gap:12px;margin-bottom:12px}.ispt-comment-form label{flex:1 1;display:block;font-size:12px;color:var(--muted)}.ispt-comment-form input[type=email],.ispt-comment-form input[type=text],.ispt-comment-form textarea{width:100%;box-sizing:border-box;margin-top:6px;padding:9px 11px;font:inherit;font-size:14px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;outline:none}.ispt-comment-form input:focus,.ispt-comment-form textarea:focus{border-color:var(--brand)}.ispt-comment-form textarea{resize:vertical;max-width:100%}.ispt-comment-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}.ispt-comment-foot{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:12px;flex-wrap:wrap}.ispt-comment-hint{font-size:12px;color:var(--muted)}.ispt-comment-form button{padding:8px 18px;font:inherit;font-size:14px;color:#fff;background:var(--brand);border:0;border-radius:6px;cursor:pointer}.ispt-comment-form button:disabled{opacity:.55;cursor:default}.ispt-comment-status{min-height:18px;margin:10px 0 0;font-size:13px;color:var(--muted)}.ispt-comment-status.is-ok{color:var(--brand)}.ispt-comment-status.is-err{color:#B42318}.ispt-poststats{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:34px;padding:14px 0;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.ispt-poststats b{color:var(--ink-2);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ispt-likebtn{padding:6px 14px;font:inherit;font-size:13px;color:var(--brand);background:var(--brand-soft);border:1px solid var(--line);border-radius:20px;cursor:pointer}.ispt-likebtn:hover:not(:disabled){border-color:var(--brand)}.ispt-likebtn.is-liked{opacity:.7;cursor:default}@media (max-width:640px){.ispt-comment-row{flex-direction:column}}.ispt-user__menu a.ispt-user__link{display:block;padding:7px 8px;border-radius:6px;color:var(--ink-2);font-size:13px}.ispt-user__menu a.ispt-user__link:hover{background:var(--brand-soft);color:var(--brand)}.ispt-auth{max-width:420px;margin:30px auto;padding:26px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.ispt-auth h1{font-size:22px;margin:0 0 6px}.ispt-auth p.ispt-auth__hint{color:var(--muted);font-size:13px;margin:0 0 20px}.ispt-auth label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:14px}.ispt-auth input{width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;outline:none}.ispt-auth input:focus{border-color:var(--brand)}.ispt-auth button[type=submit]{width:100%;padding:10px;font:inherit;font-size:14px;color:#fff;background:var(--brand);border:0;border-radius:6px;cursor:pointer}.ispt-auth__msg{min-height:20px;margin:12px 0 0;font-size:13px;color:var(--muted)}.ispt-auth__msg.is-err{color:#B42318}.ispt-auth__switch{margin-top:16px;font-size:13px;color:var(--muted);text-align:center}.ispt-auth__switch a{color:var(--brand)}.ispt-studio{max-width:900px}.ispt-studio__row{display:flex;gap:14px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line);font-size:13px}.ispt-studio__row a{color:var(--brand)}.ispt-studio__row span{color:var(--muted)}.ispt-studio__row form{margin-left:auto}.ispt-studio__row button{padding:4px 10px;font:inherit;font-size:12px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:5px;cursor:pointer}.ispt-studio{max-width:none}.ispt-studio__notice{margin:16px 0 0;padding:10px 14px;border-radius:6px;font-size:13px;border:1px solid var(--line);background:var(--surface)}.ispt-studio__notice.is-ok{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}.ispt-studio__notice.is-err{color:#B42318;border-color:#B42318}.ispt-studio__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin:20px 0 26px}.ispt-studio__stats>div{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.ispt-studio__stats strong{display:block;font-size:24px;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ispt-studio__stats span{font-size:12px;color:var(--muted)}.ispt-studio__grid{display:grid;grid-template-columns:270px minmax(0,1fr);grid-gap:24px;gap:24px;align-items:start}.ispt-studio__side{position:-webkit-sticky;position:sticky;top:76px;max-height:calc(100vh - 100px);overflow:auto;padding-right:6px}.ispt-studio__list{display:flex;flex-direction:column;gap:2px}.ispt-studio__item{display:block;padding:8px 10px;border-radius:6px;border:1px solid transparent}.ispt-studio__item:hover{background:var(--surface)}.ispt-studio__item.is-active{background:var(--brand-soft);border-color:var(--line)}.ispt-studio__item-title{display:block;font-size:13px;color:var(--ink-2);line-height:1.5}.ispt-studio__item.is-active .ispt-studio__item-title{color:var(--brand);font-weight:600}.ispt-studio__item-meta{display:block;font-size:11px;color:var(--muted);margin-top:2px}.ispt-studio__editor{min-width:0;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.ispt-studio__form{margin-top:16px}.ispt-studio__form label{display:block;font-size:12px;color:var(--muted);margin-bottom:14px}.ispt-studio__form input[type=date],.ispt-studio__form input[type=text],.ispt-studio__form select,.ispt-studio__form textarea{display:block;width:100%;box-sizing:border-box;margin-top:5px;padding:9px 11px;font:inherit;font-size:14px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;outline:none}.ispt-studio__form input:focus,.ispt-studio__form select:focus,.ispt-studio__form textarea:focus{border-color:var(--brand)}.ispt-studio__form textarea{resize:vertical;line-height:1.6}.ispt-studio__form textarea[name=markdown]{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.ispt-studio__pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.ispt-studio__actions{display:flex;align-items:center;gap:18px;margin-top:6px}.ispt-studio__actions a{font-size:13px;color:var(--brand)}.ispt-studio__form>button[type=submit],.ispt-studio__primary{padding:9px 22px;font:inherit;font-size:14px;color:#fff;background:var(--brand);border:0;border-radius:6px;cursor:pointer}.ispt-studio__danger{margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}.ispt-studio__danger summary,.ispt-studio__new summary{font-size:13px;color:var(--ink-2);cursor:pointer}.ispt-studio__danger p{font-size:12px;color:var(--muted);margin:10px 0}.ispt-studio__danger button{padding:7px 16px;font:inherit;font-size:13px;color:#fff;background:#B42318;border:0;border-radius:6px;cursor:pointer}.ispt-studio__new{margin:20px 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.ispt-studio__new[open]{padding:16px}.ispt-studio__new .ispt-studio__form{margin-top:14px}.ispt-studio__mod{margin-top:38px;padding-top:12px;border-top:1px solid var(--line)}.ispt-studio__empty{font-size:13px;color:var(--muted)}.ispt-studio__comment{padding:14px 0;border-bottom:1px solid var(--line)}.ispt-studio__comment-head{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}.ispt-studio__comment-head strong{color:var(--ink);font-size:13px}.ispt-studio__comment-head a{color:var(--brand)}.ispt-studio__comment p{margin:8px 0;font-size:14px;white-space:pre-wrap;word-break:break-word}.ispt-studio__comment-ops{display:flex;gap:8px}.ispt-studio__comment-ops button{padding:4px 12px;font:inherit;font-size:12px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:5px;cursor:pointer}.ispt-studio__comment-ops button:hover{color:var(--brand);border-color:var(--brand)}.ispt-studio__account{margin-top:40px;padding-top:18px;border-top:1px solid var(--line)}.ispt-studio__logout{margin-top:28px}.ispt-studio__logout button{padding:7px 16px;font:inherit;font-size:13px;color:var(--muted);background:none;border:1px solid var(--line);border-radius:6px;cursor:pointer}@media (max-width:900px){.ispt-studio__grid{grid-template-columns:minmax(0,1fr)}.ispt-studio__side{position:static;max-height:none}.ispt-studio__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ispt-studio__pair{grid-template-columns:minmax(0,1fr)}}html[data-theme=dark] .ispt-studio__form>button[type=submit],html[data-theme=dark] .ispt-studio__primary{color:#12141A}html[data-theme=dark] .ispt-auth input,html[data-theme=dark] .ispt-studio__form input[type=date],html[data-theme=dark] .ispt-studio__form input[type=text],html[data-theme=dark] .ispt-studio__form select,html[data-theme=dark] .ispt-studio__form textarea{background:#14171F}html[data-theme=dark] .ispt-studio__notice.is-err{color:#FF948C;border-color:#FF948C}.ispt-main--kb{max-width:860px}.ispt-kb{margin-top:26px}.ispt-kbform{display:flex;gap:8px}.ispt-kbform input{flex:1 1;min-width:0;padding:11px 14px;font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;outline:none}.ispt-kbform input:focus{border-color:var(--brand)}.ispt-kbform button{flex:none;padding:0 22px;font:inherit;font-size:14px;color:#fff;background:var(--brand);border:0;border-radius:6px;cursor:pointer}.ispt-kbform button:disabled{opacity:.55;cursor:default}.ispt-kbstatus{min-height:18px;margin:16px 0 0;font-size:13px;color:var(--muted)}.ispt-kbstatus.is-ok{color:var(--brand)}.ispt-kbstatus.is-err{color:#B42318}.ispt-kbpath{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:14px;font-size:12.5px;color:var(--muted)}.ispt-kbpath__link{padding:0;font:inherit;font-size:12.5px;color:var(--brand);background:none;border:0;cursor:pointer}.ispt-kbpath__link:hover{text-decoration:underline}.ispt-kbpath__sep{color:var(--line)}.ispt-kbpath__here{color:var(--ink-2);font-weight:600}.ispt-kbresult{margin-top:8px}.ispt-kbhits{border-top:1px solid var(--line)}.ispt-kbitem{display:flex;align-items:center;gap:9px;width:100%;padding:11px 4px;font:inherit;font-size:14.5px;color:var(--ink);text-align:left;background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer}.ispt-kbitem.is-file{cursor:default;color:var(--ink-2)}button.ispt-kbitem:hover{color:var(--brand);background:var(--brand-soft)}.ispt-kbitem__icon{flex:none;display:inline-flex;color:var(--muted)}button.ispt-kbitem:hover .ispt-kbitem__icon{color:var(--brand)}.ispt-kbitem__name{min-width:0;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ispt-kbitem__meta{flex:none;font-size:11.5px;color:var(--muted)}.ispt-kbitem__snip{flex:1 0 100%;margin:4px 0 0 24px;font-size:13px;line-height:1.7;color:var(--ink-2);overflow-wrap:anywhere}.ispt-kbempty{padding:34px 0;text-align:center;color:var(--muted);font-size:14px;margin:0}.ispt-kbhint{margin:14px 0 0;padding:8px 12px;font-size:12.5px;color:var(--muted);background:var(--brand-soft);border-radius:6px}html[data-theme=dark] .ispt-kbform button{color:#12141A}html[data-theme=dark] .ispt-kbstatus.is-err{color:#FF948C}@media (max-width:600px){.ispt-kbform button{padding:0 16px}.ispt-kbitem{font-size:14px}.ispt-kbitem__name{white-space:normal;overflow-wrap:anywhere}}@media (max-width:640px){.ispt-nav{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}.ispt-nav::-webkit-scrollbar{display:none}.ispt-nav a{white-space:nowrap}.ispt-userbtn__label{display:none}}@media (max-width:480px){.ispt-brand span{display:none}.ispt-nav{gap:12px}}.ispt-kbstats{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:16px;font-size:12.5px;color:var(--muted)}.ispt-kbstats b{color:var(--ink);font-weight:600}.ispt-kbcard{display:flex;align-items:center;gap:14px;margin-top:22px;padding:14px 16px;background:var(--brand-soft);border:1px solid var(--line);border-radius:8px}.ispt-kbcard__main{flex:1 1;min-width:0}.ispt-kbcard__main strong{display:block;font-size:14px;color:var(--ink)}.ispt-kbcard__main p{margin:5px 0 0;font-size:12.5px;line-height:1.65;color:var(--ink-2)}.ispt-kbcard>a{flex:none;padding:8px 15px;font-size:13px;color:#fff;background:var(--brand);border-radius:6px;text-decoration:none;white-space:nowrap}.ispt-kbcard>a:hover{opacity:.88}html[data-theme=dark] .ispt-kbcard>a{color:#12141A}.ispt-kbchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.ispt-kbchip{padding:5px 13px;font:inherit;font-size:12.5px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:16px;cursor:pointer}.ispt-kbchip:hover{color:var(--brand);border-color:var(--brand)}.ispt-kbchip.is-active{color:#fff;background:var(--brand);border-color:var(--brand)}html[data-theme=dark] .ispt-kbchip.is-active{color:#12141A}a.ispt-kbitem.is-file{cursor:pointer;color:var(--ink);text-decoration:none}a.ispt-kbitem:hover{color:var(--brand);background:var(--brand-soft)}.ispt-kbitem__meta{white-space:nowrap}.ispt-kbmark{padding:0 2px;color:var(--brand);background:var(--brand-soft);border-radius:2px}html[data-theme=dark] .ispt-kbmark{color:#B9C6FF;background:#2A3350}.ispt-kbhit{display:block;padding:14px 6px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}a.ispt-kbhit:hover{background:var(--brand-soft)}.ispt-kbhit__head{display:flex;align-items:center;gap:8px;min-width:0}.ispt-kbhit__title{flex:1 1;min-width:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.ispt-kbhit__cat{flex:none;padding:2px 9px;font-size:11px;color:var(--brand);background:var(--brand-soft);border-radius:10px}.ispt-kbhit__sub{display:flex;flex-wrap:wrap;gap:4px 12px;margin:6px 0 0 23px;font-size:12px;color:var(--muted)}.ispt-kbhit__sec{color:var(--ink-2)}.ispt-kbhit__more{color:var(--brand)}.ispt-kbhit__snip{margin:8px 0 0 23px;font-size:13px;line-height:1.75;color:var(--ink-2);overflow-wrap:anywhere}.ispt-kbhits.is-hits{border-top:1px solid var(--line)}.ispt-kbmore{display:block;width:100%;margin:14px 0 0;padding:9px;font:inherit;font-size:13px;color:var(--brand);background:var(--surface);border:1px solid var(--line);border-radius:6px;cursor:pointer}.ispt-kbmore:hover{border-color:var(--brand)}.ispt-kbdoc__crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 22px;font-size:12.5px;color:var(--muted)}.ispt-kbdoc__crumbs a{color:var(--brand)}.ispt-kbdoc__crumbs span:last-child{color:var(--ink-2);font-weight:600}.ispt-kbdoc__grid{display:grid;grid-template-columns:minmax(0,760px) 220px;grid-gap:48px;gap:48px;align-items:start}.ispt-kbdoc__main{min-width:0}.ispt-kbdoc__main>h1{font-size:29px;line-height:1.35;font-weight:600;margin:0 0 10px;overflow-wrap:anywhere}.ispt-kbdoc__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 26px;font-size:12px;color:var(--muted)}.ispt-kbdoc__badge{padding:2px 9px;color:var(--brand);background:var(--brand-soft);border-radius:10px}.ispt-prose h2[id^=sec-]{scroll-margin-top:82px}.ispt-kbdoc__foot{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px;padding-top:18px;border-top:1px solid var(--line);font-size:13px}.ispt-kbdoc__foot a{color:var(--brand)}@media (max-width:900px){.ispt-kbdoc__grid{grid-template-columns:minmax(0,1fr);gap:0}}@media (max-width:600px){.ispt-kbcard{flex-wrap:wrap}.ispt-kbcard>a{width:100%;text-align:center}.ispt-kbhit__cat{display:none}.ispt-kbhits .ispt-kbitem__name{white-space:normal;overflow-wrap:anywhere}}.ispt-kbdoc .ispt-post__toc h2{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ispt-kbtoc__count{font-size:11px;font-weight:500;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.ispt-modal__group{display:flex;align-items:baseline;gap:8px;margin:10px 0 2px;padding:6px 4px;font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--muted);text-transform:none}.ispt-modal__group span{font-weight:400;letter-spacing:0}.ispt-modal__results a.ispt-modal__kb{padding-bottom:11px}.ispt-modal__kbt{display:block;color:var(--ink)}.ispt-modal__results a.ispt-modal__kb:hover .ispt-modal__kbt{color:var(--brand)}.ispt-modal__snip{display:block;margin-top:3px;font-size:12.5px;line-height:1.65;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.ispt-hl{background:var(--brand-soft);color:var(--brand);border-radius:2px;padding:0 1px}html[data-theme=dark] .ispt-hl{background:#2A3350;color:#B9C6FF}.ispt-modal__results a.ispt-modal__more{text-align:right;font-size:12.5px;color:var(--brand);border-bottom:0;padding:10px 4px 12px}