.V8ugZW_optIn{font-size:var(--text-sm);color:var(--ink);cursor:pointer;align-items:flex-start;gap:9px;line-height:1.45;display:inline-flex}.V8ugZW_optIn input{width:16px;height:16px;accent-color:var(--f-accent);cursor:pointer;flex:none;margin:2px 0 0}.V8ugZW_optIn input:focus-visible{outline:2px solid var(--f-accent);outline-offset:2px}.V8ugZW_optInHint{color:var(--ink-soft);display:block}.V8ugZW_alertBar{flex-wrap:wrap;align-items:center;gap:10px 18px;margin:14px 0 4px;display:flex}.V8ugZW_alertBar button[aria-pressed=true]{border-color:var(--f-accent);color:var(--f-accent)}
.viSb2G_shell{--f-accent:var(--blue);--f-border:var(--hairline);--f-border-strong:color-mix(in srgb, var(--ink) 16%, transparent);--f-soft:color-mix(in srgb, var(--ink) 3%, var(--paper));--f-hover:color-mix(in srgb, var(--ink) 5%, transparent);max-width:1240px;min-height:calc(100vh - 240px);color:var(--ink);grid-template-columns:minmax(0,1fr);gap:24px;margin:0 auto;padding:28px 16px 80px;display:grid}@media (min-width:960px){.viSb2G_shell{grid-template-columns:228px minmax(0,1fr);gap:40px;padding:36px 24px 96px}}.viSb2G_sidebar{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.viSb2G_sidebar::-webkit-scrollbar{display:none}.viSb2G_sideGroup{display:contents}.viSb2G_sideHeading{display:none}.viSb2G_sideLink{border:1px solid var(--f-border);color:var(--ink);font-size:var(--text-md);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:9px;padding:7px 12px;text-decoration:none;display:inline-flex}.viSb2G_sideLink:hover{background:var(--f-hover)}.viSb2G_sideLink[aria-current=page]{border-color:var(--ink);background:var(--ink);color:var(--paper)}.viSb2G_sideSub{display:none}@media (min-width:960px){.viSb2G_sidebar{top:calc(var(--site-header-height) + 18px);max-height:calc(100vh - var(--site-header-height) - 36px);flex-direction:column;align-self:start;gap:2px;padding:0;position:sticky;overflow-y:auto}.viSb2G_sideGroup{flex-direction:column;gap:2px;margin-bottom:18px;display:flex}.viSb2G_sideHeading{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 6px 10px;display:block}.viSb2G_sideLink{border:0;border-radius:8px;padding:7px 10px}.viSb2G_sideLink[aria-current=page]{background:color-mix(in srgb, var(--f-accent) 10%, transparent);color:var(--ink);font-weight:var(--font-weight-semibold)}.viSb2G_sideSub{font-size:var(--text-sm);color:var(--ink-soft);padding-left:30px;display:flex}}.viSb2G_dot{border-radius:3px;flex-shrink:0;width:9px;height:9px}.viSb2G_sideIcon{color:var(--ink-soft);flex-shrink:0}.viSb2G_main{min-width:0}.viSb2G_head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 24px;margin-bottom:24px;display:flex}.viSb2G_headText{gap:8px;max-width:64ch;display:grid}.viSb2G_title{font-size:var(--text-4xl);font-weight:var(--font-weight-semibold);letter-spacing:-.025em;margin:0;line-height:1.1}.viSb2G_lead{font-size:var(--text-base);color:var(--ink-soft);margin:0;line-height:1.6}.viSb2G_crumbs{font-size:var(--text-sm);color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.viSb2G_crumbs a{color:inherit;text-decoration:none}.viSb2G_crumbs a:hover{color:var(--ink);text-decoration:underline}.viSb2G_categoryBanner{border:1px solid var(--f-border);border-left:4px solid var(--cat,var(--f-accent));background:var(--f-soft);border-radius:12px;padding:18px 20px}.viSb2G_headActions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.viSb2G_searchForm{align-items:center;display:flex;position:relative}.viSb2G_searchForm svg{color:var(--ink-muted);pointer-events:none;position:absolute;left:12px}.viSb2G_searchInput{border:1px solid var(--f-border-strong);background:var(--paper);width:min(260px,70vw);min-height:40px;color:var(--ink);font:inherit;font-size:var(--text-md);border-radius:999px;padding:8px 12px 8px 36px}.viSb2G_searchInput:focus{border-color:var(--f-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--f-accent) 20%, transparent);outline:none}.viSb2G_btn,.viSb2G_btnGhost,.viSb2G_btnSmall{font:inherit;font-weight:var(--font-weight-semibold);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:7px;text-decoration:none;transition:transform .15s,background-color .15s,border-color .15s,opacity .15s;display:inline-flex}.viSb2G_btn{border:1px solid var(--ink);background:var(--ink);min-height:40px;color:var(--paper);font-size:var(--text-md);padding:0 18px}.viSb2G_btn:hover{transform:translateY(-1px)}.viSb2G_btn:disabled{opacity:.6;cursor:progress;transform:none}.viSb2G_btnGhost{border:1px solid var(--f-border-strong);min-height:40px;color:var(--ink);font-size:var(--text-md);background:0 0;padding:0 16px}.viSb2G_btnGhost:hover{background:var(--f-hover)}.viSb2G_btnSmall{min-height:30px;color:var(--ink-soft);font-size:var(--text-sm);font-weight:var(--font-weight-medium);background:0 0;border:1px solid #0000;padding:0 10px}.viSb2G_btnSmall:hover{background:var(--f-hover);color:var(--ink)}.viSb2G_btnSmall[aria-pressed=true]{color:var(--danger,#dc2626)}.viSb2G_btn:focus-visible,.viSb2G_btnGhost:focus-visible,.viSb2G_btnSmall:focus-visible{outline:2px solid var(--f-accent);outline-offset:2px}.viSb2G_tabs{border-bottom:1px solid var(--f-border);gap:4px;margin:0 0 14px;display:flex}.viSb2G_tab{color:var(--ink-soft);font-size:var(--text-md);font-weight:var(--font-weight-medium);border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 12px;text-decoration:none}.viSb2G_tab:hover{color:var(--ink)}.viSb2G_tab[aria-current=page]{border-bottom-color:var(--f-accent);color:var(--ink)}.viSb2G_cats{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:36px;display:grid}@media (min-width:720px){.viSb2G_cats{grid-template-columns:repeat(2,minmax(0,1fr))}}.viSb2G_catCard{border:1px solid var(--f-border);border-left:4px solid var(--cat,var(--f-accent));background:var(--paper);border-radius:12px;align-content:start;gap:10px;padding:18px 18px 16px;transition:border-color .15s,box-shadow .15s;display:grid}.viSb2G_catCard:hover{box-shadow:var(--shadow-card-soft)}.viSb2G_catTop{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.viSb2G_catName{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin:0}.viSb2G_catName a{color:inherit;text-decoration:none}.viSb2G_catName a:after{content:"";position:absolute;inset:0}.viSb2G_catCard{position:relative}.viSb2G_catWeekly{font-size:var(--text-sm);color:var(--ink-soft);font-variant-numeric:tabular-nums;flex-shrink:0}.viSb2G_catDesc{font-size:var(--text-md);color:var(--ink-soft);margin:0;line-height:1.55}.viSb2G_catSubs{z-index:1;flex-wrap:wrap;gap:6px;display:flex;position:relative}.viSb2G_catSubs a{border:1px solid var(--f-border);color:var(--ink);font-size:var(--text-sm);border-radius:999px;padding:3px 9px;text-decoration:none}.viSb2G_catSubs a:hover{background:var(--f-hover)}.viSb2G_catLatest{z-index:1;border-top:1px solid var(--f-border);gap:4px;margin:2px 0 0;padding:10px 0 0;list-style:none;display:grid;position:relative}.viSb2G_catLatest a{color:var(--ink);font-size:var(--text-sm);justify-content:space-between;gap:12px;text-decoration:none;display:flex}.viSb2G_catLatest a:hover span:first-child{text-decoration:underline}.viSb2G_catLatest span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viSb2G_catLatest time{color:var(--ink-muted);flex-shrink:0}.viSb2G_sectionTitle{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);margin:0 0 12px}.viSb2G_list{border:1px solid var(--f-border);background:var(--paper);border-radius:12px;overflow:hidden}.viSb2G_listHead,.viSb2G_row{grid-template-columns:minmax(0,1fr);gap:6px 16px;padding:14px 16px;display:grid}.viSb2G_listHead{border-bottom:1px solid var(--f-border);background:var(--f-soft);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);display:none}.viSb2G_row+.viSb2G_row{border-top:1px solid var(--f-border)}.viSb2G_row:hover{background:color-mix(in srgb, var(--ink) 2%, transparent)}@media (min-width:760px){.viSb2G_listHead,.viSb2G_row{grid-template-columns:minmax(0,1fr) 64px 64px 64px 76px;align-items:center}.viSb2G_listHead{display:grid}}.viSb2G_num{text-align:center;font-size:var(--text-md);color:var(--ink-soft);font-variant-numeric:tabular-nums;display:none}.viSb2G_numStrong{color:var(--ink);font-weight:var(--font-weight-semibold)}@media (min-width:760px){.viSb2G_num{display:block}}.viSb2G_rowMain{gap:6px;min-width:0;display:grid}.viSb2G_rowTitle{font-size:var(--text-base);font-weight:var(--font-weight-semibold);align-items:baseline;gap:7px;margin:0;line-height:1.4;display:flex}.viSb2G_rowTitle a{color:var(--ink);text-decoration:none}.viSb2G_rowTitle a:hover{color:var(--f-accent)}.viSb2G_rowTitle svg{color:var(--ink-muted);flex-shrink:0;align-self:center}.viSb2G_rowExcerpt{-webkit-line-clamp:2;font-size:var(--text-md);color:var(--ink-soft);-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.viSb2G_meta{font-size:var(--text-sm);color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.viSb2G_mobileStats{gap:10px;display:inline-flex}@media (min-width:760px){.viSb2G_mobileStats{display:none}}.viSb2G_empty{text-align:center;color:var(--ink-soft);padding:40px 20px}.viSb2G_empty p{margin:0 0 14px}.viSb2G_more{justify-content:center;margin-top:18px;display:flex}.viSb2G_catPill{color:var(--ink-soft);font-size:var(--text-sm);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.viSb2G_catPill:hover{color:var(--ink)}.viSb2G_tag{background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink-soft);font-size:var(--text-xs);border-radius:999px;padding:1px 8px}.viSb2G_status{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;--s:var(--ink-soft);border:1px solid color-mix(in srgb, var(--s) 35%, transparent);background:color-mix(in srgb, var(--s) 10%, transparent);color:color-mix(in srgb, var(--s) 80%, var(--ink));border-radius:999px;align-items:center;gap:5px;padding:2px 9px;display:inline-flex}.viSb2G_status[data-status=under-review]{--s:#7c3aed}.viSb2G_status[data-status=planned]{--s:#2563eb}.viSb2G_status[data-status=in-progress]{--s:#d97706}.viSb2G_status[data-status=shipped]{--s:#16a34a}.viSb2G_status[data-status=declined]{--s:#6b7280}.viSb2G_solved{color:var(--green,#16a34a);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);align-items:center;gap:4px;display:inline-flex}.viSb2G_staff{background:color-mix(in srgb, var(--f-accent) 12%, transparent);color:var(--f-accent);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;display:inline-flex}.viSb2G_topicHead{align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.viSb2G_voteBox{border:1px solid var(--f-border-strong);background:var(--paper);min-width:56px;color:var(--ink);font:inherit;cursor:pointer;border-radius:12px;justify-items:center;gap:2px;padding:8px 6px;transition:border-color .15s,background-color .15s;display:grid}.viSb2G_voteBox:hover{border-color:var(--f-accent)}.viSb2G_voteBox[aria-pressed=true]{border-color:var(--f-accent);background:color-mix(in srgb, var(--f-accent) 10%, transparent);color:var(--f-accent)}.viSb2G_voteBox strong{font-size:var(--text-lg);font-variant-numeric:tabular-nums}.viSb2G_voteBox span{font-size:var(--text-xs);color:var(--ink-soft)}.viSb2G_topicTitle{font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;line-height:1.2}.viSb2G_topicMeta{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:10px 0 0;display:flex}.viSb2G_statusNote{border:1px solid var(--f-border);background:var(--f-soft);font-size:var(--text-md);border-radius:10px;gap:4px;margin:18px 0 0;padding:12px 14px;line-height:1.55;display:grid}.viSb2G_statusNote a{color:var(--f-accent)}.viSb2G_stats{border-block:1px solid var(--f-border);font-size:var(--text-sm);color:var(--ink-soft);flex-wrap:wrap;gap:18px;margin:18px 0 8px;padding:12px 0;display:flex}.viSb2G_stats strong{color:var(--ink);font-size:var(--text-base);font-variant-numeric:tabular-nums;display:block}.viSb2G_posts{margin:0;padding:0;list-style:none;display:grid}.viSb2G_post{border-bottom:1px solid var(--f-border);scroll-margin-top:calc(var(--site-header-height) + 16px);grid-template-columns:40px minmax(0,1fr);gap:14px;padding:22px 0;display:grid}.viSb2G_post[data-solution=true]{border:1px solid color-mix(in srgb, var(--green,#16a34a) 40%, transparent);background:color-mix(in srgb, var(--green,#16a34a) 5%, transparent);border-radius:12px;margin:8px 0;padding:18px 16px}.viSb2G_avatar{background:hsl(var(--hue,210) 70% 92%);width:40px;height:40px;color:hsl(var(--hue,210) 55% 32%);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}html.dark .viSb2G_avatar{background:hsl(var(--hue,210) 35% 26%);color:hsl(var(--hue,210) 80% 85%)}.viSb2G_avatarSmall{width:22px;height:22px;font-size:var(--text-2xs,.6875rem)}.viSb2G_postHead{font-size:var(--text-md);flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;display:flex}.viSb2G_postAuthor{font-weight:var(--font-weight-semibold)}.viSb2G_postTime{color:var(--ink-muted);font-size:var(--text-sm);text-decoration:none}.viSb2G_postTime:hover{text-decoration:underline}.viSb2G_postActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;margin-top:10px;display:flex}.viSb2G_hiddenNote{font-size:var(--text-md);color:var(--ink-muted);margin:0;font-style:italic}.viSb2G_prose{font-size:var(--text-base);overflow-wrap:anywhere;line-height:1.7}.viSb2G_prose>:first-child{margin-top:0}.viSb2G_prose>:last-child{margin-bottom:0}.viSb2G_prose p,.viSb2G_prose ul,.viSb2G_prose ol,.viSb2G_prose blockquote,.viSb2G_prose pre{margin:0 0 14px}.viSb2G_prose ul,.viSb2G_prose ol{padding-left:1.4em}.viSb2G_prose ul{list-style:outside}.viSb2G_prose ol{list-style:decimal}.viSb2G_prose li::marker{color:var(--ink-soft)}.viSb2G_prose li+li{margin-top:4px}.viSb2G_prose h3{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin:20px 0 8px}.viSb2G_prose a{color:var(--f-accent);text-underline-offset:2px;text-decoration:underline}.viSb2G_prose blockquote{border-left:3px solid var(--f-border-strong);color:var(--ink-soft);padding:4px 14px}.viSb2G_prose code{background:color-mix(in srgb, var(--ink) 7%, transparent);font-family:var(--font-mono);border-radius:5px;padding:1px 5px;font-size:.9em}.viSb2G_prose pre{background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:10px;padding:12px 14px;overflow-x:auto}.viSb2G_prose pre code{background:0 0;padding:0}.viSb2G_prose img{border:1px solid var(--f-border);background:var(--f-soft);border-radius:10px;width:auto;max-width:100%;height:auto;max-height:640px;margin:6px 0;display:block}.viSb2G_replyCard,.viSb2G_notice{border:1px solid var(--f-border);background:var(--paper);border-radius:12px;margin-top:24px;padding:18px}.viSb2G_notice{background:var(--f-soft);font-size:var(--text-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.viSb2G_related{margin-top:40px}.viSb2G_composer{gap:18px;display:grid}.viSb2G_field{gap:7px;min-width:0;display:grid}.viSb2G_label{font-size:var(--text-md);font-weight:var(--font-weight-medium)}.viSb2G_hint{font-size:var(--text-sm);color:var(--ink-soft)}.viSb2G_input,.viSb2G_select,.viSb2G_textarea{border:1px solid var(--f-border-strong);background-color:var(--paper);width:100%;min-height:44px;color:var(--ink);font:inherit;font-size:var(--text-base);border-radius:10px;padding:10px 13px}.viSb2G_textarea{resize:vertical;border-top-left-radius:0;border-top-right-radius:0;min-height:220px;line-height:1.6}.viSb2G_input:focus,.viSb2G_select:focus,.viSb2G_textarea:focus{border-color:var(--f-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--f-accent) 18%, transparent);outline:none}.viSb2G_row2{grid-template-columns:minmax(0,1fr);gap:18px;display:grid}@media (min-width:640px){.viSb2G_row2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.viSb2G_toolbar{border:1px solid var(--f-border-strong);background:var(--f-soft);border-bottom:0;border-radius:10px 10px 0 0;flex-wrap:wrap;align-items:center;gap:2px;padding:4px 6px;display:flex}.viSb2G_toolbar button{width:32px;height:30px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.viSb2G_toolbar button:hover{background:var(--f-hover);color:var(--ink)}.viSb2G_toolbarSpacer{flex:1}.viSb2G_toolbar .viSb2G_modeTab{width:auto;font:inherit;font-size:var(--text-sm);font-weight:var(--font-weight-medium);padding:0 10px}.viSb2G_toolbar .viSb2G_modeTab[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 0 0 1px var(--f-border)}.viSb2G_previewBox{border:1px solid var(--f-border-strong);background:var(--paper);border-radius:0 0 10px 10px;min-height:220px;padding:14px 16px}.viSb2G_uploadStatus,.viSb2G_uploadError{font-size:var(--text-sm);color:var(--ink-soft);margin:8px 0 0}.viSb2G_uploadError{color:var(--danger,#dc2626)}.viSb2G_uploadError a{color:var(--f-accent);font-weight:var(--font-weight-medium);text-underline-offset:2px;text-decoration:underline}.viSb2G_tagPicker{flex-wrap:wrap;gap:6px;display:flex}.viSb2G_tagPicker button{border:1px solid var(--f-border-strong);color:var(--ink-soft);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px}.viSb2G_tagPicker button[aria-pressed=true]{border-color:var(--f-accent);background:color-mix(in srgb, var(--f-accent) 10%, transparent);color:var(--ink)}.viSb2G_error{border:1px solid color-mix(in srgb, var(--danger,#dc2626) 35%, transparent);background:color-mix(in srgb, var(--danger,#dc2626) 7%, transparent);font-size:var(--text-md);border-radius:10px;padding:10px 13px}.viSb2G_honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.viSb2G_actionsRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.viSb2G_inlinePanel{border:1px solid var(--f-border);background:var(--f-soft);border-radius:10px;gap:10px;margin-top:10px;padding:12px;display:grid}
._2-eyQq_doc h2{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--ink);margin:26px 0 8px}._2-eyQq_doc h2:first-child{margin-top:0}
