.journal-shell{--vs-title:clamp(40px, 5.2vw, 68px);--vs-title-leading:1.02;--vs-hub-title:clamp(36px, 4.4vw, 56px);--vs-hero-copy:36rem;--vs-cover-ratio:1200 / 630;--vs-card-min:18rem;--vs-table-min-width:38rem;--vs-cell-icon:1.1em;--vs-flow-index:1.75rem;--vs-yes:var(--status-task-done);--vs-partial:var(--status-task-todo);--vs-no:var(--journal-muted)}.vs-eyebrow{font-size:var(--journal-small);font-weight:var(--journal-weight);letter-spacing:.08em;text-transform:uppercase;color:var(--journal-muted)}.vs-grid{gap:var(--journal-s7) var(--journal-s6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.vs-card{min-width:0;color:inherit;flex-direction:column;text-decoration:none;display:flex}.vs-card-thumb{aspect-ratio:var(--vs-cover-ratio);border:var(--journal-hairline) solid var(--journal-rule);border-radius:var(--journal-radius);background:var(--journal-surface);display:block;overflow:hidden}.vs-card-thumb img{object-fit:cover;width:100%;height:100%;transition:transform var(--t-medium) var(--ease-enter);display:block}.vs-card:hover .vs-card-thumb img,.vs-card:focus-visible .vs-card-thumb img{transform:scale(1.03)}.vs-card-body{gap:var(--journal-s2);padding-top:var(--journal-s4);flex-direction:column;display:flex}.vs-card-kicker{font-size:var(--journal-small);letter-spacing:.06em;text-transform:uppercase;color:var(--journal-muted)}.vs-card-title{font-size:var(--journal-card-title);line-height:1.2}.vs-card-decision{font-size:var(--journal-body);color:var(--journal-text);line-height:1.4}.vs-card-excerpt{font-size:var(--journal-label);color:var(--journal-muted);line-height:1.6}.vs-card-link{margin-top:var(--journal-s2);font-size:var(--journal-label);font-weight:var(--journal-weight);color:var(--journal-text)}.vs-card:hover .vs-card-link{text-underline-offset:var(--journal-s1);text-decoration:underline}.vs-hub-hero{align-items:center;gap:var(--journal-s9);margin-bottom:var(--journal-s10);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);display:grid}.vs-hub-copy{gap:var(--journal-s4);flex-direction:column;display:flex}.vs-hub-hero h1{font-size:var(--vs-hub-title);line-height:1.05}.vs-hub-dek{margin-inline:0!important}.vs-hub-cover,.vs-hero-cover{aspect-ratio:var(--vs-cover-ratio);border:var(--journal-hairline) solid var(--journal-rule);border-radius:var(--journal-radius);background:var(--journal-surface);margin:0;overflow:hidden}.vs-hub-cover img,.vs-hero-cover img{object-fit:cover;width:100%;height:100%;display:block}.vs-group+.vs-group{margin-top:var(--journal-s10)}.vs-group-heading{gap:var(--journal-s2);margin-bottom:var(--journal-s6);padding-top:var(--journal-s5);border-top:var(--journal-hairline) solid var(--journal-rule);flex-direction:column;display:flex}.vs-group-heading h2{font-size:var(--journal-section-title);line-height:1.12}.vs-group-heading p{max-width:var(--journal-dek-width);font-size:var(--journal-body);color:var(--journal-muted);line-height:1.6}.vs-hub .journal-cta{margin-top:var(--journal-s11);margin-inline:calc(-1 * var(--journal-gutter))}.vs-article{padding-top:var(--journal-s5)}.vs-hero{align-items:center;gap:var(--journal-s9);max-width:var(--journal-width);padding-inline:var(--journal-gutter);margin:0 auto var(--journal-s8);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);display:grid}.vs-hero-copy{align-items:flex-start;gap:var(--journal-s4);max-width:var(--vs-hero-copy);flex-direction:column;display:flex}.vs-hero .journal-back{max-width:none;padding:0 0 var(--journal-s2);text-align:left;margin:0}.vs-hero-title{font-size:var(--vs-title);line-height:var(--vs-title-leading);text-wrap:balance}.vs-hero-vs{color:var(--journal-muted);font-weight:400}.vs-hero-dek{text-wrap:pretty;margin-inline:0!important}.vs-hero-meta{justify-content:flex-start}.vs-hero-meta a{color:var(--journal-text);text-decoration:none}.vs-hero-meta a:hover{text-underline-offset:var(--journal-s1);text-decoration:underline}.vs-quick-take{max-width:calc(var(--journal-wide-width) + 2 * var(--journal-gutter));padding-inline:var(--journal-gutter);margin:0 auto}.vs-quick-take h2{font-family:var(--font-sans);font-size:var(--journal-small);font-weight:var(--journal-weight);letter-spacing:.08em;text-transform:uppercase;color:var(--journal-muted);margin-bottom:var(--journal-s4)}.vs-quick-take-body{gap:var(--journal-s4);padding:var(--journal-s6);border:var(--journal-hairline) solid var(--journal-rule);border-radius:var(--journal-radius);background:var(--journal-surface);font-size:var(--journal-dek);text-wrap:pretty;flex-direction:column;line-height:1.5;display:flex}.vs-quick-take-body p{margin:0}.vs-quick-take-body strong{font-weight:var(--journal-weight)}.vs-body{max-width:calc(var(--journal-wide-width) + 2 * var(--journal-gutter));padding-inline:var(--journal-gutter);margin:var(--journal-s8) auto var(--journal-s10)}.vs-body .prose>:first-child,.vs-body .prose h2:first-child{margin-top:0}.vs-body .prose :is(ul,ol){padding-inline-start:var(--journal-s5)}.vs-body .prose ul{list-style:outside}.vs-body .prose ol{list-style:decimal}.vs-body .prose li+li{margin-top:var(--journal-s2)}.vs-body .prose .vs-flow-steps li{margin:0}.vs-body .prose .vs-table{max-width:100%;margin-block:var(--journal-s5) var(--journal-s7);container-type:inline-size}.vs-body .prose .vs-table-hint{margin:0 0 var(--journal-s3);color:var(--journal-muted);font-size:var(--journal-small);line-height:1.7;display:none}@container not (min-width:38rem){.vs-body .prose .vs-table-hint{display:block}}.vs-table-scroll{-webkit-overflow-scrolling:touch;border:var(--journal-hairline) solid var(--journal-rule);border-radius:var(--journal-radius);overflow-x:auto}.vs-table-scroll:focus-visible{outline:var(--journal-focus) solid var(--journal-text);outline-offset:var(--journal-focus-offset)}.vs-body .prose .vs-table table{width:100%;min-width:var(--vs-table-min-width);border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:var(--journal-label);margin:0;line-height:1.5}.vs-body .prose .vs-table :is(th,td){padding:var(--journal-s4);text-align:left;vertical-align:top;border:0;border-bottom:var(--journal-hairline) solid var(--journal-rule);overflow-wrap:anywhere}.vs-body .prose .vs-table tbody tr:last-child td{border-bottom:0}.vs-body .prose .vs-table th{font-weight:var(--journal-weight);font-size:var(--journal-small);letter-spacing:.06em;text-transform:uppercase;color:var(--journal-muted);background:var(--journal-surface)}.vs-body .prose .vs-table :is(th,td):first-child{z-index:1;background:var(--journal-bg);border-right:var(--journal-hairline) solid var(--journal-rule);width:32%;position:sticky;left:0}.vs-body .prose .vs-table th:first-child{background:var(--journal-surface)}.vs-body .prose .vs-table td:first-child{font-weight:var(--journal-weight);color:var(--journal-text)}.vs-body .prose .vs-table th:nth-child(2){color:var(--journal-bg);background:var(--journal-text)}.vs-body .prose .vs-table td:nth-child(2){background:var(--journal-surface)}.vs-cell{align-items:baseline;gap:var(--journal-s1) var(--journal-s2);flex-wrap:wrap;display:flex}.vs-verdict-icon{width:var(--vs-cell-icon);height:var(--vs-cell-icon);fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;align-self:center}.vs-verdict-half{fill:currentColor;stroke:none}.vs-cell--yes .vs-verdict-icon{color:var(--vs-yes)}.vs-cell--partial .vs-verdict-icon{color:var(--vs-partial)}.vs-cell--no .vs-verdict-icon{color:var(--vs-no)}.vs-cell-verdict{font-weight:var(--journal-weight);color:var(--journal-text)}.vs-cell--no .vs-cell-verdict{color:var(--journal-muted)}.vs-cell-note{color:var(--journal-muted);flex-basis:100%}.vs-body .prose .vs-screenshot img{border:var(--journal-hairline) solid var(--journal-rule);border-radius:var(--journal-radius);width:100%}.vs-body .prose .vs-flow{max-width:100%}.vs-body .prose .vs-flow-people{gap:var(--journal-s3);margin:0 0 var(--journal-s3);grid-template-columns:repeat(5,minmax(0,1fr));padding:0;list-style:none;display:grid}.vs-flow-person{align-items:flex-start;gap:var(--journal-s2);padding:var(--journal-s2) var(--journal-s3);border:var(--journal-hairline) dashed var(--journal-muted);border-radius:var(--journal-radius);font-size:var(--journal-small);color:var(--journal-text);line-height:1.4;display:flex}.vs-flow-person-icon{width:var(--journal-s4);height:var(--journal-s4);margin-top:var(--journal-s1);fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;flex:none}.vs-flow-steps{gap:var(--journal-s3);counter-reset:none;grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.vs-flow-step{gap:var(--journal-s2);padding:var(--journal-s4);border:var(--journal-hairline) solid var(--journal-rule);border-radius:var(--journal-radius);background:var(--journal-surface);font-size:var(--journal-small);flex-direction:column;line-height:1.5;display:flex;position:relative}.vs-flow-step+.vs-flow-step:before{content:"";top:50%;left:calc(-1 * var(--journal-s3));width:var(--journal-s3);border-top:var(--journal-hairline) solid var(--journal-muted);position:absolute}.vs-flow-index{width:var(--vs-flow-index);height:var(--vs-flow-index);border-radius:var(--r-pill);background:var(--journal-text);color:var(--journal-bg);font-family:var(--font-mono);font-size:var(--journal-small);font-weight:var(--journal-weight);place-items:center;display:inline-grid}.vs-flow-label{font-size:var(--journal-label);font-weight:var(--journal-weight);color:var(--journal-text)}.vs-flow-note{color:var(--journal-muted)}.vs-cta-install{margin:0 auto var(--journal-s5);padding:var(--journal-s3) var(--journal-s5);border:var(--journal-hairline) solid var(--journal-rule);border-radius:var(--journal-radius);background:var(--journal-bg);color:var(--journal-text);font-family:var(--font-mono);font-size:var(--journal-label);white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;line-height:1.6;display:inline-block}.vs-cta-github{width:var(--journal-s4);height:var(--journal-s4);margin-right:var(--journal-s2)}.vs-cta-hub{margin-top:var(--journal-s5)!important}.vs-cta-hub a{color:var(--journal-text)}.vs-related{padding-block:var(--journal-s9) var(--journal-s10)}.vs-related-inner{max-width:var(--journal-width);padding-inline:var(--journal-gutter);margin:0 auto}.vs-related h2{font-size:var(--journal-section-title);margin-bottom:var(--journal-s6);line-height:1.12}@media (max-width:1023px){.vs-hero,.vs-hub-hero{gap:var(--journal-s6);grid-template-columns:1fr}.vs-hero-cover,.vs-hub-cover{order:-1}.vs-hero-copy{max-width:var(--journal-heading-width)}.vs-flow-steps,.vs-body .prose .vs-flow-people{grid-template-columns:1fr}.vs-flow-person{grid-column:auto!important}.vs-flow-step+.vs-flow-step:before{top:calc(-1 * var(--journal-s3));left:var(--journal-s5);width:0;height:var(--journal-s3);border-top:0;border-left:var(--journal-hairline) solid var(--journal-muted)}}@media (max-width:1023px) and (min-width:768px){.vs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.vs-article{padding-top:var(--journal-s4)}.vs-hero{margin-bottom:var(--journal-s6)}.vs-hero-title{font-size:var(--journal-mobile-title);line-height:var(--journal-mobile-title-leading)}.vs-hero-dek{font-size:var(--journal-body);line-height:var(--journal-mobile-dek-leading)}.vs-hero-meta{gap:var(--journal-s2) var(--journal-s4)}.vs-hub-hero{margin-bottom:var(--journal-s8)}.vs-quick-take-body{padding:var(--journal-s5);font-size:var(--journal-body);line-height:1.55}.vs-body{margin-block:var(--journal-s7) var(--journal-s9)}.vs-body .prose .vs-table :is(th,td){padding:var(--journal-s3)}.vs-grid{grid-template-columns:1fr}.vs-group+.vs-group{margin-top:var(--journal-s9)}}
