:root{--art-soft: #F3EFE6;--art-alt: #F3EFE6;--art-link: var(--cobalt);--art-head-bg: #141414;--art-head-fg: #F3EFE6;--art-code-border: #141414;--art-kbd-bg: #FFFFFF}html.dark{--art-soft: #2A2A2A;--art-alt: #1F1F1F;--art-link: #8C94FF;--art-head-bg: #2A2A2A;--art-head-fg: #F3EFE6;--art-code-border: #F3EFE6;--art-kbd-bg: #2A2A2A}.art{display:grid;grid-template-columns:280px minmax(0,1fr) 240px;gap:48px;max-width:1440px;margin:0 auto;padding:40px 64px 80px;color:var(--ink)}.art-side,.art-aside{min-width:0}.art-side__inner,.art-aside__inner{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.art-progress{position:fixed;inset:0 0 auto;height:4px;z-index:70;pointer-events:none}.art-progress>span{display:block;height:100%;background:var(--cobalt);transform:scaleX(0);transform-origin:0 50%}.art-side__inner{display:flex;flex-direction:column;gap:6px;font:500 15px/1.3 var(--font-sans);padding-bottom:8px}.art-side__kicker,.art-aside__kicker{margin:0;padding:0 14px 6px;font:700 12px/1.3 var(--font-sans);color:var(--label);text-transform:uppercase;letter-spacing:.01em}.art-aside__kicker{padding:0 0 6px}.art-side__list,.art-side__list ul{list-style:none;margin:0;padding:0}.art-side__list{display:flex;flex-direction:column;gap:6px}.art-side__row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;min-height:44px;box-sizing:border-box;color:var(--ink);text-decoration:none;white-space:nowrap}.art-side__row:hover{background:var(--art-soft)}.art-side__label{overflow:hidden;text-overflow:ellipsis}.art-side__count{color:var(--label);flex:none;font-variant-numeric:tabular-nums}.art-side__open{background:var(--lemon);color:var(--on-brand);border:var(--line);border-radius:18px;padding:10px 8px;display:flex;flex-direction:column;gap:2px}.art-side__open ul{display:flex;flex-direction:column;gap:2px}.art-side__head{margin:0;display:flex;justify-content:space-between;gap:12px;padding:4px 8px 8px;font-weight:700;white-space:nowrap}.art-side__head .art-side__count{color:var(--on-brand)}.art-side__item{display:block;padding:8px 10px;border-radius:10px;line-height:1.3;color:var(--on-brand);text-decoration:none}.art-side__item:hover{background:#fff}.art-side__item.is-read{color:#3d3a33;text-decoration:line-through;text-decoration-thickness:1.5px}.art-side__item.is-current{background:#141414;color:#df6;font-weight:700;text-decoration:none}.art-side__legend{margin:0;padding:0 14px;font:400 13px/1.4 var(--font-sans);color:var(--label)}.agent-seg{display:flex;border:var(--line);border-radius:999px;overflow:hidden;background:var(--paper);font:700 14px/1.2 var(--font-sans)}.agent-seg__btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;min-height:40px;border:0;margin:0;cursor:pointer;background:transparent;color:var(--ink);font:inherit;white-space:nowrap}.agent-seg__btn+.agent-seg__btn{border-left:0}.agent-seg__btn:hover{background:var(--art-soft)}.agent-seg__btn[aria-selected=true],.agent-seg__btn[aria-pressed=true]{background:var(--ink);color:var(--paper)}.agent-seg__btn:focus-visible{outline-offset:-4px}.agent-seg--side{margin-top:14px;font-size:12.5px}.agent-seg--side .agent-seg__btn{flex:1 1 auto;gap:5px;padding:10px 4px;min-height:44px}.agent-seg--side .agent-seg__btn svg{width:14px;height:14px;flex:none}.art-main{min-width:0;max-width:720px;display:flex;flex-direction:column;gap:28px;font:400 19px/1.65 var(--font-sans);color:var(--ink)}.art-head{display:flex;flex-direction:column;gap:28px}.art-pills{display:flex;flex-wrap:wrap;gap:8px}.art-pill{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:6px 12px;border:var(--line);border-radius:999px;font:700 13px/1.3 var(--font-sans);background:var(--art-soft);color:var(--ink)}.art-pill--lemon{background:var(--lemon);color:var(--on-brand)}.art-pill--lilac{background:var(--lilac);color:var(--on-brand)}.art-pill--orange{background:var(--orange);color:var(--on-brand)}.art-pill--cream{background:var(--art-soft)}.art-h1{margin:0;font:800 58px/1.02 var(--font-display);letter-spacing:-.035em;text-wrap:balance;overflow-wrap:break-word}.art-lead{margin:0;font:500 24px/1.4 var(--font-display);color:var(--muted);text-wrap:pretty}html[lang=zh] .art-h1{font-weight:900;letter-spacing:0}html[lang=zh] .art-lead{letter-spacing:0}.art-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch}.art-author{display:flex;align-items:center;gap:14px;padding:14px 18px 14px 14px;border:var(--line);border-radius:999px;background:var(--art-soft);color:var(--ink);text-decoration:none;transition:transform var(--t),box-shadow var(--t)}.art-author:hover{transform:translateY(-2px);box-shadow:0 3px 0 var(--shadow)}.art-author:active{transform:translateY(1px);box-shadow:0 1px 0 var(--shadow)}.art-author__avatar{width:48px;height:48px;border-radius:50%;flex:none;box-sizing:border-box;border:var(--line);background:var(--lilac);-o-object-fit:cover;object-fit:cover}.art-author__avatar--initials{display:flex;align-items:center;justify-content:center;font:800 16px var(--font-display);color:var(--on-brand)}.art-author__text{display:flex;flex-direction:column;gap:1px;min-width:0}.art-author__name{font:700 16px/1.3 var(--font-sans);white-space:nowrap}.art-author__role{font:400 13px/1.3 var(--font-sans);color:var(--muted);white-space:nowrap}.art-author__site{text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:3px}.art-author__arrow{font:500 11px var(--font-mono)}.art-dates{display:flex;align-items:stretch;border:var(--line);border-radius:999px;overflow:hidden;background:var(--paper);white-space:nowrap}.art-dates__cell{display:flex;flex-direction:column;justify-content:center;gap:1px;padding:10px 18px;font:600 14px/1.3 var(--font-sans)}.art-dates__cell+.art-dates__cell{border-left:var(--line)}.art-dates__cell--ok{flex-direction:row;align-items:center;gap:10px;background:var(--lemon);color:var(--on-brand);font-weight:700}.art-dates__stack{display:flex;flex-direction:column;gap:1px}.art-dates__label{font:500 11px/1.3 var(--font-mono);color:var(--label);text-transform:uppercase;letter-spacing:.04em}.art-dates__cell--ok .art-dates__label{color:#3d3a33}.art-dates__led{width:10px;height:10px;border-radius:50%;flex:none;background:#141414;animation:led-ink 2.6s ease-in-out infinite}.art-tldr{background:var(--art-soft);border:var(--line);border-radius:26px;padding:24px 28px;box-shadow:0 3px 0 var(--shadow);display:flex;flex-direction:column;gap:8px}.art-tldr__label{margin:0;font:800 15px/1.2 var(--font-display);color:var(--art-link);text-transform:uppercase;letter-spacing:.01em}.art-tldr p{margin:0;font:400 18px/1.6 var(--font-sans)}.art-before,.art-terms{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;font:500 15px/1.5 var(--font-sans)}.art-before__label,.art-terms__label,.art-before__sep{color:var(--label)}.art-before a{color:var(--art-link);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.art-terms a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.art-terms a:hover,.art-before a:hover{text-decoration-color:var(--orange)}.art-mtoc{display:none;border:var(--line);border-radius:22px;background:var(--art-soft)}.art-mtoc summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 18px;cursor:pointer;list-style:none;font:700 15px/1.3 var(--font-sans)}.art-mtoc summary::-webkit-details-marker{display:none}.art-mtoc summary svg{transition:transform var(--t);flex:none}.art-mtoc[open] summary svg{transform:rotate(180deg)}.art-mtoc ol{list-style:none;margin:0;padding:4px 18px 14px;display:flex;flex-direction:column}.art-mtoc a{display:flex;gap:12px;align-items:baseline;padding:9px 0;min-height:44px;box-sizing:border-box;color:var(--ink);text-decoration:none;font:500 15px/1.4 var(--font-sans);border-top:2px solid var(--hairline)}.art-mtoc li:first-child a{border-top:0}.art-mtoc__n{font:500 12px var(--font-mono);color:var(--label);flex:none}.art-flow>*{margin-top:0;margin-bottom:0}.art-flow>*+*{margin-top:var(--flow, 28px)}.art-flow--tight{--flow: 12px}.art-flow>p{text-wrap:pretty}.art-flow>h2,.art-h2{font:800 34px/1.1 var(--font-display);letter-spacing:-.025em;margin:0;scroll-margin-top:24px;text-wrap:balance}.art-flow>h2{margin-top:44px}.art-flow>h2:first-child{margin-top:0}.art-flow>h3{font:800 23px/1.2 var(--font-display);letter-spacing:-.02em;margin-top:36px;scroll-margin-top:24px;text-wrap:balance}.art-flow>h4{font:700 19px/1.4 var(--font-sans);margin-top:28px}.art-flow>h2+*,.art-flow>h3+*,.art-flow>h4+*{margin-top:16px}html[lang=zh] .art-flow>:is(h2,h3),html[lang=zh] .art-h2{font-weight:900;letter-spacing:0}.art-flow>:is(p,ul,ol,blockquote,h2,h3,h4,.table-wrap) strong{font-weight:700}.art-flow>ul:not([class]),.art-flow>ol:not([class]){padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.art-flow>ul:not([class])>li,.art-flow>ol:not([class])>li{position:relative;padding-left:28px}.art-flow>ul:not([class])>li:before{content:"";position:absolute;left:6px;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--art-link)}.art-flow>ol:not([class]){counter-reset:art-ol}.art-flow>ol:not([class])>li{counter-increment:art-ol;padding-left:34px}.art-flow>ol:not([class])>li:before{content:counter(art-ol) ".";position:absolute;left:0;top:0;font-family:var(--font-display);font-weight:800;color:var(--art-link);min-width:24px}.art-flow>:is(ul,ol) li>:is(ul,ol){margin-top:10px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}.art-flow>:is(ul,ol) li>ul>li{position:relative;padding-left:22px}.art-flow>:is(ul,ol) li>ul>li:before{content:"";position:absolute;left:4px;top:.7em;width:8px;height:2px;background:currentColor}.art-flow>:is(ul,ol) li>p{margin:0}.art-flow>:is(ul,ol) li>p+p{margin-top:10px}.art-flow>blockquote{border-left:4px solid var(--lilac);padding:2px 0 2px 20px;color:var(--muted)}.art-flow>blockquote>*{margin:0}.art-flow>blockquote>*+*{margin-top:12px}.art-flow>hr{border:0;border-top:2px solid var(--hairline)}.art-flow>:is(p,figure) img,.art-flow>img{max-width:100%;height:auto;border:var(--line);border-radius:22px!important}.art-flow>:is(p,ul,ol,blockquote,h2,h3,h4,.table-wrap) a{color:var(--art-link);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.art-flow>:is(p,ul,ol,blockquote,h2,h3,h4,.table-wrap) a[target=_blank]{color:inherit;text-decoration-color:var(--orange)}.art-flow>:is(p,ul,ol,blockquote,h2,h3,h4,.table-wrap) a[target=_blank]:after{content:"↗";font:500 .72em var(--font-mono);margin-left:2px;vertical-align:.15em;display:inline-block;text-decoration:none}.art-flow>:is(p,ul,ol,blockquote,h2,h3,h4,.table-wrap) a:hover{text-decoration-color:var(--orange)}.art-flow>:is(p,ul,ol,blockquote,h2,h3,h4,.table-wrap) a.glossary-link{color:inherit;font-weight:inherit;cursor:help;-webkit-text-decoration:underline dotted var(--art-link);text-decoration:underline dotted var(--art-link);text-decoration-thickness:2px;text-underline-offset:4px}.art-flow>:is(p,ul,ol,blockquote,h2,h3,h4,.table-wrap) a.glossary-link:hover{text-decoration-style:solid}.art-flow>:is(p,ul,ol,blockquote,h2,h3,h4,.table-wrap) code{font:500 .84em/1.4 var(--font-mono);background:var(--art-soft);padding:2px 6px;border-radius:6px;overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone}.art-flow>:is(h2,h3) code{font-size:.8em}.art-kbd,.art-flow>:is(p,ul,ol,blockquote,.table-wrap) kbd{display:inline-block;font:500 .74em/1.3 var(--font-mono);white-space:nowrap;background:var(--art-kbd-bg);color:var(--ink);border:var(--line);border-bottom-width:3px;border-radius:6px;padding:2px 7px;vertical-align:.08em}.table-wrap{border:var(--line);border-radius:22px;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin}.table-wrap:focus-visible{outline-offset:3px}.table-wrap table{width:100%;border-collapse:separate;border-spacing:0;font:400 16px/1.45 var(--font-sans)}.table-wrap th,.table-wrap td{padding:12px 18px;text-align:left;vertical-align:top}.table-wrap th:not(:last-child),.table-wrap td:not(:last-child){padding-right:6px}.table-wrap thead th{background:var(--art-head-bg);color:var(--art-head-fg);font-weight:700}.table-wrap tbody td{border-top:var(--line)}.table-wrap tbody tr:nth-child(2n) td{background:var(--art-alt)}.table-wrap tbody td:first-child{font-weight:600}.table-wrap th[align=center],.table-wrap td[align=center]{text-align:center}.table-wrap th[align=right],.table-wrap td[align=right]{text-align:right}.table-wrap code{font-size:.88em}.art-flow>.table-wrap :is(td,th) code{overflow-wrap:normal;word-break:normal;white-space:nowrap}.art-flow>.table-wrap th code{background:transparent;color:inherit;border-color:currentColor}.code-wrap{position:relative}.art-main pre.astro-code{margin:0;background:#141414;color:#f3efe6;border:2px solid var(--art-code-border);border-radius:22px;padding:20px 22px;overflow-x:auto;font:400 15px/1.75 var(--font-mono);scrollbar-width:thin;scrollbar-color:#5D5A52 transparent;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.art-main pre.astro-code code{font:inherit;background:none;padding:0;border-radius:0;overflow-wrap:normal}.art-main pre.astro-code .line.cmd:before{content:"$ ";color:#df6}.art-main pre.astro-code:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}.code-copy{position:absolute;right:14px;top:12px;z-index:1;display:inline-flex;align-items:center;gap:6px;font:700 12px/1.2 var(--font-sans);white-space:nowrap;background:#df6;color:#141414;padding:6px 12px;min-height:30px;border-radius:999px;border:2px solid #141414;cursor:pointer;transition:transform var(--t),box-shadow var(--t)}.code-copy:hover{transform:translateY(-2px)}.code-copy:active{transform:translateY(1px)}.code-copy.is-done{background:#141414;color:#f3efe6;border-color:#f3efe6;padding-right:5px}.code-copy__tick{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#df6;color:#141414;font-size:11px}.art-type{display:inline-block;overflow:hidden;white-space:pre;vertical-align:bottom}.art-caret{display:inline-block;width:9px;height:18px;margin-left:2px;background:#f3efe6;vertical-align:-3px;animation:blink 1s step-end infinite}@keyframes art-typing{0%{width:0}}.agent-tabs{display:flex;flex-direction:column;gap:20px}.agent-tabs>.agent-seg{align-self:flex-start;max-width:100%}.agent-panel{--flow: 20px}.agent-panel[hidden]{display:none}.callout{border:var(--line);border-radius:26px 26px 26px 4px;padding:22px 26px;display:flex;flex-direction:column;gap:6px;background:var(--paper);color:var(--ink)}.callout__title{margin:0;font:800 18px/1.3 var(--font-display);letter-spacing:-.01em}html[lang=zh] .callout__title{font-weight:900;letter-spacing:0}.callout__body{--flow: 12px;font:400 17px/1.6 var(--font-sans)}.callout--tip{background:var(--lemon);color:var(--on-brand)}.callout--info{background:var(--lilac);color:var(--on-brand)}.callout--warn{background:var(--orange);color:var(--on-brand)}.callout--danger{background:#141414;color:#f3efe6}html.dark .callout--danger{background:var(--block)}.callout:is(.callout--tip,.callout--info,.callout--warn) .callout__body>:is(p,ul,ol,blockquote,.table-wrap) a:not(.glossary-link){color:var(--on-brand);text-decoration-color:currentColor}.callout:is(.callout--tip,.callout--info,.callout--warn) .callout__body>:is(p,ul,ol,blockquote,.table-wrap) a.glossary-link{text-decoration-color:#1f2bff}.callout:is(.callout--tip,.callout--info,.callout--warn) .callout__body>:is(p,ul,ol,blockquote,.table-wrap) :is(code,kbd){background:#fff;color:#141414;border-color:#141414}.callout:is(.callout--tip,.callout--info,.callout--warn) .callout__body>ul:not([class])>li:before{background:currentColor}.callout:is(.callout--tip,.callout--info,.callout--warn) .callout__body>ol:not([class])>li:before{color:currentColor}.callout:is(.callout--tip,.callout--info,.callout--warn) .callout__body>blockquote{border-color:currentColor;color:inherit}.callout--danger .callout__body>:is(p,ul,ol,blockquote,.table-wrap) a{color:#df6;text-decoration-color:#df6}.callout--danger .callout__body>:is(p,ul,ol,blockquote,.table-wrap) :is(code,kbd){background:#3d3a33;color:#f3efe6;border-color:#f3efe6}.callout--danger .callout__body>ul:not([class])>li:before{background:#df6}.callout:is(.callout--tip,.callout--info,.callout--warn) pre.astro-code{border-color:#141414}.callout .table-wrap{border-color:currentColor;background:var(--paper);color:var(--ink)}.art-steps{list-style:none;padding:0;display:flex;flex-direction:column;gap:20px;counter-reset:art-step}.art-flow>.art-steps{padding:0}.art-step{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:start;counter-increment:art-step}.art-step__num{width:48px;height:48px;border-radius:50%;box-sizing:border-box;background:var(--cobalt);color:var(--on-cobalt);border:var(--line);display:flex;align-items:center;justify-content:center;font:800 20px var(--font-display)}.art-step__num:before{content:counter(art-step)}.art-step__body{min-width:0;padding-top:8px;display:flex;flex-direction:column;gap:6px}.art-step__title{margin:0;font:700 19px/1.4 var(--font-sans)}.art-steps-box{display:flex;flex-direction:column;gap:16px}.art-steps__count{margin:0;display:flex;align-items:center;gap:12px;font:500 12px/1.3 var(--font-mono);color:var(--label);text-transform:uppercase;letter-spacing:.04em}html[lang=zh] .art-steps__count{letter-spacing:0}.art-steps__meter{width:88px;height:8px;flex:none;border-radius:999px;overflow:hidden;background:var(--paper);border:2px solid var(--label)}.art-steps__meter>span{display:block;height:100%;background:var(--cobalt);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--t)}.art-steps-box.is-complete .art-steps__meter{border-color:var(--ink)}.art-steps-box.is-complete .art-steps__meter>span{background:var(--lemon)}.art-step__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.art-step__done,.art-step__agent{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:44px;box-sizing:border-box;padding:6px 16px 6px 10px;margin:0;border:2px solid var(--label);border-radius:999px;background:var(--paper);color:var(--ink);font:700 13px/1.2 var(--font-sans);cursor:pointer;text-align:left;transition:transform var(--t),box-shadow var(--t)}.art-step__agent{padding-left:14px}.art-step__done:hover,.art-step__agent:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 3px 0 var(--shadow)}.art-step__done:active,.art-step__agent:active{transform:translateY(1px);box-shadow:0 1px 0 var(--shadow)}.art-step__done input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.art-step__done:has(input:focus-visible){outline:3px solid var(--cobalt);outline-offset:3px}.art-step__box{width:22px;height:22px;flex:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;border:var(--line);border-radius:7px;background:var(--paper);color:var(--on-brand)}.art-step__box svg{opacity:0}.art-step__done:has(input:checked){border-color:var(--ink)}.art-step__done:has(input:checked) .art-step__box{background:var(--lemon);border-color:#141414}.art-step__done:has(input:checked) .art-step__box svg{opacity:1}.art-step.is-done .art-step__num{background:var(--lemon);color:var(--on-brand)}.art-step.is-done .art-step__num:before{content:"✓"}.art-step__agent.is-done{background:var(--ink);color:var(--paper);border-color:var(--ink)}.art-step__agent svg{flex:none}.art-stale{margin:-12px 0 0;align-self:flex-start;max-width:100%;box-sizing:border-box;display:flex;align-items:flex-start;gap:10px;background:var(--orange);color:var(--on-brand);border:var(--line);border-radius:20px 20px 20px 4px;box-shadow:0 3px 0 var(--shadow);padding:12px 18px 12px 14px;font:600 15px/1.45 var(--font-sans)}.art-stale[hidden]{display:none}.art-stale__icon{flex:none;margin-top:1px}.art-stale a{color:var(--on-brand);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.art-stale a:hover{text-decoration-color:#fff}.art-cmds{border:var(--line);border-radius:22px;background:var(--art-soft)}.art-cmds[hidden]{display:none}.art-cmds summary{display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 18px 8px 12px;cursor:pointer;list-style:none;font:700 17px/1.3 var(--font-sans);border-radius:20px}.art-cmds summary::-webkit-details-marker{display:none}.art-cmds__icon{width:36px;height:36px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#141414;color:#df6}html.dark .art-cmds__icon{border:2px solid #5D5A52}.art-cmds__title{flex:1 1 auto;min-width:0}.art-cmds__count{flex:none;font:500 12px/1.3 var(--font-mono);color:var(--label);text-transform:uppercase;letter-spacing:.04em}.art-cmds__chev{flex:none;transition:transform var(--t)}.art-cmds[open] .art-cmds__chev{transform:rotate(180deg)}.art-cmds__body{padding:0 14px 14px;display:flex;flex-direction:column;gap:12px}.art-cmds__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:0 4px}.art-cmds__for{margin:0;flex:1 1 260px;font:400 15px/1.45 var(--font-sans);color:var(--muted)}.art-cmds__copy{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 18px;font:700 14px/1.2 var(--font-sans);white-space:nowrap;cursor:pointer;background:#df6;color:#141414;border:2px solid #141414;border-radius:999px;box-shadow:0 3px 0 var(--shadow);transition:transform var(--t),box-shadow var(--t)}.art-cmds__copy:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--shadow)}.art-cmds__copy:active{transform:translateY(1px);box-shadow:0 1px 0 var(--shadow)}.art-cmds__copy.is-done{background:#141414;color:#f3efe6;border-color:#f3efe6;padding-right:8px}html.dark .art-cmds__copy{box-shadow:0 3px #5d5a52}.art-main pre.art-cmds__pre{margin:0;background:#141414;color:#f3efe6;border:2px solid var(--art-code-border);border-radius:22px;padding:20px 22px;max-height:min(70vh,640px);overflow:auto;font:400 15px/1.75 var(--font-mono);scrollbar-width:thin;scrollbar-color:#5D5A52 transparent;-moz-tab-size:2;-o-tab-size:2;tab-size:2}.art-main pre.art-cmds__pre code{font:inherit;background:none;padding:0}.art-main pre.art-cmds__pre .line.cmd:before{content:"$ ";color:#df6}.art-main pre.art-cmds__pre:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px}.art-prose{counter-reset:art-fig}.art-figure{margin:0;display:flex;flex-direction:column;gap:10px;counter-increment:art-fig}.art-figure__frame{border:var(--line);border-radius:26px;background:var(--art-soft);padding:40px 32px;overflow-x:auto}.art-figure__frame>:is(svg,img){display:block;max-width:100%;height:auto;margin:0 auto}.art-figure__caption{font:italic 400 15px/1.5 var(--font-sans);color:var(--label)}.art-figure__caption:before{content:var(--fig-label, "Schéma") " " counter(art-fig) " · "}.art-faq{display:flex;flex-direction:column;gap:28px}.art-faq .art-h2{margin-top:16px}.art-faq__list{border-top:var(--line)}.art-faq__item{padding:18px 0;border-bottom:var(--line);display:flex;flex-direction:column;gap:6px}.art-faq__q{margin:0;font:700 19px/1.4 var(--font-sans)}.art-faq__a{margin:0;font:400 17px/1.6 var(--font-sans);color:var(--muted)}.art-pn{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}.art-pn__card{display:flex;flex-direction:column;gap:4px;padding:18px 22px;border:var(--line);border-radius:22px;text-decoration:none;transition:transform var(--t),box-shadow var(--t)}.art-pn__card--prev{background:var(--art-soft);color:var(--ink)}.art-pn__card--prev:hover{transform:translateY(-3px);box-shadow:0 4px 0 var(--shadow)}.art-pn__card--next{background:var(--cobalt);color:var(--on-cobalt);text-align:right;box-shadow:0 3px 0 var(--shadow);grid-column:2}.art-pn__card--next:hover{transform:translateY(-3px);box-shadow:0 6px 0 var(--shadow)}.art-pn__card:active{transform:translateY(2px);box-shadow:0 1px 0 var(--shadow)}.art-pn__label{font:500 13px/1.3 var(--font-sans);color:var(--label)}.art-pn__card--next .art-pn__label{color:var(--on-cobalt-soft)}.art-pn__title{font:700 18px/1.3 var(--font-sans)}.art-aside__inner{display:flex;flex-direction:column;gap:10px;font:400 14px/1.4 var(--font-sans)}.art-toc{list-style:none;margin:0;padding:0;border-left:2px solid var(--hairline)}.art-toc a{display:block;padding:6px 14px;margin-left:-2px;border-left:2px solid transparent;color:var(--muted);text-decoration:none}.art-toc a:hover{color:var(--ink);border-left-color:var(--label)}.art-toc a.is-active{color:var(--ink);font-weight:700;border-left-color:var(--ink)}.art-next{margin-top:14px;background:var(--art-soft);border:var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:6px}.art-next__title{margin:0;font:700 13px/1.3 var(--font-sans)}.art-next a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;font-size:14px}.art-next a:hover{text-decoration-color:var(--orange)}.art-share{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;min-height:44px;border:var(--line);border-radius:999px;background:var(--paper);color:var(--ink);font:700 13px/1.2 var(--font-sans);cursor:pointer;text-align:left;transition:transform var(--t),box-shadow var(--t)}.art-share:hover{background:var(--lemon);color:var(--on-brand);transform:translateY(-2px);box-shadow:0 3px 0 var(--shadow)}.art-share:active{transform:translateY(1px);box-shadow:0 1px 0 var(--shadow)}.art-end{display:none}.gloss-tip{position:absolute;z-index:80;box-sizing:border-box;width:-moz-max-content;width:max-content;max-width:min(420px,calc(100vw - 32px));background:#141414;color:#f3efe6;border-radius:18px 18px 18px 4px;padding:14px 18px;box-shadow:0 3px #5d5a52;font:400 15px/1.5 var(--font-sans);animation:pop .2s var(--ease) both;transform-origin:0 0}html.dark .gloss-tip{background:#2a2a2a;border:2px solid #5D5A52}.gloss-tip[hidden]{display:none}.gloss-tip p{margin:0}.gloss-tip__kicker{font:800 14px/1.3 var(--font-display)!important;color:#df6;margin-bottom:4px!important}.gloss-tip__more{display:inline-block;margin-top:6px;color:#df6;text-decoration:underline;text-underline-offset:3px}@media (max-width: 1279px){.art{grid-template-columns:280px minmax(0,1fr);gap:40px;padding:36px 40px 72px}.art-aside{display:none}.art-mtoc{display:block}.art-end{display:flex;flex-direction:column;gap:10px;max-width:360px}.art-end .art-next{margin-top:0}}@media (max-width: 1023px){.art{grid-template-columns:minmax(0,1fr);padding:28px 20px 64px}.art-side{display:none}.art-main{margin:0 auto;width:100%}}@media (max-width: 640px){.art{padding:22px 16px 56px}.art-main{font-size:18px;gap:24px}.art-head{gap:20px}.art-h1{font-size:38px;line-height:1.04}.art-lead{font-size:20px}.art-flow>*+*{margin-top:var(--flow, 24px)}.art-flow>h2,.art-h2{font-size:28px}.art-flow>h2{margin-top:40px}.art-flow>h3{font-size:21px}.art-author{border-radius:28px;flex:1 1 100%}.art-author__role{white-space:normal}.art-dates{flex:0 1 auto}.art-dates__cell{padding:10px 14px}.art-dates:has(.art-dates__cell--tested){flex-wrap:wrap;border-radius:22px;white-space:normal}.art-dates:has(.art-dates__cell--tested) .art-dates__cell{flex:1 1 auto}.art-dates .art-dates__cell--tested{order:3;flex-basis:100%;border-left:0;border-top:var(--line)}.art-tldr{padding:20px;border-radius:22px}.art-tldr p{font-size:17px}.callout{padding:18px 20px}.callout__body{font-size:16px}.art-main pre.astro-code{font-size:13.5px;padding:16px 18px;border-radius:18px}.art-main .code-wrap>pre.astro-code{padding-top:46px}.code-copy{top:9px;right:9px}.table-wrap{border-radius:18px}.table-wrap table{font-size:15px}.table-wrap table:has(tr>:nth-child(3)){min-width:560px}.table-wrap th,.table-wrap td{padding:10px 14px}.art-step{grid-template-columns:38px minmax(0,1fr);gap:14px}.art-step__num{width:38px;height:38px;font-size:17px}.art-step__body{padding-top:4px}.art-step__title{font-size:18px}.art-figure__frame{padding:20px 14px;border-radius:20px}.agent-tabs .agent-seg__btn{padding:8px 12px;gap:6px;font-size:13px;min-height:44px}.art-pn{grid-template-columns:1fr}.art-pn__card--next{grid-column:auto}.art-end{max-width:none}.art-faq__q{font-size:18px}.art-step__actions{margin-top:6px}.art-stale{font-size:14px}.art-cmds summary{font-size:16px;flex-wrap:wrap;row-gap:2px}.art-cmds__count{order:3;flex-basis:100%;padding-left:48px}.art-cmds__chev{order:2}.art-cmds__copy{width:100%;justify-content:center}.art-main pre.art-cmds__pre{font-size:13.5px;padding:16px 18px;border-radius:18px}}@media (prefers-reduced-motion: reduce){.art-caret{display:none}.art-steps__meter>span{transition:none}}@media print{.art{display:block;padding:0}.art-side,.art-aside,.art-progress,.art-end,.art-mtoc,.code-copy,.art-pn{display:none!important}}.art-main :is(p,li,dd,.art-faq__q,.art-faq__a){overflow-wrap:anywhere}.art-main :is(td,th){overflow-wrap:normal;word-break:normal;hyphens:manual}.art-main :is(td,th) :is(code,a){overflow-wrap:normal;word-break:normal}.art-side__inner>*{flex-shrink:0}
