:root{color-scheme:light dark;--bg:#fbfaf8;--surface:#fff;--border:#e3e0da;--text:#1c1a17;--muted:#6b6660;--accent:#b4541a;--accent-fg:#fff;--code-bg:#f4f2ee;--warn-bg:#fdf6e3;--warn-bd:#e0c675;--warn-fg:#6b5310;--max:max(41rem, 75vw);--max-wide:46rem;--shell:min(100rem, 100%);--radius:8px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}@media (prefers-color-scheme:dark){:root{--bg:#161513;--surface:#1f1e1b;--border:#35332e;--text:#ece8e1;--muted:#a19b92;--accent:#e8834a;--accent-fg:#1a1512;--code-bg:#24221f;--warn-bg:#2b2415;--warn-bd:#6b5a2c;--warn-fg:#e8cf94}}*,:before,:after{box-sizing:border-box}html{font-size:clamp(17px,15.5px + .28vw,20px)}body{background:var(--bg);color:var(--text);font:1rem/1.7 var(--font);-webkit-text-size-adjust:100%;margin:0}.wrap{max-width:var(--shell);margin:0 auto;padding:0 clamp(1.25rem,2.5vw,3rem)}.wrap.prose,.prose{max-width:var(--max)}.wrap.prose{margin:0 auto}.wrap.wide{max-width:var(--shell)}header.site{border-bottom:1px solid var(--border);background:var(--surface)}header.site .wrap{flex-wrap:wrap;align-items:center;gap:1.25rem;padding-top:.9rem;padding-bottom:.9rem;display:flex}.brand{letter-spacing:-.01em;color:var(--text);align-items:center;gap:.45rem;margin-right:auto;padding:.3rem 0;font-size:1.1rem;font-weight:700;text-decoration:none;display:inline-flex}.brand img{width:1.4rem;height:1.4rem;display:block}.brand span{color:var(--accent)}header.site nav{flex-wrap:wrap;gap:.2rem;display:flex}header.site nav a{color:var(--muted);border-radius:6px;padding:.65rem .55rem;font-size:.95rem;text-decoration:none}header.site nav a:hover,header.site nav a[aria-current=page]{color:var(--text);text-underline-offset:4px;text-decoration:underline}header.site nav a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}main{padding:2.5rem 0 3.5rem}h1{letter-spacing:-.025em;margin:0 0 .8rem;font-size:2.4rem;line-height:1.12}h2{letter-spacing:-.015em;margin:3rem 0 .8rem;font-size:1.55rem;line-height:1.25}h3{margin:1.8rem 0 .45rem;font-size:1.15rem}h1+.lede,h1+.article-meta{margin-top:.2rem}p{margin:0 0 1.05rem}a{color:var(--accent)}.lede{color:var(--text);margin-bottom:1.4rem;font-size:1.2rem;line-height:1.55}.muted{color:var(--muted)}small{font-size:.85rem}.aside-line{color:var(--muted);margin:-.4rem 0 1.6rem;font-size:.95rem;font-style:italic}.block-wide{max-width:var(--max-wide)}ul,ol{padding-left:1.2rem}li{margin:.3rem 0}hr{border:0;border-top:1px solid var(--border);margin:2.5rem 0}img,svg{max-width:100%;height:auto}figure{margin:1.5rem 0}figcaption{color:var(--muted);margin-top:.4rem;font-size:.85rem}.btn{border-radius:var(--radius);background:var(--accent);color:var(--accent-fg);cursor:pointer;border:1px solid #0000;padding:.6rem 1.1rem;font-family:inherit;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{filter:brightness(1.08)}.btn.secondary{color:var(--text);border-color:var(--border);background:0 0}.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;pointer-events:none}.btn-row{flex-wrap:wrap;align-items:center;gap:.7rem;margin:1.5rem 0;display:flex}.textlink{text-underline-offset:4px;padding:.6rem .3rem;font-weight:600}.notice{background:var(--warn-bg);border:1px solid var(--warn-bd);color:var(--warn-fg);border-radius:var(--radius);margin:1.5rem 0;padding:.9rem 1.1rem;font-size:.92rem}.notice strong{color:inherit}.notice p:last-child{margin-bottom:0}.notice a{color:inherit}.notice.strip{margin:0 0 1.4rem;padding:.5rem .9rem;font-size:.88rem}.notice:target{outline:2px solid var(--warn-bd);outline-offset:3px}pre,code{font-family:var(--mono);font-size:.875rem}code{background:var(--code-bg);border-radius:4px;padding:.12em .35em}pre{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--radius);margin:1rem 0;padding:.9rem 1rem;position:relative;overflow-x:auto}pre code{background:0 0;padding:0}.copy-btn{font:600 .74rem/1 var(--font);background:var(--surface);min-height:32px;color:var(--muted);border:1px solid var(--border);cursor:pointer;opacity:0;border-radius:6px;padding:.45rem .6rem;transition:opacity .12s;position:absolute;top:.45rem;right:.45rem}pre:hover .copy-btn,pre:focus-within .copy-btn,.copy-btn:focus-visible{opacity:1}.copy-btn:hover{color:var(--text)}@media (hover:none){.copy-btn{opacity:1}}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important;background-color:var(--code-bg)!important}}.katex-display{padding:.2rem 0;overflow:auto hidden}.cards{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem;margin:1.5rem 0;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.card h3{margin:0 0 .3rem;font-size:.95rem}.card p{color:var(--muted);margin:0;font-size:.9rem}.table-scroll{margin:1rem 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .7rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}td.num{text-align:right;font-family:var(--mono);font-size:.84rem}.release{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:1rem 0;padding:1.1rem 1.2rem}.release-head{flex-wrap:wrap;align-items:baseline;gap:.7rem;display:flex}.release-head h3{font-family:var(--mono);margin:0;font-size:1rem}.badge{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.16rem .5rem;font-size:.72rem;font-weight:700}.badge.free{color:#1f7a4d;background:#1f7a4d1a;border-color:#1f7a4d66}.badge.paid{color:var(--accent);background:#b4541a1a;border-color:#b4541a66}.badge.placeholder{background:var(--warn-bg);border-color:var(--warn-bd);color:var(--warn-fg)}@media (prefers-color-scheme:dark){.badge.free{color:#6cc79a;background:#6cc79a15;border-color:#6cc79a55}}.filelist{margin:.8rem 0 0;padding:0;list-style:none}.filelist li{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.4rem 0;font-size:.88rem;display:flex}.filelist a{font-family:var(--mono);font-size:.85rem}.filelist .size{color:var(--muted);font-size:.8rem;font-family:var(--mono);margin-left:auto}.filelist .sha{color:var(--muted);font-family:var(--mono);text-align:left;cursor:pointer;background:0 0;border:0;flex-basis:100%;padding:.1rem 0;font-size:.74rem}.filelist .sha:hover,.filelist .sha:focus-visible{color:var(--text)}.filelist .sha .hint{font-family:var(--font);opacity:.75;margin-left:.4rem;font-size:.72rem}.article-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.8rem;margin:-.2rem 0 1.4rem;font-size:.9rem;display:flex}.tags{flex-wrap:wrap;gap:.4rem;display:inline-flex}.tag{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.1rem .5rem;font-size:.74rem;text-decoration:none}.article-list{margin:1rem 0;padding:0;list-style:none}.article-list li{border-top:1px solid var(--border);padding:1rem 0}.article-list li[hidden]{display:none}.article-list h3{margin:0 0 .25rem;font-size:1.05rem}.article-list h3 a{color:var(--text);text-decoration:none}.article-list h3 a:hover{text-decoration:underline}.article-list p{color:var(--muted);margin:0 0 .3rem;font-size:.93rem}.search{align-items:center;gap:.6rem;margin:1.2rem 0 .4rem;display:flex}.search input{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);flex:1;padding:.55rem .8rem}.search input:focus{outline:2px solid var(--accent);outline-offset:1px}.search-count{color:var(--muted);white-space:nowrap;font-size:.85rem}.reproduce{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:2.2rem 0;padding:1rem 1.2rem}.reproduce h2{margin:0 0 .4rem;font-size:1.05rem}.reproduce .verify{color:var(--muted);margin:0 0 .5rem;font-size:.88rem}.reproduce .verify code{font-size:.85em}.reproduce .filelist{margin-top:.4rem}.sources ol{padding-left:1.4rem}.sources li{font-size:.92rem}.chat{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.4rem}.chat [hidden],.chat-badge[hidden]{display:none!important}.chat-head{flex-wrap:wrap;align-items:baseline;gap:.8rem;display:flex}.chat-head h2{margin:0}.chat-intro{max-width:40rem;margin:.5rem 0 1.2rem;font-size:.92rem}.chat-rules{max-width:40rem;margin-top:1.2rem}.chat-live{color:var(--muted);align-items:center;gap:.35rem;font-size:.8rem;display:inline-flex}.chat-dot{background:#37a169;border-radius:50%;flex:none;width:.5rem;height:.5rem}@media (prefers-reduced-motion:no-preference){.chat-dot{animation:2.4s ease-in-out infinite chat-pulse}}@keyframes chat-pulse{0%,to{opacity:1}50%{opacity:.35}}.chat-status{color:var(--muted);margin:0 0 1rem;font-size:.92rem}.chat-log{flex-direction:column;gap:.1rem;margin:0 0 1.4rem;padding:0;list-style:none;display:flex}.chat-msg{border-radius:var(--radius);border:1px solid #0000;margin:0;padding:.7rem .9rem}.chat-msg+.chat-msg{border-top-color:var(--border);border-radius:0}.chat-msg:hover{background:var(--code-bg)}.chat-msg.is-mine{border-left:2px solid var(--accent);border-radius:0}.chat-msg.is-removed .chat-body{color:var(--muted);font-style:italic}.chat-meta{flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.82rem;display:flex}.chat-avatar{background:hsl(var(--hue,20) 55% 48%);border-radius:50%;flex:none;width:.7rem;height:.7rem}.chat-name{color:var(--text);font-weight:600}.chat-you{text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:0 .4rem;font-size:.68rem}.chat-time{color:var(--muted)}.chat-quote{border-left:2px solid var(--border);color:var(--muted);margin:.35rem 0 .2rem;padding:.25rem 0 .25rem .7rem;font-size:.85rem}.chat-quote-name{margin-right:.4rem;font-weight:600}.chat-quote-body{opacity:.85}.chat-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:.25rem 0 0}.chat-tools{gap:.1rem;margin-top:.15rem;display:flex}.chat-mini{all:unset;cursor:pointer;color:var(--muted);border-radius:5px;padding:.3rem .45rem;font-size:.78rem}.chat-mini:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.chat-mini:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (hover:hover){.chat-tools{opacity:0;transition:opacity .12s}.chat-msg:hover .chat-tools,.chat-msg:focus-within .chat-tools{opacity:1}}.chat-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem 1rem}.chat-replying{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.6rem;font-size:.85rem;display:flex}.chat-field{margin-bottom:.7rem;display:block}.chat-field>span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.25rem;font-size:.78rem;display:block}.chat-field input,.chat-field textarea{width:100%;font:inherit;resize:vertical;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);padding:.5rem .7rem}.chat-field input:focus,.chat-field textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.chat-field input{max-width:20rem}.chat-hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.chat-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.chat-chars{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.chat-error{color:#c0392b;font-size:.85rem}@media (prefers-color-scheme:dark){.chat-error{color:#ff8a75}}.chat-badge{color:var(--muted);font-size:.82rem}.chat-who{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.8rem;padding-bottom:.7rem;font-size:.85rem;display:flex}.chat-who .chat-mini{margin-left:auto}.chat-role{text-transform:uppercase;letter-spacing:.06em;background:var(--accent);color:var(--accent-fg);border-radius:999px;padding:.05rem .45rem;font-size:.68rem}.chat-lock{margin-left:auto}.chat-danger:hover{color:#c0392b}@media (prefers-color-scheme:dark){.chat-danger:hover{color:#ff8a75}}.chat-auth{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:30rem;padding:.9rem 1rem 1rem}.chat-auth.is-standalone{margin:1.5rem 0}.chat-tabs{border-bottom:1px solid var(--border);gap:.3rem;margin-bottom:1rem;display:flex}.chat-tabs button{all:unset;cursor:pointer;color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:.5rem .7rem;font-size:.9rem}.chat-tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.chat-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.chat-authform .chat-field input{max-width:none}.chat-authform .chat-field small{margin-top:.25rem;font-size:.78rem;line-height:1.45;display:block}.chat-note{margin:.6rem 0 0;font-size:.85rem}footer.site{border-top:1px solid var(--border);background:var(--surface);color:var(--muted);padding:1.8rem 0;font-size:.85rem}footer.site nav{flex-wrap:wrap;gap:.2rem .6rem;margin-bottom:.9rem;display:flex}footer.site nav a{padding:.55rem .25rem;display:inline-block}footer.site a{color:var(--muted)}footer.site p{margin:0 0 .5rem}footer.site .disclaimer{font-size:.8rem;line-height:1.55}@media (width<=34rem){h1{font-size:1.85rem}h2{margin-top:2.4rem;font-size:1.35rem}.lede{font-size:1.1rem}header.site .wrap{gap:.3rem}header.site nav{gap:0;width:100%;margin-left:-.55rem}}.hero{padding:1rem 0 .5rem}.hero h1{text-wrap:balance;max-width:24ch;font-size:clamp(2.2rem,4.6vw,3.8rem)}.hero h1 span{color:var(--accent)}.hero .lede{max-width:60rem}.article-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1.5rem;margin:2rem 0;padding:1.2rem;display:grid}@media (width>=56rem){.article-panel{grid-template-columns:1fr 4fr;gap:2rem;padding:1.5rem}.ap-exec:not([hidden]){grid-template-columns:1fr 4fr;align-items:start;gap:1.5rem;display:grid}.ap-img{margin:0}}.ap-h{margin:0 0 .6rem;font-size:1.1rem}.ap-list ol{margin:0;padding:0;list-style:none}.ap-list li{margin:0}.ap-list li[hidden]{display:none}.ap-list ol{max-height:60vh;overflow:auto}.ap-list a{color:var(--text);border-left:3px solid #0000;border-radius:6px;padding:.6rem .8rem;text-decoration:none;display:block}.ap-list a:hover{background:var(--code-bg)}.ap-list a.is-active{border-left-color:var(--accent);background:var(--code-bg)}.ap-list time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem;display:block}.ap-list .ap-title{font-weight:600;line-height:1.3}.ap-view{min-width:0}.ap-exec[hidden]{display:none}.ap-img{min-width:0;margin-bottom:1rem;display:block}.ap-img img{aspect-ratio:3/2;object-fit:cover;border-radius:calc(var(--radius) - 4px);background:var(--code-bg);width:100%;height:auto;display:block}.ap-body{min-width:0}.ap-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.7rem;margin-bottom:.3rem;font-size:.85rem;display:flex}.ap-exec h3{margin:0 0 .5rem;font-size:1.5rem;line-height:1.2}.ap-exec h3 a{color:var(--text);text-decoration:none}.ap-exec h3 a:hover{text-decoration:underline}.ap-summary{font-size:1rem}.ap-exec .btn-row{margin:1rem 0 0}.trio{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin-top:.5rem;display:grid}.steps{padding-left:1.3rem}.steps li{margin:.55rem 0}.compare{gap:.6rem;margin-top:1.2rem;display:grid}.compare .rec{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:.6rem .8rem}.compare .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.2rem;font-size:.72rem;display:block}.compare code{white-space:normal;background:0 0;padding:0;font-size:.82rem}.compare .bad .lbl{color:#b42318}.compare .good .lbl{color:#1f7a4d}@media (width>=48rem){.compare{grid-template-columns:1fr 1fr}}.carousel{margin:2rem 0 1.5rem}.carousel-track{scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;outline-offset:4px;overscroll-behavior-x:contain;gap:1rem;margin:-.25rem;padding:.25rem;display:flex;overflow-x:auto}.carousel-track::-webkit-scrollbar{display:none}.carousel-track:focus-visible{outline:2px solid var(--accent)}.slide{scroll-snap-align:start;scroll-snap-stop:always;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-sizing:border-box;flex:0 0 100%;min-width:0;padding:1.6rem 1.8rem 1.8rem}.slide h2{margin-top:0}.slide>p:last-child,.slide>ol:last-child{margin-bottom:0}@media (width>=64rem){.slide{padding:2.2rem 2.6rem 2.4rem}.slide h2{margin-bottom:1rem;font-size:1.9rem;line-height:1.15}.slide>p,.slide>ol{max-width:none}}.carousel-nav{align-items:center;gap:.6rem;margin-top:.8rem;display:flex}.carousel-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text);font:1.3rem/1 var(--font);cursor:pointer;border-radius:50%}.carousel-btn:hover{border-color:var(--text)}.carousel-dots{gap:.45rem;display:flex}.carousel-dots button{border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:50%;width:12px;height:12px;padding:0}.carousel-dots button[aria-selected=true]{background:var(--accent);border-color:var(--accent)}.carousel-hint{margin-left:auto;font-size:.8rem}@media (width<=34rem){.carousel-hint{display:none}.slide{padding:1.2rem 1.2rem 1.4rem}}.style-pill{z-index:30;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.15rem;padding:.25rem .35rem;font-size:.85rem;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 8px 24px -10px #0006}.style-pill[hidden]{display:none}.pill-btn{width:32px;height:32px;color:var(--text);font:1.1rem/1 var(--font);cursor:pointer;background:0 0;border:0;border-radius:50%}.pill-btn:hover{background:var(--code-bg)}.pill-name{color:var(--text);white-space:nowrap;padding:0 .5rem;font-weight:600;text-decoration:none}.pill-reset{color:var(--muted)}.style-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.2rem;margin:1.5rem 0 2.5rem;display:grid}.style-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:1rem 1.1rem 1.1rem;display:flex}.style-card.is-active{outline:2px solid var(--accent);outline-offset:2px}.style-card h2{margin:.9rem 0 .3rem;font-size:1.2rem}.style-card>p{margin-bottom:.5rem;font-size:.92rem}.style-fonts{color:var(--muted)}.style-tech{color:var(--muted);margin:.3rem 0 .6rem;padding-left:1.1rem;font-size:.8rem}.style-tech li{margin:.15rem 0}.style-card .btn-row{margin:auto 0 0}.swatch{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:var(--font);min-height:9rem;padding:.9rem 1rem;position:relative;overflow:hidden}.swatch .sw-head{margin-bottom:.6rem;font-size:.85rem;font-weight:700}.swatch .sw-brand span{color:var(--accent)}.swatch .sw-h1{letter-spacing:-.02em;margin:0 0 .3rem;font-size:1.25rem;font-weight:800;line-height:1.15}.swatch .sw-p{color:var(--muted);margin:0 0 .7rem;font-size:.82rem}.swatch .sw-btn{padding:.35rem .7rem;font-size:.78rem}[data-style=editorial].swatch .sw-h1,[data-style=newspaper].swatch .sw-h1{font-family:var(--font-display)}:root{--viz-cat-1:#2a78d6;--viz-cat-2:#eb6834;--viz-cat-3:#4a9c6d;--viz-cat-4:#8a6bbf;--viz-cat-5:#c9a227;--viz-cat-6:#7a7a7a;--viz-cat-7:#3aa8a0;--viz-cat-8:#d4507a;--viz-cat-9:#9c6b3a;--viz-cat-10:#5b8f2e;--viz-cat-11:#b04ad1;--viz-cat-12:#2f5f8f;--viz-cat-13:#d98c1f;--viz-cat-14:#6d6d6d;--viz-seq-1:#e3eef9;--viz-seq-2:#b4d0ee;--viz-seq-3:#74a9dc;--viz-seq-4:#3a7dc4;--viz-seq-5:#1b4f93;--viz-up:#2a78d6;--viz-down:#eb6834;--viz-flat:#a3a09a;--viz-line:#2a78d6;--viz-axis-size:11px;--viz-label-size:12.5px;--viz-value-size:12px}.term{display:inline;position:relative}.term-btn{all:unset;cursor:help;text-decoration:underline dotted;text-decoration-color:var(--accent);text-underline-offset:3px;border-radius:3px;text-decoration-thickness:1.5px}.term-btn:hover,.term.is-pinned .term-btn{background:var(--code-bg)}.term-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.term-tip{z-index:40;background:var(--surface);width:min(24rem,90vw);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);text-align:left;padding:.8rem .95rem .9rem;font-size:.88rem;font-style:normal;font-weight:400;line-height:1.5;display:block;position:absolute;top:calc(100% + .45rem);left:0;box-shadow:0 12px 32px -12px #0007}.term-tip[hidden]{display:none}.term-tip.is-right{left:auto;right:0}.term-tip.is-up{top:auto;bottom:calc(100% + .45rem)}.term-tip-head{justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.35rem;display:flex}.term-tip-body{display:block}.term-tip-body .tp{margin:0 0 .5rem;display:block}.term-tip-body .tp:last-child{margin-bottom:0}.term-close{all:unset;cursor:pointer;color:var(--muted);padding:0 .2rem;font-size:1.1rem;line-height:1}.term-close:hover{color:var(--text)}@media (width<=40rem){.term-tip,.term-tip.is-right,.term-tip.is-up{border-radius:var(--radius) var(--radius) 0 0;width:auto;max-height:60vh;position:fixed;inset:auto 0 0;overflow:auto;box-shadow:0 -12px 32px -12px #0007}}.fig{margin:1.8rem 0}.fig-btn{all:unset;cursor:zoom-in;border-radius:var(--radius);display:block}.fig-btn:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.fig-btn{width:100%}.fig-btn img{width:100%;height:auto;display:block}.fig-label{color:var(--text);font-weight:600}.fig-hint{margin-left:.3rem;display:none}.fig.has-dialog .fig-hint{display:inline}.fig-guide-inline{margin-top:.5rem;font-size:.9rem}.fig-guide-inline[hidden]{display:none}.fig-guide-inline summary{cursor:pointer;font-weight:600}.fig-dialog{background:var(--bg);color:var(--text);border-radius:var(--radius);border:0;width:min(96vw,80rem);max-width:none;height:min(92vh,60rem);max-height:none;padding:0;box-shadow:0 30px 80px -20px #000a}.fig-dialog::backdrop{background:#0009}.fig-dialog-body{box-sizing:border-box;grid-template-columns:minmax(0,1.4fr) minmax(18rem,1fr);gap:1.5rem;height:100%;padding:1.5rem;display:grid}.fig-dialog-img{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-content:center;align-items:center;min-width:0;min-height:0;padding:1rem;display:flex}.fig-dialog-img img{object-fit:contain;width:100%;height:auto;max-height:100%}.fig-dialog-text{min-width:0;padding-right:.5rem;font-size:.95rem;line-height:1.55;overflow:auto}.fig-dialog-kicker{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .3rem;font-size:.75rem}.fig-dialog-title{margin:0 0 .9rem;font-size:1.15rem;font-weight:600;line-height:1.3}.fig-dialog-guide h4{margin:1rem 0 .3rem;font-size:.95rem}.fig-dialog-guide p,.fig-dialog-guide li{margin:0 0 .6rem}.fig-close{all:unset;cursor:pointer;color:var(--muted);border-radius:50%;padding:.2rem .5rem;font-size:1.7rem;line-height:1;position:absolute;top:.4rem;right:.7rem}.fig-close:hover,.fig-close:focus-visible{color:var(--text);background:var(--code-bg)}.chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:1.8rem 0 2rem;padding:1.1rem 1.2rem 1rem}.chart-head{margin-bottom:.7rem}.chart-title{color:var(--text);margin:0;font-size:1.02rem;font-weight:700}.chart-sub{margin:.15rem 0 0;font-size:.88rem}.chart-controls{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.5rem .8rem;margin-bottom:.9rem;padding-bottom:.85rem;display:flex}.chart-ctl{flex-direction:column;flex:10rem;gap:.2rem;min-width:0;display:flex}.chart-ctl>span{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem}.chart-ctl select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;width:100%;padding:.35rem .45rem;font-size:.88rem}.chart-ctl select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chart-plot{position:relative}.chart-svg,.chart-static{width:100%;height:auto;display:block}.chart-svg[hidden],.chart-static[hidden]{display:none}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-axis{fill:var(--muted);font-size:var(--viz-axis-size)}.chart-rowlabel{fill:var(--text);font-size:var(--viz-label-size)}.chart-value{fill:var(--text);font-size:var(--viz-value-size);font-weight:700}.chart-moe{stroke:var(--text);stroke-width:1.3px;opacity:.55}.chart-bar{transition:opacity .12s}.chart-bar:hover{opacity:.82}.chart-status{flex-wrap:wrap;align-items:center;gap:.3rem .9rem;margin:.5rem 0 0;font-size:.8rem;display:flex}.chart-key{align-items:center;gap:.35rem;display:inline-flex}.chart-key i{border-radius:2px;width:.7rem;height:.7rem;display:inline-block}.chart-axislab{color:var(--muted)}.chart-prov{color:var(--muted);flex-basis:100%;font-size:.78rem}.chart figcaption{color:var(--muted);margin-top:.7rem;font-size:.9rem;line-height:1.5}.chart-guide{margin-top:.6rem;font-size:.9rem}.chart-guide summary{cursor:pointer;color:var(--muted)}.chart-guide summary:hover{color:var(--text)}.chart-guide-copy{margin-top:.5rem}.chart-guide-copy h4{margin:.8rem 0 .3rem;font-size:.92rem}.chart-guide-copy p{margin:0 0 .6rem}.chart-note{margin:.4rem 0 0;font-size:.82rem}.chart-embed{margin-top:.4rem;font-size:.9rem}.chart-embed summary{cursor:pointer;color:var(--muted)}.chart-embed summary:hover{color:var(--text)}.chart-embed p{margin:.4rem 0}.chart-embed-code,.cite-code{box-sizing:border-box;width:100%;font:.78rem/1.45 var(--font-mono,ui-monospace, monospace);color:var(--text);background:var(--bg);border:1px solid var(--border);resize:vertical;border-radius:4px;padding:.5rem}.cite{margin:1.4rem 0;font-size:.92rem}.cite summary{cursor:pointer;font-weight:600}.cite p{margin:.5rem 0 .3rem}@media (width<=34rem){.chart{padding:.9rem .8rem .8rem}.chart-ctl{flex:100%}.chart-rowlabel{font-size:11.5px}}@media (prefers-reduced-motion:reduce){.chart-bar{transition:none}}.viz-body{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}.viz-map .viz-body{grid-template-columns:minmax(0,1.6fr) minmax(13rem,1fr);align-items:start}.viz-svg{width:100%;height:auto;display:block;overflow:visible}.viz-svg[hidden],.viz-fallback[hidden]{display:none}.viz-fallback{font-size:.88rem}.viz-tip{z-index:5;pointer-events:none;background:var(--surface);max-width:17rem;color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem;font-size:.8rem;line-height:1.4;position:absolute;box-shadow:0 6px 20px #00000024}.viz-tip[hidden]{display:none}.viz-tip .muted{color:var(--muted)}.viz-legend{flex-wrap:wrap;align-items:center;gap:.3rem .9rem;margin-top:.6rem;font-size:.8rem;display:flex}.viz-prov{font-size:.76rem}.viz svg :focus-visible{outline:2px solid var(--accent);outline-offset:1px}.viz-col-head{fill:var(--muted);letter-spacing:.06em;font-size:12px;font-weight:700}.viz-num{font-weight:700}.viz-area{stroke:var(--surface);stroke-width:.7px;cursor:pointer;transition:fill .45s,opacity .3s}.viz-area.is-dim{opacity:.22}.viz-area.is-hot{stroke:var(--text);stroke-width:2px}.viz-borough{stroke:var(--text);stroke-width:1px;stroke-opacity:.55;pointer-events:none}.viz-borough.is-on{stroke:var(--accent);stroke-width:2.6px;stroke-opacity:1}.viz-map-label{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;pointer-events:none;letter-spacing:.02em;font-size:14px;font-weight:700}.viz-legend-scale{flex:100%;max-width:26rem}.viz-legend-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.3rem;font-size:.72rem;display:block}.viz-legend-bar{border-radius:3px;height:.8rem;display:flex;position:relative;overflow:visible}.viz-legend-bar i{flex:1}.viz-legend-city{border-left:.38rem solid #0000;border-right:.38rem solid #0000;border-top:.5rem solid var(--text);width:0;height:0;position:absolute;top:-.55rem;transform:translate(-50%)}.viz-legend-ticks{height:1.1rem;color:var(--muted);margin-top:.2rem;font-size:.72rem;position:relative}.viz-legend-ticks span{white-space:nowrap;position:absolute;transform:translate(-50%)}.viz-legend-ticks span:first-child{transform:none}.viz-legend-ticks span:last-child{transform:translate(-100%)}.viz-legend-note{color:var(--muted);margin:.15rem 0 0;font-size:.75rem}.viz-side{font-size:.82rem}.viz-side-h{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 .3rem;font-size:.72rem}.viz-side ol{margin:0 0 .9rem;padding:0;list-style:none}.viz-side li{cursor:default;border-radius:5px;grid-template-columns:1.5rem minmax(0,1fr) 3.2rem auto;align-items:center;gap:.45rem;padding:.28rem .3rem;display:grid}.viz-side li:hover,.viz-side li:focus-visible{background:var(--code-bg);outline:none}.viz-rank{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:700}.viz-rank-name{line-height:1.25}.viz-rank-name small{color:var(--muted);font-size:.72rem;display:block}.viz-rank-bar{background:var(--code-bg);border-radius:3px;height:.45rem;overflow:hidden}.viz-rank-bar i{background:var(--viz-seq-4);height:100%;display:block}.viz-side b{font-variant-numeric:tabular-nums;text-align:right}.viz-side-note{color:var(--muted);margin:0;font-size:.75rem}.viz-slope{color:var(--c);cursor:pointer}.viz-slope-line{stroke:var(--c);stroke-width:2px;stroke-opacity:.55}.viz-slope.is-key .viz-slope-line{stroke-width:3.4px;stroke-opacity:1}.viz-slope-hit{stroke:#0000;stroke-width:12px}.viz-slope circle{fill:var(--c)}.viz-slope-lab{fill:var(--text);font-size:12px}.viz-slope.is-key .viz-slope-lab{font-weight:700}.viz-slope:hover .viz-slope-line,.viz-slope:focus .viz-slope-line{stroke-width:4px;stroke-opacity:1}.viz-slope-wrap:hover .viz-slope:not(:hover){opacity:.3}svg:has(.viz-slope:hover) .viz-slope:not(:hover),svg:has(.viz-slope:focus) .viz-slope:not(:focus){opacity:.28}.viz-hitrow{fill:#0000}.viz-dumb:hover .viz-hitrow,.viz-dumb:focus .viz-hitrow{fill:var(--code-bg)}.viz-dumb-bar{stroke:var(--c);stroke-width:4px;stroke-opacity:.35;stroke-linecap:round}.viz-dumb-a{fill:var(--surface);stroke:var(--muted);stroke-width:2px}.viz-dumb-b{fill:var(--c);stroke:var(--surface);stroke-width:1.5px}.viz-dumb-d{fill:var(--c);font-size:12px;font-weight:700}.chart-key i.viz-key-ring{border:2px solid var(--muted);box-sizing:border-box;border-radius:50%;width:.7rem;height:.7rem;display:inline-block}.viz-sq{transition:fill .5s ease calc(var(--i) * 18ms), opacity .2s ease}.viz-sq.is-dim{opacity:.18}.viz-waffle-keys{flex:100%;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.25rem .8rem;margin:0;padding:0;list-style:none;display:grid}.viz-waffle-keys li{cursor:default;align-items:center;gap:.4rem;transition:opacity .2s;display:flex}.viz-waffle-keys li.is-dim{opacity:.35}.viz-waffle-keys i{border-radius:3px;flex:none;width:.8rem;height:.8rem}.viz-waffle-keys b{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:1.4rem}.viz-waffle-line{color:var(--text);flex:100%;margin:.4rem 0 0;font-size:.88rem}.viz-layer{stroke:var(--surface);stroke-width:.6px;cursor:pointer;transition:opacity .2s}.viz-layer.is-dim,.viz-stack-lab.is-dim{opacity:.25}.viz-grid-over{stroke:var(--surface);stroke-opacity:.5;pointer-events:none}.viz-stack-lab{fill:var(--text);font-size:11.5px;transition:opacity .2s}.viz-partial{stroke:var(--text);stroke-dasharray:3 3;stroke-opacity:.6}.viz-reveal{fill:var(--surface);pointer-events:none;transform-box:fill-box;transform-origin:100%;transform:scaleX(0)}.viz-link{fill-opacity:.42;cursor:pointer;transition:fill-opacity .2s}.viz-link.is-hot{fill-opacity:.8}.viz-link.is-dim{fill-opacity:.08}.viz-node{cursor:pointer}.viz-node-t{fill:var(--text);fill-opacity:.75}.viz-node-lab{fill:var(--text);dominant-baseline:middle;font-size:12.5px;font-weight:600}.viz-node-num{fill:var(--muted);font-size:11.5px;font-weight:400}.viz-tl-thin{fill:none;stroke:var(--muted);stroke-width:1px;stroke-opacity:.6}.viz-tl-thick{fill:none;stroke:var(--viz-line);stroke-width:3px;stroke-linejoin:round}.viz-note-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2px}.viz-note-leader{stroke:var(--muted);stroke-width:1px;stroke-dasharray:2 2}.viz-note-title{fill:var(--text);font-size:12px;font-weight:700}.viz-note-val{fill:var(--muted);font-size:11px}.viz-note{cursor:default}.viz-tl-hit{fill:#0000}.viz-tl-cross-line{stroke:var(--text);stroke-opacity:.35}.viz-tl-cross-dot{fill:var(--text)}.viz-tl-cross[hidden]{display:none}.chart-key i.viz-key-line{background:var(--viz-line);border-radius:2px;width:1.3rem;height:3px;display:inline-block}.chart-key i.viz-key-line.thin{background:var(--muted);height:1px}.viz-table-wrap{margin-top:.5rem;overflow-x:auto}.viz-table table{border-collapse:collapse;width:100%;font-size:.8rem}.viz-table th,.viz-table td{border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;padding:.25rem .5rem}.viz-table th[scope=row],.viz-table thead th:first-child{text-align:left;white-space:normal}.viz-armed:not(.viz-in) .viz-area{opacity:0}.viz-in .viz-area{animation:.5s backwards viz-fade;animation-delay:calc(var(--i) * 22ms)}.viz-armed:not(.viz-in) .viz-slope-line,.viz-armed:not(.viz-in) .viz-tl-thick,.viz-armed:not(.viz-in) .viz-tl-thin{stroke-dasharray:1;stroke-dashoffset:1px}.viz-in .viz-slope-line{stroke-dasharray:1;animation:.8s backwards viz-draw;animation-delay:calc(var(--i) * 45ms)}.viz-in .viz-tl-thick,.viz-in .viz-tl-thin{stroke-dasharray:1;animation:1.8s ease-out backwards viz-draw}.viz-armed:not(.viz-in) .viz-note,.viz-armed:not(.viz-in) .viz-tl-area{opacity:0}.viz-in .viz-note{animation:.5s backwards viz-rise;animation-delay:calc(1.3s + var(--i) * .14s)}.viz-in .viz-tl-area{animation:1s .9s backwards viz-fade}.viz-armed:not(.viz-in) .viz-dumb-b{transform:translateX(var(--dx))}.viz-in .viz-dumb-b{animation:.9s cubic-bezier(.2,.8,.2,1) backwards viz-slide;animation-delay:calc(var(--i) * 50ms)}.viz-armed:not(.viz-in) .viz-sq{opacity:0}.viz-in .viz-sq{animation:.45s backwards viz-pop;animation-delay:calc(var(--i) * 40ms)}.viz-armed:not(.viz-in) .viz-link{fill-opacity:0}.viz-in .viz-link{animation:.8s backwards viz-link;animation-delay:calc(var(--i) * 45ms)}.viz-armed:not(.viz-in) .viz-reveal{transform:scaleX(1)}.viz-in .viz-reveal{animation:1.4s cubic-bezier(.4,0,.2,1) backwards viz-wipe}@keyframes viz-fade{0%{opacity:0}to{opacity:1}}@keyframes viz-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes viz-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes viz-slide{0%{transform:translateX(var(--dx))}to{transform:none}}@keyframes viz-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@keyframes viz-link{0%{fill-opacity:0}to{fill-opacity:.42}}@keyframes viz-wipe{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.viz-sq,.viz-dumb-b{transform-box:fill-box;transform-origin:50%}@media (width<=40rem){.viz-map .viz-body{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.viz *,.viz :before{transition:none!important;animation:none!important}}.dash{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1.7fr) minmax(15rem,1fr);gap:1.4rem;margin:1.6rem 0 2rem;padding:1.2rem 1.3rem;font-size:.92rem;display:grid}.dash-main{min-width:0}.dash-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem .9rem;margin-bottom:1rem;display:grid}.dash-filter label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.25rem;font-size:.78rem;display:block}.dash-filter select,.dash-filter input[type=range]{width:100%;font:inherit;color:var(--text)}.dash-filter select{border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:.4rem .5rem}.dash-slider{grid-column:1/-1}.dash-slider output{color:var(--text);text-transform:none;letter-spacing:0;font-size:.9rem;font-weight:700}.dash-slider input[type=range]{accent-color:var(--accent);margin-top:.2rem}.dash-q{all:unset;border:1px solid var(--border);width:1.1rem;height:1.1rem;color:var(--muted);cursor:pointer;vertical-align:middle;text-transform:none;letter-spacing:0;border-radius:50%;justify-content:center;align-items:center;margin-left:.3rem;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.dash-q:hover,.dash-q.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.dash-q:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dash-q-demo{cursor:default}.dash-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:1rem;display:grid}.dash-tile{background:var(--bg);border:1px solid var(--border);border-radius:6px;min-width:0;padding:.55rem .7rem .5rem}.dash-tile-v{letter-spacing:-.02em;color:var(--text);font-size:1.45rem;font-weight:700;line-height:1.15;display:block}.dash-tile-l{color:var(--muted);margin-top:.15rem;font-size:.74rem;line-height:1.3;display:block}.dash-chart-title{color:var(--muted);margin:0 0 .3rem;font-size:.8rem}.dash-chart svg{width:100%;height:auto;display:block}.dash-grid{stroke:var(--border);stroke-width:1px}.dash-axis{fill:var(--muted);font-size:11px}.dash-label{fill:var(--text);font-size:12px}.dash-value{fill:var(--muted);font-size:12px}.dash-bar{fill:#2a78d6;opacity:.85}.dash-bar.is-on{fill:var(--accent);opacity:1}.dash-bar.is-dim,.dash-label.is-dim,.dash-value.is-dim{opacity:.3}.dash-note{margin:.6rem 0 0;font-size:.78rem}.dash-info{border-left:1px solid var(--border);min-width:0;padding-left:1.2rem;font-size:.9rem;line-height:1.55}.dash-info-kicker{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .2rem;font-size:.72rem}.dash-info h3{margin:0 0 .5rem;font-size:1rem}.dash-info p{margin:0 0 .6rem}@media (width<=48rem){.dash{grid-template-columns:1fr;padding:1rem}.dash-info{border-left:0;border-top:1px solid var(--border);padding-top:1rem;padding-left:0}.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=52rem){.fig-dialog{width:96vw;height:96vh}.fig-dialog-body{grid-template-rows:auto 1fr;grid-template-columns:1fr;padding:2.4rem 1rem 1rem;overflow:auto}.fig-dialog-img{padding:.5rem}.fig-dialog-text{overflow:visible}}blockquote{border-left:3px solid var(--border);color:var(--muted);margin:1rem 0;padding:.2rem 1rem}.progress{z-index:20;pointer-events:none;height:3px;position:fixed;inset:0 0 auto}.progress-bar{background:var(--accent);transform-origin:0;height:100%;transform:scaleX(0)}@supports (animation-timeline:scroll()){.progress-bar{animation:linear both sd-progress scroll(root)}}@keyframes sd-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.article-layout{grid-template-columns:minmax(0,1fr);gap:0 3rem;display:grid}.article-head{max-width:60rem}.article-head h1{text-wrap:balance}.article-body{max-width:var(--max);overflow-wrap:anywhere;font-size:1.08rem;line-height:1.72}.article-body table{white-space:nowrap;width:fit-content;max-width:100%;margin:1.2rem auto;display:block;overflow-x:auto}.article-body table td,.article-body table th{white-space:normal;min-width:6rem}.article-body img{height:auto;display:block}.article-body h2,.article-body h3{scroll-margin-top:1.5rem;position:relative}.article-body h2{margin-top:2.6rem}.article-body>p:first-of-type{font-size:1.12rem}.anchor{color:var(--muted);opacity:0;margin-left:.45rem;font-size:.85em;font-weight:400;text-decoration:none}h2:hover .anchor,h3:hover .anchor,.anchor:focus-visible{opacity:1}.article-foot{border-top:1px solid var(--border);margin-top:3rem;padding-top:1.2rem;font-size:.95rem}.toc{font-size:.88rem;line-height:1.5}.toc ol{margin:0;padding:0;list-style:none}.toc li{margin:0}.toc li.d3{padding-left:.9rem}.toc a{color:var(--muted);border-left:2px solid #0000;padding:.28rem .6rem;text-decoration:none;display:block}.toc a:hover{color:var(--text)}.toc a.is-current{color:var(--text);border-left-color:var(--accent);font-weight:600}.toc-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .4rem .6rem;font-size:.72rem}.toc-top{color:var(--muted);margin:.8rem 0 0 .6rem;font-size:.8rem;display:inline-block}.toc{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0 0 1.6rem;padding:.6rem .9rem}.toc-toggle{all:unset;cursor:pointer;width:100%;font-weight:600;display:block}.toc-toggle:before{content:"▾";color:var(--muted);margin-right:.4rem;display:inline-block}.toc-toggle[aria-expanded=false]:before{content:"▸"}.toc-toggle[aria-expanded=false]~ol,.toc-toggle[aria-expanded=false]~.toc-top,.toc .toc-title{display:none}.toc ol{margin-top:.5rem}@media (width>=64rem){.article-layout.has-toc{grid-template-columns:12rem minmax(0,1fr);gap:0 2rem}.article-layout.has-toc .article-head{grid-column:1/-1}.article-layout.has-toc .article-body{grid-area:2/2;max-width:none}.toc{background:0 0;border:0;grid-area:2/1;align-self:start;max-height:calc(100vh - 3rem);margin:0;padding:.5rem 0 0;position:sticky;top:1.5rem;overflow:auto}.toc-toggle{display:none}.toc .toc-title,.toc-toggle[aria-expanded=false]~ol,.toc-toggle[aria-expanded=false]~.toc-top{display:block}.toc-toggle[aria-expanded=false]~.toc-top{display:inline-block}}.faq{border:1px solid var(--rule,#ddd);border-radius:var(--radius);margin:1.2rem 0;padding:.2rem 1rem}.faq summary{cursor:pointer;align-items:baseline;gap:.6rem;padding:.6rem 0;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:before{content:"+";color:var(--muted);flex:0 0 1rem;width:1rem;font-weight:400}.faq[open] summary:before{content:"−"}.faq summary:hover{color:var(--accent)}.faq>:not(summary){margin-left:1.6rem}.faq>p:last-child,.faq>ul:last-child,.faq>figure:last-child{margin-bottom:.9rem}.faq .chart{margin-left:0}.brief{background:var(--surface);border-left:3px solid var(--accent);border-radius:var(--radius);margin:1.4rem 0 2rem;padding:.9rem 1.2rem}.brief p:first-child{margin:0 0 .4rem;font-weight:600}.brief ul{margin:0;padding-left:1.2rem}.brief li{margin:.25rem 0}.badge{border:1px solid var(--border);color:var(--muted);vertical-align:middle;cursor:help;border-radius:999px;margin-left:.5rem;padding:.05rem .5rem;font-size:.74rem;display:inline-block}.hinge{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:1.8rem 0;padding:.8rem 0;font-style:italic}.hinge.strong{background:var(--surface);border-left:3px solid var(--accent);border-radius:var(--radius);border-top:0;border-bottom:0;padding:.9rem 1.2rem;font-style:normal}.hinge.strong strong{margin-bottom:.3rem;display:block}.chart-head{flex-wrap:wrap;align-items:baseline;gap:.2rem .7rem;display:flex}.chart-head .chart-title{flex:auto}.chart-head .chart-sub{flex-basis:100%}.chart-tier{margin-left:auto}.term-btn.tier{all:unset;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.24rem .55rem;font-size:.66rem;font-weight:700;line-height:1;display:inline-block}.term-btn.tier:hover,.term.is-pinned .term-btn.tier{filter:brightness(.92)}.tier-measured{color:#1f7a4d;background:#1f7a4d14;border-color:#1f7a4d66}.tier-computed{color:#1d5fa8;background:#1d5fa814;border-color:#1d5fa866}.tier-modelled{color:#7a3fa6;background:#7a3fa614;border-color:#7a3fa666}.tier-administrative{color:#8a5a10;background:#8a5a1014;border-color:#8a5a1066}@media (prefers-color-scheme:dark){.tier-measured{color:#6cc79a}.tier-computed{color:#8ab8f2}.tier-modelled{color:#c9a3ea}.tier-administrative{color:#e3bd70}}.tier-legend .term{margin:0 .05rem}.tier-legend .term-btn.tier{padding:.18rem .45rem;font-size:.6rem}.scope{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:.4rem 1.6rem;margin:-1.1rem 0 2rem;padding:.8rem 1.2rem;font-size:.92rem;display:grid}.scope>div>p:first-child{letter-spacing:.02em;color:var(--muted);margin:0 0 .25rem;font-size:.86rem;font-weight:600}.scope ul{margin:0;padding-left:1.1rem}.scope li{margin:.18rem 0}@media (width<=640px){.scope{grid-template-columns:1fr}}.dash-tile-moe{font-family:var(--mono);color:var(--muted);min-height:1em;margin-top:.05rem;font-size:.72rem;display:block}.article-meta .version a{color:inherit;text-decoration:underline dotted}.changelog{margin:1.8rem 0}.changelog h2{flex-wrap:wrap;align-items:center;gap:.6rem;font-size:1.1rem;display:flex}.changelog-list{padding-left:1.2rem}.changelog-list li{margin:.3rem 0}.changelog time{font-family:var(--mono);font-size:.84rem}.validation{margin:.9rem 0 .4rem}.validation-head{margin:0 0 .4rem;font-size:.9rem}.validation-scroll{margin:0 0 .3rem;overflow-x:auto}.validation-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.article-body .validation-table{white-space:normal;width:100%;margin:0;font-size:.82rem;display:table;overflow:visible}.validation-table th,.validation-table td{padding:.3rem .5rem}.validation-table td.ok{color:#1f7a4d;font-weight:600}.validation-table td.notok{color:var(--accent);font-weight:600}@media (prefers-color-scheme:dark){.validation-table td.ok{color:#6cc79a}}.preread-banner{background:var(--warn-bg);border:1px solid var(--warn-bd);color:var(--warn-fg);border-radius:var(--radius);margin:0 0 1.4rem;padding:.7rem 1rem;font-size:.9rem}.viz-note-badge{fill:var(--text)}.viz-note-num{fill:var(--surface);font-size:11px;font-weight:700}.viz-note-list{flex:100%;gap:.2rem;margin:0 0 .3rem;padding:0;font-size:.82rem;list-style:none;display:grid}.viz-note-list b{background:var(--text);width:1.2rem;height:1.2rem;color:var(--surface);border-radius:50%;place-items:center;margin-right:.3rem;font-size:.7rem;display:inline-grid}.viz-note-list .muted{color:var(--muted)}.viz-svg:focus{outline:none}.viz-line{cursor:pointer;transition:opacity .2s}.viz-line.is-dim,.viz-line-lab.is-dim{opacity:.18}.viz-line-path{fill:none;stroke:var(--c);stroke-width:2.2px;stroke-linejoin:round;stroke-linecap:round}.viz-line-hit{fill:none;stroke:#0000;stroke-width:14px}.viz-line-dot{fill:var(--c);stroke:var(--surface);stroke-width:1.2px}.viz-line-moe{stroke:var(--c);stroke-width:1px;opacity:.55}.viz-line-lab{font-size:11.5px;font-weight:600;transition:opacity .2s}.viz-line:hover .viz-line-path,.viz-line:focus .viz-line-path{stroke-width:3.6px}.viz-strip-bar{stroke:var(--border);stroke-width:3px;stroke-linecap:round}.viz-strip-dot{stroke:var(--surface);stroke-width:1.2px;cursor:pointer}.viz-strip-dot:hover{stroke:var(--text)}.viz-armed:not(.viz-in) .viz-line-path{stroke-dasharray:1;stroke-dashoffset:1px}.viz-in .viz-line-path{stroke-dasharray:1;animation:1.1s ease-out backwards viz-draw;animation-delay:calc(var(--i) * 60ms)}.viz-armed:not(.viz-in) .viz-line-dot,.viz-armed:not(.viz-in) .viz-line-moe,.viz-armed:not(.viz-in) .viz-line-lab{opacity:0}.viz-in .viz-line-dot,.viz-in .viz-line-moe{animation:.4s backwards viz-fade;animation-delay:calc(.9s + var(--i) * 60ms)}.viz-in .viz-line-lab{animation:.5s 1.2s backwards viz-fade}.viz-armed:not(.viz-in) .viz-strip-dot{opacity:0}.viz-in .viz-strip-dot{animation:.4s backwards viz-pop;animation-delay:calc(var(--i) * 18ms)}.viz-strip-dot{transform-box:fill-box;transform-origin:50%}.viz-ledger-bar{stroke:var(--surface);stroke-width:.6px;cursor:pointer}.viz-ledger-bar:hover,.viz-ledger-bar:focus{stroke:var(--text);stroke-width:1.4px}.viz-ledger-zero{stroke:var(--text);stroke-opacity:.7}.viz-ledger-total{cursor:pointer}.viz-ledger-total line{stroke:var(--text);stroke-width:2.6px;stroke-linecap:round}.viz-ledger-total circle{fill:var(--text);stroke:var(--surface);stroke-width:1px}.viz-ledger-break{stroke:var(--muted);stroke-dasharray:3 3}.viz-ledger-break-lab{fill:var(--muted);font-size:var(--viz-axis-size)}.chart-key i.viz-key-total{background:var(--text);border-radius:2px;width:1.1rem;height:3px;display:inline-block}.viz-armed:not(.viz-in) .viz-ledger-bar,.viz-armed:not(.viz-in) .viz-ledger-total{opacity:0}.viz-in .viz-ledger-bar{animation:.45s backwards viz-fade;animation-delay:calc(var(--i) * 40ms)}.viz-in .viz-ledger-total{animation:.4s backwards viz-fade;animation-delay:calc(.5s + var(--i) * 40ms)}[data-style=editorial]{--bg:#fffdf9;--surface:#fff;--border:#e8e2d6;--text:#1a1a1a;--muted:#6b665e;--accent:#a6451c;--accent-fg:#fff;--code-bg:#f6f2ea;--font:"Source Serif 4 Variable", Charter, Georgia, serif;--font-display:"Playfair Display Variable", Georgia, serif;--max:40rem;--radius:2px}[data-style=editorial] body,[data-style=editorial].swatch{font-family:var(--font);font-size:1.1rem;line-height:1.62}[data-style=editorial] h1,[data-style=editorial] h2,[data-style=editorial] h3,[data-style=editorial] .brand .wordmark{font-family:var(--font-display);letter-spacing:0;text-wrap:balance;font-weight:600}[data-style=editorial] h1{font-size:2.9rem;line-height:1.08}[data-style=editorial] .lede{color:var(--muted);font-style:italic}[data-style=editorial] p{text-wrap:pretty}[data-style=editorial] .article-body>p:first-of-type:first-letter{font-family:var(--font-display);float:left;color:var(--accent);padding:.08em .12em 0 0;font-size:3.6em;line-height:.82}[data-style=editorial] .btn{border-radius:999px}[data-style=editorial] .card,[data-style=editorial] .slide{border:0;border-top:2px solid var(--text);background:0 0;border-radius:0;padding-left:0;padding-right:0}[data-style=editorial] header.site{background:var(--bg);border-bottom:1px solid var(--text)}@media (prefers-color-scheme:dark){[data-style=editorial]{--bg:#171512;--surface:#1e1b17;--border:#35302a;--text:#efe9df;--muted:#a8a094;--accent:#e28a58;--accent-fg:#1a1512;--code-bg:#25211c}}[data-style=swiss]{--bg:#fff;--surface:#fff;--border:#000;--text:#000;--muted:#555;--accent:#e30613;--accent-fg:#fff;--code-bg:#f2f2f2;--font:"Inter Variable", Helvetica, Arial, sans-serif;--radius:0;--shell:80rem}[data-style=swiss] body,[data-style=swiss].swatch{font-family:var(--font);letter-spacing:-.01em;background-image:linear-gradient(90deg,#0000000d 1px,#0000 1px);background-size:8.33333% 100%}[data-style=swiss] h1{letter-spacing:-.045em;text-wrap:balance;text-transform:none;font-size:clamp(2.6rem,7vw,6rem);font-weight:800;line-height:.95}[data-style=swiss] h2{text-transform:uppercase;letter-spacing:.12em;border-top:3px solid #000;padding-top:.6rem;font-size:1.1rem;font-weight:700}[data-style=swiss] .lede{color:var(--text);max-width:32rem;font-size:1.35rem;line-height:1.35}[data-style=swiss] .btn{text-transform:uppercase;letter-spacing:.08em;border-radius:0;padding:.9rem 1.4rem;font-size:.8rem}[data-style=swiss] .btn.secondary,[data-style=swiss] .textlink{color:var(--text)}[data-style=swiss] .card,[data-style=swiss] .slide,[data-style=swiss] .notice,[data-style=swiss] .reproduce{background:0 0;border:0;border-top:1px solid #000;border-radius:0;padding-left:0;padding-right:0}[data-style=swiss] .cards{grid-template-columns:repeat(12,1fr);display:grid}[data-style=swiss] .cards .card{grid-column:span 4}[data-style=swiss] header.site{background:0 0;border-bottom:3px solid #000}[data-style=swiss] .brand .wordmark span{color:var(--accent)}[data-style=swiss] .badge,[data-style=swiss] .tag{color:#000;border-color:#000;border-radius:0}[data-style=swiss] footer.site{background:0 0;border-top:3px solid #000}@media (width<=34rem){[data-style=swiss] .cards .card{grid-column:span 12}}@media (prefers-color-scheme:dark){[data-style=swiss]{--bg:#111;--surface:#111;--border:#fff;--text:#fff;--muted:#bbb;--code-bg:#1e1e1e}[data-style=swiss] body{background-image:linear-gradient(90deg,#ffffff14 1px,#0000 1px)}[data-style=swiss] h2,[data-style=swiss] header.site,[data-style=swiss] footer.site,[data-style=swiss] .card,[data-style=swiss] .slide,[data-style=swiss] .notice{border-color:#fff}}[data-style=brutalist]{--bg:#f4f1ea;--surface:#fff;--border:#000;--text:#000;--muted:#333;--accent:#000;--accent-fg:#ffe600;--code-bg:#fff;--font:"Space Grotesk Variable", Arial, sans-serif;--radius:0}[data-style=brutalist] body,[data-style=brutalist].swatch{font-family:var(--font)}[data-style=brutalist] h1{text-transform:uppercase;letter-spacing:-.03em;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#ffe600;padding:0 .15em;font-size:clamp(2.4rem,6vw,4.5rem);line-height:1;display:inline}[data-style=brutalist] h2{text-transform:uppercase;letter-spacing:.04em;border-bottom:4px solid #000;display:inline-block}[data-style=brutalist] .card,[data-style=brutalist] .slide,[data-style=brutalist] .notice,[data-style=brutalist] .reproduce,[data-style=brutalist] pre,[data-style=brutalist] .style-card{color:#000;background:#fff;border:3px solid #000;border-radius:0;box-shadow:6px 6px #000}[data-style=brutalist] .card:hover,[data-style=brutalist] .style-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px #000}[data-style=brutalist] .btn{color:#000;text-transform:uppercase;letter-spacing:.06em;background:#ffe600;border:3px solid #000;border-radius:0;box-shadow:4px 4px #000}[data-style=brutalist] .btn:active{transform:translate(3px,3px);box-shadow:1px 1px #000}[data-style=brutalist] .btn.secondary{background:#fff}[data-style=brutalist] header.site{background:#ffe600;border-bottom:4px solid #000}[data-style=brutalist] header.site nav a{color:#000;text-transform:uppercase;font-size:.85rem;font-weight:700}[data-style=brutalist] .brand .wordmark span{color:#ffe600;background:#000;padding:0 .2em}[data-style=brutalist] a{color:#000;text-decoration-thickness:3px}[data-style=brutalist] .notice{color:#000;background:#ffe600;border-color:#000}[data-style=brutalist] .badge,[data-style=brutalist] .tag{color:#000;border:2px solid #000;border-radius:0}@media (prefers-color-scheme:dark){[data-style=brutalist]{--bg:#111;--text:#fff;--muted:#ddd}[data-style=brutalist] .card,[data-style=brutalist] .slide,[data-style=brutalist] pre,[data-style=brutalist] .reproduce,[data-style=brutalist] .style-card{color:#fff;background:#1a1a1a;border-color:#fff;box-shadow:6px 6px #fff}[data-style=brutalist] a{color:#fff}[data-style=brutalist] h2{border-color:#fff}}[data-style=terminal]{--bg:#050805;--surface:#0a0f0a;--border:#1f3a1f;--text:#9dff9d;--muted:#4f9e4f;--accent:#ffd23f;--accent-fg:#050805;--code-bg:#0e160e;--warn-bg:#1a1a05;--warn-bd:#7a7a20;--warn-fg:#ffd23f;--font:"JetBrains Mono Variable", ui-monospace, Consolas, monospace;--mono:var(--font);--radius:0;color-scheme:dark}[data-style=terminal] body,[data-style=terminal].swatch{font-family:var(--font);font-size:.95rem;line-height:1.6;position:relative}[data-style=terminal] body:after{content:"";pointer-events:none;z-index:9;mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#0000 0 2px,#0003 2px 3px);position:fixed;inset:0}[data-style=terminal] h1,[data-style=terminal] h2,[data-style=terminal] h3{letter-spacing:0;text-shadow:0 0 12px #9dff9d55;font-weight:700}[data-style=terminal] h1{font-size:1.9rem}[data-style=terminal] h1:before{content:"$ ";color:var(--accent)}[data-style=terminal] h1:after{content:"▌";margin-left:.1em;animation:1.1s step-end infinite sd-blink}[data-style=terminal] h2:before{content:"## ";color:var(--muted)}[data-style=terminal] .lede{color:var(--muted)}[data-style=terminal] .btn{color:var(--accent);border:1px solid var(--accent);background:0 0;border-radius:0}[data-style=terminal] .btn:before{content:"> "}[data-style=terminal] .btn.secondary{color:var(--text);border-color:var(--border)}[data-style=terminal] .card,[data-style=terminal] .slide,[data-style=terminal] .reproduce,[data-style=terminal] .style-card{border:1px dashed var(--border);background:0 0;border-radius:0}[data-style=terminal] header.site,[data-style=terminal] footer.site{border-color:var(--border);background:0 0}[data-style=terminal] .brand img{filter:hue-rotate(60deg)saturate(2)}[data-style=terminal] a,[data-style=terminal] .brand .wordmark span{color:var(--accent)}[data-style=terminal] .badge,[data-style=terminal] .tag{border-radius:0}@keyframes sd-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){[data-style=terminal] h1:after{animation:none}}@property --sd-hue{syntax:"<angle>";inherits:true;initial-value:20deg}[data-style=glass]{--bg:#0d1020;--surface:#ffffff14;--border:#ffffff2e;--text:#f4f6fb;--muted:#b9c0d4;--accent:#ff9a5c;--accent-fg:#14101c;--code-bg:#ffffff12;--warn-bg:#ffd66a22;--warn-bd:#ffd66a66;--warn-fg:#ffe4a3;--font:"Inter Variable", system-ui, sans-serif;--radius:18px;color-scheme:dark}[data-style=glass] body,[data-style=glass].swatch{font-family:var(--font);background:radial-gradient(60rem 40rem at 10% -10%, hsl(var(--sd-hue) 90% 60% / .45), transparent 60%), radial-gradient(50rem 40rem at 100% 20%, hsl(calc(var(--sd-hue) + 140deg) 80% 55% / .35), transparent 60%), radial-gradient(40rem 40rem at 50% 110%, hsl(calc(var(--sd-hue) + 260deg) 80% 55% / .35), transparent 60%), var(--bg);background-attachment:fixed;animation:24s linear infinite sd-hue}@keyframes sd-hue{to{--sd-hue:380deg}}@media (prefers-reduced-motion:reduce){[data-style=glass] body{animation:none}}[data-style=glass] header.site,[data-style=glass] footer.site,[data-style=glass] .card,[data-style=glass] .slide,[data-style=glass] .notice,[data-style=glass] .reproduce,[data-style=glass] pre,[data-style=glass] .style-card,[data-style=glass] .toc{border:1px solid var(--border);-webkit-backdrop-filter:blur(18px)saturate(1.4);border-radius:var(--radius);background:#ffffff14}[data-style=glass] header.site{z-index:5;border-radius:0;position:sticky;top:0}[data-style=glass] h1{letter-spacing:-.035em;background:linear-gradient(90deg,#fff,#ffd2b6);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,5vw,3.6rem)}[data-style=glass] .btn{border-radius:999px;box-shadow:0 8px 30px #ff9a5c44}[data-style=glass] .btn.secondary{color:var(--text);background:#ffffff14}[data-style=glass] .badge.free{color:#8ff0b6;background:#8ff0b61a;border-color:#8ff0b666}@view-transition{navigation:auto}[data-style=neumorphic]{--bg:#e6e2dc;--surface:#e6e2dc;--border:transparent;--text:#2b2823;--muted:#6f6a63;--accent:#c8642a;--accent-fg:#fff;--code-bg:#ebe7e1;--font:"Nunito Variable", system-ui, sans-serif;--radius:22px;--sh-l:#fff;--sh-d:#c3bdb3}[data-style=neumorphic] body,[data-style=neumorphic].swatch{font-family:var(--font)}[data-style=neumorphic] .card,[data-style=neumorphic] .slide,[data-style=neumorphic] .notice,[data-style=neumorphic] .reproduce,[data-style=neumorphic] pre,[data-style=neumorphic] .style-card,[data-style=neumorphic] .toc,[data-style=neumorphic] .search input{background:var(--surface);border-radius:var(--radius);box-shadow:9px 9px 18px var(--sh-d), -9px -9px 18px var(--sh-l);border:0}[data-style=neumorphic] .btn{box-shadow:6px 6px 12px var(--sh-d), -6px -6px 12px var(--sh-l);border:0;border-radius:999px}[data-style=neumorphic] .btn.secondary{background:var(--surface);color:var(--text)}[data-style=neumorphic] .btn:active,[data-style=neumorphic] .card:has(a:active){box-shadow:inset 5px 5px 10px var(--sh-d), inset -5px -5px 10px var(--sh-l)}[data-style=neumorphic] header.site,[data-style=neumorphic] footer.site{background:var(--bg);box-shadow:0 8px 18px -12px var(--sh-d);border:0}[data-style=neumorphic] h1{letter-spacing:-.02em;font-weight:800}[data-style=neumorphic] .notice{color:var(--text)}@media (prefers-color-scheme:dark){[data-style=neumorphic]{--bg:#2a2724;--surface:#2a2724;--text:#ebe6de;--muted:#a8a196;--code-bg:#2f2b28;--sh-l:#36322e;--sh-d:#1c1a17;--accent:#e8834a;--accent-fg:#1a1512}}[data-style=bento]{--bg:#f3f4f6;--surface:#fff;--border:#e5e7eb;--text:#111827;--muted:#5b6472;--accent:#c2410c;--accent-fg:#fff;--code-bg:#f9fafb;--font:"Space Grotesk Variable", system-ui, sans-serif;--radius:20px;--shell:78rem}[data-style=bento] body,[data-style=bento].swatch{font-family:var(--font)}[data-style=bento] h1{letter-spacing:-.03em;font-size:clamp(2.2rem,4.5vw,3.4rem)}[data-style=bento] .cards,[data-style=bento] .style-grid{grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(9rem,auto);gap:1rem;display:grid}[data-style=bento] .cards .card:first-child{grid-area:span 2/span 4}[data-style=bento] .cards .card:nth-child(2),[data-style=bento] .cards .card:nth-child(3){grid-column:span 2}[data-style=bento] .card,[data-style=bento] .slide,[data-style=bento] .reproduce,[data-style=bento] .style-card,[data-style=bento] .toc-side,[data-style=bento] .toc-mobile,[data-style=bento] .article-panel,[data-style=bento] .notice{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:0 1px 2px #0000000a,0 12px 30px -18px #0003;container-type:inline-size}@container (width>=28rem){[data-style=bento] .card h3{font-size:1.6rem}[data-style=bento] .card p{font-size:1rem}}[data-style=bento] .card h3{color:var(--accent)}[data-style=bento] .btn{border-radius:12px}[data-style=bento] .badge,[data-style=bento] .tag{background:var(--code-bg);border-radius:8px}[data-style=bento] header.site{background:0 0;border:0}[data-style=bento] header.site .wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-top:.8rem;padding-left:1.2rem;padding-right:1.2rem}[data-style=bento] .card{animation:.5s both sd-rise;animation-delay:calc(sibling-index() * 70ms)}[data-style=bento] .toc-side{padding:1rem .6rem}[data-style=bento] .trio .card{grid-area:auto!important}[data-style=bento] .ap-list a.is-active{background:var(--code-bg)}@media (prefers-reduced-motion:reduce){[data-style=bento] .card{animation:none}}@keyframes sd-rise{0%{opacity:0;transform:translateY(10px)}}@media (width<=40rem){[data-style=bento] .cards .card{grid-area:auto/span 6!important}}@media (prefers-color-scheme:dark){[data-style=bento]{--bg:#0b0f19;--surface:#131a2a;--border:#223050;--text:#e5e9f2;--muted:#93a0b8;--accent:#ea580c;--accent-fg:#0b0f19;--code-bg:#0f1522}}[data-style=newspaper]{--bg:#f7f4ec;--surface:#f7f4ec;--border:#111;--text:#111;--muted:#4a4a4a;--accent:#8b1a1a;--accent-fg:#fff;--code-bg:#eeeae0;--font:"Source Serif 4 Variable", Georgia, serif;--font-display:"Fraunces Variable", Georgia, serif;--radius:0;--shell:76rem;--max:60rem}[data-style=newspaper] body,[data-style=newspaper].swatch{font-family:var(--font);hyphens:auto}[data-style=newspaper] header.site{background:0 0;border-top:4px double #111;border-bottom:1px solid #111}[data-style=newspaper] header.site .wrap{flex-direction:column;gap:.3rem;padding-top:1rem}[data-style=newspaper] .brand{margin:0}[data-style=newspaper] .brand .wordmark{font-family:var(--font-display);letter-spacing:-.02em;font-size:2.6rem;font-weight:900}[data-style=newspaper] .brand img{display:none}[data-style=newspaper] header.site nav{border-top:1px solid #111;justify-content:center;width:100%}[data-style=newspaper] header.site nav a{letter-spacing:.08em;color:#111;font-variant-caps:small-caps}[data-style=newspaper] h1{font-family:var(--font-display);text-wrap:balance;font-size:clamp(2.2rem,5vw,3.6rem);font-weight:900;line-height:1.05}[data-style=newspaper] h2{font-family:var(--font-display);border-top:1px solid #111;padding-top:.5rem}[data-style=newspaper] .lede{font-style:italic}[data-style=newspaper] .article-body,[data-style=newspaper] .slide p{column-count:2;column-rule:1px solid #111;column-gap:2.2rem}[data-style=newspaper] .article-body>*,[data-style=newspaper] .article-body h2{break-inside:avoid;column-span:none}[data-style=newspaper] .article-body h2{column-span:all}[data-style=newspaper] .article-body>p:first-of-type:first-letter{float:left;font-family:var(--font-display);padding:.1em .1em 0 0;font-size:3.4em;font-weight:900;line-height:.8}[data-style=newspaper] .card,[data-style=newspaper] .slide,[data-style=newspaper] .notice,[data-style=newspaper] .reproduce,[data-style=newspaper] .style-card{background:0 0;border:1px solid #111;border-left:0;border-right:0;border-radius:0}[data-style=newspaper] .btn{font-family:var(--font);letter-spacing:.06em;border-radius:0;font-variant-caps:small-caps}[data-style=newspaper] .notice{color:#111}@media (width<=48rem){[data-style=newspaper] .article-body,[data-style=newspaper] .slide p{column-count:1}}@media (prefers-color-scheme:dark){[data-style=newspaper]{--bg:#16140f;--surface:#16140f;--border:#ddd;--text:#ece6d8;--muted:#b3ac9e;--accent:#e07a5f;--code-bg:#201d16}[data-style=newspaper] header.site,[data-style=newspaper] header.site nav,[data-style=newspaper] h2,[data-style=newspaper] .card,[data-style=newspaper] .slide,[data-style=newspaper] .notice,[data-style=newspaper] .article-body{column-rule-color:#ddd;border-color:#ddd}[data-style=newspaper] header.site nav a{color:var(--text)}}[data-style=paper]{--bg:#fff;--surface:#fff;--border:#ccc;--text:#000;--muted:#444;--accent:#0b3d91;--accent-fg:#fff;--code-bg:#f5f5f5;--font:"Source Serif 4 Variable", "Times New Roman", serif;--mono:"IBM Plex Mono", Consolas, monospace;--radius:0;--max:38rem}[data-style=paper] body,[data-style=paper].swatch{font-family:var(--font);text-align:justify;hyphens:auto;font-feature-settings:"onum", "kern", "liga";font-size:1.05rem;line-height:1.5}[data-style=paper] main{counter-reset:sec}[data-style=paper] h1{text-align:center;letter-spacing:0;text-wrap:balance;font-size:1.9rem;font-weight:700}[data-style=paper] .lede,[data-style=paper] .article-meta{text-align:center;justify-content:center;font-size:.95rem}[data-style=paper] h2{text-align:left;counter-increment:sec;margin-top:2rem;font-size:1.15rem;font-weight:700}[data-style=paper] h2:before{content:counter(sec) ". "}[data-style=paper] .article-body h3{font-style:italic;font-weight:500}[data-style=paper] .card,[data-style=paper] .slide,[data-style=paper] .reproduce,[data-style=paper] .style-card,[data-style=paper] .notice{text-align:left;background:0 0;border:1px solid #000;border-radius:0}[data-style=paper] .btn{font-family:var(--font);border-radius:0}[data-style=paper] header.site,[data-style=paper] footer.site{background:0 0;border-color:#000}[data-style=paper] header.site nav a{font-family:var(--font);font-size:1rem}[data-style=paper] .brand img{display:none}[data-style=paper] figcaption{text-align:center;font-style:italic}[data-style=paper] .sources ol li{text-align:left;font-size:.9rem}[data-style=paper] .notice{color:#000;background:#f5f5f5;border-color:#000}@media (prefers-color-scheme:dark){[data-style=paper]{--bg:#101010;--surface:#101010;--border:#666;--text:#eee;--muted:#bbb;--accent:#8ab4ff;--code-bg:#1a1a1a}[data-style=paper] .card,[data-style=paper] .slide,[data-style=paper] .notice,[data-style=paper] header.site,[data-style=paper] footer.site{border-color:#eee}[data-style=paper] .notice{color:#eee;background:#1a1a1a}}[data-style=noir]{--bg:#000;--surface:#000;--border:#333;--text:#fff;--muted:#9a9a9a;--accent:#ff7a1a;--accent-fg:#000;--code-bg:#111;--font:"Inter Variable", system-ui, sans-serif;--radius:0;color-scheme:dark;--shell:84rem}[data-style=noir] body,[data-style=noir].swatch{font-family:var(--font);letter-spacing:-.012em}[data-style=noir] h1{letter-spacing:-.06em;text-wrap:balance;text-transform:uppercase;font-size:clamp(3rem,10vw,8rem);font-weight:800;line-height:.92}[data-style=noir] h2{letter-spacing:-.03em;font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:700}[data-style=noir] .lede{color:var(--muted);max-width:36rem;font-size:1.3rem}[data-style=noir] .btn{text-transform:uppercase;letter-spacing:.12em;border-radius:0;padding:1rem 1.6rem;font-size:.8rem}[data-style=noir] .btn.secondary,[data-style=noir] .textlink{color:#fff;border-color:#fff}[data-style=noir] .card,[data-style=noir] .slide,[data-style=noir] .reproduce,[data-style=noir] .style-card,[data-style=noir] .notice{background:0 0;border:0;border-top:1px solid #fff;border-radius:0;padding-left:0;padding-right:0}[data-style=noir] .notice{color:#fff;border-top-color:var(--accent)}[data-style=noir] header.site,[data-style=noir] footer.site{background:0 0;border-color:#fff}[data-style=noir] main h2,[data-style=noir] .card,[data-style=noir] .article-body>p{animation:linear both sd-reveal view();animation-range:entry entry 35%}@keyframes sd-reveal{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){[data-style=noir] *{animation:none!important}}[data-style=playful]{--bg:#fff8f1;--surface:#fff;--border:#ffd9c2;--text:#3a2a22;--muted:#8a6a5c;--accent:#ff6b35;--accent-fg:#fff;--code-bg:#fff1e6;--warn-bg:#fff3c4;--warn-bd:#ffd166;--warn-fg:#6b4e00;--font:"Nunito Variable", system-ui, sans-serif;--radius:24px;--spring:cubic-bezier(.34, 1.56, .64, 1)}[data-style=playful] body,[data-style=playful].swatch{font-family:var(--font);background-image:radial-gradient(#ffd9c2 1px,#0000 1px);background-size:22px 22px}[data-style=playful] h1{letter-spacing:-.02em;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:900}[data-style=playful] h1 span,[data-style=playful] .brand .wordmark span{color:var(--accent)}[data-style=playful] .card,[data-style=playful] .slide,[data-style=playful] .reproduce,[data-style=playful] .style-card,[data-style=playful] .notice,[data-style=playful] pre,[data-style=playful] .toc{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 10px 0 -4px color-mix(in srgb, var(--accent) 18%, transparent);transition:transform .35s var(--spring), box-shadow .35s var(--spring)}[data-style=playful] .cards .card:nth-child(odd){transform:rotate(-1.2deg)}[data-style=playful] .cards .card:nth-child(2n){transform:rotate(1.2deg)}[data-style=playful] .card:hover,[data-style=playful] .style-card:hover{box-shadow:0 16px 0 -4px color-mix(in srgb, var(--accent) 28%, transparent);transform:rotate(0)translateY(-4px)scale(1.02)}[data-style=playful] .btn{transition:transform .3s var(--spring);border-radius:999px;padding:.75rem 1.4rem;font-weight:800}[data-style=playful] .btn:hover{transform:scale(1.06)rotate(-1deg)}[data-style=playful] header.site{background:0 0;border:0}[data-style=playful] header.site nav a{border-radius:999px}[data-style=playful] header.site nav a:hover,[data-style=playful] header.site nav a[aria-current=page]{background:var(--code-bg);text-decoration:none}[data-style=playful] .badge,[data-style=playful] .tag{border-width:2px;border-radius:999px}@media (prefers-color-scheme:dark){[data-style=playful]{--bg:#1f1713;--surface:#2a201b;--border:#4a352c;--text:#ffe9dc;--muted:#c9a898;--code-bg:#33261f}[data-style=playful] body{background-image:radial-gradient(#4a352c 1px,#0000 1px)}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.cHuGMAiY.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.DwHjdM4S.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.ece1310W.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.D-yuW59g.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.CxNHBx-q.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.D9elroTD.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
