.blog-page{--ink:#000;--paper:#fff;--card:#f4f4f4;--yellow:#fece08;--yellow-soft:#fffbea;--mut:#4a4a4a;--dim:#6b6b6b;--hair:#d9d9d9;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--ease:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.23,1,.32,1);--r:16px;--r-sm:10px;--nav-h:64px;--z-nav:50;--z-progress:49;--z-drawer:70;--z-modal:120;--z-toast:130}.blog-page *{box-sizing:border-box;margin:0;padding:0}.blog-page ol{list-style:decimal}.blog-page ul{list-style:outside}.blog-page{scrollbar-gutter:stable;-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:17px;line-height:1.6;overflow-x:clip}.blog-page a{color:inherit;text-decoration:none}.blog-page img{max-width:100%;display:block}.blog-page button{font:inherit;color:inherit}.blog-page ::selection{background:var(--yellow);color:var(--ink)}.blog-page :focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}.blog-page h1,.blog-page h2,.blog-page h3{letter-spacing:-.03em;text-wrap:balance;font-weight:700;line-height:1.04}.blog-page .sr{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.blog-page .skip{background:var(--yellow);color:var(--ink);z-index:100;border-radius:0 0 var(--r-sm) 0;transition:transform .2s var(--ease);padding:12px 18px;font-weight:700;position:absolute;top:0;left:0;transform:translateY(-140%)}.blog-page .skip:focus{transform:none}.blog-page .sec{max-width:1500px;margin:0 auto;padding:96px 32px}.blog-page section{border-bottom:2px solid var(--ink)}.blog-page .intro{letter-spacing:.08em;text-transform:uppercase;color:var(--mut);align-items:center;gap:16px;font-size:14px;font-weight:500;display:flex}.blog-page .intro:before{content:"";background:var(--ink);flex:none;width:40px;height:2px}.blog-page h1{letter-spacing:-.035em;max-width:14ch;margin-top:28px;font-size:clamp(40px,6.4vw,96px);line-height:.95}.blog-page h1 mark,.blog-page h2 mark,.blog-page .pull mark{box-shadow:inset 0 -.24em var(--yellow);-webkit-box-decoration-break:clone;box-decoration-break:clone;background:0 0;border-radius:5px;padding:0 .04em}.blog-page h2{max-width:22ch;font-size:clamp(30px,4vw,60px)}.blog-page .lede{max-width:58ch;color:var(--mut);text-wrap:pretty;margin-top:22px;font-size:18px}.blog-page .lede b{color:var(--ink);font-weight:700}.blog-page .btn{border:2px solid var(--ink);border-radius:var(--r-sm);letter-spacing:.06em;text-transform:uppercase;background:var(--paper);cursor:pointer;transition:transform .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease);justify-content:center;align-items:center;gap:10px;padding:16px 30px;font-size:14px;font-weight:700;display:inline-flex}.blog-page .btn.primary{background:var(--yellow)}.blog-page .btn:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-2px,-2px)}.blog-page .btn:active{box-shadow:none;transition-duration:80ms;transform:scale(.97)}.blog-page .btn.small{padding:11px 18px;font-size:12.5px}.blog-page .pill{border:2px solid var(--ink);background:var(--paper);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .14s var(--ease),color .14s var(--ease),transform .14s var(--ease);border-radius:999px;align-items:center;gap:8px;padding:8px 15px;font-size:12.5px;font-weight:700;display:inline-flex}.blog-page .pill:hover{background:var(--yellow)}.blog-page .pill:active{transform:scale(.96)}.blog-page .pill[aria-pressed=true]{background:var(--ink);color:var(--paper)}.blog-page .pill small{letter-spacing:.02em;opacity:.75;font-weight:500}.blog-page code{font-family:var(--mono);font-size:.9em}.blog-page .bloghero .sec{padding-bottom:0}.blog-page .crumbs{letter-spacing:.06em;text-transform:uppercase;color:var(--mut);flex-wrap:wrap;gap:10px;font-size:13px;font-weight:500;list-style:none;display:flex}.blog-page .crumbs a:hover{color:var(--ink)}.blog-page .crumbs li+li:before{content:"/";color:#bbb;margin-right:10px}.blog-page .crumbs [aria-current]{color:var(--ink)}.blog-page .featured{border:2px solid var(--ink);border-radius:var(--r);grid-template-columns:1.25fr .75fr;margin-top:64px;display:grid;overflow:hidden}.blog-page .featured>a{transition:background .18s var(--ease);padding:48px 44px;display:block}.blog-page .featured>a:hover{background:var(--yellow)}.blog-page .ftag{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;font-size:12.5px;font-weight:700;display:inline-flex}.blog-page .ftag:before{content:"";background:var(--yellow);border:2px solid var(--ink);border-radius:50%;width:8px;height:8px}.blog-page .featured>a:hover .ftag:before{background:var(--paper)}.blog-page .featured h2{max-width:18ch;margin-top:22px;font-size:clamp(28px,3.4vw,52px)}.blog-page .fdek{max-width:52ch;color:var(--mut);text-wrap:pretty;margin-top:18px;font-size:17px}.blog-page .featured>a:hover .fdek{color:#3a3000}.blog-page .fmeta{letter-spacing:.06em;text-transform:uppercase;color:var(--mut);flex-wrap:wrap;gap:8px 22px;margin-top:30px;font-size:13px;font-weight:500;display:flex}.blog-page .featured>a:hover .fmeta{color:var(--ink)}.blog-page .fside{border-left:2px solid var(--ink);background:var(--card);flex-direction:column;justify-content:space-between;gap:28px;padding:44px 40px;display:flex;position:relative}.blog-page .fside h3{letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;font-weight:700;display:flex}.blog-page .fside h3 small{letter-spacing:.02em;text-transform:none;color:var(--dim);font-size:12.5px;font-weight:500}.blog-page .fside ol{flex-direction:column;margin-top:18px;list-style:none;display:flex}.blog-page .fside li{border-top:2px solid var(--ink);padding:14px 0;font-size:15.5px;font-weight:500;line-height:1.4}.blog-page .fside li:last-child{border-bottom:2px solid var(--ink)}.blog-page .fside .railtitle{letter-spacing:-.01em;margin-top:4px;font-size:15px;font-weight:700;line-height:1.3}.blog-page .fside .readlink{letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid var(--ink);align-self:flex-start;padding-bottom:2px;font-size:14px;font-weight:700}.blog-page .fside .readlink:hover{box-shadow:inset 0 -.6em var(--yellow)}.blog-page .railbody{transition:opacity .22s var(--ease),transform .22s var(--ease)}.blog-page .railbody.swap{opacity:0;transform:translateY(6px)}.blog-page .toolbar{flex-wrap:wrap;align-items:center;gap:14px 18px;margin-bottom:28px;display:flex}.blog-page .search{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--paper);height:48px;transition:box-shadow .16s var(--ease);flex:320px;align-items:center;gap:10px;padding:0 14px;display:flex}.blog-page .search:focus-within{box-shadow:4px 4px 0 var(--ink)}.blog-page .search svg{flex:none;width:18px;height:18px}.blog-page .search input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:0;outline:0;flex:1;height:100%;font-size:16px}.blog-page .search input::placeholder{color:var(--dim)}.blog-page .search kbd{font-family:var(--sans);font-variant-numeric:tabular-nums;border:1px solid var(--hair);color:var(--dim);border-radius:6px;padding:2px 7px;font-size:11px}.blog-page .search .clear{cursor:pointer;background:0 0;border:0;border-radius:50%;width:28px;height:28px;font-size:18px;line-height:1;display:none}.blog-page .search .clear:hover{background:var(--card)}.blog-page .search.has .clear{display:block}.blog-page .search.has kbd{display:none}.blog-page .sort{letter-spacing:.04em;color:var(--mut);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.blog-page .sort select{font:inherit;letter-spacing:.04em;text-transform:uppercase;border:2px solid var(--ink);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23000' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat right 12px center;appearance:none;cursor:pointer;border-radius:999px;padding:8px 32px 8px 14px;font-size:13px;font-weight:700}.blog-page .filters{flex-wrap:wrap;gap:10px;margin-bottom:34px;display:flex}.blog-page .filters .pill.saved[aria-pressed=false]:not(.has){display:none}.blog-page .count{color:var(--dim);letter-spacing:.04em;margin-left:auto;font-size:13px}.blog-page .ledger{border-top:2px solid var(--ink)}.blog-page .post{border-bottom:2px solid var(--ink);border-radius:var(--r);transition:background .18s var(--ease);grid-template-columns:150px 1fr 210px 44px 40px;align-items:center;gap:24px;margin:0 -20px;padding:28px 20px;display:grid;position:relative}.blog-page .post:hover,.blog-page .post:focus-within{background:var(--yellow)}.blog-page .post time{letter-spacing:.06em;text-transform:uppercase;color:var(--mut);font-size:13px;font-weight:500}.blog-page .post:hover time,.blog-page .post:hover .pmeta,.blog-page .post:focus-within time,.blog-page .post:focus-within .pmeta{color:#3a3000}.blog-page .ptitle{letter-spacing:-.015em;text-wrap:balance;font-size:clamp(19px,1.7vw,25px);font-weight:700;line-height:1.22}.blog-page .ptitle a:after{content:"";border-radius:var(--r);position:absolute;inset:0}.blog-page .ptitle a:focus-visible{outline:none}.blog-page .post:focus-within{outline:2px solid var(--ink);outline-offset:-2px}.blog-page .ptitle mark{background:var(--yellow);border-radius:4px;padding:0 2px}.blog-page .post:hover .ptitle mark,.blog-page .post:focus-within .ptitle mark{background:var(--paper)}.blog-page .pmeta{letter-spacing:.06em;text-transform:uppercase;color:var(--mut);justify-content:space-between;gap:16px;font-size:13px;font-weight:500;display:flex}.blog-page .pmeta i{font-style:normal}.blog-page .pread{align-items:center;gap:6px;display:inline-flex}.blog-page .pread:before{content:"";border:2px solid;border-radius:50%;width:8px;height:8px}.blog-page .post.read .pread:before{background:currentColor}.blog-page .save{z-index:1;border:2px solid var(--ink);background:var(--paper);cursor:pointer;width:44px;height:44px;transition:transform .14s var(--ease),background .14s var(--ease);border-radius:50%;place-items:center;display:grid;position:relative}.blog-page .save svg{fill:none;stroke:currentColor;stroke-width:2.2px;width:16px;height:16px}.blog-page .save:hover{transform:scale(1.06)}.blog-page .save:active{transform:scale(.94)}.blog-page .save[aria-pressed=true]{background:var(--ink);color:var(--yellow)}.blog-page .save[aria-pressed=true] svg{fill:currentColor}.blog-page .parrow{transition:transform .2s var(--ease);justify-self:end;font-size:22px}.blog-page .post:hover .parrow,.blog-page .post:focus-within .parrow{transform:translate(6px)}.blog-page .post[hidden]{display:none}.blog-page .empty{color:var(--mut);padding:48px 0;display:none}.blog-page .ledger.none+.empty{display:block}.blog-page .ledgerfoot{color:var(--mut);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:28px;font-size:14px;display:flex}.blog-page .paths .sec{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:64px;display:grid}.blog-page .pathlist{border:2px solid var(--ink);border-radius:var(--r);grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.blog-page .path{border-right:2px solid var(--ink);flex-direction:column;gap:14px;padding:28px 26px 30px;display:flex}.blog-page .path:last-child{border-right:0}.blog-page .path b{letter-spacing:-.02em;font-size:18px;line-height:1.2}.blog-page .path ol{flex-direction:column;list-style:none;display:flex}.blog-page .path li{border-top:1px solid var(--hair);padding:11px 0;font-size:14.5px;line-height:1.4}.blog-page .path li a{align-items:flex-start;gap:10px;display:flex}.blog-page .path li a:before{content:"";border:2px solid var(--ink);width:8px;height:8px;transition:background .15s var(--ease);border-radius:50%;flex:none;margin-top:6px}.blog-page .path li a:hover:before{background:var(--yellow)}.blog-page .path li a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.blog-page .whyread .sec{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.blog-page .whyread ul{flex-direction:column;list-style:none;display:flex}.blog-page .whyread li{border-top:2px solid var(--ink);grid-template-columns:28px 1fr;gap:14px;padding:20px 0;font-size:17px;display:grid}.blog-page .whyread li:last-child{border-bottom:2px solid var(--ink)}.blog-page .whyread li:before{content:"";background:var(--yellow);border:2px solid var(--ink);border-radius:50%;width:12px;height:12px;margin-top:6px}.blog-page .whyread li b{display:block}.blog-page .whyread li span{color:var(--mut);font-size:15.5px}.blog-page .final{border-bottom:0}.blog-page .final .sec{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:40px;padding-top:80px;padding-bottom:80px;display:flex}.blog-page .final p{max-width:44ch;color:var(--mut);margin-top:16px}.blog-page .progress{top:var(--nav-h);transform-origin:0;background:var(--yellow);width:100%;height:3px;z-index:var(--z-progress);position:fixed;left:0;transform:scaleX(0)}.blog-page .arthead .sec{padding-bottom:56px}.blog-page .arthead h1{letter-spacing:-.03em;max-width:18ch;font-size:clamp(34px,5vw,80px);line-height:.98}.blog-page .arthead .lede{max-width:56ch;font-size:20px}.blog-page .artmeta{letter-spacing:.06em;text-transform:uppercase;color:var(--mut);flex-wrap:wrap;gap:12px 32px;margin-top:32px;font-size:13px;font-weight:500;display:flex}.blog-page .artmeta b{color:var(--ink);font-weight:700}.blog-page .artmeta .topic{color:var(--ink);align-items:center;gap:8px;font-weight:700;display:inline-flex}.blog-page .artmeta .topic:before{content:"";background:var(--yellow);border:2px solid var(--ink);border-radius:50%;width:8px;height:8px}.blog-page .artbody .sec{grid-template-columns:240px minmax(0,70ch);align-items:start;gap:88px;padding-top:72px;display:grid}.blog-page .rail{top:calc(var(--nav-h) + 28px);flex-direction:column;gap:32px;display:flex;position:sticky}.blog-page .rail h3{letter-spacing:.08em;text-transform:uppercase;font-size:12.5px;font-weight:700}.blog-page .toc{border-top:2px solid var(--ink);margin-top:12px;list-style:none}.blog-page .toc li{border-bottom:1px solid var(--hair)}.blog-page .toc a{color:var(--mut);transition:color .15s var(--ease);grid-template-columns:10px 1fr;align-items:center;gap:10px;padding:11px 0;font-size:14.5px;font-weight:500;display:grid}.blog-page .toc a:before{content:"";border:2px solid var(--ink);background:var(--paper);width:8px;height:8px;transition:background .15s var(--ease);border-radius:50%}.blog-page .toc a:hover{color:var(--ink)}.blog-page .toc a.on{color:var(--ink);font-weight:700}.blog-page .toc a.on:before{background:var(--yellow)}.blog-page .railshare{flex-wrap:wrap;gap:10px;display:flex}.blog-page .railshare a,.blog-page .railshare button{letter-spacing:.06em;text-transform:uppercase;border:2px solid var(--ink);background:var(--paper);cursor:pointer;transition:background .14s var(--ease),color .14s var(--ease),transform .14s var(--ease);border-radius:999px;padding:9px 14px;font-size:12.5px;font-weight:700}.blog-page .railshare a:hover,.blog-page .railshare button:hover{background:var(--ink);color:var(--paper)}.blog-page .railshare a:active,.blog-page .railshare button:active{transform:scale(.96)}.blog-page .railcta{border:2px solid var(--ink);border-radius:var(--r);background:var(--yellow);padding:22px 22px 24px}.blog-page .railcta p{font-size:15px;font-weight:500;line-height:1.45}.blog-page .railcta .btn{margin-top:16px;padding:12px 18px;font-size:12.5px}.blog-page .tocmobile{display:none}.blog-page .prose{text-wrap:pretty;font-size:18px;line-height:1.7}.blog-page .prose>*+*{margin-top:1.35em}.blog-page .prose h2{letter-spacing:-.02em;scroll-margin-top:calc(var(--nav-h) + 40px);max-width:none;margin-top:2.2em;font-size:clamp(26px,2.6vw,38px);line-height:1.12}.blog-page .prose h3{letter-spacing:-.01em;scroll-margin-top:calc(var(--nav-h) + 40px);margin-top:1.8em;font-size:22px}.blog-page .prose a{border-bottom:2px solid var(--ink)}.blog-page .prose a:hover{box-shadow:inset 0 -.55em var(--yellow)}.blog-page .prose ul,.blog-page .prose ol{padding-left:1.3em}.blog-page .prose li+li{margin-top:.5em}.blog-page .prose code{background:var(--card);border-radius:6px;padding:.1em .4em;font-size:.88em;font-weight:600}.blog-page .prose pre{background:var(--ink);color:#f2f2f2;border-radius:var(--r);white-space:pre-wrap;overflow-wrap:anywhere;font-size:14.5px;line-height:1.55;font-family:var(--mono);padding:22px 26px}.blog-page .prose pre code{color:inherit;background:0 0;padding:0;font-size:1em;font-weight:500}.blog-page .prose pre i{color:var(--yellow);font-style:normal}.blog-page .prose pre b{color:var(--yellow);font-weight:500}.blog-page .short{border:2px solid var(--ink);border-radius:var(--r);background:var(--card);padding:26px 30px 30px}.blog-page .short h2{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:13px;font-weight:700}.blog-page .short ol{margin-top:14px;padding-left:1.2em;font-size:17px;font-weight:500}.blog-page .short li+li{margin-top:.55em}.blog-page .prose table{border-collapse:collapse;width:100%;font-size:15.5px}.blog-page .prose th,.blog-page .prose td{text-align:left;border-bottom:2px solid var(--ink);vertical-align:top;padding:13px 16px}.blog-page .prose th{letter-spacing:.06em;text-transform:uppercase;background:var(--card);font-size:12.5px;font-weight:700}.blog-page .prose tr:last-child td{border-bottom:0}.blog-page .prose td em{background:var(--yellow);border-radius:5px;padding:0 6px;font-style:normal;font-weight:700}.blog-page .prose figure{margin-top:2em}.blog-page .prose figcaption{color:var(--mut);margin-top:10px;font-size:13.5px}.blog-page .tablewrap{border:2px solid var(--ink);border-radius:var(--r);overflow-x:auto}.blog-page .pull{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);letter-spacing:-.02em;text-wrap:balance;margin:2.4em 0;padding:26px 0 28px;font-size:clamp(24px,2.4vw,32px);font-weight:700;line-height:1.2}.blog-page .midcta{background:var(--ink);color:var(--paper);border-radius:var(--r);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;margin-top:3em;padding:34px 36px;display:flex}.blog-page .midcta p{color:#ddd;max-width:38ch;font-size:17px}.blog-page .midcta p b{color:var(--paper)}.blog-page .midcta .btn{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}.blog-page .midcta .btn:hover{box-shadow:4px 4px 0 var(--paper)}.blog-page .nextprev{border:2px solid var(--ink);border-radius:var(--r);grid-template-columns:1fr 1fr;margin-top:3em;display:grid;overflow:hidden}.blog-page .nextprev a{transition:background .16s var(--ease);flex-direction:column;gap:6px;padding:22px 24px;display:flex}.blog-page .nextprev a:hover{background:var(--yellow)}.blog-page .nextprev a+a{border-left:2px solid var(--ink);text-align:right;align-items:flex-end}.blog-page .nextprev small{letter-spacing:.08em;text-transform:uppercase;color:var(--mut);font-size:12px;font-weight:700}.blog-page .nextprev b{letter-spacing:-.01em;font-size:16px;line-height:1.3}.blog-page .related .sec{padding-top:80px}.blog-page .related h2{margin-bottom:34px}.blog-page .widget{border:2px solid var(--ink);border-radius:var(--r);background:var(--paper);margin-top:2.2em;overflow:hidden}.blog-page .widget>header{background:var(--yellow);border-bottom:2px solid var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;padding:16px 24px;display:flex}.blog-page .widget>header h3{letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:10px;margin:0;font-size:13px;font-weight:700;display:flex}.blog-page .widget>header h3:before{content:"";background:var(--paper);border:2px solid var(--ink);border-radius:50%;width:10px;height:10px}.blog-page .widget>header small{color:#3a3000;font-size:12.5px;font-weight:500}.blog-page .wbody{padding:22px 24px 26px;font-size:15.5px}.blog-page .wbody>*+*{margin-top:16px}.blog-page .wgrid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 20px;display:grid}.blog-page .field{flex-direction:column;gap:6px;display:flex}.blog-page .field span{letter-spacing:.06em;text-transform:uppercase;color:var(--mut);font-size:12px;font-weight:700}.blog-page .field input,.blog-page .field select,.blog-page .field textarea{border:2px solid var(--ink);border-radius:var(--r-sm);width:100%;font:inherit;background:var(--paper);color:var(--ink);padding:11px 13px;font-size:15px}.blog-page .field textarea{resize:vertical;min-height:140px;font-family:var(--mono);font-size:13px;line-height:1.5}.blog-page .field input:focus,.blog-page .field select:focus,.blog-page .field textarea:focus{outline:2px solid var(--yellow);outline-offset:1px}.blog-page .field .hint{text-transform:none;letter-spacing:0;color:var(--dim);font-size:12.5px;font-weight:400}.blog-page .range{grid-template-columns:1fr auto;align-items:center;gap:6px 14px;display:grid}.blog-page .range span{grid-column:1/-1}.blog-page .range input[type=range]{width:100%;accent-color:var(--ink);height:32px}.blog-page .range output{font-family:var(--sans);font-variant-numeric:tabular-nums;text-align:right;min-width:5.5ch;font-size:15px;font-weight:700}.blog-page .wout{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--card);padding:18px 20px}.blog-page .wout .big{letter-spacing:-.03em;font-size:clamp(28px,3vw,40px);font-weight:700;line-height:1}.blog-page .wout .big small{letter-spacing:0;color:var(--mut);margin-left:6px;font-size:14px;font-weight:500}.blog-page .wout p{color:var(--mut);margin-top:8px;font-size:14.5px}.blog-page .wout.good{background:var(--yellow-soft)}.blog-page .wrow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.blog-page .wnote{color:var(--dim);font-size:13px}.blog-page .wtable{border-collapse:collapse;width:100%;font-size:14.5px}.blog-page .wtable th,.blog-page .wtable td{text-align:left;border-bottom:1px solid var(--hair);vertical-align:top;padding:10px 12px}.blog-page .wtable th{letter-spacing:.06em;text-transform:uppercase;color:var(--mut);font-size:12px;font-weight:700}.blog-page .wtable tr:last-child td{border-bottom:0}.blog-page .wtable td:last-child{text-align:right;font-family:var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.blog-page .wtable td b{font-family:var(--sans)}.blog-page .check{border-top:2px solid var(--ink);flex-direction:column;list-style:none;display:flex}.blog-page .check li{border-bottom:1px solid var(--hair)}.blog-page .check label{cursor:pointer;grid-template-columns:26px 1fr auto;align-items:start;gap:14px;min-height:48px;padding:13px 4px;display:grid}.blog-page .check input{width:22px;height:22px;accent-color:var(--ink);cursor:pointer;margin-top:2px}.blog-page .check label:has(input:checked) .ct{color:var(--dim);text-decoration:line-through}.blog-page .check .ct{font-size:15.5px;line-height:1.45}.blog-page .check .ct small{color:var(--dim);margin-top:2px;font-size:13.5px;display:block}.blog-page .check .cw{letter-spacing:.06em;text-transform:uppercase;color:var(--dim);white-space:nowrap;padding-top:4px;font-size:11.5px;font-weight:700}.blog-page .checkbar{color:var(--mut);align-items:center;gap:14px;font-size:13.5px;display:flex}.blog-page .checkbar .track{border:2px solid var(--ink);background:var(--paper);border-radius:999px;flex:1;height:8px;overflow:hidden}.blog-page .checkbar .fill{background:var(--yellow);width:0;height:100%;transition:width .35s var(--ease)}.blog-page .checkbar output{font-family:var(--sans);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}.blog-page .checkbar button{cursor:pointer;color:var(--dim);background:0 0;border:0;font-size:13px;text-decoration:underline}.blog-page .wlist{border-top:2px solid var(--ink);list-style:none}.blog-page .wlist li{border-bottom:1px solid var(--hair);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 4px;font-size:14.5px;display:grid}.blog-page .wlist li code{word-break:break-all;font-size:13px}.blog-page .wlist .tag{letter-spacing:.06em;text-transform:uppercase;border:2px solid var(--ink);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700}.blog-page .wlist .tag.warn{background:var(--yellow)}.blog-page .wlist .tag.ok{background:var(--paper);color:var(--dim);border-color:var(--hair)}.blog-page .wpre{background:var(--ink);color:#f2f2f2;border-radius:var(--r-sm);font-family:var(--mono);white-space:pre;max-height:280px;padding:16px 18px;font-size:13px;line-height:1.55;overflow:auto}.blog-page .opts{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.blog-page .opt{border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--paper);cursor:pointer;text-align:left;transition:background .14s var(--ease),transform .14s var(--ease);min-height:48px;padding:12px 14px;font-size:14.5px;line-height:1.35}.blog-page .opt:hover{background:var(--card)}.blog-page .opt:active{transform:scale(.97)}.blog-page .opt[aria-pressed=true]{background:var(--ink);color:var(--paper)}.blog-page .opt b{font-size:15px;display:block}.blog-page .opt small{color:var(--dim);margin-top:2px;font-size:13px;display:block}.blog-page .opt[aria-pressed=true] small{color:#bbb}.blog-page .qstep{display:none}.blog-page .qstep.on{display:block}.blog-page .qnav{color:var(--dim);justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.blog-page .verdict{grid-template-columns:1fr;gap:12px;display:grid}.blog-page .verdict article{border:2px solid var(--ink);border-radius:var(--r-sm);padding:14px 16px}.blog-page .verdict article b{font-size:15px;display:block}.blog-page .verdict article p{color:var(--mut);margin-top:4px;font-size:14px}.blog-page .verdict article .tag{letter-spacing:.06em;text-transform:uppercase;background:var(--yellow);border-radius:999px;margin-bottom:6px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.blog-page .copybtn{border:2px solid var(--ink);background:var(--paper);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .14s var(--ease),transform .14s var(--ease);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:12.5px;font-weight:700;display:inline-flex}.blog-page .copybtn:hover{background:var(--yellow)}.blog-page .copybtn:active{transform:scale(.96)}.blog-page .copybtn.done{background:var(--ink);color:var(--yellow)}.blog-page .toast{background:var(--ink);color:var(--paper);z-index:var(--z-toast);opacity:0;pointer-events:none;transition:opacity .25s var(--ease),transform .25s var(--ease);border-radius:999px;padding:12px 20px;font-size:14px;font-weight:600;position:fixed;bottom:28px;left:50%;transform:translate(-50%,12px)}.blog-page .toast.on{opacity:1;transform:translate(-50%)}.blog-page.js [data-reveal],.blog-page.js [data-reveal-group]>*{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transform:translateY(22px)}.blog-page.js [data-reveal].in,.blog-page.js [data-reveal-group].in>*{opacity:1;transform:none}.blog-page.js [data-reveal-group].in>:nth-child(2){transition-delay:60ms}.blog-page.js [data-reveal-group].in>:nth-child(3){transition-delay:.12s}.blog-page.js [data-reveal-group].in>:nth-child(4){transition-delay:.18s}.blog-page.js [data-reveal-group].in>:nth-child(5){transition-delay:.24s}.blog-page.js [data-reveal-group].in>:nth-child(n+6){transition-delay:.3s}.blog-page.js.reveal-all [data-reveal],.blog-page.js.reveal-all [data-reveal-group]>*{opacity:1;transform:none}@keyframes rowin{0%{opacity:0;transform:translateY(12px)}}.blog-page.js .ledger .post.enter{animation:rowin .4s var(--ease) backwards}@media (prefers-reduced-motion:reduce){.blog-page *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}.blog-page.js [data-reveal],.blog-page.js [data-reveal-group]>*,.blog-page .railbody.swap{opacity:1;transform:none}}@media (prefers-contrast:more){.blog-page{--mut:#222;--dim:#333;--hair:#888}}@media (hover:none){.blog-page .fside .desk{display:none}}@media (max-width:1100px){.blog-page .post{grid-template-columns:130px 1fr 44px 40px}.blog-page .pmeta{grid-area:2/1/auto/3;justify-content:flex-start;gap:22px}.blog-page .post .save,.blog-page .post .parrow{grid-row:1/3}.blog-page .artbody .sec{grid-template-columns:200px minmax(0,1fr);gap:56px}}@media (max-width:960px){.blog-page .desk,.blog-page .search kbd{display:none}.blog-page .navin{padding:0 20px}.blog-page .navlinks{display:none}.blog-page .burger{display:block}.blog-page .sec{padding:64px 20px}.blog-page .featured{grid-template-columns:1fr;margin-top:44px}.blog-page .fside{border-left:0;border-top:2px solid var(--ink)}.blog-page .paths .sec,.blog-page .whyread .sec{grid-template-columns:1fr;gap:36px}.blog-page .pathlist{grid-template-columns:1fr}.blog-page .path{border-right:0;border-bottom:2px solid var(--ink)}.blog-page .path:last-child{border-bottom:0}.blog-page .artbody .sec{grid-template-columns:minmax(0,1fr);gap:36px;padding-top:44px}.blog-page .rail{position:static}.blog-page .rail .tocwrap,.blog-page .railcta{display:none}.blog-page .tocmobile{border:2px solid var(--ink);border-radius:var(--r);display:block;overflow:hidden}.blog-page .tocmobile summary{cursor:pointer;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:14px 18px;font-size:13px;font-weight:700;list-style:none;display:flex}.blog-page .tocmobile summary::-webkit-details-marker{display:none}.blog-page .tocmobile summary:after{content:"+";transition:transform .2s var(--ease);font-size:20px}.blog-page .tocmobile[open] summary:after{transform:rotate(45deg)}.blog-page .tocmobile .toc{border-top:2px solid var(--ink);margin:0;padding:4px 18px 8px}.blog-page .nextprev{grid-template-columns:1fr}.blog-page .nextprev a+a{border-left:0;border-top:2px solid var(--ink);text-align:left;align-items:flex-start}}@media (max-width:640px){.blog-page .sec{padding:56px 18px}.blog-page .navin{padding:0 18px}.blog-page .navcta{display:none}.blog-page h1{max-width:none;font-size:clamp(34px,10vw,44px)}.blog-page h2{font-size:clamp(27px,7.5vw,34px)}.blog-page .lede{font-size:16px}.blog-page .btn{width:100%}.blog-page .btn.small{width:auto}.blog-page .featured>a,.blog-page .fside{padding:28px 20px}.blog-page .featured h2{font-size:clamp(24px,6.5vw,30px)}.blog-page .toolbar{gap:12px}.blog-page .sort{justify-content:space-between;width:100%}.blog-page .filters{scrollbar-width:none;flex-wrap:nowrap;margin:0 -18px 28px;padding:2px 18px;overflow-x:auto}.blog-page .filters::-webkit-scrollbar{display:none}.blog-page .filters .pill{flex:none}.blog-page .count{display:none}.blog-page .post{grid-template-columns:1fr 44px;gap:10px 14px;margin:0 -16px;padding:20px 16px}.blog-page .post time{grid-area:1/1}.blog-page .ptitle{grid-area:2/1/auto/3;font-size:20px}.blog-page .pmeta{grid-area:3/1;gap:18px}.blog-page .post .save{grid-area:1/2}.blog-page .post .parrow{grid-area:3/2;justify-self:end}.blog-page .prose{font-size:17px}.blog-page .prose pre{padding:16px 18px;font-size:13.5px}.blog-page .short{padding:20px 18px}.blog-page .midcta{padding:26px 22px}.blog-page .arthead .lede{font-size:18px}.blog-page .arthead h1{font-size:clamp(30px,8.6vw,40px)}.blog-page .widget>header{padding:14px 18px}.blog-page .wbody{padding:18px 18px 22px}.blog-page .footin{flex-direction:column;padding:32px 18px}.blog-page .final .sec{padding-top:56px;padding-bottom:56px}}@media (max-width:420px){.blog-page .sec{padding:48px 14px}.blog-page .navin{padding:0 14px}.blog-page h1{letter-spacing:-.03em;font-size:clamp(30px,10.5vw,36px)}.blog-page .post{margin:0 -14px;padding:18px 14px}}@media print{.blog-page nav.site,.blog-page .drawer,.blog-page .progress,.blog-page .railshare,.blog-page .railcta,.blog-page .midcta,.blog-page .final,.blog-page .related,.blog-page .toolbar,.blog-page .filters,.blog-page .save,.blog-page .parrow,.blog-page footer.site{display:none!important}.blog-page .artbody .sec{grid-template-columns:1fr}.blog-page .rail{position:static}.blog-page{font-size:12pt}.blog-page.js [data-reveal],.blog-page.js [data-reveal-group]>*{opacity:1;transform:none}}.blog-page nav.nextprev{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:auto;background:0 0;position:static}.blog-page .progress{z-index:81}.blog-page{display:block}.blogs-shell>footer.site{border-radius:24px 24px 0 0}.blogs-shell>footer.site .footin{letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:20px 24px;max-width:1500px;margin:0 auto;padding:40px 32px;font-size:13px;display:flex}.blogs-shell>footer.site .footlinks{text-transform:uppercase;flex-wrap:wrap;gap:22px;font-weight:500;display:flex}.blogs-shell>footer.site a{color:inherit;text-decoration:none}.blogs-shell>footer.site a:hover{color:#fff}@media (max-width:640px){.blogs-shell>footer.site .footin{flex-direction:column;padding:32px 18px}}.blog-page .blog-rich-content>*+*{margin-top:1.35em}.blog-page .blog-rich-content>h2:first-child{margin-top:0}.blog-page .blog-rich-content h2{margin-top:2.2em}.blog-page .rail .toc{overscroll-behavior:contain;max-height:46vh;overflow-y:auto}.blog-page .rail .toc a{scroll-margin-block:12px}.blog-page .blog-rich-content :is(h1,h2,h3) :is(strong,b){font-weight:inherit}@media (prefers-reduced-motion:reduce){html:has(.blog-page){scroll-behavior:auto}}.blog-audit-modal .lmcard{color:#0a0a0b;background:#fff;border:2px solid #0a0a0b;border-radius:16px;width:min(520px,100vw - 32px);max-height:calc(100vh - 48px);padding:34px 32px 30px;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:8px 8px #0a0a0be6}.blog-audit-modal .lmcard h3{letter-spacing:-.02em;margin:0 0 6px;font-size:24px}.blog-audit-modal .lmcard .lmsub{color:#4a4a4a;margin:0 0 22px;font-size:14.5px}.blog-audit-modal .lmclose{cursor:pointer;background:0 0;border:1px solid #0a0a0b;border-radius:50%;width:40px;height:40px;font-size:18px;line-height:1;position:absolute;top:14px;right:14px}.blog-audit-modal .lmclose:hover{background:#fece08}.blog-audit-modal .lmfield{margin-bottom:14px;display:block}.blog-audit-modal .lmfield span{text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.blog-audit-modal .lmfield input,.blog-audit-modal .lmfield select,.blog-audit-modal .lmfield textarea{width:100%;font:inherit;color:#0a0a0b;background:#fff;border:1px solid #0a0a0b;border-radius:10px;padding:12px 14px;font-size:15px}.blog-audit-modal .lmfield textarea{resize:vertical;min-height:96px}.blog-audit-modal .lmfield input:focus,.blog-audit-modal .lmfield select:focus,.blog-audit-modal .lmfield textarea:focus{outline-offset:1px;outline:2px solid #fece08}.blog-audit-modal .lmsend{color:#0a0a0b;width:100%;font:inherit;cursor:pointer;background:#fece08;border:2px solid #0a0a0b;border-radius:999px;margin-top:6px;padding:14px 20px;font-size:16px;font-weight:700;transition:transform .18s,box-shadow .18s}.blog-audit-modal .lmsend:hover{transform:translate(-2px,-2px);box-shadow:4px 4px #0a0a0b}.blog-audit-modal .lmsend[disabled]{opacity:.6;cursor:wait;box-shadow:none;transform:none}.blog-audit-modal .lmnote{color:#4a4a4a;text-align:center;margin:12px 0 0;font-size:12.5px}.blog-audit-modal .lmthanks{text-align:center;padding:26px 0 10px;display:none}.blog-audit-modal .lmthanks b{margin-bottom:8px;font-size:20px;display:block}.blog-audit-modal.sent form.lmform,.blog-audit-modal.sent .lmsub{display:none}.blog-audit-modal.sent .lmthanks{display:block}.blog-audit-modal{color:#000;background:0 0;border:0;width:min(600px,100% - 32px);max-height:90dvh;margin:auto;padding:0}.blog-audit-modal::backdrop{background:#0009}.blog-audit-modal .lmcard{width:100%;max-height:none;margin:0;position:relative;inset:auto;transform:none}.blog-page .blog-rich-content{display:flow-root}.blog-page .blog-rich-content pre{white-space:pre-wrap;overflow-wrap:anywhere}.blog-page .blog-rich-content blockquote{border-block:2px solid var(--ink);letter-spacing:-.02em;text-wrap:balance;margin:2.4em 0;padding:26px 0 28px;font-size:clamp(24px,2.4vw,32px);font-weight:700;line-height:1.2}.blog-page .blog-rich-content blockquote p{font:inherit;color:inherit}.blog-page .blog-rich-content mark{box-shadow:inset 0 -.24em var(--yellow);background:0 0;border-radius:5px}.blog-page .blog-rich-content img{border-radius:var(--r)}@media (max-width:600px){.blog-page .blog-rich-content img[data-floating=true]{float:none!important;margin-inline:auto!important}}
