.v2{--paper:#ffffff;--tint:#f0f0ed;--wash:#f4f4f1;--wash-on-tint:#ffffff;--ink:#1c1c1b;--ink-soft:#343430;--ink-inv:#ffffff;--dim:#6c6c67;--faint:#6c6c67;--brand:#ff4f1f;--brand-text:#c63d14;--brand-hover:#ab320f;--brand-active:#922b0d;--brand-border:#e8baa8;--brand-soft:#fff3ed;--blue:var(--brand-text);--blue-soft:var(--brand-soft);--amber:#8f6212;--amber-soft:#faf3e3;--green:#1a6b3f;--green-soft:#e9f2ec;--rust:#a8483e;--rust-soft:#f7ece9;--cat-1:#1c4f6e;--cat-2:#9a6b1a;--cat-3:#2f6b4a;--cat-4:#7d4a6e;--rule:#dcdcd6;--hair:#e4e4df;--hair-on-tint:#dcdcd6;--control-border:#87877f;--dark-canvas:#181818;--dark-surface:#202020;--dark-ink:#f5f5f2;--dark-dim:#b5b5b0;--dark-rule:#40403c;--brand-on-dark:#ff845e;--brand-soft-on-dark:#3e2a23;--gutter:24px;--edge:clamp(20px,4vw,46px);--max:1280px;--f-sans:"Helvetica Neue","Archivo Variable",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--t-display:clamp(38px,5vw,64px);--t-h2:clamp(26px,3.2vw,36px);--t-h3:18px;--t-body:15px;--t-sm:14.5px;--t-xs:13.5px;--t-code:12.5px;--t-label:10.5px;--sec-pad:84px;--sec-pad-sm:62px;--dur:.2s}@media (max-width:720px){.v2{--t-body:16px}}.v2{background:var(--paper);color:var(--ink);font-family:var(--f-sans);font-size:var(--t-body);line-height:1.6;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.v2>main{flex:1 0 auto}:where(.v2) *,:where(.v2) :after,:where(.v2) :before{box-sizing:border-box}:where(.v2) :is(h1,h2,h3,h4,p,ul,ol,figure,blockquote){margin:0}:where(.v2) :is(ul,ol){list-style:none;padding:0}:where(.v2) a{color:inherit;text-decoration:none}:where(.v2) img{display:block;max-width:100%}:where(.v2) button{font:inherit;color:inherit}.v2 :focus-visible{outline:2px solid var(--brand-text);outline-offset:3px}.v2 ::selection{background:var(--brand-soft);color:var(--ink)}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.label{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}.label-blue{color:var(--blue)}.label-amber{color:var(--amber)}.label-green{color:var(--green)}@media (prefers-reduced-motion:reduce){.v2 *,.v2 :after,.v2 :before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.shell{max-width:var(--max);margin:0 auto;padding:0 var(--edge)}.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-12{grid-column:span 12}.col-r6{grid-column:7/span 6}.col-r5{grid-column:8/span 5}.page-top{padding-top:44px}.sec{padding:var(--sec-pad) 0 0}.sec-tint{background:var(--tint);padding:var(--sec-pad) 0;margin-top:var(--sec-pad)}.sec-tint+.sec{padding-top:0}.sec-tint .chan li,.sec-tint .tbl td{border-bottom-color:var(--hair-on-tint)}.sec-tint .code{background:var(--wash-on-tint)}.sec-head{border-top:1px solid var(--ink);padding-top:14px;display:flex;align-items:baseline;gap:14px}.sec-head .n{color:var(--blue)}.sec-head .n,.sec-head .t{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.16em}.sec-head .t{text-transform:uppercase;color:var(--dim)}.sec-title{font-size:var(--t-h2);line-height:1.08;letter-spacing:-.04em;font-weight:700;margin-top:26px}.sec-lede{margin-top:18px;font-size:var(--t-body);line-height:1.62;color:var(--dim)}.sec-body{margin-top:46px}.sec-tint+.sec-ink{margin-top:0}.sec-ink{background:var(--ink);color:var(--ink-inv);margin-top:var(--sec-pad);padding:72px 0}.sec-ink .label{color:rgba(255,255,255,.55)}@media (max-width:720px){.sec{padding-top:var(--sec-pad-sm)}.sec-ink,.sec-tint{padding:var(--sec-pad-sm) 0;margin-top:var(--sec-pad-sm)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;font-size:13px;font-weight:500;line-height:1.4;padding:13px 24px;border:1px solid transparent;transition:background var(--dur),color var(--dur),border-color var(--dur),opacity var(--dur);cursor:pointer}.btn-p{background:var(--brand-text);color:var(--ink-inv);border-color:var(--brand-text)}.btn-p:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn-p:active{background:var(--brand-active);border-color:var(--brand-active)}.btn-s{background:transparent;color:var(--ink);border-color:var(--control-border)}.btn-s:hover{background:var(--brand-soft);color:var(--brand-text);border-color:var(--brand-text)}.btn-s:active{color:var(--brand-active);border-color:var(--brand-active)}.sec-ink .btn-p{background:var(--ink-inv);color:var(--ink);border-color:var(--ink-inv)}.sec-ink .btn-s{color:var(--ink-inv);border-color:rgba(255,255,255,.45)}.sec-ink .btn-s:hover{background:var(--ink-inv);color:var(--ink);border-color:var(--ink-inv)}.btns{display:flex;flex-wrap:wrap;gap:10px}.link{color:var(--brand-text);text-decoration:underline;text-decoration-color:var(--brand-border);text-underline-offset:3px}.link:hover{color:var(--brand-hover);text-decoration-color:currentColor}.code{background:var(--wash);border-left:2px solid var(--brand-border);padding:20px 22px;font-family:var(--f-mono);font-size:var(--t-code);line-height:1.9;overflow-x:auto;white-space:pre;color:var(--ink-soft)}.code .c{color:var(--faint)}.code .s{color:var(--green)}.code .k{color:var(--cat-4);font-weight:600}.code-cap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;padding-bottom:9px}.code-actions{display:inline-flex;align-items:center;gap:12px;margin-left:auto}.tbl-wrap{overflow-x:auto}@media (max-width:720px){.tbl-wrap{background:linear-gradient(90deg,var(--paper) 30%,transparent) 0 /24px 100% no-repeat,linear-gradient(-90deg,var(--paper) 30%,transparent) 100% /24px 100% no-repeat,radial-gradient(farthest-side at 0 50%,rgba(10,10,10,.12),transparent) 0 /12px 100% no-repeat,radial-gradient(farthest-side at 100% 50%,rgba(10,10,10,.12),transparent) 100% /12px 100% no-repeat;background-attachment:local,local,scroll,scroll}}.tbl{width:100%;border-collapse:collapse;min-width:560px}.tbl th{text-align:left;font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-weight:400;padding:0 16px 10px 0;border-bottom:1px solid var(--ink)}.tbl td{padding:15px 16px 15px 0;border-bottom:1px solid var(--hair);font-size:14px;vertical-align:baseline}.tbl td.m{font-family:var(--f-mono);font-size:var(--t-code);color:var(--ink-soft)}.tbl tr td:first-child{font-weight:600}.notice{border:1px solid var(--rule);border-left-width:3px;padding:20px 22px;display:flex;gap:18px;align-items:baseline;flex-wrap:wrap}.notice>.t{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);flex:none;max-width:100%}.notice p{font-size:var(--t-xs);line-height:1.6;color:var(--dim);flex:1;min-width:260px}.notice b{color:var(--ink);font-weight:600}.notice-amber{border-color:var(--amber);background:var(--amber-soft)}.notice-amber>.t{color:var(--amber)}.notice-amber p{color:#6f4d10}.notice-blue{border-color:var(--brand-border);border-left-color:var(--brand-text);background:var(--brand-soft)}.notice-blue>.t{color:var(--brand-text)}.item{border-top:1px solid var(--ink);padding-top:14px}.item h3{font-size:var(--t-body);font-weight:600;letter-spacing:-.02em;margin-top:10px}.item p{margin-top:8px;font-size:var(--t-xs);line-height:1.6;color:var(--dim)}.note-item .n{font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.16em;color:var(--faint)}.note-item h3{font-size:var(--t-h3);font-weight:600;letter-spacing:-.025em;margin-top:10px}.note-item p{margin-top:9px;font-size:var(--t-xs);line-height:1.6;color:var(--dim)}.stat .n{font-size:clamp(30px,3.4vw,40px);font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}.stat .n small{font-size:.38em;font-weight:500;color:var(--dim);margin-left:5px;letter-spacing:0}.stat .l{margin-top:8px}.stat-blue .n{color:var(--brand)}.stat-green .n{color:var(--green)}.stat-amber .n{color:var(--amber)}.stat-rust .n{color:var(--rust)}.chan-h{--cat-text:color-mix(in srgb,var(--cat,var(--ink)) 85%,var(--ink));display:flex;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--cat,var(--ink));padding-bottom:9px}.chan-h .t{font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--cat-text)}.chan-h .c{font-family:var(--f-mono);font-size:11px;color:var(--cat-text)}.chan ul{margin-top:12px;display:flex;flex-direction:column}.chan li{font-size:var(--t-xs);padding:7px 0;border-bottom:1px solid var(--hair)}.fig figcaption{display:flex;justify-content:space-between;gap:14px;padding-bottom:9px;border-bottom:1px solid var(--ink);margin-bottom:14px}.fig img{border:1px solid var(--rule);width:100%;height:auto}.fig .d{margin-top:12px;font-size:13px;color:var(--dim);line-height:1.55}.top{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--ink)}.top-in{height:62px;gap:30px}.brand,.top-in{display:flex;align-items:center}.brand{font-weight:700;font-size:16px;letter-spacing:-.02em;gap:9px}.brand img{display:block;flex:none}.top .brand{min-height:44px}.nav{display:flex;gap:24px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;transition:color var(--dur)}.nav a.on,.nav a:hover{color:var(--brand-text)}.nav a.on:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--brand)}.top-r{margin-left:auto;display:flex;gap:20px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}.top-r,.top-r a{align-items:center}.top-r a{display:inline-flex;min-height:44px;transition:color var(--dur)}.top-r a:hover{color:var(--ink)}.top-r .b{color:var(--brand-text);font-weight:500}.top-r .b:hover{color:var(--brand-hover)}.gh{display:inline-flex;align-items:baseline;gap:7px}.gh .k{font-family:var(--f-mono);color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}.burger{display:none;min-height:44px;margin-left:auto;background:none;border:1px solid var(--rule);padding:8px 12px;font-family:var(--f-mono);font-size:11px;cursor:pointer;transition:background var(--dur),border-color var(--dur),color var(--dur)}.burger:hover,.burger[aria-expanded=true]{background:var(--brand-soft);border-color:var(--brand-border);color:var(--brand-text)}.top-drawer{display:none;border-top:1px solid var(--hair);padding:14px 0 18px}.top-drawer.open{display:block}.top-drawer ul{display:flex;flex-direction:column;gap:12px}.top-drawer a{display:flex;align-items:center;min-height:44px;padding:8px 12px;font-size:14px;transition:background var(--dur),color var(--dur)}.top-drawer a:hover,.top-drawer a[aria-current=page]{background:var(--brand-soft);color:var(--brand-text)}.foot{background:var(--dark-canvas);padding:52px 0 44px;margin-top:104px}.foot,.foot a{color:var(--dark-ink)}.foot a{transition:color var(--dur)}.foot a:hover{color:var(--brand-on-dark)}.foot :focus-visible{outline-color:var(--brand-on-dark)}.foot-top{row-gap:30px}.foot-brand,.foot-col{grid-column:span 3}.foot-brand .m{margin-top:14px;font-size:11px;letter-spacing:.08em;line-height:1.8}.foot-brand .m,.foot-col .h{font-family:var(--f-mono);color:var(--dark-dim)}.foot-col .h{font-size:10px;letter-spacing:.16em;text-transform:uppercase}.foot-col ul{margin-top:14px;display:flex;flex-direction:column;gap:9px}.foot-col a{font-size:13px}.foot-bot{margin-top:46px;border-top:1px solid var(--dark-rule);padding-top:20px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-family:var(--f-mono);font-size:var(--t-label);letter-spacing:.1em;color:var(--dark-dim)}.dark-end+.foot{margin-top:0;padding-top:0}.dark-end+.foot .foot-top{border-top:1px solid rgba(255,255,255,.16);padding-top:52px}.docs+.foot,.tint-end+.foot{margin-top:0}@media (max-width:1080px){.col-5,.col-6,.col-7,.col-r5,.col-r6{grid-column:span 12}.col-3,.col-4{grid-column:span 6}}@media (max-width:860px){.nav,.top-r{display:none}.burger{display:block}}@media (max-width:720px){.col-2,.col-3,.col-4{grid-column:span 12}}@media (max-width:1080px){.foot-brand{grid-column:span 12}.foot-col{grid-column:span 4}}@media (max-width:720px){.foot-col{grid-column:span 6}.foot-col:last-child{grid-column:span 12}.foot-col:last-child ul{flex-direction:row;flex-wrap:wrap;column-gap:24px}.foot-col a{display:inline-flex;align-items:center;min-height:44px}}.spon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}.spon-grid:has(>:only-child) .spon{grid-template-columns:232px 1fr}.spon-grid:has(>:only-child) .spon-logo{padding:22px 26px}.spon-grid:has(>:only-child) .spon-body{padding:22px 26px 20px}.spon-grid:has(>.spon-featured:first-child+.spon+.spon+.spon:last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.spon.spon-featured{grid-column:1/-1;grid-template-columns:232px 1fr}.spon-featured .spon-logo{padding:12px 24px}.spon-featured .spon-body{padding:11px 20px 10px}.spon-featured .spon-body p{height:auto;display:block;overflow:visible;-webkit-line-clamp:unset;line-clamp:none}.spon{background:var(--paper);display:grid;grid-template-columns:148px 1fr;transition:background var(--dur)}.spon:focus-visible,.spon:hover{background:var(--brand-soft)}.spon-logo{border-right:1px solid var(--hair);padding:10px 18px;min-width:0;display:flex;align-items:center;justify-content:center;background:var(--paper)}.spon-logo img{width:100%;height:auto}.spon-body{padding:10px 16px 9px;min-width:0}.spon-head{display:flex;align-items:center;gap:12px;margin-bottom:2px}.spon-head .clamp{flex:1}.spon-tag{flex:none;padding:2px 7px;line-height:1.5;border:1px solid var(--brand-border);background:var(--brand-soft);color:var(--brand-text)}.spon-body h3{font-size:15px;font-weight:600;letter-spacing:-.02em;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spon-body p{font-size:12.5px;line-height:1.6;color:var(--dim);height:6.4em;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4}.spon-cta{margin-top:10px;display:inline-flex;align-items:center;min-height:44px;font-size:12.5px;font-weight:500;color:var(--blue)}.spon-cta:hover{text-decoration:underline;text-underline-offset:3px}.spon .spon-cta{display:block;margin-top:3px;min-height:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clamp{position:relative;display:block;min-width:0}.spon-body .clamp-tip{position:absolute;z-index:5;top:-7px;left:-9px;right:-9px;margin:0;padding:6px 8px;height:auto;display:block;overflow:visible;white-space:normal;-webkit-line-clamp:unset;line-clamp:none;background:var(--paper);border:1px solid var(--brand-border);pointer-events:none}.spon-more{margin-top:22px;border-top:1px solid var(--rule);padding-top:18px;gap:32px}.spon-more,.spon-more .who{display:flex;align-items:center;flex-wrap:wrap}.spon-more .who{gap:28px}.spon-more .who a{display:inline-flex;align-items:center;font-size:13px;color:var(--dim);transition:color var(--dur)}.spon-more .who a:hover{color:var(--ink)}.spon-more .who img{display:block}.spon-more .join{margin-left:auto}@media (max-width:1080px){.spon-grid:has(>.spon-featured:first-child+.spon+.spon+.spon:last-child){grid-template-columns:1fr}}@media (max-width:520px){.notice{padding:18px 16px}.notice p{min-width:0;flex-basis:100%}.spon,.spon-grid{grid-template-columns:1fr}.spon.spon-featured{grid-column:auto;grid-template-columns:1fr}.spon-logo{border-right:none;border-bottom:1px solid var(--hair);padding:14px 18px}.spon-logo img{max-width:150px}.spon-featured .spon-logo{padding:14px 18px}.spon-featured .spon-body{padding:10px 16px 9px}.spon-more .join{margin-left:0}}.lang{position:relative}.lang-btn{display:inline-flex;align-items:center;gap:7px;min-height:44px;background:none;border:none;padding:0;cursor:pointer;font-size:12px;letter-spacing:.06em;color:var(--dim);transition:color var(--dur)}.lang-btn:hover,.lang-btn[aria-expanded=true]{color:var(--brand-text)}.lang-caret{width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4px solid;transition:transform var(--dur)}.lang-btn[aria-expanded=true] .lang-caret{transform:rotate(180deg)}.lang-menu{position:absolute;top:calc(100% + 12px);right:0;z-index:60;min-width:132px;background:var(--paper);border:1px solid var(--rule);display:flex;flex-direction:column}.lang-menu li+li{border-top:1px solid var(--hair)}.lang-menu a{display:flex;align-items:center;width:100%;min-height:44px;text-align:left;background:none;border:none;padding:10px 14px;cursor:pointer;font-size:13px;color:var(--ink);transition:background var(--dur),color var(--dur)}.lang-menu a:focus-visible,.lang-menu a:hover{background:var(--brand-soft);color:var(--brand-text)}.lang-menu a.on{background:var(--brand-soft);color:var(--brand-text);font-weight:600}.lang-inline{display:flex;gap:10px;flex-wrap:wrap}.lang-inline button{min-height:44px;background:none;border:1px solid var(--rule);padding:7px 13px;cursor:pointer;font-size:13px;color:var(--dim);transition:background var(--dur),border-color var(--dur),color var(--dur)}.lang-inline button.on,.lang-inline button:hover{background:var(--brand-soft);border-color:var(--brand-text);color:var(--brand-text)}.fig-btn{display:block;width:100%;padding:0;border:1px solid var(--rule);background:none;cursor:zoom-in;position:relative;overflow:hidden;transition:border-color var(--dur),background var(--dur)}.fig-btn:focus-visible,.fig-btn:hover{border-color:var(--brand-text);background:var(--wash)}.fig-btn img{width:100%;height:auto;display:block;border:0}.fig-hint{position:absolute;right:0;bottom:0;display:inline-flex;align-items:center;gap:6px;min-height:31px;background:var(--dark-surface);color:var(--dark-ink);font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;transition:background var(--dur)}.fig-btn:focus-visible .fig-hint,.fig-btn:hover .fig-hint{background:var(--brand-text);color:var(--ink-inv)}dialog.lb{inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--dark-canvas);color:var(--dark-ink)}dialog.lb::backdrop{background:var(--dark-canvas)}dialog.lb:not([open]){display:none}.lb-in{width:100%;height:100%;display:flex;flex-direction:column;background:var(--dark-surface)}.lb-header{flex:none;min-height:64px;padding:calc(9px + env(safe-area-inset-top)) 12px 9px 20px;border-bottom:1px solid var(--dark-rule);display:flex;align-items:center;gap:18px}.lb-heading{min-width:0}.lb-heading h2{font-size:11.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--dark-ink)}.lb-heading h2,.lb-heading p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--f-mono);line-height:1.35}.lb-heading p{margin-top:4px;font-size:10.5px;letter-spacing:.08em;color:var(--dark-dim)}.lb-header-actions{margin-left:auto;display:flex;align-items:center;gap:12px;flex:none}.lb-count{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;color:var(--dark-dim);font-variant-numeric:tabular-nums}.lb-close{width:44px;height:44px;padding:0;border:1px solid var(--dark-rule);background:transparent;color:var(--dark-ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur),border-color var(--dur)}.lb-close:hover{background:var(--brand-soft-on-dark);border-color:var(--brand-on-dark);color:var(--brand-on-dark)}.lb-body{flex:1;min-height:0;position:relative;background:var(--dark-canvas)}.lb-stage{width:100%;height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-color:rgba(255,255,255,.28) transparent}.lb-canvas{box-sizing:border-box;width:max-content;height:max-content;min-width:100%;min-height:100%;padding:clamp(18px,3vw,36px) clamp(18px,5vw,64px);display:flex;align-items:center;justify-content:center}.lb-image{flex:none;display:block;object-fit:contain;border:1px solid rgba(255,255,255,.18);cursor:zoom-in;user-select:none;-webkit-user-drag:none;transition:opacity var(--dur)}.lb-image[data-state=loading]{opacity:0}.lb-stage.is-pannable{cursor:grab;touch-action:none}.lb-stage.is-pannable:active{cursor:grabbing}.lb-stage.is-pannable .lb-image{cursor:inherit}.lb-status{position:absolute;inset:0;z-index:1;pointer-events:none;display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.58)}.lb-status.is-error{color:#fff}.lb-footer{flex:none;min-height:64px;padding:9px 12px calc(9px + env(safe-area-inset-bottom));border-top:1px solid var(--dark-rule);display:flex;align-items:center;justify-content:center}.lb-controls{display:inline-flex;align-items:stretch;border:1px solid var(--dark-rule)}.lb-controls button{width:44px;height:44px;padding:0;border:0;border-left:1px solid var(--dark-rule);background:transparent;color:var(--dark-ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur),opacity var(--dur)}.lb-controls button:first-child{border-left:0}.lb-controls button:hover:not(:disabled){background:var(--brand-soft-on-dark);color:var(--brand-on-dark)}.lb-controls button:active:not(:disabled){background:var(--brand-on-dark);color:var(--dark-canvas)}.lb-controls button:disabled{opacity:.4;cursor:default}.lb-controls .lb-level{width:auto;min-width:70px;gap:6px;padding:0 10px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;font-variant-numeric:tabular-nums;text-transform:uppercase}.lb-controls .lb-level:disabled{opacity:.68}dialog.lb :focus-visible{outline:2px solid var(--brand-on-dark);outline-offset:-3px}.lb-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:520px){.lb-header{min-height:60px;padding-right:8px;padding-left:12px;gap:10px}.lb-heading h2{font-size:10.5px;letter-spacing:.1em}.lb-heading p{margin-top:3px;font-size:10px}.lb-header-actions{gap:8px}.lb-count{font-size:10px}.lb-canvas{padding:12px}.lb-footer{min-height:60px;padding-right:8px;padding-left:8px}.lb-controls .lb-level{min-width:64px;padding:0 8px}}@media (max-height:540px){.lb-footer,.lb-header{min-height:54px}.lb-header{padding-top:5px;padding-bottom:5px}.lb-footer{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom))}.lb-canvas{padding-top:10px;padding-bottom:10px}}.code-copy{background:var(--paper);border:1px solid var(--rule);color:var(--dim);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;min-height:32px;padding:5px 10px;cursor:pointer;transition:background var(--dur),color var(--dur),border-color var(--dur)}.code-copy:hover{color:var(--brand-text);border-color:var(--brand-text);background:var(--brand-soft)}.code-copy:active{color:var(--brand-active);border-color:var(--brand-active)}.code-copy[data-state=done]{color:var(--green);border-color:var(--green);background:var(--green-soft)}.code-copy[data-state=fail]{color:var(--rust);border-color:var(--rust);background:var(--rust-soft)}@media (hover:none){.code-copy{min-height:44px}}.code{margin:0}.skip{position:absolute;left:50%;top:0;transform:translate(-50%,-120%);z-index:200;background:var(--ink);color:var(--ink-inv);font-size:13px;padding:11px 20px;transition:transform var(--dur)}.skip:focus{transform:translate(-50%)}.link[target=_blank]:after,.prose a[target=_blank]:after{content:"↗";font-family:var(--f-mono);font-size:.78em;margin-left:3px;vertical-align:super;opacity:.65}.nav-spon{display:inline-flex;align-items:center;gap:5px;color:var(--blue)!important}.nav-spon svg{display:block;flex:none}.nav-spon:hover{color:var(--brand-hover)!important}.nav-spon.on{color:var(--blue)!important;font-weight:500}.rows-30{row-gap:30px}.rows-34{row-gap:34px}.rows-38{row-gap:38px}.rows-40{row-gap:40px}.rows-44{row-gap:44px}.step .n{font-size:72px;font-weight:700;letter-spacing:-.06em;line-height:.8;font-variant-numeric:tabular-nums}.step.hot .n{color:var(--brand)}.step h3{font-size:var(--t-h3);font-weight:600;letter-spacing:-.025em;margin-top:22px;padding-top:14px;border-top:1px solid var(--ink)}.step.hot h3{border-top-color:var(--blue)}.step p{margin-top:9px;font-size:var(--t-xs);line-height:1.6;color:var(--dim)}.step .m{margin-top:12px;font-family:var(--f-mono);font-size:11.5px;color:var(--faint);letter-spacing:.04em}@media (max-width:720px){.step .n{font-size:56px}}