:root{--bg:#fff;--tile:#f5f5f7;--surface:#fff;--line:#e5e5ea;--ink:#1d1d1f;--ink-2:#55555b;--ink-3:#626268;--ink-4:#c7c7cc;--line-2:#d2d2d7;--fill:#7878801f;--fill-2:#78788033;--violet:#6366f1;--red:#ef4444;--accent:#0071e3;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Inter", sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--r-xs:6px;--r-sm:12px;--r-md:20px;--r-lg:32px;--r-pill:999px;--r:var(--r-lg);--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:15px;--fs-lg:17px;--fs-xl:22px;--fs-2xl:32px;--fs-hero:64px;--fs-body:18px;--fs-summary:16px;--fs-code:16px;--shadow-1:0 1px 2px #0000000f;--shadow-2:0 12px 28px -18px #00000040;--shadow-3:0 18px 40px -16px #0000004d;--shadow-object:0 1px 2px #0000000a, 0 12px 32px -12px #00000024;--gap:20px;--row:330px}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased}body{background:var(--bg);color:var(--ink);font:var(--fs-md)/1.6 var(--sans);margin:0}a{color:inherit;text-decoration:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input{font:inherit;color:inherit}.nav{z-index:20;-webkit-backdrop-filter:blur(16px)saturate(1.6);border-radius:var(--r-pill);box-shadow:var(--shadow-3);background:#fafafad1;border:1px solid #0000000f;gap:2px;padding:5px;display:flex;position:fixed;top:24px;left:50%;transform:translate(-50%)}.nav a{white-space:nowrap;border-radius:var(--r-pill);font-size:var(--fs-md);color:var(--ink-2);z-index:1;padding:10px 30px;font-weight:500;transition:color .2s;position:relative}.nav a.on,.nav a:hover{color:var(--ink)}.nav .pill{border-radius:var(--r-pill);box-shadow:var(--shadow-1);background:#fff;transition:left .35s cubic-bezier(.3,1.3,.5,1),width .35s cubic-bezier(.3,1.3,.5,1);position:absolute;top:5px;bottom:5px}.wrap{max-width:1312px;margin:0 auto;padding:124px 56px 72px;position:relative}.grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:var(--row);gap:var(--gap);grid-auto-flow:dense;display:grid}.tile{background:var(--tile);border-radius:var(--r-lg);isolation:isolate;opacity:0;min-width:0;transition:filter .3s;animation:.7s cubic-bezier(.2,.8,.2,1) forwards rise;position:relative;overflow:hidden;transform:translateY(14px)}@keyframes rise{to{opacity:1;transform:none}}.w2{grid-column:span 2}.w3{grid-column:span 3}.w4{grid-column:1/-1}.h2{grid-row:span 2}.h3{grid-row:span 3}.go{z-index:5;width:36px;height:36px;color:var(--ink);border:2px solid var(--line-2);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffff80;border-radius:50%;place-items:center;transition:background-color .2s,border-color .2s,box-shadow .2s;display:grid;position:absolute;bottom:18px;left:18px}.go.go-tr{inset:18px 18px auto auto}.go svg{opacity:.4;width:14px;height:14px;transition:opacity .3s}.go:hover,.go:focus-visible{box-shadow:var(--shadow-1);background:#ffffffb3;border-color:#fff}.go:hover svg,.go:focus-visible svg{opacity:1}.grid:has(.go:hover,.go:focus-visible)>.tile:not(:has(.go:hover,.go:focus-visible)){filter:opacity(.05)}.spotlight{z-index:1000;pointer-events:none;white-space:nowrap;font:500 var(--fs-md)/1 var(--sans);color:var(--ink-3);opacity:0;transition:opacity .3s;position:absolute}.spotlight b{color:var(--ink);font-weight:500}.spotlight.on{opacity:1}.label{font-size:var(--fs-sm);color:var(--ink-3);align-items:center;gap:7px;font-weight:600;display:flex}.label .lo{color:var(--ink-4);font-weight:500}.cap{z-index:4;font-size:var(--fs-md);font-weight:600;line-height:1.35;position:absolute;bottom:22px;left:68px;right:22px}.cap small{color:var(--ink-3);font-weight:400;font-size:var(--fs-sm);margin-top:2px;display:block}.tile:before{content:attr(data-c);z-index:30;font:500 var(--fs-2xs) var(--mono);background:var(--ink);color:#a5b4fc;border-radius:var(--r-xs);opacity:0;pointer-events:none;padding:3px 8px;transition:all .25s;position:absolute;top:12px;right:12px;transform:translateY(-4px)}body.showc .tile:before{opacity:1;transform:none}body.showc .tile{outline-offset:-1px;outline:1.5px dashed #6366f18c}.tile:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 2.5px var(--accent);opacity:0;pointer-events:none;z-index:29;position:absolute;inset:0}.tile.flash:after{animation:1.6s ease-out fl}@keyframes fl{15%{opacity:1}}.cover{border-radius:var(--r-md);flex:none;height:220px;margin:16px 0 20px;position:relative;overflow:hidden}.cover svg{width:100%;height:100%;display:block}.cover.photo img{object-fit:cover;opacity:0;z-index:1;width:100%;height:100%;transition:opacity .4s;position:absolute;inset:0}.cover.photo img.ok{opacity:1}.cover.photo svg{opacity:.35}.cover.photo.err svg{opacity:1}.cover.toc{border:1px solid var(--line);background:#fff;padding:14px 16px 0}.cover.toc .th{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding-bottom:10px;display:flex}.cover.toc .th b{font-size:var(--fs-sm);font-weight:600}.cover.toc .th small{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-left:auto}.cover.toc ol{margin:0;padding:6px 0 0;list-style:none}.cover.toc li{font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:10px;padding:4px 0;line-height:1.5;display:flex;overflow:hidden}.cover.toc li i{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex:none;font-style:normal;font-weight:500}.cover.toc .ico{border-radius:var(--r-xs);place-items:center;width:22px;height:22px;display:grid}.cover.toc .ico svg{width:13px;height:13px}.cover .mock{z-index:3;font-size:var(--fs-xs);color:#6366f1;border-radius:var(--r-xs);background:#ffffffeb;border:1px dashed #a5b4fc;padding:2px 7px;font-style:normal;font-weight:500;position:absolute;top:10px;right:10px}.cover.toc .mock{top:16px;left:50%;right:auto;transform:translate(-50%)}.cover>span{z-index:2;font-size:var(--fs-sm);border-radius:var(--r-xs);background:#ffffffeb;padding:3px 8px;font-weight:500;position:absolute;bottom:12px;left:12px}footer{font-size:var(--fs-sm);color:var(--ink-3);justify-content:space-between;align-items:center;padding:36px 6px 0;display:flex}.foot-copy{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.foot-links{align-items:center;gap:20px;display:flex}.foot-links a{color:var(--ink-3);text-underline-offset:4px;align-items:center;gap:6px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s;display:inline-flex}.foot-links a:hover{color:var(--ink);text-decoration-color:currentColor}.foot-links a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-xs)}.foot-links svg{flex:none;width:14px;height:14px}.cover.toc li.more{color:var(--ink-3);font-size:var(--fs-sm)}.ri,.ico{flex:none;place-items:center;display:grid}.ri{border-radius:var(--r-sm)}.ri svg{width:55%;height:55%}.chipbtn{--chip-a:var(--chip-accent,var(--ink-3));border-radius:var(--r-pill);border:1px solid var(--line);height:34px;font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap;background:#fff;align-items:center;gap:6px;padding:0 14px;transition:border-color .2s,color .2s,background-color .2s,box-shadow .2s,transform .2s;display:inline-flex}.chipbtn i{background:var(--chip-a);border-radius:50%;flex:none;width:7px;height:7px}.chipbtn em{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;font-style:normal}.chipbtn:hover{color:var(--chip-ink,var(--ink));border-color:color-mix(in srgb, var(--chip-a) 55%, var(--line));background:color-mix(in srgb, var(--chip-a) 8%, #fff);transform:translateY(-1px)}.chipbtn.on,.chipbtn[aria-pressed=true]{border-color:var(--chip-a);background:color-mix(in srgb, var(--chip-a) 14%, #fff);color:var(--chip-ink,var(--ink));font-weight:500}.chipbtn.on em,.chipbtn[aria-pressed=true] em{color:inherit}.chipbtn.sm{height:28px;font-size:var(--fs-sm);gap:5px;padding:0 11px}.chipbtn.sm i{width:6px;height:6px}.chipbtn.dim{opacity:.35}.chipbtn .x{width:18px;height:18px;font-size:var(--fs-2xs);color:inherit;background:color-mix(in srgb, var(--chip-a) 18%, #fff);border-radius:50%;place-items:center;line-height:1;display:grid}.chipbtn .x:hover{background:color-mix(in srgb, var(--chip-a) 30%, #fff)}.sheet{border:1px solid var(--line);border-radius:var(--r-md);background:#fff}.tpill{border-radius:var(--r-pill);background:var(--fill);height:30px;color:var(--ink);font-size:var(--fs-sm);white-space:nowrap;align-items:center;gap:6px;padding:0 12px 0 10px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.tpill svg{width:14px;height:14px;color:var(--ink-2);flex:none;transition:color .15s}.tpill:hover{background:var(--fill-2)}.tpill.on,.tpill[aria-pressed=true]{background:var(--accent);color:#fff}.tpill.on svg,.tpill[aria-pressed=true] svg{color:#fff}.tpill.sm{gap:5px;height:28px;padding:0 11px 0 9px}.tpill.sm svg{width:13px;height:13px}.tagline{color:var(--ink-2);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.tagline svg{width:13px;height:13px;color:var(--ink-3);flex:none}.subscribe{gap:20px;padding:32px 36px;display:flex}.subscribe h3{letter-spacing:-.01em;margin:8px 0 0;font-weight:600;line-height:1.35}.subscribe p{color:var(--ink-2);font-size:var(--fs-md);margin:6px 0 0}.subscribe-rss{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);align-items:center;gap:12px;padding:10px 16px 10px 10px;transition:border-color .2s,transform .2s;display:flex}.subscribe-rss:hover{border-color:var(--line-2);transform:translateY(-1px)}.subscribe-icon{border-radius:var(--r-sm);background:var(--tile);width:40px;height:40px;color:var(--accent);flex:none;place-items:center;display:grid}.subscribe-icon svg{width:20px;height:20px}.subscribe-rss b{font-size:var(--fs-md);font-weight:600;display:block}.subscribe-rss small{font-size:var(--fs-sm);color:var(--ink-3);display:block}.subscribe-rss .arrow{color:var(--ink-3);margin-left:auto;padding-left:8px}.subscribe-full{justify-content:space-between;align-items:center;gap:40px}.subscribe-full h3{font-size:var(--fs-2xl);letter-spacing:-.02em}.subscribe-full .subscribe-rss{flex:none;min-width:260px}.subscribe-side{flex-direction:column;padding:28px}.subscribe-side h3{font-size:var(--fs-xl)}.subscribe-side .subscribe-rss{margin-top:auto}.article-visual{border-radius:var(--r-md);background:color-mix(in srgb, var(--line) 55%, var(--tile));place-items:center;display:grid;position:relative;overflow:hidden}.article-visual:before{content:"";-webkit-mask-image:linear-gradient(135deg, var(--ink), transparent);mask-image:linear-gradient(135deg, var(--ink), transparent);background-image:linear-gradient(#fff5 1px,#0000 1px),linear-gradient(90deg,#fff5 1px,#0000 1px);background-size:30px 30px;position:absolute;inset:0}.article-sheet{background:var(--surface);border-radius:var(--r-sm);width:84%;min-height:72%;max-height:86%;box-shadow:var(--shadow-object);flex-direction:column;transition:transform .4s cubic-bezier(.2,.8,.2,1);display:flex;position:relative;overflow:hidden;transform:rotate(-3deg)translateY(4px)}.sheet-heading{border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap;align-items:center;gap:8px;padding:12px 18px;font-weight:500;line-height:1.4;display:flex}.sheet-mark{background:var(--visual-accent);border-radius:var(--r-xs);place-items:center;width:22px;height:22px;display:grid}.sheet-mark svg{width:13px;height:13px}.sheet-kind{text-overflow:ellipsis;min-width:0;color:var(--ink-3);margin-left:auto;font-weight:400;overflow:hidden}.article-sheet pre{min-height:0;font:var(--fs-sm)/1.9 var(--mono);color:var(--ink);flex:1;align-items:center;margin:0;padding:20px 18px;display:flex;overflow:hidden}.article-sheet code{width:100%;min-width:0;display:block}.code-line{gap:18px;display:flex}.code-line i{font:var(--fs-2xs)/2.5 var(--mono);color:var(--ink-3);flex:none}.code-line>span{text-overflow:ellipsis;overflow:hidden}.short-code pre{font-size:clamp(var(--fs-md), 2vw, var(--fs-xl));padding-block:28px}.short-code .code-line i{line-height:4}.sheet-bottom{border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;justify-content:space-between;gap:10px;padding:10px 18px;line-height:1.4;display:flex}.sheet-outline{margin:0;padding:12px 18px;list-style:none}.sheet-outline li{align-items:baseline;gap:12px;padding:6px 0;display:flex}.sheet-outline li>span{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums}.sheet-outline b{font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.sheet-page{flex:1;min-height:0;padding:16px 20px 0;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000);mask-image:linear-gradient(#000 60%,#0000)}.sheet-page p{font-size:var(--fs-sm);text-indent:2em;text-align:justify;color:var(--ink-2);margin:0;line-height:1.9}.sheet-page p:first-letter{font-size:var(--fs-lg);color:var(--ink);font-weight:600}.article-visual.is-photo img{object-fit:cover;width:100%;height:100%;position:absolute}.article-visual.compact .article-sheet{width:86%;height:76%;min-height:0;max-height:none}.article-visual.compact .sheet-heading{padding:9px 14px}.article-visual.compact .sheet-outline{padding:8px 14px 10px}.article-visual.compact .sheet-outline li{padding:2px 0}.article-visual.compact .sheet-outline b{font-size:var(--fs-sm)}.article-visual.compact .article-sheet pre{font-size:var(--fs-sm);align-items:flex-start;padding:12px 14px;-webkit-mask-image:linear-gradient(#000 70%,#0000);mask-image:linear-gradient(#000 70%,#0000)}.article-visual.compact.compact .short-code pre{font-size:var(--fs-md);align-items:center;padding-block:12px;-webkit-mask-image:none;mask-image:none}.article-visual.compact .short-code .code-line i{line-height:2.5}.article-visual.compact .sheet-page{padding:12px 16px 0}@media (width<=1100px){.article-sheet{width:88%}.sheet-heading,.article-sheet pre{padding-inline:12px}.code-line{gap:10px}.wrap{padding-inline:24px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.w3{grid-column:1/-1}}@media (width<=640px){:root{--row:300px;--r-lg:26px}.wrap{padding:92px 14px 90px}.grid{grid-template-columns:minmax(0,1fr);gap:12px}.w2,.w3{grid-column:auto}.nav{top:14px}.nav a{font-size:var(--fs-sm);padding:8px 15px}footer{flex-direction:column-reverse;gap:14px}.foot-links{gap:18px}.subscribe-full{flex-direction:column;align-items:stretch;gap:20px;padding:26px 22px}.subscribe-full h3{font-size:var(--fs-xl)}.subscribe-full .subscribe-rss{min-width:0}}.home-page{--row:285px;padding-top:104.8px}.home-page>.grid{grid-auto-flow:row}.home-page .grid:has(.go:hover,.go:focus-visible)>.tile:not(:has(.go:hover,.go:focus-visible)){filter:opacity(.3)}.home-page .spotlight{white-space:normal;max-width:calc(100% - 48px);color:var(--ink-2);line-height:1.5}.home-page .row:focus-visible,.home-page .tg:focus-visible,.home-page .app:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}:where(.home-page) .posts{flex-direction:column;padding:28px 16px 20px;display:flex}:where(.home-page) .posts>.label{padding:0 12px 14px}:where(.home-page) .posts>.label a{color:var(--ink-3);font-weight:500;font-size:var(--fs-sm);margin-left:auto}:where(.home-page) .posts>.label a:hover{color:var(--ink)}:where(.home-page) .rows{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex;position:relative}:where(.home-page) .row{border-radius:18px;flex-direction:column;flex:1;justify-content:center;min-height:0;padding:14px 20px 14px 30px;transition:background-color .2s,box-shadow .2s;animation:.4s both rowIn;display:flex;position:relative}@keyframes rowIn{0%{opacity:0;transform:translateY(5px)}}:where(.home-page) .row.sel{background:var(--surface);box-shadow:0 1px 2px #0000000a,0 6px 16px -10px #0000001f}:where(.home-page) .row b{white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-lg);letter-spacing:-.005em;font-weight:600;line-height:1.4;display:block;overflow:hidden}:where(.home-page) .row .sub{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:10px;margin-top:3px;display:flex;overflow:hidden}:where(.home-page) .rows .dot{z-index:2;background:var(--accent);pointer-events:none;border-radius:50%;width:8px;height:8px;transition:transform .35s cubic-bezier(.3,1.3,.5,1),opacity .2s;position:absolute;top:0;left:12px}:where(.home-page) .empty{text-align:center;color:var(--ink-3);font-size:var(--fs-sm);padding:60px 0}:where(.home-page) .preview{flex-direction:column;padding:30px 32px 18px;display:flex}@media (width>=641px){:where(.home-page) .preview{contain:size}}:where(.home-page) .preview .article-visual{flex:260px;min-height:210px;margin:0 0 24px}:where(.home-page) .pv{flex-direction:column;flex:1;min-height:0;animation:.24s both previewIn;display:flex}@keyframes previewIn{0%{opacity:.35}to{opacity:1}}:where(.home-page) .preview h3{max-width:680px;font-size:clamp(var(--fs-xl), 2.2vw, var(--fs-2xl));letter-spacing:-.025em;text-wrap:balance;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}:where(.home-page) .preview p{max-width:640px;color:var(--ink-2);font-size:var(--fs-md);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:12px 0 0;line-height:1.7;display:-webkit-box;overflow:hidden}:where(.home-page) .ptags{scrollbar-width:none;flex-wrap:nowrap;flex-shrink:0;gap:6px;margin-top:14px;display:flex;overflow-x:auto}:where(.home-page) .ptags .tpill{flex:none}:where(.home-page) .pfoot{flex-shrink:0;justify-content:flex-start;align-items:center;min-height:52px;margin-top:auto;padding-top:16px;padding-left:36px;display:flex}:where(.home-page) .pfoot span{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums}:where(.home-page) .stats{flex-direction:column;padding:28px;display:flex}:where(.home-page) .stats .big{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:10px 0 0;font-size:56px;font-weight:600;line-height:1}:where(.home-page) .stats .big small{font-size:var(--fs-lg);letter-spacing:0;margin-left:4px}:where(.home-page) .stats .sum{font-size:var(--fs-md);color:var(--ink-2);margin:8px 0 0}:where(.home-page) .lens{grid-template-columns:repeat(4,1fr);align-items:end;gap:10px;height:92px;margin-top:auto;display:grid}:where(.home-page) .len{flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;height:100%;display:flex}:where(.home-page) .len b{font-size:var(--fs-xs);color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:500}:where(.home-page) .len i{border-radius:var(--r-xs);background:var(--fill-2);width:100%;min-height:4px}:where(.home-page) .len span{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap}:where(.home-page) .len.top i{background:var(--accent)}:where(.home-page) .len.top b{color:var(--ink)}:where(.home-page) .tagc{padding:28px}:where(.home-page) .cloud{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}:where(.home-page) .tchip{--f:#f6f6f6;--b:#dcdcdc;--t:#4a4a4a;border-radius:var(--r-pill);white-space:nowrap;height:30px;font-size:var(--fs-sm);color:var(--t);background:var(--f);box-shadow:inset 0 0 0 1px var(--b);align-items:center;gap:6px;padding:0 12px 0 10px;font-weight:500;transition:background-color .15s,box-shadow .15s;display:inline-flex}:where(.home-page) .tchip svg{flex:none;width:14px;height:14px}:where(.home-page) .tchip:hover{background:color-mix(in srgb, var(--b) 45%, var(--f));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--t) 40%, var(--b))}:where(.home-page) .profile{padding:0}:where(.home-page) .profile .label{z-index:2;color:#1d1d1f8c;position:absolute;top:24px;left:24px}:where(.home-page) .mesh{background:radial-gradient(60% 90% at 62% 18%,#ffb36b 0%,#ffb36b00 70%),radial-gradient(55% 80% at 92% 45%,#f3a6c4 0%,#f3a6c400 70%),radial-gradient(70% 110% at 8% 30%,#a9c6f2 0%,#a9c6f200 72%),#e9e6f3;height:170px;position:absolute;inset:0 0 auto;-webkit-mask-image:linear-gradient(#000 55%,#0000);mask-image:linear-gradient(#000 55%,#0000)}:where(.home-page) .pcard{background:var(--surface);box-shadow:var(--shadow-object);border-radius:22px;padding:14px 16px 16px;position:absolute;inset:98px 12px 12px}:where(.home-page) .pavatar{object-fit:cover;background:var(--line);border-radius:50%;width:60px;height:60px;position:absolute;top:-30px;left:16px;box-shadow:0 0 0 3px #fff,0 8px 18px -8px #00000059}:where(.home-page) .pname{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;margin-left:70px;font-size:20px;font-weight:600;line-height:1.2;display:block;overflow:hidden}:where(.home-page) .pcopy{font-size:var(--fs-sm);margin:20px 0 0;font-weight:600}:where(.home-page) .plicense{font-size:var(--fs-sm);color:var(--ink-3);white-space:nowrap;margin:4px 0 0}:where(.home-page) .cc{background:var(--fill);color:var(--ink);font-size:var(--fs-xs);border-radius:5px;padding:1px 6px;font-weight:600;transition:background-color .15s;display:inline-block}:where(.home-page) .plicense a:hover .cc{background:var(--fill-2)}:where(.home-page) .pacts{gap:6px;display:flex;position:absolute;bottom:16px;left:16px;right:16px}:where(.home-page) .pmain{border-radius:var(--r-pill);color:#fff;height:38px;font-size:var(--fs-sm);background:linear-gradient(#2a2a2c,#0b0b0c);flex:1;justify-content:center;align-items:center;font-weight:600;transition:transform .15s;display:flex;box-shadow:inset 0 1px #ffffff1f,0 8px 16px -10px #0009}:where(.home-page) .pmain:hover{transform:translateY(-1px)}:where(.home-page) .pround{background:var(--surface);width:38px;height:38px;color:var(--ink);border-radius:50%;flex:none;place-items:center;transition:background-color .15s,box-shadow .15s;display:grid;box-shadow:inset 0 0 0 1px #0000001a}:where(.home-page) .pround svg{width:16px;height:16px}:where(.home-page) .pround:hover{background:var(--tile);box-shadow:inset 0 0 0 1px #00000029}:where(.home-page) .pround.off{color:var(--ink-4);cursor:default}:where(.home-page) .pround.off:hover{background:var(--surface);box-shadow:inset 0 0 0 1px #0000001a}:where(.home-page) .pal{padding:28px}:where(.home-page) .spot{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-object);position:absolute;top:62px;left:28px;right:28px;overflow:hidden}:where(.home-page) .field{align-items:center;gap:12px;height:56px;padding:0 16px 0 18px;display:flex}:where(.home-page) .field svg{width:20px;height:20px;color:var(--ink-3);flex:none}:where(.home-page) .field input{min-width:0;font-size:var(--fs-xl);background:0 0;border:0;outline:0;flex:1}:where(.home-page) .field input::placeholder{color:var(--ink-4)}:where(.home-page) .field kbd{font:500 var(--fs-xs) var(--sans);color:var(--ink-3);background:var(--fill);border-radius:var(--r-xs);padding:3px 7px}:where(.home-page) .res{border-top:.5px solid var(--line);flex-direction:column;gap:2px;padding:2px 6px 6px;display:flex}:where(.home-page) .res-note{color:var(--ink-3);font-size:var(--fs-sm);margin:4px 12px 8px}:where(.home-page) .hit{border-radius:var(--r-sm);width:100%;font-size:var(--fs-md);color:var(--ink);text-align:left;white-space:nowrap;align-items:baseline;gap:12px;padding:7px 12px;transition:background-color .12s,color .12s;display:flex}:where(.home-page) .hit>span{text-overflow:ellipsis;flex:1;min-width:0;font-weight:500;overflow:hidden}:where(.home-page) .hit em{font-style:normal;font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none}:where(.home-page) .hit mark{color:inherit;background:0 0;font-weight:700}:where(.home-page) .hit.head{font-size:var(--fs-sm);color:var(--ink-3);padding-block:8px 2px}:where(.home-page) .hit.head>span{font-weight:500}:where(.home-page) .hit.head.sel,:where(.home-page) .hit.head:hover,:where(.home-page) .hit.head.sel em{color:var(--ink)}:where(.home-page) .hit:not(.head).sel{background:var(--accent);color:#fff}:where(.home-page) .hit:not(.head).sel em{color:#ffffffbf}:where(.home-page) .hit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(.home-page) .gh{--gh-gap:2px;--gh-max:8px;flex-direction:column;padding:28px 28px 66px;display:flex}:where(.home-page) .gh-total{align-items:baseline;gap:10px;margin:10px 0 0;display:flex}:where(.home-page) .gh-total b{letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:48px;font-weight:600;line-height:1}:where(.home-page) .gh-total span{font-size:var(--fs-md);color:var(--ink-2)}:where(.home-page) .gh-weeks{justify-content:flex-end;gap:var(--gh-gap);width:100%;max-width:calc(53 * (var(--gh-max) + var(--gh-gap)));flex-direction:row-reverse;margin-top:22px;display:flex}:where(.home-page) .gh-week{min-width:0;max-width:var(--gh-max);gap:var(--gh-gap);flex-direction:column;flex:1 1 0;display:flex}:where(.home-page) .gh i{aspect-ratio:1;background:var(--gh-c,var(--fill));border-radius:2px;display:block}:where(.home-page) .gh i.gh-pad{background:0 0}:where(.home-page) .gh i[data-l="1"]{--gh-c:color-mix(in srgb, var(--accent) 28%, var(--bg))}:where(.home-page) .gh i[data-l="2"]{--gh-c:color-mix(in srgb, var(--accent) 50%, var(--bg))}:where(.home-page) .gh i[data-l="3"]{--gh-c:color-mix(in srgb, var(--accent) 75%, var(--bg))}:where(.home-page) .gh i[data-l="4"]{--gh-c:var(--accent)}:where(.home-page) .gh-user{font-size:var(--fs-sm);color:var(--ink-3);position:absolute;bottom:26px;left:66px}:where(.home-page) .dock-tile{padding:28px 0 0 28px}:where(.home-page) .category-scene{min-width:0}:where(.home-page) .category-scene .label{padding-right:76px}:where(.home-page) .category-name{color:var(--category-ink);margin-left:6px}:where(.home-page) .category-count{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:400}:where(.home-page) .pop{border-radius:var(--r-md) 0 0 var(--r-md);border:1px solid var(--line);scrollbar-width:none;background:#fff;border-right:0;gap:8px;height:88px;margin-top:14px;padding:8px;display:flex;overflow:auto}:where(.home-page) .chip{border-radius:var(--r-sm);border:1px solid var(--line);flex:none;min-width:180px;max-width:260px;padding:10px 14px;transition:border-color .2s,background .2s;animation:.25s both chipIn}:where(.home-page) .chip:hover{border-color:var(--category-accent)}:where(.home-page) .chip.sel{border-color:var(--category-accent);background:color-mix(in srgb, var(--category-paper) 45%, #fff);box-shadow:0 0 0 1px var(--category-accent)}:where(.home-page) .chip b{font-size:var(--fs-md);white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}:where(.home-page) .chip span{font-size:var(--fs-sm);color:var(--ink-2);margin-top:4px;display:block}@keyframes chipIn{0%{opacity:0;transform:translateY(4px)}}:where(.home-page) .tail{height:12px;position:relative;overflow:clip}:where(.home-page) .tail i{width:16px;height:9px;transition:left .25s;position:absolute;top:-1px}:where(.home-page) .tail i:before{content:"";border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;width:12px;height:12px;position:absolute;top:-8px;left:0;transform:translate(2px)rotate(45deg)}:where(.home-page) .bar{border-radius:var(--r-md) 0 0 var(--r-md);border:1px solid var(--line);background:#fff;border-right:0;gap:14px;padding:12px 16px 16px;display:flex;position:relative}:where(.home-page) .app{border-radius:var(--r-sm);width:62px;height:62px;box-shadow:var(--shadow-1);flex:none;place-items:center;transition:transform .25s cubic-bezier(.3,1.6,.5,1);display:grid;position:relative}:where(.home-page) .app:hover{transform:translateY(-3px)}:where(.home-page) .app.sel{outline:2px solid var(--category-accent);outline-offset:3px}:where(.home-page) .app.on:after{content:"";background:var(--category-ink);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;bottom:-10px;left:50%}:where(.home-page) .app svg{width:30px;height:30px}:where(.home-page) .category-empty{color:var(--ink-2);font-size:var(--fs-sm);padding:8px}:where(.home-page) .rainbow-category{--cd-w:300px;--cd-x0:20%;--cd-y0:70px;--cd-dy:21px;padding:0}:where(.home-page) .rainbow-stage,:where(.home-page) .rainbow-hover-div{position:absolute;inset:0}:where(.home-page) .rainbow-absolute-div{opacity:.07;filter:saturate(.5);pointer-events:none;width:100%;height:100%;transition:opacity .1s;position:absolute;top:30px;left:0}:where(.home-page) .rainbow-stage[data-phase=stack] .rainbow-hover-div:hover+.rainbow-absolute-div{opacity:.16}:where(.home-page) .rainbow-stage:is([data-phase=out],[data-phase=detail],[data-phase=closing]) .rainbow-absolute-div{opacity:0;transition:opacity .4s .35s}:where(.home-page) .rainbow-stage[data-phase=back] .rainbow-absolute-div{transition:opacity .4s .2s}:where(.home-page) .rainbow-stage:not([data-phase=stack]) .cd-colors{pointer-events:none}:where(.home-page) .cd-colors{pointer-events:none;position:absolute;inset:0}:where(.home-page) .cd-colors>*{pointer-events:auto}:where(.home-page) .cd-card{--cd-dx:calc((100% - var(--cd-x0) - var(--cd-w) + 110px) / max(var(--n) - 1, 1));left:calc(var(--cd-x0) + var(--cd-dx) * var(--i));top:calc(var(--cd-y0) + var(--cd-dy) * var(--i));width:var(--cd-w);text-align:left;border-radius:var(--r-md);padding:0;transition:translate .35s cubic-bezier(.175,.885,.32,1.275),rotate .5s;position:absolute;translate:0;rotate:-10deg}:where(.home-page) .rainbow-stage[data-phase=stack] .cd-card:hover,:where(.home-page) .rainbow-stage[data-phase=stack] .cd-card:focus-visible{transition:translate .3s cubic-bezier(.075,.82,.165,1),rotate .5s;translate:0 -10%}:where(.home-page) .cd-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}:where(.home-page) .rainbow-stage:is([data-phase=out],[data-phase=detail],[data-phase=closing]) .cd-card{transition:rotate .2s ease calc((var(--n) - 1 - var(--i)) * 50ms), translate .6s cubic-bezier(.6,-.28,.735,.045) calc((var(--n) - 1 - var(--i)) * 50ms);translate:200%;rotate:0deg}:where(.home-page) .rainbow-stage:is([data-phase=detail],[data-phase=closing]) .cd-colors{opacity:0;transition:opacity .15s}:where(.home-page) .rainbow-stage[data-phase=back] .cd-card{transition:translate .6s cubic-bezier(.175,.885,.32,1.4) calc(var(--i) * 50ms), rotate .5s ease calc(var(--i) * 50ms)}:where(.home-page) .cd-face{border-radius:var(--r-md);aspect-ratio:500/489;background:var(--bg);border:1px solid color-mix(in srgb, var(--cd-accent) 45%, var(--line));padding:8px 10px 12px;display:block;overflow:hidden}:where(.home-page) .cd-head{align-items:center;gap:8px;display:flex}:where(.home-page) .cd-icon{flex:none;place-items:center;width:22px;height:22px;display:grid}:where(.home-page) .cd-icon svg{width:18px;height:18px;stroke:var(--cd-accent)}:where(.home-page) .cd-bar{background:var(--tile);border-radius:var(--r-xs);flex:1;align-items:center;gap:8px;min-width:0;height:26px;padding:0 10px;display:flex}:where(.home-page) .cd-bar b{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:var(--fs-md);color:var(--ink);flex:1;font-weight:600;overflow:hidden}:where(.home-page) .cd-bar em{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none;font-style:normal}:where(.home-page) .cd-rows{flex-direction:column;margin-top:8px;display:flex}:where(.home-page) .cd-row{border-radius:var(--r-xs);min-height:26px;font-size:var(--fs-sm);color:var(--ink-2);align-items:center;gap:10px;padding:0 8px;display:flex}:where(.home-page) .cd-row>span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}:where(.home-page) .cd-row.hl{background:color-mix(in srgb, var(--cd-bg) 35%, var(--bg));min-height:30px;color:var(--ink);margin:0 -4px 2px;padding:0 12px;font-weight:500}:where(.home-page) .cd-single{z-index:3;background:color-mix(in srgb, var(--cd-bg) 22%, var(--tile));opacity:0;visibility:hidden;flex-direction:column;align-items:center;transition:opacity .4s,visibility 0s .4s;display:flex;position:absolute;inset:0}:where(.home-page) .cd-single-card{flex:1;width:min(480px,100% - 140px);min-height:0;margin:26px 0 -18px;display:flex;translate:0 50%}:where(.home-page) .cd-single-card .cd-face{aspect-ratio:auto;flex-direction:column;flex:1;padding:12px 12px 0;display:flex}:where(.home-page) .cd-single-card .cd-rows{overscroll-behavior:contain;scrollbar-width:none;min-height:0;-webkit-mask:linear-gradient(transparent, var(--ink) 10px, var(--ink) calc(100% - 34px), transparent calc(100% - 14px));-webkit-mask:linear-gradient(transparent, var(--ink) 10px, var(--ink) calc(100% - 34px), transparent calc(100% - 14px));mask:linear-gradient(transparent, var(--ink) 10px, var(--ink) calc(100% - 34px), transparent calc(100% - 14px));flex:1;margin:6px -4px 0;padding:2px 4px 30px;scroll-padding-block:6px 30px;position:relative;overflow-y:auto}:where(.home-page) .cd-single-card .cd-rows::-webkit-scrollbar{display:none}:where(.home-page) .cd-single-card .cd-row{flex:none;height:32px;min-height:0;margin:0;padding:0 12px;transition:background .15s,color .15s,box-shadow .15s}:where(.home-page) .cd-single-card .cd-row>span{font-size:var(--fs-sm);opacity:.55;transition:font-size .18s cubic-bezier(.2,.8,.2,1),opacity .18s}:where(.home-page) .cd-single-card .cd-row[data-d="2"]>span{font-size:var(--fs-sm);opacity:.8}:where(.home-page) .cd-single-card .cd-row[data-d="1"]>span{font-size:var(--fs-md);opacity:1}:where(.home-page) .cd-single-card .cd-row[data-d="0"]>span{font-size:var(--fs-lg);opacity:1;font-weight:600}:where(.home-page) .cd-single-card .cd-row.hl{height:32px;min-height:0;margin:0}:where(.home-page) .cd-row time{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;opacity:.55;flex:none}:where(.home-page) .cd-more{color:var(--ink-3);font-size:var(--fs-sm)}:where(.home-page) .cd-round{width:44px;height:44px;box-shadow:var(--shadow-1);color:var(--ink);background:#fff padding-box padding-box;border:4px solid #ffffff69;border-radius:50%;place-items:center;transition:transform .2s;display:grid;position:absolute;right:22px;translate:0 280%}:where(.home-page) .cd-round:hover{transform:scale(1.06)}:where(.home-page) .cd-round svg{width:20px;height:20px}:where(.home-page) .cd-swatch{bottom:16px}:where(.home-page) .rainbow-stage[data-phase=detail] .cd-single{opacity:1;visibility:visible;transition:opacity .4s}:where(.home-page) .rainbow-stage[data-phase=detail] .cd-single-card{transition:translate .4s cubic-bezier(.175,.885,.32,1.275) .2s;translate:0}:where(.home-page) .rainbow-stage[data-phase=detail] .cd-swatch{transition:translate .4s cubic-bezier(.175,.885,.32,1.275) .2s,transform .2s;translate:0}:where(.home-page) .rainbow-stage[data-phase=closing] .cd-single{opacity:0;visibility:visible;transition:opacity .3s .25s}:where(.home-page) .rainbow-stage[data-phase=closing] .cd-single-card{transition:translate .35s cubic-bezier(.6,-.28,.735,.045);translate:0 50%}:where(.home-page) .rainbow-stage[data-phase=closing] .cd-round{transition:translate .35s cubic-bezier(.6,-.28,.735,.045);translate:0 280%}@media (prefers-reduced-motion:reduce){:where(.home-page) .rainbow-stage *,:where(.home-page) .rainbow-stage .cd-card{transition-duration:1ms!important;transition-delay:0s!important}}:where(.home-page) .tagt{flex-direction:column;padding:28px;display:flex}:where(.home-page) .tagwin{flex-direction:column;flex:1;min-height:0;margin-top:14px;margin-bottom:64px;display:flex;overflow:hidden}:where(.home-page) .tag-current{color:var(--ink)}:where(.home-page) .bubbles{touch-action:pan-y;flex:1;min-height:0;margin:8px 0 8px 8px;position:relative}:where(.home-page) .bubbles .tg{transform-origin:50%;will-change:transform;background:0 0;border:0;border-radius:50%;padding:0;position:absolute;top:0;left:0}:where(.home-page) .bub{text-align:center;color:var(--ink-2);font-size:var(--fs);background:var(--bg);border:1px solid var(--line);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:3px;font-weight:500;line-height:1.15;transition:scale .3s cubic-bezier(.3,1.6,.5,1),opacity .2s,border-color .2s,background .2s,color .2s;display:flex;position:absolute;inset:0}:where(.home-page) .bub:before{content:"";background:var(--tag-accent);border-radius:50%;flex:none;width:5px;height:5px}:where(.home-page) .bub .tag-name{word-break:keep-all}:where(.home-page) .bub em{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--ink-3);font-style:normal;transition:color .2s}:where(.home-page) .bubbles .tg:hover .bub,:where(.home-page) .bubbles .tg:focus-visible .bub{border-color:color-mix(in srgb, var(--tag-accent) 60%, var(--line));background:color-mix(in srgb, var(--tag-accent) 12%, white);color:var(--tag-ink);scale:1.05}:where(.home-page) .bubbles .tg[data-state=on] .bub{border-color:var(--tag-accent);background:color-mix(in srgb, var(--tag-accent) 20%, white);color:var(--tag-ink)}:where(.home-page) .bubbles .tg:hover .bub em,:where(.home-page) .bubbles .tg[data-state=on] .bub em{color:var(--tag-ink)}:where(.home-page) .bubbles .tg[data-state=faded] .bub{opacity:.35}:where(.home-page) .bubbles .tg[data-state=faded]:hover .bub{opacity:1}:where(.home-page) .bubbles .tg[data-state=pop]{pointer-events:none}:where(.home-page) .bubbles .tg[data-state=pop] .bub{animation:.24s ease-in forwards bubble-pop}:where(.home-page) .bubbles .tg[data-state=born] .bub{animation:bubble-born .45s cubic-bezier(.3,1.4,.5,1) var(--born) backwards}:where(.home-page) .burst{pointer-events:none;width:0;height:0;position:absolute}:where(.home-page) .burst i{background:var(--tag-accent);border-radius:50%;width:4px;height:4px;animation:.45s cubic-bezier(.2,.7,.3,1) forwards bubble-spark;position:absolute;top:-2px;left:-2px}@keyframes bubble-pop{40%{opacity:1;scale:1.1}to{opacity:0;scale:.2}}@keyframes bubble-born{0%{opacity:0;scale:0}}@keyframes bubble-spark{0%{transform:rotate(var(--a)) translateX(calc(var(--r) * .7)) scale(1);opacity:1}to{transform:rotate(var(--a)) translateX(calc(var(--r) + 12px)) scale(.2);opacity:0}}@media (prefers-reduced-motion:reduce){:where(.home-page) .bub{transition:none;animation:none}}:where(.home-page) .tag-empty{color:var(--ink-2);font-size:var(--fs-sm);margin:10px 0}:where(.home-page) .road{flex-direction:column;flex:1;justify-content:flex-end;min-height:0;margin:14px -28px 0;padding-bottom:6px;display:flex;position:relative;overflow:hidden}:where(.home-page) .cat{pointer-events:none;position:absolute;top:0;left:0}:where(.home-page) .lanes{-webkit-mask-image:linear-gradient(90deg, transparent, var(--ink) 40px, var(--ink) calc(100% - 40px), transparent);mask-image:linear-gradient(90deg, transparent, var(--ink) 40px, var(--ink) calc(100% - 40px), transparent);flex-direction:column;gap:10px;display:flex}:where(.home-page) .lane{height:34px;position:relative}:where(.home-page) .lane-track{will-change:transform;gap:8px;display:flex;position:absolute;top:0;left:0}:where(.home-page) .lane .chipbtn{flex:none;padding:0 13px}:where(.home-page) .lane .chipbtn[data-step]{color:var(--chip-ink);border-color:color-mix(in srgb, var(--chip-accent) 55%, var(--line));background:color-mix(in srgb, var(--chip-accent) 8%, #fff);transform:translateY(1px)}:where(.home-page) .lane .chipbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:where(.home-page) .stars-tile{padding:28px}:where(.home-page) .stars-tile .label{z-index:3;position:relative}:where(.home-page) .dust{pointer-events:none;position:absolute;inset:0}:where(.home-page) .dust i{background:var(--ink-4);border-radius:50%;position:absolute}:where(.home-page) .dust i[data-tw]{animation:3.2s ease-in-out infinite twinkle}:where(.home-page) .meteor{background:linear-gradient(90deg, var(--ink-3), transparent);transform-origin:0 0;opacity:0;width:110px;height:1px;animation:11s ease-in 4s infinite meteor;position:absolute;top:14%;left:62%;transform:rotate(-24deg)}:where(.home-page) .sky{z-index:2;position:absolute;inset:56px 28px 62px}:where(.home-page) .lines{width:100%;height:100%;position:absolute;inset:0;overflow:visible}:where(.home-page) .lines line{stroke:rgba(17,17,17,calc(.06 + var(--lw) * .035));stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke .25s,opacity .25s;animation:1.6s ease-out .4s forwards draw}:where(.home-page) .lines line[data-on]{stroke:var(--ink-2);stroke-width:1.5px}:where(.home-page) .lines line[data-off]{opacity:.3}:where(.home-page) .star{white-space:nowrap;transform:translate(calc(-1 * var(--r)), -50%);align-items:center;gap:6px;padding-right:5px;transition:left .8s cubic-bezier(.2,.8,.2,1),top .8s cubic-bezier(.2,.8,.2,1),opacity .25s;display:flex;position:absolute}:where(.home-page) .star .spark{width:calc(2 * var(--r));height:calc(2 * var(--r));filter:drop-shadow(0 0 calc(var(--r) * .5) color-mix(in srgb, var(--star) 45%, transparent));animation:glint var(--td) ease-in-out var(--tw) infinite;flex:none;transition:transform .25s;overflow:visible}:where(.home-page) .star .spark path{fill:var(--star)}:where(.home-page) .star .spark circle{fill:#fff}:where(.home-page) .star .nm{font-size:var(--fs-sm);color:var(--ink-2);transition:color .25s}:where(.home-page) .star.big .nm{font-size:var(--fs-md);color:var(--ink);font-weight:600}:where(.home-page) .star em{font-size:var(--fs-2xs);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-left:5px;font-style:normal}:where(.home-page) .star[data-state=on] .spark{animation:none;transform:scale(1.35)}:where(.home-page) .star[data-state=on] .nm,:where(.home-page) .star[data-state=near] .nm{color:var(--ink)}:where(.home-page) .star[data-state=far]{opacity:.35}:where(.home-page) .star:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-xs)}:where(.home-page) .stars-cap{z-index:3;text-align:right;font-size:var(--fs-sm);color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin:0;position:absolute;bottom:26px;left:68px;right:28px;overflow:hidden}:where(.home-page) .stars-cap b{color:var(--ink);font-weight:600}@keyframes twinkle{50%{opacity:.35}}@keyframes glint{50%{opacity:.7;transform:scale(.88)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes meteor{0%{opacity:0;transform:rotate(-24deg)translate(0)}2%{opacity:1}8%,to{opacity:0;transform:rotate(-24deg)translate(-260px)}}@media (prefers-reduced-motion:reduce){:where(.home-page) .dust i[data-tw],:where(.home-page) .star .spark,:where(.home-page) .meteor{animation:none}:where(.home-page) .lines line{stroke-dashoffset:0;animation:none}:where(.home-page) .star{transition:opacity .25s}}:where(.home-page) .arch{flex-direction:column;padding:28px 30px 64px;display:flex}:where(.home-page) .timeline-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}:where(.home-page) .timeline-heading>span:last-child{font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums}:where(.home-page) .month-note{flex:1;align-items:center;gap:24px;min-height:98px;display:flex}:where(.home-page) .month-stamp{flex-direction:column;flex:none;display:flex}:where(.home-page) .month-stamp strong{font-size:var(--fs-hero);letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600;line-height:1}:where(.home-page) .month-stamp>span{font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;margin-top:7px}:where(.home-page) .month-articles{border-left:1px solid var(--line-2);min-width:0;padding-left:22px}:where(.home-page) .month-caption{font-size:var(--fs-sm);color:var(--ink-2);letter-spacing:.08em}:where(.home-page) .month-articles a{-webkit-line-clamp:2;font-size:var(--fs-md);-webkit-box-orient:vertical;margin-top:4px;font-weight:500;line-height:1.5;display:-webkit-box;overflow:hidden}:where(.home-page) .month-articles a+a{-webkit-line-clamp:1;color:var(--ink-2);font-size:var(--fs-sm)}:where(.home-page) .month-articles a:hover{color:var(--accent)}:where(.home-page) .month-articles p{font-size:var(--fs-sm);color:var(--ink-2);margin:6px 0 0}:where(.home-page) .timeline{flex:none;gap:7px;height:68px;display:flex}:where(.home-page) .timeline .m{border-radius:var(--r-xs);flex-direction:column;flex:1;align-items:center;gap:5px;min-width:0;display:flex}:where(.home-page) .month-track{border-bottom:1px solid var(--line-2);justify-content:center;align-items:flex-end;width:100%;height:44px;display:flex}:where(.home-page) .month-track i{border-radius:var(--r-pill);background:var(--line-2);width:2px;transition:height .25s,background .2s;display:block}:where(.home-page) .has .month-track i{background:color-mix(in srgb, var(--accent) 45%, var(--bg));border-radius:var(--r-xs) var(--r-xs) 0 0;width:100%;max-width:28px}:where(.home-page) .on .month-track i{background:var(--accent)}:where(.home-page) .month-number{color:var(--ink-2);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}:where(.home-page) .on .month-number{color:var(--accent);font-weight:600}:where(.home-page) .current .month-number{text-underline-offset:4px;text-decoration:underline}:where(.home-page) .timeline .m:hover{background:color-mix(in srgb, var(--line) 50%, transparent)}:where(.home-page) .timeline .m[aria-pressed=true]{outline:1px solid var(--accent);outline-offset:-1px}@media (width<=1100px){.home-page>.grid{grid-auto-flow:dense}:where(.home-page) .posts,:where(.home-page) .preview{grid-column:span 1}:where(.home-page) .row{padding-inline:26px 14px}:where(.home-page) .row b{font-size:var(--fs-md)}:where(.home-page) .preview{padding:28px 24px 18px}:where(.home-page) .preview p{font-size:var(--fs-sm)}:where(.home-page) .preview .article-visual{min-height:190px}:where(.home-page) .gh{--gh-max:10px}}@media (width<=640px){.home-page{padding-top:78.4px}.home-page>.grid{grid-auto-rows:auto}.home-page .tile{min-height:285px}:where(.home-page) .preview{order:-1;min-height:520px}:where(.home-page) .preview .article-visual{flex:none;height:220px}:where(.home-page) .preview h3{font-size:var(--fs-xl)}:where(.home-page) .posts{padding:24px 12px 16px}:where(.home-page) .row{flex:none;padding:12px 14px 12px 26px}:where(.home-page) .stats,:where(.home-page) .profile{height:285px}:where(.home-page) .tagc{padding:24px 22px}:where(.home-page) .gh{min-height:260px;padding:24px 22px 66px}:where(.home-page) .gh-week:nth-child(n+27){display:none}:where(.home-page) .gh-weeks{max-width:calc(26 * (var(--gh-max) + var(--gh-gap)))}:where(.home-page) .pal{min-height:0;padding:24px 18px 18px}:where(.home-page) .spot{margin-top:14px;position:relative;inset:auto}:where(.home-page) .field input{font-size:var(--fs-lg)}:where(.home-page) .hit{font-size:var(--fs-sm)}:where(.home-page) .dock-tile{height:320px;padding-left:22px}:where(.home-page) .tagt{height:320px;padding:24px 22px}:where(.home-page) .road{margin-inline:-22px}:where(.home-page) .stars-tile{height:580px;padding:24px 22px}:where(.home-page) .sky{inset:52px 22px 124px}:where(.home-page) .stars-cap{text-align:left;white-space:normal;bottom:66px;left:22px;right:22px}:where(.home-page) .rainbow-category{--cd-w:240px;--cd-x0:18%;--cd-y0:28px;--cd-dy:27px;height:320px}:where(.home-page) .cd-single-card{width:calc(100% - 96px);margin-right:52px}:where(.home-page) .tagt:has(.bubbles){height:440px}:where(.home-page) .arch{height:330px;padding:26px 22px 64px}:where(.home-page) .month-note{gap:18px}:where(.home-page) .month-articles{padding-left:16px}}.home-page .preview:hover .article-sheet,.home-page .preview:focus-within .article-sheet{transform:rotate(-1deg)translateY(-2px)}:where(.archive-page) .top{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:var(--row);gap:var(--gap);display:grid}:where(.archive-page) .hero{flex-direction:column;padding:38px 40px;display:flex}:where(.archive-page) .hero h1{font-size:var(--fs-hero);letter-spacing:-.03em;margin:12px 0 0;font-weight:700;line-height:1}:where(.archive-page) .hero h1 span{color:var(--ink-3);font-weight:500;font-size:var(--fs-2xl);margin-left:10px}:where(.archive-page) .hero h1 .subtitle{font-size:var(--fs-xl);letter-spacing:-.01em;margin-left:12px}:where(.archive-page) .hero .sub{font-size:var(--fs-md);color:var(--ink-2);margin-top:16px}:where(.archive-page) .hero .sub b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}:where(.archive-page) .hero .ctl{align-items:center;gap:10px;margin-top:auto;display:flex}:where(.archive-page) .search{border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;flex:1;align-items:center;gap:12px;min-width:0;height:54px;padding:0 10px 0 18px;transition:border-color .2s,box-shadow .2s;display:flex}:where(.archive-page) .search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent)}:where(.archive-page) .search svg{width:19px;height:19px;color:var(--ink-3);flex:none}:where(.archive-page) .search input{min-width:0;font-size:var(--fs-lg);background:0 0;border:0;outline:0;flex:1}:where(.archive-page) .search input::placeholder{color:var(--ink-4)}:where(.archive-page) .search kbd{font:500 var(--fs-2xs) var(--sans);color:var(--ink-3);border:1px solid var(--line);border-radius:var(--r-xs);padding:2px 7px}:where(.archive-page) .seg{background:var(--line);border-radius:var(--r-sm);flex:none;padding:4px;display:flex}:where(.archive-page) .seg button{border-radius:var(--r-xs);height:46px;font-size:var(--fs-md);color:var(--ink-2);white-space:nowrap;padding:0 18px;transition:background .2s,color .2s}:where(.archive-page) .seg button.on{color:var(--ink);box-shadow:var(--shadow-1);background:#fff;font-weight:600}:where(.archive-page) .rhythm{flex-direction:column;padding:32px 30px 24px;display:flex}:where(.archive-page) .rhythm b.big{font-size:var(--fs-hero);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:12px;font-weight:700;line-height:1}:where(.archive-page) .rhythm b.big small{font-size:var(--fs-md);color:var(--ink-3);letter-spacing:0;margin-left:6px;font-weight:500}:where(.archive-page) .rs{font-size:var(--fs-sm);color:var(--ink-3);flex-direction:column;gap:5px;margin-top:18px;display:flex}:where(.archive-page) .rs span{justify-content:space-between;display:flex}:where(.archive-page) .rs b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:500}:where(.archive-page) .months{grid-template-columns:repeat(12,1fr);align-items:end;gap:4px;margin-top:auto;display:grid}:where(.archive-page) .months button{border-radius:var(--r-xs);flex-direction:column-reverse;align-items:center;gap:3px;padding:4px 0;display:flex}:where(.archive-page) .months button i{border-radius:var(--r-xs);background:var(--accent);width:12px;height:12px}:where(.archive-page) .months button i.none{background:var(--line)}:where(.archive-page) .months button span{font-size:var(--fs-2xs);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-top:3px}:where(.archive-page) .months button:hover:not(:disabled){background:#0000000a}:where(.archive-page) .months button.on{background:var(--bg);outline:1.5px solid var(--accent);outline-offset:-1.5px}:where(.archive-page) .months button:disabled{cursor:default}:where(.archive-page) .rsum{border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-2);margin:auto 0 0;padding-top:14px;line-height:1.6}:where(.archive-page) .rsum button{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:3px;border-radius:var(--r-xs);font-weight:600}:where(.archive-page) .rsum button:hover{text-decoration-color:currentColor}:where(.archive-page) .rsum button.on{color:var(--accent);text-decoration-color:currentColor}:where(.archive-page) .stats-toggle{display:none}:where(.archive-page) .fbar{z-index:10;-webkit-backdrop-filter:blur(14px)saturate(1.5);border:1px solid var(--line);border-radius:var(--r-md);min-height:56px;box-shadow:var(--shadow-3);background:#ffffffd9;align-items:center;gap:12px;margin:32px 0 20px;padding:8px 8px 8px 22px;display:flex;position:sticky;top:84px}:where(.archive-page) .fbar .n{font-size:var(--fs-md);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}:where(.archive-page) .fbar .n small{color:var(--ink-3);margin-left:4px;font-weight:400}:where(.archive-page) .fl{scrollbar-width:none;flex:1;gap:6px;min-width:0;display:flex;overflow-x:auto}:where(.archive-page) .fl::-webkit-scrollbar{display:none}:where(.archive-page) .fl .tk{flex:none;padding-right:6px;animation:.25s both chipIn}:where(.archive-page) .fl .hint{font-size:var(--fs-sm);color:var(--ink-3);white-space:nowrap}:where(.archive-page) .fl .clr{font-size:var(--fs-sm);color:var(--ink-3);flex:none;padding:0 6px}:where(.archive-page) .fl .clr:hover{color:var(--ink)}:where(.archive-page) .vt{background:var(--tile);border-radius:var(--r-sm);flex:none;padding:3px;display:flex}:where(.archive-page) .vt button{border-radius:var(--r-xs);width:40px;height:36px;color:var(--ink-3);place-items:center;display:grid}:where(.archive-page) .vt button svg{width:16px;height:16px}:where(.archive-page) .vt button.on{color:var(--ink);box-shadow:var(--shadow-1);background:#fff}:where(.archive-page) .body{gap:var(--gap);grid-template-columns:330px minmax(0,1fr);align-items:start;display:grid}:where(.archive-page) .aside{gap:var(--gap);flex-direction:column;display:flex;position:sticky;top:164px}:where(.archive-page) .aside .tile{padding:28px 28px 26px}:where(.archive-page) .tcl{flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}:where(.archive-page) .tcl li{min-width:0;max-width:100%}:where(.archive-page) .tcl .tpill{max-width:100%}:where(.archive-page) .tcl .tpill.dim{opacity:.35}:where(.archive-page) .ser h4{font-size:var(--fs-xl);letter-spacing:-.01em;margin:12px 0 2px;font-weight:700}:where(.archive-page) .ser .prog{gap:4px;margin:10px 0 12px;display:flex}:where(.archive-page) .ser .prog i{border-radius:var(--r-pill);background:var(--line-2);flex:1;height:5px}:where(.archive-page) .ser .prog i.d{background:var(--accent)}:where(.archive-page) .ser ol{counter-reset:s;margin:0;padding:0;list-style:none}:where(.archive-page) .ser li a{font-size:var(--fs-md);color:var(--ink-2);align-items:baseline;gap:10px;padding:6px 0;line-height:1.45;display:flex}:where(.archive-page) .ser li a:hover{color:var(--ink)}:where(.archive-page) .ser li a:before{counter-increment:s;content:counter(s, decimal-leading-zero);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--accent);flex:none;font-weight:500}:where(.archive-page) .ser li.todo{font-size:var(--fs-sm);color:var(--ink-4);gap:10px;padding:5px 0;display:flex}:where(.archive-page) .ser li.todo:before{counter-increment:s;content:counter(s, decimal-leading-zero);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex:none;font-weight:500}:where(.archive-page) .ser button.all{font-size:var(--fs-sm);color:var(--accent);margin-top:12px;font-weight:500}:where(.archive-page) .cards{gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}:where(.archive-page) .ysep{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--ink-3);grid-column:1/-1;align-items:center;gap:16px;padding:18px 6px 4px;font-weight:500;display:flex}:where(.archive-page) .ysep:first-child{padding-top:0}:where(.archive-page) .ysep b{font:700 var(--fs-2xl) var(--sans);color:var(--ink);letter-spacing:-.02em}:where(.archive-page) .ysep:after{content:"";border-top:1px solid var(--line);flex:1}:where(.archive-page) .card{flex-direction:column;min-height:240px;padding:28px 30px 24px;transition:transform .3s cubic-bezier(.2,.8,.2,1),background-color .2s;display:flex}:where(.archive-page) .card-image{border-radius:var(--r-md);flex:none;height:188px;margin-bottom:20px;display:block;overflow:hidden}:where(.archive-page) .card-image .article-visual{width:100%;height:100%}:where(.archive-page) .card-image:focus-visible{outline:2px solid var(--accent);outline-offset:3px}:where(.archive-page) .card:hover{transform:translateY(-3px)}:where(.archive-page) .card h3{font-size:var(--fs-xl);letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;padding-right:44px;font-weight:600;line-height:1.38;display:-webkit-box;overflow:hidden}:where(.archive-page) .card p{font-size:var(--fs-md);color:var(--ink-2);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:12px 0 0;line-height:1.65;display:-webkit-box;overflow:hidden}:where(.archive-page) .card .meta{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:auto;padding-top:18px;display:flex}:where(.archive-page) .card .meta .star{color:var(--accent)}:where(.archive-page) .card .meta .tagline{border-radius:var(--r-xs);transition:color .15s}:where(.archive-page) .card .meta .tagline:hover{color:var(--ink)}:where(.archive-page) .card .meta .tagline[aria-pressed=true],:where(.archive-page) .card .meta .tagline[aria-pressed=true] svg{color:var(--accent)}:where(.archive-page) .card mark{background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:inherit;border-radius:var(--r-xs);padding:0 1px}:where(.archive-page) .card.feat,:where(.archive-page) .card.solo{grid-column:1/-1}:where(.archive-page) .card.feat{padding:34px 36px 28px}:where(.archive-page) .card.feat .card-image{height:260px}:where(.archive-page) .card.feat h3{font-size:var(--fs-2xl);letter-spacing:-.02em;line-height:1.3}:where(.archive-page) .card.feat p{-webkit-line-clamp:3;font-size:var(--fs-lg)}:where(.archive-page) .card.solo p{-webkit-line-clamp:2}:where(.archive-page) .lgroup{padding:28px 14px 12px}:where(.archive-page) .lgroup .label{padding:0 14px 8px}:where(.archive-page) .lrow{border-radius:var(--r-sm);cursor:pointer;border:2px solid #0000;align-items:center;gap:16px;padding:14px 16px;transition:background .15s,border-color .15s;animation:.35s both chipIn;display:flex}:where(.archive-page) .lrow:hover{background:var(--bg)}:where(.archive-page) .lrow .t{flex:1;min-width:0}:where(.archive-page) .lrow b{font-size:var(--fs-lg);white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}:where(.archive-page) .lrow .m{font-size:var(--fs-sm);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:3px;display:flex}:where(.archive-page) .lrow .m .star{color:var(--accent)}:where(.archive-page) .lrow .k{font:var(--fs-2xs) var(--sans);color:var(--ink-3);border:1px dashed var(--line-2);border-radius:var(--r-xs);flex:none;padding:1px 6px}:where(.archive-page) .lrow time{font-size:var(--fs-sm);color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums;flex:none}:where(.archive-page) .lrow mark{background:color-mix(in srgb, var(--accent) 16%, var(--bg));color:inherit;border-radius:var(--r-xs)}:where(.archive-page) .empty{text-align:center;color:var(--ink-3);font-size:var(--fs-sm);background:var(--tile);border-radius:var(--r-lg);grid-column:1/-1;padding:80px 0}:where(.archive-page) .empty b{font-size:var(--fs-2xl);color:var(--ink-4);margin-bottom:8px;display:block}:where(.archive-page) .empty button{color:var(--accent);font-size:var(--fs-sm);margin-top:12px}@media (width<=1100px){:where(.archive-page) .top{grid-template-columns:repeat(2,minmax(0,1fr))}:where(.archive-page) .body{grid-template-columns:minmax(0,1fr)}:where(.archive-page) .aside{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:static}:where(.archive-page) .aside .rss-tile{display:none}}@media (width<=640px){:where(.archive-page) .top{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;gap:12px}:where(.archive-page) .w2{grid-column:auto}:where(.archive-page) .hero{padding:24px 20px}:where(.archive-page) .hero h1{font-size:var(--fs-2xl)}:where(.archive-page) .hero .ctl{flex-direction:column;align-items:stretch;margin-top:22px}:where(.archive-page) .seg button{flex:1}:where(.archive-page) .stats-toggle{background:var(--tile);border-radius:var(--r-md);min-height:52px;font-size:var(--fs-md);color:var(--ink);text-align:left;align-items:center;gap:10px;padding:0 20px;font-weight:600;display:flex}:where(.archive-page) .stats-toggle small{min-width:0;font-size:var(--fs-sm);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:400;overflow:hidden}:where(.archive-page) .stats-toggle span{font-size:var(--fs-lg);color:var(--ink-3)}:where(.archive-page) .rhythm:not(.open){display:none}:where(.archive-page) .rhythm{padding:24px 20px 20px}:where(.archive-page) .fbar{padding-left:14px;top:72px}:where(.archive-page) .aside{grid-template-columns:minmax(0,1fr);gap:12px}:where(.archive-page) .aside .ser-tile{display:none}:where(.archive-page) .aside .tags-tile{box-shadow:none;background:0 0;border-radius:0;padding:0;overflow:visible}:where(.archive-page) .tags-tile .label{display:none}:where(.archive-page) .tcl{scrollbar-width:none;flex-direction:row;gap:6px;margin:0;overflow-x:auto}:where(.archive-page) .tcl::-webkit-scrollbar{display:none}:where(.archive-page) .tcl li,:where(.archive-page) .tcl li[hidden]{flex:none;display:block}:where(.archive-page) .tcl{flex-wrap:nowrap}:where(.archive-page) .tcl li{max-width:none}:where(.archive-page) .tcl .tpill{height:34px}:where(.archive-page) .cards{grid-template-columns:minmax(0,1fr);gap:12px}:where(.archive-page) .card,:where(.archive-page) .card.feat{min-height:0;padding:24px 22px 20px}:where(.archive-page) .card-image,:where(.archive-page) .card.feat .card-image{height:190px}:where(.archive-page) .card.feat h3{font-size:var(--fs-xl)}:where(.archive-page) .lrow .k,:where(.archive-page) .lrow time,:where(.archive-page) .hero h1 .subtitle{display:none}}:where(.post-page) .head,:where(.post-page) .body{--pad:44px}:where(.post-page) #prog{z-index:30;background:var(--accent,#0071e3);border-radius:0 var(--r-xs) var(--r-xs) 0;width:0;height:3px;position:fixed;top:0;left:0}:where(.post-page) .label{font-size:var(--fs-sm)}:where(.post-page) .head{gap:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;display:grid}:where(.post-page) .ph{padding:40px var(--pad);flex-direction:column;grid-column:span 2;display:flex}:where(.post-page) .crumb{font-size:var(--fs-md);color:var(--ink-3);align-items:center;gap:8px;display:flex}:where(.post-page) .crumb a,:where(.post-page) .crumb span{white-space:nowrap}:where(.post-page) .crumb a{color:var(--ink-2);align-items:center;gap:6px;transition:color .2s;display:inline-flex}:where(.post-page) .crumb a:hover{color:var(--ink)}:where(.post-page) .crumb .star{color:var(--accent,#0071e3);margin-left:4px}:where(.post-page) .ph h1{font-size:clamp(var(--fs-2xl), 3vw, 44px);letter-spacing:-.03em;text-wrap:balance;margin:28px 0 0;font-weight:700;line-height:1.2}:where(.post-page) .ph .lede{font-size:var(--fs-lg);color:var(--ink-2);text-wrap:pretty;-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:18px 0 0;line-height:1.7;display:-webkit-box;overflow:hidden}:where(.post-page) .ph .meta{font-size:var(--fs-md);flex-wrap:wrap;align-items:baseline;gap:10px 24px;margin-top:auto;padding-top:28px;display:flex}:where(.post-page) .ph .facts{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;flex-wrap:wrap;gap:8px;margin:0;display:flex}:where(.post-page) .ph .facts span[aria-hidden]{color:var(--ink-4)}:where(.post-page) .ph .tags{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}:where(.post-page) .head{container-type:inline-size}:where(.post-page) .pc{min-height:calc((100cqw - var(--gap)) / 2 * 9 / 16);grid-column:span 2;align-self:stretch;padding:0}:where(.post-page) .pc .cover{height:auto;box-shadow:none;border-radius:0;margin:0;position:absolute;inset:0}:where(.post-page) .pc .cover img,:where(.post-page) .pc .cover svg{object-fit:cover;width:100%;height:100%}:where(.post-page) .pc .cover>span{display:none}:where(.post-page) .body{gap:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;margin-top:72px;display:grid}:where(.post-page) .body>.prose{padding-left:var(--pad);grid-column:1/4}:where(.post-page) .aside{gap:var(--gap);flex-direction:column;grid-column:4;display:flex;position:sticky;top:104px}:where(.post-page) .aside .tile{padding:26px 24px 24px}:where(.post-page) .toc .ring{align-items:center;gap:12px;margin:14px 0 10px;display:flex}:where(.post-page) .toc .ring svg{width:38px;height:38px;transform:rotate(-90deg)}:where(.post-page) .toc .ring circle{fill:none;stroke-width:4px}:where(.post-page) .toc .ring b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums;font-weight:600;display:block}:where(.post-page) .toc .ring small{font-size:var(--fs-sm);color:var(--ink-3)}:where(.post-page) .toc ol{margin:0 -12px;padding:0;list-style:none}:where(.post-page) .toc li a{border-radius:var(--r-sm);font-size:var(--fs-md);color:var(--ink-2);align-items:baseline;gap:10px;padding:7px 12px;line-height:1.45;transition:background .15s,color .15s;display:flex}:where(.post-page) .toc li a i{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--ink-3);flex:none;font-style:normal;transition:color .15s}:where(.post-page) .toc li a:hover{color:var(--ink);background:#0000000a}:where(.post-page) .toc li a.on{color:var(--accent,#0071e3);font-weight:500}:where(.post-page) .toc li a.on i{color:var(--accent,#0071e3)}:where(.post-page) .snav h4{font-size:var(--fs-xl);margin:10px 0 0;font-weight:700}:where(.post-page) .snav .prog{gap:4px;margin:10px 0;display:flex}:where(.post-page) .snav .prog i{border-radius:var(--r-pill);background:var(--line-2);flex:1;height:4px}:where(.post-page) .snav .prog i.d{background:var(--ink-3)}:where(.post-page) .snav .prog i.cur{background:var(--accent,#0071e3)}:where(.post-page) .snav ol{margin:0;padding:0;list-style:none}:where(.post-page) .snav li a,:where(.post-page) .snav li span{font-size:var(--fs-md);color:var(--ink-2);gap:10px;padding:6px 0;line-height:1.45;display:flex}:where(.post-page) .snav li a:hover{color:var(--ink)}:where(.post-page) .snav li i{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--ink-3);flex:none;padding-top:1px;font-style:normal}:where(.post-page) .snav li.cur a{color:var(--ink);font-weight:600}:where(.post-page) .snav li.cur i{color:var(--accent,#0071e3)}:where(.post-page) .snav li span{color:var(--ink-4)}:where(.post-page) .acts{grid-template-columns:repeat(3,1fr);gap:4px;display:grid;padding:10px!important}:where(.post-page) .acts button{border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink-2);background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:12px 0 10px;transition:background .15s,color .15s;display:flex}:where(.post-page) .acts button:hover{color:var(--ink);background:#0000000a}:where(.post-page) .acts svg{width:20px;height:20px}:where(.post-page) .prose{font-size:var(--fs-lg);color:var(--ink);max-width:calc(760px + var(--pad,0px));min-width:0;line-height:1.9}:where(.post-page) .prose>p{margin:0 0 1.3em}:where(.post-page) .prose h2{font-size:var(--fs-2xl);letter-spacing:-.025em;align-items:baseline;gap:14px;margin:2.4em 0 .8em;scroll-margin-top:100px;font-weight:700;line-height:1.35;display:flex;position:relative}:where(.post-page) .prose h2 .n{font-size:var(--fs-md);font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--ink-3);flex:none;font-weight:600;transform:translateY(-3px)}:where(.post-page) .prose h2 a.anc{color:var(--ink-4);opacity:0;font-weight:400;transition:opacity .2s;position:absolute;left:-28px}:where(.post-page) .prose h2:hover a.anc{opacity:1}:where(.post-page) .prose h2:first-child{margin-top:0}:where(.post-page) .prose code:not(pre code){font:.86em var(--mono);background:var(--tile);border:1px solid var(--line);border-radius:var(--r-xs);color:var(--ink);padding:.1em .38em}:where(.post-page) .prose strong{font-weight:600}:where(.post-page) .prose a.lk{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2);text-underline-offset:4px;text-decoration-thickness:1.5px;transition:text-decoration-color .2s,color .2s}:where(.post-page) .prose a.lk:hover{color:var(--accent,#0071e3);text-decoration-color:currentColor}:where(.post-page) .prose ul{margin:0 0 1.3em;padding-left:1.2em}:where(.post-page) .prose li{margin:.3em 0}:where(.post-page) .prose li::marker{color:var(--ink-3)}:where(.post-page) .code{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;margin:1.8em 0;position:relative;overflow:hidden}:where(.post-page) .code .tb{border-bottom:1px solid var(--line);background:var(--tile);align-items:center;gap:6px;padding:10px 12px 10px 14px;display:flex}:where(.post-page) .code .tb i{background:var(--line-2);border-radius:50%;width:10px;height:10px}:where(.post-page) .code .tb span{font:var(--fs-sm) var(--mono);color:var(--ink-3);margin-left:8px}:where(.post-page) .code .tb em{font-size:var(--fs-sm);color:var(--ink-3);margin-left:auto;font-style:normal;font-weight:500}:where(.post-page) .code .tb button{font-size:var(--fs-sm);color:var(--ink-2);border-radius:var(--r-xs);background:0 0;border:0;margin-left:10px;padding:2px 8px;font-weight:500;transition:background .15s,color .15s}:where(.post-page) .code .tb button:hover{color:var(--ink);background:#0000000d}:where(.post-page) .code pre{font:var(--fs-md)/1.75 var(--mono);counter-reset:ln;margin:0;padding:18px 0;overflow-x:auto}:where(.post-page) .code pre code{display:block}:where(.post-page) .code pre .l{padding:0 18px 0 0;display:block}:where(.post-page) .code pre .l:before{counter-increment:ln;content:counter(ln);text-align:right;width:44px;color:var(--ink-4);-webkit-user-select:none;user-select:none;padding-right:16px;display:inline-block}:where(.post-page) .code pre .l.hl{background:linear-gradient(var(--accent,#0071e3), var(--accent,#0071e3)) left / 3px 100% no-repeat, color-mix(in srgb, var(--accent,#0071e3) 7%, #fff)}:where(.post-page) .tk-k{color:#d73a49}:where(.post-page) .tk-t{color:#6f42c1}:where(.post-page) .tk-s{color:#032f62}:where(.post-page) .tk-c{color:var(--ink-3);font-style:italic}:where(.post-page) .tk-n{color:#005cc5}:where(.post-page) .tk-p{color:#e36209}:where(.post-page) .prose blockquote{background:var(--tile);border-radius:var(--r-md);font-size:var(--fs-md);color:var(--ink-2);margin:1.8em 0;padding:22px 26px 22px 60px;position:relative}:where(.post-page) .prose blockquote:before{content:"“";font:700 var(--fs-hero)/1 Georgia, serif;color:var(--ink-4);position:absolute;top:6px;left:20px}:where(.post-page) .prose blockquote p{margin:0}:where(.post-page) .prose blockquote cite{font-size:var(--fs-sm);color:var(--ink-3);margin-top:8px;font-style:normal;display:block}:where(.post-page) .tbl{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;margin:1.8em 0;overflow:hidden}:where(.post-page) .tbl table{border-collapse:collapse;width:100%;font-size:var(--fs-md);font-variant-numeric:tabular-nums}:where(.post-page) .tbl th{text-align:left;font-size:var(--fs-sm);color:var(--ink-3);background:var(--tile);border-bottom:1px solid var(--line);padding:11px 18px;font-weight:600}:where(.post-page) .tbl td{border-bottom:1px solid var(--line);padding:11px 18px}:where(.post-page) .tbl tr:last-child td{border-bottom:0}:where(.post-page) .tbl td.r,:where(.post-page) .tbl th.r{text-align:right}:where(.post-page) .tbl .bar{border-radius:var(--r-pill);background:var(--accent,#0071e3);vertical-align:middle;height:6px;margin-right:8px;display:inline-block}:where(.post-page) .tbl caption{caption-side:bottom;text-align:left;font-size:var(--fs-sm);color:var(--ink-3);border-top:1px solid var(--line);padding:10px 18px}:where(.post-page) .fn{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--accent,#0071e3);cursor:pointer;vertical-align:super;padding:0 2px;font-weight:600;line-height:0;position:relative}:where(.post-page) .fn .pop{background:var(--ink);width:280px;color:var(--line);font:400 var(--fs-sm)/1.6 var(--sans);border-radius:var(--r-sm);opacity:0;pointer-events:none;z-index:10;box-shadow:var(--shadow-3);padding:12px 14px;transition:all .2s;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%,4px)}:where(.post-page) .fn:hover .pop,:where(.post-page) .fn:focus .pop{opacity:1;transform:translate(-50%)}:where(.post-page) .callout{border-radius:var(--r-md);background:var(--tile);font-size:var(--fs-md);color:var(--ink-2);gap:14px;margin:1.8em 0;padding:16px 20px;line-height:1.75;display:flex}:where(.post-page) .callout b{font-size:var(--fs-sm);color:var(--accent,#0071e3);flex:none;padding-top:2px;font-weight:600}:where(.post-page) .fns{border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-2);margin-top:3em;padding-top:1.2em;line-height:1.7}:where(.post-page) .fns ol{margin:0;padding-left:1.4em}:where(.post-page) .fns li::marker{color:var(--ink-3);font-variant-numeric:tabular-nums}:where(.post-page) .endmark{color:var(--ink-3);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;align-items:center;gap:14px;margin:2.6em 0 0;display:flex}:where(.post-page) .endmark:before,:where(.post-page) .endmark:after{content:"";border-top:1px solid var(--line);flex:1}:where(.post-page) .short{border-radius:var(--r-sm);background:var(--tile);font-size:var(--fs-sm);color:var(--ink-2);margin:0 0 1.6em;padding:12px 16px;line-height:1.6}:where(.post-page) .after{gap:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(260px,auto);margin-top:88px;display:grid}:where(.post-page) .after .label{margin-bottom:12px}:where(.post-page) .pn{cursor:pointer;align-items:stretch;gap:18px;padding:26px 28px;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex}:where(.post-page) .pn:hover{transform:translateY(-3px)}:where(.post-page) .pn .cover{border-radius:var(--r-md);width:200px;height:auto;box-shadow:none;flex:none;margin:0}:where(.post-page) .pn .cover.toc{padding:10px 12px 0}:where(.post-page) .pn .cover.toc li{font-size:var(--fs-xs);padding:2px 0}:where(.post-page) .pn .cover.toc .th small{display:none}:where(.post-page) .pn .cover.toc li i{font-family:var(--sans);font-variant-numeric:tabular-nums}:where(.post-page) .pn .cover.toc li.more{font-family:var(--sans)}:where(.post-page) .pn .cover .mock,:where(.post-page) .pn .cover>span{display:none}:where(.post-page) .pn .tx{flex-direction:column;flex:1;min-width:0;display:flex}:where(.post-page) .pn h4{font-size:var(--fs-xl);letter-spacing:-.01em;margin:6px 0 0;font-weight:600;line-height:1.4}:where(.post-page) .pn small{font-size:var(--fs-sm);color:var(--ink-3);margin-top:auto;padding-top:12px}:where(.post-page) .pn.next{text-align:right;flex-direction:row-reverse}:where(.post-page) .pn.next .label{justify-content:flex-end}:where(.post-page) .pn.full{grid-column:1/-1}:where(.post-page) .pn.full .cover{width:260px}:where(.post-page) .rel{padding:28px 20px 20px}:where(.post-page) .rel .label{padding:0 8px}:where(.post-page) .rel a{border-radius:var(--r-sm);align-items:center;gap:12px;padding:10px;transition:background .15s;display:flex}:where(.post-page) .rel a:hover{background:#0000000a}:where(.post-page) .rel b{font-size:var(--fs-lg);white-space:nowrap;text-overflow:ellipsis;font-weight:500;line-height:1.4;display:block;overflow:hidden}:where(.post-page) .rel span.m{font-size:var(--fs-sm);color:var(--ink-3)}:where(.post-page) .rel .t{flex:1;min-width:0}:where(.post-page) .rel em{font-style:normal;font-size:var(--fs-md);color:var(--ink-3);flex:none;transition:color .15s}:where(.post-page) .rel a:hover em{color:var(--accent,#0071e3)}:where(.post-page) .me2{flex-direction:column;padding:30px;display:flex}:where(.post-page) .me2 .av{border-radius:50%;width:54px;height:54px}:where(.post-page) .me2 .av span{background:var(--ink);color:#fff;width:100%;height:100%;font-weight:700;font-size:var(--fs-lg);border-radius:50%;place-items:center;display:grid}:where(.post-page) .me2 b{font-size:var(--fs-xl);margin-top:16px}:where(.post-page) .me2 p{font-size:var(--fs-md);color:var(--ink-3);margin:6px 0 0;line-height:1.6}:where(.post-page) .mtoc{display:none}@media (width<=1100px){:where(.post-page) .head,:where(.post-page) .body{--pad:32px}:where(.post-page) .ph{padding-block:32px}:where(.post-page) .body{margin-top:56px}:where(.post-page) .aside .tile{padding:22px 18px 20px}:where(.post-page) .toc li a{font-size:var(--fs-sm);padding-inline:10px}:where(.post-page) .toc ol{margin-inline:-10px}:where(.post-page) .after{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){:where(.post-page) .head{grid-template-columns:minmax(0,1fr)}:where(.post-page) .ph,:where(.post-page) .pc{grid-column:auto}:where(.post-page) .pc{min-height:56.25cqw}:where(.post-page) .ph h1{font-size:clamp(var(--fs-2xl), 5.4vw, 44px)}:where(.post-page) .body{grid-template-columns:minmax(0,1fr)}:where(.post-page) .body>.prose{grid-column:auto}:where(.post-page) .aside{display:none}:where(.post-page) .mtoc{z-index:25;border-radius:var(--r-pill);color:#fff;height:42px;font-size:var(--fs-sm);box-shadow:var(--shadow-3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;background:#111111eb;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:0 16px 0 12px;display:flex;position:fixed;bottom:66px;left:50%;transform:translate(-50%)}:where(.post-page) .mtoc svg{flex:none;width:22px;height:22px;transform:rotate(-90deg)}:where(.post-page) .mtoc span{text-overflow:ellipsis;overflow:hidden}:where(.post-page) .sheetwrap{z-index:45;opacity:0;pointer-events:none;background:#0000004d;transition:all .25s;position:fixed;inset:0}:where(.post-page) .sheetwrap.on{opacity:1;pointer-events:auto}:where(.post-page) .sheetwrap .tile{opacity:1;padding:22px;transition:transform .3s cubic-bezier(.2,.8,.2,1);animation:none;position:absolute;bottom:10px;left:10px;right:10px;transform:translateY(20px)}:where(.post-page) .sheetwrap.on .tile{transform:none}}@media (width<=640px){:where(.post-page) .head,:where(.post-page) .body{--pad:22px}:where(.post-page) .head{gap:12px}:where(.post-page) .ph{padding-block:24px}:where(.post-page) .ph h1{font-size:var(--fs-2xl);margin-top:18px}:where(.post-page) .ph .lede{font-size:var(--fs-md)}:where(.post-page) .ph .meta{padding-top:22px}:where(.post-page) .ph .tags{width:100%;margin-left:0}:where(.post-page) .crumb .ser{display:none}:where(.post-page) .body{margin-top:36px}:where(.post-page) .body>.prose{padding-left:0}:where(.post-page) .prose{font-size:var(--fs-lg);line-height:1.85}:where(.post-page) .prose h2{font-size:var(--fs-xl)}:where(.post-page) .prose h2 a.anc{display:none}:where(.post-page) .code{border-left:0;border-right:0;border-radius:0;margin-left:-14px;margin-right:-14px}:where(.post-page) .code pre{font-size:var(--fs-sm)}:where(.post-page) .code pre .l:before{width:34px;padding-right:12px}:where(.post-page) .tbl{overflow-x:auto}:where(.post-page) .tbl table{min-width:460px}:where(.post-page) .prose blockquote{padding:20px 20px 20px 50px}:where(.post-page) .prose blockquote:before{left:14px}:where(.post-page) .fn .pop{width:230px}:where(.post-page) .after{grid-template-columns:minmax(0,1fr);gap:12px;margin-top:44px}:where(.post-page) .pn .cover{width:110px}:where(.post-page) .pn h4{font-size:var(--fs-lg)}}.about-grid{grid-template-areas:"intro intro topics topics""intro intro stack stats""contact contact contact contact";grid-auto-flow:row;grid-template-rows:var(--row) var(--row) auto}.about-grid>.ab-intro{grid-area:intro}.about-grid>.ab-topics{grid-area:topics}.about-grid>.ab-stack-tile{grid-area:stack}.about-grid>.ab-term{grid-area:stats}.about-grid>.ab-contact{grid-area:contact}.about-grid .ab-intro{flex-direction:column;padding:36px;display:flex}.ab-av{background:conic-gradient(from 200deg,#f97316,#ef4444,#a855f7,#3b82f6,#22c55e,#f97316);border-radius:50%;flex:none;width:96px;height:96px;margin-top:28px;padding:3px}.ab-av img{object-fit:cover;border:4px solid var(--tile);background:var(--ink);border-radius:50%;width:100%;height:100%;display:block}.ab-intro h1{font-size:var(--fs-2xl);letter-spacing:-.02em;margin:22px 0 0;line-height:1.2}.ab-motto{font-size:var(--fs-md);color:var(--ink-3);margin:8px 0 0}.ab-bio{max-width:34em;margin-top:22px}.ab-bio p{font-size:var(--fs-lg);color:var(--ink-2);margin:0;line-height:1.75}.ab-bio p+p{margin-top:10px}.ab-meta{flex-wrap:wrap;gap:12px 36px;margin:auto 0 0;padding-top:24px;display:flex}.ab-meta div{margin:0}.ab-meta dt{font-size:var(--fs-sm);color:var(--ink-3);font-weight:600}.ab-meta dd{font-size:var(--fs-lg);color:var(--ink);font-variant-numeric:tabular-nums;margin:4px 0 0;font-weight:500}.about-grid .ab-topics{flex-direction:column;padding:28px;display:flex}.ab-stack{border-radius:var(--r-pill);flex:none;gap:3px;height:12px;margin:18px 0 14px;display:flex;overflow:hidden}.ab-stack i{min-width:6px}.ab-cats{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:2px 18px;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.ab-cats a{border-radius:var(--r-sm);font-size:var(--fs-md);align-items:center;gap:8px;margin:0 -6px;padding:7px 6px;transition:background-color .15s;display:flex}.ab-cats a:hover{background:var(--bg)}.ab-cats .ri{border-radius:var(--r-xs);width:22px;height:22px}.ab-cat-name{text-overflow:ellipsis;white-space:nowrap;flex:none;width:6.5em;min-width:0;font-weight:500;overflow:hidden}.ab-bar{border-radius:var(--r-pill);background:var(--line);flex:1;min-width:16px;height:6px;overflow:hidden}.ab-bar i{border-radius:inherit;height:100%;display:block}.ab-cat-count{text-align:right;min-width:2ch;font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none}.about-grid .ab-stack-tile{flex-direction:column;padding:28px;display:flex}.ab-chips{flex-wrap:wrap;align-content:flex-start;gap:8px;min-height:0;margin-top:18px;display:flex;overflow:hidden}.about-grid .ab-term{padding:28px}.ab-win{flex-direction:column;height:100%;display:flex;overflow:hidden}.ab-tb{flex:none;align-items:center;gap:6px;padding:0;display:flex}.ab-tb i{background:var(--line-2);border-radius:50%;width:10px;height:10px}.ab-tb span{font:var(--fs-sm) var(--mono);color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin-left:8px;overflow:hidden}.ab-win pre{min-height:0;font:var(--fs-sm)/1.9 var(--mono);color:var(--ink-2);white-space:pre-wrap;flex:1;margin:0;padding:14px 0 0;overflow:hidden}.ab-win pre .p{color:var(--ink-3)}.ab-win pre .s{color:var(--accent)}.ab-win pre .n{color:var(--ink);font-weight:500}.ab-caret{background:var(--ink);vertical-align:-2px;width:7px;height:14px;animation:1s steps(2,end) infinite ab-blink;display:inline-block}@keyframes ab-blink{50%{opacity:0}}.about-grid .ab-contact{padding:28px}.ab-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 0;padding:0;list-style:none;display:grid}.ab-links a{border:1px solid var(--line-2);border-radius:var(--r-md);flex-direction:column;gap:18px;min-height:132px;padding:18px;transition:background-color .2s,transform .2s;display:flex;position:relative}.ab-links a:hover{background:var(--bg);transform:translateY(-1px)}.ab-links a:hover .go,.ab-links a:focus-visible .go{border-color:var(--line-2);background:#ffffffb3}.ab-links a:hover .go svg,.ab-links a:focus-visible .go svg{opacity:1}.ab-ico{border-radius:var(--r-sm);background:var(--bg);width:40px;height:40px;color:var(--ink);flex:none;place-items:center;display:grid}.ab-ico[data-k=rss]{color:var(--accent)}.ab-ico svg{width:20px;height:20px}.ab-txt{min-width:0;margin-top:auto}.ab-txt b{font-size:var(--fs-lg);font-weight:600;display:block}.ab-txt small{font-size:var(--fs-sm);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}@media (width<=1100px){.about-grid{grid-template-areas:"intro intro""topics topics""stack stats""contact contact";grid-template-rows:auto var(--row) var(--row) auto}.about-grid .ab-intro{min-height:var(--row)}.ab-meta{margin-top:0}}@media (width<=640px){.about-grid{grid-template-areas:"intro""topics""stack""stats""contact";grid-template-rows:auto auto auto var(--row) auto}.about-grid .ab-intro,.about-grid .ab-topics,.about-grid .ab-stack-tile,.about-grid .ab-contact{padding:24px}.ab-av{width:80px;height:80px;margin-top:20px}.ab-bio p{font-size:var(--fs-md)}.ab-cats{grid-template-columns:minmax(0,1fr)}.ab-links{grid-template-columns:minmax(0,1fr);gap:10px}.ab-links a{flex-direction:row;align-items:center;gap:14px;min-height:0;padding-right:64px}.ab-txt{margin-top:0}.ab-links .go.go-tr{top:50%;transform:translateY(-50%)}}@media (prefers-reduced-motion:reduce){.ab-caret{animation:none}.ab-links a,.ab-cats a{transition:none}.ab-links a:hover{transform:none}}:root{--shadow-object:none}.nav,.archive-page .fbar,.post-page .mtoc,.go{-webkit-backdrop-filter:none;box-shadow:none}.nav{background:var(--tile);border-color:#0000;position:absolute}.nav .pill{box-shadow:none}.archive-page .fbar{background:var(--surface);top:12px}.archive-page .aside{top:92px}.post-page .aside{top:24px}.post-page .mtoc{bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink)}.about-page .ab-av{background:var(--line)}.go{background:var(--surface);border:0}.go:hover,.go:focus-visible{background:var(--line);box-shadow:none}.go svg{opacity:1}.home-page .row.sel{box-shadow:none}.home-page .mesh{background:var(--line);-webkit-mask-image:none;mask-image:none}.home-page .profile .label{color:var(--ink-2)}.home-page .pavatar{box-shadow:none;outline:3px solid var(--surface)}.home-page .pmain{background:var(--ink);box-shadow:none}.home-page .pround{background:var(--tile);box-shadow:none}.home-page .pround:hover{background:var(--line);box-shadow:none}:is(.home-page .tchip,.archive-page .tcl .tpill)[data-g]{--f:#f6f6f6;--b:#dcdcdc;--t:#4a4a4a;color:var(--t);background:var(--f);box-shadow:inset 0 0 0 1px var(--b)}:is(.home-page .tchip,.archive-page .tcl .tpill)[data-g=blue]{--f:#eff4ff;--b:#c5d5fb;--t:#2b55c9}:is(.home-page .tchip,.archive-page .tcl .tpill)[data-g=purple]{--f:#f5f0ff;--b:#d8c9f7;--t:#6d43c4}:is(.home-page .tchip,.archive-page .tcl .tpill)[data-g=pink]{--f:#fff0f5;--b:#f6c3d6;--t:#b8336a}:is(.home-page .tchip,.archive-page .tcl .tpill)[data-g=amber]{--f:#fff8eb;--b:#f6d9a6;--t:#925b16}:is(.home-page .tchip,.archive-page .tcl .tpill)[data-g=green]{--f:#effbf2;--b:#b6e8c2;--t:#1e7a3c}:is(.home-page .tchip,.archive-page .tcl .tpill)[data-g]:hover{background:color-mix(in srgb, var(--b) 45%, var(--f));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--t) 40%, var(--b))}.archive-page .tcl .tpill svg{color:currentColor}.archive-page .tcl .tpill[aria-pressed=true]{background:var(--t);color:#fff;box-shadow:inset 0 0 0 1px var(--t)}.article-visual{background:var(--line)}.article-visual:before{content:none}.article-sheet,.home-page .preview:hover .article-sheet,.home-page .preview:focus-within .article-sheet{box-shadow:none;transform:none}.sheet-mark{background:var(--tile);color:var(--ink-2)}.sheet-heading{border-bottom:0}.sheet-bottom{border-top:0}.sheet-page{-webkit-mask-image:none;mask-image:none}.archive-page .seg button.on,.archive-page .vt button.on{box-shadow:none}.post-page .code-scroll-hint{display:none}.post-page .code pre{scrollbar-width:thin;scrollbar-color:var(--ink-3) var(--tile);overscroll-behavior-x:contain}.post-page .code pre code{width:max-content;min-width:100%;padding-right:18px}.post-page .code pre:focus-visible{outline-offset:-3px}@media (width<=640px){.post-page .prose .code{border-radius:var(--r-sm);border-inline:1px solid var(--line);margin-inline:0}.post-page .code.has-overflow[open] .code-scroll-hint{color:var(--ink-3);font-size:var(--fs-xs);padding:8px 14px 0;display:block}.post-page .code pre .l:before{width:36px;padding-right:12px}}.archive-page .lrow .list-excerpt,.archive-page .lrow .phone-date{display:none}@media (width<=640px){.archive-page .lgroup{padding:20px 8px 8px}.archive-page .lrow{padding:16px 12px}.archive-page .lrow b{white-space:normal;overflow-wrap:anywhere;font-weight:600;line-height:1.45;overflow:visible}.archive-page .lrow .list-excerpt{-webkit-line-clamp:2;font-size:var(--fs-summary);color:var(--ink-2);-webkit-box-orient:vertical;margin:8px 0;line-height:1.6;display:-webkit-box;overflow:hidden}.archive-page .lrow .phone-date{text-align:left;display:inline}.archive-page .lrow .m{gap:6px 10px}.archive-page .card h3{overflow-wrap:anywhere;-webkit-line-clamp:unset;display:block;overflow:visible}.archive-page .card p{-webkit-line-clamp:2}}.post-page .prose img{max-width:100%;height:auto;margin:24px auto;display:block}.home-page .preview p,.archive-page .card p,.about-page .ab-bio p{font-size:var(--fs-summary)}.post-page .prose{font-size:var(--fs-body)}.post-page .code pre{font-size:var(--fs-code)}.post-page .code summary.tb{cursor:pointer;flex-wrap:wrap;min-height:44px;list-style:none}.post-page .code summary.tb::-webkit-details-marker{display:none}.post-page .code summary.tb>span:first-of-type{overflow-wrap:anywhere;min-width:0}.post-page .code .tb .code-fold-label,.post-page .code .tb .code-fold-label span{font-family:var(--sans);margin-left:0}.post-page .code .when-closed{display:none}.post-page .code:not([open]) .when-closed{display:inline}.post-page .code:not([open]) .when-open{display:none}.post-page .code:not([open]) summary.tb{border-bottom:0}.post-page .code summary.tb:focus-visible{outline-offset:-3px}.post-page .code .tb button{min-height:32px;margin-left:0}.post-page .prose :is(blockquote,.callout,table){font-size:var(--fs-summary)}.post-page .me2 p{color:var(--ink-2)}@media (width<=640px){.post-page{--fs-body:17px}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.not-found{background:var(--tile);border-radius:var(--r-lg);flex-direction:column;justify-content:center;align-items:flex-start;min-height:420px;padding:40px;display:flex}.not-found h1{font-size:var(--fs-2xl);margin:12px 0 0;line-height:1.2}.not-found p{color:var(--ink-2);margin:12px 0 24px}.not-found a{color:var(--accent);font-weight:600}.nav .nav-disabled{color:var(--ink-4);cursor:not-allowed;white-space:nowrap;font-size:var(--fs-md);z-index:1;padding:10px 22px;font-weight:500;position:relative}.nav .nav-disabled+a{margin-left:0}.home-page .load-more{width:100%;color:var(--ink-2);font-size:var(--fs-sm);border-top:1px solid var(--line);padding:12px;display:block}.post-page .prose h2{counter-increment:prose-heading}.post-page .prose h2 .n:before{content:counter(prose-heading, decimal-leading-zero)}.post-page .prose{counter-reset:prose-heading}.post-page .prose h3{font-size:var(--fs-xl);margin:1.8em 0 .7em;line-height:1.35}@media (width<=640px){.nav .nav-disabled{font-size:var(--fs-sm);padding:8px 12px}.not-found{min-height:320px;padding:26px 22px}.not-found h1{font-size:var(--fs-xl)}}#post-list{scroll-margin-top:100px}.home-page .kc:active{box-shadow:0 1px 0 var(--line), 0 4px 10px -8px #00000040;transform:translateY(5px)}.home-page .series-trigger{flex-direction:column;align-items:center;display:flex}.home-page .bar{scrollbar-width:none;overflow-x:auto}.pagination{flex-wrap:wrap;justify-content:center;gap:8px;padding:28px 0;display:flex}.pagination a{border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 13px}.pagination a[aria-current=page]{background:var(--ink);color:#fff}.archive-page .cats{scrollbar-width:none;overflow:auto}.post-page .prose img{border-radius:var(--r-sm);max-width:100%;height:auto}.post-page .prose h3,.post-page .prose h4{scroll-margin-top:100px}.post-page .toc:not(.cover) ol{max-height:50vh;overflow-y:auto}.post-page .sheetwrap .toc ol{max-height:60vh}.post-page .sheetwrap{display:none}@media (width<=860px){.post-page .sheetwrap{display:block}}.post-page .prose>:first-child{margin-top:0}@media (width<=640px){.post-page .w2{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.archive-page .cover-link{display:contents}.archive-page .lgroup+.lgroup{margin-top:16px}.post-page .close-toc{float:right;color:var(--ink-3);font-size:var(--fs-sm)}.post-page .hljs-keyword,.post-page .hljs-selector-tag{color:#d73a49}.post-page .hljs-type,.post-page .hljs-title{color:#6f42c1}.post-page .hljs-string{color:#032f62}.post-page .hljs-comment{color:var(--ink-3);font-style:italic}.post-page .hljs-number,.post-page .hljs-literal{color:#005cc5}.post-page .hljs-params{color:#e36209}
