.blog-index{max-width:900px;min-height:65vh;padding-block:80px 70px}.blog-heading{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:48px;display:flex}.blog-heading h1,.post-header h1{letter-spacing:-2px;overflow-wrap:anywhere;font-size:54px;font-weight:600;line-height:1.12}.blog-heading>a,.post-footer a{color:var(--muted);font-size:13px}.blog-search{margin-bottom:28px}.blog-search input{border:1px solid var(--line);background:var(--light);width:100%;color:inherit;border-radius:12px;padding:14px 18px;font-size:15px}.blog-search input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}#search-status:not(:empty){color:var(--muted);margin-top:20px;font-size:13px}#search-results{margin:0;padding:0;list-style:none}#search-results li{border-bottom:1px solid var(--line);padding-block:28px}#search-results a{font-size:23px;font-weight:500}#search-results p{color:var(--muted);margin-top:12px;line-height:1.7}.blog-filter-group{align-items:baseline;gap:18px;margin-block:12px;font-size:12px;display:flex}.blog-filter-group>span{width:48px;color:var(--muted);flex-shrink:0}.blog-filter-group>div{flex-wrap:wrap;gap:8px;display:flex}.blog-filter-group button{border:1px solid var(--line);background:0 0;border-radius:20px;padding:8px 13px;font-size:12px}.blog-filter-group button[aria-pressed=true]{color:#fff;background:#1d1d1f;border-color:#1d1d1f}.blog-clear{color:var(--blue);background:0 0;border:none;padding:8px 0;font-size:12px}.blog-posts{margin:34px 0 0;padding:0;list-style:none}.blog-posts>li{border-top:1px solid var(--line);grid-template-columns:120px minmax(0,1fr);gap:32px;padding:32px 0;display:grid}.blog-posts time{color:var(--muted);padding-top:7px;font-size:12px}.blog-posts h2{letter-spacing:-.5px;overflow-wrap:anywhere;font-size:25px;font-weight:500;line-height:1.3}.blog-posts p{color:var(--muted);margin-top:12px;font-size:15px;line-height:1.7}.post-tags{color:var(--muted);flex-wrap:wrap;gap:10px 18px;margin-top:18px;font-size:12px;display:flex}.post-tags a:hover,.blog-posts h2 a:hover,.post-footer a:hover,.blog-heading a:hover{color:var(--blue)}.blog-empty{color:var(--muted);padding-block:30px 80px;font-size:16px}.blog-article{padding-block:42px 70px}.blog-article>.back-link,.post-header,.post-footer{max-width:680px;margin-inline:auto;display:block}.post-header{margin-block:60px 44px}.post-meta{color:var(--muted);flex-wrap:wrap;gap:12px 24px;margin-top:24px;font-size:13px;display:flex}.post-updated{color:var(--muted);margin-top:12px;font-size:12px}.draft-label{color:var(--muted);margin-bottom:18px;font-size:13px}.post-cover{border-radius:16px;width:100%;height:auto;margin-top:36px;display:block}.post-layout{grid-template-columns:minmax(0,1fr) minmax(0,680px) minmax(0,1fr);display:grid}.blog-prose{color:#37373c;overflow-wrap:anywhere;--gray:110, 110, 115;grid-column:2;min-width:0;font-size:17px;line-height:1.85}.toc-column{grid-column:3;min-width:0}.post-content>:first-child{margin-top:0}.post-content p,.post-content ul,.post-content ol{margin-block:0 24px}.post-content li+li{margin-top:6px}.post-content h2{letter-spacing:-.6px;margin:48px 0 18px;font-size:29px;font-weight:500;line-height:1.3}.post-content h3{margin:32px 0 14px;font-size:22px;font-weight:500}.post-content :is(h2,h3){scroll-margin-top:30px}.post-content a{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.post-content img,.post-content video{border-radius:12px;max-width:100%;height:auto}.post-content pre{background:var(--light);border-radius:12px;padding:22px;font-size:13px;line-height:1.7;overflow-x:auto}.post-content code{background:var(--light);border-radius:4px;padding:2px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.post-content pre code{background:0 0;border-radius:0;padding:0}.post-content blockquote{border-left:2px solid var(--line);color:var(--muted);margin:28px 0;padding-left:22px}.post-content table{border-collapse:collapse;max-width:100%;margin-block:28px;font-size:15px;display:block;overflow-x:auto}.post-content th,.post-content td{border-bottom:1px solid var(--line);text-align:left;padding:12px 18px}.post-content hr{border:0;border-top:1px solid var(--line);margin-block:42px}.post-footer{border-top:1px solid var(--line);justify-content:space-between;margin-top:64px;padding-top:30px;display:flex}markmap-chart{border:1px solid var(--line);background:#fff;border-radius:12px;margin:28px 0;display:block}markmap-chart svg{width:100%;height:380px;display:block}rain-scene{height:var(--rain-height,220px);background:var(--light);border-radius:12px;place-items:center;margin:28px 0;display:grid;position:relative;overflow:hidden}rain-scene canvas{display:block;position:absolute;inset:0}rain-scene .rain-text{letter-spacing:.2em;color:var(--muted);font-size:1.6em;position:relative}@media (width<=1119px){.post-layout{max-width:680px;margin-inline:auto;display:block}.toc-column{display:none}}@media (width<=760px){.blog-index{padding-top:54px}.blog-heading{margin-bottom:32px}.blog-heading h1,.post-header h1{letter-spacing:-1.2px;font-size:40px}.blog-posts>li{grid-template-columns:1fr;gap:12px;padding-block:26px}.post-header{margin-top:40px}.blog-prose{font-size:16px}.post-content h2{font-size:25px}markmap-chart svg{height:300px}}.post-discussion{border-top:1px solid var(--line);max-width:680px;margin:64px auto 0;padding-top:36px}.post-discussion h2{letter-spacing:-.5px;font-size:25px;font-weight:500}.comment-status{color:var(--muted);margin-top:16px;font-size:13px;line-height:1.6}.comment-list{margin:20px 0;padding:0;list-style:none}.comment-list li{border-bottom:1px solid var(--line);padding:22px 0}.comment-list li>div{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.comment-list strong{font-size:14px;font-weight:500}.comment-list time{color:var(--muted);font-size:12px}.comment-list p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px;font-size:15px;line-height:1.8}.comment-form{gap:18px;margin-top:32px;display:grid}.comment-form label{gap:8px;font-size:13px;display:grid}.comment-form input,.comment-form textarea{font:inherit;border:1px solid var(--line);width:100%;min-width:0;color:inherit;background:#fff;border-radius:10px;padding:12px 14px;font-size:15px}.comment-form textarea{resize:vertical;line-height:1.7}.comment-form input:focus-visible,.comment-form textarea:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.comment-form .button{justify-self:start}.comment-form .button:disabled{opacity:.5;cursor:wait}.comment-note{color:var(--muted);font-size:12px;line-height:1.7}.comment-more{color:var(--blue);background:0 0;border:0;padding:10px 0;font-size:13px}.comment-honeypot{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}
