pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--bg2: #141414;--bg3: #1c1c1c;--border: #262626;--border2: #333;--text: #e8e8e8;--text2: #999;--text3: #666;--accent: #2dd4bf;--accent2: #0d9488;--warn: #f59e0b;--red: #f87171;--green: #4ade80;--sidebar-w: 240px;--font-sans: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Fira Code", monospace}[data-theme=light]{--bg: #fafafa;--bg2: #f3f3f3;--bg3: #ebebeb;--border: #e0e0e0;--border2: #d0d0d0;--text: #0d0d0d;--text2: #555;--text3: #999;--accent: #0d9488;--accent2: #0f766e}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}.layout{display:flex;min-height:100vh;max-width:1180px;margin:0 auto}.sidebar{width:var(--sidebar-w);flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}.sidebar-header{padding:24px 20px 16px;border-bottom:1px solid var(--border)}.sidebar-logo{font-family:var(--font-mono);font-size:12px;color:var(--accent);letter-spacing:.02em;line-height:1.4}.sidebar-logo span{display:block;color:var(--text2);font-size:11px;margin-top:3px}.sidebar-nav{padding:16px 0;flex:1}.nav-group{margin-bottom:4px}.nav-group-label{padding:4px 20px;font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text3)}.nav-item{display:block;padding:7px 20px;font-size:13px;color:var(--text2);cursor:pointer;border-left:2px solid transparent;transition:color .12s,border-color .12s,background .12s;text-decoration:none;background:none;border-top:none;border-right:none;border-bottom:none;width:100%;text-align:left;font-family:var(--font-sans)}.nav-item:hover{color:var(--text);background:var(--bg2)}.nav-item.active{color:var(--accent);border-left-color:var(--accent);background:var(--bg2)}.nav-item code{font-family:var(--font-mono);font-size:12px}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.version-badge{font-family:var(--font-mono);font-size:11px;color:var(--text3)}.theme-toggle{background:var(--bg3);border:1px solid var(--border);color:var(--text2);width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:border-color .12s,color .12s}.theme-toggle:hover{border-color:var(--border2);color:var(--text)}.content{flex:1;min-width:0;max-width:860px;padding:64px 64px 120px}@media (max-width: 900px){.content{padding:40px 32px 80px}}.section{margin-bottom:80px}.section-anchor{scroll-margin-top:32px}.section-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}h1{font-size:28px;font-weight:500;line-height:1.25;letter-spacing:-.02em;color:var(--text);margin-bottom:16px}h2{font-size:18px;font-weight:500;color:var(--text);margin:40px 0 12px;letter-spacing:-.01em}h3{font-size:14px;font-weight:500;color:var(--text);margin:28px 0 8px;font-family:var(--font-mono)}p{color:var(--text2);margin-bottom:12px;max-width:640px}p strong{color:var(--text);font-weight:500}.install-strip{display:flex;align-items:center;gap:12px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin:20px 0}.install-strip code{font-family:var(--font-mono);font-size:13px;color:var(--accent);flex:1}.copy-btn{background:none;border:1px solid var(--border);color:var(--text3);font-size:11px;padding:4px 10px;border-radius:4px;cursor:pointer;font-family:var(--font-sans);transition:border-color .12s,color .12s;white-space:nowrap}.copy-btn:hover{border-color:var(--border2);color:var(--text2)}.copy-btn.copied{color:var(--green);border-color:var(--green)}.code-block{position:relative;margin:16px 0;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.code-block pre{background:var(--bg2)!important;padding:20px 24px;overflow-x:auto;font-family:var(--font-mono);font-size:12.5px;line-height:1.7;margin:0}.code-block pre::-webkit-scrollbar{height:4px}.code-block pre::-webkit-scrollbar-track{background:transparent}.code-block pre::-webkit-scrollbar-thumb{background:var(--border2)}.code-label{background:var(--bg3);border-bottom:1px solid var(--border);padding:8px 16px;font-family:var(--font-mono);font-size:11px;color:var(--text3);display:flex;align-items:center;gap:8px}.code-label-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.sig-block{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:20px 24px;margin:16px 0;font-family:var(--font-mono);font-size:12.5px;line-height:1.8;color:var(--text)}.sig-block .kw{color:var(--accent)}.sig-block .cls{color:var(--warn)}.sig-block .param{color:var(--text)}.sig-block .type{color:var(--text2)}.sig-block .default{color:var(--text3)}.sig-block .comment{color:var(--text3);font-style:italic}.sig-block .ret{color:var(--green)}.api-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13px}.api-table th{text-align:left;padding:8px 12px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-weight:500;border-bottom:1px solid var(--border)}.api-table td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text2)}.api-table tr:last-child td{border-bottom:none}.api-table tr:hover td{background:var(--bg2)}.api-table td:first-child{font-family:var(--font-mono);font-size:12px;color:var(--text);white-space:nowrap}.api-table td code{font-family:var(--font-mono);font-size:11.5px;color:var(--accent2);background:var(--bg3);padding:1px 5px;border-radius:3px}.tabs{margin:20px 0}.tab-list{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:0}.tab-btn{background:none;border:none;padding:8px 16px;font-size:12px;font-family:var(--font-mono);color:var(--text3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s}.tab-btn:hover{color:var(--text2)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.field-group{margin:20px 0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.field-group-header{background:var(--bg2);padding:10px 16px;font-family:var(--font-mono);font-size:12px;color:var(--accent);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.field-group-header:hover{background:var(--bg3)}.field-group-chevron{margin-left:auto;color:var(--text3);font-size:10px;transition:transform .15s}.field-group-chevron.open{transform:rotate(90deg)}.field-row{display:grid;grid-template-columns:220px 1fr;gap:0;padding:8px 16px;border-bottom:1px solid var(--border);font-size:12.5px}.field-row:last-child{border-bottom:none}.field-name{font-family:var(--font-mono);color:var(--text);font-size:12px}.field-desc{color:var(--text2)}.callout{margin:16px 0;font-size:13px}.callout-icon{display:none}.callout p{margin:0;max-width:640px}.callout.info p,.callout.warn p{color:var(--text3)}.col-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;margin:12px 0}.col-pill{font-family:var(--font-mono);font-size:11px;color:var(--text2);background:var(--bg2);border:1px solid var(--border);padding:4px 10px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-pill.prefix-baseline{color:var(--text3)}.col-pill.prefix-reform{color:var(--accent2)}.dataset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:20px 0}.dataset-card{border:1px solid var(--border);border-radius:8px;padding:16px;background:var(--bg2)}.dataset-card h4{font-family:var(--font-mono);font-size:14px;color:var(--accent);margin-bottom:6px}.dataset-card p{font-size:12px;margin:0;max-width:none}.method-block{margin:24px 0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.method-sig{background:var(--bg2);padding:12px 18px;font-family:var(--font-mono);font-size:12.5px;border-bottom:1px solid var(--border);color:var(--text)}.method-sig .fn-name{color:var(--warn)}.method-sig .cls-name{color:var(--accent)}.method-sig .ret{color:var(--green)}.method-body{padding:14px 18px;background:var(--bg)}.method-desc{color:var(--text2);font-size:13px;margin-bottom:10px;max-width:none}.param-list{list-style:none}.param-item{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:5px 0;border-bottom:1px solid var(--border);font-size:12.5px}.param-item:last-child{border-bottom:none}.param-key{font-family:var(--font-mono);color:var(--text)}.param-key em{color:var(--text3);font-style:normal;font-size:11px}.param-val{color:var(--text2)}.divider{border:none;border-top:1px solid var(--border);margin:48px 0}p code,li code,td code{font-family:var(--font-mono);font-size:12px;background:var(--bg3);color:var(--accent2);padding:1px 5px;border-radius:3px}.cell-output{border:1px solid var(--border);border-top:none;background:var(--bg);padding:12px 24px;font-family:var(--font-mono);font-size:12px;color:var(--text2);line-height:1.7;white-space:pre;overflow-x:auto;border-radius:0 0 8px 8px}.cell-output-label{font-size:10px;letter-spacing:.06em;color:var(--text3);padding:0 0 4px;display:block}.hljs{background:transparent!important;padding:0!important}.cal-controls{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin:20px 0 8px}.cal-controls label{display:flex;flex-direction:column;gap:5px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}.cal-controls select,.cal-controls input[type=text]{font-family:var(--font-sans);font-size:13px;padding:6px 9px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--text);min-width:150px}.cal-controls input[type=text]{text-transform:none;letter-spacing:0}.cal-year-sel{font-family:var(--font-sans);font-size:16px;margin-left:8px;padding:2px 8px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;color:var(--accent)}.cal-hm-legend{display:flex;flex-direction:column;gap:2px;max-width:280px;margin:12px 0 4px}.cal-hm-legend-label{font-family:var(--font-mono);font-size:10px;color:var(--text3)}.cal-hm-legend-bar{height:10px;border-radius:3px;border:1px solid var(--border)}.cal-hm-legend-ticks{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9px;color:var(--text3)}.cal-hm-wrap{overflow:auto;max-height:620px;border:1px solid var(--border);border-radius:8px;background:var(--bg2);padding:4px 8px 8px;margin:12px 0 8px}.cal-hm-wrap::-webkit-scrollbar{width:6px;height:6px}.cal-hm-wrap::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.cal-hm-col{font-family:var(--font-mono);font-size:9px;fill:var(--text2)}.cal-hm-row{font-family:var(--font-mono);font-size:8.5px;fill:var(--text2)}.cal-tip{position:absolute;pointer-events:none;opacity:0;background:var(--bg3);border:1px solid var(--border2);border-radius:6px;padding:6px 9px;font-size:11px;font-family:var(--font-mono);color:var(--text);z-index:10;white-space:nowrap;transition:opacity .1s}.cal-table-wrap{max-height:560px;overflow:auto;border:1px solid var(--border);border-radius:8px;margin:12px 0}.cal-table-wrap::-webkit-scrollbar{width:6px;height:6px}.cal-table-wrap::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.cal-table{width:100%;border-collapse:collapse;font-size:12px}.cal-table th,.cal-table td{text-align:right;padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.cal-table th:first-child,.cal-table td:first-child{text-align:left}.cal-th{position:sticky;top:0;background:var(--bg3);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none}.cal-th:hover{color:var(--text2)}.cal-th.sorted{color:var(--accent)}.cal-th.sorted.desc:after{content:" ▼";font-size:7px}.cal-th.sorted.asc:after{content:" ▲";font-size:7px}.cal-table tbody tr:hover td{background:var(--bg2)}.cal-name{font-family:var(--font-mono);font-size:11px;color:var(--text);max-width:24rem;overflow:hidden;text-overflow:ellipsis}.cal-src{color:var(--text3);font-size:11px}.cal-err{font-family:var(--font-mono)}.cal-good{color:var(--green)}.cal-warn{color:var(--warn)}.cal-bad{color:var(--red)}.cal-pill{display:inline-block;padding:1px 8px;border-radius:99px;font-size:10px;background:#2dd4bf24;color:var(--accent)}.cal-pill.untrained{background:var(--bg3);color:var(--text3)}.cost-count{font-size:12px;color:var(--text3);margin:4px 0 8px}.cost-table-wrap{max-height:560px;margin:6px 0 4px}.cost-table td{white-space:normal}.cost-row{cursor:pointer}.cost-title{font-size:12px;color:var(--text);max-width:30rem}.cost-model-yes{color:var(--accent);font-size:11px}.cost-model-partial{color:var(--warn);font-size:11px}.cost-model-no{color:var(--text3);font-size:11px}.cost-event-row td{background:var(--bg3);font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--text);padding:8px 10px;cursor:pointer;text-align:left;white-space:normal}.cost-event-row:hover td{background:var(--bg2)}.cost-chevron{font-size:10px;color:var(--text3);transition:transform .15s;display:inline-block;margin-right:8px}.cost-chevron.open{transform:rotate(90deg)}.cost-event-name{margin-right:10px}.cost-event-meta{font-size:11px;font-weight:400;color:var(--text3)}.cost-event-meta .cost-model-yes,.cost-event-meta .cost-model-partial{font-weight:500}.cost-year-row td{font-family:var(--font-mono);font-size:10.5px;color:var(--text3);text-align:right;padding:3px 10px;border-bottom:1px solid var(--border)}.cost-tint-yes td{background:color-mix(in srgb,var(--accent) 8%,transparent)}.cost-tint-partial td{background:color-mix(in srgb,var(--warn) 7%,transparent)}.cost-tint-yes:hover td{background:color-mix(in srgb,var(--accent) 14%,transparent)}.cost-tint-partial:hover td{background:color-mix(in srgb,var(--warn) 12%,transparent)}.cost-tint-no:hover td{background:var(--bg2)}.cost-detail-cell{background:var(--bg2);padding:12px 16px 4px!important}.cost-detail{display:flex;flex-direction:column;gap:10px;text-align:left}.cost-impact-wrap{max-height:260px;margin:0}.cost-text{max-width:70rem}.cost-text-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:3px}.cost-text p{font-size:12.5px;line-height:1.55;color:var(--text2);margin:0;white-space:pre-line}.cost-src{font-size:11px;color:var(--text3);margin:0 0 8px}.cost-none{font-size:12px;color:var(--text3);margin:0}.analysis{border:1px solid var(--border);border-radius:8px;background:var(--bg2);margin-bottom:12px;overflow:hidden}.analysis-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;width:100%;padding:14px 16px;background:none;border:none;color:inherit;text-align:left;cursor:pointer;font:inherit}.analysis-head:hover{background:var(--bg3)}.analysis-title{font-size:15px;font-weight:600}.analysis-meta{display:flex;gap:12px;margin-top:4px;font-family:var(--font-mono);font-size:10.5px;color:var(--text3)}.analysis-draft{color:var(--warn);text-transform:uppercase;letter-spacing:.06em}.analysis-summary{font-size:12.5px;color:var(--text2);margin:6px 0 0;line-height:1.5}.analysis-chevron{font-family:var(--font-mono);color:var(--text3);flex-shrink:0}.analysis-body{padding:4px 20px 20px;border-top:1px solid var(--border);max-width:72rem;font-size:13.5px;line-height:1.65;color:var(--text2)}.analysis-body h1,.analysis-body h2,.analysis-body h3{color:var(--text);margin:20px 0 8px}.analysis-body h1{font-size:18px}.analysis-body h2{font-size:15px}.analysis-body h3{font-size:13.5px}.analysis-body p{margin:10px 0}.analysis-body img{max-width:100%;border-radius:6px}.analysis-body table{border-collapse:collapse;margin:12px 0}.analysis-body th,.analysis-body td{border:1px solid var(--border);padding:4px 10px;font-size:12px}.analysis-body code{font-family:var(--font-mono);font-size:12px;background:var(--bg3);padding:1px 4px;border-radius:3px}.analysis-body pre{background:var(--bg3);padding:12px;border-radius:6px;overflow-x:auto}.analysis-body blockquote{border-left:3px solid var(--border2);padding-left:12px;color:var(--text3)}.app{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:52px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.topbar-logo{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text);text-decoration:none}.topbar-logo:hover{color:var(--accent)}.topbar-nav{display:flex;align-items:center;gap:22px}.topbar-nav a{font-size:13px;color:var(--text2);text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}.topbar-nav a:hover{color:var(--text)}.topbar-nav a.active{color:var(--text);border-bottom-color:var(--accent)}.home{max-width:1020px;margin:0 auto;padding:72px 32px 120px}.home-hero{max-width:640px;margin-bottom:72px}.home-hero h1{font-size:32px;letter-spacing:-.02em;margin-bottom:16px}.home-hero p{font-size:15px;line-height:1.65;color:var(--text2);margin-bottom:22px}.home-install{font-family:var(--font-mono);font-size:12.5px;color:var(--accent);background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:8px 14px;display:inline-block}.home-group{margin-bottom:64px}.home-group-head{display:flex;align-items:baseline;gap:14px;margin-bottom:20px}.home-group-head h2{font-size:16px}.home-group-head p{font-size:12.5px;color:var(--text3)}.home-empty{font-size:13px;color:var(--text3)}.home-more{display:inline-block;margin-top:16px;font-size:13px;color:var(--accent2);text-decoration:none}.home-more:hover{color:var(--accent)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.card{display:block;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:18px;text-decoration:none;color:inherit;transition:border-color .12s ease}.card:hover{border-color:var(--accent2)}.card-num{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--accent);margin-bottom:10px}.card-title{font-size:14px;font-weight:600;line-height:1.4;margin-bottom:6px}.card-blurb{font-size:12.5px;line-height:1.55;color:var(--text2);margin:0}.card-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-family:var(--font-mono);font-size:10.5px;color:var(--text3)}.card-status{color:var(--warn);text-transform:uppercase;letter-spacing:.06em}.section-layout{display:flex;max-width:1180px;margin:0 auto}.section-rail{width:var(--sidebar-w);flex-shrink:0;position:sticky;top:52px;align-self:flex-start;height:calc(100vh - 52px);overflow-y:auto;padding:32px 8px 32px 20px;border-right:1px solid var(--border)}.rail-group{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin:18px 0 8px 10px}.rail-group:first-child{margin-top:0}.rail-item{display:block;font-size:13px;color:var(--text2);text-decoration:none;padding:6px 10px;border-radius:5px}.rail-item:hover{color:var(--text);background:var(--bg2)}.rail-item.active{color:var(--accent);background:var(--bg2)}.rail-num{font-family:var(--font-mono);font-size:10px;color:var(--text3);margin-right:4px}.section-content{flex:1;min-width:0;max-width:860px;padding:48px 64px 120px}@media (max-width: 900px){.section-rail{display:none}.section-content{padding:32px 24px 80px}}
