@font-face{font-family:Material Symbols Rounded Local;font-style:normal;font-weight:400;src:url(/mdviewer/dev/assets/material-symbols-rounded-mdviewer-GX-5fePz.woff2) format("woff2");font-display:block}:root{color-scheme:dark;--bg: #0f172a;--surface: #111827;--surface-alt: #1f2937;--panel: rgba(15, 23, 42, .92);--panel-border: rgba(148, 163, 184, .22);--text: #e5e7eb;--muted: #94a3b8;--accent: #38bdf8;--accent-strong: #0ea5e9;--danger: #f97316;--shadow: 0 16px 40px rgba(0, 0, 0, .34);--reader-width: 980px;--reader-expanded-width: 1320px;--reader-font-size: 18px;--reader-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--topbar-height: 58px;--settingsbar-height: 54px;--settingsbar-effective-height: var(--settingsbar-height);--radius: 18px;--line-number-width: 5rem;--line-badge-height: 1.25rem;--scrollbar-size: 10px;--scrollbar-track: rgba(148, 163, 184, .08);--scrollbar-thumb: rgba(148, 163, 184, .35);--scrollbar-thumb-hover: rgba(56, 189, 248, .65);--app-viewport-width: 100vw;--app-viewport-height: 100dvh}[data-theme=light]{color-scheme:light;--bg: #eef2f7;--surface: #ffffff;--surface-alt: #f1f5f9;--panel: rgba(255, 255, 255, .94);--panel-border: rgba(15, 23, 42, .12);--text: #0f172a;--muted: #64748b;--accent: #0284c7;--accent-strong: #0369a1;--danger: #c2410c;--scrollbar-track: rgba(15, 23, 42, .06);--scrollbar-thumb: rgba(71, 85, 105, .32);--scrollbar-thumb-hover: rgba(2, 132, 199, .62);--shadow: 0 16px 40px rgba(15, 23, 42, .12)}*{box-sizing:border-box}.material-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1em;height:1em;overflow:hidden;font-family:Material Symbols Rounded Local;font-size:1.24rem;font-style:normal;font-weight:400;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;word-wrap:normal;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}html,body{width:100%;max-width:100%;height:100%;min-width:0;min-height:100%;overflow:hidden;overflow-x:hidden;touch-action:pan-x pan-y;overscroll-behavior:none}body{margin:0;width:100%;max-width:100%;min-width:0;background:radial-gradient(circle at top left,rgba(56,189,248,.14),transparent 32rem),radial-gradient(circle at bottom right,rgba(129,140,248,.12),transparent 26rem),var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-shell,.workspace,.markdown-shell,.markdown-body,.toc-list,.source-viewport{touch-action:pan-x pan-y}:where(.settingsbar,.toc-list,.markdown-body,.markdown-body pre,.markdown-body table,.markdown-body .metadata-raw,.source-viewport){scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-gutter:stable}:where(.settingsbar,.toc-list,.markdown-body,.markdown-body pre,.markdown-body table,.markdown-body .metadata-raw,.source-viewport)::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}:where(.settingsbar,.toc-list,.markdown-body,.markdown-body pre,.markdown-body table,.markdown-body .metadata-raw,.source-viewport)::-webkit-scrollbar-track{border-radius:999px;background:var(--scrollbar-track)}:where(.settingsbar,.toc-list,.markdown-body,.markdown-body pre,.markdown-body table,.markdown-body .metadata-raw,.source-viewport)::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--scrollbar-thumb);background-clip:padding-box}:where(.settingsbar,.toc-list,.markdown-body,.markdown-body pre,.markdown-body table,.markdown-body .metadata-raw,.source-viewport)::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box}:where(.settingsbar,.toc-list,.markdown-body,.markdown-body pre,.markdown-body table,.markdown-body .metadata-raw,.source-viewport)::-webkit-scrollbar-corner{background:transparent}.markdown-body::-webkit-scrollbar-track{margin-top:.9rem;margin-bottom:.9rem}.toc-list::-webkit-scrollbar-track{margin-top:.25rem;margin-bottom:.85rem}.source-viewport::-webkit-scrollbar-track{margin-top:.35rem;margin-bottom:.35rem}.markdown-body pre::-webkit-scrollbar-track,.markdown-body table::-webkit-scrollbar-track,.markdown-body .metadata-raw::-webkit-scrollbar-track{margin:.35rem}button,input,select{font:inherit}button{color:inherit}.app-shell{width:100%;max-width:100%;min-width:0;inline-size:min(100%,var(--app-viewport-width));height:100vh;height:var(--app-viewport-height, 100dvh);min-height:0;overflow:hidden;display:grid;grid-template-areas:"topbar" "settingsbar" "workspace" "statusbar";grid-template-rows:var(--topbar-height) var(--settingsbar-effective-height) minmax(0,1fr) auto}body.settings-collapsed{--settingsbar-effective-height: 0px}.topbar,.settingsbar,.statusbar{width:100%;max-width:100%;min-width:0;overflow-x:hidden;backdrop-filter:blur(16px);background:var(--panel);border-color:var(--panel-border)}.topbar{grid-area:topbar;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1rem;border-bottom:1px solid var(--panel-border)}.brand{min-width:0;display:flex;align-items:center;gap:.75rem;font-weight:800;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:2.45rem;height:2.45rem;border:1px solid rgba(56,189,248,.55);border-radius:.85rem;background:linear-gradient(135deg,#38bdf838,#818cf82e);color:#e0f2fe;font-size:.85rem;box-shadow:inset 0 0 18px #38bdf81f}.brand-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions,.settingsbar{display:flex;align-items:center;gap:.65rem}.topbar-actions{max-width:100%;min-width:0;flex-shrink:0}.brand{max-width:100%}.toolbar-separator{width:1px;height:1.85rem;flex:0 0 auto;border-radius:999px;background:var(--panel-border)}.settingsbar{grid-area:settingsbar;position:sticky;top:var(--topbar-height);z-index:25;padding:.5rem 1rem;border-bottom:1px solid var(--panel-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.settingsbar::-webkit-scrollbar{display:none}.settings-group{display:inline-flex;align-items:center;gap:.55rem;min-width:0;padding:.18rem .35rem .18rem .18rem;border:1px solid var(--panel-border);border-radius:999px;background:#0f172a29}[data-theme=light] .settings-group{background:#0f172a09}.settings-glyph{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;flex:0 0 auto;border:1px solid var(--panel-border);border-radius:999px;background:var(--surface-alt);color:var(--text);font-size:1.18rem;font-weight:400;letter-spacing:normal}.typography-settings select{max-width:10rem}.theme-toggle-button .theme-icon-sun{transform:scale(1.04)}.theme-toggle-button .theme-icon-moon{transform:scale(1.02)}.settingsbar label,.line-tools label{display:inline-flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.9rem;white-space:nowrap}.switch-control{position:relative;cursor:pointer;user-select:none}.switch-control input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.switch-track{position:relative;display:inline-block;width:2.65rem;height:1.45rem;flex:0 0 auto;border:1px solid var(--panel-border);border-radius:999px;background:var(--surface-alt);box-shadow:inset 0 1px 3px #02061733;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.switch-track:after{content:"";position:absolute;top:.17rem;left:.18rem;width:1rem;height:1rem;border-radius:999px;background:var(--muted);box-shadow:0 2px 7px #02061759;transition:transform .16s ease,background .16s ease}.switch-control input:checked+.switch-track{border-color:#38bdf88c;background:linear-gradient(135deg,var(--accent-strong),var(--accent));box-shadow:inset 0 0 10px #ffffff1f}.switch-control input:checked+.switch-track:after{background:#fff;transform:translate(1.2rem)}.switch-control input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:3px}input[type=range]{width:9rem;accent-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent)}select,input[type=number]{border:1px solid var(--panel-border);border-radius:.7rem;background:var(--surface-alt);color:var(--text);padding:.38rem .55rem}input[type=number]{width:5.5rem}#fileInput{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.file-button{appearance:none;border:0;background:transparent;color:inherit;padding:0;margin:0;font:inherit}.file-button span,.primary-button,.ghost-button,.icon-button{display:inline-grid;place-items:center;min-height:2.25rem;border-radius:999px;border:1px solid var(--panel-border);cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}.primary-button{padding:0 .95rem;background:var(--accent-strong);color:#fff;border-color:#ffffff1f;font-weight:700}.file-button span{padding:0 .95rem;background:var(--surface-alt);color:var(--text);border-color:var(--panel-border);font-weight:700}.icon-file-button .button-symbol{width:2.25rem;height:2.25rem;padding:0}.icon-svg,.icon-file-button svg,.install-button svg{width:1.22rem;height:1.22rem;fill:currentColor}.icon-button .material-icon,.icon-file-button .material-icon,.install-button .material-icon{font-size:1.28rem}.numeric-icon-button{font-size:.78rem;letter-spacing:-.08em}.copy-range-button{flex:0 0 auto}.ghost-button,.icon-button{background:var(--surface-alt);color:var(--text)}.ghost-button{padding:0 .85rem}.icon-button{width:2.25rem;height:2.25rem;font-weight:800}.icon-button.is-active{border-color:#38bdf88f;background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#fff;box-shadow:inset 0 0 12px #ffffff1f,0 6px 18px #0ea5e92e}.icon-button.is-active:hover{border-color:#ffffff57}.file-button:hover span,.primary-button:hover,.ghost-button:hover,.icon-button:hover{transform:translateY(-1px);border-color:var(--accent)}.brand-version{flex:0 0 auto;display:inline-grid;place-items:center;min-width:0;padding:.12rem .45rem;border:1px solid rgba(56,189,248,.22);border-radius:999px;background:#38bdf81a;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.72rem;font-weight:800;letter-spacing:-.02em;white-space:nowrap}.search-control{position:relative;display:flex;align-items:center;gap:.45rem}.search-panel{display:flex;align-items:center;gap:.35rem;max-width:0;width:0;min-width:0;padding:.28rem 0;border:1px solid transparent;border-radius:999px;background:transparent;box-shadow:inset 0 1px 8px #02061700;opacity:0;overflow:hidden;pointer-events:none;transform:translate(-.45rem);transition:max-width .19s ease,width .19s ease,padding .19s ease,border-color .19s ease,background-color .19s ease,box-shadow .19s ease,opacity .15s ease,transform .19s ease}.search-control.open .search-panel{max-width:min(39rem,calc(var(--app-viewport-width, 100vw) - 2rem));width:min(39rem,58vw);padding:.28rem;border-color:var(--panel-border);background:var(--surface-alt);box-shadow:inset 0 1px 8px #0206172e;opacity:1;pointer-events:auto;transform:translate(0)}.search-panel>*{opacity:0;transform:translate(-.25rem);transition:opacity .14s ease 45ms,transform .16s ease 45ms}.search-control.open .search-panel>*{opacity:1;transform:translate(0)}.search-input{width:min(16rem,32vw);min-width:9rem;height:1.8rem;border:0;outline:0;border-radius:999px;background:#02061738;color:var(--text);padding:0 .75rem}[data-theme=light] .search-input{background:#0f172a0f}.search-input::placeholder{color:var(--muted)}.mini-icon-button{display:inline-grid;place-items:center;width:1.8rem;height:1.8rem;flex:0 0 auto;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:900;line-height:1;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,color .15s ease,opacity .15s ease}.mini-icon-button:hover:not(:disabled),.mini-icon-button.is-active{border-color:#38bdf873;background:#38bdf821;color:var(--text)}.mini-icon-button.is-active{background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#fff}.mini-icon-button:disabled{cursor:default;opacity:.4}.search-counter{min-width:3.8rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.76rem;font-weight:800;text-align:center;white-space:nowrap}.markdown-body mark.search-hit{border-radius:.28rem;background:#facc1552;color:inherit;padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.markdown-body mark.search-hit-current{background:#38bdf87a;outline:1px solid rgba(56,189,248,.95);box-shadow:0 0 0 3px #38bdf81f}.workspace{grid-area:workspace;width:100%;max-width:100%;min-width:0;min-height:0;display:grid;grid-template-columns:280px minmax(0,1fr) minmax(320px,28vw);gap:1.25rem;padding:1.25rem 1.25rem 1.65rem;overflow:hidden}.toc-panel,.source-panel,.reader-area{min-height:0;height:100%}.toc-panel,.source-panel{position:relative;overflow:hidden;border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.toc-panel{display:grid;grid-template-rows:auto minmax(0,1fr)}.source-panel{display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);container:source-panel / inline-size}.source-panel .material-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1em;height:1em;overflow:hidden;font-family:Material Symbols Rounded Local;font-size:1.24rem;font-style:normal;font-weight:400;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;word-wrap:normal;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}[hidden]{display:none}.workspace:has(.source-panel[hidden]){grid-template-columns:280px minmax(0,1fr)}.workspace:has(.source-panel[hidden]) .markdown-shell{max-width:min(var(--reader-expanded-width),100%)}.panel-header{min-height:3rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .85rem;border-bottom:1px solid var(--panel-border)}.toc-list{min-height:0;overflow:auto;margin-bottom:.55rem;padding:.45rem .45rem 1.25rem;scroll-padding-block-end:1.25rem}.toc-item{width:100%;display:flex;align-items:center;gap:.45rem;text-align:left;margin:.1rem 0;padding:.52rem .6rem;border:0;border-radius:.75rem;background:transparent;color:var(--muted);cursor:pointer;line-height:1.25}.toc-title{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc-line-badge{flex:0 0 auto;display:inline-grid;place-items:center;min-width:2.25rem;padding:.08rem .5rem;border:1px solid var(--panel-border);border-radius:999px;background:var(--surface-alt);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.72rem;line-height:1.35;white-space:nowrap;opacity:.9}.toc-item:hover,.toc-item.active{background:#38bdf81f;color:var(--text)}.toc-item:hover .toc-line-badge,.toc-item.active .toc-line-badge{border-color:#38bdf861;color:var(--text)}.empty-panel,.small-note{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.empty-panel{padding:.75rem}.reader-area{position:relative;width:100%;max-width:100%;min-width:0;overflow:hidden}.drop-zone{position:sticky;top:calc(var(--topbar-height) + var(--settingsbar-effective-height) + 1.25rem);z-index:10;margin:0 auto 1rem;max-width:var(--reader-width);border:2px dashed var(--accent);border-radius:var(--radius);background:#38bdf81f;color:var(--text);padding:1rem;text-align:center}.drop-zone span{display:block;margin-top:.25rem;color:var(--muted)}.markdown-shell{position:relative;width:100%;max-width:var(--reader-width);height:100%;margin:0 auto;padding:.28rem;border:1px solid var(--panel-border);border-radius:calc(var(--radius) + 6px);background:var(--surface);background-clip:padding-box;box-shadow:var(--shadow);overflow:hidden;contain:paint;clip-path:inset(0 round calc(var(--radius) + 6px))}.markdown-shell:focus,.markdown-shell:focus-visible,.markdown-body:focus,.markdown-body:focus-visible{outline:none}.close-file-button{position:absolute;top:.72rem;left:.72rem;z-index:15;width:2.15rem;height:2.15rem;pointer-events:auto;border-color:#94a3b83d;background:#0f172a94;box-shadow:0 10px 26px #02061747;backdrop-filter:blur(14px)}[data-theme=light] .close-file-button{background:#ffffffc2;box-shadow:0 10px 24px #0f172a24}.close-file-button .material-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1em;height:1em;overflow:hidden;font-family:Material Symbols Rounded Local;font-size:1.24rem;font-style:normal;font-weight:400;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;word-wrap:normal;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.markdown-body{position:relative;max-width:none;height:100%;margin:0;padding:clamp(1.15rem,3vw,3rem);border:0;border-radius:calc(var(--radius) + 2px);background:var(--surface);background-clip:padding-box;color:var(--text);box-shadow:none;font-family:var(--reader-font-family);font-size:var(--reader-font-size);line-height:1.72;overflow:auto;overflow-wrap:anywhere;scroll-behavior:smooth;scroll-padding-block:1rem}body.line-numbers .markdown-body{padding-left:calc(clamp(1.15rem,3vw,3rem) + var(--line-number-width) + .35rem)}body.file-open .markdown-body{padding-left:calc(clamp(1.15rem,3vw,3rem) + 2.75rem)}body.file-open.line-numbers .markdown-body{padding-left:calc(clamp(1.15rem,3vw,3rem) + var(--line-number-width) + 2.35rem)}.markdown-body.empty-state{min-height:100%}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{scroll-margin-top:1rem;line-height:1.18;letter-spacing:-.035em}.markdown-body h1{font-size:clamp(2rem,5vw,3.4rem);margin:0 0 1.15rem}.markdown-body h2{font-size:clamp(1.55rem,3vw,2.25rem);margin:2.4rem 0 .85rem}.markdown-body h3{font-size:clamp(1.25rem,2vw,1.65rem);margin:2rem 0 .7rem}.markdown-body h4,.markdown-body h5,.markdown-body h6{margin:1.7rem 0 .5rem}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body blockquote,.markdown-body pre,.markdown-body table{margin-top:.85rem;margin-bottom:.85rem}.markdown-body a{color:var(--accent);text-decoration-thickness:.08em;text-underline-offset:.2em}.markdown-body code{border-radius:.35rem;background:#94a3b829;padding:.12em .32em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.88em}.markdown-body pre{overflow:auto;border-radius:1rem;border:1px solid var(--panel-border);background:#0b1120;padding:1rem}.markdown-body pre code{display:block;padding:0;background:transparent;color:inherit;white-space:pre}.markdown-body blockquote{border-left:.25rem solid var(--accent);margin-left:0;padding:.35rem 0 .35rem 1rem;color:var(--muted);background:#38bdf814;border-radius:0 .85rem .85rem 0}.markdown-body table{width:100%;border-collapse:collapse;display:block;overflow-x:auto}.markdown-body th,.markdown-body td{border:1px solid var(--panel-border);padding:.55rem .7rem}.markdown-body th{background:#94a3b824}.markdown-body img{max-width:100%;height:auto;border-radius:1rem}.markdown-body hr{border:0;border-top:1px solid var(--panel-border);margin:2rem 0}.markdown-body .contains-task-list{list-style:none;padding-left:1rem}.markdown-body .task-list-item-checkbox{margin-right:.5rem;accent-color:var(--accent)}.markdown-body .metadata-card{margin:0 0 1.55rem;border:1px solid rgba(56,189,248,.28);border-radius:1.1rem;background:linear-gradient(135deg,#38bdf81f,#818cf814),var(--surface-alt);box-shadow:inset 0 0 0 1px #ffffff06;overflow:hidden}.markdown-body .metadata-card[open]{box-shadow:inset 0 0 0 1px #ffffff06,0 10px 24px #0206172e}.markdown-body .metadata-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem 1rem;cursor:pointer;list-style:none}.markdown-body .metadata-summary::-webkit-details-marker{display:none}.markdown-body .metadata-summary-text{min-width:0;display:grid;gap:.12rem}.markdown-body .metadata-label{color:var(--muted);font-size:.78em;line-height:1.2}.markdown-body .metadata-label{text-transform:uppercase;letter-spacing:.08em;font-weight:800}.markdown-body .metadata-summary strong{overflow:hidden;color:var(--text);font-size:1.02em;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.markdown-body .metadata-line-badge{display:none;width:max-content;min-width:3.15rem;height:var(--line-badge-height);padding:0 .5rem;border:1px solid rgba(56,189,248,.22);border-radius:999px;background:#38bdf81f;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.7rem;line-height:1;text-align:center;white-space:nowrap}body.line-numbers .markdown-body .metadata-line-badge{display:inline-grid;place-items:center}body.line-numbers .markdown-body .metadata-card:before{content:none}.markdown-body .metadata-chevron{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex:0 0 auto;border:1px solid var(--panel-border);border-radius:999px;color:var(--text);background:transparent;transition:transform .16s ease,border-color .16s ease,background .16s ease}.markdown-body .metadata-chevron .material-icon{font-size:1.25rem}.markdown-body .metadata-summary:hover .metadata-chevron{border-color:var(--accent);background:#38bdf814}.markdown-body .metadata-card[open] .metadata-chevron{transform:rotate(180deg)}.markdown-body .metadata-body{border-top:1px solid var(--panel-border);padding:.95rem 1rem 1rem}.markdown-body .metadata-grid{display:grid;grid-template-columns:minmax(8rem,max-content) minmax(0,1fr);gap:.5rem .85rem;margin:0}.markdown-body .metadata-grid dt,.markdown-body .metadata-grid dd{margin:0;min-width:0}.markdown-body .metadata-grid dt{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82em}.markdown-body .metadata-grid dd{overflow-wrap:anywhere}.markdown-body .metadata-raw{margin:0;max-height:18rem;overflow:auto;white-space:pre}.markdown-body .custom-block{border:1px solid var(--panel-border);border-left:.35rem solid var(--accent);border-radius:.95rem;background:#38bdf814;padding:.75rem 1rem}.markdown-body .custom-block.warning{border-left-color:var(--danger);background:#f973161a}.markdown-body .footnotes{margin-top:2rem;font-size:.9em;color:var(--muted)}.markdown-body [data-line-start]{position:relative}body.line-numbers .markdown-body blockquote [data-line-start]:before{content:none;display:none}body.line-numbers .markdown-body [data-line-start]:before{content:attr(data-line-start);position:absolute;left:calc(-1 * var(--line-number-width) + .15rem);right:auto;top:.18rem;display:inline-flex;align-items:center;justify-content:center;min-width:3.15rem;height:var(--line-badge-height);padding:0 .5rem;border:1px solid rgba(56,189,248,.22);border-radius:999px;background:#38bdf81f;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.7rem;line-height:1;text-align:center;white-space:nowrap;pointer-events:none}@media(pointer:coarse){.markdown-body [data-line-start][data-line-end],.markdown-body [data-line-start][data-line-end] *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.markdown-body .selected-source-block{outline:2px solid rgba(56,189,248,.65);outline-offset:.25rem;border-radius:.35rem;scroll-margin-block:.65rem}.source-size-handle{display:none;align-items:center;justify-content:center;gap:.45rem;width:100%;min-width:0;height:1.55rem;padding:0 .75rem;border:0;border-bottom:1px solid var(--panel-border);background:transparent;color:var(--muted);font:inherit;font-size:.76rem;font-weight:700;line-height:1;letter-spacing:.02em;cursor:pointer;touch-action:manipulation}.source-size-handle:hover,.source-size-handle:focus-visible{color:var(--text);background:#38bdf814;outline:none}.source-size-handle-rule{flex:0 1 2.1rem;max-width:2.1rem;height:.18rem;border-radius:999px;background:currentColor;opacity:.32}.source-size-label{min-width:2.15rem;text-align:center;color:var(--text);font-variant-numeric:tabular-nums}.line-tools{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;justify-content:stretch;column-gap:.45rem;row-gap:.55rem;padding:.75rem;border-bottom:1px solid var(--panel-border)}.source-range-control{display:inline-flex;align-items:center;gap:.32rem;flex:0 0 auto;min-width:0}.source-range-control .source-range-input{width:3.85rem;height:2.25rem;flex:0 0 3.85rem;min-width:0;border:1px solid var(--panel-border);border-radius:.7rem;background:var(--surface-alt);color:var(--text);padding-inline:.35rem;font:inherit;text-align:center;font-variant-numeric:tabular-nums}.source-range-input::-webkit-outer-spin-button,.source-range-input::-webkit-inner-spin-button,.scroll-line-input::-webkit-outer-spin-button,.scroll-line-input::-webkit-inner-spin-button{margin:0;appearance:none;-webkit-appearance:none}.source-range-input,.scroll-line-input{appearance:textfield;-moz-appearance:textfield}.source-range-separator{color:var(--muted);font-size:1.1rem;font-weight:400;line-height:1;opacity:.72;user-select:none;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.line-tools .copy-range-button{width:2.25rem;height:2.25rem;padding:0;flex:0 0 auto}.copy-range-button.is-active,.copy-range-button:focus,.copy-range-button:focus-visible{border-color:var(--panel-border);background:var(--surface-alt);color:var(--text);box-shadow:none;outline:none}.copy-range-button:active{transform:translateY(0)}.copy-template-control{display:contents}.copy-template-buttons{grid-column:3;grid-row:1;display:inline-flex;align-items:center;justify-self:start;gap:.35rem;padding:0;border:0;border-radius:999px;background:transparent}[data-theme=light] .copy-template-buttons{background:transparent}.copy-template-mode-button{width:2.25rem;height:2.25rem;padding:0;flex:0 0 auto}.copy-template-mode-button .material-icon{font-size:1.28rem}.copy-template-panel{grid-column:1 / -1;grid-row:2;justify-self:stretch;width:100%;min-width:0;max-height:3rem;opacity:1;overflow:hidden;transform:translateY(0);transition:max-height .19s ease,opacity .15s ease,transform .19s ease}.copy-template-field{position:relative;display:flex;align-items:center;width:100%;min-width:0}.copy-template-input{flex:1 1 auto;width:100%;min-width:0;height:2.1rem;padding:0 2.55rem 0 .75rem;border:1px solid var(--panel-border);border-radius:999px;background:transparent;color:var(--text);font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.78rem;text-overflow:ellipsis}.copy-template-input[readonly]{cursor:default;color:var(--muted)}.copy-template-input:not([readonly]){cursor:text;user-select:text;-webkit-user-select:text}[data-theme=light] .copy-template-input{background:transparent}.copy-template-input:focus,.copy-template-input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38bdf829}.copy-template-input::placeholder{color:var(--muted)}.copy-template-edit-button,.copy-template-clear{position:absolute;right:.38rem;top:50%;display:grid;place-items:center;width:1.35rem;height:1.35rem;border:0;border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:1rem;line-height:1;opacity:.68;cursor:pointer;transform:translateY(-50%)}.copy-template-edit-button:hover,.copy-template-clear:hover{background:#38bdf81f;opacity:1}.copy-template-edit-button .material-icon,.copy-template-clear .material-icon{font-size:1.05rem}.copy-template-control.is-editing .copy-template-input{color:var(--text)}.copy-template-control.is-invalid .copy-template-input{border-color:#f87171e6;box-shadow:0 0 0 3px #f8717129}@container source-panel (max-width: 380px){.line-tools{column-gap:.38rem;padding-inline:.65rem}.source-range-control{gap:.26rem}.source-range-control .source-range-input{width:3.55rem;flex-basis:3.55rem;padding-inline:.28rem}.copy-template-buttons{gap:.28rem}}@container source-panel (max-width: 440px){.line-tools{column-gap:.34rem;padding-inline:.65rem}.source-range-control{gap:.24rem}.source-range-control .source-range-input{width:3.6rem;flex-basis:3.6rem;padding-inline:.28rem}.copy-template-buttons{gap:.25rem}}.source-panel .small-note{padding:.65rem .75rem;border-bottom:1px solid var(--panel-border)}.source-viewport{position:relative;min-height:0;overflow:auto;background:#02061747;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.55rem}.source-spacer{width:1px}.source-items{position:absolute;top:0;left:0;min-width:100%}.source-line{width:max-content;min-width:100%;height:1.55rem;min-height:1.55rem;display:grid;grid-template-columns:calc(var(--line-number-width) + .75rem) max-content;align-items:center;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;padding:0}.source-line:hover,.source-line.selected{background:#38bdf824}.source-line .num{position:sticky;left:0;z-index:2;display:inline-flex;align-items:center;justify-content:flex-end;height:1.55rem;color:var(--muted);background:linear-gradient(90deg,var(--surface-alt) 0%,var(--surface-alt) calc(100% - .5rem),transparent 100%);padding:0 .85rem 0 .45rem;text-align:right;user-select:none;box-shadow:1px 0 #94a3b81f}.source-line .txt{min-width:max-content;white-space:pre;padding:0 .9rem 0 .65rem}.toast-host{position:fixed;left:50%;bottom:calc(3rem + env(safe-area-inset-bottom,0px));z-index:10000;display:grid;gap:.6rem;width:min(34rem,calc(var(--app-viewport-width, 100vw) - 2rem));pointer-events:none;transform:translate(-50%)}.app-toast{display:flex;align-items:center;justify-content:space-between;gap:.85rem;padding:.78rem 1rem;border:1px solid var(--panel-border);border-radius:1rem;background:var(--panel);color:var(--text);box-shadow:var(--shadow);backdrop-filter:blur(16px);opacity:1;pointer-events:auto;transform:translateY(0);transition:opacity .18s ease,transform .18s ease}.app-toast__message{min-width:0}.app-toast__button{flex:0 0 auto;border:1px solid rgba(56,189,248,.42);border-radius:999px;padding:.42rem .72rem;background:#38bdf829;color:var(--text);font:inherit;font-weight:700;cursor:pointer}.app-toast__button:hover{background:#38bdf842}.app-toast--warning{border-color:#fbbf247a;background:linear-gradient(135deg,rgba(251,191,36,.18),var(--panel))}.app-toast.is-leaving{opacity:0;transform:translateY(.6rem)}.update-banner{position:fixed;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:100;display:flex;align-items:center;gap:.85rem;max-width:calc(var(--app-viewport-width, 100vw) - 2rem);padding:.7rem .85rem .7rem 1rem;border:1px solid rgba(56,189,248,.35);border-radius:999px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);backdrop-filter:blur(16px);transform:translate(-50%)}.update-banner__button{border:0;border-radius:999px;padding:.45rem .8rem;background:var(--accent-strong);color:#fff;font-weight:800;cursor:pointer}.update-banner__button:disabled{cursor:wait;opacity:.72}.statusbar{grid-area:statusbar;min-height:2.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem 1rem;border-top:1px solid var(--panel-border);color:var(--muted);font-size:.9rem}.status-message,.status-file{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-message{flex:1 1 auto}.status-file{flex:0 1 min(42vw,28rem);text-align:right;color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.status-file.is-linked:before{content:"link";display:inline-flex;align-items:center;justify-content:center;width:.95rem;height:.95rem;margin-right:.38rem;color:var(--accent);font-family:Material Symbols Rounded Local;font-size:.95rem;font-weight:400;line-height:1;letter-spacing:normal;vertical-align:-.14rem;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.hint{color:var(--muted)}.mobile-only{display:none}@media(max-width:760px){.statusbar{align-items:flex-start;flex-direction:column;gap:.15rem}.status-file{flex-basis:auto;max-width:100%;text-align:left}}@media(max-width:1180px){.workspace,.workspace:has(.source-panel[hidden]){grid-template-columns:minmax(0,1fr)}.toc-panel{position:fixed;inset:calc(var(--topbar-height) + var(--settingsbar-effective-height)) auto 0 0;z-index:50;width:min(88vw,340px);height:auto;border-radius:0 1.25rem 1.25rem 0;transform:translate(-105%);transition:transform .19s ease}.toc-panel.open{transform:translate(0)}.source-panel{position:fixed;inset:auto auto 0 50%;z-index:45;width:min(var(--reader-width),calc(var(--app-viewport-width, 100vw) - 2.5rem));max-width:calc(var(--app-viewport-width, 100vw) - 2.5rem);height:var(--source-panel-mobile-height, min(72vh, 620px));border-radius:1.25rem 1.25rem 0 0;transform:translate(-50%);transition:height .17s ease}.source-size-handle{display:flex}.source-panel .small-note{display:none}.mobile-only{display:inline-grid}body.line-numbers .markdown-shell{margin-left:auto;margin-right:auto}}@media(max-width:720px){:root{--topbar-height: 56px;--settingsbar-height: 118px}.topbar{padding:0 .65rem}.toolbar-separator,.brand-title{display:none}.settingsbar{align-content:center;flex-wrap:wrap;gap:.45rem .7rem}.workspace{padding:.65rem .65rem .9rem}.markdown-shell{padding:.22rem;border-radius:1rem}.source-panel{width:calc(var(--app-viewport-width, 100vw) - 1.3rem);max-width:calc(var(--app-viewport-width, 100vw) - 1.3rem)}.markdown-body{padding:1rem;border-radius:.78rem}body.line-numbers .markdown-body{padding-left:calc(1rem + var(--line-number-width) + .15rem)}body.file-open.line-numbers .markdown-body{padding-left:calc(1rem + var(--line-number-width) + 2.15rem)}body.line-numbers .markdown-body [data-line-start]:before{left:calc(-1 * var(--line-number-width) + .12rem);min-width:2.85rem;height:1.15rem;font-size:.62rem}input[type=range]{width:7rem}}@media(max-width:920px){.search-control.open .search-panel{position:fixed;left:.75rem;right:.75rem;top:calc(var(--topbar-height) + .45rem);z-index:70;width:auto;max-width:none;min-width:0;border-radius:1.2rem;background:var(--panel);box-shadow:var(--shadow);backdrop-filter:blur(16px);transform:translateY(0)}.search-input{width:100%;min-width:0}}@media(max-width:720px){.brand-version{display:none}.search-control.open .search-panel{left:.55rem;right:.55rem;gap:.25rem}.search-counter{min-width:3.15rem;font-size:.7rem}.mini-icon-button{width:1.7rem;height:1.7rem}}@media(prefers-reduced-motion:reduce){.search-panel,.search-panel>*{transition:none}}.scroll-jump-controls{position:absolute;right:calc(var(--scrollbar-size) + 1rem);bottom:calc(1rem + env(safe-area-inset-bottom));z-index:12;display:flex;flex-direction:column;gap:.55rem;pointer-events:none}.scroll-jump-controls .material-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1em;height:1em;overflow:hidden;font-family:Material Symbols Rounded Local;font-size:1.24rem;font-style:normal;font-weight:400;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;word-wrap:normal;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.icon-button .material-icon,.mini-icon-button .material-icon,.copy-template-edit-button .material-icon,.copy-template-clear .material-icon,.scroll-line-clear .material-icon,.scroll-line-submit .material-icon{pointer-events:none}[hidden]{display:none!important}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}.scroll-jump-button{pointer-events:auto;width:2.45rem;height:2.45rem;border-color:#94a3b83d;background:#0f172a94;box-shadow:0 10px 26px #02061747;backdrop-filter:blur(14px)}[data-theme=light] .scroll-jump-button{background:#ffffffc2;box-shadow:0 10px 24px #0f172a24}.scroll-jump-button:disabled{cursor:default;opacity:.38;transform:none}.scroll-jump-button:disabled:hover{border-color:#94a3b83d;transform:none}@media(max-width:720px){.scroll-jump-controls{right:calc(var(--scrollbar-size) + .65rem);bottom:calc(.75rem + env(safe-area-inset-bottom));gap:.45rem}.scroll-jump-button{width:2.35rem;height:2.35rem}}.source-panel:focus,.source-panel:focus-visible,.source-viewport:focus,.source-viewport:focus-visible{outline:none;box-shadow:none}.status-file[role=button]{cursor:pointer}.status-file[role=button]:hover{color:var(--accent)}.status-file[role=button]:focus,.status-file[role=button]:focus-visible{outline:none;color:var(--accent)}.app-toast{justify-content:center;width:max-content;max-width:100%;justify-self:center;padding:.7rem .85rem .7rem 1rem;border-color:#38bdf859;border-radius:999px;background:var(--panel)}.app-toast--warning{border-color:#38bdf859;background:var(--panel)}.app-toast__button{background:var(--accent-strong);color:#fff}.app-toast__button:hover{background:var(--accent)}.scroll-line-group{position:relative;display:grid;place-items:center;pointer-events:auto}.scroll-line-panel{position:absolute;top:50%;right:calc(100% + .55rem);display:inline-flex;align-items:center;gap:.35rem;width:max-content;padding:.35rem;border:1px solid rgba(148,163,184,.24);border-radius:999px;background:#0f172abd;box-shadow:0 10px 26px #02061747;backdrop-filter:blur(14px);transform:translateY(-50%)}[data-theme=light] .scroll-line-panel{background:#ffffffdb;box-shadow:0 10px 24px #0f172a24}.scroll-line-field{position:relative;display:inline-flex;align-items:center}.scroll-line-input{width:6.45rem;height:1.95rem;padding:0 2.2rem 0 .7rem;border:1px solid var(--panel-border);border-radius:999px;background:#02061733;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;text-align:center}[data-theme=light] .scroll-line-input{background:#ffffffc7}.scroll-line-input:focus,.scroll-line-input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #38bdf829}.scroll-line-clear{position:absolute;right:.38rem;top:50%;display:grid;place-items:center;width:1.35rem;height:1.35rem;border:0;border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:1rem;line-height:1;opacity:.68;cursor:pointer;transform:translateY(-50%)}.scroll-line-clear:hover{background:#38bdf81f;opacity:1}.scroll-line-submit{display:inline-grid;place-items:center;flex:0 0 auto;width:1.95rem;height:1.95rem;border:1px solid rgba(56,189,248,.44);border-radius:999px;background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#fff;font:inherit;line-height:1;cursor:pointer;box-shadow:inset 0 0 10px #ffffff1f,0 6px 16px #0ea5e92e}.scroll-line-submit:hover{border-color:#7dd3fcb8;transform:translateY(-1px)}.scroll-line-submit:focus,.scroll-line-submit:focus-visible{outline:none;border-color:#7dd3fcf2;box-shadow:0 0 0 3px #38bdf82e,inset 0 0 10px #ffffff1f}.scroll-line-submit .material-icon{font-size:1.12rem}.scroll-line-group.is-open .scroll-jump-button:not(:disabled){border-color:#38bdf88f;background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#fff;box-shadow:inset 0 0 12px #ffffff1f,0 6px 18px #0ea5e92e}.scroll-line-group.is-invalid .scroll-line-input{border-color:var(--danger);box-shadow:0 0 0 3px #f973162e}@media(max-width:720px){.scroll-line-panel{right:calc(100% + .45rem)}.scroll-line-input{width:5.65rem;padding-right:2.05rem}.scroll-line-submit{width:1.85rem;height:1.85rem}}:root{--source-line-number-width: 3.75rem}.source-line{grid-template-columns:var(--source-line-number-width) max-content}.source-line .num{width:var(--source-line-number-width);padding:0 .55rem 0 .35rem}.source-line .txt{padding-left:.55rem}.toast-host{left:max(.75rem,env(safe-area-inset-left,0px));right:max(.75rem,env(safe-area-inset-right,0px));width:auto;max-width:none;justify-items:center;transform:none}.app-toast,.update-banner{min-width:0;max-width:min(34rem,100%)}.app-toast--actionable,.update-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.app-toast__message,.update-banner>span{min-width:0;overflow-wrap:anywhere}.app-toast__button,.update-banner__button{white-space:nowrap}.update-banner{left:max(.75rem,env(safe-area-inset-left,0px));right:max(.75rem,env(safe-area-inset-right,0px));width:auto;max-width:none;transform:none}@media(max-width:760px){:root{--source-line-number-width: 3.15rem}.source-line .num{padding-right:.45rem;padding-left:.25rem}.source-line .txt{padding-left:.45rem}.toast-host{bottom:calc(2.75rem + env(safe-area-inset-bottom,0px))}.app-toast,.update-banner{width:100%;border-radius:1rem}}@media(max-width:420px){.app-toast--actionable,.update-banner{gap:.65rem;padding-right:.7rem;padding-left:.8rem}.app-toast__button,.update-banner__button{padding-right:.66rem;padding-left:.66rem}}@media(max-width:520px){.topbar{gap:.45rem;padding-inline:max(.45rem,env(safe-area-inset-left)) max(.45rem,env(safe-area-inset-right));overflow:hidden}.brand{flex:0 0 auto;gap:0}.brand-mark{width:2.08rem;height:2.08rem;border-radius:.72rem;font-size:.78rem}.topbar-actions{flex:1 1 auto;min-width:0;justify-content:flex-end;gap:clamp(.28rem,1.45vw,.48rem)}.topbar-actions .icon-button,.topbar-actions .icon-file-button .button-symbol{width:clamp(2rem,9.2vw,2.25rem);height:clamp(2rem,9.2vw,2.25rem);min-height:0}.topbar-actions .material-icon{font-size:clamp(1.05rem,4.9vw,1.28rem)}.topbar-actions .numeric-icon-button .material-icon{font-size:clamp(.74rem,3.4vw,.9rem)}}@media(max-width:380px){.topbar-actions{gap:.25rem}.brand-mark{width:1.95rem;height:1.95rem}.topbar-actions .icon-button,.topbar-actions .icon-file-button .button-symbol{width:1.92rem;height:1.92rem}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
