[data-v] .art{padding:var(--space-10) 0 var(--space-24)}[data-v] .art-grid{gap:var(--space-16);grid-template-columns:minmax(0,1fr) 220px;align-items:start;display:grid}[data-v] .art-grid.solo{grid-template-columns:minmax(0,760px);justify-content:center}[data-v] .art-main{min-width:0}[data-v] .art .crumb{row-gap:var(--space-1);flex-wrap:wrap;margin-bottom:28px}[data-v] .crumb .i{color:var(--text-faint)}[data-v] .art .h1{max-width:20ch;font-size:var(--text-48);letter-spacing:-.025em;margin:0;line-height:1.1}[data-v] .byline{align-items:center;gap:var(--space-3) var(--space-6);margin-top:var(--space-6);flex-wrap:wrap;display:flex}[data-v] .byline .bwho{align-items:center;gap:var(--space-3);display:flex}[data-v] .byline .av{width:var(--space-10);height:var(--space-10);font-size:var(--text-16)}[data-v] .byline p{color:var(--text-muted);font-size:var(--text-14);margin:0;line-height:20px}[data-v] .byline .by{color:var(--text-strong);font-weight:var(--weight-medium)}[data-v] .byline .upd{padding-left:var(--space-6);border-left:1px solid var(--line-sep);align-self:stretch;align-items:center;display:flex}[data-v] .cnote{max-width:640px;margin:var(--space-5) 0 0;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-strong);font-size:15px;font-weight:var(--weight-medium);align-items:flex-start;gap:10px;line-height:1.55;display:flex}[data-v] .cnote .i{color:var(--text-muted);margin-top:3px}[data-v] .sa{max-width:720px;margin-top:var(--space-8);padding:var(--space-6) 28px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-1);box-shadow:var(--shadow-card)}[data-v] .sa .kicker{margin:0 0 10px}[data-v] .sa p:not(.kicker){color:var(--text-strong);text-wrap:pretty;margin:0;font-size:19px;line-height:1.6}[data-v] .ab h2{max-width:24em;margin:var(--space-16) 0 var(--space-4);color:var(--text-strong);font-family:var(--font-display);font-size:var(--text-30);font-weight:var(--weight-heading);letter-spacing:-.015em;text-wrap:balance;scroll-margin-top:88px;line-height:1.2}[data-v] .ab h3{max-width:37em;margin:var(--space-8) 0 var(--space-2);color:var(--text-strong);font-size:19px;font-weight:var(--weight-semibold);line-height:1.4}[data-v] .ab p{max-width:37em;color:var(--text);text-wrap:pretty;margin:0 0 18px;font-size:17px;line-height:1.7}[data-v] .ab strong{color:var(--text-strong);font-weight:var(--weight-semibold)}[data-v] .ab ul,[data-v] .ab ol{max-width:37em;margin:0 0 var(--space-5);flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}[data-v] .ab li{color:var(--text);text-wrap:pretty;font-size:17px;line-height:1.65;position:relative}[data-v] .ab ul>li{padding-left:var(--space-6)}[data-v] .ab ul>li:before{top:.72em;left:var(--space-1);border-radius:var(--radius-full);background:var(--ink-400);content:"";width:6px;height:6px;position:absolute}[data-v] .ab ol.steps{counter-reset:st;gap:14px}[data-v] .ab ol.steps>li{counter-increment:st;min-height:28px;padding-left:44px}[data-v] .ab ol.steps>li:before{box-sizing:border-box;border:1.5px solid var(--brand-500);border-radius:var(--radius-full);background:var(--surface-1);width:28px;height:28px;color:var(--brand-text);font-family:var(--font-display);font-size:var(--text-13);font-weight:var(--weight-heading);content:counter(st);justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}[data-v] .ab code{font-family:var(--font-mono);font-size:.9em}[data-v] .ab .code{max-width:720px;margin:var(--space-6) 0;border-radius:var(--radius-md);background:var(--band-ink);color:var(--on-band);overflow:hidden}[data-v] .ab .code .cap{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:44px;padding:6px var(--space-2) 6px var(--space-4);border-bottom:1px solid var(--on-band-line);color:var(--on-band-muted);font-family:var(--font-mono);font-size:var(--text-12);display:flex}[data-v] .ab .code .cap:empty{display:none}[data-v] .ab .code pre{padding:var(--space-4);font-family:var(--font-mono);margin:0;font-size:13.5px;line-height:1.6;overflow-x:auto}[data-v] .ab .code pre code{font-size:inherit}[data-v] .ab .code pre:focus-visible{box-shadow:inset 0 0 0 2px var(--on-band);outline:none}[data-v] .cbtn{border:1px solid var(--on-band-muted);border-radius:var(--radius-sm);height:30px;color:var(--on-band);font-family:var(--font-ui);font-size:var(--text-13);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--dur-state) var(--ease);background:0 0;align-items:center;gap:6px;margin-left:auto;padding:0 10px;display:inline-flex}[data-v] .cbtn:hover{background:var(--on-band-line)}[data-v] .cbtn:focus-visible{box-shadow:0 0 0 2px var(--band-ink), 0 0 0 4px var(--on-band);outline:none}[data-v] .cbtn .i+.i,[data-v] .cbtn.done .i:first-child{display:none}[data-v] .cbtn.done .i+.i{display:block}@media (prefers-reduced-motion:reduce){[data-v] .cbtn{transition:none}}[data-v] .atbl-wrap{overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-1);box-shadow:var(--shadow-card);margin:28px 0;overflow-x:auto}[data-v] .atbl-wrap:focus-visible{box-shadow:var(--focus-ring);outline:none}[data-v] .atbl{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-14);line-height:1.5}[data-v] .atbl th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line-sep);background:var(--surface-3);color:var(--text-strong);font-size:var(--text-13);font-weight:var(--weight-semibold);text-align:left;vertical-align:bottom;line-height:18px}[data-v] .atbl td{padding:14px var(--space-4);border-bottom:1px solid var(--line-sep);color:var(--text);vertical-align:top;text-wrap:pretty}[data-v] .atbl tr:last-child td{border-bottom:0}[data-v] .atbl th:first-child,[data-v] .atbl td:first-child{z-index:1;border-right:1px solid var(--line-sep);background:var(--surface-1);position:sticky;left:0}[data-v] .atbl th:first-child{z-index:2;background:var(--surface-3)}[data-v] .atbl td:first-child{min-width:150px;color:var(--text-strong);font-weight:var(--weight-medium)}[data-v] .atbl.wide{min-width:820px}[data-v] .atbl.wide td:first-child{width:160px}[data-v] .ashot{max-width:720px;margin:28px 0}[data-v] .ashot img{border:1px solid var(--line);border-radius:var(--radius-md);max-width:100%;height:auto;display:block}[data-v] .ashot .ph{padding:var(--space-6);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-1);text-align:center;aspect-ratio:16/10;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}[data-v] .ashot .ph b{color:var(--text-strong);font-size:15px;font-weight:var(--weight-medium)}[data-v] .ashot .ph span{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-12);overflow-wrap:anywhere;line-height:1.5}[data-v] .ashot figcaption{max-width:44em;color:var(--text-muted);font-size:var(--text-14);text-wrap:pretty;margin-top:10px;line-height:1.55}[data-v] .yt{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-1);max-width:720px;margin:28px 0;overflow:hidden}[data-v] .yt-play{justify-content:center;align-items:center;gap:var(--space-3);width:100%;height:100%;padding:var(--space-6);color:var(--text-strong);font-family:var(--font-ui);font-size:15px;font-weight:var(--weight-medium);text-align:center;cursor:pointer;background:0 0;border:0;flex-direction:column;display:flex}[data-v] .yt-play .i{box-sizing:content-box;background:var(--btn-primary-bg);color:var(--btn-primary-fg);transition:background var(--dur-state) var(--ease);border-radius:50%;padding:14px}[data-v] .yt-play:hover .i{background:var(--btn-primary-hover)}[data-v] .yt-play:focus-visible{border-radius:var(--radius-md);box-shadow:inset 0 0 0 2px var(--ring)}[data-v] .yt iframe{border:0;width:100%;height:100%;display:block}[data-v] .nstep{justify-content:space-between;align-items:center;gap:var(--space-4) var(--space-6);max-width:720px;margin:28px 0 var(--space-2);padding:var(--space-5) var(--space-6);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-1);box-shadow:var(--shadow-card);flex-wrap:wrap;display:flex}[data-v] .nstep .go{align-items:center;gap:var(--space-4);display:flex}[data-v] .nstep .go span{color:var(--text-muted);font-size:var(--text-14);line-height:1.4}[data-v] .setup{max-width:720px;margin-top:var(--space-5);padding:var(--space-5) var(--space-6)}[data-v] .ab .setup h2{margin:0 0 var(--space-2);font-size:var(--text-16);font-weight:var(--weight-semibold);letter-spacing:0;line-height:24px}[data-v] .ab .setup ul{gap:0;max-width:none;margin:0}[data-v] .ab .setup ul>li{padding:var(--space-3) 0;border-top:1px solid var(--line-sep);color:var(--text-strong);font-size:15px;font-weight:var(--weight-medium);line-height:20px}[data-v] .ab .setup ul>li:before{content:none}[data-v] .qa{border-top:1px solid var(--line-sep);max-width:37em}[data-v] .qa>div{padding:var(--space-5) 0;border-bottom:1px solid var(--line-sep)}[data-v] .ab .qa h3{margin:0 0 var(--space-2);font-size:17px;line-height:1.45}[data-v] .ab .qa p{color:var(--text-muted);font-size:var(--text-16);margin:0;line-height:1.65}[data-v] .srcs{border-top:1px solid var(--line-sep);counter-reset:sr}[data-v] .src{gap:var(--space-1) var(--space-2);border-bottom:1px solid var(--line-sep);counter-increment:sr;grid-template-columns:32px minmax(0,1fr);padding:14px 0;display:grid}[data-v] .src:before{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--text-13);font-weight:var(--weight-medium);content:counter(sr);grid-row:1/span 2;line-height:24px}[data-v] .src .sl{color:var(--text);text-wrap:pretty;font-size:15px;line-height:1.6}[data-v] .src .sm{color:var(--text-muted);font-size:var(--text-13);line-height:1.6}[data-v] .ab p.spotted{margin:var(--space-5) 0 0;color:var(--text-muted);font-size:15px}[data-v] .relh{margin:72px 0 var(--space-4);color:var(--text-strong);font-family:var(--font-display);font-size:22px;font-weight:var(--weight-heading);letter-spacing:-.01em;line-height:1.25}[data-v] .abox{align-items:center;gap:var(--space-4);max-width:720px;margin-top:var(--space-10);padding:var(--space-6);display:flex}[data-v] .abox .av{width:56px;height:56px;font-size:22px}[data-v] .abox .nm{color:var(--text-strong);font-size:var(--text-16);font-weight:var(--weight-semibold);line-height:1.4;display:block}[data-v] .abox .rl{color:var(--text-muted);font-size:var(--text-14);line-height:1.5;display:block}[data-v] .abox .tlink{margin-left:auto}[data-v] .art-rail{width:auto;display:block;position:sticky;top:96px}[data-v] .art-rail a{padding:6px 0 6px var(--space-3);line-height:1.45}[data-v] .toc{margin-top:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-1);display:none}[data-v] .toc summary{min-height:var(--space-12);padding:0 var(--space-4);color:var(--text-strong);font-size:15px;font-weight:var(--weight-medium);cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}[data-v] .toc summary::-webkit-details-marker{display:none}[data-v] .toc summary .i{transition:transform var(--dur-state) var(--ease)}[data-v] .toc[open] summary .i{transform:rotate(180deg)}[data-v] .toc ol{padding:var(--space-1) 0 var(--space-2);border-top:1px solid var(--line-sep);margin:0;list-style:none}[data-v] .toc a{min-height:44px;padding:6px var(--space-4);color:var(--text);align-items:center;font-size:15px;line-height:1.4;display:flex}[data-v] .toc a:hover{background:var(--surface-hover);color:var(--text-strong)}@media (width<1100px){[data-v] .docs .toc{display:block}}@media (prefers-reduced-motion:reduce){[data-v] .toc summary .i{transition:none}}[data-v] .lgrid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}[data-v] .lcard{gap:var(--space-2);padding:var(--space-5);color:inherit;flex-direction:column;display:flex}[data-v] a.lcard{transition:border-color var(--dur-state) var(--ease)}[data-v] a.lcard:hover{border-color:var(--line-2);color:inherit}[data-v] a.lcard:hover h3{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px}[data-v] .ktag{height:22px;padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--surface-3);color:var(--text-muted);font-size:var(--text-12);font-weight:var(--weight-medium);white-space:nowrap;align-self:flex-start;align-items:center;line-height:16px;display:inline-flex}[data-v] .lcard h3{margin:var(--space-1) 0 0;color:var(--text-strong);font-size:var(--text-16);font-weight:var(--weight-semibold);text-wrap:pretty;overflow-wrap:anywhere;line-height:1.4}[data-v] .lcard p{color:var(--text-muted);font-size:var(--text-14);text-wrap:pretty;margin:0;line-height:1.55}[data-v] .lcard .upd{padding-top:var(--space-2);color:var(--text-faint);font-size:var(--text-12);margin-top:auto;line-height:16px}[data-v] .lcard.lg{gap:10px;padding:28px}[data-v] .lcard.lg h3{font-family:var(--font-display);font-size:22px;font-weight:var(--weight-heading);letter-spacing:-.01em;line-height:1.25}[data-v] .lcard.lg p{font-size:15px}[data-v] .llist{border-top:1px solid var(--line-sep)}[data-v] .lrow{gap:6px var(--space-6);padding:var(--space-5) 0;border-bottom:1px solid var(--line-sep);color:inherit;grid-template-columns:150px minmax(0,1fr) 170px;align-items:baseline;display:grid}[data-v] .lrow .ktag{place-self:baseline start}[data-v] .lrow h2,[data-v] .lrow h3{color:var(--text-strong);font-family:var(--font-ui);font-size:17px;font-weight:var(--weight-semibold);letter-spacing:0;text-wrap:pretty;margin:0;line-height:1.45}[data-v] a.lrow:hover{color:inherit}[data-v] a.lrow:hover :is(h2,h3){text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px}[data-v] .lrow p{max-width:68ch;margin:var(--space-1) 0 0;color:var(--text-muted);text-wrap:pretty;font-size:15px;line-height:1.55}[data-v] .lrow .upd{color:var(--text-faint);font-size:var(--text-13);text-align:right;line-height:1.5}[data-v] .nlist .lrow{grid-template-columns:150px minmax(0,1fr)}[data-v] .nlist .lrow time{color:var(--text-muted);font-size:var(--text-14);font-weight:var(--weight-medium);line-height:1.6}[data-v] .lhero{padding:var(--space-16) 0 var(--space-12)}[data-v] .lhero .h1{max-width:18ch;margin:0;font-size:56px;line-height:1.06}[data-v] .lhero .sub{max-width:56ch;margin:var(--space-5) 0 0;color:var(--text-muted);text-wrap:pretty;font-size:19px;line-height:1.6}[data-v] .lhero .crumb{margin-bottom:var(--space-5)}[data-v] .topics{gap:var(--space-2);margin-top:var(--space-8);flex-wrap:wrap;display:flex}[data-v] .topics a{border:1px solid var(--line-2);border-radius:var(--radius-full);background:var(--surface-1);height:36px;color:var(--text-strong);font-size:var(--text-14);font-weight:var(--weight-medium);align-items:center;padding:0 14px;display:inline-flex}[data-v] .topics a:hover{border-color:var(--text-strong)}[data-v] .lgrp{padding:0 0 72px}[data-v] .lgrp>h2{margin:0 0 var(--space-5);color:var(--text-strong);font-family:var(--font-display);font-size:var(--text-28);font-weight:var(--weight-heading);letter-spacing:-.015em;line-height:1.2}[data-v] .lgrid.five{grid-template-columns:repeat(6,minmax(0,1fr))}[data-v] .lgrid.five>*{grid-column:span 2}[data-v] .lgrid.five>:nth-child(n+4){grid-column:span 3}[data-v] .bt{padding:var(--space-6);flex-direction:column;gap:10px;display:flex}[data-v] .bt>a{color:var(--text-strong);font-size:17px;font-weight:var(--weight-semibold);align-items:center;gap:10px;line-height:1.35;display:flex}[data-v] .bt>a:hover span{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px}[data-v] .bt>p{color:var(--text-muted);font-size:var(--text-14);text-wrap:pretty;margin:0;line-height:1.55}[data-v] .bt .pbs{padding-top:var(--space-3);border-top:1px solid var(--line-sep);color:var(--text-muted);font-size:var(--text-14);font-weight:var(--weight-medium);margin:6px 0 0}[data-v] .prof{align-items:center;gap:var(--space-6);display:flex}[data-v] .prof .av{width:96px;height:96px;font-size:38px}[data-v] .prof .rl{color:var(--text-muted);font-size:17px;font-weight:var(--weight-medium);margin:6px 0 0;line-height:1.5}[data-v] .bio{max-width:37em;color:var(--text);font-size:var(--text-18);text-wrap:pretty;margin:28px 0 0;line-height:1.65}[data-v] .narrow{max-width:1000px}[data-v] .narrow .llist{margin-top:var(--space-12)}[data-v] .ab p a,[data-v] .ab li a,[data-v] .ab td a,[data-v] .src .sl a,[data-v] .byline .by a,[data-v] .abox a.nm{color:var(--text-strong);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}@media (width<=860px){[data-v] .art{padding:var(--space-5) 0 var(--space-16)}[data-v] .art-grid{grid-template-columns:minmax(0,1fr);gap:0}[data-v] .art-rail{display:none}[data-v] .toc{display:block}[data-v] .art .h1{max-width:none;font-size:var(--text-30);line-height:1.15}[data-v] .art .crumb{margin-bottom:var(--space-4);font-size:var(--text-13)}[data-v] .lhero{padding:var(--space-8) 0}[data-v] .lhero .h1{font-size:40px;line-height:1.08}[data-v] .lhero .sub{margin-top:var(--space-4);font-size:17px}[data-v] .byline{margin-top:var(--space-5)}[data-v] .byline .upd{border-left:0;flex-basis:100%;padding-left:0}[data-v] .cnote{font-size:var(--text-14)}[data-v] .sa{margin-top:var(--space-6);padding:var(--space-5)}[data-v] .sa p:not(.kicker){font-size:17px}[data-v] .ab h2{margin-top:var(--space-12);font-size:var(--text-24)}[data-v] .ab h3{font-size:var(--text-18)}[data-v] .ab p,[data-v] .ab li{font-size:var(--text-16)}[data-v] .ab ol.steps>li{padding-left:var(--space-10)}[data-v] .atbl{min-width:600px}[data-v] .atbl.wide{min-width:760px}[data-v] .atbl th,[data-v] .atbl td{padding:var(--space-3)}[data-v] .atbl th:first-child,[data-v] .atbl td:first-child{min-width:124px;max-width:136px}[data-v] .ashot .ph{aspect-ratio:4/3}[data-v] .nstep{padding:var(--space-5);flex-direction:column;align-items:stretch}[data-v] .nstep .go{text-align:center;flex-direction:column;align-items:stretch;gap:10px}[data-v] .nstep .go .btn{height:var(--space-12)}[data-v] .relh{margin-top:56px}[data-v] .lgrid,[data-v] .lgrid.five{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}[data-v] .lgrid.five>*,[data-v] .lgrid.five>:nth-child(n+4){grid-column:auto}[data-v] .lcard.lg{padding:var(--space-5)}[data-v] .lcard.lg h3{font-size:19px}[data-v] .abox{padding:var(--space-5);flex-wrap:wrap}[data-v] .abox .tlink{flex-basis:100%;min-height:44px;margin-left:0}[data-v] .topics{margin-top:var(--space-6)}[data-v] .lgrp{padding-bottom:var(--space-12)}[data-v] .lgrp>h2{font-size:var(--text-24)}[data-v] .bt{padding:var(--space-5)}[data-v] .lrow,[data-v] .nlist .lrow{grid-template-columns:minmax(0,1fr);gap:6px;padding:18px 0}[data-v] .setup{padding:var(--space-4) var(--space-5)}[data-v] .lrow .upd{text-align:left}[data-v] .prof{gap:var(--space-4)}[data-v] .prof .av{width:72px;height:72px;font-size:28px}[data-v] .bio{font-size:17px}}
